Teacher Forcing策略在RNN的应用

简介

Teacher Forcing策略在RNN中经常被用到,例如machine translation、image caption、text summarization等语言模型任务。
Teacher Forcing策略使训练RNN更快速收敛且效果还挺好。

RNN模型表示

公式

P ( y 1 , y 2 , . . . , y T ) = P ( y 1 ) ∏ t = 2 T P ( y t ∣ y 1 , y 2 , . . . , y t − 1 ) P(y_{1}, y_{2}, ..., y_{T}) = P(y_{1}) \prod_{t=2}^{T}{P(y_{t} | y_{1}, y_{2}, ..., y_{t-1} )} P(y1,y2,...,yT)=P(y1)t=2TP(yty1,y2,...,yt1)

因此,在预测下一个step T时,是将前面T-1个step的输出当作输入来预测的。

什么是Teacher Forcing策略

简单来说,就是在训练时,使用前T-1个step的Ground Truth来输出第T个step的值。
举个例子:
例如想生成一句话:

 我 非常 喜欢 吃 饺子 和 馄饨 

在训练时:

0. 输入	         		输出               Ground Truth
1.            		我                 我
2.  我	     		?                 非常
3.  我 非常     		?                 喜欢
4.  我 非常 喜欢 		?                 吃
... 

为什么采用Teacher Forcing策略

1. 训练时模型更稳定可以快速收敛

例如想生成一句话,不使用Teacher Forcing:

 我 非常 喜欢 吃 饺子 和 馄饨 

数据集中还有一句话,假设:

 你 咋 不 上 天 呢 

训练时,以2-gram为例,不使用teacher forcing

0. 输入	         		输出               Ground Truth
1.            		你                 我
2. 你	     	    	咋                 非常
3. 咋     		        ?                 喜欢
4. ? 	    	        ?                 吃
... 

使用teacher forcing

0. 输入	         		输出               Ground Truth
1.            		你                 我
2. 我	     	    	咋                 非常
3. 非常     		        ?                 喜欢
4. 喜欢 	    	     	?                 吃
... 

这样的话在训练时,输出和Ground Truth不一致,Loss很容易发散,很难收敛。上面举的例子仅供参考理解。
很多论文的实验也证明不使用 Teacher Forcing,模型很难收敛,就算收敛结果也不好。

2.可以训练但结果不好

我自己在做Captioning实验时,训练时不使用Teacher Forcing策略,发现就算模型最终训练成功,性能反而也不好。这是一个问题。

参考

  • What is Teacher Forcing for Recurrent Neural Networks?
  • A Learning Algorithm for Continually Running Fully Recurrent Neural Networks,1989.
  • Professor Forcing: A New Algorithm for Training Recurrent Networks,NIPS 2016.

你可能感兴趣的:(Teacher,Forcing,RNN,Deep,Learning)