LSTM的理解

对LSTM的理解

  人类会基于对之前所见词的理解来推断当前词的含义,我们当然不会将所学过的东西全部丢掉,用空白的大脑去思考。所以,我们的思考具有持久性。

  而传统的神经网络并不能做到这一点,假设你希望对电影中每个时间点的时间类型进行分类,传统的神经网络很难处理这个问题——使用电影中先前的事件推断后续的事件。

  Rnn是包含循环的网络,允许信息的持久化,可以解决这一问题。


RNN循环

  神经模块A正在读取输入Xt,并输出一个Hi值,循环可以使得信息传送到下一步。如果不是很容易理解,我们可以把其展开。


展开的RNN

  从链式特征来看,RNN本质上与序列和列表有关,他们是对于序列和列表最为自然的神经网络架构。

  LSTM(Long Short Term)——特殊的RNN,比标准的RNN表现效果还好一点。可以学习长期依赖信息。记住长期的信息是LSTM默认的信息,对于较远的信息,LSTM的表现效果较好。


标准RNN的重复模块


LSTM的重复模块

  LSTM和RNN的结构相同,但是单一模块中却拥有不同的结构,这里有四个神经网络层,以特殊的方式进行交互。

  LSTM有精心设计的门来筛选信息,包含一个sigmoid层和pointwise乘法操作。


  sigmoid层输出0到1的数值来描述多少量可以通过。0表示不允许任何量通过,1表示允许任意量通过。

逐步理解LSTM

  LSTM拥有三个门来控制细胞状态,第一步是决定丢弃细胞哪些信息——遗忘门。


遗忘门

遗忘门是以上一层的输出ht-1和本层要输入的序列数据xt作为输入,通过一个激活函数sigmoid,得到ft,其取值在【0,1】区间,表示上一层细胞被遗忘的概率,1是完全保留,0是完全舍弃

  下一阶段是输入门,确定哪些新的信息能够被存放到细胞中——输入门。


输入门

  输入门包含两个部分,第一部分是sigmoid函数,输出it,第二部分使用tanh激活函数。输出为Ct。此时,ft是遗忘门的输出,控制上一层细胞状态即Ct-1被遗忘的程度,it*Ct是输入门的两个输出乘法运算,表示多少新信息被保留。Ct已经更新,我们将旧状态Ct-1与ft相乘,丢弃掉我们要丢弃的信息,加上it*Ct。此时结果为我们新的候选值。


更新细胞状态


最后一阶段即输出门,用来控制该层的细胞状态的过滤情况。首先使用sigmoid函数得到【0,1】的区间Ot,然后新的细胞状态Ct通过tanh函数的处理后与Ot相乘,即本层的输出ht。

输出门

至此LSTM的结构已经理解了,目前有很多LSTM结构的变体,如流形的LSTM变体。即在门层加了peephole connection,即也接受细胞状态的输入。

加peephole



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容