知识蒸馏:多层方法与教师训练策略
1. 多层知识蒸馏概述
传统的知识蒸馏方法主要聚焦于利用教师网络和学生网络的输出层来传递知识。然而,深度学习模型的中间层同样蕴含着有用的知识。因此,一系列旨在利用这些中间层以提升知识蒸馏效果的方法应运而生。接下来,我们将详细介绍几种常见的多层知识蒸馏方法。
2. 基于提示的蒸馏
基于提示的蒸馏是最早能够利用网络多个中间层进行知识蒸馏的方法之一。其核心步骤如下:
1. 选择中间层 :从教师网络和学生网络中挑选若干中间层。
2. 引入损失项 :为了将教师网络中间层的知识蒸馏到学生网络的对应层,引入如下损失项:
- (L_{hint}^{(l,m)} = \sum_{i=1}^{N} || x_{i}^{(l)} - r(y_{i}^{(m)}) || 2^2)
- 其中,(x {i}^{(l)}) 表示教师网络的第 (l) 层,(y_{i}^{(m)}) 表示学生网络的第 (m) 层,(r(\cdot)) 是一个回归器,用于匹配 (x_{i}^{(l)}) 和 (y_{i}^{(m)}) 的维度。
- 例如,当从具有 (N_l) 维的全连接层向具有 (N_m) 维的层传递知识时,回归器 (r(\cdot)) 可定义为:
- (r(x) = W_r x)
- 其中,回归器的投影矩阵 (W_r \in R^{N_m \times N_l})。该矩阵与学生模型的其他参数一起进行优化。需要注意的是,(W_r) 引入的额外参数并非学生模型的一部分,它们仅用于指导学习过程。在学生网络训练完成后
超级会员免费看
订阅专栏 解锁全文

1万+

被折叠的 条评论
为什么被折叠?



