ICML2020 | Prune or Not to Prune?与其剪枝丢掉无用通道,不如将其激活?

吃可爱长大的小学妹 提交于 2020-08-11 22:17:49

  

  本文介绍的是ICML 2020 论文《Channel Equilibrium Networks for Learning Deep Representation》,论文作者来自香港大学罗平组。

  作者 | 邵文琪、罗平

  编辑 | 丛 末

  

  论文地址:https://arxiv.org/pdf/2003.00214.pdf

  1

  前言

  这篇文章主要介绍我们ICML 2020的一个工作——Channel Equilibrium Networks for Learning Deep Representation。卷积神经网络(CNN)中最重要的一个概念就是通道(Channel),与之相关联的基本结构包括卷积层、归一化层(如BN等)。比如卷积中的一个kernel通常对应着一个输出通道,而常用的BN就是在每一个通道内计算相应的统计量。

  大量研究表明,网络中有效通道的数量与CNN的表达能力关系密切。比如,WideResNet通过增加通道数量也就是网络宽度来提升CNN的表达能力,而常用的模型剪枝方法(Prunning)也发现对一个训练好的网络,删去一些不重要的通道并不会对网络性能产生太大的影响。

  在这篇文章中,我们把这些不重要的通道称之为“抑制通道”。抑制通道在特征表示中几乎没有作用,因此网络剪枝即去除抑制通道。与网络压缩不同,本文是为了提升网络的表达能力,因此反其道而行之,一个很自然的想法是,在网络训练过程中,我们可以设法激活抑制通道,使其参与特征的表示学习,从而增加网络的表达能力。更重要的是,当更多的通道都参与特征表示中,不同通道对网络输出的贡献将更加均衡(我们称之为“通道均衡”),这十分有利于提升网络的泛化性能。

  

  图1. 在训练后的VGG网络中,不同“Norm+ReLU-like”基本模块中的抑制通道比例

  2

  抑制通道为何出现、从何而来?如何减少抑制通道数量?

  要减少抑制通道的数量首先需要知道抑制通道通常出现在哪里?以及为什么会出现?

  我们发现经过归一化层(如BN和IN等)和非线性激活层(如ReLU)后的输出特征图中会产生抑制通道。如图1所示,在经过标准训练之后的VGG网络中,不同的“归一化+激活”模块中都存在不同比例的抑制通道。这些“抑制通道”的特征数值通常很小(小于0.01),对特征表示几乎没有贡献,降低了网络性能。特别地,该模块可以公式化表达为),其中x是归一化方法中的标准化特征,可以认为其近似服从标准高斯分布,γ和β是归一化模块中的两个可学习向量,而y表示输出特征图。当y接近于0时,y就表示一个抑制通道。可以证明,y等于0,当且仅当γ充分接近0以及β小于0。也就是说只要设法使得γ不接近0或者β不小于0就能避免抑制通道的产生。

  3

  Channel Equilibrium (CE) 通道均衡模块

  本文提出的CE模块的一个重要性质就是可以显示地增大γ的大小,因此能够有效消除抑制通道。更重要的是,我们发现CE模块可以使得不同通道在特征表示过程中的作用更加均衡,从而增加网络的泛化能力。

  具体而言,CE采用去相关(Decorrelation)的方法白化归一化层的输出,使得导出的特征图的协方差矩阵成为单位矩阵,这样不同通道在量级上就变得各项同性了。与之前的去相关方法不同的是,CE在在批量估计的协方差矩阵的对角上引入自适应的条件方差,为每个输入单独计算协方差矩阵,从而实现样本特异的去相关操作。基于这样的设计,CE可以分为两个互补的分支,批量去相关(BD)和实例再加权(IR),用公式可以表述为:

  4

  CE的基本结构

  如图2(b)所示,BD分支计算一个批量估计的协方差矩阵Σ,然后运用牛顿迭代法计算一个去相关算子,相比于使用传统的SVD分解计算去相关算子,牛顿迭代法节省了大量的计算成本。同时IR分支负责计算输入特异的去相关算子,这里我们采用在参数化方法和attention机制达到这个目的。

  相比于图2(a)中的SE模块,CE结合使用了实例统计量和批量统计量,可以更好地刻画通道之间的关系。同时,CE模块作用于归一化层之后,激活函数之前,因此我们可以将CE模块很方便地应用于各种各样的卷积神经网络中,构建一系列的CENets。比如,图3(c)展示了CE模块如何整合进残差网络中的Bottleneck结构。

  

  图2. SE,CE的结构图以及CE在残差网络中的实现

  5

  CE与纳什均衡

  事实上,CE模块与博弈论中的纳什均衡存在联系。我们可以把每个通道视为策略游戏中的一个player,他们都希望自身能得到最大信息率的输出。同时我们约束每个通道总的输出是有限的,并且通道所有输出的值都非负(注意到这两个约束在卷积网络的背景下是十分合理的,ReLU激活函数保证了输出的非负性)。

  进一步地,考虑通道之间的相互联系的时候,我们可以理解成这些players(通道)正在进行一个非合作策略游戏,在博弈论中通常叫做 Gaussian interference game。已经证明,这类策略游戏存在唯一的纳什均衡解。

  有趣的是,在一种特殊情况下,纳什均衡解析解的形式与为方程(2)中CE的表达式十分相似,这表明提出的CE模块确实鼓励每一个通道都尽可能表达网络的特征信息。更多细节可以查看论文原文。

  6

  实验结果

  (1)CE可以提升各种各样的网络的分类性能。

  首先是在ImageNet上的图像分类实验。可以看到,提出的CE在不同深度的残差网络结构中均能获得显著的提升,CE-ResNet50的top-1分类准确率达到了78.3,甚至超过了ResNet101的baseline。同时,我们注意到在运算量FLOPs和GPU,CPU上的运行时间方面,CE几乎保持了与SE模块一样的测试结果。

  在高效的轻量级网络上,CE依然具有明显的优势。对于MobileNetV2,CE相比于SE在ImageNet上的top-1分类准确率提升了1.1(74.6 vs 73.5)。

  我们发现,CE可以很好的迁移到其他视觉任务中,比如物体检测,在Mask-RCNN框架下,使用预训练的ResNet50模型,多GPU同步的CE模块可以提升AP至42.0。

  

  最后,我们验证提出的CE是否有助于通道均衡,是否能有效地消除抑制通道。

  (2)CE鼓励通道均衡。

  我们运用[6]中的Cumulative ablation curve(CAC)曲线观察卷积网络中的通道是否均衡。对于一个训练好的卷积网络,可以随机切除一些通道,测量只有剩余通道的网络的性能损失,通过这个相对的性能损失,我们可以衡量网络中的通道对网络输出的贡献是否均衡。比如,如果一个网络十分依赖一部分相对重要的通道,那么当网络中的通道不断的被随机切除后,网络的性能会下降的更快。

  通过这个方法,我们验证使用了CE模块的MobileNetV2和ResNet50均能实现更好的通道均衡效果。

  

  (3)CE能有效消除抑制通道。

  根据[7]中的经验,提高weight decay的强度可以增大网络中抑制通道的数量。我们发现,随着weight decay的增大,只使用BN的网络中的抑制通道数量增加,而引入本文提出的CE模块以及CE的子模块BD的时候,抑制通道数量显著降低,即使在很大的weight decay强度下,CE仍然能保持相对高的分类准确性。

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!