長岡技術科学大学 自然言語処理研究室 B3ゼミ発表(第7回)
Chainerによる深層学習(3)平成29年3月9日長岡技術科学大学自然言語処理研究室 小川耀一朗
View Slide
Chainerによる分類問題1/26
プログラムの全体図2/26
Irisデータ• 150個のアヤメのデータ• データ: 花びらの長さ、幅、がく片の長さ、幅• アヤメの種類: setosa(0)、versicolor(1)、virginica(2)例)[ 5.0999999 3.5 1.39999998 0.2 ] => 0[ 7. 3.20000005 4.69999981 1.39999998] => 1[ 6.30000019 3.29999995 6. 2.5 ] => 2訓練データ → 奇数番目のデータ75個テストデータ → 偶数番目のデータ75個3/26
Irisデータの用意4/26
Irisデータの用意Irisデータはscikit-learnに付属しているものを使うscikit-learn:機械学習ライブラリ分類や回帰、クラスタリングなどの機能が実装されている5/26
Irisデータの用意X : 花のデータ>>>print(X)[[ 5.0999999 3.5 1.39999998 0.2 ][ 4.9000001 3. 1.39999998 0.2 ]…[ 5.9000001 3. 5.0999999 1.79999995]] 6/26
Irisデータの用意Y : 教師データ>>>print(Y)[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2]7/26
Irisデータの用意Y2 : 教師データ(変形)>>>print(Y2)[[ 1. 0. 0.][ 1. 0. 0.]…[ 0. 0. 1.]] 8/26
訓練データ、テストデータの用意9/26
訓練データ、テストデータの用意奇数番目のXデータ → 訓練データ奇数番目のY2データ → 訓練用の教師データ10/26
訓練データ、テストデータの用意偶数番目のXデータ → テストデータ偶数番目のYデータ → 正解データ11/26
モデルの定義12/26
モデルの定義13入力:花びらの長さ、幅、がく片の長さ、幅 → 4次元出力:setosa(0)、versicolor(1)、virginica(2) → 3次元/26
モデルの定義14入力層→中間層:シグモイド関数中間層→出力層:そのまま損失関数:二乗誤差/26
パラメータの学習15/26
パラメータの学習16/26
パラメータの学習17おまじない/26
パラメータの学習18ミニバッチ処理1回のパラメータ更新にランダムに取り出した25個の訓練データを使う/26
パラメータの学習195000回繰り返す/26
パラメータの学習20/26
評価21/26
評価22テストデータをモデルに投入し、予測データを得るテストでは勾配を求める必要はないのでVariable変数をvolatile=‘on’にする>>>print(ans)[[ 1.01755786e+00 1.39655769e-02 -2.12547127e-02][ 9.83523667e-01 3.55108976e-02 -3.01905852e-02][ 1.03329992e+00 -1.48231089e-02 -1.54979099e-02]…[ -1.24957561e-01 2.79694885e-01 8.36571217e-01]]/26
評価23nrow = 75ncol = 3/26
評価24予測の最大が正解データと一致したら ok+1>>>print(“{} {}”.format(ans[30], yans[30]))[ 0.0668037 0.80043787 0.15562642] 1/26
評価25/26
発表内容26• ChainerによるIrisデータの分類参考文献「Chainerによる実践深層学習」第4章新納 浩幸 著 オーム社/26