【论文笔记】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
- 只对中间结果输出()添加dropout
2.模型
传统的不带dropout的LSTM的部分计算过程可以表示如下:
在作者提出的模型中,为LSTM添加dropout如下:
其中,(○)代表按位乘(element-wise multiplition),和是在每个时间步骤上都相等的掩码,等效于dropout。
但可以看出,实际上传统的dropout是每次调用都会有不同的dropout,但这种方式下,在整个序列上,每个时间步骤上dropout都是相同的。这点可以从下图中直观表现,其中不同颜色代表不同的dropout选择。
关于为何选择这种dropout策略,牵扯到很长的数学推导,我啃到一半实在是看不懂了,就不放出一知半解的结论了。
3.实验
作者在语言模型的一个Benchmark,Penn Treebank上进行了测试,取得了单模型最好效果。
在情感分析的任务中进行测试,准确率比使用普通LSTM和只进行输入输出Dropout的LSTM都要高。