长短时记忆神经网络(LSTM)
1. 网络结构
长短时记忆网络(Long Short Term Memory Network, LSTM),它有效地解决
了原始循环神经网络(RNN)的缺陷,在语音识别、图片描述、自然语言处理等许
多领域中成功应用。
在 LSTM 网络中,引入与时间序列
相对应的输入序列 及输出序列
。由于 LSTM 有多种变换形式,本文讲解由三个 Gate(input、forget、output)
和一个 cell 单元组成的基础 LSTM 网络。
遗忘门(forget gate)决定上一时刻的单元状态 有多少保留到当前时刻
单元状态 ;
输入门(input gate)决定当前时刻网络的输入 有多少保存到单元状态 ;
输出门(output gate)控制单元状态 有多少输出到 LSTM 当前输出值 。
其结构如下:
1
],0[Tttxth1tctctxtctcth1th1tctcthtanhsigmsigmtxtfsigmtotitgtanhtcttgi1ttcf)(ttctanho
2. 输出前向传播
前向传播公式定义如下:
(1)
根据 LSTM 结构定义可得:
(2)
通过训练去修正各权重 及偏置 ,将预测输出与目标输出的误差控制在可
接受的范围内。
Sigmoid 函数
函数:
导数:
TanH 函数
函数:
导数:
2
otoxtohtogtgxtghtgitixtihtiftfxtfhtfbxwhwnetbxwhwnetbxwhwnetbxwhwnet1,1,1,1,)()()()()(1,,,,tttttttttottgttittftctanhohgicfcnetsigmonettanhgnetsigminetsigmfwbxexfy11)())(1)(()('xfxfxfxxxeeexxfy22211112)tanh()(2')(1)(xfxf
3. 误差反向传递
由于在通常情况下 LSTM 网络层可以级联,也可以接全连接输出层。对于每一
个 LSTM 网络层 ,当 t=T 时, 为
层的误差反向传递,当
时 由
两部分组成,一是 t 时刻
层的误差反向传递
,二是 t+1 时刻的误差反
向传递
。
误差定义:在 t 时刻,GRU 的输出值为 ,t 时刻的误差 为:
(3)
LSTM 网络 层的误差反向传递,就是通过已经算出的 t 时刻的误差项 计算
出 t-1 时刻的误差项 ,为便于书写误差项缺省为 层。
由公式(1)(2)可知
都是 的函数,根据误差定义及全
导数公式可得:
(4) 各单元 t 时刻误差
公式计算:
其中
只要求出 即可,因为 是 的函数所以:
3
llT1l),0[Ttlt1l1ltlt1thlt),0[,,111TthETtltlttltltltlt1tltotgtitfnetnetnetnet,,,,,,,1th w w w w hnetnetEhnetnetEhnetnetE hnetnetEohtoghtgihtifhtfltttotottgtgttitittftfltt,,,,111,,1,,1,,1,,111totgtitf ,,,,,,, g i netggccEnetE ii g netiiccEnetE ff c netffccEnetE oo )ctanh( netoohhEnetEtttctgtttttgtgttttctitttttitittttctftttttftftttttotttttoto)1()1()1()1(2,,,,,,,,1,,,,,,,tgtitf ,,,,, tc,thtc )ctanh(o chhEcE2ttttttttc)1(,
将公式(4)循环代
的误差。
4. 权重及偏置更新
可求出各时刻
根据对 LSTM 各单元误差的计算结果,结合应用广泛的梯度下降算法,通过训
练反复调节各单元的权重及偏置,进而将预测输出与目标输出误差控制在可接受
的范围内,通过如下公式修正权重与偏置。
(5)
根据上节求出的各时刻的误差
计算权重及偏置梯度。首先计
算
。
将各个时刻的梯度加在一起,就能得到梯度
如下:
同理可得梯度
如下:
4
w w w wohtoghtgihtifhtfltt,,,,111bEbbbbwEwwwwtotgtitf ,,,,,,,tohtghtihtfhw ,w,w ,w,,,,1,,,,,,1,,,,,,1,,,,,,1,,,,,,ttotohtototohtohttgtghtgtgtghtghttitihtititihtihttftfhtftftfhtfhhwnetnetEwEwhwnetnetEwEwhwnetnetEwEwhwnetnetEwEwohghihfhw ,w,w ,wTtttoohTtttgghTtttiihTtttffhhw , hw , hw , hw11,11,11,11,ogifoxgxixfxb,b,b,b,w ,w,w ,wTttooTttggTttiiTttffTtttooxTtttggxTtttiixTtttffxb , b , b , bxw , xw , xw , xw1,1,1,1,1,1,1,1,
5. 误差向上层传递
LSTM 网络当前层为 ,定义
层的误差项为:
(6)
LSTM 的输入 是上一层的网络输出,定义为
,其中 为
层的激活函数。由公式(1)的定义可知,
均为 的函数,根
据全导数公式可得:
王伟东
532873584@qq.com
2018-02-07
5
l1l11ltltnetEltx)(11ltlltnetfx1lf1lltoltgltiltfnetnetnetnet,,,,,,,ltx )(netf w w w w netx xnetnetE netx xnetnetE netx xnetnetE netx xnetnetE netE1-lt' oxtogxtgixtifxtfltltltltoltoltltltltgltgltltltltiltiltltltltfltfltlt)(,,,,1,,1,,1,,1,,11