LSTM原理
-
CNN卷积神经网络 应用:图像,视频
-
RNN 递归神经网络 应用:NLP
1RNN结构
-
one to one
比如输入一张图片,它会给我们输出是猫还是狗
-
one to many
比如输入一张图片,给出一些列图片描述
-
many to one
比如文本分析,给出文本是积极还是消极的
-
many to many (输出 与 输入 不定长)
比如 聊天机器人
-
many to many (输入 与 输出定长)
2.LSTM原理
-
LSTM是升级版的RNN,LSTM解决了RNN无法解决长期以来问题,输出前面很长一段序列有关的问题。LSTM相比RNN添加了三个门:遗忘门,输入门,输出门。
遗忘门:决定从细胞状态中丢弃什么信息 输入门:决定让多少新的信息加入细胞状态,这一步将输出细胞状态 输出门:确定输出值,该输出值基于细胞状态
-
门的概念:
我们认为细胞的流动是一个传送带,传送带进行线性交互,我们认为将一些货物放到传送带进行传动,而LSTM内部设计一种结构为门的结构,门可以去除或增加一些细胞状态,它决定哪些货物放到传送带上,哪些货物不放到传送带上。而这些货物可以认为是信息
如上图,可以看到 σ 它是神经网络的激活层, 粉色X 为 点乘,我们通过 σ 输出0-1数值,它能描述哪些货物可以通过,然后通过点乘汇集到传送带上。 上面三个门都是为了保护,控制细胞状态。为了保证哪些货物要放到传送带,哪些货物不放到传送带。在LSTM第一步中我们要确定往细胞丢弃什么信息,也就是确定哪些货物要放到传送带,哪些货物不放到传送带.
-
遗忘门:
-
最开始是一个遗忘门,首先它会读取ht-1时刻向量值和xt时刻的输入,然后通过激活层 σ 输出一个0-1之间数值(激活层函数一般为ReLU),然后进行一个点乘,最终到传送带。1表示完全保留,0表示完全舍弃。
-
如下公式:
ft 为 σ网络激活层 Wf 为 权重 ht-1,xt 为 输入 bf 为 偏执量
-
-
输入门:
-
这一步要确定什么样信息放到细胞状态中,什么样货物最终放到传送带进行传送。这里包含2个步骤:
1.首先:通过ht-1时刻向量值和xt时刻的输入然后通过 σ 网络激活层 决定哪些信息要更新,最终放入传送带。 2.然后:通过tanh层,通过tanh层生成一个向量,对输入端进行激活,对细胞进行更新将Ct-1更新为Ct
-
如下公式:
公式1: it 输入 Wi 为 权重 ht-1,xt 为 输入 bi 为 偏执 公式2: Wc 为 权重 ht-1,xt 为 输入 Bc 为 偏执
-
更新信息的确定详解:
我们首先根据ft(之前经过遗忘门保留的部分)和Ct-1进行点乘,然后结合it(更新的部分)和Ct进行点乘,进入传送带进行传送,最终进行加权输出到Ct。
-
如下公式
-
-
输出门
-
它决定我们最终输出是什么样子的,我们基于ht最终输出是什么样子输出。
首先我们通过 σ 网络激活层 ,这里输入还是ht-1,xt得到称为ot,然后通过我们之前在传送带传送的货物Ct,经过tanh层 进行点乘 最终输出ht
-
公式:
ot 相当于激活层:权重, 输入,偏执得到结果 ht 相当于最终输出
-
3.LSTM应用场景
- 语音识别
- 图像描述
- 聊天机器人
4.LSTM模型训练过程
-
从RNN到LSTM
原始RNN只有一个状态h,LSTM加入了长期状态c,而加入长期状态c以后,可以实现长远的记忆。
-
LSTM循环展开
LSTM循环展开后可以看成多个神经元,我们进行多次赋值,在传送带传送h和C(用于传送状态),也就是要传送的货物
-
LSTM核心思想----门
遗忘门处理完 获取到了上一个时期的长期状态,当前时刻的即时状态(我们需要更新状态),我们通过输入门,将货物最终放到要传送带,最终输出门控制那些需要输出,那些不需要输出
5.LSTM训练算法
- LSTM使用BPTT算法,它随时间反向传播,是一种具有长时记忆能力的神经网络模式,被广泛应用序列标注,因之前通常使用前向传播,会造成梯度消失或梯度爆炸问题。
梯度消失:随着时间增长,权重会越来越小,
梯度爆炸:权重相乘 数值会特别大
-
而BPTT反向传播的激活函数Tanh术语双曲正切 -1 到1之间。有效解决上述问题。
-
LSTM BPTT算法
-
前向推导
前向推导假如上一层节点i,j,k...等一些节点与本层的节点w有链接。那么节点w的值如何计算? 通过上一层的i,j,k等节点以及对应的连接权值(W)进行加权和运算,最终结果再加上一个偏执项,最后通过非线性函数(又称激活函数),若ReLu,sigmoid等函数,最后得到的结果就是本层节点w输出。 最后不断的通过这种方法一层层运算,得到输出层结果。
-
如下公式:
a2=σ(z2)=σ(a1∗W2+b2)
其中,上标代表层数,星号表示卷积,b表示偏置项bias,σ \sigmaσ表示激活函数。
-
-
反向推导
6.LSTM不足
- 和RNN一样,只是缓解了梯度问题。序列长度过长,还是存在梯度问题。
- LSTM计算相对费时,LSTM的cell里面都有4个全连接层(MLP)。
7.LSTM模型改进
-
Peephole LSTM
在 LSTM 本体上加上一个Peephole connection,
-
GRU
把遗忘门和传输门进行合并叫更新门,还把偏执省掉了。