长短时记忆网络LSTM

长短时记忆网络(LSTM)是递归神经网络(RNN)的一种变体,设计用于解决RNN在处理长序列数据时的长期依赖问题和梯度消失问题。LSTM通过遗忘门、输入门、重置门和输出门来管理单元状态,有效地控制信息流。在计算过程中,遗忘门决定保留哪些信息,输入门控制新信息的添加,输出门则决定了最终输出的内容。这一机制使得LSTM在序列建模任务中表现出色。

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

网络介绍
长短时记忆网络(Long short time memory network, LSTM)是RNN的重要变体,解决了RNN无法长距离依赖的问题,同时缓了RNN的梯度爆炸问题。LSTM由遗忘门、输入门、重置门和输出门四部分组成,当中使用了 t a n h tanh tanh s i g m o i d sigmoid sigmoid作为激活函数。

模型概述
使用记忆单元 C ~ t {{\tilde{C}}_{t}} C~t解决长距离依赖和梯度爆炸的问题,使用 C t C_t Ct避免梯度消失的问题。在 LSTM中,将文本看成一个文本序列,上一个过程处理的结果经过输入门进行输入,然后通过遗忘门决定哪些信息需要丢弃,遗忘门的取值范围介于0-1之间,随着信息的输入量大小而变化,并将处理后的信息融入到C中,当输入内容很大的时候,激活函数的值为1,则历史信息会原封不动的传递到下一个阶段;输入门中经过激活函数处理后的 i t i_t it和记忆单元计算后的数据传递到C中,实现对信息的更新,使得向下传递的信息进一步增多;输出门对遗忘门和输入门更新后的信息做一次激活,再将激活后的信息与 o t o_t ot进行矩阵运算,得到当前单元隐藏层的输出。图像结构:

在这里插入图片描述

其中 h h h(t-1)为上一个单元隐藏层的输出; h t {{h}_{t}} ht为当前单元隐藏层的输出; x t {{x}_{t}} xt为当前输入;σ为 sigmoid函数; f t {{f}_{t}} ft为遗忘门输出; i t {{i}_{t}} it C t {{C}_{t}} Ct的乘积为输入门输出; o t {{o}_{t}} ot为输出门输出。

计算过程分析:

遗忘门
首先,遗忘门决定哪些内容需要遗弃,此时使用的激活函数是sigmoid,输出0~1之间的值,0代表不允许通过,1代表允许通过

f t = σ ( W f ∙ [ h t − 1 , x t ] + b f ) f_t=\sigma (W_f \bullet [h_{t-1},x_t]+b_f) ft=σ(Wf[ht1,xt]+bf)

然后确定哪些信息可以存放在cell单元中。这个过程分为三个步骤。首先,输入门使用sigmoid控制哪些信息可以输入,以确定哪些信息需要更新;然后使用双曲正切tanh函数创建一个候选值向量 C ~ t {{\tilde{C}}_{t}} C~t;最后更新原来的cell状态, C t − 1 {{C}_{t-1}} Ct1变为 C t {{C}_{t}} Ct。将原始的状态 C t − 1 {{C}_{t-1}} Ct1 f t {{f}_{t}} ft做相乘,确定舍弃的信息,然后与输入的 i t {{i}_{t}} it和候选值向量相加,得到新的候选值 C t {{C}_{t}} Ct

输入门

i t = σ ( W i ∙ [ h t − 1 , x t ] + b i ) i_t=\sigma (W_i\bullet [h_{t-1},x_t]+b_i) it=σ(Wi[ht1,xt]+bi)
C ~ t = t a n h ( W c [ h t − 1 , x t ] + b c ) \tilde{C}_{t}=tanh(W_c[h_{t-1},x_t]+b_c) C~t=tanh(Wc[ht1,xt]+bc)
C t = f t C t − 1 + i t C ~ t C_t=f_t C_{t-1}+i_t\tilde{C}_t Ct=ftCt1+itC~t

最后使用输出门确定输出哪些值。首先通过sigmoid函数决定输出cell单元的哪些部分,然后将cell状态使用双曲正切的tanh做激活,再将激活后的值与sigmoid门的输出相乘,得到最终的输出 h t {{h}_{t}} ht

输出门

O t = σ ( W o ∙ [ h t − 1 , x t ] + b o ) O_{t}=\sigma (W_o\bullet [h_{t-1},x_t]+b_o) Ot=σ(Wo[ht1,xt]+bo)
h t = O t t a n h ( C t ) h_t={{O}_{t}}tanh\left( {{C}_{t}} \right) ht=Ottanh(Ct)

其中 h t − 1 {{h}_{t-1}} ht1为上一个单元输出; h t {{h}_{t}} ht为当前单元输出; x t {{x}_{t}} xt为当前输入; σ \sigma σ为sigmoid函数; f t {{f}_{t}} ft为遗忘门输出; i t {{i}_{t}} it C ~ t {{\tilde{C}}_{t}} C~t的乘积为输入门输出; o t {{o}_{t}} ot为输出门输出。 W f {{W}_{f}} Wf b f {{b}_{f}} bf分.别为遗忘门的权重矩阵和偏置; W i {{W}_{i}} Wi b i {{b}_{i}} bi分别为输入门的权重矩阵和偏置; C ~ t {{\tilde{C}}_{t}} C~t为候选向量; W c {{W}_{c}} Wc b c {{b}_{c}} bc分别为输出门的权重矩阵和偏置; W o {{W}_{o}} Wo b o {{b}_{o}} bo分别是计算单元的权重矩阵和偏置;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值