Designing Network Design Spaces 翻译笔记(一)

2020年何凯明组的论文,主旨是借助NAS(神经网络搜索)技术,探索出更加一般化的卷积网络设计准则。论文地址:https://arxiv.org/pdf/2003.13678.pdf

简介

设计空间的定义和演绎
这幅图的描述中解释了设计空间和演进方式。简单说来,设计空间是一组参数化的可能得网络结构。我个人理解就是组网时候的约束参数,然后生成了非常多的结构。通过采样设计空间中具体的网络,并且测算他们的误差分布,来描述这个设计空间的好坏。例如设计空间A,经过两步优化之后,得到设计空间B和C,同时B和C的性能比A更优。这个过程其实和手工设计差不多,只是设计的不是单个网络,而是一个设计指导准则或指导意见。
实验中,从一个相对宽松的设计空间出发,加入人工优化的方式,逐步产出一个稳定的低维度通用设计空间,这个设计空间作者称之为 RegNet。所谓稳定是指空间内的网络具有较好的一致性。RegNet 的核心是找到网路宽度和深度之间的线性关系。
作者先从小处着手,探索单 block,少量训练的效果。然后证明这些成果在大范围的训练和 block 叠加的情况下通用适用。最后,通过研究探索出来的 RegNet 中的结构,得到了一些和现有知识有冲突的规律。这些规律具有较好的解释性,能帮助指导设计网络结构。
从 RegNet 总结了几个有趣的规律,比如探索出来的最好的模型有相似的计算结构,大约20个 block 堆叠;没有瓶颈结构;激活函数对于训练加速的影响很大。

设计工具

其实仔细看左侧的图片,和上面右侧图片一致,就是只画了设计空间A。作者在此处介绍了用于描述设计空间的工具:
设计工具样例
比如采样了500个网络,那么n为500,其中每一个网络的误差ei,小于设定的阈值误差e,则加一。记录完所有满足条件的网络后,除以采样总数n,求得占比。可以看到左图横坐标为阈值e,纵坐标是个占比。可以通过比较不同设计空间在某个阈值误差e靠左,曲线下方的面积,来对比出的优劣。
通过对众多网络结构的可视化展示,可以得到设计空间的一些属性和误差之间的关系,进而得到启发。比如那些属性能让网络的误差更小,可以去研究左侧网络的共同点。中间和右侧两张图片就是举例的一些可视化属性和误差的关系。中间图片描述的是网络深度和误差的关系,右侧描述的在第四个 stage 网络宽度和误差之间的关系。蓝色区域覆盖的是最好的一批网络在该属性上分布情况;黑线则是更加头部网络的情况。

初始设计空间 AnyNet

AnyNet的基本结构
这幅图是最开始解释初始设计空间的一幅图。文中作者介绍说网络整体的结构为左侧图a,和通常的卷积神经网络类似。实验时候 stem 和 head 部分固定,并且尽量简单。重点研究的部分是 body。body 部分又固定分为4个 stage,每个 stage 含有完全相同的 block。stage 有 block 数量的参数di 和 block 宽度的参数 wi(就是卷积网络的通道数)。
实验大多都是在带分组卷积的标准瓶颈残差结构上进行,这个结构对应 block。因此初始空间在16个维度上可以有任意参数,4个 stage,每个 stage 有 di 个 block 和 block 的宽度 wi,以及 block 的分组数 gi 和 瓶颈率(bottleneck ratio) bi 。di <=16;wi<=1024且为8的整数倍;bi in {1, 2, 4};gi in {1,2,3…32}。因此整个空间大约(161283*32)4,大约是1018个模型。这个设计空间非常的大,其实对于采样也有很强的技巧要求。
接下来,作者在初始设计空间上进行了一些列控制变量实验:

实验1&2:

