原创:李孟启
1、背景
LSTM(Long Short-term Memory,LSTM)长短期记忆[1],是一种用于处理序列数据的神经网络。相比一般的神经网络来说,他能够处理序列变化的数据。比如某个单词的意思会因为上文提到的内容不同而有不同的含义,LSTM就能够很好地解决这类问题。
本教程适合入门深度学习的小白,大神请绕行,你要是即将参加面试,那么这篇文章也会对你产生帮助。
2、LSTM结构
如图1所示,这是一个时刻的LSTM的内部结构图,多个时刻就是下图在横向上拼接组成。
(1)从图中我们可以看到有三个门,即输⼊门(input gate)、遗忘门(forget gate)和输出门(output gate),以及记忆细胞(某些⽂献把记忆细胞当成⼀种特殊的隐藏状态),从⽽记录额外的信息。这里你可能不懂隐藏状态,但是没关系,你只需要理解下面的计算过程即可。一提到LSTM,我们就不得不面对下面的公式,这些公式也是面试中常被问及的地方,也有一定的重复性,突出两个字“好记“。
I t = σ ( X t W x i + H t − 1 W h i + b i ) \boldsymbol{I}_{t}=\sigma\left(\boldsymbol{X}_{t} \boldsymbol{W}_{x i}+\boldsymbol{H}_{t-1} \boldsymbol{W}_{h i}+\boldsymbol{b}_{i}\right) It=σ(XtWxi+Ht−1Whi+bi) 式1
F t = σ ( X t W x f + H t − 1 W h f + b f ) \boldsymbol{F}_{t}=\sigma\left(\boldsymbol{X}_{t} \boldsymbol{W}_{x f}+\boldsymbol{H}_{t-1} \boldsymbol{W}_{h f}+\boldsymbol{b}_{f}\right) Ft=σ(XtWxf+Ht−1Whf+bf) 式2
O t = σ ( X t W x o + H t − 1 W h o + b o ) \boldsymbol{O}_{t}=\sigma\left(\boldsymbol{X}_{t} \boldsymbol{W}_{x o}+\boldsymbol{H}_{t-1} \boldsymbol{W}_{h o}+\boldsymbol{b}_{o}\right) Ot=σ(XtWxo+Ht−1Who+bo) 式3
这里从数学运算的角度上讲解,所以不会涉及太多深度学习的名词,我们先来明确公式中每个参数的含义,这些参数是以矩阵的形式存在的, X t X_{t} Xt是 t