【神经网络】图解LSTM和GRU

LSTM和GRU是为了解决循环神经网络(RNN)的短期记忆问题而提出的。RNN在处理长序列时容易遗忘早期信息,LSTM通过门控单元来学习何时保留或遗忘信息,而GRU简化了这一过程,只有重置门和更新门。两者都在语音识别、文本生成等领域有广泛应用。

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

图解LSTM和GRU

1.问题

循环神经网络(RNN,Recurrent Neural Network)受到短期记忆的影响。如果一个序列足够长,就很难将早期产生的信息带到后续的步骤中来。因此,如果试图处理一段文字来做预测,RNN可能会从一开始就遗漏了重要信息。

在这里插入图片描述
在反向传播过程中,循环神经网络会受到梯度消失问题的影响。梯度是用于更新神经网络权重的数值。梯度消失问题是指当梯度通过时间反向传播时,梯度会缩小。如果一个梯度值变得非常小,它就不会有太多的学习贡献。
在这里插入图片描述
因此,在循环神经网络中,获得小梯度更新的层会停止学习。这些通常是早期的层。因此,在较长序列中,RNN会忘记这些不学习的层,就像有一个短期记忆。

2.解决方法

LSTM(Long Short-Term Memory)和GRU(Gated Recurrent Unit)的诞生是为了解决短期记忆问题。它们利用具有内部机制的门控来调节信息的流动。
在这里插入图片描述
这些门控可以学习序列中哪些数据是重要的,再决定保留或舍弃。这样就可以将相关信息沿着长长的序列链路传递下去,以进行预测。几乎所有基于循环神经网络的先进成果都是基于这两个网络实现的。LSTM和GRU在语音识别、语音合成和文本生成有着广泛的应用。

3.实例

举一个通俗的例子。假设你正在看网上的评论,决定是否想买一件衣服。你首先阅读评论,然后确定是否有人认为它是好还是坏。

当你阅读评论时,你的大脑下意识地只记住了重要的关键词。你会对像“惊人” 和“完美”这样的词印象深刻。你对“这个”、“给了”、“所有”、“应该”等词不太在意。如果第二天有朋友问你评论说了什么,你可能不会一字不落地记住。但你可能会记得主要内容,如“一定会再次购买”,其他的词则会从记忆中消失了。

这基本上就是LSTM或GRU的作用。它可以学习只保留相关信息来进行预测,而忘记不相关的数据。在这种情况下,你记住的那些话让你判断它是好的。

4.循环神经网络

为了理解LSTM或GRU是如何实现的,我们一起回顾一下循环神经网络。首先,单词被转化为机器可读的向量。然后,RNN逐一处理向量序列。
在这里插入图片描述
在处理过程中,它将之前的隐藏状态传递给序列的下一步。隐藏状态充当了神经网络的存储器。它保存着网络以前看到的数据信息。
在这里插入图片描述
让我们看一下RNN的一个单元,看看如何计算隐藏状态。首先,输入和先前的隐藏状态被组合成一个向量。该向量现在有关于当前输入和先前输入的信息。该向量经过tanh激活,输出是新的隐藏状态,或者说是网络的记忆。
在这里插入图片描述

Tanh激活函数

tanh激活函数被用来帮助调节流经网络的数值,使其总是在-1和1之间。
在这里插入图片描述
当向量在神经网络中流动时,由于各种数学运算,它经历了许多转换。因此,想象一下一个连续被乘以的数值,比方说3。你可以看到一些数值如何快速增大并成为天文数字,导致其他数值看起来无足轻重。
在这里插入图片描述所以这就是一个RNN。它的内部操作非常少,但在适当的情况下(如短序列)工作得非常好。RNN使用的计算资源比它的进化变体,如LSTM和GRU少得多。

5.LSTM

LSTM的控制流程与循环神经网络相似。它在向前传播时处理数据并传递信息。不同之处在于LSTM单元内的操作。这些操作是用来让LSTM记住还是忘记信息。
在这里插入图片描述

核心概念

LSTM的核心概念是单元状态,以及它的各种门。单元状态就像一条运输公路,将相对的信息一直传递到序列链中。你可以把它看作是网络的“存储器”。从理论上讲,单元状态可以在整个序列的处理过程中携带相关信息。因此,即使是较早的时间步骤的信息也可以进入以后的时间步骤,减少短期记忆的影响。在单元状态的旅程中,信息通过门被添加或删除到单元状态中。这些门是不同的神经网络,决定哪些信息可以在单元状态中留下。在训练过程中,门可以学习哪些信息是需要保留或遗忘的。

