GaCNN:用遗传算法(GA)来优化CNN架构!
三个要点
✔️ 为进化的CNN开发计算效率高的GAs
✔️ 在FashionMNIST和MNIST上进行了验证,在16种竞争方法中,有12种方法的准确度优于其他方法。
✔️ 成功地将以前需要数天或更长时间的优化工作压缩到不到一天的时间。
gaCNN: Composing CNNs and GAs to Build an Optimized Hybrid Classification Architecture
written by Laurence Rodrigues do Amaral
(Submitted on 28 Jul 2021)
Comments:Published in 2021 IEEE Congress on Evolutionary Computation (CEC)
Subjects: Computer Vision and Pattern Recognition (cs.CV)
本文所使用的图片要么来自论文、介绍性幻灯片,要么是参考这些图片制作的。
背景
近年来,CNN的架构有了明显的改进,分类的准确性也随之提高。然而,虽然CNN架构变得越来越复杂,但架构的优化在很大程度上是由 "人 "来推动的。
因此,我将向你介绍一篇论文,提出 "gaCNN "是一种用GA(遗传算法)优化CNN架构的方法!"。
拟议方法中描述的主要内容是
- 基因编码策略
- 突变操作者
- 异质激活函数
- 体能评估策略
+ 使用基准数据集测试,有效地识别良好的CNN架构。
相关研究
使用GA的CNN的进化需要良好的遗传算术!
建议代表CNN的两个基因的编码策略(Sun等)。
第一基因:卷积层,集合层
第二个基因:所有结合层
基因的每一部分代表一个层,随机参数值取决于层的类型
交叉
使用在Slack Binary Tournament中选择的两个父方案,交换相同类型的层(权重和偏置初始化策略也可以改变)。资料来源:《世界日报》。
建议的方法
介绍
提出的进化算法是EvoCNN[25]的扩展。
本文的贡献。
- 异质激活函数增加了ReLU, Sigmoid, Tanh
- 引入了特殊的Mutaion操作员 增加、删除、修改、添加区块
上述元素被用来修改网络结构,以增加不同的突变方法来探索搜索空间。
- 编码策略 与Sun等人[25]类似,但稍作修改
本节结构如下。
- 关于算法的初始化
- 关于基因编码 策略
- 关于基因操作员
- 交叉、突变和群体选择策略,健身评估
基因编码
本文提出的基因由两部分组成:"层 "和"激活"。
- 层数。
存储一个CNN层的序列,每个层从三种不同的类型中选择(卷积层、池化层、全组合层)。
- 激活。
存储所有层的激活函数序列,并将每个激活分配给三种不同类型(ReLU、Sigmoid和Tanh)。
(另外,由于池化层一般不对网络的下一层应用激活函数,布尔值表示是否应用激活函数,这是由层类型定义的)。
这些编码策略允许单独应用操作,并提供高度的灵活性,以增加新的层类型、新的激活函数和快捷连接。具体表达方式包括
1)层的表示。
层的表示方法如下
- 卷积层
- 跨度(高度,宽度):(1,1)。
- 输出特征图:1至256。
- 核心形状(高度,宽度):(1,1),(3,3)或(5,5)。
- 批量规范化:真或假。
- 辍学:0.0,0.1,0.2,0.3,0.4或0.5。
- 集合层
- 集合类型:平均或最大。
- 步幅(高度,宽度):(1,1),(2,2)或(3,3)。
- 核心形状(高度,宽度):(2,2),(3,3)或(5,5)。
- 批量规范化:真或假。
- 辍学:0.0,0.1,0.2,0.3,0.4或0.5。
- 全耦合层
- 单位数量:128、256或512。
- 批量规范化:真或假。
- 辍学:0.0,0.1,0.2,0.3,0.4或0.5。
2)激活表征。
激活度表示如下
- 激活
- 激活函数:ReLU、Sigmoid、Tanh
- 活跃?: 真或假。
C. 进化算法。
GA使用上一节所述的编码策略。
群体大小参数:定义了每一代的候选架构的数量
- 人口随机初始化。
- 每个CNN的拟合度是通过训练网络和评估使用一个epoch验证的准确性来计算的。
图4.具有拟议基因编码的CNN实例
排名前40%的个人被选入锦标赛选手库
在这个群体中。
- 父母随机选择了20次。
- 交叉产生下一代(种群数量的40%)。
20%的种群由池内突变产生,使用前一代中最好的40%和产生的40%的子代。
40%:上一代的最佳40%(至锦标赛池)。
40 %:通过杂交产生的下一代
20 %:通过突变产生的下一代
这样做直到达到最大代数,选择最佳解决方案,并在至少150个epochs(ne)、小批量(bs)和0.01至0.001的学习率(lr)下进行全面学习。这些流量如算法1所示
算法1:遗传算法 CNN
D. 人口初始化
人口的初始化
第一层 :具有随机参数的 卷积层
没有指定后续层,但它后面总是有一个全绑定的层
*总的耦合层的数量被限制在三个(来自II-B)。
初始化算法的细节如下。层数是在定义层的最小和最大的值中取一个随机值,如minLayers, maxLayers。
E. 交叉。
本文提出的交叉点如下。
锦标赛的选择适用于父母个体。
从上一代的40%最佳架构候选人中随机选择两对。
图5和图6 分频器操作
两个父代个体之间交换相同的层类型会产生两个新的建筑子代(产生的子代如图6所示)。
- C(卷积层)与C交换
- P(汇集层)与P交换
- 与FC(所有粘合层)交换的FC
如果父层不匹配,则没有变化(活动保持不变)。
图5 交叉操作。
图6.使用图5的例子生成的孩子。
F. 突变。
以下是四种类型的突变的定义
- 添加:在随机位置 "添加 "一个随机层
- 删除:在一个随机的位置 "删除 "一个图层。
- 改变:随机改变一个层的参数("参数改变")。
- 添加块:"添加块 "的 "卷积层、池化层、ReLU "到网络结构中。
要变异的架构是从40%的最佳架构和40%的子代中随机选择的,总变异率为20%,生成下一代。
G. 健身。
健身函数的计算成本很高,因为它需要对CNN进行训练。因此,只用一个纪元来计算适配度(以便GA能在一天内评估这些网络)。如果在GA结束时发现了一个最佳架构,那么它就会被充分训练,以找到优化后的架构的最终体能
四、数据集
我们选择了两个广泛使用的基准,即MNIST 和 Fasion-MNIST 。
所有
- 28 x 28灰度图像。
- 60,000张训练图像+10,000张测试图像
- 10班
V. 实验设计
为了评估所提出的算法,我们与其他方法进行了比较
健身功能如下
$$ fitness=frac{f}{n}∗100,where\cdots(1) $$
-
f :正确分类的样本数
-
n :样本数
参数设置
参数设置显示在下表中。
-
时尚MNIST:30个GA运行
-
MNIST:GA一次实际
运行GA后,最佳架构是FT(完全训练)(在第六节讨论)。
使用Python v3.6、PyTorch v1.4框架和NVIDIA Tesla K80 GPU加速的CUDA 10实现混合分类架构。实验是在p3.2xlarge亚马逊P3实例上运行的
模型评估的指标
所有十个班级的准确性 "和 "每个班级的准确性 "分别评估。
六、结果 +讨论
A) 时尚MNIST
所提方法的计算成本
- 每次运行:约18小时
- 整体实验:共540小时(GPU)。
健身函数的值随着每一代的增加而增加。原因是什么?这是因为所使用的遗传算子在探索和利用基因库中的种群之间有很好的平衡。
从图7中可以考虑的是。
- 准确率在前十代中飙升。
- 从那时起,就有了轻微的增长。
由于对最大层数的限制,搜索空间受到限制
在架构的初始化中增加最大层数,不是比增加代数或母体的数量更有价值吗?
原因)因为可以利用交叉和变异的特性来增加初始架构的多样性,更好地探索搜索空间。
图7 所提算法在时尚MNIST数据集上的置信区间
图8. 可以从哪些方面考虑
实验中发现的30个最佳架构的完全训练结果如图8所示。
最佳网络:93.76% 最差网络:92.27
平均准确率93.13%,95%的置信区间(92.97%和93.30%之间)→表明基于GA的方法可以达到稳定的准确率。
图8.充分训练后的最佳网络结构结果(无离群值)。
表二。 每个班级的最佳架构
- 裤装、凉鞋、运动鞋、包和踝靴的准确率高达>96%。
- 套头衫、T恤/上衣、外套和衬衫的准确率较低→正如预期,由于图像的相似性,准确率较低。
- 没有极低的辨别精度,都在79%以上。
表二 按类别划分的准确率
与其他方法的比较
(+)表示所提出的方法具有较高的分类精度,(-)表示该方法具有较低的精度
13种方法中,有9种方法的准确性超过了。
与EvoCNN相比。
- evoCNN的最佳精度更高 一个因素是它使用的最大层数比gaCNN高?
- gaCNN的平均精确度更高。
→ gaCNN更有可能在更短的时间内产生持续的高分值
使用GPU,gaCNN 的运行时间 约为18小时(1天内)。
鉴于其他架构优化方法可能需要数天或数千小时,它在时间上也很有用。
表三:提议的算法在测试集上的表现优于大多数竞争对手
B)MNIST。
从Fasion MNIST的结果来看,GaCNN可以说是产生了稳定的结果,没有出现异常值。因此,只运行一次gaCNN以验证其准确性
图9.充分训练后的最佳网络结构结果
表四.
基于类的系统被显示出来,但没有明显的偏差。
表四 各类网络性能(所有训练后的优化架构性能)
表五:与其他方法的比较
gaCNN的准确性超过了 16种方法中的12种。
然而,需要更多的运行来提供该数据集的拟议算法的置信区间。
表五 gaCNN在MNIST手写数据集上的表现更好,在一次运行中超过了16种竞争方法中的12种(所提出的方法的较高分类精度用(+)表示,较低的用(-)表示)。
七、结论与未来工作
提出了一个由CNN组成的混合分类架构,使用GAs进行优化。它采用了新颖的突变操作和全网异质(heterogeneous)激活函数。
算法:可以使用连接和层数类型不太复杂的范式来确定有竞争力的架构确定最佳NN所需的天数是只有1天
未来的工作。
- 更多的计算能力
可以用更复杂的数据集,如CIFAR-10和CIFAR-100,进一步进行实验。 - 开发了代用模型来近似健身功能。
在探索深度学习架构的过程中能否实现更高的效率? - 应用于其他NN方法
可扩展到其他网络架构,如RNNs和RCNNs,用于其他数据集,包括不同类型的网络
与本文相关的类别