论文地址。

这篇论文主要研究利用各个single task model来分别作为teacher model,用knowledge distillation的方法指导一个multi task model,实际的做法就是先各自训练好的single task model生成一些soft target,然后利用这些soft target与hard target一起作为监督信号训练multi-task model。在训练过程中,作者使用了退火的方法,也就是刚开始的时候distillation的权重大一些,后面再慢慢降低。

普通的损失函数是来自于hard target y,

对于knowledge distillation的loss则来自于teacher model生成的soft target

而对于multi-task的训练,则是将各个task上的损失函数求和

将hard target y考虑进去,且设定一个权值做加权求和,文中提到的退火也主要是指这里的加权求和的权值

效果

作者分别尝试了不同的distillation组合,比如利用single task model 蒸馏到另一个single task model(single ——> single),multi 蒸馏到multi(multi –> multi),以及文中主要的实验方法single –> multi,发现这种方法效果最好。

如果在multi task model的基础上,再到各个具体任务上进行finetune,这也会进一步提升效果。

在做distillation的时候,作者也做了一些ablation study,如果不设定层间差异的学习率(文中的做法是bert底层的学习率相对较低,顶层的参数更新学习率相对较大一些),task sampling主要是在多任务训练的时候,为了尽量保证不至于一直都在数据集非常大的任务上进行训练,而在小数据集的任务上则得不到充足的训练,因此会设定一个概率选择每一个batch,而这个概率相比直接按照数据集大小的设置采样概率会相对平滑一些。lambda=0实际上对应的是不利用hard target的label,这些实验说明了layer-wise学习率,以及带平滑的task sampling方法,以及使用退火机制的distillation方法都会使得效果要相对较好。

multi task训练torch_采用single task模型蒸馏到Multi-Task Networks相关推荐

  1. multi task训练torch_手把手教你使用PyTorch(2)-requires_gradamp;computation graph

    import torch 1. Requires_grad 但是,模型毕竟不是人,它的智力水平还不足够去自主辨识那些量的梯度需要计算,既然如此,就需要手动对其进行标记. 在PyTorch中,通用的数据 ...

  2. AR人工智能模型训练计算机,ar人工智能模型训练一般采用什么计算机

    语音内容: 大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. ar人工智能模型训练一般采用N卡计算机,机型一般都在2070和1080ti以上.由于一个显卡不够或者模型训练不断提高的 ...

  3. ICML2021 | ALIGN:大力出奇迹,谷歌用18亿的图像-文本对训练了一个这样的模型

    关注公众号,发现CV技术之美 本文分享ICML 2021 收录论文『Scaling Up Visual and Vision-Language Representation Learning With ...

  4. 使用tensorflow object detection API 训练自己的目标检测模型 (三)

    在上一篇博客"使用tensorflow object detection API 训练自己的目标检测模型 (二)"中介绍了如何使用LabelImg标记数据集,生成.xml文件,经过 ...

  5. 手把手教你训练自己的目标检测模型(SSD篇)

    目标检测是AI的一项重要应用,通过目标检测模型能在图像中把人.动物.汽车.飞机等目标物体检测出来,甚至还能将物体的轮廓描绘出来,就像下面这张图,是不是很酷炫呢,嘿嘿 在动手训练自己的目标检测模型之前, ...

  6. 一行代码不用写,就可以训练、测试、使用模型,这个star量1.5k的项目帮你做到...

    机器之心报道 机器之心编辑部 igel 是 GitHub 上的一个热门工具,基于 scikit-learn 构建,支持 sklearn 的所有机器学习功能,如回归.分类和聚类.用户无需编写一行代码即可 ...

  7. 一行代码不用写,就可以训练、测试、使用模型,这个 star 量 1.5k 的项目帮你做到...

    公众号关注 "小詹学Python" 设为"星标",第一时间知晓最新干货~ 转自 | 机器之心 igel 是 GitHub 上的一个热门工具,基于 scikit- ...

  8. 训练好的深度学习模型原来这样部署的!(干货满满,收藏慢慢看)

    点击上方蓝字关注我们 计算机视觉研究院专栏 作者:Edison_G 当我们辛苦收集数据.数据清洗.搭建环境.训练模型.模型评估测试后,终于可以应用到具体场景,但是,突然发现不知道怎么调用自己的模型,更 ...

  9. 训练好的深度学习模型是怎么部署的?

    训练好的深度学习模型是怎么部署的? 来源:https://www.zhihu.com/question/329372124 作者:田子宸 先说结论:部署的方式取决于需求 需求一:简单的demo演示,只 ...

最新文章

  1. 基于以太坊的分布式投票系统solidity合约代码
  2. c语言程序设计一元二次函数,计算一元二次函数的根,大家看看那里有错了。。。。...
  3. C++中头文件的命名规则
  4. 最优视频监控软件开发的实现方法
  5. laravel 定时任务问题的总结
  6. Bootstrap3 滚动监听插件的方法
  7. 职场没有岁月静好,只有不进则退
  8. 当子元素设置position absolute的时,父元素必须设置position属性
  9. Cplex求解线性规划
  10. 数据库笔试题(答案)
  11. axure share联网失败
  12. SL4A apk 编译生成
  13. 史上最怪异的几大数据中心事故
  14. 后端开发工程师不懂这些就危险了
  15. 佳木斯大学计算机专业宿舍,佳木斯大学管理学院宿舍
  16. 债券收益率建模(时间序列建模)时间序列相似度度量
  17. 如何在Java中写模糊查询
  18. 怎么去掉视频上的水印?快速去除水印或字幕的大神技巧
  19. 阅读 git 最初版源码总结
  20. 中国激光碎石术设备市场趋势报告、技术动态创新及市场预测

热门文章

  1. git+repo 代码提交
  2. MATLAB中文显示乱码的问题如何解决
  3. MySQL入门(一) MacOS端配置与基本命令
  4. 用matlab实现假设性检验T检验(葡萄酒评价)
  5. 输入3个双精度实数,分别求出它们的和,平均值,平方和以及平方和的开方
  6. js创建,删除,读取文件目录_note
  7. java多线程【线程常用方法】
  8. java添加背景图片_Java怎么添加背景图片
  9. 8s pod 查看 的yaml_k8s之深入解剖Pod(三)
  10. 10_python基础—数据序列(推导式)