循环神经网络:LSTM

LSTM

L S T M LSTM LSTM的网络结构是1997年由 H o c h r e i t e r Hochreiter Hochreiter S c h m i d h u b e r Schmidhuber Schmidhuber提出的,全称是Long Short Term Memory Networks$的缩写,字面翻译就是长的短时记忆网络,其实解决的仍是短时记忆问题,只不过这种短时记忆比较长,能在一定程度上解决长时依赖的问题。这种网络结构也是链式循环的网络结构,但其内部有着更加复杂的结构,其抽象网络结构示意图如下所示:在这里插入图片描述
由图可以看出,LSTM由三个门来控制,分别是输入门、遗忘门和输出门。输入门控制着网络的输入,遗忘门控制着记忆单元,输出门控制着网络的输出。其中最重要的就是遗忘门,它的作用是决定之前的哪些记忆被保留,哪些记忆将被去掉,正是由于遗忘门的作用,使得LSTM具有了长时记忆的功能,对于给定的任务,遗忘门能够自己学习保留多少以前的记忆,这使得不再需要人为干扰,网络就能够自主学习。
下面从具体的内部结构来解释LSTM的网络流过程,首先是LSTM内部的结构示意图,如下图所示:在这里插入图片描述首先是整个网络结构中最重要的遗忘门,如下图所示:在这里插入图片描述
C t − 1 C_{t-1} Ct1作为上一步 t − 1 t-1 t1时刻网络中的记忆单元,传入 t t t时刻的网络之后,第一步操作是决定它的遗忘程度,将 t t t时刻前面的记忆状态乘上一个 0 ∼ 1 0\sim1 01的系数进行衰减,接着加上 t t t时刻学到的记忆作为更新之后的记忆传出网络,作为 t + 1 t+1 t+1时刻网络的记忆单元,其中 t − 1 t-1 t1时刻网络记忆的衰减系数是通过 t t t时刻网络的输入和 t − 1 t-1 t1网络的输出来确定的, t t t时刻网络学到的记忆也是根据 t t t时刻网络的输入和 t − 1 t-1 t1时刻网络的输出得到的。
下面介绍记忆的衰减系数是如何得到的,如下图所示:在这里插入图片描述首先将 t − 1 t-1 t1时刻的网络输出 h t − 1 h_{t-1} ht1和这一步的网络输入 x t x_t xt结合起来,然后作用线性变换 W f ⋅ [ h t − 1 , x t ] + b f W_f\cdot[h_{t-1},x_t]+b_f Wf[ht1,xt]+bf,最后再经过 s i g m o i d sigmoid sigmoid激活函数,将结果映射到 0 ∼ 1 0\sim1 01作为记忆的衰减系数,记作 f t f_t ft。可以看到网络具体要保留多少记忆是由前一时刻的输出和这一时刻的输入共同决定的。
接着介绍 t t t时刻学到的记忆是如何计算的,如下图所示:在这里插入图片描述首先对该时刻学到的记忆,对它应用一个衰减系数,这个系数应用跟上面的方式相同,再使用线性变换,然后使用 s i g m o i d sigmoid sigmoid激活函数,将结果映射到 0 ∼ 1 0\sim1 01之间,这个结果作为当前学习到记忆的衰减系数,记作 i t i_t it。当前状态学习到的记忆 G t ~ \tilde{G_t} Gt~是通过线性变换 W c ⋅ [ h t − 1 , x t ] + b c W_c\cdot[h_{t-1},x_t]+b_c Wc[ht1,xt]+bc t a n h tanh tanh激活函数得到的。最后将 t − 1 t-1 t1时刻的衰减系数 f t f_t ft t − 1 t-1 t1时刻的记忆 C t − 1 C_{t-1} Ct1,加上该时刻 t t t下学到的记忆 C t ~ \tilde{C_t} Ct~乘以它对应的衰减系数 i t i_t it,这样便得到了 t t t时刻下的记忆状态 C t C_t Ct,可以用下图显示具体的计算过程。在这里插入图片描述
下面介绍输出门。
当前时刻 t t t的网络输出 h t h_t ht取决于当前时刻 t t t的记忆状态 C t C_t Ct t t t时刻的输入 x t 、 t − 1 x_t、t-1 xtt1时刻的输出 h t h_t ht,具体的计算过程如下图所示:在这里插入图片描述首先使用类似于计算记忆衰减系数的方法计算得到输出门的系数 o t o_t ot,这个系数决定了输出的多少,最后网络的输出由 h t = o t × t a n h ( C t ) h_t=o_t\times tanh(C_t) ht=ot×tanh(Ct)得到,这就是输出门如何控制网络输出的原理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值