Sigmoid函数

门控包含sigmoid激活函数。Sigmoid激活类似于tanh激活。这对更新或遗忘数据很有帮助,因为任何数字乘以0都是0,导致数值消失或被遗忘。任何数字乘以1都是相同的值,因此该值保持不变或被保留。网络可以了解哪些数据不重要,因此可以被遗忘,或者哪些数据是重要的,可以保留。
在这里插入图片描述
所以我们有三个不同的门来调节LSTM单元中的信息流。一个遗忘门,一个输入门,一个输出门。

遗忘门

首先,我们有一个遗忘门。这个门决定哪些信息应该被丢弃或保留。来自前一个隐藏状态的信息和来自当前输入的信息被传递到sigmoid函数中。数值在0和1之间。越接近0意味着遗忘,越接近1意味着保留。
在这里插入图片描述

输入门

为了更新单元的状态,我们有一个输入门。首先,我们将之前的隐藏状态和当前的输入传给一个sigmoid函数。这决定了哪些值将被更新,将这些值转换为0和1之间。0表示不重要,1表示重要。还要将隐藏状态和当前输入传入tanh函数,以转化为-1和1之间的值,帮助调节网络。然后将tanh输出与sigmoid输出相乘。sigmoid输出将决定哪些信息是重要的,可以从tanh输出中保留。
在这里插入图片描述

单元状态

现在我们有足够的信息来计算单元的状态。首先,单元状态和遗忘向量点乘。如果被乘以接近0的值,就有可能在单元状态中丢掉数值。然后我们从输入门的输出做一个点加法,将细胞状态更新为神经网络认为相关的新值。这样我们就得到了新的单元格状态。
在这里插入图片描述

输出门

最后我们有一个输出门。输出门决定下一个隐藏状态应该是什么。隐藏状态包含了以前输入的信息。隐藏状态也用于预测。首先,我们将之前的隐藏状态和当前的输入传给一个sigmoid函数。然后我们把新修改的单元格状态传给tanh函数。我们将tanh输出与sigmoid输出相乘,以决定隐藏状态应该携带什么信息。输出就是隐藏状态。新的单元格状态和新的隐藏状态被带到下一个时间步骤中。
在这里插入图片描述
总结:遗忘门决定从以前的步骤中保留什么相关信息。输入门决定从当前步骤中添加什么相关信息。输出门决定了下一个隐藏状态应该是什么。

伪代码实现

这里有一个使用python伪代码的例子。

  1. 首先,之前的隐藏状态和当前的输入被串联起来。我们称它为联合。
  2. 合并后的数据被送入遗忘层。这个层会删除不相关的数据。
  3. 使用联合创建一个候选层。候选层持有可能的值以添加到单元格状态中。
  4. 组合也被送入输入层。该层决定候选人中的哪些数据应该被添加到新的单元格状态中。
  5. 在计算完遗忘层、候选层和输入层后,使用这些向量和之前的细胞状态来计算细胞状态。
  6. 然后计算出输出。
  7. 将输出和新的单元格状态相乘,就得到了新的隐藏状态。

在这里插入图片描述
LSTM网络的控制流程是一些张量操作和一个for循环。你可以使用隐藏状态进行预测。结合所有的这些机制,一个LSTM可以在序列处理过程中选择哪些信息是相关的,以记住或忘记。

6.GRU

我们已经知道了LSTM的工作原理,让我们简单地看看GRU。GRU是较新的一代循环神经网络,与LSTM非常相似。GRU摆脱了单元状态,使用隐藏状态来传递信息。它也只有两个门,一个复位门和更新门。
在这里插入图片描述

更新门

更新门的作用类似于LSTM的遗忘门和输入门。它决定丢弃哪些信息,增加哪些新信息。

重置门

重置门用于决定遗忘多少过去的信息。

7.总结

GRU的张量运算较少。因此,它比LSTM的训练速度快一些。但是,没有一个标准来确定哪一个更好。研究人员和工程师通常会同时尝试这两种方法,以确定哪种方法更适合实际情况。

