文件名 RNN、LSTM学习.md

RNN、LSTM学习

本文目录

正文

循环神经网络(Recurrent Neural Network,RNN)

RNN 是一种专门处理序列数据(如文本、语音、时间序列)的神经网络。

与传统的前馈神经网络不同,RNN **具有“记忆”能力**,能够保存之前步骤的信息。

循环神经网络能够利用前一步的隐藏状态(Hidden State)来影响当前步骤的输出,从而捕捉序列中的时序依赖关系。

RNN:通过循环连接(Recurrent Connection)将上一步的隐藏状态传递到下一步,形成”记忆”。

  • 每一步的输入 = 当前数据 + 上一步的隐藏状态。
  • 输出不仅依赖当前输入,还依赖之前所有步骤的上下文。

RNN 在每个时间步 t 执行以下计算:

    1. 接收当前输入 xₜ 和前一时刻的隐藏状态 hₜ₋₁
    2. 计算新的隐藏状态 hₜ = f(Wₕₕ·hₜ₋₁ + Wₓₕ·xₜ + b)
    3. 产生输出 yₜ = g(Wₕᵧ·hₜ + c)

其中 f 和 g 通常是激活函数(如 tanh 或 softmax)。

优点

  • 能够处理变长序列
  • 理论上可以记住任意长度的历史信息
  • 参数共享(同一组权重用于所有时间步)

缺点

  • 梯度消失/爆炸问题(难以学习长期依赖
  • 计算效率较低无法并行处理时间步,因为每一步的结果都依赖上一步的结果)

长短期记忆网络(Long Short-Term Memory,LSTM)

LSTM是 RNN 的一种改进架构,专门设计来解决标准 RNN 的长期依赖问题

组件 功能
输入门 控制新信息的流入
遗忘门 决定丢弃哪些旧信息
输出门 控制输出的信息量
记忆单元 保存长期状态

为什么”遗忘”信息会”记住”更长期信息?

  1. 为了保真,必须降噪。必须要遗忘一些不相关信息。

遗忘门是如何实现的?

在神经网络层中,“门”的物理形态就是:一层普通的线性计算层(全连接层) + 一个 Sigmoid 激活函数

这里的“门”,本质上就是一个 “过滤器”。 在数学上,这个“阀门调节水流”的过程,就是简单的乘法

image

Sigmoid 函数 : 无论你给它输入什么数字(负无穷大到正无穷大),它都会把结果压缩到 0 到 1 之间。

LSTM 如何解决长期依赖问题

  1. 选择性记忆:遗忘门可以决定保留或丢弃特定信息
  2. 梯度通路:记忆单元提供了相对直接的梯度传播路径
  3. 信息保护:记忆内容不会被每个时间步的操作直接修改

LSTM 不足:

无法并行