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

CNNの畳み込み層の相違による文章のランク分類精度の評価

Keisuke Inoue
February 17, 2017

 CNNの畳み込み層の相違による文章のランク分類精度の評価

Keisuke Inoue

February 17, 2017
Tweet

More Decks by Keisuke Inoue

Other Decks in Research

Transcript

  1. CNNの畳み込み層の相違による
    ⽂章のランク分類精度の評価
    井上 佳祐

    View full-size slide

  2. アジェンダ
    • 背景
    • ⽬的
    • 実験データ
    • ニューラルネットワークの実装
    • 本研究での提案
    • 結論
    • まとめ

    View full-size slide

  3. 背景
    • ⼈⼯知能という技術が広く使われるようになった
    • Microsoftのりんな(⾃動返答ボット)
    • SoftbankのPepper(ロボット)
    • インターネットの普及やコンピュータ性能の向上
    • データ収集が容易に
    • 速くデータ処理が可能に
    • 機械学習を実装するための便利なツールやライブラリが登場
    • ディープラーニングフレームワーク : TensorFlow
    • ディープラーニングライブラリ : Keras
    要因は?

    View full-size slide

  4. ディープラーニングについて
    • 畳み込みニューラルネットワーク(Convolutional Neural
    Network, 以下 CNN)
    • 画像データの分類で広く利⽤(画像認識,顔認識など)
    • コメントデータのような⽂章の分類など⾃然⾔語処理に⽤いる研究
    • 再帰型ニューラルネットワーク(Recurrent Neural Network)
    • ⾔語データや時系列データの処理で広く利⽤

    View full-size slide

  5. ⽬的
    畳み込みニューラルネットワークを利⽤
    • コメントのランク分類
    • ネットワーク構成の最適化について考察

    View full-size slide

  6. 実験データ
    • 楽天市場の商品レビューデータ(2011年7⽉28⽇)
    • 学習データ : 1,297,697件
    • 評価データ : 1,216,726件
    • 17個の項⽬
    • レビューコメント
    • 評価ポイント : 0〜5の6段階評価
    利⽤した項⽬は?

    View full-size slide

  7. 分類について
    • 購⼊者が投稿したレビューデータのコメントをその商品に対す
    る購⼊者の評価ランクで分類

    View full-size slide

  8. 分類処理のCNNによる実装
    1. コメント⽂の前処理(トークン化)
    2. CNNの定義
    ⼊⼒層,埋め込み層,畳み込み層,プーリング層,全結合層,出⼒層
    3. ⽬的関数の定義
    4. データの学習

    View full-size slide

  9. コメント⽂の前処理(トークン化)
    • 埋め込み層で単語の埋め込み表現を学習したい
    • ⽂を形態素に分割→単語をトークン
    • 単語番号に変換

    View full-size slide

  10. 埋め込み層
    • ⽂中での単語の前後関係などから単語の類似度を計算し単語の⾼次元ベクト
    ルを学習
    • フレームワークのWord Embeddingを利⽤

    View full-size slide

  11. 畳み込みとプーリングイメージ

    View full-size slide

  12. 畳み込み層
    • ⾏列に対して指定した⾼さと幅のフィルタごとに畳み込む
    • フィルタについて
    • 幅:埋め込み表現の次元数と同じ⼤きさに設定
    • ⼊⼒⾏列の各⾏が1つの単語トークンとなっているため
    • ⾼さ:任意に設定
    • 出⼒について
    • 畳み込みで得られるデータのベクトル
    • 特徴マップという

    View full-size slide

  13. 畳み込みとプーリングイメージ

    View full-size slide

  14. プーリング層
    • マックスプーリングのルールに従う
    • 畳み込み層の各フィルタから出⼒された特徴マップの⾏列から最⼤値
    を取得
    • 次元削減
    • 出⼒
    • マックスプーリングで得た最⼤値を結合した1つのベクトル
    • ⽂章の特徴ベクトル
    • ⽂章の⻑さが変わっても常に同じ次元数のベクトル

    View full-size slide

  15. 出⼒層
    • 出⼒
    • 全結合層のからの出⼒に,ソフトマックス関数を適⽤させて
    得られる,分類する各クラスに属する確率
    P!
    𝑥"
    , 𝑥#
    , ⋯ 𝑥$
    =
    𝑒%! &",,⋯&$

    !%)"
    * 𝑒%!% &",,⋯&$
    畳み込み層・プーリング層を通って全結合層から出⼒される⽂章の
    ⾏列ベクトル 𝑥!
    , 𝑥"
    , ⋯ 𝑥#
    が評価値𝑘である確率

    View full-size slide

  16. ⽬的関数の定義
    • 学習時に出⼒層から出⼒される確率値と教師ラベルに属する確
    率値を⼤きくするように重みを学習
    • その指標となるのが⽬的関数
    • ⽬的関数に交差エントロピー を利⽤
    • 出⼒層でソフトマックス関数を使⽤しているため
    E = − *
    +)"
    ,
    *
    !%)"
    *
    𝑡!%,+
    log 𝑃!% 𝑋+
    データ𝑋$
    = (𝑥!
    , 𝑥"
    , ⋯ 𝑥#
    )が教師ラベル𝑡%!,$
    に属する確率値𝑃(𝑋$
    )
    としたときの⽬的関数E

    View full-size slide

  17. データの学習
    • 定義したニューラルネットワークの学習を複数回繰り返し⾏う
    • ⽬的関数の微分による勾配を利⽤したアルゴリズムに従って⽬
    的関数の値を最⼩化

    View full-size slide

  18. 本研究での提案
    • 畳み込み層のノード数およびフィルタの⾼さの違いでモデルを
    変更

    View full-size slide

  19. 使⽤したCNNモデル
    • 1ノードで畳み込みフィルタの⾼さ2〜6のCNN
    • 2ノードで畳み込みフィルタの⾼さ3と⾼さ4のCNN
    • 3ノードで畳み込みフィルタの⾼さ3と⾼さ4と⾼さ5のCNN
    ノード数およびフィルタの⾼さを変更した以下のモデル

    View full-size slide

  20. 精度⼀覧表(H:⾼さ ‒ N:ノード数)


    精度
    H:2
    N:1
    精度
    H:3
    N:1
    精度
    H:4
    N:1
    精度
    H:5
    N:1
    精度
    H:6
    N:1
    精度
    H:3,4
    N:2
    精度
    H:3,4,5
    N:3
    SVM

    がんばって
    1 0.6852 0.6869 0.6867 0.6881 0.6891 0.6884 0.6908
    0.44
    2 0.6876 0.6903 0.6912 0.6906 0.6927 0.6921 0.6935
    3 0.6866 0.6898 0.6911 0.6925 0.6926 0.6908 0.6897
    4 0.6812 0.6840 0.6864 0.6880 0.6875 0.6837 0.6779
    5 0.6663 0.6703 0.6751 0.6764 0.6736 0.6729 0.6620

    View full-size slide

  21. 精度⼀覧表(H:⾼さ ‒ N:ノード数)


    精度
    H:2
    N:1
    精度
    H:3
    N:1
    精度
    H:4
    N:1
    精度
    H:5
    N:1
    精度
    H:6
    N:1
    精度
    H:3,4
    N:2
    精度
    H:3,4,5
    N:3
    SVM

    がんばって
    1 0.6852 0.6869 0.6867 0.6881 0.6891 0.6884 0.6908
    0.44
    2 0.6876 0.6903 0.6912 0.6906 0.6927 0.6921 0.6935
    3 0.6866 0.6898 0.6911 0.6925 0.6926 0.6908 0.6897
    4 0.6812 0.6840 0.6864 0.6880 0.6875 0.6837 0.6779
    5 0.6663 0.6703 0.6751 0.6764 0.6736 0.6729 0.6620

    View full-size slide

  22. 実験評価1
    • 2,3回学習時での精度が最も⾼い
    • それを境に精度が低下
    • 5回学習した精度と⽐較すると1.5〜2.0%ほど精度が低下
    • 過学習していると考えられる
    • フィルタの⾼さがより⾼くなるほど精度が向上
    • より多くの単語を⼀度に畳み込む
    • ⾼さ5と⾼さ6での精度にそこまで差が⾒られない
    • これ以上⾼くしても効果は⾒られないと考えられる
    • ⾼さ6のほうが⾼さ5よりも1回少ない学習回数で同程度の精度に到達

    View full-size slide

  23. 精度⼀覧表(H:⾼さ ‒ N:ノード数)


    精度
    H:2
    N:1
    精度
    H:3
    N:1
    精度
    H:4
    N:1
    精度
    H:5
    N:1
    精度
    H:6
    N:1
    精度
    H:3,4
    N:2
    精度
    H:3,4,5
    N:3
    SVM

    がんばって
    1 0.6852 0.6869 0.6867 0.6881 0.6891 0.6884 0.6908
    0.44
    2 0.6876 0.6903 0.6912 0.6906 0.6927 0.6921 0.6935
    3 0.6866 0.6898 0.6911 0.6925 0.6926 0.6908 0.6897
    4 0.6812 0.6840 0.6864 0.6880 0.6875 0.6837 0.6779
    5 0.6663 0.6703 0.6751 0.6764 0.6736 0.6729 0.6620

    View full-size slide

  24. 実験評価2
    • 1ノードの時と同様に2回学習時での精度が最も⾼い
    • それを境に精度が低下
    • 1ノードの⾼さ3と⾼さ4での精度と⽐較
    • 0.1%程度1ノードずつで分類するよりも精度が⾼い
    • ノードを複数個にすることで精度の向上する可能性あり

    View full-size slide

  25. 精度⼀覧表(H:⾼さ ‒ N:ノード数)


    精度
    H:2
    N:1
    精度
    H:3
    N:1
    精度
    H:4
    N:1
    精度
    H:5
    N:1
    精度
    H:6
    N:1
    精度
    H:3,4
    N:2
    精度
    H:3,4,5
    N:3
    SVM

    がんばって
    1 0.6852 0.6869 0.6867 0.6881 0.6891 0.6884 0.6908
    0.44
    2 0.6876 0.6903 0.6912 0.6906 0.6927 0.6921 0.6935
    3 0.6866 0.6898 0.6911 0.6925 0.6926 0.6908 0.6897
    4 0.6812 0.6840 0.6864 0.6880 0.6875 0.6837 0.6779
    5 0.6663 0.6703 0.6751 0.6764 0.6736 0.6729 0.6620

    View full-size slide

  26. 実験評価3
    • 1ノード,2ノードの時と同様に2回学習時での精度が最も⾼い
    • それを境に精度が低下
    • 1回⽬の学習で精度が69%を超えている
    • 実験に⽤いたCNNの中で⼀番少ない学習回数で到達
    • 精度が実験に⽤いたCNNで⼀番⾼い
    • 2ノードモデルでの実験結果を踏まえても,ノード複数化による精度向
    上に多少期待できる

    View full-size slide

  27. CNN構成最適化についての考察
    CNNによるコメント分類での精度向上の最適化は次の⼿順
    1. 1ノードの⾼さが⼩さいフィルタで学習
    2. 精度が低下するまで学習し,精度が悪くなったら1つ前のモデルを
    使い局所最適化
    3. フィルタの⾼さを⼤きくし,同様に学習
    4. フィルタの⾼さを⼤きくしても精度に変化が⾒られなければ,
    ノード数を増加
    5. 1ノードの時の精度を参考にフィルタの⾼さを設定し同様に学習
    この⼿順を2ノード,3ノードと繰り返す

    View full-size slide

  28. まとめ
    • CNNでの⾃然⾔語処理として,商品レビューのコメントデータ
    の評価分類を⾏うCNNの実装⽅法を⽰した
    • ニューラルネットワークはパラメータの数が多く学習には膨⼤
    な時間が必要

    View full-size slide

  29. 今後の課題
    • 少ない学習データでも同程度の精度が得られるかどうかの考察
    • パラメータやノード数の違いによる精度への影響を評価

    View full-size slide

  30. リファレンス
    1. Life with Pepper | ソフトバンク, http://www.softbank.jp/robot/special/pepper/, (2017/01/01 参
    照)
    2. りんな, http://rinna.jp/, (2017/01/01参照)
    3. NTTコムウェア | ディープラーニング, https://www.nttcom.co.jp/research/keyword/dl/,
    (2017/01/01 参照)
    4. Yoon Kim, Convolutional Neural Networks for Sentence Classification, EMNLP(2014), 1746-1751
    5. 国⽴情報学研究所, http://www.nii.ac.jp, (2017/01/01 参照)
    6. 新納浩幸,Chainerによる実践深層学習,オーム社(2016)
    7. 浅川伸⼀,Pythonで体験する深層学習,コロナ社(2016)
    8. 斎藤康毅,ゼロから作るDeepLearning,オライリー・ジャパン(2016)
    9. 中井悦司, TensorFlowで学ぶディープラーニング⼊⾨, マイナビ(2016)
    10. 清⽔亮, はじめての深層学習プログラミング,(2017)
    11. TensorFlow, https://www.tensorflow.org/, (2017/01/01 参照)
    12. Keras Documentation, https://keras.io/, (2017/01/01 参照)

    View full-size slide

  31. ご清聴ありがとうございました
    -Thank You For Your Attention-

    View full-size slide

  32. 質疑応答
    質問・コメントなどがありましたら
    静かに挙⼿をお願いします

    View full-size slide