演进0
作者首先让所有的 stage 使用相同的瓶颈率,然后采样得到 AnyNet-B。AnyNet-B 和 AnyNet 对比图片如左图。可以看到,两者几乎没有什么区别。图片上 AnyNet-B 有一组参数[39.0|49.2],暂时没看懂,猜测是纵坐标首次大于0%和等于60%时候对应的横坐标 error 值。接着作者在 AnyNet-B 的基础上让所有 stage 使用相同的分组,然后采样得到 AnyNet-C。AnyNet-C 和 AnyNet-B 对比图片如中图。可以看到两者几乎也没什么区别。对于右图,发现一个趋势,bi<=2有更好的误差。
此时,AnyNet-C 大大缩小了原有的设计空间,将原来的16个自由度缩小为10个自由度。以前每个 stage 一个瓶颈率和分组,总共8个;现在变成相同瓶颈率和分组,变成2个。g>1会有更好的表现。:

实验3:

在这里插入图片描述
作者分析 AnyNet-C 中好的和不好的网络结构,发现了一些规律:好的网络的宽度 wi 会随着 stage 增长,翻译成数学语言 wi+1>=wi。从上面图片也能明显看到这个规律,上面一排的网络基本遵循这个规律, 而下排网络普遍违反,因此上排网络的 error 明显小于下排网络。

实验4:

在这里插入图片描述
作者接下来又发现,类似网络的深度和网络宽度也有相似的规律:随着 stage 增加,网络深度越深越容易产生好的模型,翻译成数学语言 di+1>=di。上图的左侧表现的是 AnyNet-D 的宽度规律;右侧对应 AnyNet-E 的深度规律。AnyNet-D 是 AnyNet-C 加上 wi+1>=wi 约束;AnyNet-E 是 AnyNet-D 加上 di+1>=di 约束。

设计空间 RegNet

观测规律1

在这里插入图片描述
左图是作者深入研究了 AnyNet-E 中最好的20个模型划出来的。虽然每个模型有差异,但是大的趋势还是比较明显:wi 随着 di 增加而增加。因此作者提出了一个简单的线性拟合公式:
在这里插入图片描述
用于描述当前 block 的宽度 uj 随着深度 j 的线性关系。为了满足每个 stage 内的 block 有相同的宽度和深度,所以对这个公式做了一些简单变形,以便函数转化为阶梯型:
在这里插入图片描述
先用这个公式去计算出 sj,然后对 sj 做取整操作,然后再按照下面这个公式计算出最终的宽度
在这里插入图片描述
而一个 stage 中有多少个 block 则可以通过这个公式计算
在这里插入图片描述
再回到上图右侧,这两幅图是针对 AnyNet-E 中具体的两个网络。阶梯形的实线部分是网络的真实情况;阶梯形的虚线,是采用上述公式用网格搜索的方式来寻找 w0,wa,wm 三个参数,进而描绘的。可以看到,作者提出来的这一套拟合方式确实能够比较好的描述出 wi 和 di 之间的关系。
在这里插入图片描述

这幅图记录了误差和上述拟合误差之间的关系。可以看到从 AnyNet-C --> AnyNet-D --> AnyNet-E ,设计空间的拟合误差和误差都越来越靠左下方,这也更进一步证实,约贴近作者提出来的拟合公式,越能得到好的网络性能。

观测规律2

在这里插入图片描述
前述步骤是使用这套参数化公式去拟合找到的好模型。现在作者希望用这套公式去生成设计空间 RegNet,然后验证这个设计空间的效果更好。此时的设计空间中 d<64;w0,wa<256;1.5<wm<3;bi 和 gi 同 AnyNet-E。上图的左图就是这个想法的验证。可以看到 RegNet 整体最靠左,要比任何前述的 AnyNet 好。
中图则是在探索 RegNet 框架内, 进一步简化的两个测试:一个是设置 wm=2,另一个是设置 w0=wa。作者出于模型多样性的考虑,并不推荐这两个限制。
右图则显示在 RegNet 空间中有更好的搜索效率,随机搜索了32次都能产生比较好的模型。

RegNet 对 AnyNet 的总结

在这里插入图片描述
这只是一个小阶段的总结,不是全文总结。从表里可以看出来,RegNet 是一个参数化刻画的的设计空间,对比最初的 AnyNet,参数从16个下降到6个,整个空间小了约10次方。而 RegNet 设计空间依然保持了网络的多样性。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值