LSTM的工作原理分析

本文详细分析了LSTM的工作原理。首先通过忘记门决定从细胞状态丢弃的信息,接着由输入门决定新加入的信息并更新细胞状态,然后根据遗忘门和输入门的结果在细胞状态上执行操作,最后确定输出值。还说明了细胞状态和隐层状态的更新过程。

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

LSTM的工作原理分析

在我们 LSTM 中的第一步是决定我们会从细胞状态中丢弃什么信息。这个决定通过一个称为忘记门的层完成。该门会读取h_(t-1)和x_t ,输出一个在 0到 1之间的数值给每个在细胞状态C_(t-1)中的数字。1 表示“完全保留”,0 表示“完全舍弃”。
f t = σ ( W f ∗ [ h ( t − 1 ) , x t ] + b f ) f_t=σ(W_f*[h_(t-1),x_t ]+b_f) ft=σ(Wf[h(t1),xt]+bf)

下一步是决定让多少新的信息加入到 cell 状态 中来。实现这个需要包括两个步骤:首先,一个叫做“input gate layer ”的 sigmoid 层决定哪些信息需要更新;一个 tanh 层生成一个向量,也就是备选的用来更新的内容, ( C t ′ ) (C'_t ) (Ct)。在下一步,我们把这两部分联合起来,对 cell 的状态进行一个更新。
i t = σ ( W i ∗ [ h ( t − 1 ) , x t ] + b i ) i_t=σ(W_i*[h_(t-1),x_t ]+b_i) it=σ(Wi[h(t1),xt]+bi)
( C t ′ ) = t a n h ( W C ∗ [ h ( t − 1 ) , x t ] + b C ) (C'_t ) =tanh(W_C*[h_(t-1),x_t ]+b_C) (Ct)=tanh(WC[h(t1),xt]+bC)

上面的两个门,“遗忘门”和“输入门”已经决定好了什么要遗忘,什么要更新保留了,现在要真的在cell state上执行了:
C t C_t Ct= f t f_t ft * C t − 1 C_{t-1} Ct1 + i t i_t it* C t ′ C'_t Ct

最终,我们需要确定输出什么值。这个输出将会基于我们的细胞状态,但是也是一个过滤后的版本。首先,我们运行一个 sigmoid 层来确定细胞状态的哪个部分将输出出去。接着,我们把细胞状态通过 tanh 进行处理(得到一个在 -1 到 1 之间的值)并将它和 sigmoid 门的输出相乘,最终我们仅仅会输出我们确定输出的那部分。
o t = σ ( W o ∗ [ h ( t − 1 ) , x t ] + b o ) o_t=σ(W_o*[h_(t-1),x_t ]+b_o) ot=σ(Wo[h(t1),xt]+bo)
h t = o t ∗ t a n h ( C t ) h_t=o_t*tanh(C_t) ht=ottanh(Ct)

所以:
1.细胞状态 C t C_t Ct保存的是内容,它会根据遗忘门和输入门来进行更新;
2.隐层状态 h t h_t ht保存的是当前细胞的各项内容存在与否的数值标志,所以隐层状态 h t h_t ht的更新需要在细胞状态 C t C_t Ct更新后进行更新;
3.LSTM是先根据遗忘门和旧的细胞状态和输入门和新的更新内容来更新细胞状态,然后再用新的细胞状态 C t C_t Ct来更新隐层状态 h t h_t ht的过程。

### LSTM用于情感分析工作原理 LSTM(长短期记忆网络)是一种特殊的循环神经网络(RNN),专门设计来解决传统RNN在处理长时间依赖时遇到的问题[^3]。通过引入门控机制,LSTM可以有效地捕捉文本中的长期依赖关系。 #### 1. LSTM单元结构 LSTM的核心在于其独特的细胞状态(cell state)以及三个主要的门控组件——遗忘门(forget gate)、输入门(input gate)和输出门(output gate)[^1]。这些门允许模型有选择性地保留或丢弃信息: - **遗忘门**决定了哪些信息应该被抛弃; - **输入门**决定更新细胞状态的程度; - **输出门**则控制着最终输出的内容。 这种机制使得LSTM能够在保持重要特征的同时过滤掉不相关的信息,这对于理解具有复杂语义结构的语言特别有用。 #### 2. 情感分析的具体实现 当应用于情感分析任务时,LSTM会逐词读取输入句子,并根据之前看到的所有词语动态调整内部状态。对于每一个新到来的时间步(timestep),即每个单词位置上的嵌入向量(embedding vector),LSTM都会执行一次前向传播过程,逐步构建起关于整个句子的理解[^5]。 具体来说,在每一步中: - 首先计算当前时刻的状态$h_t$; - 接下来利用$tanh$函数生成候选值$\tilde{C}_t$,并结合输入门$i_t$对其进行加权求和得到新的细胞状态$C_t$ ; - 最终由输出门$o_t$调节后的细胞状态作为该时间点的实际输出$h_t$. 值得注意的是,为了进一步提升效果,还可以在此基础上加入注意力机制(attention mechanism),让模型更加关注那些对判断情绪至关重要的部分[^4]. ```python import torch.nn as nn class LSTMSentiment(nn.Module): def __init__(self, vocab_size, embed_dim=100, hidden_dim=128, num_layers=2): super(LSTMSentiment, self).__init__() self.embedding = nn.Embedding(vocab_size, embed_dim) self.lstm = nn.LSTM(embed_dim, hidden_dim, num_layers=num_layers, batch_first=True) self.fc = nn.Linear(hidden_dim, 3) def forward(self, text): embedded = self.embedding(text) lstm_out, _ = self.lstm(embedded) out = self.fc(lstm_out[:, -1, :]) return out ``` 此代码片段展示了一个简单的情感分类器框架,它接收预处理过的文本数据作为输入,并返回对应于三种不同类别之一的概率分布。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值