BP神经网络公式推导
时间: 2024-02-02 08:09:59 浏览: 29
BP神经网络的公式推导如下:
1. 前向传播:
- 输入层到隐层的计算:
$$z_j = \sum_{i=1}^{n} w_{ji}x_i + b_j$$
$$a_j = f(z_j)$$
- 隐层到输出层的计算:
$$z_k = \sum_{j=1}^{m} w_{kj}a_j + b_k$$
$$a_k = f(z_k)$$
2. 反向传播:
- 输出层误差项的计算:
$$\delta_k = (y_k - a_k) \cdot f'(z_k)$$
- 隐层误差项的计算:
$$\delta_j = \sum_{k=1}^{p} w_{kj} \delta_k \cdot f'(z_j)$$
3. 权重和偏置的更新:
- 输出层到隐层的权重和偏置的更新:
$$\Delta w_{kj} = \eta \cdot \delta_k \cdot a_j$$
$$\Delta b_k = \eta \cdot \delta_k$$
- 隐层到输入层的权重和偏置的更新:
$$\Delta w_{ji} = \eta \cdot \delta_j \cdot x_i$$
$$\Delta b_j = \eta \cdot \delta_j$$
其中,$w_{ji}$表示输入层到隐层的权重,$w_{kj}$表示隐层到输出层的权重,$b_j$表示隐层的偏置,$b_k$表示输出层的偏置,$x_i$表示输入层的输入,$a_j$表示隐层的输出,$z_j$表示隐层的加权输入,$a_k$表示输出层的输出,$z_k$表示输出层的加权输入,$y_k$表示期望的输出,$\delta_j$表示隐层的误差项,$\delta_k$表示输出层的误差项,$f(\cdot)$表示激活函数,$f'(\cdot)$表示激活函数的导数,$\eta$表示学习率。