来源:蚂蚁金服,出品:AI 科技大本营(ID:rgznai100)
一年一度在人工智能方向的顶级会议之一 AAAI 2020 于 2 月 7 日至 12 日在美国纽约举行,旨在汇集世界各地的人工智能理论和领域应用的最新成果。以下是蚂蚁金服的技术专家对入选论文《基于可解释性通道选择的动态网络剪枝方法》与《无语预训练的网络剪枝技术》做出的深度解读。
让我们先来看看《基于可解释性通道选择的动态网络剪枝方法》。
一、基于可解释性通道选择的动态网络剪枝方法
动态剪枝网络可以通过根据不同的输入动态决定推理路径,实现实时线上加速目的。之前的方法大多直接对每个权重通道输出连续重要值,来决定权重的使用情况,但缺乏清晰可理解的剪枝过程。
本文中我们提出显式建模权重通道离散选择过程,以便于实现各稀疏多样的运行时推理路径。与此同时,借助于可理解的逐层权重通道选择过程,我们可以清晰地可视化出模型决策过程以供模型理解。同时我们还发现正常样本和对抗样本在动态网络中有着明显不同的决策路径。基于此我们提出一种高效的对抗样本检测方法。
动态剪枝方法相比于静态剪枝方法,可以在实时计算时进行网络计算路径选择,从而可以针对不同输入进行剪枝。相比于静态剪枝方法只能使用单一压缩网络,动态剪枝方法可以在保留完整模型基础上,选择多样的计算路径。然而已有方法对于计算路径,也即权重通道的选择,是直接产生连续控制门值。这无法反映出清晰可理解的剪枝过程。而且所产生的剪枝决策趋于相同缺乏多样性,而这也实际上退化成为静态剪枝。
在本文中我们提出通过显示建模离散权重通道决策来实现动态剪枝算法。具体来说我们针对每一个计算层(如 CNN 中的卷积层),附属一个决策单元,用以输出对应于一组有限通道选择掩码的概率分布。该分布决定了哪一组通道选择掩码用了提取权重,进行实际上的运算过程。在实验中我们发现该方法可以提供明确且可理解的动态模型决策过程。针对不同输入,模型各层决策单元产生的决策特征与输入类别语义高度相关。
同时我们也观察到对于对抗样本的决策路径与正常样本有显著不同,这反映了模型针对这两大类样本不同的响应特性。我们利用这一现象开发了一种基于动态决策特征的对抗样本检测算法。实验表明我们的动态剪枝网络不仅可以减少模型实时计算量,提高模型预测准确性,同时还可以有效防御对抗样本攻击,构建更为鲁棒的模型。
二、解读
动态剪枝网络中的核心部分为决策单元,其概览总结如上图所示。首先决策单元其接受输入( 为单元参数),产生一个概率分布对应于一组通道选择掩码。而对应于最大概率的选择掩码将被用来构建实际用来运算的权重。在训练阶段,由于存在离散选择输出,在训练过程中为解决不可导问题,我们采用了连续松弛技术,将选择指标重参数化成为:
其中为输出概率,为 Gumbel 随机变量,
为温度参数控制概率聚集度。而对于选择掩码则采用端到端学习,自动调整权重通道重要值。为了使其产生尽量稀疏的通道掩码,我们增加了正则项:
目的是让整体控制门变量稀疏度接近于目标稀疏度r。
我们在 CIFAR10 和 ImageNet 数据上进行实验,下表示总结和其他静态和动态剪枝方法对比结果。可以看出相比于其他剪枝方法,我们的动态剪枝策略可以达到更高的动态剪枝率和预测性能。
除了带来剪枝结果的提升,我们还发现将各层决策单元对每个样本所产生的决策概率拼接在一起,作为一种新的依赖于样本输入的“决策特征”,则此特征与样本类别有强相关性。同时该特征对于正常样本和对抗样本有明显的区分特性。
上图展示了 CIFAR10 上 50000 个样本共十类决策特征在三种对抗攻击下 UMAP 可视化方法下的结果。可以看出,彩色点代表正常样本点,其相似类别的决策特征有明显聚集特性;而灰色代表所有对抗样本点,会发现与所有正常样本点均有区分。鉴于此,我们利用简单的二分类器,在此决策特征上进行训练,实现对抗样本检测算法。下表展示了我们提出的对抗样本算法和其他检测算法的对比,我们的算法均取得了检测性能的提升。
三、前景
在蚂蚁金服中,对于异常样本和对抗攻击样本的检测防御至关重要,因为这影响着服务模型系统的安全性和稳定性。上文从动态剪枝网络出发,在减少模型实时运算量同时,利用其可理解的决策过程和决策特征,实现对抗样本检测算法,为构建鲁棒安全稳定的机器学习系统提供基础。
四、无语预训练的网络剪枝技术
而说到网络剪枝,不可否认,网络剪枝是一项重要的研究领域,其旨在通过减少神经网络中冗余参数和结构,达到加速推理目的。传统方法遵循固定流程,即先训练一个冗余大网络,然和通过各种剪枝策略决定将不重要的权重通道进行删除,最后再进行微调提升性能。
通过研究发现,我们无需利用预训练及冗余参数即可得到有效的压缩网络结构。实际上我们完全可从随机初始化权重即可得到剪枝结构。因此我们提出全新的无预训练完全从头开始的剪枝流程,可以大大减少剪枝过程开销,并且得到网络结构在充分训练后可以达到更高的预测性能。
随着深度学习网络被广泛应用,减少模型大小和运行延时也成为逐渐关注的需求,这对于部署于边缘移动端设备有实际应用价值。网络剪枝技术即通过去除模型中冗余参数结构,来达到模型压缩和推理加速的目的。
传统网络剪枝方法基本采取三阶段流程,即预训练,剪枝和微调。其中预训练提供冗余参数和结构,剪枝利用不同策略去除参数,微调负责最后进一步提升模型性能。但是这些环节引入了繁琐耗时的网络优化过程,而且最终压缩网络结构及参数和原始模型甚至无依赖关系。因此我们自然提出疑问:是否必需要从一个预训练好的模型中才可以得到剪枝模型结构?
在本文中我们通过实证发现,一个有效的剪枝结构无需从预训练权重得到。实际上预训练权重得到的剪枝结构往往是同质缺乏多样性的,这很有可能限制了更好性能结构的探索。我们发现直接从随机初始化权重即可以剪枝得到更多样且最终性能更好的剪枝结构。这不仅极大的加速了模型剪枝流程,减少费时繁重的训练过程,同时也为模型剪枝领域提供了一个强有力的基准结果。
五、解读
对于一个神经网络f(x;W),其中为输入样本,为W模型参数,为了高效的学习到关于各层权重通道重要性的系数,我们对于每一层权重,按照其通道维度附属一个控制门变量。该变量将会直接与模型输出逐通道相乘,调节每层实际输出响应。因此一个接近于 0 值的控制门代表对应权重通道可以被删除。对于所有控制门变量
,整体优化目标为:
其中为样本对应标签,
为交叉熵损失函数。相比与传统剪枝策略,此处我们有两点不同。第一在优化过程中,不更新模型权重。第二我们使用随机初始化的权重而非来依赖于预训练模型。
在得到一组优化后的控制门值,我们可以设置阈值去决定哪些通道被删除。为此,我们通过一种简单的二分搜索策略来去搜索阈值,使得所对应的剪枝结构刚好满足计算量约束。整体算法总结在此。
我们在 CIFAR10 和 ImageNet 数据集上,针对各种模型进行了广泛的实验。在同样计算量约束下,我们的剪枝方法流程所得到模型可以达到更高的预测性能,更小的模型参数和更少的计算延迟。
六、前景
在蚂蚁金服中,我们存在着诸多移动端设备深度学习模型的应用。为了解决模型在满足计算量和延时的约束下,需要经过手工设计调整实现模型缩减。但这也导致整个流程重复且繁重。我们的研究指出,可以在给定计算约束下,直接从随机网络权重出发,实现压缩结构的搜索。这不仅减少了大量人工调整的环节,也取得了性能更好更高效的模型结构。