神经网络之BP算法
一、
正向传播
正向传播(Forward Propagation)是神经网络中数据从输入层流向输出层的过程。输入数据通过各层的权重和激活函数逐层计算,最终得到预测输出。
数学表示:
对于第 ( l ) 层的神经元,其输出计算如下:
其中:
为第 ( l ) 层的权重矩阵;
为偏置项;
为激活函数(如 ReLU、Sigmoid);
为前一层输出(输入层
)。
特点:
- 逐层计算,无反馈;
- 最终输出用于计算损失(如均方误差、交叉熵)。
反向传播
反向传播(Backward Propagation)通过链式法则计算损失函数对各层参数的梯度,用于优化权重和偏置。
数学表示:
输出层梯度:
计算损失 ( \mathcal{L} ) 对输出层输入的梯度:
其中为逐元素乘法。
隐藏层梯度:
第 ( l ) 层的梯度由后一层梯度反向传递:
参数更新:
权重和偏置的梯度由梯度下降法更新:
特点:
- 依赖链式法则逐层回溯;
- 梯度下降优化器(如 SGD、Adam)利用梯度更新参数。
关键区别
特性 | 正向传播 | 反向传播 |
---|---|---|
方向 | 输入层→输出层 | 输出层→输入层 |
目的 | 计算预测输出 | 计算参数梯度 |
依赖关系 | 无反馈 | 依赖正向传播的中间结果 |
计算复杂度 | 矩阵乘法 | 矩阵乘法与梯度链式求导 |
二、梯度消失
梯度消失的概念
梯度消失是指在深度神经网络中,反向传播过程中梯度逐渐减小,导致较早层的权重更新非常缓慢或几乎不更新。这种现象使得深层网络难以训练,因为底层参数无法得到有效调整。
梯度消失的原因
深度神经网络通过链式法则计算梯度。在反向传播时,梯度是各层梯度连乘的结果。如果激活函数的导数或权重本身较小(如使用Sigmoid或Tanh),连乘会导致梯度指数级衰减。
例如,Sigmoid函数的导数最大值为0.25,多层连乘后梯度会迅速趋近于0。
梯度消失的影响
网络底层参数更新停滞,模型无法学习到低层特征。例如在CNN中,浅层可能无法捕捉边缘等基础特征;在RNN中,远距离依赖关系难以建模。