本文模型:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/rnn/ptb
这篇文章引用量也是超高,总体来说因为他有一个大亮点,那就是Dropout on RNN!
Overfit一直是困扰RNN的大问题,曾经有过不少实验对RNN加以dropout,但是效果都不好,因为循环放大了输入的噪声。
这篇文章的方法其实也已经有人提出过了,本文对此方法在很多任务(image caption/translation/language modeling/speech recognition)上进行了进一步的验证。
只有每个cell的input的output进行dropout,即L层dropout L+1 次(还有输出层),效果甚好,如图所示:
后面的文章中作者在几个任务上做了验证,文中说的也不多,这里不详细解释。
如果我们自己写模型,要怎么使用这个方法呢?我们下面在前面讲过的char-RNN with TensorFlow的基础上进行一下改进,其实很简单,就只有几行代码:
在train.py的55行左右加上如下代码,为命令行输入参数,dropout的