1 什么是AutoML
所谓AutoML,全称是Automated Machine Learning,即自动机器学习技术,它的发展现状可以参考下面的综述文章。
Zoller M, Huber M F. Survey on Automated Machine Learning.[J]. arXiv: Learning, 2019.
AutoML的目标是让机器学习的整个流程的创建完全自动化,从应用领域来说,这通常要包括数据的使用,特征的选择,模型架构的设计,优化方法的使用,所以这些方向都会涉及到超参数的自动调节。
有了AutoML技术后,各个领域的专家便能够低门槛地使用机器学习技术,而不用依赖于机器学习专家。
2 数据使用与特征选择
智能系统与机器学习技术的发展,本身就伴随着对数据的使用方法的进化。从传统的专家系统,到有监督的机器学习算法,到深度学习,本身就属于AutoML的范畴,它解决了特征选择的问题,让特征的学习来源于数据,而不是手工设计。
所以深度学习也被称之为特征学习,它利用CNN等架构,实现了特征选择的过程。
另一方面,在机器学习/深度学习领域中,还有一个很重要的问题,就是数据增强。在解决各类任务的过程中,常常没有足够多的数据,数据太少便意味着过拟合,因此数据增强技术至关重要。
曾几何时,我们采用各种各样的几何变换,颜色变换策略来进行数据增强。随机裁剪,颜色扰动,都对提升模型的泛化能力起着至关重要的作用。
技术发展到了现在,AutoML技术开始在数据增强领域展露头脚,以Google Brain提出的AutoAugment为代表的方法,使用增强学习对不同的任务学习到了各自最合适的增强方法,具体细节,大家可以参考论文和我们之前的往期文章解读,以后我们也会继续开篇讲述更新的研究。
Cubuk E D, Zoph B, Mane D, et al. AutoAugment: Learning Augmentation Policies from Data.[J]. arXiv: Computer Vision and Pattern Recognition, 2018.
数据使用和特征选择作为最早被AutoML技术攻陷的领域,是机器学习算法走向智能和商业化落地的关键,
3 网络结构设计NAS
一直以来,网络结构的设计是一个非常需要经验且具有挑战性的工作,研究人员从设计功能更加强大和更加高效的模型两个方向进行研究,我之前在知乎上也做了两个live直播讲述对应的核心技术,感兴趣可以去听听。
随着各类经典网络设计思想的完善,如今要手工设计出更强大的模型已经很难,而以AutoML为代表的技术在三年前开始被研究。
Google首次提出了自动设计网络模型的思想,利用增强学习进行最佳架构的搜索。学习方法如下,基本思想是从一个定义空间中选取网络组件,使用网络的准确率作为指导指标,使用强化学习进行学习。
学习到的网络结构如下:
从上面的结构可以看出,它拥有以下特点:
(1) 跨层的连接非常多,说明信息融合非常重要。
(2) 单个通道数不大,这是通道使用更加高效的表现。
从Flops指标来看,已经非常的高效,不过因为结构相对复杂,实际在硬件平台上运行时性能并不一定优于MobileNet等模型,但是仍然是非常高效的网络。
以上研究催生了Google Cloud AutoML,并在2018年1月被Google发布,AutoML技术的研究进入高潮,这两年成为机器学习/深度学习的大热门。
我们公众号还没有更新到相关内容,可以参考隔壁机器之心等媒体的文章,以及相关综述。现在NAS算法所用的基本结构和模块都是已有的模块,未来的方向应该是更广阔的搜索空间。
[1] Zoph B, Le Q V. Neural Architecture Search with Reinforcement Learning[J]. international conference on learning representations, 2017.
[2] Zoph B, Vasudevan V, Shlens J, et al. Learning Transferable Architectures for Scalable Image Recognition[J]. computer vision and pattern recognition, 2018: 8697-8710.
[3] Elsken T, Metzen J H, Hutter F, et al. Neural Architecture Search: A Survey[J]. Journal of Machine Learning Research, 2018, 20(55): 1-21.
4 优化方法的搜索
曾几何时,我们设计,比较,分析sigmoid,tanh,relu等激活函数对网络性能的影响。
而Google Brain提出的以Swish为代表的方法,在一系列一元函数和二元函数组成的搜索空间中,进行了组合搜索实验,利用数据学习到了比ReLU更好的激活函数,可以参考往期文章(点击图片)。
Ramachandran P, Zoph B, Le Q V. Searching for activation functions[J]. arXiv preprint arXiv:1710.05941, 2017.
曾几何时,我们还在争论是最大池化好还是平均池化好,如今基于数据的池化策略已经被广泛研究。
Saeedan F, Weber N, Goesele M, et al. Detail-Preserving Pooling in Deep Networks[J]. computer vision and pattern recognition, 2018: 9108-9116.
曾几何时,我们还在不知道选择什么样的归一化方法好,如今,对每一个网络层学习最合适的归一化策略也是可行的。
Luo P, Ren J, Peng Z, et al. Differentiable Learning-to-Normalize via Switchable Normalization[J]. international conference on learning representations, 2019.
曾几何时,我们在各种各样的优化方法中迷茫,如今,自动学习优化方法也开始被研究。
Bello I, Zoph B, Vasudevan V, et al. Neural Optimizer Search with Reinforcement Learning[J]. international conference on machine learning, 2017: 459-468.
曾几何时,我们还在想尽办法设计损失函数,如今,使用AutoML进行损失函数的学习也开始了。
Wu L, Tian F, Xia Y, et al. Learning to Teach with Dynamic Loss Functions[J]. neural information processing systems, 2018: 6466-6477.
曾几何时,我们在各种模型压缩技巧中鏖战,如今,使用AutoML技术用于模型压缩的研究也新鲜出炉。
He Y, Lin J, Liu Z, et al. AMC: AutoML for Model Compression and Acceleration on Mobile Devices[J]. european conference on computer vision, 2018: 815-832.
这可能是一个新的时代的开始,GAN正在各大领域中狂奔,AutoML又开始席卷各大领域。
如果你想好好学习AutoML,给大家推送一个GitHub项目,一本书,东西在精不在多,希望对你有用。另外,关注我们公众号肯定是没错的。
https://github.com/hibayesian/awesome-automl-papers
https://www.automl.org/wp-content/uploads/2019/05/AutoML_Book.pdf
总结
如果你足够细心,应该就会发现上面所有的研究,基本上都离不开Google的身影。感谢谷歌,正在让深度学习的一切开始自动化。同时也要警惕Google,它正在抢走你的饭碗。