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会占满的你GPU或CPU:

所以训练前最好先选一个配置稍高的机子。

为什么会这么耗资源?其实底层autokeras用的技术正是类似传统机器学习的网格搜索和贝叶斯搜索

你也许还不知道的是,这个和搜索马航失联飞机的技术也是想通的:

这一类搜索的本质是,在搜索的同时,会有反馈数据。在你搜索更好的深度学习模型时,你会做一些假设(模型加入更多“跳层连接”可能会更好),这时算法会加入一些“跳层连接”去训练,并验证假设,再进行下一步搜索 (这正是耗计算资源的原因)。

当然autokeras还有许多可以改进的地方,比如对上述贝叶斯搜索的改进,以及支持除了卷积网络以外的RNN等其他结构的搜索功能等等。期待autokeras能有较快的跟进,github源码读者可以在参考文献中找到。

欢迎和David 9 互动讨论,联系方式你懂得,在文末扫二维码。

 

参考文献:

  1. https://github.com/jhfjhfj1/autokeras
  2. https://autokeras.com/
  3. https://towardsdatascience.com/auto-keras-or-how-you-can-create-a-deep-learning-model-in-4-lines-of-code-b2ba448ccf5e
  4. https://www.quora.com/What-is-the-probability-to-find-Malaysia-Airlines-MH370-using-Bayesian-search-theory
  5. http://soubhikbarari.github.io/blog/2016/09/14/overview-of-bayesian-optimization

本文采用署名 – 非商业性使用 – 禁止演绎 3.0 中国大陆许可协议进行许可。著作权属于“David 9的博客”原创,如需转载,请联系微信: david9ml,或邮箱:yanchao727@gmail.com

或直接扫二维码:

发布者

David 9

David 9

邮箱:yanchao727@gmail.com 微信: david9ml

发表评论

电子邮件地址不会被公开。 必填项已用*标注