• 周日. 8 月 2nd, 2026

3.7后向传播算法

8 月 20, 2025

第二部分:更一般的神经网络-神经网络的矩阵方式

x=a(0)⇒z(1)=ω(1)a(0)+b(1)⇒a(1)=φ(z(1))

⇒z(2)=ω(2)a(1)+b(2)⇒a(2)=φ(z(2))

⇒z(m)=ω(m)a(m−1)+b(m)⇒a(m)=φ(z(m))

...⇒z(l)=ω(l)a(l−1)+b(l)⇒a(l)=φ(z(l))

  1. 网络共有l层
  2. z(k),a(k),b(k)为向量,用zi(k),ai(k),bi(k)表示其第i个分量
  3. 输出可以是向量,用yi表示第i个分量。

设对于一个输入向量x,其标签为y,就有:

Min:E=12∥y−Y∥2

先推到E对“枢纽变量”的偏导数->推到对所有ω和b的偏导。

设置枢纽变量为:

δi(m)=∂E∂zi(m)

最后1层(l层)有:

δi(l)=∂E∂zi(l)=∂E∂yi⋅∂yi∂zi(l)=(yi−Yi)φ′(zi(l))

那么如何通过m+1层推导第m层呢?

δi(m)=∂E∂zi(m)=∑j=1sm+1∂E∂zj(m+1)⋅∂zj(m+1)∂zi(m) =∑j=1sm+1δj(m+1)⋅∂zj(m+1)∂zi(m)

有

∂zj(m+1)∂zi(m)=∂zj(m+1)∂ai(m)⋅∂ai(m)∂zi(m)=ωji(m+1)⋅φ′(zi(m))

我们在前面知道:

δi(m)=[∑j=1Sm+1δj(m+1)ωji(m+1)]⋅φ′(zi(m))

容易求出:

∂E∂ωji(m)=δj(m)⋅ai(m−1)

∂E∂bi(m)=δi(m)

总结一般情况下的后向传播算法流程

(1)对神经网络每一层的各个神经元,随机选取相应的ω,b的值

(2)前向计算,对于输入的训练数据计算并保留每一层的输出值,直到计算出最后一层的输出y

(3)设置目标函数E,如

E=12∥y−Y∥2

用后向传播算法对每一个ω和b计算

∂E∂ω和∂E∂b

(4)利用如下迭代公式,更新ω和b的值:

ω(n+1)=ωn−α∂E∂ω|ω(n),b(n)
b(n+1)=bn−α∂E∂b|ω(n),b(n)

(5)回到2.不断循环,直到所有

∂E∂ω|ω(n),b(n)和∂E∂b|ω(n),b(n)

很小为止,退出循环。



微信扫描下方的二维码阅读本文

Avatar photo

由 李星海

简介: 2025-今 浙江农林大学 | 2022-今 广州白蓝碗蛋科技有限公司 | 2022-2024 广州商学院 | 2019-2022 广东工贸职业技术学院 | 服务宗旨:心始至客,行亦致远。