在具有从输出单元到隐藏单元的连接的循环神经网络中,我们可以使用教师强制通过在不同时间步长的并行化学习来加快训练过程。在教师强制中,我们使用当前时间步(在训练数据中可用)的地面实况输出来计算下一个时间步的系统状态。这显然比在训练期间使用实际模型输出要快。但问题是,这是否也更准确?也许如果我们不担心训练时间,最好使用实际模型输出而不是地面实况输出,因为在部署模型时,模型输出最终用于在下一个时间步骤中生成系统状态。
教师强制比使用实际模型输出更准确还是更快?
我首先要说我不是专家,但正在考虑同样的问题。一点谷歌搜索将我带到这个页面:
https://machinelearningmastery.com/teacher-forcing-for-recurrent-neural-networks/
反过来,这篇论文:
https://arxiv.org/pdf/1610.09038.pdf
作为引言中的一段在某种程度上解决了这个问题:
不幸的是,这个过程 [teacher forcing] 可能会导致生成问题,因为在条件上下文中会出现小的预测误差复合。这可能导致较差的预测性能,因为 RNN 的条件上下文(先前生成的样本序列)与训练期间看到的序列不同
此外,来自 deeplearning.org 的书 ( http://www.deeplearningbook.org/contents/rnn.html ) p378:
如果网络稍后将在闭环模式下使用,网络输出(或来自输出分布的样本)作为输入反馈,则会出现严格的教师强制的缺点。在这种情况下,网络在训练期间看到的反馈输入可能与它将在测试时看到的输入类型完全不同。
我想(再次,不是专家)它是相当依赖于问题的,但教师强迫的主要收获在于计算训练和简化损失情况(即,因为整个序列将有助于参数的梯度长时间的长序列反向传播可能会使优化器难以收敛,即使它有很多计算时间。)
希望有帮助!
您可能想阅读这篇论文:https ://arxiv.org/abs/1905.10617
性能应该会变得更好,因为前缀中的训练代差异被消除了。在我们的实验中进行了自动和人工评估。与普遍认为的暴露偏差相反,我们发现由前缀差异引起的失真是有限的,并且在生成过程中似乎不是增量的。此外,我们的分析揭示了 LM 一种有趣的自我恢复能力,我们假设这是为了抵消暴露偏差带来的有害影响”