長岡技術科学大学 自然言語処理研究室 B3ゼミ発表会(第6回)
Chainerによる深層学習(2)平成29年3月1日長岡技術科学大学自然言語処理研究室 小川耀一朗
View Slide
Chainerの使い方1 /20
計算グラフ!(#)!(%)&%&'(%(#() *(%)*(#)2 = $ $ & & + & + $/20
計算グラフ3 = , , = − − + − + !"!#!$ℎ#ℎ$&"ℎ"'/20
計算グラフ4 = , , = − − + − + ℎ&&, $= &$ + $$ + 1という関数を考えれば = − − , − ℎ$&, $= &− 2$− 1, ℎ7&, $= &$− 1という関数を考えれば = (, , , )/20
計算グラフ5 = &, $, 7= ℎ&ℎ$&, $, ℎ7$, 7関数がℎ&, ℎ$, ℎ7の合成関数になっている!"!#!$ℎ#ℎ$&"ℎ"'/20
計算グラフと逆伝搬6!"!#!$ℎ#ℎ$&"ℎ"'()(*+()(*,(*+(-+(*,(-.(*+(-,(*,(-,/20
計算グラフと逆伝搬7!"!#!$ℎ#ℎ$&"ℎ"'()(*+()(*,(*+(-+(*,(-.(*+(-,(*,(-,=/20
計算グラフと逆伝搬8!"!#!$ℎ#ℎ$&"ℎ"'()(*+()(*,(*+(-+(*,(-.(*+(-,(*,(-,=+/20
モジュールのインポート9 /20
Variable10計算グラフの変数ノードに対応するオブジェクトを生成変数の中身を確認/20
Variable11 /20
Variable12 = 1− 22− 1 2 + 23− 1 2 + 1を各パラメータで偏微分し、 1, 2, 3= (1, 2, 3)を代入1= 2 1− 22− 1 = −82= −4 1− 22− 1 + 2323− 1 = 463= 2223− 1 = 20/20
functions13Variableを変数とする関数を提供/20
links14Variableを変数とする関数を提供links内の関数にはパラメータがある第層が3個のノード、第 + 1層が4個のノードからなるNNの場合/20
links152つの3次元ベクトルを関数ℎに与える/20
Chainクラス16 = $ + &+ $links内の関数Linearやfunction内の関数sigmoidを合成して、モデルを定義!(#)!(%)&%&'(%(#(')(%))(#)&*/20
Chainクラス17 /20
optimizers18損失関数をパラメータで微分した値から、各パラメータを更新→かなり面倒→パラメータを更新する処理をモジュール化「1つの訓練データ(, )を与えると、パラメータが1回更新される」/20
プログラムの全体図19 /20
発表内容l Chainerの使い方参考文献:「Chainerによる実装深層学習」(第3章)新納浩幸 著 オーム社20 /20