DARTS是可微分网络架构搜搜索,PC-DARTS是DARTS的拓展,通过部分通道连接的方法在网络搜索过程中减少计算时间的内存占用。接下来将会结合论文和开源代码来详细介绍PC-DARTS。
1 总体框架
在PC-DARTS的具体实现过程主要分为两个步骤:一是网络架构搜索;二是网络训练,其中第二个部分的内容与一般深度学习任务相同,这里将会详细介绍网络架构具体是如何通过机器自动搜索出来的。
所有的NAS方法主要由搜索空间、搜索策略决定,一般流程如图1所示。
搜索空间定义了网络架构是在离散的还是连续的空间中进行搜索,以及在多大的空间中进行搜索,理论上希望搜索空间能够涵盖网络的所有可能性,这样才可能找到最优的网络结构。
搜索策略定义了在某个特定的搜索空间中如何去寻找最优解,为了便于理解,我们可以类比于一般机器学习中的网络参数优化方法(SGD、ADAM等)
1.1 搜索空间
1.1.1 限定条件
前面我们提到理论上搜索空间应该尽可能大,但在实现过程中需要考虑到时间和设备的约束,搜索空间一般都是在特定前提条件下的有限子集空间。PC-DARTS的前提条件有以下几点:
性能较好的卷积神经网络由特定数量和特定结构的基本单元堆叠而成
每个基本单元由六个节点(网络层)组成,其中前两个节点为输入层固定不变,四个节点为中间节点需要通过搜索确定
每个基本单元的输入为前两个基本单元的输出(即每个基本单元与前两个基本单元相连)
每个基本单元的输出为其中间节点计算结果在深度通道上的连接(concat)
从以上限定条件中不难发现,搜索空间实际上就是四个节点之间数据的流动方式(operations)组成的空间,图2中(a)中的问号即表示待确定的操作。
1.1.2 重要概念
DARTS的搜索空间是连续的,在连续的搜索空间中由两个重要的概念:混合操作(MixedOp)和超网络(SuperNet)。
一般网络的每一层代表着一种操作,这个操作可能是卷积、池化、激活等函数,但在超网络中,每一层网络是由多种操作组合起来的超参数,每一种操作将会对应一个系数
基本单元的初始结构可以由图2中(b)表示,不同颜色的线条表示不同的操作,由这种基本单元构成的网络称为超网络。
PC-DARTS对DARTS做了进一步的修改,该方法将网络提取的特征在通道维度上进行1/4采样,只对计算1/4通道的特征进行处理,处理后的特征再与剩余的特征进行连接(concat),计算公式如下:
部分通道连接有好处也有坏处,好处是能够减少网络搜索过程中的内存占用,坏处是弱参数操作(pool、skip connect)在搜索过程中可能更容易被选择,为此方法提出了边缘归一化来抑制该现象。边缘归一化为基本单元中的第i层网络的每一个输入分配了一个β参数,公式表示如下:
1.2 搜索策略
梯度下降的搜索策略,把架构参数

本文深入解析PC-DARTS,一种基于DARTS的可微分网络架构搜索方法,旨在减少计算资源的使用。文章详细介绍了其搜索空间、搜索策略,特别是部分通道连接的概念和优势,以及边缘归一化技术。同时,提供了代码详解,包括搜索网络的构建和训练流程。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



