BP算法公式推导

反向传播算法是深度学习的基础之一,其主要的核心就是对代价函数 E 关于权重 w (或偏置 b )的偏导数 E / w 的表达式。这个表达式代表在改变权值和偏置时,代价函数变化的快慢。

使用 wljk 表示从 (l1)th 层的 kth 神经元到 lth 层的 jth 神经元上的权重。之所以 l 的序号在 (l1) 层的序号之前,是因为后期进行矩阵运算的时候会比较方便。

有了这些, lth 层的 jth 神经元的激活值 alj 就和 (l1)th 关联起来了:

alj=σ(kwljkal1k+blj)

基础的BP算法中 σ(x) 为sigmoid函数,即 σ(x)=11+ex

BP算法的二次代价函数是LMS(最小均方差),其定义为:

E=12j(yjaLj)2

zlk=kwljkal1k+blj ,则 alj=σ(zlk)

δlj=Ezlj ,以代表该神经元的误差,以 δlj 代表 l 层的误差向量。之所以不用 Ealj 是因为后面用 Ezlj 来计算隐藏层误差的时候更加方便。

隐藏层中 δl=Ezlj 的值可以通过下一层的误差 δl+1 获得:

δlk=(jwl+1jkδl+1j)σ(zlk)

所以总结出4个方程式:

δL=aE δ(zL) (BP1)

δlk=((wl+1)Tδl+1j) σ(zl) (BP2)

Eblj=δlj (BP3)

Ewljk=al1kδlj (BP4)

(BP1)的证明:

δL 的定义是:

δLj=EzLj

于是,应用链式法则,对其求导,可以把上面的式子表示为

δLj=kEaLkaLkzLj

由于 E 只通过 aLj zLj 关联,所以,当 kj 时, aLkzLj 消失了,于是,简化后的方程为:

δLj=EaLjaLjzLj

这正是分量形式的(BP1)

(BP2)的证明

δlj=Ezlj

=kEzl+1kzl+1kzlj

=kzl+1kzljδl+1k (1)

由于

$z_k^{l+1}=\sum\limits_{j}w_{kj}^{l+1}a_j^l+b_k^{l+1}=\sum\limits_{j}w_{kj}^{l+1}\sigma(z_j^l)+b_k^{l+1}\$

所以,做微分,可以得到

zl+1kzlj=wl+1kjσ(zlj)

所以,把他带入(1)得:

δlj=kwl+1kjδl+1kδ(zlj)

(BP3)与(BP4)证明:

Ewljk=Ezljzljwljk (2A)

Eblj=Ezljzljblj (2B)

因为: δlj 的定义就是 Ezlj ,所以将其代入(2)变为:

Ewljk=zljwljkδlj (3A)

Eblj=zljbljδlj (3B)

由于: zlj=kwljkal1k+blj ,所以:

zljwljk=al1k (4A)

zljblj=1 (4B)

于是将(4A)带入(3A),(4B)带入(3B)中,得:

Ewljk=al1kδlj

Ewljk=δlj

以上即(BP3)和(BP4)的证明

以上为BP算法最基础的证明公式

参考资料:

[1] Mitchell.机器学习[M]

[2] Michael Nielsen.《神经网络与深度学习》[M]

[3] Hagan.《神经网络设计》[M]

以上格式是根据《神经网络与深度学习》书中的格式进行的,为了完全理解其概念,先后阅读了Mitchell的《机器学习》与《神经网络设计》。Mitchell的机器学习中的推导最容易理解,神经网络设计中将其用矩阵形式进行实现。

你可能感兴趣的:(BP神经网络公式推导,深度学习,—,深度学习理论)