前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从Hinton开山之作开始,谈知识蒸馏的最新进展

从Hinton开山之作开始,谈知识蒸馏的最新进展

作者头像
AI科技大本营
发布2019-07-30 18:03:40
1.7K0
发布2019-07-30 18:03:40
举报
文章被收录于专栏:AI科技大本营的专栏

作者 | 孟让

转载自知乎

导读:知识蒸馏是一种模型压缩常见方法,模型压缩指的是在teacher-student框架中,将复杂、学习能力强的网络学到的特征表示“知识”蒸馏出来,传递给参数量小、学习能力弱的网络。本文对17、18年知识蒸馏的最新进展进行简评,作者把内容分成2到3部分,以下是第一部分。

蒸馏可以提供student在one-shot label上学不到的soft label信息,这些里面包含了类别间信息,以及student小网络学不到而teacher网络可以学到的特征表示‘知识’,所以一般可以提高student网络的精度。

开山之作:Hinton发表在NIPS2014文章:[1503.02531] Distilling the Knowledge in a Neural Network(https://arxiv.org/abs/1503.02531)

一. Attention Transfer

Attention Transfer , 传递teacher网络的attention信息给student网络。首先,CNN的attention一般分为两种,spatial-attention,channel-attention。本文利用的是spatial-attention.所谓spatial-attention即一种热力图,用来解码出输入图像空间区域对输出贡献大小。文章提出了两种可利用的spatial-attention,基于响应图的和基于梯度图的。

Activation-based

基于响应图(特征图),取出CNN某层输出特征图张量A,尺寸:(C, H, W).定义一个映射F:

将3D张量flat成2D.这个映射的形式有三种供选择:

1. 特征图张量各通道绝对值相加:

2. 特征图张量各通道绝对值p次幂相加:

3. 取特征图张量各通道绝对值p次幂最大值:

对以上这些映射对应的特征图统计量可视化,可以发现,attention map不仅与输入图像中预测物体有low-level上的关联,而且与预测准确度也有关系。不同映射可视化效果也有所差异。

attention transfer的目的是将teacher网络某层的这种spatial attention map传递给student网络,让student网络相应层的spatial attention map可以模仿teacher,从而达到知识蒸馏目的。teacher-student框架设计如下:

AT loss是teacher和student对应的attention map取L2 LOSS.文章也指出,p次幂取2为佳,所得attention map也要先归一化。总loss:

Gradient-based

求出loss对输入x的梯度,如果输入某像素出梯度很大,表明损失函数对该点敏感度高,Paying more attention。teacher-student loss 写成;

反传过程:

训练过程:先计算teacher,student梯度attention map和两者MSE,以及student的前传loss,然后再反向传播。文章还提出了一种加强flip不变性的方法,即对一个输入图片,求出损失对其梯度的attention map之后(即flip图片所得梯度attention map),优化两者MSE,减少损失:

二. FSP matrix

和之前知识蒸馏的文章不同之处在于之前文章往往是把teacher的某层的输出作为student的mimic目标,这篇文章将teacger网络层与层之间的关系作为student网络mimic的目标。这篇文章介绍的这种知识蒸馏的方法类似风格迁移的gram矩阵。

文章提出的描述层与层之间关系的方法FSP matrix,是某层特征图与另外一层特征图之间的偏心协方差矩阵(即没有减去均值的协方差矩阵)。如F1层特征图配置(H,W,M)M为通道数。F2层特征图配置(H,W,N)。得到一个M * N的矩阵G。G(i,j)为F1第i通道与F2第j通道的elemet-wise乘积之和:

文章中FSP矩阵的损失函数是L2loss,把网络层数分成n个block,每个block计算一个FSP,要求teacher与student的对应FSP具有相同spatial size.teacher-student结构如图:

损失函数如下:

我的对文章的感想是,文章有意思的地方在于“授之以鱼不如授之以渔”。韩国人写的文章,多少有些东方师道哲学影响。

三. DarkRank: Accelerating Deep Metric Learning via Cross Sample Similarities

这篇文章提出了一种适合度量学习(如检索,Re-id,人脸识别,图像聚类)的知识蒸馏方法。所传递的知识就是度量学习所度量的样本间相似度,用learn to rank来传递知识。所以先说一些Related works。

Learn To Rank

L2R,有监督排序算法,广泛应用于文本信息检索领域。给定一个query,学习一个模型对一组样本根据相似度排序。常用的排序学习分为三种类型:PointWise,PairWise和ListWise。PointWise将L2R看作一种回归问题,对每个样本打分,优化(如L2 loss)各样本分数与query之间的相似度。PairWise将L2R转化为二分类问题,针对一对样本,如果这对样本与query中排序一致则模型输出1,否则输出0。ListWise直接优化整组样本,可以看作对所有候选排序的分类。如 https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr-2007-40.pdf

(PDF) Listwise approach to learning to rank - Theory and algorithm(https://www.researchgate.net/publication/221345286_Listwise_approach_to_learning_to_rank_-_Theory_and_algorithm)

本文就是基于listwise的方法。该方法根据candidates(排列候选项)与query之间相似度对每个candidate打分,并计算概率。

其中π为一组样本索引的排序。xi为一个样本。S(x) 是模型对样本的打分。然后是熟悉的交叉熵:

也可以使用最大似然函数(MLE)

方法

以上是teacher-student框架。文章的实现teacher为Incepton-BN,student为NIN-BN。使用Imagenet的FC层之前的pretrain model,所得特征图经过GAP(全局平均池化),后接FC层,这里加入large margin softmax loss,之后L2归一化,所得特征向量称为嵌入特征,输入到排序学习模块,然后将teacher样本间相似度知识传递给student。

以上过程:

Pretrain-->GAP-->FC-->Large Margin Softmax Loss-->L2-->Verification Loss & Triplet Loss-->Score-->Cross Sample Similarities Transfer

  • 其中,large margin softmax loss为了是类间距离增大而类内距离减小,度量学习,使得度量空间更好。直接施加在FC层的特征输出。所得特征向量经过L2归一化处理之后,加入verification loss & triplet loss,同样是度量学习目的,获得更好的嵌入特征,从而得到更好的cross sample similarities知识。
  • Score是一个欧式距离。取batch中一个样本q作为query,其他样本作为candidates,使用欧氏距离作为样本相似度评分函数(文章实验表明α=3,β=3效果最佳):
  • cross sample similarities transfer:文章在ListNet,ListMLE启发下,提出soft/hard两种传递损失函数:

其中P()按照Learn to Rank中介绍的相关方法计算。这个soft transfer是一个KL散度。

hard transfer是MLE.对比两种transfer发现soft是要考虑所有排序,而hard只需要考虑gt一种,计算效率高,效果也不差,所以使用hard transfer。当然,最直接的cross sample similiritiestransfer方法是把score直接取L2 loss。后文也做了对照。

文章在Re-id上做了KD,direct similarities transfer,Hard/soft transfer的对比实验。

对照发现,仅仅用soft transfer cross sample similarities 知识效果并没有超过KD(T=4),但是结合KD之后提高了精度,说明这种方法传递了KD不包含的知识--cross sample similarities,一种排序,并不包含每个特征量级的大小,而且不要求传递双方特征维度一致。

原文链接:https://zhuanlan.zhihu.com/p/51563760

(*本文为 AI科技大本营转载文章,转载请联系原作者)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一. Attention Transfer
  • 二. FSP matrix
  • 三. DarkRank: Accelerating Deep Metric Learning via Cross Sample Similarities
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档