文章来源 | 恒源云社区

原文地址 | Teacher Forcing

原文作者 | Mathor


年底啦年底啦~要放假啦放假了~
不整大活,搞点小内容分享一下吧!

正文开始

本文主要介绍一下Teacher Forcing这个训练过程中的技巧

以Seq2Seq为例,在训练过程中,t0t_0t0​​ 时刻Decoder的输入是"“,输出可能并不是正确的结果"the”,比方说输出了一个错误的结果"like"。那么问题就来了,到了t1t_1t1​时刻,应该继续以正确的单词"the"作为输入,还是将上一时刻t0t_0t0​的输出"like"作为输入呢?

其实上面的问题,涉及到两种完全不同的训练方式

  1. 不管上一时刻输出是什么,当前时刻的输入总是规定好的,按照给定的target进行输入
  2. 当前时刻的输入和上一时刻的输出,是有关联的。具体来说就是,当前时刻的输入就是上一时刻的输出

如果要用比较不太严谨的比喻来说,第一种训练方式相当于就是小明学习的时候旁边坐了一位学霸,当发现小明在做序列生成题目的时候, 每一步都把上一步的正确答案给他偷看。那么小明当然只需要顺着上一步的答案的思路,计算出这一步的结果就行了。这种做法,比起自己每一步都瞎猜, 当然能够有效的避免误差进一步放大,同时在学习前期还能通过学霸辅导的这种方式快速学到很多的知识。

但是第一种训练方式存在以下的问题:

  1. 在解码的时候生成的字符都会受到 Ground-Truth 的约束,希望模型生成的结果都必须和参考句一一对应。这种约束在训练过程中减少模型发散,加快收敛速度。但是一方面也扼杀了翻译多样性的可能
  2. 在这种约束下,还会导致一种叫做 Overcorrect(矫枉过正) 的问题。例如:
  1. 待生成句的Reference为: “We should comply with the rule.”
  2. 模型在解码阶段中途预测出来:“We should abide”
  3. 然而按照规定,将第三个ground-truth “comply” 作为第四步的输入。那么模型根据以往学习的pattern,有可能在第四步预测到的是 “with”
  4. 模型最终的生成变成了 “We should abide with”
  5. 事实上,“abide with” 用法是不正确的,但是由于ground-truth “comply” 的干扰,模型处于矫枉过正的状态,生成了不通顺的语句

如果使用第二种方式,其中只要一步预测错,后面的预测就会越来越跑偏,很难收敛

Teacher Forcing正好介于上述两种训练方法之间。具体来说就是,训练过程中的每个时刻,有一定概率使用上一时刻的输出作为输入,也有一定概率使用正确的target作为输入

可以参考下面的伪代码

teacher_forcing_ratio = 0.5
teacher_forcing = random.random() < teacher_forcing_ratio
if teacher_forcing:pass
else:pass

