一种轻量、无需训练的神经网络结构搜索算法ZenNAS
背景设计高性能的深度神经网络是一项具有挑战性的工作,需要设计人员拥有丰富的专业知识以及调参经验。Neural Architecture Search(NAS)降低了从业人员设计训练网络的难度。NAS主要涉及模型结构的生成和精度预测两部分。常见的生成算法包括均匀采样,进化算法和强化学习。精度预测包括暴力计算,训练预测器预测和单次超网络训练预测(one-shot)。
当前构建高质量预测器的主要挑战是庞大的计算代价。暴力计算和训练预测器的方法均需要训练可观数量的网络。one-shot可以通过权重共享减少训练代价,但仍需要训练一个超大网络,并且有研究发现,基于超大网络的方式得到的模型精度与模型实际精度不一致。
本文介绍一篇使用zero-shot方法评估模型的论文ZenNAS。论文中利用深度神经网络的表达能力与模型精度呈正相关的关系,设计了一种测量网络表达能力的方法Zen-Score。论文中的方法受到了近期深度学习研究的启发,在相同数量的神经元下,深度模型比浅层模型有更高的表达能力。根据统计学习理论中的偏差-方差平衡内容,增加深度网络的表达能力意味着更小的偏差误差。当训练集足够大时,方差误差将接近0。这意味着表达能力更强的网络可以减少由偏差误差决定的泛化误差。这些理论结果与大规模深度学习实践一致。
论文使用Zen-Score搜索出的深度神经网络,在ImageNet数据集上获得最高83.6%的精度,同时模型的推理时间也被约束在特定范围内。
模型表达能力
符号说明
这里先对常用的符号进行说明,对于L层网络可以用函数表示成 https://www.zhihu.com/equation?tex=f%3A%5Cmathbb%7BR%7D%5E%7Bm_0%7D%5Crightarrow%5Cmathbb%7BR%7D%5E%7Bm_L%7D ,其中 https://www.zhihu.com/equation?tex=m_0 是输入维度, https://www.zhihu.com/equation?tex=m_L 是输出维度。 https://www.zhihu.com/equation?tex=x_0%5Cin%5Cmathbb+R%5E%7Bm_0%7D 表示输入图片。相应的第层的输出特征图表示为 https://www.zhihu.com/equation?tex=x_t 。第层有 https://www.zhihu.com/equation?tex=m_%7Bt-1%7D 个输入通道和 https://www.zhihu.com/equation?tex=m_t 个输出通道。卷积核为 https://www.zhihu.com/equation?tex=%5Ctheta_t%5Cin%5Cmathbb+R%5E%7Bm_t%5Ctimes+m_%7Bt-1%7D%5Ctimes+k+%5Ctimes+k%7D 。图片分辨率 https://www.zhihu.com/equation?tex=H%5Ctimes+W 。小批量为 https://www.zhihu.com/equation?tex=B ,均值 https://www.zhihu.com/equation?tex=%5Cmu 方差 https://www.zhihu.com/equation?tex=%5Csigma%5E2 的高斯分布表示为 https://www.zhihu.com/equation?tex=N%28%5Cmu%2C%5Csigma%29 。
在深度学习的理论研究中,广泛使用的是普通的卷积神经网络(vanilla convolutional neural network,VCNN)。普通网络的主干由多个卷积层堆叠而成,每层包括一个卷积操作,紧跟一个RELU激活函数。主干中的其他所有成分如残差连接(residual link)、批量归一化(Batch Normalization)等被移除。主干之后是全局平均池化层(GAP),再跟一个全连接层。最后使用soft-max运算将网络输出转换为标签预测。因为网络主干部分包含大部分所需信息,因此仅使用主干部分测量网络的表达能力。
论文中也解释了去掉网络附加结构后,不会显著影响网络的表达能力。如BN层可以使用卷积核融合,将其并入到卷积核中。自注意力机制是特征图的线性组合,得到的结果仍在同一子空间内。对于非RELU激活函数,可以将其替换为RELU。上面这些调整对大多数非VCNN网络适用。实际上几乎所有单分支前馈网络均可使用前面的操作转换为普通网络。
表达能力代理-Score
论文研究了最近有关深度网络表达能力的理论研究,发现这些研究存在一些共同点,就是对于一个普通的网络可以在激活模式上分解成分段的线性函数,见引理1。
Lemma 1. 网络第层的激活模式表示为https://www.zhihu.com/equation?tex=%5Cmathcal+A_t%28x%29 。那么对于任意普通网络https://www.zhihu.com/equation?tex=f%28%5Ccdot%29 ,
https://www.zhihu.com/equation?tex=f%28x%7C%5Ctheta%29%3D%5Csum_%7B%5Ccal+S_i%5Cin%5Ccal+S%7D%5Ccal+I_x%28%5Ccal+S_i%29+%5Cit+W_%7B%5Ccal+S_i%7D+x+%5C%5C
其中https://www.zhihu.com/equation?tex=%5Cmathcal+S_i 是由https://www.zhihu.com/equation?tex=%5Ccal+A_%7B%5Crm+1%7D%28x%29%2CA_%7B%5Crm+2%7D%28x%29%2C%5Cdots%2CA_%7B%5Crm+L%7D%28x%29 决定的凸多面体;https://www.zhihu.com/equation?tex=%5Ccal+S 是https://www.zhihu.com/equation?tex=R%5E%7Bm_0%7D 中的有限凸多面体集合;如果 https://www.zhihu.com/equation?tex=x%5Cin%5Ccal+S_i ,则https://www.zhihu.com/equation?tex=%5Ccal+I_x%28S_i%29%3D%5Crm+1 ,否则为https://www.zhihu.com/equation?tex=%5Crm+0 ; 是https://www.zhihu.com/equation?tex=R%5E%7Bm_L%5Ctimes+m_0%7D 大小的系数矩阵。
根据推论1知道,任何普通网络是由凸多面体https://www.zhihu.com/equation?tex=%5Ccal+S%3D%5C%7BS_%7B%5Crm+1%7D%2C+S_%7B%5Crm+2%7D%2C%5Cdots%2CS_%7B%5Clvert+S%5Crvert%7D%5C%7D 分割成的分段线性函数的集合,其中 https://www.zhihu.com/equation?tex=%5Clvert+%5Ccal+S+%5Crvert 为线性区域的数量。在几个研究中均使用线性区域的数量 表示表达能力。但是这种方法存在两个限制。一是对于大型网络,计算 是不可行的,二是没有考虑到每个 的表达能力。第一个限制是由于对于大型网络,线性区域的数量是呈指数增长的。对于第二个限制的说明,考虑线性分类器的高斯复杂度,见引理2。
Lemma 2. 对于线性函数类https://www.zhihu.com/equation?tex=%5C%7Bf%3Af%28X%29%3DWX%5C++s.t.%5Cparallel+W%5Cparallel_F%5Cle+G%5C%7D ,它的高斯复杂度的上界由https://www.zhihu.com/equation?tex=%5Ccal+O%28%5Cit+G%29 确定
推论2说明高斯复杂度衡量的线性函数的表达能力是由参数矩阵https://www.zhihu.com/equation?tex=W 的https://www.zhihu.com/equation?tex=F 范数控制的。从引理1和引理2出发,可以得到测量网络表达能力的定义:
Definition 1 (VCNN的 ). 普通网络的高斯复杂度的期望定义为
https://www.zhihu.com/equation?tex=%5CPhi%28f%29%3Dlog%7BE_%7Bx%2C%5Ctheta%7D%5C%7B%5Csum_%7B%5Ccal+S_%7B%5Cit+i%7D%5Cin+%5Ccal+S%7D%5Ccal+I_x%28%5Ccal+S_%7B%5Cit+i%7D%29%5Cparallel+%5Cit+W_%7B%5Ccal+S_%7B%5Cit+i%7D%7D%5Cparallel_F%5C%7D%7D+%3Dlog%7BE_%7Bx%2C%5Ctheta%7D%5C%7B%5Cparallel%5Cbigtriangledown_x+f%28x%7C%5Ctheta%29%5Cparallel_F%5C%7D%7D+%5C%5C
定义1中使用高斯复杂度的期望测量网络的表达能力或 。因为VCNN网络是线性函数的组合,很自然地会通过计算每个线性区域内线性函数的高斯复杂度的平均值表示网络的表达能力。从某些先验分布随机采样 和https://www.zhihu.com/equation?tex=%5Ctheta ,然后对https://www.zhihu.com/equation?tex=%5Cparallel+W_%7B%5Ccal+S_i%7D%5Cparallel_F 取平均。这等价于计算https://www.zhihu.com/equation?tex=f 对 的梯度范式的期望。这样就得到了计算模型 的公式。
接下来,论文说明了直接计算深度网络的
页:
[1]