<think>嗯,用户现在想了解LSTM的结构模型以及GRULSTM的区别对比。之前用户询问了五种经典CNN模型的特点,现在转向了循环神经网络领域,特别是其进阶模型。从引用内容看,用户似乎已经接触过RNN的基础知识,现在需要更专业的结构解析对比。用户提供的参考资料[1]到[4]都聚焦在RNN变体上,其中[3][4]明确提到LSTMGRU图解与原理。值得注意的是引用[2]强调GRU“结构比LSTM更简单”,这可能是用户关心区别的核心点。用户特意要求“结构模型图解“区别对比”,说明ta需要视觉化理解差异化分析。准备分三部分回应:先用LSTM结构图解满足首要需求,再用对比表格凸显差异,最后补充联系。考虑使用专业符号描述门控机制时严格执行数学格式要求,比如遗忘门公式写作$f_t=\sigma(W_f\cdot[h_{t-1},x_t]+b_f)$。表格对比会涵盖参数效率、结构复杂度等实用维度,因为用户上次对CNN的参数量很关注。用户可能是工程方向的学习者——既要求理论清晰度(如区别对比),又重视实现要素(如参数效率)。补充的“何时选择”建议能帮ta决策实际应用。相关问题的设计可延续对比思路,比如探问计算效率或实战表现。</think> ### LSTM结构模型图解GRU对比解析 以下分析基于循环神经网络的演进逻辑,结合引用资料[^2][^3][^4]的核心观点: #### **一、LSTM结构模型** LSTM通过**三重门控机制**解决RNN的长期依赖问题,结构如下图所示: ```mermaid graph LR A[输入x_t] --> B(遗忘门f_t) A --> C(输入门i_t) A --> D(输出门o_t) H[上一状态h_{t-1}] --> B H --> C H --> D B --> E[细胞状态C_t] C --> E D --> F[当前输出h_t] E --> F ``` **核心组件说明**: 1. **细胞状态($C_t$)**: 纵向传递核心记忆,通过门控调节信息保留量 $$C_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_t$$ 2. **门控机制**(均采用sigmoid激活): - **遗忘门($f_t$)**: 决定丢弃旧状态的比例 $$f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f)$$ - **输入门($i_t$)**: 控制新候选值($\tilde{C}_t$)的更新量 $$i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i)$$ $$\tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C)$$ - **输出门($o_t$)**: 控制当前状态输出强度 $$o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o)$$ 3. **最终输出**: $$h_t = o_t \odot \tanh(C_t)$$ 该结构使网络能自主学习长期/短期记忆的平衡[^3]。 #### **二、GRU结构模型** GRU作为LSTM的简化变体,通过**双门控+合并机制**降低复杂度: ```mermaid graph TB A[输入x_t] --> B(更新门z_t) A --> C(重置门r_t) H[上一状态h_{t-1}] --> B H --> C C --> D[临时状态\tilde{h}_t] B --> E[最终输出h_t] D --> E ``` **核心创新点**: 1. **门控合并**: - 合并遗忘门与输入门 → **更新门($z_t$)** $$z_t = \sigma(W_z \cdot [h_{t-1}, x_t])$$ - 简化输出门 → **重置门($r_t$)** $$r_t = \sigma(W_r \cdot [h_{t-1}, x_t])$$ 2. **状态计算**: - 候选激活值: $$\tilde{h}_t = \tanh(W \cdot [r_t \odot h_{t-1}, x_t])$$ - 最终输出: $$h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t$$ **关键优势**:参数量减少约30%(无细胞状态输出门)[^2]。 --- ### **LSTMGRU关键对比** | **特性** | **LSTM** | **GRU** | |-------------------|------------------------------------|----------------------------------| | **门控数量** | 3门(遗忘/输入/输出) | 2门(更新/重置) | | **状态传递** | 细胞状态($C_t$) + 隐状态($h_t$) | 单一隐状态($h_t$) | | **参数量** | 较高($4(d_m \times d_m + d_m)$) | 较低($3(d_m \times d_m + d_m)$)| | **训练速度** | 较慢(门控计算复杂) | 较快(结构简化)[^2] | | **长序列表现** | 极强(双重状态保护记忆) | 较强(依赖重置门过滤噪声) | | **典型应用** | 语音合成、机器翻译 | 文本生成、实时预测[^3] | > **参数公式说明**:$d_m$为隐藏层维度。LSTM参数量计算含4组门权重($W_f, W_i, W_C, W_o$),GRU仅3组($W_z, W_r, W_{\tilde{h}}$)。 --- ### **三、选择建议** | **场景** | **推荐模型** | **原因** | |-------------------------|--------------|------------------------------| | 超长序列(>500步) | LSTM | 细胞状态对长期记忆保护更强 | | 实时推理/轻量化部署 | GRU | 计算效率高,内存占用少[^4] | | 数据稀缺任务 | GRU | 更少参数降低过拟合风险 | --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

G皮T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值