Recurrent Neural Network Regularization-ICLR 2015
本博文是对Recurrent Neural Network Regularization-ICLR 2015论文的学习总结。
目录
1.论文核心贡献
1.1摘要
论文下载链接:https://arxiv.org/pdf/1409.2329.pdf
在该论文中提出了一种带有LSTM单元的RNN网络正则化 技术,通过将Dropout 技术应用在LSTMs中,将解决网络中的过拟合(overfitting) 问题。
本文的研究成果可以应用在语言模型、语音识别、图形字幕生成、机器翻译等领域。
1.2RNN相关知识
(1)循环神经网络(Recurrent Neuron Network,RNN)是一种对序列数据建模的神经网络。循环神经网络中一个当前神经元的输出与前面的输出也有关,网络会对前面的信息进行记忆并应用于当前神经元的计算中,也就是隐层之间的节点也是有连接的,并且隐层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。
(2)RNN的网络结构如下图所示:
下图参照博文:RNN博文
(3)常见的循环神经网络包括:双向循环神经网络(Bidirectional RNN,Bi-RNN)、长短期神经网络(Long Short-Term Memory,LSTM)。
2.Regularizing RNNs with LSTM cells
本文的重点内容也就是集中在这个模块,分别是Long-short term memory units和Regularization with Dropout。
2.1Long-short team memory units
RNN可以描述为:将先前的状态通过确定性转换转换成当前隐层的状态。确定性状态转换函数如下所示:
R
N
N
:
h
t
l
−
1
,
h
t
−
1
l
→
h
t
l
RNN:h_{t}^{l-1},h_{t-1}^{l}\rightarrow h_{t}^{l}
RNN:htl−1,ht−1l→htl
对于经典的RNNs,这个函数写为:
h
t
l
=
f
(
T
n
,
n
h
t
l
−
1
+
T
n
,
n
h
t
−
1
l
)
,
w
h
e
r
e
f
∈
{
s
i
g
m
,
t
a
n
h
}
h_{t}^{l}=f(T_{n,n}h_{t}^{l-1}+T_{n,n}h_{t-1}^{l}),where f \in \left \{ sigm,tanh\right \}
htl=f(Tn,nhtl−1+Tn,nht−1l),wheref∈{sigm,tanh}
LSTM能够记住之前的信息,这些信息被存储在记忆单元(memory cells)中,这些记忆单元可以表示为
c
t
l
∈
R
n
c_{t}^{l}\in \mathbb{R}^n
ctl∈Rn。尽管LSTM在连接结构和激活函数上有所区别,但是都有存储单元来长时间的存储信息。LSTM的函数表示如下:
L
S
T
M
:
h
t
l
−
1
,
h
t
−
1
l
,
c
t
−
1
l
→
h
t
l
,
c
t
l
LSTM:h_{t}^{l-1},h_{t-1}^{l},c_{t-1}^{l}\rightarrow h_{t}^{l},c_{t}^{l}
LSTM:htl−1,ht−1l,ct−1l→htl,ctl.
(
i
f
o
g
)
=
(
s
i
g
m
s
i
g
m
s
i
g
m
t
a
n
h
)
T
2
n
,
4
n
(
h
t
l
−
1
h
t
−
1
l
)
\begin{pmatrix} i\\ f\\ o\\ g \end{pmatrix}=\begin{pmatrix} sigm\\ sigm\\ sigm\\ tanh \end{pmatrix}T_{2n,4n}\begin{pmatrix} h_{t}^{l-1}\\ h_{t-1}^{l} \end{pmatrix}
⎝⎜⎜⎛ifog⎠⎟⎟⎞=⎝⎜⎜⎛sigmsigmsigmtanh⎠⎟⎟⎞T2n,4n(htl−1ht−1l)
c
t
l
=
f
⊙
c
t
−
1
l
+
i
⊙
g
c_{t}^{l}=f\odot c_{t-1}^{l}+i\odot g
ctl=f⊙ct−1l+i⊙g
h
t
l
=
o
⊙
t
a
n
h
(
c
t
l
)
h_{t}^{l}=o\odot tanh(c_{t}^{l})
htl=o⊙tanh(ctl)
LSTM记忆单元的图示如下:
2.2Regularization with Dropout
2.2.1什么是正则化,为什么要用正则化
正则化用“regularization”表示,那为什么需要正则化呢?因为神经网络在学习过程中出现了过拟合情况,具体表现就是在训练集上表现好,在测试集上预测能力差,就是我们所说的泛化能力差,说的更直白一些,就是举一反三的能力差,网络学到了一些不重要的信息,比如说,对于猫狗识别,由于种种原因,网络学习到猫的一项特征是胡须8-10根,下一次来了一只猫只有6根胡须,模型就判定不是猫,很显然这是不正确的,并且这项特征也是我们不需要的。
从上面这段描述我们可以知道:为了提高模型的范化能力,我们需要在模型训练过程中使用正则化 手段减少模型的过拟合 现象。
2.2.2常用的正则化方法
常用的正则化方法有数据增强、L2 正则化(权重衰减)、L1 正则化、Dropout、Drop Connect、BN、随机池化和提前终止等。
2.2.3Dropout的正则化方法
Dropout正则化的思想为:在每次训练的时候,让神经元以一定的概率失活,这样就可以打破神经元之间的相互依赖性,这个神经元学习到的特征不再与固定的输入有关,而是随机的,迫使网络学习到一些更加鲁棒的特征。一般来说,选择的Dropout率为0.5,因为这样随机性最强。
在本文中,通过在LSTM中引入Dropout机制从而减少网络的过拟合问题。正则化的多层RNN结构如下图所示,虚线箭头表示在其中应用了dropout的连接,实线表示在其中没有应用dropout的连接。
引入Dropout机制的函数表示为:
(
i
f
o
g
)
=
(
s
i
g
m
s
i
g
m
s
i
g
m
t
a
n
h
)
T
2
n
,
4
n
(
D
(
h
t
l
−
1
)
h
t
−
1
l
)
\begin{pmatrix} i\\ f\\ o\\ g \end{pmatrix}=\begin{pmatrix} sigm\\ sigm\\ sigm\\ tanh \end{pmatrix}T_{2n,4n}\begin{pmatrix} D(h_{t}^{l-1})\\ h_{t-1}^{l} \end{pmatrix}
⎝⎜⎜⎛ifog⎠⎟⎟⎞=⎝⎜⎜⎛sigmsigmsigmtanh⎠⎟⎟⎞T2n,4n(D(htl−1)ht−1l)
c
t
l
=
f
⊙
c
t
−
1
l
+
i
⊙
g
c_{t}^{l}=f\odot c_{t-1}^{l}+i\odot g
ctl=f⊙ct−1l+i⊙g
h
t
l
=
o
⊙
t
a
n
h
(
c
t
l
)
h_{t}^{l}=o\odot tanh(c_{t}^{l})
htl=o⊙tanh(ctl)
式子中
D
(
h
t
l
−
1
)
D(h_{t}^{l-1})
D(htl−1)表示Dropout操作,D是将其参数的随机子集设置为零的dropout运算符。
Dropout运算符破坏了unit所携带的信息,迫使它们更加健壮地执行其中间计算。同时,我们不想删除unit中的所有信息。这些unit记住过去许多时间步长发生的事件,这一点尤其重要。图3显示了在我们实现dropout的过程中,信息如何从时间步t-2发生的事件流向时间步t + 2的预测。我们可以看到,dropout操作者完全破坏了信息L+1次,并且该数目与信息所遍历的时间步长无关。标准dropout会干扰循环连接,这使得LSTM很难学会长时间存储信息。通过不在循环连接上使用dropout,LSTM可以从dropout正则化中受益,而不会牺牲其宝贵的记忆能力。
3.实验
3.1实验代码
论文代码下载:https://github.com/wojzaremba/lstm
本文的研究成果可以在语言模型、语音识别、机器翻译、图形字幕生成等领域应用。
3.2语言模型
3.3语音识别
3.4 机器翻译
3.5 图形字幕生成
4.论文小结
本文在LSTM网络中引入了Dropout机制,使Dropout机制在RNNs中发挥了较大的作用,结果表明,在LSTM中加入Dropout机制能提高网络的范化能力,降低过拟合。研究成果在语言模型、语音识别、机器翻译、图形字幕生成等领域有广泛的应用。
5.论文结构
参考文档:
【1】RECURRENT NEURAL NETWORK REGULARIZATION-笔记
【2】总结神经网络中的正则化方法
【3】一文搞懂RNN(循环神经网络)基础篇