恒源云(GPUSHARE)_Teacher Forcing训练小技巧来啦~相关推荐

  1. 恒源云(Gpushare)_JupyterLab/TensorBoard使用问题?技巧大放送4

    文章来源 | 恒源云社区 原文地址 | [小技巧-工具篇] 1.JupyterLab/TensorBoard 如何使用? 可参考JupyterLab文档.TensorBoard文档. 2.Jupyte ...

  2. 恒源云(Gpushare)_如何查看显卡占用的情况?技巧大放送2

    文章来源 | 恒源云社区 原文地址 | [小技巧-显卡篇] 1.如何看显卡占用的情况? 通过终端执行 nvidia-smi 命令可以查看显卡的情况,可以查看显卡功耗.显存占用等情况. root@I15 ...

  3. 恒源云(GPUSHARE)_CV训练时容易忽视的数据标签问题

    文章来源 | 恒源云社区 原文地址 | 数据标签问题 今天小编逛了一下社区,发现有位小伙伴分享的一个CV训练小技巧很有点内容,所以,小编立马马不停蹄的搬运过来给有兴趣的小伙伴们看一看. 以下内容是原文 ...

  4. 恒源云(GPUSHARE)_未闻Prompt名(论文学习笔记)

    文章来源 | 恒源云社区(专注人工智能/深度学习GPU免费加速平台,官方体验网址:https://gpushare.com) 原文作者 | Mathor 原文地址 | https://gpushare ...

  5. 恒源云(GPUSHARE)_长尾分布的多标签文本分类平衡方法(论文学习笔记)

    文章来源 | 恒源云社区(专注人工智能/深度学习云GPU服务器训练平台,官方体验网址:https://gpushare.com/center/) 原文地址 | https://bbs.gpushare ...

  6. 恒源云(GPUSHARE)_CV论文笔记之CE-FPN(通道增强特征金字塔网络)

    文章来源 | 恒源云社区(专注人工智能/深度学习GPU免费加速平台,官方体验网址:https://gpushare.com) 原文地址 | CE-FPN: Enhancing Channel Info ...

  7. 恒源云(GPUSHARE)_[SimCSE]:对比学习,只需要 Dropout?

    文章来源 | 恒源云社区(恒源云,专注 AI 行业的共享算力平台) 原文地址 | Dropout 原文作者 | Mathor 要说2021年上半年NLP最火的论文,想必非<SimCSE: Sim ...

  8. 恒源云(GPUSHARE)_人工智能行业 | AI+教育,虚实之间

    [引言]2020年以来,在线教育疯狂发展,不少机构把AI引入了课堂,这究竟是噱头,还是进化? 人工智能作为技术革命的新力量,如今已渗透进各行各业,颠覆和创新屡见不鲜,唯独教育领域,和人工智能的结合一直 ...

  9. 恒源云(GPUSHARE)_GPU服务器租用 | Spyder连接使用教程

    文章来源 | 恒源云社区(专注人工智能/深度学习云GPU服务器训练平台,官方体验网址:恒源云_GPUSHARE-恒源智享云) 原文地址 | Spyder - 恒源云用户文档 Spyder 是一款免费. ...

最新文章

  1. 带你走进Kaggle Kernels(内附视频讲解)
  2. C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 密码强化、网络安全强化...
  3. Redis过期策略及实现原理
  4. Airbnb: React Native 从选择到放弃
  5. Vue学习(vuex)-学习笔记
  6. 从苹果店员到机器学习工程师,高中学历澳洲小哥的自学路
  7. spring security 2.x HttpSessionEventPublisher 以及listener配置
  8. python画条形图-python绘制条形图方法代码详解
  9. python3语法糖_python 连续不等式语法糖实例
  10. 轻量级 Visio,绘制程序框图,你值得拥有
  11. trajan算法(离线做法) LCA详解
  12. 【网络爬虫与信息提取】信息的组织与提取
  13. 讲解如何禁止iOS屏幕自动旋转
  14. 基于YOLOV5的自动瞄准(附代码)
  15. 联通物联卡 显示“已停用”
  16. 解决:pandas.errors.ParserError: Error tokenizing data. C error: Expected 2 fields in line 18, saw 4
  17. 全文检索服务器-Elasticsearch
  18. 单片机c语言define什么意思,单片机C语言中typedef和define的区别是什么?
  19. spring中的事件监听机制
  20. MATLAB中的随机数

热门文章

  1. java 计算组合_java – 计算所有可能的组合
  2. 巧妙地帮你的手机节省流量,担心流量超出的机友们看过(转)
  3. div 设置a4大小_A4纸网页打印 html网页页面的宽度设置成多少
  4. android短信删除,Android删除短信的方法
  5. 微信发朋友圈的测试用例
  6. 笔记-pd.set_option()
  7. 利用三轴加速器的计步测算方法
  8. linux文件系统知识总结、SD卡挂载问题总结
  9. NoSQL和MemeryCache的出现意味着传统数据库使用方式的变革吗?(arvin-推荐--看评论)
  10. 邓俊辉 数据结构与算法C++版 第十三章 串 ADT