前文传送门:
从零开始学自然语言处理(二十)—— 强大的长短期记忆网络(LSTM)(上)
我们接着上一章的LSTM结构继续深入分拆其中内容。
在LSTM中,包含三个门,分别是输入门、遗忘门、输出门,其中,输入门决定当前时刻的输入是否能输入进去,遗忘门决定当前的细胞中的内容是否被遗忘,而输出门决定当前的内容能否输出,整体流程如下图所示
每次输入的xt向量乘以相应训练的权重矩阵得到z、zi、zo、zf分别作为输入、控制输入门、遗忘门和输出门。如下图所示:
实际上,这些门的计算不止取决于xt和c(t-1),还被h(t-1)影响,也就是说h(t-1)和xt共同决定了输入,如下图所示:
所以可以理解为整个流程中有4个输入,分别是z、zi、zo和zf,并且有3个门。
首先看看LSTM中的“遗忘门”,如下图所示:
遗忘门决定着细胞中的内容是否遗忘,h(t-1)和xt作为输入,乘以权重矩阵Wf,加上偏置项bf,通过sigmoid得到ft,这里的ft可以控制遗忘门(这里的ft和之前图的zf是同一个意思)决定着细胞状态值C(t-1)是否遗忘,0表示不保留(全部遗忘),1表示都保留(不遗忘)。
接下来我们看看“输入门”,如下图所示:
h(t-1)和xt作为输入,乘以权重矩阵Wi,加上偏置项bi,通过sigmoid得到it(这里的it和之前图的zi是同一个意思)。与此同时,h(t-1)和xt作为输入,乘以权重矩阵Wc,加上偏置项bc,通过tanh得到Ct~。
在下一步中,将ft和C(t-1)相乘的结果加上it和Ct~相乘的结果,这一步相当于遗忘了Ct-1中的部分内容,同时新加入了Ct~的部分内容,其中,it代表细胞中更新的程度(更新多少)。
之后到了“输出门”的阶段,如下图所示:
h(t-1)和xt作为输入,乘以权重矩阵Wo,加上偏置项bo,通过sigmoid得到ot(这里的ot和之前图的zo是同一个意思)。然后将tanh(Ct)与ot相乘,输出相应的信息ht(这里的ht即为t时刻的输出,和之前图的yt是同一个意思)。
LSTM的结构就拆解到这里啦,是不是比传统的RNN要复杂很多呢,不过拆解之后发现还是不难理解的。
扫码下图关注我们不会让你失望!