前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《neural network and deep learning》题解——ch02 反向传播

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

作者头像
小爷毛毛_卓寿杰
发布2019-02-13 11:22:10
5540
发布2019-02-13 11:22:10
举报
文章被收录于专栏:Soul Joy Hub

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

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

(BP1):δL=∇aC⊙σ′(zL)\large \color{blue}{ (BP1):δ ^L = ∇ _a C ⊙ σ ′ (z ^L ) } (BP2):δl=((wl+1)Tδl+1)⊙σ′(zl)\large \color{blue}{ (BP2):δ ^l = ((w ^{l+1} ) ^T δ ^{l+1} ) ⊙ σ ′ (z^ l )} (BP3):∂Cbljlj\large \color{blue}{ (BP3): \frac{∂C}{ ∂b_{lj} } = δ_j^l} (BP4):∂Cwljk=al−1kδlj\large \color{blue}{ (BP4): \frac{∂C}{ ∂w^l_{jk} } = a_k^{l-1}δ_j^l}

问题一:

另一种反向传播方程的表示方式: 我已经给出了使用 Hadamard 乘积的反向传播的公式(尤其是 (BP1) 和 (BP2))。如果你对这种特殊的乘积不熟悉,可能会有一些困惑。下面还有一种表示方式,那就是基于传统的矩阵乘法,某些读者可能会觉得很有启发。(1)证明(BP1) 可以写成: δL=Σ′(zL)∇aC\large \color{blue}{ δ^L = Σ ′ (z^L )∇_a C} 其中Σ′(zL) Σ ′ (z^L ) 是一个方阵,其对⻆线的元素是σ′(zLj)σ ′ (z_j^L ),其他的元素均是 0。注意,这个矩阵通过一般的矩阵乘法作用在 ∇aC∇_a C 上。

设:∇aC=⎛⎝⎜⎜⎜⎜c1c2...cn⎞⎠⎟⎟⎟⎟\large \color{blue}{ 设 :∇ _a C = \begin{pmatrix} c1\\ c2\\...\\cn \end{pmatrix} } σ′(zL)=⎛⎝⎜⎜⎜⎜σ1σ2...σn⎞⎠⎟⎟⎟⎟\large \color{blue}{σ ′ (z ^L ) = \begin{pmatrix} σ1\\ σ2\\...\\σn \end{pmatrix} } 则:(BP1):δL=∇aC⊙σ′(zL)=⎛⎝⎜⎜⎜⎜c1σ1c2σ2...cnσn⎞⎠⎟⎟⎟⎟\large \color{blue}{则: (BP1):δ ^L = ∇ _a C ⊙ σ ′ (z ^L ) = \begin{pmatrix} c1σ1\\ c2σ2\\...\\cnσn \end{pmatrix} }

由:Σ′(zL)=⎛⎝⎜⎜⎜⎜⎜σ1σ20…0σn−1σn⎞⎠⎟⎟⎟⎟⎟\large \color{blue}{ 由: Σ ′ (z^L ) = \begin{pmatrix} σ_1\\ &σ_2 & & \text{0}\\ &&…\\ & \text{0} &&σ_{n-1}\\ &&&& σ_n \end{pmatrix} } 得:Σ′(zL)∇aC=⎛⎝⎜⎜⎜⎜⎜σ1σ20…0σn−1σn⎞⎠⎟⎟⎟⎟⎟⎛⎝⎜⎜⎜⎜c1c2...cn⎞⎠⎟⎟⎟⎟=⎛⎝⎜⎜⎜⎜c1σ1c2σ2...cnσn⎞⎠⎟⎟⎟⎟=δL\large \color{blue}{得: Σ ′ (z^L )∇_a C = \begin{pmatrix} σ_1\\ &σ_2 & & \text{0}\\ &&…\\ & \text{0} &&σ_{n-1}\\ &&&& σ_n \end{pmatrix} \begin{pmatrix} c1\\ c2\\...\\cn \end{pmatrix} = \begin{pmatrix} c1σ1\\ c2σ2\\...\\cnσn \end{pmatrix} = δ^L}

问题二:

证明 (BP2) 可以写成 δl=Σ′(zl)(wl+1)Tδl+1\large \color{blue}{ δ^l = Σ ′ (z^l )(w^l+1 )^T δ^{l+1}}

设:w=(w1,w2,...,wn)\large \color{blue}{ 设 :w = \begin{pmatrix} w1, w2,...,wn \end{pmatrix} } δ=⎛⎝⎜⎜⎜⎜δ1δ2...δn⎞⎠⎟⎟⎟⎟\large \color{blue}{ δ = \begin{pmatrix} δ1\\ δ2\\...\\δn \end{pmatrix} } 则:δl=⎛⎝⎜⎜⎜⎜w1δ1σ1w2δ2σ1...wnδnσn⎞⎠⎟⎟⎟⎟\large \color{blue}{ 则:δ^l = \begin{pmatrix} w1δ1σ1\\ w2δ2σ1\\...\\wnδnσn \end{pmatrix} }

