知识蒸馏综述: 知识的类型

【GiantPandCV引言】简单总结一篇综述《Knowledge Distillation A Survey》中的内容,提取关键部分以及感兴趣部分进行汇总。这篇是知识蒸馏综述的第一篇,主要内容为知识蒸馏中知识的分类,包括基于响应的知识、基于特征的知识和基于关系的知识。

知识蒸馏简介

定义:知识蒸馏代表将知识从大模型向小模型传输的过程。

作用:可以用于模型压缩和训练加速 手段。

综述梳理思路:

  • 知识蒸馏的种类

  • 训练机制

  • 教师-学生 架构

  • 蒸馏算法

  • 性能比较

  • 实际应用

典型的知识蒸馏KD是Hinton于15年发表的paper,明确了知识蒸馏的想法是让学生模型通过模仿教师模型来取得具有竞争性的性能,甚至可以取得超越教师网络的性能。

知识蒸馏的核心研究:如何将知识从大模型传递给小模型。

知识蒸馏系统的三个核心组件:

  • 知识 knowledge

  • 蒸馏算法 distillation algorithm

  • 教师学生架构 teacher-student architecture

image

知识蒸馏相关的扩展方向:

  • teacher - student learning

  • mutual learning

  • assistant teaching

  • life long learning

  • self learning

在知识蒸馏中,我们主要关心:知识种类、蒸馏策略、教师学生架构

最原始的蒸馏方法是使用大模型的logits层作为教师网络的知识进行蒸馏,但知识的形式还可以是:激活、神经元、中间层特征、教师网络参数等。可以将其归类为下图中三种类型。

image

基于响应的知识(Response-Based Knowledge)

image

基于响应的知识一般指的是神经元的响应,即教师模型的最后一层逻辑输出。

响应知识的loss:

L_{R e s D}\left(z_{t}, z_{s}\right)=\mathcal{L}_{R}\left(z_{t}, z_{s}\right)

其核心想法是让学生模型模仿教师网络的输出,这是最经典、最简单、也最有效的处理方法

Hinton提出的KD是将teacher的logits层作为soft label.

p\left(z_{i}, T\right)=\frac{\exp \left(z_{i} / T\right)}{\sum_{j} \exp \left(z_{j} / T\right)}

T是用于控制soft target重要程度的超参数。

那么整体蒸馏loss可以写作:

L_{\operatorname{Res} D}\left(p\left(z_{t}, T\right), p\left(z_{s}, T\right)\right)=\mathcal{L}_{R}\left(p\left(z_{t}, T\right), p\left(z_{s}, T\right)\right)

一般来讲使用KL散度来衡量两者分布差异,通过优化以上loss可以使得学生网络的logits输出尽可能和教师网络的logits输出相似,从而达到学习的目的。

image

KD中除了蒸馏的一项通常还会使用交叉熵损失函数令学生网络学习真实标签(也称hard label),两项联合起来进行训练。

KD通常的解释是学生网络可以从教师网络中学习到额外的隐形知识(dark knowledge), 而这种知识要比通过标签学习的知识更容易理解。

KD其他角度的解释还包括:KD可以生成类似label smooth的soft target;KD可以视为一种正则化方法;

基于响应的知识只用到了模型最后一层logits中包含的知识,而并没有用到中间层的监督,而中间层的监督信息在表征学习中非常有用。

基于特征的知识(Feature-Based Knowledge)

在深度卷积神经网络中,网络学习到的知识是分层的,从浅到深层对应的知识抽象程度越来越高。因此中间层的特征也可以作为知识的载体,供学生网络进行学习。

基于特征的知识可以视为基于响应的知识的一个扩展。

FitNets是第一个引入中间层表征的,教师网络的中间层可以作为学生网络对应层的提示(Hints层)从而提升学生网络模型的性能。其核心是期望学生能够直接模仿教师网络的特征激活值。

以FitNets为基础扩展出几篇工作:

  • Paying more attention to attention: 提出去学习从原先特征图中派生得到的注意力图(Attention map)

  • Like what you like: Knowledge distill via neuron selectivity transfer: 认为神经元是有选择性的,而这种选择性与任务是相关的,提出神经元选择性迁移,将教师与学生这种神经元的选择模式分布对齐。通过引入了MMD Matching Loss进行实现。

  • Learning deep representation with probabilistic knowledge transfer: 通过匹配特征空间的概率分布迁移知识。

  • paraphrasing complex network: Network Compression via factor transfer:引入factor作为一种中间层表征的可理解形式。

  • Knowledge distillation via route constrained optimization: 致力于降低教师网络和学生网络的gap,提出使用路线约束的暗示学习(Hints learning)。

  • Knowledge transfer via distillation of activation boundaries formed by hidden neurons: 提出使用隐层神经元的激活边界进行知识迁移。

  • Cross-Layer Distillation with Sematic Calibration: 为了匹配教师网络和学生网络的语义信息,提出通过attention allocation自适应为学生层分配合适的教师层, 实现跨层的知识蒸馏。

