AutoML:深度学习替代人类工作的实践
phpskycn 2019-6-14原创 机器学习

一、背景:卷积神经网络的发展

1998年Yann LeCun提出的LeNet-5[1]首次实现了可以有效地进行图像分类的卷积神经网络(CNN)算法,2012年Alex Krizhevsky等人提出的AlexNet[2]首次在ImageNet Large Scale Visual Recognition Challenge上击败了所有其他方法,在这之后的ILSVRC的成绩榜基本被基于CNN的算法占据。在2014年,Karen Simonyan和 Andrew Zisserman提出的VGGNet[3]使用更多3*3的卷积替代大尺寸卷积,2015年Kaiming He等人发表的ResNet[4]提出的残差(Residual)结构极大地缓解了深层网络的梯度问题,使得网络层数从十几层发展到了152层,2016年发表的ResNext[5]是其进一步改进版本,2017年Jie Hu、Li Shen、Samuel Albanie等人发表的SENet[6]是ResNext的进一步改进,取得了最后一届ILSVRC的冠军,也代表着人工设计的CNN结构的最佳性能。Google在2014年-2016年间发表了一系列CNN结构(Inception v1-v4)[7][8][9][10],使用分组卷积也实现了较好的效果。

人工设计的CNN结构的改进通常来人类的经验、对细节的观察和反复实验,这通常是有效的,但有时人类的错误认知也会带来负面影响。

Lenet-5的结构


AlexNet的结构,受限于当时的硬件(Nvidia Geforce GTX580 3GB),网络存在两个分支

大量使用大尺寸、大步长的卷积似乎来自于传统的图像处理的经验,但是后来被证明并不是合理的选择

VGGNet-16的结构,作者通过对比实验尝试了多种不同的结构

ResNet-34的结构以及和VGG/去掉残差连接的结构的对比,常见的ResNet-50/101/152每个block和ResNet-34有些不同

ResNet的设计中除了残差连接之外,整体的结构上也和之前有很大差别,大部分通过最大采样被换成了步长为2的卷积,多个全连接层的结构也被抛弃

其中很多变动来自作者训练、调参的经验

ResNext-50和ResNet-50的对比,对每个block中3x3的卷积进行了分组

SE-ResNet的block结构,SENet可以看作在网络基本的block上加上一个Squeeze-and-Excitation模块,其获得ILSVRC冠军的结构基于ResNext

而Inception v1-v4的结构变化过程也基本由经验积累进行推进:用两个3*3卷积替代7*7卷积、将n*n的卷积拆解为1*n+n*1的卷积、引入batch normalization、调整整体的结构以及引入在ResNet中十分有效的残差连接


二、AutoML的发展

2016年Google发表了被称为网络架构搜索(Neural Architecture Search)[11]的方法,通过强化学习自动搜索最高性能的网络,最终在2017年得到了一个超过所有人类设计方法的网络结构NASNet[12]。NASNet通过一个RNN控制器,在指定的搜索空间内搜索性能最高的网络单元结构;由于在ImageNet训练比较费时,NASNet采用了先在较小的CIFAR-10上训练,之后通过迁移学习扩展到较大型的数据集ImageNet上。

NASNet的结构,由多个cell(block)堆叠,这部分来自人类设计网络的经验,其中CIFAR10和ImageNet的堆叠方式不同

NASNet的搜索空间

最终得到的最优结果(NASNet-A)

NASNet-A和当时性能最优的网络性能对比,在计算量和参数数量相同的情况下性能由于所有人工设计的网络,精度也超过了人类设计的最好结果,但是其需要大量计算资源,文献中Google使用了500块NVIDIA Tesla P100 GPU。

NAS确度了AutoML的一种思路:设计控制器和搜索空间,控制器在搜索空间内通过计算量较小的代理任务寻找到最佳结果,最终通过迁移学习进行拓展,后续Google又提出了一种优化搜索空间的方法PNASNet[13]。

简单的直接搜索本身依然是较低效的方法,在2018年Google又提出了使用进化算法优化的NAS方法[14],最终得到的网络结构被称为AmoebaNet。

基于进化的NAS搜索效率和强化学习(RL)、随机搜索(RS)对比