Σ′(zl)(wl+1)Tδl+1=⎛⎝⎜⎜⎜⎜⎜σ1σ20…0σn−1σn⎞⎠⎟⎟⎟⎟⎟⎛⎝⎜⎜⎜⎜w1w2...wn⎞⎠⎟⎟⎟⎟⎛⎝⎜⎜⎜⎜δ1δ2...δn⎞⎠⎟⎟⎟⎟=⎛⎝⎜⎜⎜⎜w1δ1σ1w2δ2σ1...wnδnσn⎞⎠⎟⎟⎟⎟=δl\large \color{blue}{ Σ ′ (z^l )(w^l+1 )^T δ^{l+1} = \begin{pmatrix} σ_1\\ &σ_2 & & \text{0}\\ &&…\\ & \text{0} &&σ_{n-1}\\ &&&& σ_n \end{pmatrix} \begin{pmatrix} w1\\ w2\\...\\wn \end{pmatrix}\begin{pmatrix} δ1\\ δ2\\...\\δn \end{pmatrix}= \begin{pmatrix} w1δ1σ1\\ w2δ2σ1\\...\\wnδnσn \end{pmatrix} = δ^l }

问题三

结合(1)和(2)证明 δl=Σ′(zl)(wl+1)T...Σ′(zL−1)(wL)TΣ′(zL)∇aCδ^l = Σ ′ (z^l )(w^{l+1})^T . . . Σ ′ (z^{L−1} )(w^L )^T Σ ′ (z^L )∇_a C

δl=Σ′(zl)(wl+1)Tδl+1\large \color{blue}{ δ^l = Σ ′ (z^l )(w^{l+1} )^T δ^{l+1}}

=Σ′(zl)(wl+1)TΣ′(zl+1)(wl+2)Tδl+2\large \color{blue}{= Σ ′ (z^l )(w^{l+1} )^TΣ ′ (z^{l+1} )(w^{l+2} )^T δ^{l+2} }

=...=Σ′(zl)(wl+1)T...Σ′(zL−1)(wL)TδL\large \color{blue}{= ... = Σ ′ (z^l )(w^{l+1})^T . . . Σ ′ (z^{L−1} )(w^L )^Tδ^L}

=Σ′(zl)(wl+1)T...Σ′(zL−1)(wL)TΣ′(zL)∇aC\large \color{blue}{ = Σ ′ (z^l )(w^{l+1})^T . . . Σ ′ (z^{L−1} )(w^L )^T Σ ′ (z^L )∇_a C}

2.5 四个基本方程的证明

问题一

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

  • (BP3)

δlj=∂Cbljbljzlj=∂Cblj∂(zlj−∑kwljkal−1k)∂zlj=∂Cblj\large \color{blue}{ δ_j^l = \frac{∂C}{∂b^l_j} \frac{∂b^l_j}{∂z^l_j} = \frac{∂C}{∂b^l_j} \frac{∂(z_j^{l} - \sum_kw_{jk}^{l}a^{l-1}_k)}{∂z^l_j} = \frac{∂C}{∂b^l_j}}

  • (BP4)

Cwljk=al−1kδlj=>∂Cwljk=al−1kCzlj=>∂zljwljk=al−1k\large \color{blue}{ \frac{∂C}{ ∂w^l_{jk} }= a_k^{l-1}δ_j^l => \frac{∂C}{ ∂w^l_{jk} }= a_k^{l-1}\frac{∂C}{∂z^l_j} => \frac{∂z^l_j}{ ∂w^l_{jk} }= a_k^{l-1} }

由于∂zljwljk=∂(∑jwljkal−1k+blj)∂wljk=al−1k,所以命题成立。\large \color{blue}{ 由于 \frac{∂z^l_j}{ ∂w^l_{jk} }= \frac{∂(\sum_jw_{jk}^la_k^{l-1}+b_j^{l})}{ ∂w^l_{jk} } = a_k^{l-1} ,所以命题成立。}

2.6 反向传播算法

问题一

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

把σ() σ()换成f()f()

问题二

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

(2)中 al=zla^l = z^l (3)中 δL=∇aCδ^L = ∇_a C (4)中δl=((wl+1)Tδl+1)δ^l = ((w^l+1 )^T δ^{l+1} )

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年07月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.4 反向传播的四个基本方程
    • 问题一:
      • 问题二:
        • 问题三
        • 2.5 四个基本方程的证明
          • 问题一
          • 2.6 反向传播算法
            • 问题一
              • 问题二
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档