• 2025年10月10日 星期五

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(m1)+b(m)a(m)=φ(z(m))

...z(l)=ω(l)a(l1)+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,就有:

MinE=12yY2

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

设置枢纽变量为:

δi(m)=Ezi(m)

最后1层(l层)有:

δi(l)=Ezi(l)=Eyiyizi(l)=(yiYi)φ(zi(l))

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

δi(m)=Ezi(m)=j=1sm+1Ezj(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(m1)

Ebi(m)=δi(m)

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

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

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

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

E=12yY2

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

EωEb

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

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

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

Eω|ω(n),b(n)Eb|ω(n),b(n)

很小为止,退出循环。



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

Avatar photo

李星海

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