Chapter 4 Long Short-Term Memory
4.1Network Architecture
乘法门允许LSTM存储单元在长时间内存储和访问信息,从而减轻梯度消失的问题。例如,只要输入门保持关闭(即有一个
**接近于0),单元的**状态不会被网络中新的输入所覆盖。并且可以通过打开输出门,把这个信息输出给更后面的序列。(也就是说利用这种方法保持了单元的**信息,给后面的序列用)LSTM对梯度信息的保存时间如图4.4所示。
Figure 4.2: LSTM memory block with one cell.
这三个门是非线性的求和单元,它们收集来自内部和外部的**,通过乘法(小黑圈)控制细胞的**。输入门和输出门与细胞的输入和输出相乘,而遗忘门和细胞的前一个状态相乘。在细胞内没有使用**函数。门的**函数f通常是logistic sigmoid,因此,门的**函数的输出在0(gate closed)和1(gate open)之间。细胞的输入和输出**函数(g和h)通常是tanh或logistic sigmoid,不过在某些情况下h是恒等函数。虚线表示从细胞到门的加权的“窥视孔”(细胞可以给门进行加权处理)。其他的连接都是没有权重的(换句话说,可以认为它们的权重都是固定为1)。这个模块给网络中其他部分唯一的输出是输出门的乘法结果。
4.2 Inuence of Preprocessing
这段的大概意思是如果降采样可以减小序列的长度,那么就用降采样以后的数据,这样就可以直接使用隐马尔可夫模型之类的工具来处理了。如果不行,那就要使用LSTM
4.3 Gradient Calculation
就像上一章讨论的网络一样,LSTM是一个可分割的函数,它通常使用梯度下降来训练。
通过时间反向传播(BPTT;Williams and Zipser,1995)。BPTT部分在一个时间后被截断,因为它认为长时间的依赖关系将由记忆块来处理,而不是通过循环连接周围的**(消失的)流来处理。截断梯度的好处是可以让算法完全在线,这样就可以在每一个时间步骤之后进行权重更新。这对于诸如连续控制或时间序列预测之类的任务来说是重要的特性。
4.6 Network Equations
这一节提供了在一个递归神经网络中,LSTM隐藏层的**(向前传递)和BPTT梯度计算(向后传递)的方程。
如前,
设I是输入个数,K是输出个数,H是隐藏层中的细胞数。注意到只有细胞(cell)的输出
?? H和C是什么关系? H是整个隐藏层中的细胞个数,而C是一个块中的细胞个数。对于标准LSTM,C应该就是1?
和标准RNN一样,前向传输是是通过这个方法来计算的:一个长度为T,从t=1开始的输入序列x,当t增加时,回归地应用更新公式。而用BPTT反向传输时,则是从t=T开始,回归地计算单元的偏导数,直到t=1。把每个时步的偏导数加起来,就得到了最终的权重偏导数。如等式(3.35)描述的,下面我们回忆一下:
这里
在向前和向后传播时, 计算方程的顺序是很重要的,应该按照下面的说明进行。与标准RNNs一样,所有状态和**在t = 0时初始化为0(正向传播的初始值),所有
4.6.1 Forward Pass
-
输入门
atι=∑i=1Iwilxti+∑h=1Hwhlbt−1h+∑c=1Cwclst−1cbtι=f(atι) atι 可以理解成所有输入数据(∑Ii=1wilxti )和前一个时刻的遗忘门**输出(∑Hh=1whlbt−1h ),和细胞**输出(∑Cc=1wclst−1c )之和。前一个时刻遗忘门**输出
∑Hh=1whlbt−1h 里的H是什么呢?在有些网络结构里,可能有不止一个遗忘门,也可能从别的块里连一个输入过来。大牛为了公式通用,就用了一个求和公式来覆盖这种情况。在标准LSTM块里面,只有一个遗忘门,所以H=1。前一时刻细胞**输出(
∑Cc=1wclst−1c )里的H的含义也是和上面的一样的。在标准块里,只有一个细胞,所以H=1。
-遗忘门
-Cells
Cell的输入(
Cell的状态(
-
Output Gates
atωbtω=∑i=1Iwiωxti+∑h=1Hwhωbt−1h+∑c=1Cwcωstc=f(atω) atω 是这个时刻的输入,细胞输出和上个时刻的输出门输出的加权之和。 -
Cell Outputs
btc=btωh(stc)
4.6.1 Backward Pass
首先定义了单元c和整个记忆单元输出s的偏导数
- Cell Outputs
K是输出层的神经元个数。
如果输出层使用了softmax函数,而且代价函数是交差熵函数的话,那么
g是指输入,是否是指
- Output Gate
δtω=f′(atω)∑c=1Ch(sct)ϵtc -
States
ϵtc=btωh′(stc)ϵtc+bt+1ϕϵt+1c+wclδt+1ι+wcϕδt+1ϕ+wcωδtω -
Forget Gates
δtϕ=f′(atϕ)∑c=1Cst−1cϵts - Input Gates
δtι=f′(atι)∑c=1Cg(atc)ϵts
参考:
http://blog.csdn.net/omnispace/article/details/55636762
https://www.csie.ntu.edu.tw/~yvchen/f106-adl/syllabus.html
http://blog.csdn.net/qian99/article/details/78046329