BP神经网络(Backpropagation Neural Network)是一种常用的多层前馈神经网络,通过反向传播算法进行训练。反向传播算法的核心思想是通过计算损失函数对每个权重的偏导数,从而调整权重,使得网络的预测输出与真实输出之间的误差最小。下面是反向传播算法的公式推导过程:
1. 前向传播(Forward Propagation)
假设我们有一个三层神经网络(输入层、隐藏层和输出层),并且每层的激活函数为 sigmoid 函数。
- 输入层:
- 隐藏层:
- 输出层:
各层之间的权重分别为:
- 输入层到隐藏层的权重:
- 隐藏层到输出层的权重:
对于第 j 个隐藏层神经元,其输入为:
其输出为:
对于第 个输出层神经元,其输入为:
其输出为:
其中, 是激活函数(sigmoid 函数):
2. 计算损失函数(Loss Function)
假设损失函数为均方误差(MSE):
其中, 是网络的预测输出, 是真实输出。
3. 反向传播(Backpropagation)
反向传播的目标是计算损失函数对每个权重的偏导数,并根据梯度下降法更新权重。
3.1 输出层的误差项
首先计算输出层的误差项:
由于:
所以:
3.2 隐藏层的误差项
接下来计算隐藏层的误差项:
其中:
所以:
3.3 更新权重
根据梯度下降法更新权重:
其中, 是学习率。