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

Chainerによる深層学習(3)

 Chainerによる深層学習(3)

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

youichiro

March 08, 2017
Tweet

More Decks by youichiro

Other Decks in Technology

Transcript

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

    View Slide

  2. Chainerによる分類問題
    1/26

    View Slide

  3. プログラムの全体図
    2/26

    View Slide

  4. 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

    View Slide

  5. Irisデータの用意
    4/26

    View Slide

  6. Irisデータの用意
    Irisデータはscikit-learnに付属しているものを使う
    scikit-learn:
    機械学習ライブラリ
    分類や回帰、クラスタリングなどの機能が実装されている
    5/26

    View Slide

  7. 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

    View Slide

  8. 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 0
    0 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 1
    1 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 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 2 2]
    7/26

    View Slide

  9. Irisデータの用意
    Y2 : 教師データ(変形)
    >>>print(Y2)
    [[ 1. 0. 0.]
    [ 1. 0. 0.]

    [ 0. 0. 1.]] 8/26

    View Slide

  10. 訓練データ、テストデータの用意
    9/26

    View Slide

  11. 訓練データ、テストデータの用意
    奇数番目のXデータ → 訓練データ
    奇数番目のY2データ → 訓練用の教師データ
    10/26

    View Slide

  12. 訓練データ、テストデータの用意
    偶数番目のXデータ → テストデータ
    偶数番目のYデータ → 正解データ
    11/26

    View Slide

  13. モデルの定義
    12/26

    View Slide

  14. モデルの定義
    13
    入力:花びらの長さ、幅、がく片の長さ、幅 → 4次元
    出力:setosa(0)、versicolor(1)、virginica(2) → 3次元
    /26

    View Slide

  15. モデルの定義
    14
    入力層→中間層:シグモイド関数
    中間層→出力層:そのまま
    損失関数:二乗誤差
    /26

    View Slide

  16. パラメータの学習
    15/26

    View Slide

  17. パラメータの学習
    16/26

    View Slide

  18. パラメータの学習
    17
    おまじない
    /26

    View Slide

  19. パラメータの学習
    18
    ミニバッチ処理
    1回のパラメータ更新にランダムに
    取り出した25個の訓練データを使う
    /26

    View Slide

  20. パラメータの学習
    19
    5000回繰り返す
    /26

    View Slide

  21. パラメータの学習
    20/26

    View Slide

  22. 評価
    21/26

    View Slide

  23. 評価
    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

    View Slide

  24. 評価
    23
    nrow = 75
    ncol = 3
    /26

    View Slide

  25. 評価
    24
    予測の最大が正解データと一致したら ok+1
    >>>print(“{} {}”.format(ans[30], yans[30]))
    [ 0.0668037 0.80043787 0.15562642] 1
    /26

    View Slide

  26. 評価
    25/26

    View Slide

  27. 発表内容
    26
    • ChainerによるIrisデータの分類
    参考文献
    「Chainerによる実践深層学習」第4章
    新納 浩幸 著 オーム社
    /26

    View Slide