神经网络 - 前馈神经网络(FNN)、全连接神经网络(FCNN)和卷积神经网络(CNN)的区别与联系

发布于:2025-03-29 ⋅ 阅读:(21) ⋅ 点赞:(0)

在前面的博文中,我们依次学习了前馈神经网络(FNN)、全连接神经网络(FCNN)和卷积神经网络(CNN),为了避免混淆,本文我们来总结一下这三种神经网络的区别和联系。

全连接神经网络(FCNN)卷积神经网络(CNN)都属于前馈神经网络(FNN)的范畴,因为它们的核心特点是数据单向传播,没有循环或反馈连接。(请注意理解这句话,对于我们学习神经网络非常重要!)

1. 前馈神经网络(FNN)的定义

前馈神经网络是所有**信息单向流动(输入→输出)**的神经网络的统称,其核心特征是:

  • 无循环连接:数据从输入层逐层传递到输出层,不形成闭环。

  • 无记忆性:输出的计算仅依赖当前输入,与历史输入无关。

  • 包含多种子类:FCNN、CNN均属于FNN的变体,只是结构和设计目的不同。

2. 全连接神经网络(FCNN)与FNN的关系

  • FCNN是FNN的典型代表
    FCNN(如多层感知机MLP)是前馈网络的最基本形式,所有相邻层之间通过全连接传递信息。

  • 示例

    输入层 → 全连接隐藏层 → 全连接输出层
  • 特点

    • 数据单向流动,严格符合FNN定义。

    • 参数量大,适合处理结构化数据(如表格数据)。

3. 卷积神经网络(CNN)与FNN的关系

  • CNN是FNN的一种扩展
    CNN通过引入卷积层池化层优化了前馈结构,但仍保持数据单向传播的特性。

  • 结构示例

    输入层 → 卷积层 → 池化层 → 全连接层 → 输出层
  • 特点

    • 通过局部连接和参数共享减少参数量。

    • 保留输入的空间结构(如图像的2D网格)。

    • 仍属于FNN:无循环或反馈连接,信息单向传递。

4. 为什么说FCNN和CNN属于FNN?

特性 前馈神经网络(FNN) 全连接网络(FCNN) 卷积网络(CNN)
数据流动方向 单向(输入→输出) 单向 单向
是否存在循环或反馈连接
是否依赖历史输入
典型结构 线性层堆叠 全连接层堆叠 卷积层+池化层

5. 与其他神经网络的对比

  • 循环神经网络(RNN)

    • 不属于FNN,因为引入了循环连接,允许信息在时间步间传递(具有记忆性)。

    • 示例:LSTM、GRU。

  • Transformer

    • 属于FNN:虽然通过自注意力机制建模长距离依赖,但数据仍是单向传播(无循环连接)。

    • 注:严格来说,原始Transformer编码器-解码器结构是前馈的,但某些变体(如引入循环模块)可能例外。

6. 分类总结

  • **前馈神经网络(FNN)**是涵盖所有无循环结构的神经网络的统称,包括:

    • 全连接神经网络(FCNN)

    • 卷积神经网络(CNN)

    • 自动编码器(Autoencoder)

    • 前馈型Transformer

  • 非前馈神经网络包括:

    • 循环神经网络(RNN)

    • 图神经网络(GNN,若包含消息循环传递)

    • 反馈神经网络(如Hopfield网络)

7. 常见误解澄清

误解1:CNN不是前馈网络,因为它有卷积操作?
  • 纠正:卷积操作本身是前馈的,只是计算方式与全连接不同,但数据仍单向传递。前馈的定义与计算方式无关,只关注是否存在循环。

误解2:前馈网络只能处理静态数据?
  • 纠正:前馈网络可以处理动态数据(如视频),但需通过其他方式(如3D卷积或时间维度堆叠)建模时序,而RNN通过循环结构显式建模时序依赖。

8. FNN、FCNN、CNN的总结

  • FCNN和CNN均属于前馈神经网络,因为它们的计算过程严格遵循单向传播,无循环或反馈。

  • 区别在于结构设计

    • FCNN通过全连接层处理展平的输入,适合结构化数据。

    • CNN通过卷积层提取空间特征,适合图像等网格数据。

  • 前馈神经网络是一个广泛的概念,涵盖多种结构变体,核心共性是无循环、无记忆性

9. 与循环神经网络的区别

在前馈神经网络中,信息的传递是单向的,这种限制虽然使得网络变得更容易学习,但在一定程度上也减弱了神经网络模型的能力。

在生物神经网络中,神经元之间的连接关系要复杂得多。

前馈神经网络可以看作一个复杂的函数,每次输入都是独立的,即网络的输出只依赖于当前的输入。但是在很多现实任务中, 网络的输出不仅和当前时刻的输入相关,也和其过去一段时间的输出相关。比如 一个有限状态自动机,其下一个时刻的状态(输出)不仅仅和当前输入相关,也和当前状态(上一个时刻的输出)相关。

此外,前馈网络难以处理时序数据,比如视频、语音、文本等。时序数据的长度一般是不固定的,而前馈神经网络要求输入和输出的维数都是固定的,不能任意改变。因此,当处理这一类和时序数据相关的问题时,就需要一种能力更强的模型。

循环神经网络(Recurrent Neural Network,RNN)是一类具有短期记忆能力的神经网络。

在循环神经网络中,神经元不但可以接受其他神经元的信息,也可以接受自身的信息,形成具有环路的网络结构。和前馈神经网络相比,循环神经网络更加符合生物神经网络的结构。

循环神经网络已经被广泛应用在语音识别、语言模型以及自然语言生成等任务上。

循环神经网络的参数学习可以通过随时间反向传播算法来学习。随时间反向传播算法即按照时间的逆序将错误信息一步步地往前传递。当输入序列比较长时,会存在梯度爆炸和消失问题 ,也称为长程依赖问题。为了解决这个问题,人们对循环神经网络进行了很多的改进,其中最有效的改进方 式引入门控机制(Gating Mechanism)。

此外,循环神经网络可以很容易地扩展到两种更广义的记忆网络模型: 递归神经网络和图网络。

从下一博文开始,我们来学习循环神经网络。