你好,LSTM
LSTM模型
1. 知识背景
**函数
- 函数(归一化)
(LSTM等网络的每个组成单元(unit)中用到的门通常使用这个函数) 函数的作用是 将值压缩到 0~1 之间
- 函数(归一化)
是双曲函数中的一个,为双曲正切。在数学中,双曲正切“”是由基本双曲函数双曲正弦和双曲余弦推导而来。函数(LSTM等网络的每个组成单元(unit)中用到的门)
2.Recurrent Neural Network (RNN )
RNN是由多个unit组成的(每个unit是由一个tanh函数构成,tanh是一个**函数)
A 称为RNN的一个unit
是一个输入信息
是通过第t个unit后的一个记忆状态
3. Long Short-Term Memory (LSTM)
( Memory networks)可以解决传统RNN的长期依赖(long-term dependencies)问题。它对传统RNN的隐层进行了结构上的 改进。主要是添加了遗忘门,通过遗忘门决定对以往的信息还可以记忆多少。
LSTM是由多个unit组成的,但是它的unit和RNN的unit内部结构是不同的(LSTM的unit比RNN的unit更复杂或者说操作更多)多了几个**函数和,其中一般使用的**函数是
那么我们分几部分说LSTM的组成
LSTM中的状态信息,可以把这个理解为为记忆(memory)。下图中 水平线可以理解为记忆(memory)总线,总线上面的 可以理解为乘法操作,是加法操作
LSTM有三种门,即遗忘门,输入门,输出门。 LSTM中的门可以选择性的控制信息的流动,通常由一个sigmoid神经网络层和一个point wise(或者叫element wise)的乘法操作组成。
3.1 遗忘门
是和穿过遗忘门的输出信息,通常为其设置一个权重和偏移,如果没有遗忘那么=1;如果全部遗忘=0.
3.2 输入门
输入门稍微有些复杂,但是也很简单,将输入门拆成两部分(门和门)是和穿过门的输出信息,通常为其设置一个权重和偏移$b_i, 是和穿过门后的输出信息,同样为其设置一个权重和偏移$b_C
总线 -----> 信息
3.3 输出门
是和经过门后输出的信息,输出门的输出信息是由现有记忆信息和经过,门组合而成有些复杂,但是拆分成几个门来看也不过如此啊
概括一下:
- 状态信息的依赖于遗忘门和输入门和
- 遗忘门和输入门和依赖于输入信息和
- 当前隐层依赖于状态信息
4. LSTM的变种–最典型的几个
以下对LSTM所做出的改进都是对组成LSTM的unit改进的,加入更为复杂的门,加入耦合等…
一种比其他形式变化更为显著的LSTM变式是由 Cho, et al. (2014)提出的门循环单元(GRU)。它将忘记门和输入门合并成一个新的门,称为更新门(从左到右第一个经过后与第二个组合而成)。GRU还有一个门称为重置门(下图从左到右第一个)。
其中重置门(上图中从左到右第一个门),决定了如何将新的输入信息与前面的记忆相结合。更新门(上图中从左到右第一个门和第二个门的组合),定义了前面记忆保存到当前时间步的量。由于该变式的简单有效,后来被广泛应用。
其中一个很受欢迎的变式由Gers & Schmidhuber (2000)提出,它在LSTM的结构中加入了“peephole connections.”结构,peephole connections结构的作用是允许各个门结构能够看到细胞信息
还有一种变式是在忘记门与输入门之间引入一个耦合。不同于之前的LSTM结构,遗忘门和输入门是独立的,这个变式是在忘记门删除历史信息的位置加入新的信息,在加入新信息的位置删除旧信息。该结构如下图所示。
将遗忘门和输入门耦合在一起,简单来说就是遗忘多少就更新多少新状态,没有遗忘就不更新状态,全部遗忘那就将新状态全部更新进去。