机器之心原创
作者:立早
修改:H4O
本文是一篇关于神经网络紧缩范畴的论文解读,通过对ICCV 2019中的三篇论文进行剖析,读者可以了解现在的开展趋势。
神经网络紧缩方向是现在深度学习研讨的一个抢手的方向,其首要的研讨方向是紧缩,蒸馏,网络架构查找,量化等。在 ICCV2019 中,不少的研讨单位和学者都宣布了神经网络紧缩方向的论文。本文首要以其间三篇论文来研讨神经网络紧缩的现在开展趋势。
论文 1:依据元学习的模型紧缩《metaPruning: meta Learning for Automatic Neural Network Channel Pruning》
论文地址:https://arxiv.org/abs/1903.10258
1 论文宗旨概述
meta learning 论文是旷世研讨院提出的一种神经网络紧缩办法。通道剪枝 [1] 作为一种神经网络的紧缩办法被广泛的完结和使用,一般剪枝算法通过对预练习的大网络裁剪非必须的通道,之后微调,得到终究的剪枝网络。跟着 AutoML[2] 的开展,metapruning 使用 autoML 的主动寻觅最优结构的特色,脱离了人工规划的限制以及补偿剪枝算法的依靠数据的缺少。本文从元学习的视点动身,直接用元学习得到剪枝网络(pruned networks)的结构以及自生成权重,而不是保存原始网络的重要参数。
2 办法:
近年来,有研讨 [3] 标明不管是否保存了原始网络的权值,剪枝网络都可以到达一个和原始网络相同的准确率。因而,通道剪枝的实质是逐层的通道数量,也便是网络结构。鉴于此项研讨,metapruning 决议直接保存裁剪好的通道结构,差异于剪枝的裁剪哪些通道。
本文提出来一个 meta network,名为 PruningNet,可以生成一切候选的剪枝网络的权重,并直接在验证集上评价,有用的查找最佳结构。
Pruningnet training
PruningNet 是一个 meta network,以一组网络编码向量 (c1,c2,,,cl) 为输入,输出为剪枝网络的权重。一个 PruningNet 的练习办法如下图 (1) 所示:
图(1)PruningNet 的随机练习办法
图 (1) 中,PruningNet 由多个 block 组成,其间的每个 block 由两个全衔接层组成。
在前向进程中,PruningNet 以网络编码向量(即剪枝网络的每层通道数)为输入,生成权重矩阵。一起,剪枝网络以网络编码向量中的数值为输出通道,并将生成的权重矩阵裁剪匹配剪枝网络的输入输出。关于一个 batach 的输入图画,咱们可以核算带权重的剪枝网络的前向丢失。
在反向进程中,本文并不是更新剪枝网络的权重,而是核算 PruningNet 的梯度,更新 PruningNet 的权重(全衔接层参数)。
在整个练习进程中,因为一切的操作都是可微的,所以可以进行端到端的学习。通过随机生成不同的网络编码向量,可以得到不同的剪枝网络结构。
Pruned-network search-evolutionary algorithm
本文中,网络向量编码为 pruned networks 的基因。在硬束缚的前提下,咱们首要随机挑选很多的基因并取得相关的剪枝网络的准确率。挑选前 top k 的基因,对其做变异和穿插,生成新的基因。一起对不符合要求的基因增加束缚来消除。如此迭代数次,终究可以得到既满意束缚又取得最高准确率的基因。详细算法如图(2)所示:
图(2)进化查找算法
3 试验和成果
图(3)mobilenetV1 结构试验
图(4)mobilenet V2 试验
图(3)(4)标明 metaPruning 比较较一般基线模型比较,metaPruning 得到的结构在功率和 top1 上都有较大的优势。
4 总结
本文提出的 metaPruning 的办法,从实质上来讲归于一种结构查找的办法。跳出传统剪枝的思路,不仅仅可以去除数据的束缚,一起避免了微调的耗时。
该办法将依据不同的束缚参加查找中,灵敏调整算法;
可以应对带 short-cut 的网络结构;
端到端的学习非常高效,且无需更新剪枝网络的权重。
可是,这个网络的生成进程中,需求留意以下的几个问题:
(1)对练习的硬件要求,PruningNet 和生成的剪枝网络一起在练习进程中,是否带来了较大的 GPU 资源的耗费,导致生成进程较慢。
(2)在生成进程中虽说对样本不做要求,可是简略的几个 batch 的样本对模型的影响应该比较大。
参考文献
[1] Hao Li, Asim Kadav, Igor Durdanovic, Hanan Samet, and Hans Peter Graf. Pruning lters for ef cient convnets. arXiv preprint arXiv:1608.08710, 2016.
[2] Tien-Ju Yang, Andrew Howard, Bo Chen, Xiao Zhang, Alec Go, Mark Sandler, Vivienne Sze, and Hartwig Adam. Netadapt: Platform-aware neural network adaptation for mobile applications. In Proceedings of the European Conference on Computer Vision (ECCV), pages 285–300, 2018.
[3] Zhuang Liu, Mingjie Sun, Tinghui Zhou, Gao Huang, and Trevor Darrell. Rethinking the value of network pruning.arXiv preprint arXiv:1810.05270, 2018.
论文 2:无需数据的蒸馏办法《Data-Free Learning of Student Networks》
论文地址:https://arxiv.org/abs/1904.01186v1
该篇论文是华为提出的一篇蒸馏方向的论文,其首要的立异点是提出的蒸馏进程不需求原始练习数据的参加。
1 论文概述
一般来说,常识蒸馏需求原始练习数据的参加,才干到达一个较好的蒸馏作用,那么在缺少原始数据乃至无数据的时分,或许,教师模型只知道接口不知道其模型结构的时分,怎么才干到达一个蒸馏的作用呢?此文章的动身点就在此,文章使用 GAN 生成图画的特性来生成蒸馏所需数据。
2 Data-free 网络紧缩办法
在神经网络紧缩范畴,SVD(singular value decomposition)[1],KD(knowledge distillation)[2],根本都是需求数据驱动的,在有原始数据参加的时分能到达一个较好的紧缩作用。无需数据驱动的紧缩办法较少,比方兼并相似单元 [3],可是这些办法的作用并不如数据驱动的办法。
GAN 生成练习样本
网络一般被用与生成样本,包含生成器 G 和区分器 D。关于一个一般的 GAN 网络而言,给定一个带噪声的向量 z,其丢失函数表明为公式(1):
使用公式(1)别离练习 G 和 D。与一般 GAN 网络不同的是,传统 GAN 网络中,D 网络关于输入的图画,其输出是判别真假的二分类。在本文中,咱们给定 D 为预练习完结的教师网络,其输出是图画的类别数。为了习惯这种状况下的 GAN 网络,本文使用新的丢失函数来更新练习 G。详细的公式如下所示:
其间:
(1)Loh 表明 one-hot loss , 此刻的 D 网络输出为类别数。假定对一个输入为X= 的图画来说,D 的输出为 ,依据输出得到的猜测的 label 为 ,Loh 则可以表明为输出和猜测值之间的穿插熵丢失:
(2)La 表明激活丢失,假如一个输入图画是实在的图画而不是随机向量生成的,那么在 D 网络中,通过 D 提取进过全衔接层之前得到的输出值 ft,其激活值应该为一个较高的值。所以,La 可以表明为如下的公式:
(3)Lie 丢失表明的信息熵的巨细。用于衡量生成样本中的类别平衡状况。关于给定的输出调集 ,每个类别的频率散布可以表明为输出的均值。那么 Lie 可以用如下表明:
使用 GAN 蒸馏的算法进程
本文算法首要分为两步:
第一步,练习生成器 G。使用预练习的给定教师模型作为 D,练习生成器 G。
第二步,练习学生网络。使用 G 网络生成练习样本,然后用这些样原本进行常识蒸馏。其蒸馏的暗示进程如图(1)所示:
图(1)使用 GAN 的常识蒸馏进程
3 试验成果
图(2)无数据蒸馏办法在 MNIST 上的试验
图(3)在 CIFAR 上的试验
从图(2)(3)中,咱们可以看出无数据的 GAN 蒸馏办法比较较其他无数据的蒸馏办法可以大幅度的提高蒸馏的作用。
4 总结
本文从无数据的状况动身,考虑到了蒸馏范畴的一个比较常见的状况。本文提出的使用 GAN 的办法新颖且有用,使用 GAN 学习原始数据的散布状况,做到了一个神似而形不似的学习。可是这种 GAN 的生成样本在蒸馏进程中保存了数据的散布,从而在蒸馏中也能到达一个好的作用。
可是,这种使用 GAN 的生成数据的办法在笔者看来是不是更适合作为一种数据增强的办法,从练习时刻上来看,参加了 G 网络的生成进程,练习进程较长且不太好操控收敛状况。
参考文献
[1] Emily L Denton, Wojciech Zaremba, Joan Bruna, Yann LeCun, and Rob Fergus. Exploiting linear structure within convolutional networks for ef cient evaluation. In NIPS, 2014.1, 2
[2] Geoffrey Hinton, Oriol Vinyals, and Jeff Dean. Distilling the knowledge in a neural network. arXiv preprint arXiv:1503.02531, 2015. 1, 2, 3, 5, 7, 8
[3] Suraj Srinivas and R Venkatesh Babu. Data-free parameter pruning for deep neural networks. arXiv preprint arXiv:1507.06149, 2015. 2, 3
论文 3:依据样本之间相关性的蒸馏办法《Correlation Congruence for Knowledge Distillation》
论文地址:https://arxiv.org/abs/1904.01802
这篇论文是由商汤提出的一篇蒸馏方向论文,其首要的亮点在于研讨样本之间的相关性,使用这种相关性作为蒸馏的常识输出。
1 论文概述
常识蒸馏办法 [1] 是教师-学生网络的根底办法,一般的常识蒸馏办法都是重视实例(instance level)层的束缚,可是这种束缚经常会疏忽多示例之间的相关性。本文提出了一种依据实例之间的相关性的蒸馏办法。
2 Correlation Congruence 常识蒸馏
传统蒸馏界说
传统的蒸馏办法首要是用 kl 散度等间隔衡量的办法来表征教师网络和学生网络的特征之间的间隔,例如公式(1)和(2)所示:
其间,fs 和 ft 别离表明学生和教师网络的特征,ps 和 Pt 别离表明学生和教师网络的 softmax 输出值。
这种蒸馏办法重视的是特征图之间的间隔,可是因为学生网络和教师网络在拟合才能实质上的间隔,这种蒸馏办法并不能学到一个恒等映射使得学生网络可以更好的学习。
样本间的联系一致性(correlation congruence):
不同于之前的办法,CCKD(correlation congruence knowledge distillation)办法不仅仅重视样本实例层面的一致性,一起也重视实例之间的一致性,如图 1 所示:
图 1:CCKD 算法图示
如图 1 所示,CC(correlation congruence)为图中最右边的部分,表明实例之间的相关性信息,IC(instance congruence)则是实例层的相关信息。
咱们用 Ft 和 Fs 来别离表明教师学生网络的特征表明的调集。可以用公式表明如下:
界说 C 为相关性矩阵,其间每一个元素表明 xi 和 yi 的联系,因而可以表明为公式(5):
其间,间隔衡量的办法可以有很多种。依据公式(5),咱们可以得到 CCloss。如公式(6)所示:
蒸馏算法
CCKD 算法的 loss 由三部分组成,如公式(7)所示:
其间 Lce 为穿插熵所示,Lkd 为 t-s 之间的实例层的蒸馏丢失,Lcc 则是实例间一致性的丢失。
3 试验成果
图 2 CCKD 算法在 mnist 的试验
图3 CCKD 算法在 ImageNet1k 的试验
图 4 CCKD 在 MSMT17 的试验
4 总结
在 KD 范畴中,[2] 文章也提出来相似的思维,用特征实例之间的间隔来做常识蒸馏,就思维上来说并无差异。所以,假如从立异性上来说,本文应该比照平等论文的思维比照。
本文在做蒸馏的时分用上了三个丢失的结合,做了充沛的试验证明算法的有用性。可是,在之后的研讨中,三种丢失的比重也是一个值得研讨的方向。
参考文献
[1] G. Hinton, O. Vinyals, and J. Dean. Distilling the knowledge in a neural network. arXiv preprint arXiv:1503.02531, 2015.1, 2, 3, 5, 6
[2]Passalis N , Tefas A . Learning Deep Representations with Probabilistic Knowledge Transfer[J]. 2018.
作者介绍:工学硕士,研讨方向为模式辨认。现在从事人脸辨认、检测和神经网络紧缩方向的作业。期望可以一向学习,多多沟通,不断进步。
机器之心「SOTA模型」:22大范畴、127个使命,机器学习 SOTA 研讨一扫而光。