从零开始学Python自然语言处理(21)—— 强大的长短期记忆网络(LSTM)(下)

浏览: 2000

前文传送门:

从零开始学自然语言处理(二十)—— 强大的长短期记忆网络(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要复杂很多呢,不过拆解之后发现还是不难理解的。

扫码下图关注我们不会让你失望!

推荐 0
本文由 ID王大伟 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册