《neural network and deep learning》题解——ch02 反向传播

http://blog.csdn.net/u011239443/article/details/74859614

2.4 反向传播的四个基本方程

(BP1)δL=aCσ(zL)
(BP2):δl=((wl+1)Tδl+1)σ(zl)
(BP3):Cblj=δlj
(BP4):Cwljk=al1kδlj

问题一:

另一种反向传播方程的表示方式: 我已经给出了使用 Hadamard 乘积的反向传播的公式(尤其是 (BP1) 和 (BP2))。如果你对这种特殊的乘积不熟悉,可能会有一些困惑。下面还有一种表示方式,那就是基于传统的矩阵乘法,某些读者可能会觉得很有启发。(1)证明(BP1) 可以写成:

δL=Σ(zL)aC

其中Σ(zL)是一个方阵,其对⻆线的元素是σ(zLj),其他的元素均是 0。注意,这个矩阵通过一般的矩阵乘法作用在 aC 上。

aC=c1c2...cn
σ(zL)=σ1σ2...σn
(BP1)δL=aCσ(zL)=c1σ1c2σ2...cnσn

Σ(zL)=σ1σ200σn1σn
Σ(zL)aC=σ1σ200σn1σnc1c2...cn=c1σ1c2σ2...cnσn=δL

问题二:

证明 (BP2) 可以写成

δl=Σ(zl)(wl+1)Tδl+1

w=(w1,w2,...,wn)
δ=δ1δ2...δn
δl=w1δ1σ1w2δ2σ1...wnδnσn

Σ(zl)(wl+1)Tδl+1=σ1σ200σn1σnw1w2...wnδ1δ2...δn=w1δ1σ1w2δ2σ1...wnδnσn=δl

问题三

结合(1)和(2)证明
δl=Σ(zl)(wl+1)T...Σ(zL1)(wL)TΣ(zL)aC

δl=Σ(zl)(wl+1)Tδl+1

=Σ(zl)(wl+1)TΣ(zl+1)(wl+2)Tδl+2

=...=Σ(zl)(wl+1)T...Σ(zL1)(wL)TδL

=Σ(zl)(wl+1)T...Σ(zL1)(wL)TΣ(zL)aC

2.5 四个基本方程的证明

问题一

证明方程 (BP3) 和 (BP4)。

  • (BP3)

δlj=Cbljbljzlj=Cblj(zljkwljkal1k)zlj=Cblj

  • (BP4)

Cwljk=al1kδlj=>Cwljk=al1kCzlj=>zljwljk=al1k

zljwljk=(jwljkal1k+blj)wljk=al1k,

2.6 反向传播算法

问题一

使用单个修正的神经元的反向传播。假设我们改变一个前馈网络中的单个神经元,使得那个神经元的输出是 f(jwjxj+b),其中 f 是和 S 型函数不同的某一函数。我们如何调整反向传播算法?

σ()换成f()

问题二

线性神经元上的反向传播假设我们将非线性神经元的 σ 函数替换为 σ(z) = z。重写反向传播算法。

(2)中 al=zl
(3)中 δL=aC
(4)中δl=((wl+1)Tδl+1)
《neural network and deep learning》题解——ch02 反向传播