循环神经网络(RNN)
概念简介
循环神经网络(Recurrent Neural Network, RNN)是一种用于处理序列数据(如时间序列、文本序列等)的神经网络模型。与传统神经网络不同,RNN 的结构具有记忆能力,可以通过隐状态(hidden state)对输入序列的上下文信息进行建模。它在自然语言处理(NLP)、语音识别、时间序列预测等领域中应用广泛。
核心特性
- 序列建模能力:能够捕捉输入数据的时间依赖性,适合处理具有时间或顺序关系的数据。
- 参数共享:在序列的每个时间步(time step)上,RNN 使用相同的权重矩阵进行计算。
- 循环结构:通过隐状态将过去的信息传递到当前时间步。
RNN 的基本计算过程为:
其中:
:当前时间步的隐状态。
:当前时间步的输入。
:权重矩阵和偏置。
- f:激活函数(常用 tanh 或 ReLU)。
RNN 的局限性
- 梯度消失和梯度爆炸:在处理长序列时,误差梯度可能在反向传播过程中消失或爆炸,导致模型难以训练。
- 长时依赖问题:RNN 难以捕捉序列中相隔较远的依赖信息。
为解决这些问题,改进模型如 LSTM(长短期记忆网络)和 GRU(门控循环单元)被提出。
关键变体
- LSTM(Long Short-Term Memory)
- 引入