LSTM反向传播原理——LSTM从零实现系列(2)

一、LSTM反向传播介绍

LSTM的反向传播过程相对复杂,主要因为其对应的控制门较多,而对于每一个控制门我们都需要求导,所以工作量较大。

首先我们根据LSTM结构图分析一下每个控制门的求导过程。在讲解反向传播之前,先了解一些要用到的参数意义。

LSTM反向传播原理——LSTM从零实现系列(2)

一般来说LSTM在层后会接一个全连接层FNN,全连接层后面再接一个损失函数Loss,所以这里我将全连接层反向传回给LSTM层的总误差称之为

LSTM反向传播原理——LSTM从零实现系列(2)

从上图LSTM的结构可以观察出,回传的总误差

LSTM反向传播原理——LSTM从零实现系列(2)其实会由两个分支进入LSTM内部,分别是LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)。因此从宏观上看,每个LSTM单元误差传播的起始点为LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2),终点为LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2),在起始点和终点之间分别夹杂着4个控制门LSTM反向传播原理——LSTM从零实现系列(2),上述的这些元素,其实就是LSTM整个反向传播求导过程要涉及的全部内容。

下面我们详细介绍每个元素在求导中的处理方法。

二、反向传播过程符号定义和说明

2.1.符号意义说明

LSTM单元中误差反向传播的过程大体分为两种情况:一种是反向传播的误差来源只包含

LSTM反向传播原理——LSTM从零实现系列(2)一条链,比如控制门LSTM反向传播原理——LSTM从零实现系列(2);另一种是反向传播的误差来源包含LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)两条传播链,比如控制门LSTM反向传播原理——LSTM从零实现系列(2)以及LSTM反向传播原理——LSTM从零实现系列(2)。如下图所示的遗忘门LSTM反向传播原理——LSTM从零实现系列(2),其反向传播的误差就是来自于红色和绿色两条传播链,计算时两条链都要计算。

LSTM反向传播原理——LSTM从零实现系列(2)

下面我们分别列举各个元素的反向传播路径:

LSTM反向传播原理——LSTM从零实现系列(2)的误差来自于LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)两条传播链,传播路径为:
LSTM反向传播原理——LSTM从零实现系列(2)
LSTM反向传播原理——LSTM从零实现系列(2)的误差来自于四条传播链,分别对应下面LSTM反向传播原理——LSTM从零实现系列(2)四个控制门:
(1)控制门LSTM反向传播原理——LSTM从零实现系列(2)的误差由LSTM反向传播原理——LSTM从零实现系列(2)传来,传播路径为:
LSTM反向传播原理——LSTM从零实现系列(2)
(2)控制门LSTM反向传播原理——LSTM从零实现系列(2)的误差由LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)传来,传播路径为:
LSTM反向传播原理——LSTM从零实现系列(2)
(3)控制门LSTM反向传播原理——LSTM从零实现系列(2)的误差由LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)传来,传播路径为:
LSTM反向传播原理——LSTM从零实现系列(2)
(4)控制门LSTM反向传播原理——LSTM从零实现系列(2)的误差由LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)传来,传播路径为:
LSTM反向传播原理——LSTM从零实现系列(2)

列举一下每个元素求偏导过程中的符号定义

  1. LSTM单元反向传播的起点LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)的误差,是由上一层传递来的,这里表示为LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2),是已知常量。
  2. LSTM单元中的LSTM反向传播原理——LSTM从零实现系列(2)是由LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)计算而来,所以求导过程中存在LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)的偏导数LSTM反向传播原理——LSTM从零实现系列(2),以及LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)的偏导数LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)分别由LSTM反向传播原理——LSTM从零实现系列(2)计算而来,所以求导过程中存在LSTM反向传播原理——LSTM从零实现系列(2)分别到LSTM反向传播原理——LSTM从零实现系列(2)的偏导数LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)
  3. LSTM单元中从控制门LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)存在偏导数LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)。从LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)的偏导数则为LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)
  4. 最后在求偏导的过程中还会用到一些前向传播的数值,如LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)等,这些参数在计算前向传播过程中都可以加以保留。
  5. 在理清上述这些反向传播中存在的关系后,下面我们就可以完成整个LSTM单元的反向传播计算了。

LSTM计算顺序如下图所示:

LSTM反向传播原理——LSTM从零实现系列(2)

介绍完这些符号定义后,下面就可以开始LSTM的反向传播计算了。

2.2.重要细节——特殊的传播链Ct

LSTM反向传播原理——LSTM从零实现系列(2)是一条比较特殊的传播链,在前向传播时,每个sample都中包含n个Timestep,在第一个Timestep计算时,LSTM反向传播原理——LSTM从零实现系列(2)的初始值是零矩阵,在后续的Timestep计算时LSTM反向传播原理——LSTM从零实现系列(2)会进行不断累计和向后传递。在当前LSTM层计算完成后,向下个LSTM层传递时,只向后传递输出的状态LSTM反向传播原理——LSTM从零实现系列(2),作为下个LSTM层的输入Xh,而当前层的LSTM反向传播原理——LSTM从零实现系列(2)值不再向下个LSTM层传递。

所以同理,在反向传播时,下一层的

