学习链接:https://zhuanlan.zhihu.com/p/93030328
链接:https://zhuanlan.zhihu.com/p/380462092
teacher forcing机制是怎样的?上个问题中我们给出的图示是最简单的Seq2Seq的示意图,其中忽略了很多细节。
这张图,展示了在训练时,seq2seq内部的详细结构。在Encoder端,我们将输入文本的词序列先经过embedding层转化成向量,喂进Encoder中,得到一个context vector。Decoder端的输入除了context vector以外,还将接受上一个时刻的输出。这里Decoder在训练和测试时是不一样的。在训练时,我们使用真实的目标文本,即“标准答案”作为输入(注意第一步使用一个特殊的字符,表示句子的开头)。每一步根据当前正确的输出词、上一步的隐状态来预测下一步的输出词。而在预测时,由于Decoder端此时没有所谓的“真实输出”或“标准答案”了,所以只能自产自销:每一步的预测结果,都送给下一步作为输入,直至输出就结束。[2]
我们称这两种模式,根据标准答案来decode的方式为teacher forcing,而根据上一步的输出作为下一步输入的decode方式为free running。teacher forcing机制是为了加快训练速度,因为在训练