前言
文章不对LSTM的详细原理做过多讲解,仅描述其计算过程和数学表达。原理部分可以参照如下链接:
LSTM简要介绍
结构对比:RNN vs LSTM
是RNN循环神经网络的变体形式,对比RNN网络,可以记忆长时序信息
- RNN循环神经网络简要结构
VS
- LSTM网络简要结构
RNN网络单元之间通过单一tanh函数进行连接
LSTM网络单元之间的链接要相对复杂一点,可分为:遗忘门、更新门、输出门
LSTM结构特点
- RNN网络仅通过状态h来记录历史信息,只能记忆信息,不能遗忘信息
- LSTM通过添加状态C来记忆长时信息(更新慢),即LSTM网络里面有两类单元可以记录历史状态信息:C(长时信息,更新慢)、h(短时信息,更新快)
LSTM计算步骤
流程图节点操作介绍
从左到右分别是:网络层,节点操作(矩阵相乘,矩阵相加),矢量转移,矩阵连接,矩阵复制
遗忘门
-
f t f_t ft经过 s i g m o i d ( ) sigmoid() sigmoid()函数,其数值区间为0-1,可以理解为“遗忘多少历史信息” or “保留多少历史信息”
- 当 f t f_t ft=0,表示遗忘所有历史信息 C t − 1 C_{t-1} Ct−1
- 当 f t f_t ft=1,表示保留所有历史信息 C t − 1 C_{t-1} Ct−1
-
f t f_t ft由上一时刻的短时状态 h t − 1 h_{t-1} ht−1和当下时刻的输入 x t x_t xt决定
更新门
- i t i_t it经过 s i g m o i d ( ) sigmoid() sigmoid()函数并与 C ~ t \tilde{C}_t C~t矩阵相乘,决定了那些 C ~ t \tilde{C}_t C~t信息可以保留
- C ~ t \tilde{C}_t C~t经过 t a n h ( ) tanh() tanh()函数,可以理解为将信息压缩到0-1