LSTM内部结构分析

详解LSTM-内部结构

LSTM内部结构

1,循环神经网络(RNN)
内部结构:LSTM内部结构分析

RNN选用的**函数为tanh
tanh(x)=exexex+ex tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}
tanh(x)的输出空间为(-1,-1),整个函数以0为中心。
tanh(x)=1tanh(x)2 tanh'(x)=1-tanh(x)^2
当训练时,利用BP算法进行反向求导时,当神经网络层数很深时出现梯度消失,罪魁祸首就是**函数tanh。
详情可以参考https://zhuanlan.zhihu.com/p/28687529(大佬写的)

2,长短时记忆网络(LSTM)
LSTM内部结构分析
对LSTM的分析
a,门结构(重要)
LSTM内部结构分析
门是实现选择性地让信息通过,主要是通过一个sigmoid神经层和一个逐点想乘的操作实现的。(注意:这就是LSTM结构当中有3个乘号的原因,因为LSTM有三个门,分别为输入门,输出门,遗忘门,刚开始特别不理解为什么有三个乘号)。因此可以把LSTM可以抽象为
LSTM内部结构分析
b,遗忘门
LSTM内部结构分析
为什么要使用sigmoid函数,可以换成其他**函数吗?回答是否定的,因为门是控制开闭的,0代表完全抛弃,1代表完全保留,0-1代表部分保留,而sigmoid函数的值域为0-1,因此选取sigmoid函数。
遗忘门的作用:决定哪些信息从单元状态中抛弃。例如:我喜欢篮球,他喜欢足球,当第二个主语出现,选择性的抛弃我这个主语。
c,输入门
LSTM内部结构分析
输入门一共有两步:sigmoid 层决定哪些信息需要更新;一个 tanh 层生成一个向量,将值推到(-1,1),也就是备选的用来更新的内容,两部分结合共同构成输入门。例:他喜欢篮球,我…,当遇到我时,会把我加入到细胞状态当中。
输入门的作用:决定单元状态中保存哪些新信息。
为什么是sigmoid函数和tanh函数,可否换成别的**函数?个人认为sigmoid函数不可以,tanh函数可以,因为sigmoid函数用在各种gate上,产生0-1的值,而tanh用在状态和输出上,是对数据的处理。
下一步,将旧状态与新状态进行叠加(+),就得到了新的状态(忘记决定要忘记的,加入新的状态)
LSTM内部结构分析
d,输出门
LSTM内部结构分析
作用:决定输出什么。
为什么选择tanh函数和sigmoid函数?同输入门。
注意:当LSTM网络很深时且使用tanh作为**函数,可能会引起梯度消失的问题。