LSTM反向传播求导

目录

1 LSTM结构图和公式

2 反向传播 tips

2.1 本文所有向量全为列向量

2.2 softmax层反向传播

2.3 hadamard积的微分

2.4 softmax求导

2.5 tanh求导

3 对 h 和 c 反向传播

3.1 最后时刻LSTM单元内的 h , c 反向传播

3.1.1 最后时刻LSTM单元内的 h 反向传播

3.1.2 最后时刻LSTM单元内的 c 反向传播

3.2 求得递归时刻(不是最后一刻)的反向表达式

3.2.1 求对 h t − 1 的偏导数

3.2.2 求对 c t − 1 的偏导数

4 对参数反向求导

4.1 对bo求偏导

4.2 对Wo求偏导


1 LSTM结构图和公式

        将结构图转换为如下所示(将“用于极简”的说明反向传播),实际上当用于反向传播时,所有的箭头的方向都是需要反过来看。

        图中τ 代表最后时刻。

2 反向传播 tips

2.1 本文所有向量全为列向量

       以最后时刻的 构造softmax函数。

2.2 softmax层反向传播

        

         公式(1)结论很简单,但实际上是 L 先对 a 求偏导然后再对 z 求偏导。

2.3 hadamard积的微分

2.4 softmax求导

2.5 tanh求导

3 对 h 和 c 反向传播

        在RNN中,为了反向传播误差,我们通过隐藏状态 的梯度 一步步向前传播。在LSTM这里也类似。只不过我们这里有两个隐藏状态。   

        这里我们定义两个δ,即:

           

3.1 最后时刻LSTM单元内的 h , c 反向传播

3.1.1 最后时刻LSTM单元内的 h 反向传播

        最后时刻 τ 相关的变量仅有,则  即公式(3):

        

3.1.2 最后时刻LSTM单元内的 c 反向传播

        因为:

        所以:

        

上述步骤完成了图中(3)式、(9)式。

3.2 求得递归时刻(不是最后一刻)的反向表达式

3.2.1 求对 h t − 1 的偏导数

        的梯度由本层 t 时刻的输出梯度误差和大于 t 时刻的误差两部分决定。

        不绕道的表达式 ​,相当于仅从路径走,其表达式为(10),顺便把(11)(12)一起求了。

(公式10):

        因为

        所以: 

(公式11):

        因为

        所以

(公式12):

        因为在公式中,包含h的递推关系,且:

         

        所以

        (10)、(11)、(12)公式其实展示的正是下图结构的反向传递。

        

        其实(10)(12)式是可以合并的,合并后的表达式(10_12):

        

3.2.2 求对 c t − 1 的偏导数

        对  的反向传播有两条路径,路径1是直接从过来的,路径2是从过来的

(公式13):

        因为:

        所以:

(公式14):

        因为:

        所以:

(公式13_14):

        结合公式13,14:

         

          

(13_14)公式其实展示的正是下图结构的反向传递。

4 对参数反向求导

        在第3章,得到了以下变量,现在我们需要得到模型的参数

4.1 对bo求偏导

        以对 矩阵的偏导数为例,先求的偏导数,根据《链式法则》:  

        因为:

        所以: 

        又因为:

        所以:

4.2 对Wo求偏导

        继续求对的偏导数(以简称这个列向量),根据《链式法则》

         =

        继续刷公式:

LSTM反向传播详解Part1:https://blog.csdn.net/csuyhb/article/details/99546576

LSTM反向传播详解Part2:https://blog.csdn.net/csuyhb/article/details/100049042

LSTM反向传播详解(完结篇)Part3/3代码实现:https://blog.csdn.net/csuyhb/article/details/100162814

LSTM模型与前向反向传播算法https://www.cnblogs.com/pinard/p/6519110.html

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
LSTM(长短期记忆网络)是一种递归神经网络(RNN)的变体,它在处理时间序列数据时表现出色。LSTM通过使用门控单元来解决传统RNN中的梯度消失和梯度爆炸问题。在LSTM中,反向传播算法用于优化网络参数。 反向传播(Backpropagation)是一种用于训练神经网络的优化算法。在LSTM中,反向传播通过计算损失函数对每个神经元的权重和偏置的梯度,并通过梯度下降法更新这些参数来最小化损失函数。 具体来说,在LSTM中,反向传播算法通过以下步骤来计算梯度并更新参数: 1. 前向传播:输入一个序列数据,通过LSTM的各个层进行前向传播,计算输出。 2. 计算损失:将模型预测的输出与实际值进行比较,计算损失函数(如平均误差)。 3. 反向传播:从输出层开始,计算每个神经元的权重和偏置的梯度。这是通过链式法则来实现的,将误差从输出层向后传播到每个神经元。 4. 参数更新:使用梯度下降法来更新每个神经元的权重和偏置。通过将梯度乘以学习率来确定参数更新的幅度。 5. 重复步骤1-4:重复以上步骤,直到达到停止条件(如达到最大迭代次数或损失函数收敛)。 通过反向传播算法,LSTM能够学习时间序列数据中的长期依赖关系,并进行优化。这使得LSTM在处理许多任务(如语言模型、机器翻译、情感分析等)上表现出色。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值