LSTM:长短期记忆网络 (Long short-term memory)

本文深入解析了LSTM(长短时记忆网络)的工作原理,包括其如何通过门控机制解决传统RNN中梯度消失和梯度爆炸的问题,以及在反向传播过程中的计算细节。介绍了遗忘门、输入门和输出门的功能,并讨论了LSTM在网络参数增加方面的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LSTM :Long short-term memory

这也是RNN的一个变种网络,在之后大家都可以见到各类变种网络,其本质就是为了解决某个领域问题而设计出来的,LSTM是为了解决RNN模型存在的问题而提出来的,RNN模型存在长序列训练过程中梯度爆炸和梯度消失的问题,无法长久的保存历史信息,而LSTM就可以解决梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。

网络结构

LSTM的RNN的更新模块具有4个不同的层相互作用,这四个层分别是:

  • 遗忘门
    遗忘门
    σ \sigma σ是指sigmoid函数,对于状态 C t − 1 C_{t-1} Ct1矩阵当中每个输入的值,都会乘以一个乘子,乘子的值在[0, 1]之间,相当于是决定了遗忘多少部分。如果乘子值为1,说明全部保留,不删除原本的记忆,如果是0,说明状态 C t − 1 C_{t-1} Ct1矩阵对应的这个值全部删除,全部遗忘。场景:比如文本中的转折语句,前一个句子主语“He”,名字叫“Peter”,国籍是“America”。下一句新出现了一群人,因此这个时候状态矩阵对应主语的这一栏就会删除“He”,以保证接下来的动词的形式不是第三人称单数。

  • 输入门
    输入门
    这里有两部分同时进行:一个是 σ \sigma σ函数决定添加多少部分的新信息到前一个状态矩阵当中(类似于权重),tanh层则根据前一个的输入值 h t − 1 ​ h_{t-1}​ ht1和当前的输入值 x t − 1 ​ x_{t-1}​ xt1产生一个新的当前状态(也就是一个新的候选值向量,这个向量之后要加入到已有的状态矩阵当中)。最后根据前面 σ \sigma σ函数输出的权重和新的候选值向量两个共同更新原有的矩阵。其实是构建一个权重、一个输入,权重是对输入做一个过滤判断。
    在这里插入图片描述
    最后跟历史的输入做加法作为 C t C_t Ct

  • 输出门
    输出门
    输出层也有一个权重,这个权重也是 σ \sigma σ函数对输入值 h t − 1 ​ h_{t-1}​ ht1和当前的输入值 x t − 1 ​ x_{t-1}​ xt1的作用,对应图中的 o t o_t ot,然后对 C t C_t Ct做乘法,保证对输出的一个过滤。其实最后一个输出 y y y还要经过转换:
    y ^ ( t ) = δ ( V h t + c ) \hat{y}^{(t)}=\delta(Vh_{t}+c) y^(t)=δ(Vht+c)

反向传播

通过上节,我们可以知道误差来自两个地方: l t l_{t} lt l t + 1 l_{t+1} lt+1,一个是 t t t时刻的神经单元的误差,一个是 t t t时刻之后的神经单元的误差
L = l t + l t + 1 L=l_t+l_{t+1} L=lt+lt+1

其中有两个隐藏变量: δ h ( t ) \delta_{h}^{(t)} δh(t) δ c ( t ) \delta_{c}^{(t)} δc(t)
δ h ( t ) = ∂ L ∂ h t ​ = ∂ l t ∂ h t ​ + ∂ l t + 1 ∂ h t ​ = V T ( y ^ t − y t ) + ∂ l t + 1 ∂ h t + 1 ​ ∂ h t + 1 ∂ h t ​

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值