LSTM笔记

机器学习

注:本文结合了 理解长短期记忆(LSTM) 神经网络CS224D 的slide

先从RNN开始:

传统的CNN用于图像识别效果很好,但是如果将CNN用于NLP结果就不会太好,尤其对于复杂情况应用CNN很难得到想要的结果。因为传统的神经网络并不能做到持续记忆, 而许多情境下我们需要从复杂的上下文中推断出信息,这个时候CNN就不能满足需求了。

先看RNN的结构

其中A 代表神经网络主体, xt 是网络输入,ht是网络输出,循环结构允许信息从当前输出传递到下一次的网络输入,所以是一个递归的结构。展开来看是这样的:

可以看到hiddenState是从过去传到未来的,也就是说RNN会记住前世的信息。

RNN 的缺点:

  1. 难以训练:Multiply the same matrix at each time step during forward prop
  2. 梯度弥散、梯度爆炸:Multiply the same matrix at each time step during backprop(当需要查找的结果距离当前位置很远时,梯度可能会变得很小)

LSTM(Long-short-term-memories)

  1. 首先是遗忘门:以x和上一层输出的hidden state为输入,通过sigmod决定遗忘那些数据
  2. 然后是输入门:以x和上一层输出的hidden state为输入,通过sigmod决定记住那些数据
  3. 然后是输出门:以x和上一层输出的hidden state为输入,通过sigmod决定输出那些数据
  4. 再是cell:以x和上一层输出的hidden state为输入,通过sigmod决定记住这一层的那些数据
  5. 然后是这一层最终记录什么数据:如果ft是0则会忘记以前的全部信息。如果it是0曾会忘记这层的全部信息,然后相加得到这层的最终结果
  6. 最后保存这一层的hidden state,即输出门乘以经过tanh的结果

Original link:https://izhangzhihao.github.io//2017/10/02/LSTM笔记/

Search

    Table of Contents