蒸馏法第二节——蒸馏法&分类任务

【1】A. Romero, N. Ballas, S. E. Kahou, A. Chassang, C. Gatta,and Y. Bengio. Fitnets: Hints for thin deep nets. arXiv preprint arXiv:1412.6550, 2014 ——分类任务

创新点:不仅仅考虑了教师模型的输出层,还同时考虑神经网络的中间隐层,并且在中间层中加入了一个回归层用来匹配教师网络和学生网络的输出维度不一致的情形——>只用到了若干个隐层的结果

第一步预训练:取学生网络从开始到中间的若干层权重去拟合教师网络若干层。

具体流程如上图,公式如下。fitnet是一个学生网络,希望的是输入x过教师网络的权重Whint和输入过fitnet网络随机初始化权重Wguided之后再过Wr的误差最小化。通过该操作学习到了教师网络的中间层。红色框去学习绿色框中参数。

第二步:在上面公式训练的基础上,训练整个fitnet网络的参数来最小化下面的目标函数,灰色框去学习灰色框。

【2】J. Yim, D. Joo, J. Bae, and J. Kim. A gift from knowledge distillation: Fast optimization, network minimization and transfer learning. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), volume 2, 2017. ——分类任务

创新点:考虑神经网络的多个隐层

step1:对教师网络使用数据进行训练。该数据可以和未来学生网络学习的数据相同或者不同。

第一步最小化学生网络和教师网,通过最小化FSP矩阵构造的损失函数。

第二步该学生网络使用正常有标签的损失函数进行继续训练。

网络整体架构如下所示:

第一步预训练:

学习学生网络和教师网络的FSP矩阵权重,下图中两个F分别表示网络中选择的两层Feature Map

网络的FSP损失构造如下:其中两个G分别为教师和学生网络,通过优化下面的目标函数得到网络更新的权重w

第二步:使用第一步得到的权重作为预训练模型权重,在原始的任务目标上继续微调训练。

猜你喜欢

转载自blog.csdn.net/whatwho_518/article/details/95582472
今日推荐