sgd 参数 详解_代码笔记--PC-DARTS代码详解

f61246a10b915c5e45018de61bf865a8.png

DARTS是可微分网络架构搜搜索,PC-DARTS是DARTS的拓展,通过部分通道连接的方法在网络搜索过程中减少计算时间的内存占用。接下来将会结合论文和开源代码来详细介绍PC-DARTS。

1 总体框架

在PC-DARTS的具体实现过程主要分为两个步骤:一是网络架构搜索;二是网络训练,其中第二个部分的内容与一般深度学习任务相同,这里将会详细介绍网络架构具体是如何通过机器自动搜索出来的。

所有的NAS方法主要由搜索空间、搜索策略决定,一般流程如图1所示。

aba21a2923d7d882f2a1104e0aab8d61.png
图1

搜索空间定义了网络架构是在离散的还是连续的空间中进行搜索,以及在多大的空间中进行搜索,理论上希望搜索空间能够涵盖网络的所有可能性,这样才可能找到最优的网络结构。

搜索策略定义了在某个特定的搜索空间中如何去寻找最优解,为了便于理解,我们可以类比于一般机器学习中的网络参数优化方法(SGD、ADAM等)

1.1 搜索空间

ee9f090d838a0499fe51c2a28424b9a4.png
图2

1.1.1 限定条件

前面我们提到理论上搜索空间应该尽可能大,但在实现过程中需要考虑到时间和设备的约束,搜索空间一般都是在特定前提条件下的有限子集空间。PC-DARTS的前提条件有以下几点:

性能较好的卷积神经网络由特定数量和特定结构的基本单元堆叠而成

每个基本单元由六个节点(网络层)组成,其中前两个节点为输入层固定不变,四个节点为中间节点需要通过搜索确定

每个基本单元的输入为前两个基本单元的输出(即每个基本单元与前两个基本单元相连)

每个基本单元的输出为其中间节点计算结果在深度通道上的连接(concat)

从以上限定条件中不难发现,搜索空间实际上就是四个节点之间数据的流动方式(operations)组成的空间,图2中(a)中的问号即表示待确定的操作。

1.1.2 重要概念

DARTS的搜索空间是连续的,在连续的搜索空间中由两个重要的概念:混合操作(MixedOp)和超网络(SuperNet)

一般网络的每一层代表着一种操作,这个操作可能是卷积、池化、激活等函数,但在超网络中,每一层网络是由多种操作组合起来的超参数,每一种操作将会对应一个系数

,混合操作的表示公式如下:

b644637760dcd27deb2dbd7a1423825b.png
混合操作公式

基本单元的初始结构可以由图2中(b)表示,不同颜色的线条表示不同的操作,由这种基本单元构成的网络称为超网络。

PC-DARTS对DARTS做了进一步的修改,该方法将网络提取的特征在通道维度上进行1/4采样,只对计算1/4通道的特征进行处理,处理后的特征再与剩余的特征进行连接(concat),计算公式如下:

399c3046aff9aec59c90a5b149ba9383.png
部分通道连接的公式

部分通道连接有好处也有坏处,好处是能够减少网络搜索过程中的内存占用,坏处是弱参数操作(pool、skip connect)在搜索过程中可能更容易被选择,为此方法提出了边缘归一化来抑制该现象。边缘归一化为基本单元中的第i层网络的每一个输入分配了一个β参数,公式表示如下:

dcc4b4de8b5380d671af6c7d376159f4.png

1.2 搜索策略

梯度下降的搜索策略,把架构参数

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值