一文彻底搞懂RNN - 模型架构(Model Architecture)

技术

picture.image

Recurrent Neural Network

RNN是一种特殊的神经网络结构,它通过在时间上的展开来处理序列数据中的依赖关系。在每个时间步(time step),RNN都会接收一个输入(比如句子中的一个单词),并输出一个结果(比如下一个单词的预测)。 与传统的前馈神经网络(Feedforward Neural Network, FNN)不同,RNN在每个时间步都会保留一个隐藏状态(hidden state) ,这个隐藏状态包含了之前所有时间步的信息,并用于计算当前时间步的输出和下一个时间步的隐藏状态。

picture.image

RNN vs FFNN

一、FFNN(前馈神经网络)的局限性

前馈神经网络(Feedforward Neural Network, FFNN):前馈神经网络(FFNN),也称为多层感知机(MLP),通过多个隐藏层将输入数据映射到输出数据。 它主要由输入层、一个或多个隐藏层以及输出层组成, 数据在网络中只能单向流动,即从输入层经过隐藏层最终到达输出层,没有反馈环路。

picture.image

FFNN

FFNN的局限性: FFNN这种结构在处理序列数据时存在明显的局限性********,********** 因为每个输入都是独立处理的,并且没有考虑它们之间的顺序或上下文关系。这意味着无法有效处理顺序数据并捕获输入之间的依赖关系。例如语言建模、机器翻译、语音识别、时间序列分析以及许多其他需要顺序处理的应用程序。**

picture.image

Sequence Data

二、 RNN(循环神经网络)

RNN的核心思想 为了解决FFNN在处理序列数据时的局限性,循环神经网络(RNN)被引入。RNN的核心思想是 在隐藏层之间引入循环连接,使得每个时间步的隐藏状态不仅取决于当前时间步的输入,还取决于前一个时间步的隐藏状态

RNN 最主要也是最重要的特征是它的隐藏状态,它可以记住有关序列的一些信息。 该状态也称为记忆状态,因为它会记住网络的先前输入。

picture.image

RNN的隐藏状态

RNN的模型架构 :RNN通过其 隐藏层的隐藏状态 捕捉输入序列的时序依赖性,并基于当前输入和前一隐藏状态来生成输出序列的预测结果 。

  • 输入层:接收输入数据,并将其传递给隐藏层。输入不仅仅是静态的,还包含着序列中的历史信息
  • 隐藏层:隐藏状态是核心部分,捕捉时序依赖性。隐藏层的输出不仅取决于当前的输入,还取决于前一时刻的隐藏状态
  • 输出层:根据隐藏层的输出生成最终的预测结果。

picture.image picture.image

输入层- 隐藏层 - 输出层

RNN的工作原理 通过一个具体的案例来看看RNN的工作原理。例如,用户说了一句“what time is it?”,需要判断用户的说话意图,是问时间,还是问天气?

  • 输入层

先对句子“what time is it ?” 进行分词,然后按照顺序输入。

对句子进行分词

  • 隐藏层 :在此过程中,我们注意到前面的所有输入都对后续的输出产生了影响。圆形隐藏层不仅考虑了当前的输入,还综合了 隐藏状态存储的 之前所有的输入信息,能够利用历史信息来影响未来的输出

picture.image

Hidden State存储了之前所有的输入信息

  • 输出层

生成 最终的预测结果:Asking for the time。

picture.image

输出结果:Asking for the time

三、 RNN(循环神经网络)的局限性

RNN的局限性

在于梯度问题导致难以学习长期依赖,长期记忆能力不足,且并行处理能力差。

  1. 梯度消失和梯度爆炸问题
  • 梯度消失:在RNN中,由于参数共享和多次连乘的特性,在反向传播过程中,梯度值可能会随着时间步的增加而指数级衰减,最终趋近于0。这导致RNN难以学习到长期依赖关系, 因为较早时间步的输入在反向传播时其梯度几乎为0,无法对这些输入进行有效的权重更新。
  • 梯度爆炸:与梯度消失相反,梯度爆炸是指在反向传播过程中,梯度值可能会随着时间步的增加而快速增长到非常大,导致模型训练不稳定甚至无法收敛。

  1. 长期依赖捕捉能力有限
  • 由于梯度消失的问题,RNN在处理长序列时难以有效地捕捉到长期依赖关系。这意味着如果输入序列中的某个元素与输出之间存在长时间的间隔, RNN可能无法有效地学习到这两者之间的关系,从而限制了其在处理长序列数据时的性能。

  1. 并行处理能力较差
  • RNN的计算是顺序进行的,即每个时间步的输出都依赖于前一个时间步的计算结果。 这种顺序计算的方式限制了RNN的并行处理能力,使得在大规模数据集和复杂模型的情况下,RNN的训练和推理速度相对较慢。

picture.image

梯度消失和梯度爆炸

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论