LSTM反向传播原理——LSTM从零实现系列(2)会反向传播到上一层作为误差输入,但LSTM反向传播原理——LSTM从零实现系列(2)不会回传,所以每一层LSTM按照时间步倒序计算反向传播过程中,计算第一个Timestep时LSTM反向传播原理——LSTM从零实现系列(2)的初始值也是零矩阵,并且在后续时间步中进行累计和传递。

这一规则十分重要,在这里单独强调,后续内容不再重复说明。

三、LSTM反向传播流程解析

上一节我们说过,从反向传播链终点的角度出发,有两种类型的传播链,即

LSTM反向传播原理——LSTM从零实现系列(2)链和LSTM反向传播原理——LSTM从零实现系列(2)链 。而细分LSTM反向传播原理——LSTM从零实现系列(2)的传播链其实又有两种类型,即包含LSTM反向传播原理——LSTM从零实现系列(2)的和不包含LSTM反向传播原理——LSTM从零实现系列(2)的。所以反向传播链大体上可分为三类,下面来讲解这三种流程。

3.1.第一类偏导: LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.1.1.遗忘门 LSTM反向传播原理——LSTM从零实现系列(2) 求导过程

两条完整求导路径表达式如下

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.1.1.1.绿色路径

LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)的偏导

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.1.1.2.红色路径

LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)的偏导

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.1.1.3.遗忘门

LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)的偏导

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.1.1.4.两条路径表达式合并

LSTM反向传播原理——LSTM从零实现系列(2)

3.1.2.输入门 LSTM反向传播原理——LSTM从零实现系列(2) 求导过程

原理同上,这里直接写

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.1.2.1.

LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)的偏导

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.1.2.2.

LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)的偏导

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.1.2.3.输入门

LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)的偏导

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.1.2.4.两条路径表达式合并

LSTM反向传播原理——LSTM从零实现系列(2)

3.1.3.候选记忆 LSTM反向传播原理——LSTM从零实现系列(2) 求导过程

原理同上,这里直接写

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.1.3.1.

LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)的偏导

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.1.3.2.

LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)的偏导

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.1.3.3.候选记忆

LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)的偏导

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.1.3.4.两条路径表达式合并

LSTM反向传播原理——LSTM从零实现系列(2)

3.2.第二类偏导: LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

完成表达式如下

LSTM反向传播原理——LSTM从零实现系列(2)

3.2.1.红色路径

LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)偏导

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.2.2.

LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)偏导

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.2.3.表达式合并

LSTM反向传播原理——LSTM从零实现系列(2)

3.3.第三类偏导: LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

两条完整求导路径表达式如下

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.3.1.红色路径

LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)的偏导

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.3.2.绿色路径

LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)的偏导

LSTM反向传播原理——LSTM从零实现系列(2)

LSTM反向传播原理——LSTM从零实现系列(2)

3.3.3.两条路径表达式合并

LSTM反向传播原理——LSTM从零实现系列(2)

3.4.合并

四个控制门计算完成后,最终合并起来,表达式如下:

LSTM反向传播原理——LSTM从零实现系列(2)

四、权重的反向传播

LSTM反向传播原理——LSTM从零实现系列(2)

在上述第三节的求导过程结束后,此时误差就传递到了上图中的两个黄色圆圈部分,显然还差一步反向传播就完成了。最后一步就是将误差从黄色的圆圈部分分别传递到

LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)。对于LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2)来说,要计算两个权重矩阵LSTM反向传播原理——LSTM从零实现系列(2)LSTM反向传播原理——LSTM从零实现系列(2),而对于LSTM反向传播原理——LSTM从零实现系列(2)来说,不必求矩阵,直接向后传递即可。

在前向传播时计算流程如下:

LSTM反向传播原理——LSTM从零实现系列(2)

由上式可得,反向传播的表达式可以表达如下:

LSTM反向传播原理——LSTM从零实现系列(2)

最后还剩一个偏置项

LSTM反向传播原理——LSTM从零实现系列(2),我们将上一节得出的LSTM反向传播原理——LSTM从零实现系列(2)直接降维即可得到LSTM反向传播原理——LSTM从零实现系列(2),具体的程序实现方法会在下一篇文章中更直观的介绍。

五、总结

上面就是一个完整的LSTM单元反向传播流程,至此本文已经对LSTM的反向传播理论基础进行了比较清楚的讲解。结合上一篇LSTM网络前向传播原理讲解,相信大家对LSTM的基本原理有了一个比较清晰的认识了。

但这仅仅是单一的LSTM模型前向传播和反向传播原理,不足以构成一个完整的模型。但是有了上述基础,下篇文章中我们就可以1:1实现一个包含输入,隐藏层,输出,损失函数的完整的神经网络模型了。

文章正在写作中……

参考文献:

循环神经网络RNN&LSTM推导及实现 – 知乎

LSTM的推导与实现 – liujshi – 博客园

RNN、LSTM反向传播推导详解 – 灰信网(软件开发博客聚合)

手推公式:LSTM单元梯度的详细的数学推导

LSTM –随时间反向传播的推导 – 芒果文档

Original: https://blog.csdn.net/yangwohenmai1/article/details/128047225
Author: 量化交易领域专家YangZongxian
Title: LSTM反向传播原理——LSTM从零实现系列(2)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/770078/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球