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 互动讨论,联系方式你懂得,在文末扫二维码。
参考文献:
- https://github.com/jhfjhfj1/autokeras
- https://autokeras.com/
- https://towardsdatascience.com/auto-keras-or-how-you-can-create-a-deep-learning-model-in-4-lines-of-code-b2ba448ccf5e
- https://www.quora.com/What-is-the-probability-to-find-Malaysia-Airlines-MH370-using-Bayesian-search-theory
- http://soubhikbarari.github.io/blog/2016/09/14/overview-of-bayesian-optimization
本文采用署名 – 非商业性使用 – 禁止演绎 3.0 中国大陆许可协议进行许可。著作权属于“David 9的博客”原创,如需转载,请联系微信: david9ml,或邮箱:yanchao727@gmail.com
或直接扫二维码:
David 9
Latest posts by David 9 (see all)
- 修订特征已经变得切实可行, “特征矫正工程”是否会成为潮流? - 27 3 月, 2024
- 量子计算系列#2 : 量子机器学习与量子深度学习补充资料,QML,QeML,QaML - 29 2 月, 2024
- “现象意识”#2:用白盒的视角研究意识和大脑,会是什么景象?微意识,主体感,超心智,意识中层理论 - 16 2 月, 2024