本文主要是介绍Transformer - Teacher Forcing,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Transformer - Teacher Forcing
flyfish
在训练过程中,将目标序列输入给解码器的方法称为(Teacher Forcing)。这个术语又代表什么意思呢?
这里的目标序列就是Ground Truth,也就是我们已知的正确答案
一句话就是我们将一个token送入解码器。在训练中,虽然解码器可能在前一步产生错误的token,但在下一步我们仍然将正确的token输入解码器。
在训练阶段,原本也可以采用与推理阶段相同的策略。换句话说,让Transformer以循环方式进行运作,取出输出序列中的最后一个词,将其追加到解码器的输入中,然后在下一次迭代时送入解码器。最终,当模型预测出结束符(end-of-sentence token)时,损失函数会比较生成的输出序列和目标序列,以便训练网络。
然而,这种循环方式不仅会导致训练过程显著变慢,而且也会使模型的训练更加困难。模型必须基于可能错误预测的第一个词去预测第二个词,如此往复,错误可能会不断累积放大。
相反,通过将目标序列喂给解码器,就如同教师给予提示一样,即便模型预测的第一个词出现错误,也能利用正确的第一个词来预测第二个词,从而避免这些错误不断累积。
解码器是以偏移一个单位的正确标签(shifted right)作为输入,而不是使用预测值,因为预测值可能对,也可能错。
这篇关于Transformer - Teacher Forcing的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!