Teacher Forcing机制及Beam search详解

RNN在训练过程中的问题

训练迭代过程早期的RNN预测能力非常弱,几乎不能给出好的生成结果。如果某一个unit产生了垃圾结果,必然会影响后面一片unit的学习。teacher forcing最初的motivation就是解决这个问题的。

RNN的两种训练模式

  • free-running mode
  • teacher-forcing mode

free-running mode就是常见的那种训练网络的方式: 上一个state的输出作为下一个state的输入。而Teacher Forcing是一种快速有效地训练循环神经网络模型的方法。

什么是Teacher Forcing

它是一种网络训练方法,对于开发用于机器翻译,文本摘要,图像字幕的深度学习语言模型以及许多其他应用程序至关重要。它每次不使用上一个state的输出作为下一个state的输入,而是直接使用训练数据的标准答案(ground truth)的对应上一项作为下一个state的输入。

Teacher Forcing的缺点及其解决办法

缺点

因为依赖标签数据,在训练过程中,模型会有较好的效果,但是在测试的时候因为不能得到ground truth的支持,所以如果目前生成的序列在训练过程中有很大不同,模型就会变得脆弱。
也就是说,这种模型的cross-domain能力会更差,也就是如果测试数据集与训练数据集来自不同的领域,模型的performance就会变差。

解决办法:集束搜索(Beam Search)

在预测单词这种离散值的输出时,一种常用方法是对词表中每一个单词的预测概率执行搜索,生成多个候选的输出序列。
这个方法常用于机器翻译(MT)等问题,以优化翻译的输出序列。
beam search是完成此任务应用最广的方法,通过这种启发式搜索(heuristic search),可减小模型学习阶段performance与测试阶段performance的差异。

如何通俗的理解beam search?

假设一个搜索任务

  • exhaustive search(穷举搜索)

最直观的方法就是穷举所有可能的输出序列,从所有的排列组合中找到输出条件概率最大的序列。穷举搜索能保证全局最优,但计算复杂度太高,当输出词典稍微大一点根本无法使用。

  • greedy search

贪心算法每一步选择中都采取在当前状态下最好或最优的选择,通过这种局部最优策略期望产生全局最优解。但是期望是好的,能不能实现是另外一回事了。贪心算法本质上没有从整体最优上加以考虑,并不能保证最终的结果一定是全局最优的。但是相对穷举搜索,搜索效率大大提升。

  • beam search

beam search是对greedy search的一个改进算法。相对greedy search扩大了搜索空间,但远远不及穷举搜索指数级的搜索空间,是二者的一个折中方案。
beam search有一个超参数beam size(束宽) 。第一个时间步长,选取当前条件概率最大的 n个词,当做候选输出序列的第一个词。之后的每个时间步长,基于上个步长的输出序列,挑选出所有组合中条件概率最大的 n 个,作为该时间步长下的候选输出序列。始终保持 n个候选。最后从 n 个候选中挑出最优的。

结论

beam search不保证全局最优,但是比greedy search搜索空间更大,一般结果比greedy search要好。greedy search 可以看做是 beam size = 1时的 beam search。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值