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

Chainerによる深層学習(2)

youichiro
February 28, 2017

 Chainerによる深層学習(2)

長岡技術科学大学
自然言語処理研究室
B3ゼミ発表会(第6回)

youichiro

February 28, 2017
Tweet

More Decks by youichiro

Other Decks in Technology

Transcript

  1. Chainerによる深層学習
    (2)
    平成29年3月1日
    長岡技術科学大学
    自然言語処理研究室 小川耀一朗

    View Slide

  2. Chainerの使い方
    1 /20

    View Slide

  3. 計算グラフ
    !(#)
    !(%)
    &%

    &'
    (%
    (#
    ()



    *(%)
    *(#)
    2
    = $
    $ &
    & + & + $
    /20

    View Slide

  4. 計算グラフ
    3
    =
    ,
    ,
    =

    − +

    − +
    !"
    !#
    !$
    ℎ#
    ℎ$
    &"

    ℎ"
    '
    /20

    View Slide

  5. 計算グラフ
    4
    =
    ,
    ,
    =

    − +

    − +
    ℎ&
    &
    , $
    = &
    $ + $
    $ + 1という関数を考えれば
    =


    − ,


    ℎ$
    &
    , $
    = &
    − 2$
    − 1, ℎ7
    &
    , $
    = &
    $
    − 1という
    関数を考えれば
    =
    (

    ,
    ,

    ,
    )
    /20

    View Slide

  6. 計算グラフ
    5
    = &
    , $
    , 7
    = ℎ&
    ℎ$
    &
    , $
    , ℎ7
    $
    , 7
    関数がℎ&
    , ℎ$
    , ℎ7
    の合成関数になっている
    !"
    !#
    !$
    ℎ#
    ℎ$
    &"

    ℎ"
    '
    /20

    View Slide

  7. 計算グラフと逆伝搬
    6
    !"
    !#
    !$
    ℎ#
    ℎ$
    &"

    ℎ"
    '
    ()
    (*+
    ()
    (*,
    (*+
    (-+
    (*,
    (-.
    (*+
    (-,
    (*,
    (-,
    /20

    View Slide

  8. 計算グラフと逆伝搬
    7
    !"
    !#
    !$
    ℎ#
    ℎ$
    &"

    ℎ"
    '
    ()
    (*+
    ()
    (*,
    (*+
    (-+
    (*,
    (-.
    (*+
    (-,
    (*,
    (-,


    =




    /20

    View Slide

  9. 計算グラフと逆伝搬
    8
    !"
    !#
    !$
    ℎ#
    ℎ$
    &"

    ℎ"
    '
    ()
    (*+
    ()
    (*,
    (*+
    (-+
    (*,
    (-.
    (*+
    (-,
    (*,
    (-,


    =




    +




    /20

    View Slide

  10. モジュールのインポート
    9 /20

    View Slide

  11. Variable
    10
    計算グラフの変数ノードに対応するオブジェクトを生成
    変数の中身を確認
    /20

    View Slide

  12. Variable
    11 /20

    View Slide

  13. Variable
    12
    = 1
    − 22
    − 1 2 + 2
    3
    − 1 2 + 1を
    各パラメータで偏微分し、 1
    , 2
    , 3
    = (1, 2, 3)を代入

    1
    = 2 1
    − 22
    − 1 = −8

    2
    = −4 1
    − 22
    − 1 + 23
    2
    3
    − 1 = 46

    3
    = 22
    2
    3
    − 1 = 20
    /20

    View Slide

  14. functions
    13
    Variableを変数とする関数を提供
    /20

    View Slide

  15. links
    14
    Variableを変数とする関数を提供
    links内の関数にはパラメータがある
    第層が3個のノード、第 + 1層が4個のノードからなるNNの場合
    /20

    View Slide

  16. links
    15
    2つの3次元ベクトルを関数ℎに与える
    /20

    View Slide

  17. Chainクラス
    16
    = $

    + &
    + $
    links内の関数Linearや
    function内の関数sigmoidを
    合成して、モデルを定義
    !(#)
    !(%)
    &%

    &'
    (%
    (#
    ('
    )(%)
    )(#)
    &*
    /20

    View Slide

  18. Chainクラス
    17 /20

    View Slide

  19. optimizers
    18
    損失関数をパラメータで微分した値から、各パラメータを更新
    →かなり面倒
    →パラメータを更新する処理をモジュール化
    「1つの訓練データ(, )を与えると、パラメータが1回更新される」
    /20

    View Slide

  20. プログラムの全体図
    19 /20

    View Slide

  21. 発表内容
    l Chainerの使い方
    参考文献:
    「Chainerによる実装深層学習」(第3章)
    新納浩幸 著 オーム社
    20 /20

    View Slide