(1) 输入层到H1层的输出: z1 = wi11 * 1 + wi21 * (-1) + bi1 = 1 * 1 + (-2) * (-1) + 1 = 4 z2 = wi12 * 1 + wi22 * (-1) + bi2 = (-1) * 1 + 1 * (-1) + 0 = -2 H1层的输出: a1 = sigmoid(z1) = 1 / (1 + exp(-4)) ≈ 0.982 a2 = sigmoid(z2) = 1 / (1 + exp(2)) ≈ 0.119 H1层到H2层的输出: z3 = wh111 * a1 + wh121 * a2 + bh11 = 2 * 0.982 + (-1) * 0.119 + 0 = 1.845 z4 = wh112 * a1 + wh122 * a2 + bh12 = (-2) * 0.982 + (-1) * 0.119 + 0 = -2.102 H2层的输出: a3 = sigmoid(z3) = 1 / (1 + exp(-1.845)) ≈ 0.862 a4 = sigmoid(z4) = 1 / (1 + exp(2.102)) ≈ 0.109 H2层到输出层的输出: z5 = wh211 * a3 + wh221 * a4 + bh21 = 3 * 0.862 + (-1) * 0.109 + (-2) = 0.217 z6 = wh212 * a3 + wh222 * a4 + bh22 = (-1) * 0.862 + 4 * 0.109 + 2 = 2.193 输出层的输出: a5 = sigmoid(z5) = 1 / (1 + exp(-0.217)) ≈ 0.554 a6 = sigmoid(z6) = 1 / (1 + exp(-2.193)) ≈ 0.899

(2) 误差计算: 设真实输出为y1和y2,预测输出为a5和a6,则误差为: E = (1 / 2) * [(y1 - a5)^2 + (y2 - a6)^2] 代入y1 = 0.5,y2 = 1,a5 ≈ 0.554,a6 ≈ 0.899,得: E ≈ (1 / 2) * [(0.5 - 0.554)^2 + (1 - 0.899)^2] ≈ 0.128

调整参数: 根据误差反向传播算法,需要计算输出层和H2层的误差信号,然后根据链式法则更新各层的权重和偏置。

首先计算输出层的误差信号: δ5 = (a5 - y1) * a5 * (1 - a5) ≈ (0.554 - 0.5) * 0.554 * (1 - 0.554) ≈ 0.067 δ6 = (a6 - y2) * a6 * (1 - a6) ≈ (0.899 - 1) * 0.899 * (1 - 0.899) ≈ -0.090

然后计算H2层的误差信号: δ3 = δ5 * wh211 * a3 * (1 - a3) + δ6 * wh221 * a4 * (1 - a4) ≈ 0.067 * 3 * 0.862 * (1 - 0.862) + (-0.090) * (-1) * 0.109 * (1 - 0.109) ≈ 0.014 δ4 = δ5 * wh212 * a3 * (1 - a3) + δ6 * wh222 * a4 * (1 - a4) ≈ 0.067 * (-1) * 0.862 * (1 - 0.862) + (-0.090) * 4 * 0.109 * (1 - 0.109) ≈ -0.005

最后根据链式法则更新各层的权重和偏置: wh211 = wh211 - α * δ5 * a3 ≈ 3 - 0.1 * 0.067 * 0.862 ≈ 2.990 wh212 = wh212 - α * δ5 * a3 ≈ (-1) - 0.1 * 0.067 * 0.862 ≈ -1.006 wh221 = wh221 - α * δ6 * a4 ≈ (-1) - 0.1 * (-0.090) * 0.109 ≈ -0.991 wh222 = wh222 - α * δ6 * a4 ≈ 4 - 0.1 * (-0.090) * 0.109 ≈ 4.009 bh21 = bh21 - α * δ5 ≈ (-2) - 0.1 * 0.067 ≈ -2.007 bh22 = bh22 - α * δ6 ≈ 2 - 0.1 * (-0.090) ≈ 2.009

然后按照同样的方式计算H2层到H1层和输入层的误差信号,更新各层的权重和偏置即可。

神经网络正向传播与反向传播计算示例:Sigmoid 激活函数

原文地址: https://www.cveoy.top/t/topic/j0Z0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录