前馈神经网络和循环神经网络的区别

17 Mar 2025 | 4 分钟阅读

前馈神经网络

一种信息向前传递的人工神经网络,它缺乏输入和输出之间的反馈。没有节点间循环连接的网络也可以用来描述它。让我们通过一个图来理解它。

Difference Between Feed Forward Neural Network and Recurrent Neural Network

您将在上面的图中看到有三个层——输入层、隐藏层和输出层——信息只朝一个方向流动。由于没有反向流动,“前馈网络”的绰号是恰当的。

从输出到输入的反馈

一种人工神经网络的子类型,称为循环神经网络(RNN),在输入和输出之间具有持续的通信。它可以被描述为一个网络,其中节点(存在于输入层、隐藏层和输出层)以导致有向图的方式连接。让我们通过一个图来理解它。

Difference Between Feed Forward Neural Network and Recurrent Neural Network

如上图所示,前馈神经网络和循环神经网络的结构是相同的,除了节点之间的反馈。这种反馈将改善数据,无论是自神经元还是从输出到输入。RNN和前馈神经网络在另一个重要方面也有所不同。前一个状态的输出将被作为输入馈送到RNN中,作为下一个状态(时间步)的输入。对于前馈网络,它们处理固定长度的输入和固定长度的输出,情况并非如此。因此,RNN非常适合需要我们通过了解之前的短语、字符或单词来预测下一个字符或单词的任务。要了解更多信息,请看下面的例子。

Difference Between Feed Forward Neural Network and Recurrent Neural Network

让我们用文字描述一下这个图来理解它的流程。RNN的内部记忆允许它记住输入。它同时考虑当前收到的输入和过去。它通过递归函数将之前的输入乘以权重,然后在第1步使用tanh函数输入新的权重。有关我的概念的数学解释,请查看下面的方程。

循环神经网络(RNN)

循环神经网络会导致复杂性增加(RNN)。它们跟踪处理节点的输出,并将其包含在模型中(它们只是没有单向传递信息)。这就是模型如何被声称学会预测一层结果的方式。RNN模型中的每个节点都充当一个记忆单元,当网络预测错误时,它会继续计算和执行操作。通过反向传播,系统可以自我学习并不断尝试生成正确的预测。

优点

  • RNN在整个时间内保留每一份知识。只有记住过去输入的这个能力,才使其对时间序列预测有用。这被称为长短期记忆。
  • 卷积层和循环神经网络相结合,增加了有效的像素邻域。

缺点

  • 梯度消失和爆炸问题。
  • 训练RNN非常困难。
  • 如果使用tanh或relu作为激活函数,它无法处理长序列。

RNN中的梯度消失问题

让我们来定义梯度消失和爆炸梯度。理解这两个概念将更容易理解RNN的挑战。必须使用方程3和4。在梯度消失中,d(e)/d(w) 1。因此,权重变化将很小。如果使用方程(4)计算新权重,权重变化会很小,导致梯度消失。现在让我们来看爆炸梯度问题。如果d(e)/d(w) 1,权重变化将是巨大的,增加的新权重相对于旧权重。这将导致梯度爆炸问题。

如果d(e)/d(w) 1,权重变化将是巨大的,增加的新权重相对于旧权重。这将导致梯度爆炸问题。有两个因素会影响梯度的强度。一个是权重,另一个是激活函数。更深层(激活函数)的梯度是通过多个梯度相乘生成的。

让我们在RNN的背景下讨论梯度消失问题。

Difference Between Feed Forward Neural Network and Recurrent Neural Network

为了确定误差,它将依赖于先前的状态,特别是e(t-2)和e(t-1)的权重。当梯度(d()/d(w))反向传播时,必须改变所有先前权重(前一层)。问题是,当接近成本函数t时,梯度会增大,而当远离它时,梯度会收缩。输出(y(t))不受与e(t-2)相关的梯度的影响,在训练过程中。

这些关键概念对于理解RNN中的梯度消失很重要。

  • 为了降低成本函数,误差相对于权重的变化率被反向传播到时间步网络。
  • 激活函数的导数,其幅度在右侧的隐藏层中较大,在左侧较小,用于在反方向计算梯度。
  • 向左移动会导致梯度减小,直到消失。

另一个应该让你好奇的问题是,为什么梯度在上述上下文中很重要

上述上下文可以解释如下:梯度有助于学习。当梯度变得更陡峭时,学习率会增加。当梯度下降或变小时,学习会减慢。由于这个问题,RNN在需要记忆更深层上下文的序列建模方面不够理想。长短期记忆(LSTM)可以解决这个问题,并在下面的部分中介绍。