化妆品排行榜
  1. 首页 >
  2. 美妆资讯 >
  3. 美妆 >
  1. ICCV 2019 提前看 - 三篇论文,解读神经网络压缩

美妆资讯
ICCV 2019 提前看 - 三篇论文,解读神经网络压缩

机器之心原创

作者:立早

编辑:H4O

本文是一篇关于神经网络压缩领域的论文解读,通过对ICCV 2019中的三篇论文进行分析,读者可以了解目前的发展趋势。

神经网络压缩方向是目前深度学习研究的一个热门的方向,其主要的研究方向是压缩,蒸馏,网络架构搜索,量化等。在 ICCV2019 中,不少的研究单位和学者都发表了神经网络压缩方向的论文。本文主要以其中三篇论文来研究神经网络压缩的目前发展趋势。

论文 1:基于元学习的模型压缩《MetaPruning: Meta Learning for Automatic Neural Network Channel Pruning》

论文地址://p1-tt.byteimg.com/origin/pgc-image/f1c941199ab14b64b7771683018d95e8.jpg" style="width: 650px;">

图(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 filters for efficient 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》

论文地址://p1-tt.byteimg.com/origin/pgc-image/5ef1a8e0d80d4d0695a5da4c03439e94.jpg" style="width: 650px;">

利用公式(1)分别训练 G 和 D。与普通 GAN 网络不同的是,传统 GAN 网络中,D 网络对于输入的图像,其输出是判别真假的二分类。在本文中,我们给定 D 为预训练完成的老师网络,其输出是图像的类别数。为了适应这种情况下的 GAN 网络,本文利用新的损失函数来更新训练 G。具体的公式如下所示:

其中:

(1)Loh 表示 one-hot loss , 此时的 D 网络输出为类别数。假设对一个输入为 X={X1,X2,,,Xn} 的图像来说,D 的输出为 {y1,y2,,,yn},根据输出得到的预测的 label 为 {t1,t2,,,tn},Loh 则可以表示为输出和预测值之间的交叉熵损失:

(2)La 表示激活损失,如果一个输入图像是真实的图像而不是随机向量生成的,那么在 D 网络中,经过 D 提取进过全连接层之前得到的输出值 ft,其激活值应该为一个较高的值。所以,La 可以表示为如下的公式:

(3)Lie 损失表示的信息熵的大小。用于衡量生成样本中的类别平衡情况。对于给定的输出集合 {y1,y2,,,yn},每个类别的频率分布可以表示为输出的均值。那么 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 efficient 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》

论文地址://p1-tt.byteimg.com/origin/pgc-image/0584b33ae02546adb8d40891336bc92b.jpg" style="width: 650px;">

其中,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.

版权声明:CosMeDna所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系删除!

本文链接://www.cosmedna.com/article/553432931.html