一、什么是RNN模型
RNN(Recurrent Neural Network),中文称作循环神经网络,是一种专门用于处理序列数据的神经网络架构。一般以序列数据为输入,通过网络内部的结构设计有效捕捉序列之间的关系特征,一般也是以序列形式进行输出。它的特点是能够捕捉序列数据中的时间依赖关系,广泛应用于自然语言处理(NLP)、时间序列预测、语音识别等领域。
1、核心概念
- 序列数据 (Sequential Data):指的是数据项之间存在顺序关系的数据,例如:
- 文本:句子中的单词顺序
- 语音:音频信号的时间序列
- 股票价格:随时间变化的股价
- 视频:连续的帧序列
- 循环连接 (Recurrent Connection):RNN的核心在于其循环连接,它允许信息在网络内部循环流动。这使得网络可以保留过去的信息,并将其用于处理当前的输入。
- 隐藏状态 (Hidden State):RNN在每个时间步都会维护一个隐藏状态,这个隐藏状态包含了过去的信息。它可以被认为是网络的”记忆”。
-
时间步 (Time Step):指的是序列数据中的每个元素,例如文本中的一个单词、语音中的一个音频帧。
-
工作原理
- 输入:RNN接收一个序列数据作为输入,每次输入序列中的一个元素 (时间步)。
- 隐藏状态更新:对于每个时间步,RNN根据当前的输入和上一个时间步的隐藏状态计算出新的隐藏状态。这个计算通常使用激活函数(如tanh或ReLU)。
- 输出:RNN根据当前的隐藏状态计算出当前的输出。
- 循环:上述过程会在序列的每个时间步重复进行,直到序列结束。
2、RNN神经网络结构
-
一般单层神经网络
-
RNN单层网络结构
-
以时间步对RNN进行展开后的单层网络结构
-
RNN的循环机制使模型隐藏