image

基于特征的知识迁移可以建模为:

L_{F e a D}\left(f_{t}(x), f_{s}(x)\right)=\mathcal{L}_{F}\left(\Phi_{t}\left(f_{t}(x)\right), \Phi_{s}\left(f_{s}(x)\right)\right)

其中\Phi表示一个转换函数,因为教师网络和学生网络的特征层可能出现尺寸不匹配的情况,所以需要转换。\mathcal{L}_F表示用于匹配教师网络和学生网络的相似度计算函数。

下图总结了各个基于特征的知识的匹配类型:

image

一般而言,在基于特征的知识迁移中,研究的对象包括了:

  • 如何需选择知识类型?特征图、注意力图、gram矩阵或其他

  • 如何选择教师层和学生层?简单的一对一匹配,自适应通过注意力匹配。

  • 如何弥补教师网络与学生网络之间的GAP?如果容量相差过大,可能会导致学习效果变差。

基于关系的知识(Relation-Based Knowledge)

基于关系的知识进一步扩展了基于响应的知识以及基于特征的知识,更全面深入的探索了不同层、不同数据样本之间的关系。

不同层之间的关系建模

  • A gift from knowledgedistillation:fast optimization, network minimization and transfer learning: (FSP) 提出了Flow of solution process(FSP)的方法,定义了两个层之间的Gram矩阵,从而可以总结特征图不同对之间的关系。https://github.com/yoshitomo-matsubara/torchdistill/blob/5377be466c9460e0125892aa0d92aeb86418c752/torchdistill/losses/single.py L110行有具体实现。

  • self-supervised knowledge distillation using singular value decompostion: 提出利用特征图之间的相关性进行蒸馏,使用奇异值分解的方式来提取特征图中关键信息。

  • Better and faster: knowledge transfer from multiple self-supervieds learning tasks via graph distillation for video classification: 为了使用多个教师网络的知识,构建了使用logits层和特征图作为节点的两个graph。

  • Graph-based knowledge distillation by multi-head attention network: 提出使用Multi head graph-based 知识蒸馏方法,通过使用graph建模两两feature map之间的关系。

  • Heterogeneous Knowledge Distillation using information flow modeling: 提出让学生模仿教师网络信息流动过程来得到知识。

基于关系的知识通常可以建模为:

L_{\operatorname{RelD}}\left(f_{t}, f_{s}\right)=\mathcal{L}_{R^{1}}\left(\Psi_{t}\left(\hat{f}_{t}, \check{f}_{t}\right), \Psi_{s}\left(\hat{f}_{s}, \check{f}_{s}\right)\right)

\Psi_{s}\left(\hat{f}_{s}, \check{f}_{s}\right)表示学生网络内成对的特征图,\Psi_{s},\Psi_{t}代表相似度函数,\mathcal{L}_{R^{1}}代表教师网络与学生网络的关联函数。

不同样本之间的关系建模

传统的知识迁移通常只关心个体知识蒸馏,但是通常知识不仅包括特征的信息,还包括数据样本之间的互作用关系。

  • Knowledge distillation via instance relationship graph提出了通过个体及关系图进行知识蒸馏的方法,迁移的知识包括个体级别特征。

  • Relational knowledge distillation提出关系知识蒸馏,从个体关系中进行知识迁移

  • Learning student networks via feature embedding结合流型学习,学生网络可以通过特征嵌入进行学习,从而保证教师网络中间层特征的样本相似度。

  • Probabilistic Knowledge Transfer for Lightweight Deep Representation Learning使用概率分布来建模教师网络和学生网络的关系。

  • Similarity-preserving knowledge distillation提出相似性保留的知识,使得教师网络和学生网络根据相同的样本对产生相似的激活。

  • Correlation congruence for knowledge distillation提出基于关系一致的知识蒸馏方法,可以同时蒸馏instance-level的信息以及between instance的信息。

image

instance relation的建模如下:

L_{R e l D}\left(F_{t}, F_{s}\right)=\mathcal{L}_{R^{2}}\left(\psi_{t}\left(t_{i}, t_{j}\right), \psi_{s}\left(s_{i}, s_{j}\right)\right)

与不同层之间建模不同的是,上边的公式衡量的对象是层与层的关系即:\Psi_{s}\left(\hat{f}_{s}, \check{f}_{s}\right), 而此处衡量的是样本与样本之间的关系(如上图所示),即\psi_{t}\left(t_{i}, t_{j}\right)

下表对蒸馏知识从不同角度进行分类,比如数据的结构化知识、输入特征的专有知识等。

image

参考

Gou, J., Yu, B., Maybank, S.J., & Tao, D. (2021). Knowledge Distillation: A Survey. ArXiv, abs/2006.05525.

https://arxiv.org/pdf/2006.05525.pdf

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容