H. Zhang, Y. Jin, R. Cheng and K. Hao, "Efficient Evolutionary Search of Attention Convolutional Networks via Sampled Training and Node Inheritance," in IEEE Transactions on Evolutionary Computation, vol. 25, no. 2, pp. 371-385, April 2021, doi: 10.1109/TEVC
目录
一、摘要
1.1贡献点:
二、文章内容
2.1 SI-EvoNAS
2.2 From Blocks to Neural Networks (提出多尺度注意力模块)
三、详细算法框架
3.1 主要框架
3.2 初始化过程
3.3 基于节点继承的采样训练
3.4 节点继承
四、效果
深度神经网络的性能在很大程度上依赖于它的结构,各种神经结构搜索策略已经被开发为自动网络结构设计。近年来,进化神经结构搜索(EvoNAS)由于进化算法具有具有吸引力的全局优化能力而受到越来越多的关注。然而,EvoNAS的计算成本非常高,因为在进化优化过程中通常需要大量的性能评估,而训练深度神经网络本身的计算成本也非常昂贵。
为了解决这一问题,本文提出了一个基于有向无环图的卷积网络进化搜索框架,在该框架中,对每一小批训练数据进行随机采样和训练。此外,采用节点遗传策略,可以在不训练后代个体的情况下评估所有后代个体的适应度。最后,我们在搜索空间中编码了一个信道注意机制,以增强进化后的神经网络的特征处理能力
图a表示搜索空间SI-EvoNAS
一个由8个节点表示的DAG示例块,包括两个源节点(节点1和节点2)、5个计算节点(节点3、4、5、6、7)和输出节点(节点8)。 输出节点连接计算节点
图b二叉树表示的计算节点的结构
其中两个计算操作(例如,深度可分卷积层或平均池层)应用于两个输入(X1,X2),然后通过合并操作组合。
图c由5个块组成,图d网络由11个块组成。
块结构类型和对应编码
FR Conv operation
空洞卷积,输入端先全局平均池化(GAP)操作,获取特征图的通道权重,接着经过Sigmoid激活函数,最后将权重赋予特征图。其实就是一种通道注意力机制
Dilated Conv的好处是不做pooling损失信息的情况下,加大了感受野,让每个卷积输出都包含较大范围的信息。
节点之间的不同连接关系将导致大量具有不同体系结构的神经网络。
论文使用SI-EvoNAS学习节点之间的连接关系,并为深度神经网络找到更好的拓扑结构。 除了源节点外,DAG中的每个节点都表示一些局部计算,这是由权重和偏差指定的。
由于将遗传操作应用于亲本个体(亲本群体中现有的神经网络模型)所产生的后代个体(新的神经网络模型)可以看作是亲本模型节点的重组,因此后代个体的参数可以直接从亲本网络继承。 论文称之为方法节点继承。
SI-EvoNAS的算法框架如下:
1.输入:种群大小K,进化代数G,训练数据Dtrain和测试数据Dvalid。
2.初始化化种群过程由算法2表示
3.进化终止条件:进化代数等于G
3.训练个体Pt的过程由算算法3表示
4.个体Pt适应度评估
5.通过算法4产生新个体Qt
6.评估新个体Qt
7.根据适应度从新旧个体中选择最好的个体Pbest
8.如果Pbest不在种群里,那么就用Pbest替代最差的个体
9.输出:最好个体Pbest
SI-EvoNAS输出最佳个体,并将其解码成相应的神经结构
父母个体被随机抽样并在小批训练数据上进行训练,而后代个体使用节点继承策略生成,不需要进行适应度评估训练。
每个节点由4个整数基因编码。前两个数字表示节点索引,它表示节点的输入。最后两个表示每个输入的操作类型。不同节点的基因按顺序堆叠在一起,编码一个区块,因此一个由4个区块组成的整个网络的染色体,共有80个组成基因。
图a表示一个编码网络和对应的解码网络
图b表示块结构及其编码示例
初始化过程
1.输入为种群大小K,块类型序列,节点空间X,操作空间O
2.对个体进行相应编码:从节点空间和操作空间随机选择连个整数进行编码
采样训练的主要思想是,对于每一个小批量迭代,在父群体中随机选择一个个体并对这个小批量数据进行训练,直到每个历元达到最大的迭代次数。因此,每一代需要的训练迭代次数等于每个历元的迭代次数。最重要的是,由于小批迭代的次数(B)通常比种群规模(K)大得多,并且采样的训练也在大量的代中重复,每一代的每个父架构都将在许多小批上进行训练。例如,本研究中CIFAR10的K= 25, B= 312,训练完成后最多进行300代,更新并保存所有计算节点的参数。然后,在验证数据集上测试所有的父母个体,计算他们的适应度
抽样训练的主要思想是:对于每一个小批迭代,随机选择父群体中的一个个体,并在这个小批数据上进行训练,然后重复,直到达到每个历元的最大迭代次数
节点继承,论文指的是通过交叉、交换变异和权值继承从父节点生成后代神经网络体系结构。
图a表示给定两个父母,
p1和p2,两个后代个体,q1和q2是由最后三个基因之间的交叉产生的。然后,用第三个基因交换第三个基因发生突变。w∗中的所有参数都是直接从他们的父母那里继承来的
交叉方法亲本交叉为子代个体结构
(直接将其亲代的训练参数作为子代个体对于节点的初始权重)
交叉变异都是从亲本继承,不需要随机初始化。由于直接继承的,不需要验证训练,直接进行评估。
图b表示节点继承的
先训练小网络Evo-NAS,找到比较好的,在放到大型NAS中重新训练