FFNN(前馈神经网络)层
FFNN(前馈神经网络)层
这是一个非常核心的深度学习概念,理解它是理解现代人工智能的基础。
1. 核心思想:什么是“前馈”?
“前馈”指的是数据在网络中单向流动,从输入层到输出层,中间没有循环或反馈。
- 单向流动:信息像一条单向街道,只向前走,不回头。
- 无循环:与循环神经网络(RNN)不同,它的输出不会再次作为输入传回给自身。
你可以把它想象成一个多阶段的流水线或加工链,每一层都对数据进行一次加工,然后将结果传递给下一层。
2. FFNN层的结构与组成部分
一个典型的FFNN层(通常指一个隐藏层)由以下几个关键部分组成:
a) 神经元
每个层都由多个神经元(也称为“单元”或“节点”)组成。神经元是网络的基本计算单元。
- 输入层:神经元的数量通常由输入数据的特征数决定(例如,一张28x28像素的图片展平后就是784个输入神经元)。
- 隐藏层:神经元的数量是一个可以调整的超参数。
- 输出层:神经元的数量由任务决定(例如,10分类任务就有10个输出神经元)。
b) 权重和偏置
- 权重:连接两个神经元之间的线的强度。每个连接都有一个权重值(
w)。它代表了前一个神经元对后一个神经元影响力的大小和方向(正负)。学习的过程主要就是调整这些权重。 - 偏置:每个神经元还有一个偏置项(
b)。它像一个“门槛”或“基准线”,允许神经元即使在所有输入都很小时也能被激活。
c) 求和函数
对于某个神经元,它会将所有输入值与对应的权重相乘,然后加上偏置,进行求和。
z = (w1 * x1) + (w2 * x2) + ... + (wn * xn) + b
这个 z 被称为加权和。
d) 激活函数
求和函数的结果 z 会被送入一个激活函数 f(.),产生该神经元的最终输出 a = f(z)。
为什么需要激活函数?
如果没有激活函数,无论堆叠多少层,整个网络都等价于一个简单的线性变换(如 y = Wx + b),无法学习复杂的非线性模式。激活函数引入了非线性,使得网络能够拟合极其复杂的数据关系。
常见的激活函数:
- Sigmoid:将输入压缩到(0,1)之间,过去常用,现在多用于输出层(如二分类)。
- Tanh:将输入压缩到(-1,1)之间,是Sigmoid的改进版。
- ReLU(整流线性单元):
f(z) = max(0, z)。这是目前最常用、最受欢迎的激活函数,因为它能有效缓解梯度消失问题,计算简单。
3. 单层FFNN的计算过程(数学公式)
假设我们有一个层,它有:
n_in个输入:x1, x2, ..., x_n_inn_out个神经元(输出)
那么对于这个层的第 j 个神经元,其输出 a_j 的计算如下:
- 计算加权和:
z_j = (w_j1 * x1) + (w_j2 * x2) + ... + (w_jn_in * x_n_in) + b_j - 应用激活函数:
a_j = f(z_j)
为了计算高效,我们通常使用矩阵形式来表示整个层的计算:
A = f( X * W + B )
其中:
X是输入矩阵(1 xn_in)W是权重矩阵(n_inxn_out)B是偏置向量(1 xn_out)A是该层的输出向量(1 xn_out)
4. 多层FFNN(深度前馈神经网络)
当我们将多个这样的层堆叠起来时,就形成了深度前馈神经网络(DFFNN),也就是“深度学习”中“深度”一词的来源。
- 结构:输入层 -> 隐藏层1 -> 隐藏层2 -> … -> 输出层
- 信息流:
- 输入数据进入输入层。
- 输入层的输出作为隐藏层1的输入。
- 隐藏层1的输出作为隐藏层2的输入。
- … 以此类推 …
- 最后一层(输出层)的输出就是整个网络的预测结果。
为什么需要多层?
每一层都在学习数据的不同层次的抽象表示。
- 浅层(靠近输入):学习低级特征(如边缘、角落、颜色)。
- 中层:将低级特征组合成更复杂的特征(如眼睛、鼻子)。
- 深层(靠近输出):将复杂特征组合成完整的模式,用于最终决策(如这是一张“猫”的脸)。
5. 总结:FFNN层的关键特性
| 特性 | 解释 |
|---|---|
| 全连接 | 当前层的每一个神经元都与前一层的所有神经元相连。 |
| 前向传播 | 数据严格地从输入层流向输出层,计算预测值。 |
| 非线性 | 激活函数的引入使得网络可以学习非线性关系。 |
| 分层抽象 | 深层网络能够从数据中学习层次化的特征表示。 |
类比理解
把FFNN想象成一个复杂的决策委员会:
- 输入层:是提交报告的助理,负责收集原始数据。
- 隐藏层:是不同级别的经理。
- 基层经理(第一隐藏层)从助理的报告里总结出几个要点(特征)。
- 中层经理(第二隐藏层)根据基层经理的要点,进一步归纳出更宏观的结论。
- 高级总监(第三隐藏层)根据中层的结论,做出战略判断。
- 输出层:是CEO,根据高级总监们的最终报告,拍板做出最终决策。
- 权重和偏置:代表了每个经理对不同下属意见的重视程度和个人判断倾向。
- 训练/学习:就是通过不断看案例(数据),调整所有经理的“重视程度”(权重)和“个人倾向”(偏置),让整个委员会的最终决策越来越准。
希望这个解释能帮助你透彻地理解FFNN层!
