常见的模型压缩方法有以下几种:
- 模型蒸馏 Distillation,使用大模型的学到的知识训练小模型,从而让小模型具有大模型的泛化能力
- 量化 Quantization,降低大模型的精度,减小模型
- 剪枝 Pruning,去掉模型中作用比较小的连接
- 参数共享,共享网络中部分参数,降低模型参数数量
1. teacher-student模型
teacher-student模型是迁移学习的一种,迁移学习也就是将一个模型的性能迁移到另一个模型上,对于教师网络往往是一个更加复杂的网络,具有非常好的性能和泛化能力,可以用这个网络来作为一个soft target来指导另外一个更加简单的学生网络来学习,使得更加简单、参数运算量更少的学生模型也能够具有和教师网络相近的性能
学生网络的训练有两个目标:一个是hard target,即原始的目标函数:小模型的类别概率输出与label真值的交叉熵;另一个为soft target:小模型的类别概率输出与大模型的类别概率输出的交叉熵。将hard和soft的target通过加权平均来作为学生网络的目标函数,soft target所占的权重更大一些。
深度学习方法(十五):知识蒸馏(Distilling the Knowledge in a Neural Network),在线蒸馏
请参考 DistilBERT