当前位置: 首页 > news >正文

【第四章:大模型(LLM)】01.神经网络中的 NLP-(1)RNN、LSTM 和 GRU 的基本原理和应用

第四章:大模型(LLM)

第二部分:神经网络中的 NLP

第一节:RNN、LSTM 和 GRU 的基本原理和应用


一、引言:为何使用循环神经网络?

在处理自然语言或序列数据(如时间序列、语音)时,上下文信息至关重要。传统的前馈神经网络(如 MLP、CNN)无法自然捕捉序列中的时间依赖关系。因此,循环神经网络(RNN)被提出,以支持信息在序列中传递,从而实现“记忆”功能。


二、RNN:循环神经网络基础

1. 基本结构

RNN 的核心思想是:当前的输出不仅依赖当前输入,还依赖之前的隐藏状态(即“记忆”)。

数学表达为:

  hₜ = tanh(Wₓxₜ + Wₕhₜ₋₁ + b)

其中:

  • xₜ:当前时刻输入;

  • hₜ:当前隐藏状态;

  • hₜ₋₁:上一个时间步的隐藏状态;

  • Wₓ,Wₕ:权重矩阵。

2. 问题:梯度消失与爆炸

由于时间展开导致的深层链式反向传播,RNN 在长序列上容易出现:

  • 梯度消失:信息无法从后往前传播;

  • 梯度爆炸:参数不稳定,训练失败。


三、LSTM:长短期记忆网络

为了解决 RNN 的记忆瓶颈问题,Hochreiter & Schmidhuber 在 1997 年提出 LSTM(Long Short-Term Memory)

1. 核心思想

LSTM 通过门机制(Gates)来控制信息流:

  • 遗忘门(forget gate):决定保留多少旧记忆;

  • 输入门(input gate):决定接受多少新信息;

  • 输出门(output gate):决定输出多少记忆给下一个时间步。

公式简化如下:

fₜ = σ(W_f · [hₜ₋₁, xₜ])     ← 遗忘门  
iₜ = σ(W_i · [hₜ₋₁, xₜ])     ← 输入门  
oₜ = σ(W_o · [hₜ₋₁, xₜ])     ← 输出门  
ĉₜ = tanh(W_c · [hₜ₋₁, xₜ])  ← 候选记忆cₜ = fₜ * cₜ₋₁ + iₜ * ĉₜ    ← 更新记忆单元
hₜ = oₜ * tanh(cₜ)          ← 输出隐藏状态

2. 优点

  • 保留长距离依赖

  • 学习重要性动态权重

  • 应用于机器翻译、语言建模、情感分析等任务中。


四、GRU:门控循环单元

GRU(Gated Recurrent Unit) 是 LSTM 的简化版本,由 Cho 等人在 2014 年提出。

1. 结构简洁

GRU 将 LSTM 的三个门压缩为两个:

  • 更新门(update gate) zₜ;

  • 重置门(reset gate) rₜ。

核心计算:

zₜ = σ(W_z · [hₜ₋₁, xₜ])  
rₜ = σ(W_r · [hₜ₋₁, xₜ])  
h̃ₜ = tanh(W_h · [rₜ * hₜ₋₁, xₜ])  
hₜ = (1 - zₜ) * hₜ₋₁ + zₜ * h̃ₜ

2. 相较于 LSTM 的优势:

  • 结构更简单,参数更少;

  • 训练更快,性能相当;

  • 在某些任务(如语音建模)表现优异。


五、应用场景

应用领域描述
语言建模根据前文预测下一个单词(如 GPT 的基本训练任务)
文本分类通过 RNN/LSTM/GRU 提取序列特征用于情感、意图分类
序列标注用于命名实体识别(NER)、分词、POS 等序列到序列任务
机器翻译Seq2Seq 架构最初是 LSTM 编码器+解码器组合
语音识别RNN 能捕捉声音序列中时间依赖特征
时间序列预测金融市场分析、用户行为预测等

六、总结

RNN、LSTM 和 GRU 是序列建模的三大经典结构。它们为现代 NLP 奠定了基础,尤其在 Transformer 浪潮之前,占据了主导地位。

尽管如今大多数 LLM(如 GPT)已采用 Transformer 架构,但在小型模型、边缘设备和特定任务中,LSTM 和 GRU 依然具有极高的实用价值

http://www.dtcms.com/a/298246.html

相关文章:

  • MySQL常用日期函数总结
  • [1-01-01]第42节:不可变字符序列 - String类中常用的API
  • 福彩双色球篮球号码的加减法
  • 探秘抖音商城:软件采集视角下的电商生态与数据价值
  • DeepSeek DeepEP学习(四)normal combine
  • zabbix----设置告警
  • Linux 系统时间设置(date 和 ntpdate)-linux028
  • Zookeeper学习专栏(十):核心流程剖析之服务启动、请求处理与选举协议
  • 最新Amos 29下载及详细安装教程,附免激活中文版Amos安装包
  • Dart 异步编程之 Future 详解
  • 盟接之桥说制造:构建以预防为核心的供应链客诉管理体系
  • Excel——重复值处理
  • 用友ERP 反射xss漏洞复现(CVE-2025-2709)
  • Python柱状图
  • 文件被删除了怎么恢复?恢复方法总结与重点注意事项
  • 解放生产力:Amazon API Gateway 与 Amazon Lambda 的优雅组合
  • miniz:一个轻量级、高性能的开源压缩库
  • linusb + Zadig 2.x - 用户指南
  • 飞算JavaAI“删除接口信息” 功能:3 步清理冗余接口,让管理效率翻倍
  • The Magic Mask for Android:解锁无限可能的安卓自定义套件
  • “Vibe Coding”:用自然语言对话,15分钟打造Python终端速读App
  • 正交实验设计法(心血整理总结)
  • 【第四章:大模型(LLM)】01.Embedding is all you need-(6)从 Word2Vec 到推荐/广告系统,再到大语言模型(LLM)
  • Linux下提权root权限
  • Asp.net core mvc中TagHelper的GetChildContentAsync和Content区别
  • GC8871刷式直流电机驱动器深度解析:3.6A驱动与内置电流检测技术
  • 虚拟地址-物理地址
  • leetcode110:判断平衡二叉树(两种思路对比)
  • 渗透高级-----测试复现(第三次作业)
  • 【GoLang#2】:基础入门(工具链 | 基础语法 | 内置函数)