背景
在反向传播算法中,我们需要计算每个神经元的误差项,以便更新网络中的权重。对于输出层的神经元,误差项的计算公式如下:
其中:
E是损失函数(例如均方误差)。
zk 是输出层神经元的加权输入(即未经过激活函数的输入)。
推导过程
-
损失函数:
假设我们使用均方误差(MSE)作为损失函数:
其中,yk 是目标值,yk^ 是神经网络的输出值。 -
输出层神经元的输出:
输出层神经元的输出 yk^ 是经过激活函数(例如 Sigmoid 函数)后的值:
其中,σ是 Sigmoid 函数,zk是输出层神经元的加权输入:
其中,wkj是权重,aj 是前一层神经元的输出,bk是偏置项。 -
计算误差项:
我们需要计算损失函数 E对加权输入 zk 的偏导数:
-
链式法则:
根据链式法则,我们有:
-
计算 ∂E/∂yk^:
对于均方误差,我们有:
这正是代码中的 error:
-
计算 ∂yk^/∂zk
Sigmoid 函数的导数为:
-
合并结果:
将上述两部分合并,我们得到: