Like What You Like: Knowledge Distill via Neuron Selectivity Transfer论文初读
目录
摘要
引言
相关工作
深度网络压缩与加速
知识蒸馏
领域自适应
准备知识
一些符号
MMD(Maximum Mean Discrepancy)
神经元选择性迁移
出发点
公式
讨论
实验
在分类数据集上
在检测数据集上
讨论
不同KT的分析
MMD以外的方法
结论
摘要
将知识迁移看成一种分布匹配问题
通过用一种新的损失函数最小化teacher与student网络间的Maximum Mean Discrepancy (MMD) metric来解决这个分布问题
引言
- 出发点

神经元具有知识选择性特性,比如神经元只对特定的区域或者样本感兴趣,所以作者提出了对齐teacher和student网络间的神经元选择样式分布
最终的损失函数为交叉熵损失和MMD的和
- 本文的贡献
提出了一种新的知识迁移的观点(对其选择样式分布),并提出了新的名叫 Neuron Selectivity Transfer (NST)的蒸馏的方法
在很多数据集上测试,并证明了提出的方法有效
表明提出的方法与其他的知识蒸馏的方法结合
表明知识迁移的方法可以帮助学习更好的特征,并且在其他的视觉任务中(比如目标检测)也可以获益
相关工作
深度网络压缩与加速
网络裁剪:
小数量级的权重是不重要的,可以裁剪,需要特殊的实现
将裁剪看作子集选择和稀疏优化问题
量化和低秩近似
这些方法都可以与作者提出的方法结合
知识蒸馏
KD的优点:软标签一方面可以捕捉类内的变化,另一方面还可以类间的相似性;
KD的缺点:假如是二分类,那么可供蒸馏的信息就很少
Fitnets可以通过中间层的监督来解决KD的问题,但要求严格,当teacher和student能力相差太大,可能会差生不利的影响
AT可以通过注意力机制,只蒸馏与目标强相关的神经元去蒸馏,解决Fitnets的问题,后面会讲到这是作者提出的方法的特殊情况
Flow of Solution Procedure (FSP)计算了两个不同层的特征的Gram matrix,他们认为FSP矩阵可以反应老师教学生的过程
领域自适应
解决的问题是当目标领域的没有标签的时候,如何利用已有的标签,通过对比并减少两个领域的分布差异来训练模型,核心问题是如何减少两个领域分布的差异
在Reproducing Kernel Hilbert Space (RKHS)中, MaximumMeanDiscrepancy(MMD)被当作比较两个分布的一个指标
有的方法,通过重新分配样本的权重或者重新挑选样本来最小化两个分布的MMD
有的方法,通过在一个显式的低维潜在空间中测量MMD
还有的,用MMD去正则化原领域和新领域学到的特征
值得注意的是,风格迁移也是一种领域自适应问题,它也是二秩多项式核MMD的特殊情况
准备知识
一些符号
表示第k个通道上的特征
表示在第i个位置上的C维特征
MMD(Maximum Mean Discrepancy)

x,y为随机变量,x采样数量为N,y采样数量为M,MMD的想法就是求两个随机变量在高维空间中均值的距离
对于卷积网络中的HWC特征,将C层的特征看作是随机向量的C次采样,所以MMD的做法就是先将每个通道做映射,得到H'*W'*C的特征,然后将映射完后的通道H'*W'*C做平均,得到随机向量在高维空间中的平均(H'*W'),最后用teacher与student的这个结果求欧式距离

可以利用kernel技巧,省去映射的过程,直接求得损失函数的结果,k就是核函数
神经元选择性迁移
出发点
- 这样做的原因

图2展示的是神经元的激活图(应该是从该神经元向输入求导得到的)
从图中可以看出,神经元具有区域选择性,这些区域是有任务相似性的,比如左边图片对应猴子的脸,右边的图片对应字母,为了捕捉这些区域相似性,在学生网络中,神经元也应该学到这些激活样式
- 直接用feature map来做匹配有什么问题
将feature map的每个通道的特征看作为神经元选择性的采样空间
文章中直接用teacher和student的这些采样去匹配,会忽略掉在这个空间中的采样密度,丢掉了样式
这两句话过于晦涩难懂,个人理解如下:
如过直接用feature map间的欧式距离作为损失函数,体现不出来Figure2中的样式(猴脸,字母),所以用一种新的方式,先将每个通道上的H*W的特征映射成H'*W'的特征,现在的特征就是H'*W'*C,然后将新的特征在C方向上合并,形成H'*W'的新的特征(比如注意力蒸馏中的做法)就可以体现出这个样式,也注重了空间上的采样密度,再用欧式距离算损失即可
公式
- 损失函数


在(4)中,是在(3)中的fk.的基础上添加了l2-normalized,这是为了确保每个采样有相同的尺度
- 核函数的选择

讨论
- 线性核函数
线性核下的损失函数:

在注意力图映射函数是绝对值就和规范化的条件下,AT的损失函数:

除了规范化的方式不一样外,式5与式8是等价的,因此AT是本工作的一个特殊情况
- 多项式核函数



G是一个Gram matrix,gij代表了位置i与位置j上向量的相似性;
其中的F是按照4.2节描述的方法规范化的;
因为内积能够表示向量的相似度,而G是在不同空间点上所有通道上做内积,也就是计算不同位置点之间的相似度,所以说Gram matrix中含有区域相似性
实验
在分类数据集上


总的来说,所有的对比实验表明,NST-poly可能不是最好的(ImageNet),但是他是KD的补充,它和KD结合起来可以吊打一切
在检测数据集上
总的来说,NST-poly相比于其他是最好的,可能是因为检测任务需要更多的空间信息,而KD没有,所以KD打不过它;
还有一点没有变的是,KD-NST依然是最强的组合,又证明了NST是KD的好伙伴
讨论
不同KT的分析
- NST

Figure 5中,一个点代表一个神经元的分布,可视化是用一种叫做t-SNE做出来的
NST可以使teacher和student神经元的分布接近一致
各人感觉,除了KD(因为KD没有训练中间层),其他的方法(AT,HT)都可以做到这一点
- KD
KD在类别更多的分类任务上效果更好,因为类别更多,soften target得到的信息就更多;
然而KD太过依赖softmax,所以它不能在回归和rank(是个什么任务)上起作用
Fitnets将所有的feature都用作了监督信息,可能会引入噪声,而且没有注重采样密度
MMD以外的方法
GAN的思想是一个可以研究的方向,student的特征相当于一个G,teacher的特征相当于D
结论
将知识迁移看错一个分布对齐的问题(分布对齐其实就是说的好听了,其实跟分布没啥关系)
利用了神经元的选择性(这个是AT的思想,还不如AT来的干脆,真的多余)
NST和KD的协作能力才是这篇论文值得吹嘘的地方
可以迁移到更高级的视觉任务中(AT,HT都可以做到,但是NST最好,也不知道为啥)
