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

Chainerによる深層学習(2)

66cc992074ab4522374e429c11fef225?s=47 youichiro
February 28, 2017

 Chainerによる深層学習(2)

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

66cc992074ab4522374e429c11fef225?s=128

youichiro

February 28, 2017
Tweet

More Decks by youichiro

Other Decks in Technology

Transcript

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

  2. Chainerの使い方 1 /20

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

       *(%) *(#) 2 = $ $ & & + & + $ /20
  4. 計算グラフ 3 = , , = − − + −

    + !" !# !$ ℎ# ℎ$ &" &# ℎ" ' /20
  5. 計算グラフ 4 = , , = − − + −

    + ℎ& & , $ = & $ + $ $ + 1という関数を考えれば = − − , − ℎ$ & , $ = & − 2$ − 1, ℎ7 & , $ = & $ − 1という 関数を考えれば = ( , , , ) /20
  6. 計算グラフ 5 = & , $ , 7 = ℎ&

    ℎ$ & , $ , ℎ7 $ , 7 関数がℎ& , ℎ$ , ℎ7 の合成関数になっている !" !# !$ ℎ# ℎ$ &" &# ℎ" ' /20
  7. 計算グラフと逆伝搬 6 !" !# !$ ℎ# ℎ$ &" &# ℎ"

    ' () (*+ () (*, (*+ (-+ (*, (-. (*+ (-, (*, (-, /20
  8. 計算グラフと逆伝搬 7 !" !# !$ ℎ# ℎ$ &" &# ℎ"

    ' () (*+ () (*, (*+ (-+ (*, (-. (*+ (-, (*, (-, = /20
  9. 計算グラフと逆伝搬 8 !" !# !$ ℎ# ℎ$ &" &# ℎ"

    ' () (*+ () (*, (*+ (-+ (*, (-. (*+ (-, (*, (-, = + /20
  10. モジュールのインポート 9 /20

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

  12. Variable 11 /20

  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
  14. functions 13 Variableを変数とする関数を提供 /20

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

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

  17. Chainクラス 16 = $ + & + $ links内の関数Linearや function内の関数sigmoidを

    合成して、モデルを定義 !(#) !(%) &% &# &' (% (# (' )(%) )(#) &* /20
  18. Chainクラス 17 /20

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

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

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