前馈神经网络(FNN)

2025-03-15 李腾 60 次阅读 0 次点赞

本文将详细介绍前馈神经网络(FNN)。前馈神经网络是深度学习中最基础、最重要的一种神经网络模型。它的名字直接揭示了其核心特征:信息单向、逐层向前传播,没有循环或反馈连接。

1. 核心定义

前馈神经网络是一种人工神经网络,其中神经元之间的连接不形成循环。信息从输入层开始,经过一个或多个隐藏层,最终到达输出层。每一层的神经元仅与下一层的神经元全连接,且不会接收到来自后续层或同层的反馈信号。

一个经典的FNN也称为多层感知器(MLP)

2. 核心结构与组成部分

一个典型的FNN包含以下三层结构:

a. 输入层

  • 功能:接收原始的输入数据。它不进行任何计算,只是将数据传递给第一个隐藏层。
  • 神经元数量:由输入数据的特征维度决定。例如,一张28x28像素的灰度图像会被展平成一个包含784个神经元的输入层;一个包含10个特征的数据集则对应10个输入神经元。

b. 隐藏层

  • 功能:这是神经网络进行“思考”和“特征提取”的核心部分。一个FNN可以没有隐藏层(即单层感知器,只能解决线性可分问题),也可以有一个或多个隐藏层(即深度学习模型)。
  • 作用:每个隐藏层都会学习并组合前一层的特征,形成更抽象、更高层次的特征表示。层数越深,学习到的特征越复杂。
  • 神经元数量:这是一个超参数,需要根据具体任务通过实验来调整。

c. 输出层

  • 功能:产生网络的最终预测结果。
  • 神经元数量和激活函数:由任务类型决定:
  • 二分类:1个神经元,使用 Sigmoid 激活函数,输出一个0到1之间的概率值。
  • 多分类:神经元数量等于类别数,使用 Softmax 激活函数,输出每个类别的概率分布。
  • 回归:1个或多个神经元,通常使用线性激活函数(或无激活函数),直接输出一个实数值。

3. 工作原理:前向传播

信息在网络中流动的过程称为前向传播。这个过程可以用数学公式清晰地描述。

假设我们有一个包含L层的网络,对于第 ( l ) 层:

  1. (((

线性变换(加权求和)

( z^{[l]} = W^{[l]} a^{[l-1]} + b^{[l]} )

  • ( W^{[l]} ):第l层的权重矩阵。
  • ( a^{[l-1]} ):第l-1层的输出(对于第一层,( a^{[0]} ) 就是输入 ( X ))。
  • ( b^{[l]} ):第l层的偏置向量。
  • ( z^{[l]} ):线性计算结果。

)))

  1. (((

非线性变换(激活函数)

( a^{[l]} = g^{[l]}(z^{[l]}) )

  • ( g^{[l]} ):第l层的激活函数。
  • ( a^{[l]} ):第l层的最终输出,并作为第l+1层的输入。

)))

这个过程从输入层一直重复到输出层,最终得到预测值 ( \hat{y} = a^{[L]} )。

为什么需要激活函数?

如果没有激活函数(或者使用线性激活函数),无论神经网络有多少层,整个网络最终都等价于一个简单的线性回归模型。激活函数引入了非线性,使得神经网络能够学习和逼近极其复杂的非线性关系,这是其强大能力的根源。

常用激活函数

  • Sigmoid:将输入压缩到(0,1),常用于输出层。
  • Tanh:将输入压缩到(-1,1),是Sigmoid的改进版,均值中心为0。
  • ReLU(整流线性单元):( f(z) = max(0, z) )。这是目前最常用的隐藏层激活函数,因为它能有效缓解梯度消失问题,且计算简单高效。

----

4. 如何学习?训练过程

FNN通过一个称为反向传播的算法进行学习。其核心思想是“通过误差来调整参数”。

  1. 前向传播:输入一批训练数据,通过网络计算得到预测值 ( \hat{y} )。
  2. 计算损失:使用损失函数 比较预测值 ( \hat{y} ) 和真实标签 ( y ),计算出一个标量损失值 ( L ),用以衡量预测的“错误程度”。

1*. 常用损失函数:均方误差(回归),交叉熵损失(分类)。

  1. 反向传播:这是关键步骤。算法利用链式法则,从输出层开始,反向计算损失函数对于网络中每一个权重和偏置的梯度。这个梯度指明了“每个参数应该向哪个方向、以多大的幅度调整,才能减小损失”。
  2. 参数更新:使用优化器(如梯度下降及其变种)根据计算出的梯度来更新网络中的所有权重和偏置。

这个过程在大量数据上重复多次(即多个“epoch”),直到模型的损失收敛到一个较低的值,即模型学会了从输入到输出的映射关系。

----

5. 特点与优缺点

优点
  • 通用近似定理:理论上,一个包含至少一个隐藏层的前馈神经网络,只要拥有足够多的神经元,就可以以任意精度近似任何连续函数。这是其强大的理论基石。
  • 结构简单直观:易于理解和实现。
  • 强大:能够学习和建模非常复杂的非线性关系。
缺点与挑战
  • 全连接导致参数多:相邻层之间的神经元全部相连,导致参数量巨大,容易过拟合,且计算成本高。
  • 不擅长处理序列或空间数据:FNN要求固定大小的输入,并且无法捕捉数据中的时序依赖关系(如文本、语音)或局部空间结构(如图像)。这些任务更适合循环神经网络(RNN)卷积神经网络(CNN)
  • “黑箱”问题:模型的决策过程难以解释。
  • 对超参数敏感:隐藏层数量、神经元数量、学习率等超参数的选择对性能影响很大。

----

6. 总结与应用

前馈神经网络是深度学习领域的基石。尽管在处理图像、语音等特定任务时,更专门的CNN和RNN表现更佳,但FNN的原理是所有深度学习模型的核心。

  • 应用场景
  • 分类与回归:垃圾邮件识别、客户流失预测、房价预测。
  • 计算机视觉:在CNN的末端,通常会用FNN作为分类器。
  • 推荐系统:学习用户和物品的特征。

简单来说,FNN是一个通过堆叠多个“线性变换+非线性激活函数”层,利用反向传播算法进行训练,从而学习复杂函数映射的强大模型。 理解FNN是步入深度学习世界的第一步。

本文由人工编写,AI优化,转载请注明原文地址: 前馈神经网络(FNN)

评论 (0)

登录后发表评论

暂无评论,快来发表第一条评论吧!