image.png

(1) 正向输出计算过程如下:

  • 输入层 → 隐层1 (H1):

    z1 = w11 * x1 + w21 * x2 + b1 = 0.3 * 1 + 0.2 * (-1) + 0.1 = 0.2

    h1 = sigmoid(z1) = 0.549834

  • 输入层 → 隐层1 (H1):

    z2 = w12 * x1 + w22 * x2 + b1 = 0.4 * 1 + 0.1 * (-1) + 0.1 = 0.5

    h2 = sigmoid(z2) = 0.622459

  • 隐层1 (H1) → 隐层2 (H2):

    z3 = w13 * h1 + w23 * h2 + b2 = 0.1 * 0.549834 + 0.3 * 0.622459 + 0.1 = 0.364208

    h3 = sigmoid(z3) = 0.589949

  • 隐层2 (H2) → 输出层 (O):

    z4 = w14 * h3 + w24 * h3 + b3 = 0.2 * 0.589949 + 0.1 * 0.589949 + 0.1 = 0.301989

    o1 = sigmoid(z4) = 0.574442

  • 隐层2 (H2) → 输出层 (O):

    z5 = w15 * h3 + w25 * h3 + b3 = 0.3 * 0.589949 + 0.2 * 0.589949 + 0.1 = 0.392416

    o2 = sigmoid(z5) = 0.596872

因此,输入为 (1, -1) 时,各层正向输出为:h1=0.549834,h2=0.622459,o1=0.574442,o2=0.596872。

(2) 误差计算:

假设真实输出为 y,样本数为 N,则误差 E 定义为:

E = 1/2 * Σ(y - o)^2

其中,Σ 表示对所有样本求和。

此时,真实输出为 (0.5, 1),预测输出为 (o1, o2) = (0.574442, 0.596872)。

因此,误差 E 为:

E = 1/2 * [(0.5 - 0.574442)^2 + (1 - 0.596872)^2] = 0.039485

为了优化目标,需要调整 O 层及 H2 层中的网络参数。具体方法为:

  1. 计算输出层 (O) 的误差项:

δk = (yk - ok) * ok * (1 - ok)

其中,yk 为真实值,ok 为预测值。

  1. 计算隐层2 (H2) 的误差项:

δj = hj * (1 - hj) * Σ(wkj * δk)

其中,wkj 为从隐层2 (H2) 到输出层 (O) 的权重。

  1. 更新隐层2 (H2) 到输出层 (O) 的权重:

Δwjk = α * δk * hj

其中,α 为学习率。

  1. 更新隐层1 (H1) 到隐层2 (H2) 的权重:

Δwij = α * δj * xi

其中,xi 为输入值。

  1. 更新偏置项:

Δbj = α * δj

Δbk = α * δk

最终,通过不断地重复上述步骤,可以逐渐降低误差,优化网络参数。

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

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

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