多教师多学生模型知识蒸馏

简介: 19的文章同步过来。

第一篇:

【MULTI-TEACHER KNOWLEDGE DISTILLATION FOR COMPRESSED VIDEO ACTION RECOGNITION ON DEEP NEURAL NETWORKS】

在google一搜multi-teacher knowledge distillation就出来这一篇,虽然看着不太靠谱,但是看论文主要是为了找灵感,所以我还是打算认真看看。碰巧今天又在重感冒,脑子迷迷糊糊的,就用了大量时间看相关工作的介绍,当作是复习之前的知识蒸馏的基本原理啦。

墨迹到下午脑子清醒了点,就开始挑刺啦。有一说一,我写作业的时候都不会用重复甩公式的法子来凑字数,这篇论文介绍个别人已经介绍了几百遍的蒸馏原理还能把一样的公式放两遍的???明明都在一页上,怕我们看不着吗???语法错误不谈了,看得我脑壳疼。直接说说这个模型。

我本来以为多老师模型传递知识是个多么高级的方法啊,原来就直接加权平均???加权平均还能发个论文的???这不就是个模型集成吗???作者们估计也觉得不好意思了,再后面说多学生的时候就一句话带过了“n the results of the separate students was fused for final prediction.” 我看了眼图,明白了,还是加权平均。虽然论文不长,一看就是水论文,但是整篇论文唯一一个原创公式就是加权平均也太扯啦。
$$ q^T_t=\frac{\mu_1\times q^T_{t_1}+\mu_2\times q^T_{t_2}+\mu_3\times q^T_{t_3}}{\mu_1+\mu_2+\mu_3} $$
一个加权平均还整的挺高级有分母有分子的,最扯的是我还真就认认真真看了半天。
果然看论文的时候还是需要在脑子清醒的时候看。

第二篇

【Deep Mutual Learning】

深度互学习这个idea易于理解并且看起来十分可行。核心思想是同时训练的不同模型在次要分类上的差异成为了可以用来相互借鉴的额外信息。即使是一起训练的模型,在方向上也存在差异,这个idea就是让两个或多个模型边训练边学习,一边学习groundtruth一边学习同伴给出的信息,即互为导师也互为学生。
两个模型的损失函数分别为
$$ L_{\Theta_1}=L_{C_1}+D_{KL}(p_2||p_1) $$
$$ L_{\Theta_2}=L_{C_1}+D_{KL}(p_1||p_2) $$
在训练过程中,模型是交替更新的,更新完第一个模型后,再计算下一个模型要更新的梯度,依此反复。
再多个模型一起学习的情况下,第二个损失函数要取多模型的均值。在蒸馏学习中,硬目标损失永远是占主导的,别的损失起到的都是指导作用。也可以把剩下多个模型看成一个集成来进行指导,不过看成集成的效果不如分开指导的效果好。
$$ L_{\Theta_k}=L_{C_k}+\frac{1}{K-1}\sum^k_{l=1,l\ne k}D_{KL}(p_l||p_k) $$

目前已经开始按照这个做了,先用了两个模型,然后暗搓搓地加上了soft target这一部分,结果还没跑出来,训练速度相对来说有点慢,感觉要跑很久的样子。

第三篇

【Be Your Own Teacher: Improve the Performance of Convolutional Neural Networks via Self Distillation】

这篇论文把一个网络看成了好几个小分类器,对每个小分类器都计算损失。损失主要有三种:

  1. 标签和来自所有分类器的输出的交叉熵损失。
  2. 学生和老师的softmax层的kl散度损失。
  3. 中间层的L2损失。

这里的老师模型指的是最深层的分类器,学生模型指所有浅层的分类器。中间层的部分使用啦bottleneck使得特征图大小变得一致,和之前使用普通regressor的思想其实是一样的。

创新点在于模型内部蒸馏,虽然用的各种损失都是之前别人提出来的,但也还算可以吧。不过可能不是很适合我正在做的这个模型,有时间的话可以多看看。

相关文章
|
6天前
|
机器学习/深度学习
机器学习 —— 分类预测与集成学习(下)
机器学习 —— 分类预测与集成学习(下)
20 0
|
6天前
|
机器学习/深度学习 数据采集 数据可视化
机器学习 —— 分类预测与集成学习(上)
机器学习 —— 分类预测与集成学习
24 2
|
6天前
|
机器学习/深度学习 传感器 算法
【论文速递】ICCCS2022 - FedMMD:基于多教师和多特征蒸馏的异构联邦学习
【论文速递】ICCCS2022 - FedMMD:基于多教师和多特征蒸馏的异构联邦学习
|
9月前
|
机器学习/深度学习 算法
实验2 神经网络实现分类【机器学习】
实验2 神经网络实现分类【机器学习】
42 0
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习应用篇-推荐系统[12]:经典模型-DeepFM模型、DSSM模型召回排序策略以及和其他模型对比
深度学习应用篇-推荐系统[12]:经典模型-DeepFM模型、DSSM模型召回排序策略以及和其他模型对比
深度学习应用篇-推荐系统[12]:经典模型-DeepFM模型、DSSM模型召回排序策略以及和其他模型对比
|
机器学习/深度学习 人工智能 自然语言处理
一文看尽SOTA生成式模型:9大类别21个模型全回顾!(1)
一文看尽SOTA生成式模型:9大类别21个模型全回顾!
204 0
|
机器学习/深度学习 人工智能 自然语言处理
一文看尽SOTA生成式模型:9大类别21个模型全回顾!(2)
一文看尽SOTA生成式模型:9大类别21个模型全回顾!
345 0
|
机器学习/深度学习 算法
Resnet图像识别入门——Softmax分类是如何工作的
softmax作为一个分类器,它只是把重要的信息变得更重要了而已。
Resnet图像识别入门——Softmax分类是如何工作的
|
机器学习/深度学习 数据挖掘 PyTorch
PyTorch深度学习实战 | 预测工资——线性回归
通过员工工作年限与工资的对应关系表,找出二者之间的关系,并预测在指定的年限时,工资会有多少。
826 0
PyTorch深度学习实战 | 预测工资——线性回归
|
机器学习/深度学习 自然语言处理 数据可视化
时序预测的三种方式:统计学模型、机器学习、循环神经网络
时序预测是一类经典的问题,在学术界和工业界都有着广泛的研究和应用。甚至说,世间万物加上时间维度后都可抽象为时间序列问题,例如股票价格、天气变化等等。关于时序预测问题的相关理论也极为广泛,除了经典的各种统计学模型外,当下火热的机器学习以及深度学习中的循环神经网络也都可以用于时序预测问题的建模。今天,本文就来介绍三种方式的简单应用,并在一个真实的时序数据集上加以验证。
368 0
时序预测的三种方式:统计学模型、机器学习、循环神经网络