论文提出使用进化算法来进行神经网络结构搜索,整体搜索逻辑十分简单,结合权重继承,搜索速度很快,从实验结果来看,搜索的网络准确率挺不错的。由于论文是个比较早期的想法,所以可以有很大的改进空间,后面的很大算法也是基于这种想法进行更好的补充
来源:晓飞的算法工程笔记 公众号
论文: Large-Scale Evolution of Image Classifiers
论文对当前的进化算法进行少量地改造,结合前所未有的算力进行神经网络结构搜索,在CIFAR-10上达到了很不错的准确率。论文十分注重搜索算法的简单性,从性能很差的无卷积模型开始,进化算法需要在一个几乎不受约束的搜索空间中进化成复杂的卷积网络
基于锦标赛选择(tournament selection)进行进化算法,定义如下概念:
为了加速计算,使用massively-parallel, lock-free的并行计算,许多worker在不同电脑上进行独立的异步操作,仅使用共享文件系统来保证种群内容一致,每个个体为一个文件夹。种群数量为1000,worker一般为种群数量的
网络结构表示为图(DNA),节点表示3维tensor或激活方法,tensor的3维分别表示图片的空间坐标以及channel数,激活方法作用与节点上,可以为BN+RELU或无激活,边表示identity connections或卷积(包含可变异参数)。当节点连接多条边时,将其中一条非identity connection的边作为主边,对其它边进行像素的最近邻差值以及维度的裁剪和填充,最后进行element-wise sum。在每次繁衍过程中,随机选取以下一种变异方式:
种群的初始化为仅包含global average pool的简单个体,学习率为0.1
在CIFAR-10上进行4万5张图的训练和5千张图的测试,共训练25600轮,batch size为50
每个进行训练的模型,记录其单batch训练的计算量FLOPs和验证的计算量FLOPs,乘以batch数得到最终的计算量为,
由于模型完整的训练需要更多的迭代次数,这十分耗费时间,为了解决这一问题,允许子代默认继承父代的权重,如果层有相同的shape,则继承,但如果是重置权重突变,则全部不继承
为了防止过拟合,训练集和测试集不能有交集,准确率表现最好的模型称为“the best model”
从实验来看,论文提出的搜索方法比目前的同体积的网络性能要高,但比SOTA略差一点,整体搜索时间很快。对于两个超参数,种群大小和迭代次数,则是越大越好,太小容易陷入局部最优
论文提出使用进化算法来进行神经网络结构搜索,整体搜索逻辑十分简单,结合权重继承,搜索速度很快,从实验结果来看,搜索的网络准确率挺不错的。由于论文是个比较早期的想法,所以可以有很大的改进空间,后面的很大算法也是基于这种想法进行更好的补充,所以这篇论文也是值得一读的
如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】