AutoKeras:开源AutoML初体验,自动搜索和构建最优深度模型,贝叶斯搜索器,以及mnist示例代码

20 美元/时的AutoML太贵?试试AutoKeras吧

自动搜索构建深度学习模型和调参一直是数据科学家们向往的工具,而我们知道Google AI发布的AutoML是要收费的,如果想要开源的而且想要对AutoML背后技术一探究竟的,可以看看这款AutoKeras

AutoKeras开发处于初期阶段,它基于Keras(也有pytorch),而keras我们知道是基于TensorFlow,所以GPU利用可以不用担心(只要你安装了gpu版TensorFlow即可)。由于Keras代码极其简洁,autokeras上手也较容易 。

所以直接上autokeras版mnist训练代码:

from keras.datasets import mnist
from autokeras.image_classifier import ImageClassifier

if __name__ == '__main__':
    (x_train, y_train), (x_test, y_test) = mnist.load_data()
    x_train = x_train.reshape(x_train.shape + (1,))
    x_test = x_test.reshape(x_test.shape + (1,))

    clf = ImageClassifier(verbose=True, augment=False)
    clf.fit(x_train, y_train, time_limit=12 * 60 * 60)
    clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
    y = clf.evaluate(x_test, y_test)
    print(y * 100)

这里有几个要点,第一,代码需要在python3.6上跑否则会有兼容性问题(目前autokeras只支持python3.6), 继续阅读AutoKeras:开源AutoML初体验,自动搜索和构建最优深度模型,贝叶斯搜索器,以及mnist示例代码

GAN和VAE都out了?理解基于流的生成模型(flow-based): Glow,RealNVP和NICE,David 9的挖坑贴

生成模型一直以来让人沉醉,不仅因为支持许多有意思的应用落地,而且模型超预期的创造力总是让许多学者和厂商得以“秀肌肉”:

OpenAI Glow模型生成样本样例,在隐空间控制图像渐变

了解基于流的生成模型(flow-based)前,先回顾目前主流的两类生成模型GAN和VAE,David 9文章早已介绍过

VAE与GAN结构比较

GAN简单粗暴,用两个深度网络(判别器D和生成器G)交替学习使得生成器G可以模拟现实生成样本,但是缺陷也是明显的:GAN不能直接了当地给出一个样本的隐分布的表征(你可以生成一个明星,但是你无法马上生成一个“微笑的”或“年轻的”明星),即,你很难用隐变量随意操纵生成的样本,你只知道生成的是任意样本(除非你重新设计GAN,像我们以前谈到的cGAN或者FaderNetworks等等。。)

VAE思路就完全不同,它继承了古老的贝叶斯理论,相信一切的创造可以用抽样后验概率来缔造。

你想创造新样本?好的,但是真实分布空间X 太复杂了,我们先意淫一个后验空间Z吧: 继续阅读GAN和VAE都out了?理解基于流的生成模型(flow-based): Glow,RealNVP和NICE,David 9的挖坑贴

从SRU小小的学术争议,可以学到什么?关于SRU简单循环单元,David 9 有几点想说

人类只是不择手段存活的预设算法,他们以为设计精密就能发号施令,但他们只是“乘客” — 《西部世界》

前不久SRU(简单循环单元)遭到了Quasi-RNN 的质疑,认为SRU只是Quasi-RNN的卷积窗口为1时的特殊情况,原帖在这里(需要梯子):

www.facebook.com/cho.k.hyun/posts/10208564563785149

SRU作者自己的解释在这里(不要梯子):

https://www.zhihu.com/question/65244705/answer/229364472

就争议本身David 9 不做任何评判,毕竟,一旦开始辩驳,人类就会不自觉地向着自己的利益方向靠近, 正如《西部世界》里所说:“人类只是不择手段存活的预设算法 ”

David 9 不喜欢八卦

所以,从这起小小的学术争议,David 9关注的是,我们可以学到什么 ?这里记录一下我的总结:

1. 论文起名要简洁,意图要清晰。

为什么之前Quasi-RNN没有火一把,而SRU却在社交网络上传了那么远?许多人忽略的一点是,SRU起名很好很简洁。如果作者起名叫“Yet another simple RNN acceleration method” ,恐怕就没人凑热闹了。SRU还能让人联想到GRU,会不会是下一代GRU呢?一些不明真相的网友就蠢蠢欲动了。

所以,写文章前,有必要想个好名字,让大家快速了解你的工作,为你传播。(不要刻意营销就好)

2. 论文要和相似idea的文章做充分对比,提前指出自己工作中非常不同的那一部分。 继续阅读从SRU小小的学术争议,可以学到什么?关于SRU简单循环单元,David 9 有几点想说