【CVPR 2020】蒸馏篇(一):Regularizing Class-wise Predictions via Self-knowledge Distillation
CVPR 2020
CVPR 2020
-
论文地址:
-
代码地址:
-
主要问题:
-
主要思路:
-
主要特点:
-
具体实现:
-
- 基本符号:
- CS-KD:
-
实验结果:
论文地址:
https://arxiv.org/abs/2003.13964
代码地址:
https://github.com/alinlab/cs-kd
主要问题:
在单独训练神经网络的过程中,采用传统的CrossEntropyLoss可能会导致过拟合现象,并且忽视了样本之间的相似程度。
主要思路:
该作者建议基于样本间的相似性分析,并引入了一个额外的自蒸馏损失项D_{self}。通过对同类样本进行预测分布的一致性约束,在同一类别内部实现预测结果的一致性目标以有效缓解过拟合现象。

主要特点:
自蒸馏+考虑样本相似性
具体实现:
基本符号:
在训练神经网络的过程中,给定输入 x 时,其后验概率分布可以通过数学表达式表示为:
在给定输入\mathbf{x}和超参数\theta及温度参数T的情况下,在类别空间中各分类的概率可以通过以下条件概率公式计算得出:P(y|\mathbf{x},θ,T)=\frac{e^{f_y(\mathbf{x},θ)/T}}{\sum_{i=1}^C e^{f_i(\mathbf{x},θ)/T}}其中分子项代表特定类别y的指数加权值,在分母中则为所有可能类别的加权和。
CS-KD:
我们考虑来自同一类别的样本 x 和 x',他们的损失就可以写作:
该损失函数定义为两个条件概率分布之间的Kullback-Leibler散度:$$
\mathcal{L}_{\texttt{cls}}(\boldsymbol{x}, \boldsymbol{x}', \theta, T) := \text{KL}\big( P(y|\boldsymbol{x}', \tilde{\theta}, T) | P(y|\boldsymbol{x}, \theta, T) )
用来迫使同类别样本产生相似的预测分布 最终的蒸馏损失写作: $\begin{aligned} \mathcal{L}_{\mathrm{CS}-\mathrm{KD}}\left(\mathbf{x}, \mathbf{x}^{\prime}, y ; \theta, T\right) &:=\mathcal{L}_{\mathrm{CE}}(\mathbf{x}, y ; \theta) \\ &+\lambda_{\mathrm{cls}} \cdot T^{2} \cdot \mathcal{L}_{\mathrm{cls}}\left(\mathbf{x}, \mathbf{x}^{\prime} ; \theta, T\right) \end{aligned}$ ## 实验结果:    
