DL作业11 LSTM

习题6-4  推导LSTM网络中参数的梯度, 并分析其避免梯度消失的效果

LSTM(长短期记忆网络)是一种特殊的循环神经网络(RNN),旨在解决普通 RNN 在处理长序列时遇到的梯度消失和梯度爆炸问题。它通过设计多个门控机制来实现更好地学习和记忆序列中的长期依赖关系。

按照上图LSTM循环单元的结构来进行前向传播的过程

对于每个时间步t,LSTM的输入包括:

当前时间步的输入x_t

上一时刻的隐藏状态h_{t-1}

上一时刻的记忆单元状态c_{t-1}

(一)LSTM的前向传播

1.LSTM的遗忘门(forget gate)

决定了上一时刻的记忆单元状态有多少比例要“遗忘”,如果遗忘门算出来的结果是0.8,是上一时刻的记忆乘以0.8,有80%的要记住,而不是80%要遗忘。

遗忘门的值:

f^{\left( t \right)}=\sigma \left( W_fh^{\left( t-1 \right)}+U_fx^{\left( t \right)}+b_f \right)

2.LSTM的输入门(input gate)

决定了当前时刻的输入有多少比例要“更新”记忆单元

输入门的值:

i^{\left( t \right)}=\sigma \left( W_ih^{\left( t-1 \right)}+U_ix^{\left( t \right)}+b_i \right)

3.LSTM的候选记忆单元(cell state )

生成当前时刻的新候选记忆单元

新的候选记忆单元:

\tilde{c}_t=\tan\text{h}\left( W_th^{\left( t-1 \right)}+U_tx^{\left( t \right)}+b_t \right)

4.更新记忆单元

记忆单元状态c_t是通过遗忘门、输入门和候选记忆单元来更新的:

c^{\left( t \right)}=c^{\left( t-1 \right)}\odot f^{\left( t \right)}+\tilde{c}^{\left( t \right)}\odot i^{\left( t \right)}

5.LSTM的输出门(output gate)

决定了记忆单元有多少信息可以影响到输出

输出门:

o_t=\sigma \left( W_oh^{\left( t-1 \right)}+U_ox^{\left( t \right)}+b_o \right)

6.计算隐藏状态

隐藏状态h_t 是通过输出门和当前时刻的记忆单元 c_t 来计算的:

h_t=o^{\left( t \right)}\odot \tan\text{h}\left( c^{\left( t \right)} \right)

7.计算输出

\hat{y}^{\left( t \right)}=\sigma \left( Vh^{\left( t \right)}+c \right)

8.总结前向传播过程

Ok,我们已经完成了前向传播的过程,计算顺序是计算遗忘门、输入门、候选记忆单元,然后根据前一个时间步的记忆单元、遗忘门、候选记忆单元、输入门更新记忆单元。计算输出门,计算隐层输出,计算预测输出。

(二) LSTM的反向梯度推导

LSTM 的反向传播主要依赖链式法则,并且要计算每个门控的梯度。由于 LSTM 结构复杂,反向传播过程的推导也会比普通 RNN 更加复杂。

对于每个时间步 t,我们需要通过链式法则计算损失函数对 LSTM 各个参数的梯度

首先定义两种隐藏状态的梯度:


\delta _{h}^{\left( t \right)}=\frac{\partial L}{\partial h^{\left( t \right)}}

\delta _{c}^{\left( t \right)}=\frac{\partial L}{\partial c^{\left( t \right)}}

为了方便推导,给出数据在LSTM中的前向流动:

下面是自己画的:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值