RNN与LSTM

  RNN(Recurrent Neural Network,循环/递归神经网络),主要思想是用先前的信息来辅助当前任务。


  神经网络模块A,正在读取某个输入 x,并输出一个值 h,同时还有从A到自身的箭头,这就是循环。将这个循环结构摊开,就得到了下图:


  时刻0时,输入X0,输出h0;时刻1时,输入X1和h0,输出h1,依次类推。这样就能够实现用之前的信息来辅助当前的任务。
  但RNN有个问题是,虽然在当前任务中加入了上一时刻的信息,时刻4有来自时刻3的信息,时刻3有来自时刻2的信息,但是,来自距离较远的信息就衰减得很厉害,0时刻的信息到达4时刻就剩下的很少了,这就是长期依赖的问题。
  LSTM(Long Short Term Memory,长短期记忆),RNN的一种特例,为了解决长期依赖问题而诞生。它和普通RNN的关键差别在于它除了相邻时刻的信息传递之外,它还增加了一条信息传送带(细胞状态),贯穿每一个时刻,这样能够很好地保留每一个时刻的信息,信息不会随着时间的推移而消失。

  LSTM 的关键就是细胞状态,水平线在图上方贯穿运行。细胞状态类似于传送带。直接在整个链上运行,只有一些少量的线性交互。信息在上面流传保持不变会很容易。LSTM 有通过精心设计的称作为“门”的结构来去除或者增加信息到细胞状态的能力。门是一种让信息选择式通过的方法。他们包含一个 sigmoid 神经网络层和一个 pointwise 乘法操作。Sigmoid 层输出 0 到 1 之间的数值,描述每个部分有多少量可以通过。0 代表“不许任何量通过”,1 就指“允许任意量通过”。LSTM 拥有三个门,来保护和控制细胞状态。

  忘记门

  输入门

  输出门

posted @ 2017-09-22 11:17  CC的岁月童话  阅读(458)  评论(0编辑  收藏  举报