文章目录
- 1. 序言
- 2. RNN的基本概念与网络结构
- 2.1 概念
- 2.2 结构
- 2.3 要素
- 3. LSTM的基本概念与网络结构
- 3.1 概念
- 3.2 结构
- 3.3 要素
- 4. LSTM网络结构的说明
- 5. 补充
1. 序言
-
临渊羡鱼不如归而结网
-
学习的目的是为了应用
2. RNN的基本概念与网络结构
LSTM是在RNN的基础上演进而来的,因此有必要简单了解RNN
2.1 概念
RNN = Recurrent Neural Network,循环神经网络
RNN是专门处理序列数据的网络,是对序列数据最自然的神经网络架构,在语音识别、语言翻译和图片描述等方面获得应用。
2.2 结构
- 链式结构 + 重复单元
神经网络A处理输入x_t,输出h_t
左侧是折叠,右侧是展开
2.3 要素
xt -> t时刻输入层的值,一个向量或矩阵
st -> 表示隐藏层的值,一个向量或矩阵
ot -> 表示输出层的值
U -> 输入层到隐藏层的权重矩阵
V -> 隐藏层到输出层的权重矩阵
W -> 参数权重矩阵
t时刻的隐藏层st不仅取决于当前时刻的输入xt,还取决于上一时刻隐藏层的值st-1
标准RNN的特点:
(1) 权值共享。W是相同的,U和V也一样
(2) 每一个输入只会和它本身的那条路线建立权连接,不会和别的神经元连接
RNN的训练方法:BPTT(Back Propagation Through Time),BPTT的本质是BP算法,BP算法的本质是梯度下降法,而算法的核心是求各个参数的梯度
RNN存在的问题:梯度消失和梯度爆炸。由于梯度消失只有短时记忆,无法解决长期依赖问题。可以通过选取更好的激活函数或改变网络结构(比如LSTM)来改善梯度消失的问题。
LSTM通过精妙的门控制将加法运算带入网络中,一定程度上解决了梯度消失的问题。
3. LSTM的基本概念与网络结构
3.1 概念
LSTM = Long Short Term Memory network,长短期记忆神经网络
记住长期信息是LSTM的默认行为,很好解决了长期依赖问题
3.2 结构
- RNN的网络结构:重复单元只有一个简单的tanh层(双曲正切)
- LSTM的网络结构:重复单元包含了4个交互的层
3.3 要素
(1)细胞状态:重复单元顶端传送的向量。细胞状态只需要进行一些初级的线性变换,因此保持不变很容易。
(2)门:门是一个可以让信息选择性通过的结构,LSTM通过精心设计的各种门来去除或新增信息到细胞状态。
LSTM有三个门来保护和控制细胞状态:遗忘门 + 输入门 + 输出门
- 遗忘门
确定从细胞状态中丢弃什么信息。
由sigmoid函数组成的层来完成,sigmoid函数描述每个部分有多少量可以通过。
- 输入门
确定什么样的新信息要输入细胞状态中。
第一部分是sigmoid层,确定要更新哪个值;
第二部分是tanh层,产生新的待用值。
旧细胞状态通过遗忘门,待用值通过输入门,两者结合的结果更新细胞状态。
- 输出门
确定输出什么值。
sigmoid函数决定要输出的部分,与tanh将细胞状态变换后相乘,输出需要的信息
这三个门都使用sigmoid函数作为选择工具,tanh函数作为变换工具,这两个函数结合起来实现三个门的功能。
一开始的LSTM只有输入和输出门,现在LSTM增加了遗忘门。
4. LSTM网络结构的说明
-
LSTM为什么能保留历史信息
历史和当前状态简单相加,自然保留。
-
为什么h_t输出两次
LSTM不仅有横向链接,还有纵向链接。纵向预测:根据变量历史预测变量。 横向链接:根据一些变量特征预测变量。
-
为什么采用sigmoid函数和tanh函数作为激活函数
两个激活函数都是饱和的,饱和的意思就是输入达到一定值后输出就不会发生明显变化;sigmoid输出0~1,符合门控的物理定义。在输入较大或较小时,输出接近0或1,从而保证门开或关。tanh函数双曲正切函数,输出在-1~1之间,这与大多数场景下特征分布是0中心吻合。tanh函数在输入为0附近相比sigmoid有更大的梯度,通常使模型收敛更快。
sigmoid/tanh/relu函数图像
-
LSTM是通过数据去学习内在规律,如果有用信息不蕴含在数据中,LSTM无论如何都是学不到的。
5. 补充
-
LSTM的变体
peephole connection/coupled忘记和输入门/GRU = gated recurrent unit
其中GRU可能是最成功的一种,正在变得越来越流行
-
LSTM的应用
自动图片标题生成
文本自动翻译
自动手写体生成
音乐的生成
字母的生成
天气/股票/趋势预测
…
接下来通过具体实例熟悉LSTM的应用,请移步到:To Do
参考文章:
RNN和LSTM原理
LSTM入门
LSTM网络结构
LSTM总结
created by shuaixio, 2021.12.06