2023年TEVC SCI1区TOP:基于粒子群算法的紧凑神经结构搜索图像分类
目录
- 1.摘要
- 2.算法原理
- 3.论文结果
- 4.参考文献
- 5.代码获取
1.摘要
卷积神经网络(CNN)作为深度学习中一个卓越的计算模型,其架构关键性地推动了多种任务的性能突破。随着神经架构搜索(NAS)技术的兴起,设计网络架构的过程已趋向自动化。众多NAS方法不仅挖掘出超越人工设计的新型CNN架构,但面临的主要问题包括高计算复杂性及其对深度模型部署的负面影响,以及限制架构设计灵活性的问题。针对这些挑战,本研究提出了一种基于进化计算(EC)的紧凑且灵活的NAS方法。通过采用参数高效的移动反转瓶颈卷积块作为基本组件,确保了紧凑架构的初步质量。此外,本文还设计了一个两级可变长度粒子群算法(PSO),用来优化CNN的微观和宏观架构。
2.算法原理
NAS的目标是在预定义的搜索空间
A
\mathcal{A}
A中自动探索最优的网络架构
A
∗
A^*
A∗,该架构在训练
后可以在评估集
D
e
v
a
l
D_\mathrm{eval}
Deval上实现最小的损失。这个过程可以表述为:
{
A
∗
=
arg
min
A
∈
Ω
A
L
(
A
,
w
∗
A
,
D
e
v
a
l
)
s
.
t
.
w
∗
A
=
arg
min
w
A
L
(
A
,
w
A
,
D
t
r
a
i
n
)
\left.\left\{ \begin{array} {l}\mathcal{A}^*=\arg\min_{\mathcal{A}\in\boldsymbol{\underset{A}{\Omega}}}\mathcal{L}(\mathcal{A},\boldsymbol{w}^*\mathcal{A},\mathcal{D}_{\mathrm{eval}}) \\ \mathrm{s.t.}\quad\boldsymbol{w}^*\mathcal{A}=\arg\min_{\boldsymbol{w}_{\mathcal{A}}}\mathcal{L}(\mathcal{A},\boldsymbol{w}_{\mathcal{A}},\mathcal{D}_{\mathrm{train}}) \end{array}\right.\right.
{A∗=argminA∈AΩL(A,w∗A,Deval)s.t.w∗A=argminwAL(A,wA,Dtrain)
由于搜索空间极为广阔,初始种群应具有较大的多样性,以有利于演化过程的进行。接下来的演化过程是算法的核心部分,包含适应度评估和两级粒子群优化(PSO)更新。表示CNN架构的粒子由两部分组成:1)微观层级,2)宏观层级。微观层级的子粒子用于编码每一层的配置,称为sp-conf,通过一个变长连续PSO演化方案进行更新。另一个编码层间连接的子粒子,称为sp-conn,则通过二进制PSO(BPSO)更新方法进行演化。
所提出的方法通过下采样原始训练集来生成一个减少的训练数据集,并将其划分为两部分,用于架构搜索和评估。在每次演化循环中,群体中的sp-conf首先被更新,接着更新sp-conn,并对新进化的候选CNN架构进行训练,使用小批量随机梯度下降(SGD)在减少的训练集 D t r a i n D_{train} Dtrain上进行训练,并采用设计良好的早停策略,最后在减少的训练集的适应度评估集 D e v a l D_{eval} Deval上进行评估,获得其适应度值,如分类准确率。最终,一旦满足停止准则( β \beta β次架构搜索迭代),最佳的CNN架构(EPCNAS-A)将被输出并在训练集和测试集上完全训练并测试,连同其两个上采样变体EPCNAS-B和EPCNAS-C(通过加倍和四倍增加卷积层的过滤器数量),以获得它们在任务中的最终性能。
搜索空间设计
CNN架构由卷积层、池化层和全连接层组成。多个卷积和池化层有效地从输入数据中提取特征,而全连接层用于分类。我们重点演化CNN中的卷积部分(特征提取网络),并通过演化设计出一个新的架构。所提出的CNN架构以标准卷积层开始,以全局平均池化(GAP)层和两个全连接层结束。架构中的中间部分是一个可演化的网络,包含九个计算节点,每个节点代表一个不同配置的计算模块,节点5和7为池化层,其他节点为修改后的MBConv块。MBConv模块是一种轻量级且高效的计算模块,其优势在于允许输入和输出特征图数量不一致,并且通过ECA模块替代传统的SE块,能够更高效地捕捉通道间的交互。
两级编码策略
本文提出了一种两级粒子群算法来有效地搜索CNN架构的参数,该方法通过将架构的演化过程分为两个层次:微观层级和宏观层级,以减少编码复杂性并提高计算效率。其中,粒子表示一个完整的CNN架构,由两个子粒子组成:sp-conf用于网络配置,sp-conn用于网络连接。在sp-conf的编码中,每个粒子维度代表一个计算节点(MBConv块或池化层),并采用可变长度表示。该编码策略通过调整过滤器数量和池化类型来表示每层的配置,从而在搜索空间中探索不同的网络深度和层配置。此外,编码还包括节点类型和操作位,用于调整网络的深度和计算复杂性,确保高效的架构搜索。对于sp-conf的更新,采用标准的连续PSO方法,允许节点的进一步分割以生成新的架构配置。通过这种方式,网络的深度和宽度可以在搜索过程中灵活调整,进而寻找最优的网络架构。
sp-conn的编码用于表示节点之间的连接信息,灵感来源于GeNet,与GeNet仅在不同阶段的卷积网络中连接池化层不同,我们的方法演化了整个特征提取网络,包含池化层,使得架构更具通用性和灵活性。
3.论文结果
4.参考文献
[1] Huang J, Xue B, Sun Y, et al. Particle swarm optimization for compact neural architecture search for image classification[J]. IEEE Transactions on Evolutionary Computation, 2022, 27(5): 1298-1312.