本文介绍了分类蒸馏的八篇论文
自蒸馏
Be Your Own Teacher: Improve the Performance of Convolutional Neural Networks via Self Distillation
Self Distillation文中提出的自蒸馏方法,相比于传统蒸馏方法来说,无需提前训练教师网络,而是在学生网络训练的过程中进行自蒸馏,不仅可以训练出更高精度的小网络,而且花费的时间更少。
文中使用的自蒸馏方法如下:
如图所示,一个ResNet根据其深度分为四个部分,在每一部分之后设置额外的bottleneck和全连接层,构成多个分类器。每一个分类器在途中描述的三种监督下训练。
MSD: MULTI-SELF-DISTILLATION LEARNING VIA MULTI-CLASSIFIERS WITHIN DEEP NEURAL NET- WORKS
MSD与Self Distillation思路类似,损失函数也包含三个相同的部分。区别主要在于使用了多分类器。
多教师蒸馏
FEED: Feature-level Ensemble for Knowledge Distillation
FEED提出了两种蒸馏多教师蒸馏方法,并行蒸馏和顺序蒸馏。
并行蒸馏的流程图如下图所示。其中,NTL是非线性转换层的简称,每个教师网络分配一个NTL,蒸馏过程中,学生网络和NTL网络同时进行培训。 顺序蒸馏的流程图如下图所示。经过训练的学生网络被用作下一阶段的教师网络,并重复这个过程。
Adaptive Multi-Teacher Multi-level Knowledge Distillation
AMTML-KD是一种融合多教师蒸馏的方法,使用到的损失函数包含
- FitNet的损失函数
- Similarity中的损失函数
- KL损失函数
相互蒸馏
Deep Mutual Learning
如图所示,每个网络都用一个监督学习损失和KL损失进行训练,以匹配其他网络的概率估计。
剪枝蒸馏
Training convolutional neural networks with cheap convolutions and online distillation
文中提出利用cheap conv的压缩网络进行在线蒸馏,进一步提高其性能:
- 用cheap conv代替标准卷积,形成一个学生网络。
- 通过将多个学生网络的输出特征连接起来并添加新的分类器,在线构建一个强教师网络。
- 在培训过程中进行相互学习,提高师生之间的表现。
文中对使用的几种空间卷积进行了说明:(a)标准卷积,(b)组卷积,( c)深度卷积
Cascaded channel pruning using hierarchical self-distillation
文中提出了一种通道修剪的分层自蒸馏策略。每个模型都用共享的卷积权值联合训练,但有独立的二进制掩码、批处理标准化层和分类层。约束较小的模型提供知识蒸馏和重要性评分梯度。
Cascaded channel pruning using hierarchical self-distillation
该方法使用到了知识蒸馏、网络集成和网络剪枝:
- 根据一些标准(1范数、泰勒近似等)对滤波器/权重进行修剪。
- 对具有较大学习速率的剪枝网络进行再训练,使传统的监督损失函数最小化。
- 达到期望的剪枝率后,使用知识蒸馏将知识从迭代剪枝集合转移到最终模型。
|