一 、RNN在训练过程中的问题
训练迭代过程早期的RNN预测能力非常弱,几乎不能给出好的生成结果。如果某一个unit产生了垃圾结果,必然会影响后面一片unit的学习。teacher forcing最初的motivation就是解决这个问题的。这就是所谓的RNN的曝光偏差Exposure Bias。
Exposure Bias
什么是Exposure Bias
Exposure Bias 是在RNN(递归神经网络)中的一种偏差
即 RNN 在 训练(training) 时接受的标签是真实的值(ground truth input),
但测试 (testing) 时却接受自己前一个单元的输出(output)作为本单元的输入(input),这两个setting不一致会导致误差累积error accumulate
误差累积是因为,你在测试的时候,如果前面单元的输出已经是错的,那么你把这个错的输出作为下一单元的输入,那么理所当然就是“一错再错”,造成错误的累积。
SEQUENCE LEVEL TRAINING WITH RECURRENT NEURAL NETWORKS
《SEQUENCE LEVEL TRAINING WITH RECURRENT NEURAL NETWORKS》简评
Bridging the Gap between Training and Inference for Neural Machine Translation
如何缓解曝光偏差?
二、 RNN的两种训练模式
RNN存在着两种训练模式(mode):
- free-running mode
- teacher-forcing mode
free-running mode就是大家常见的那种训练网络的方式: 上一个state的输出作为下一个state的输入。而Teacher Forcing是一种快速有效地训练循环神经网络模型的方法,该模型使用来自先验时间步长的输出作为输入。
三、Teacher Forcing/RandomTeacher Forcing训练机制
https://blog.csdn.net/qq_30219017/article/details/89090690
Curriculum Learning
计划抽样(scheduled sampling)
四、Professor Forcing训练机制
https://blog.csdn.net/qq_28385535/article/details/87799702
https://blog.csdn.net/doyouseeman/article/details/108645701
teacher forcing有个问题就是,在测试的时候不能使用真值样本,而只能根据前面的采样,但是这样的条件环境又会有所不同。比如在一段时间序列的预测中,一个地方出错,就容易产生大偏差。
Professor Forcing的目标就是:
1. 使free running(或说self feeding)和teacher forcing行为尽可能的接近。对于接近,抛开概率的KL,那么就是GAN了;
2. 用GAN一点的话就是:我们在生成RNN与训练数据分布匹配的同时,我们还希望网络的行为(无论是输出中还是隐藏状态的动态中)能无法区分其输入是限制在teacher forcing的还是free running的。(分布匹配和行为匹配)
professor forcing使用对抗域自适应(adversarial domain adaptation)来促进训练网络的动力学变化相同。
引自:
https://blog.csdn.net/qq_30219017/article/details/89090690
https://blog.csdn.net/qq_28385535/article/details/87799702
https://blog.csdn.net/doyouseeman/article/details/108645701