除了对搜索过程的优化尝试外,AutoML的应用范围也得到了拓展,2018年Google发表了NAS在用于移动设备的轻量级CNN结构上是成果MNASNet[15]。MNASNet基于之前用于移动设备的CNN网络MobileNet v1/v2[16][17]的经验,搜索方法和NASNet比较接近;但受制于移动设备的性能其搜索空间仅包含深度分离卷积,并且在搜索策略上加入了对实际运行速度(工作在Google Pixel 1上)的控制策略。

MNASNet-A1在不同通道数量/输入尺寸下的性能和人工设计的MobileNet v2的对比


基于类似MNASNet的结构,Google在2019发表了一种可以灵活扩展的网络结构EfficientNet[18],通过对搜索到的高效的基础网络EfficientNet-B0,使用多维度(宽度、深度、分辨率)扩展得到一系列可灵活调整的高效网络。

EfficientNet 和其他网络结构的对比,相比最初的NASNet效率有了明显的提高

2019年Google还将AutoML应用到了Object Detection上,通过搜索最有效的FPN结构,改进RetinaNet[19],得到了当前最高效的Object Detection网络NAS-FPN[20]

NAS-FPN的效率比于人工设计的检测网络高很多


三、替代更多人类的工作?


AutoML目前已经取得了令人瞩目的成果,在一定程度上替代了人类设计CNN网络结构的工作。那么在其他领域,是否可能存在类似的方式实现自动的设计方法呢?至少比较缺乏创造性的领域存在这种可能性。模仿目前AutoML的模式,首选需要确定控制策略、搜索空间,并且制定计算自动搜索得到的结果和目标结果的差别的方法(损失函数),目前来看,较简单的编程(偏向业务逻辑处理的代码、网页/App前端)、PCB设计等领域都值得探索。

例如可以通过人类的经验,确定Android App每个常见UI组件的代码搜索空间,使用高效的搜索算法进行控制,通过量化最终的UI效果和设计的差异计算损失,实现自动的UI设计;这种模式下完全不需要App前端工程师,只需要设计师提供设计图,就能得到可用的代码。

在用人成本不断高涨的今天,这些尝试会有相当高的经济价值,摆脱对大量劳动力的依赖也有利于提高资源调度的效率。



参考文献

[1]http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf

[2]https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

[3]https://arxiv.org/pdf/1409.1556.pdf 

[4]https://arxiv.org/pdf/1512.03385.pdf

[5]https://arxiv.org/pdf/1611.05431.pdf

[6]https://arxiv.org/pdf/1611.05431.pdf

[7]https://arxiv.org/pdf/1409.4842.pdf 

[8]https://arxiv.org/pdf/1502.03167.pdf 

[9]https://arxiv.org/pdf/1512.00567.pdf 

[10]https://arxiv.org/pdf/1602.07261.pdf

[11]https://arxiv.org/pdf/1611.01578.pdf 

[12]https://arxiv.org/pdf/1707.07012.pdf

[13]https://arxiv.org/pdf/1712.00559.pdf

[14]https://arxiv.org/pdf/1802.01548.pdf

[15]https://arxiv.org/pdf/1807.11626.pdf

[16]https://arxiv.org/pdf/1704.04861.pdf 

[17]https://arxiv.org/pdf/1801.04381.pdf

[18]https://arxiv.org/pdf/1905.11946.pdf

[19]https://arxiv.org/pdf/1708.02002.pdf

[20]https://arxiv.org/pdf/1904.07392.pdf 

 

 


来自 机器学习
 
2019-6-16 11:19:11
1楼

也就是说现在ML工程师自己也要被ML淘汰了?

[修改于 4 个月前 - 2019-06-16 11:20:51]

折叠评论
加载评论中,请稍候...
折叠评论
phpskycn(作者)
2楼
引用 radio 发表于 1 楼的内容:
也就是说现在ML工程师自己也要被ML淘汰了?

只是没有足够算力会被淘汰……

折叠评论
加载评论中,请稍候...
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
ID:{{user.uid}}
{{user.username}}
{{user.info.certsName}}
{{user.description}}
{{format("YYYY/MM/DD", user.toc)}}注册,{{fromNow(user.tlv)}}活动
{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png