【论文笔记】A Theoretically Grounded Application of Dropout in Recurrent Neural Networks(2016)

这篇论文从贝叶斯论的角度分析了RNN网络的优化过程,并以此为基础提出了一种对RNN有效的dropout方法。它用到了近似变分推断的数学方法,这个我啃了好久还是苦于数学能力看得云里雾里。但还是先把笔记记下来吧。

1.介绍与现状

作者提出,RNN因为缺少正则化,很容易陷入过拟合。现在也有许多这方面的努力,特别是之前还有人基于实验结果提出在RNN上运用dropout效果反而会变差这种结论。作者反驳说这些结论都是基于实验得出,而他从数学角度分析,得出了一种变分dropout方法,可以应用到RNN中,并取得了SOTA效果。

现阶段(指16年),人们做出的努力包括:

  • 只为解码阶段的模型添加噪音
  • 使用传统方法对RNN的各个步骤添加dropout
  • 只对RNN的输入输出进行dropout
  • 只对中间结果输出(ctc_t)添加dropout

2.模型

传统的不带dropout的LSTM的部分计算过程可以表示如下:
(ifog)=(sigmsigmsigmtanh)((xtht1)W)\begin{pmatrix}i \\ f\\o\\g \end{pmatrix}=\begin{pmatrix}sigm\\sigm\\sigm\\tanh \end{pmatrix}\begin{pmatrix}\begin{pmatrix}x_t\\h_{t-1} \end{pmatrix} & ·W \end{pmatrix}
在作者提出的模型中,为LSTM添加dropout如下:
(ifog)=(sigmsigmsigmtanh)((xtzxht1zh)W)\begin{pmatrix}i \\ f\\o\\g \end{pmatrix}=\begin{pmatrix}sigm\\sigm\\sigm\\tanh \end{pmatrix}\begin{pmatrix}\begin{pmatrix}x_t ○z_x\\h_{t-1}○z_h \end{pmatrix} & ·W \end{pmatrix}
其中,(○)代表按位乘(element-wise multiplition),zxz_xzhz_h是在每个时间步骤上都相等的掩码,等效于dropout。

但可以看出,实际上传统的dropout是每次调用都会有不同的dropout,但这种方式下,在整个序列上,每个时间步骤上dropout都是相同的。这点可以从下图中直观表现,其中不同颜色代表不同的dropout选择。
【论文笔记】A Theoretically Grounded Application of Dropout in Recurrent Neural Networks(2016)
关于为何选择这种dropout策略,牵扯到很长的数学推导,我啃到一半实在是看不懂了,就不放出一知半解的结论了。

3.实验

作者在语言模型的一个Benchmark,Penn Treebank上进行了测试,取得了单模型最好效果。
在情感分析的任务中进行测试,准确率比使用普通LSTM和只进行输入输出Dropout的LSTM都要高。