Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ゼロから作るDeepLearning 第5章 誤差逆伝播法による重み更新を追ってみる

dproject21
February 20, 2017

ゼロから作るDeepLearning 第5章 誤差逆伝播法による重み更新を追ってみる

dproject21

February 20, 2017
Tweet

More Decks by dproject21

Other Decks in Science

Transcript

  1. 「ゼロから作るDeepLearning」
    第5章 誤差逆伝播法の流れをまとめてみる
    2017.2.20 たのっち @dproject21

    View Slide

  2. 前回質問を頂いた内容を改めて確認しま
    した。
    • 「ゼロから作るDeepLearning」斎藤 康毅 著
    オライリー・ジャパンより2016年9⽉ 発⾏
    https://www.oreilly.co.jp/books/9784873117584/
    • 公式サポートページ
    https://github.com/oreilly-japan/deep-learning-from-scratch
    • 第5章「誤差逆伝播法」の重み更新部分です。
    https://deeplearning-yokohama.connpass.com/

    View Slide

  3. 勾配の計算について
    "
    #

    "
    #
    1

    ℎ( )
    勾配 : すべての変数の偏微分をベクト
    ルでまとめたもの。
    ニューラルネットワークでは、損失関
    数の値ができるかぎり⼩さくなるベク
    トルを、勾配降下法を⽤いて求め、重
    み付けを更新する。
    .
    = .


    .
    学習率 の値は0.01など事前に決めて
    おく。この学習率の値を変更しながら、
    正しく学習できているか確認していく。

    View Slide

  4. 勾配の計算について
    4.4.1 勾配法で出てくる例を解いてみる。
    問: 4
    , "
    = 4
    # + "
    # の最⼩値を勾配法で求める。( = 0.1 とする)
    1回⽬ : 4
    = −3.0, "
    = 4.0に対して、4
    # = −6.0, "
    # = 8 となる。
    4
    # = −0.6, "
    # = 0.8となるので、4
    = −2.4, "
    = 3.2に更新する。
    2回⽬ : 4
    = −2.4, "
    = 3.2に対して、 4
    # = −4.8, "
    # = 6.4 となる。
    4
    # = −0.48, "
    # = 0.64となるので、4
    = −1.92, "
    = 2.56に更新する。
    以降、計算を続けていくと、0に集約されていく。

    View Slide

  5. 勾配の計算について
    では、ニューラルネットワークに対する勾配は?
    重みは、最初ランダムな値(正規分布からランダムな値)が⽤いられ、
    ← −


    で更新される。
    では、 DE
    DF
    の値は、どうやって計算されるか。
    損失関数を交差エントロピー誤差 = − ∑ .
    .
    log .
    として求めていく。

    View Slide

  6. 勾配の計算について
    交差エントロピー誤差 = − ∑ .
    .
    log .
    の偏微分は…
    の微分 = 1
    O .
    .
    log .
    の微分 = −1
    .
    log .
    の微分 = それぞれ − 1
    log .
    の微分 = −.
    .
    の微分 = − PQ
    RQ
    ( = log , DR
    DS
    = "
    S
    より)
    (以降、詳細な計算は省略。テキストを参照。)

    View Slide

  7. 勾配の計算について
    同様に、Softmax関数の偏微分を求めると、
    .
    − .
    となる。

    View Slide

  8. 勾配の計算について
    シグモイド関数の偏微分は、


    (1 − )
    ReLU関数の偏微分は、


    = T
    1 ( > 0)
    0 ( ≦ 0)
    となる。

    View Slide

  9. 勾配の計算について
    Affineレイヤの逆伝播は、ReLUレイヤの各ニューロンからの逆伝播の値を受けて、
    DE
    DW
    が⼊⼒となる。
    Affineレイヤの出⼒Y = + に対して、
    バイアスの逆伝播はDE
    DW
    、⼊⼒データと重みの乗算に対する逆伝播はDE
    DW
    ⼊⼒データの逆伝播はDE
    D[
    = DE
    DW
    \ ]
    重みの逆伝播は DE
    DF
    = ] \ DE
    DW

    View Slide

  10. 勾配の計算について
    重みの更新は、 それぞれの値に対して⾏うので、 DE
    DF
    に学習係数を適⽤し、
    ← −



    ""
    #"
    _"
    "#
    ##
    _#



    ""


    #"


    _"


    "#


    ##


    _#
    となる。次の学習では、ごくわずかな更新をした重みを⽤いて、 = + に
    対する⼊⼒データとの誤差を求める。
    4.4.1 勾配法と同様のプロセスで、更新量が漸減していく。

    View Slide