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

B8bc2731885aee7353bb0f8515d1c213?s=47 Keisuke Inoue
February 17, 2017

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

B8bc2731885aee7353bb0f8515d1c213?s=128

Keisuke Inoue

February 17, 2017
Tweet

Transcript

  1. CNNの畳み込み層の相違による ⽂章のランク分類精度の評価 岡⼭理科⼤学 総合情報学部 情報科学科 井上 佳祐

  2. アジェンダ • 背景 • ⽬的 • 実験データ • ニューラルネットワークの実装 •

    本研究での提案 • 結論 • まとめ
  3. 背景 • ⼈⼯知能という技術が広く使われるようになった • Microsoftのりんな(⾃動返答ボット) • SoftbankのPepper(ロボット) • インターネットの普及やコンピュータ性能の向上 •

    データ収集が容易に • 速くデータ処理が可能に • 機械学習を実装するための便利なツールやライブラリが登場 • ディープラーニングフレームワーク : TensorFlow • ディープラーニングライブラリ : Keras 要因は?
  4. ディープラーニングについて • 畳み込みニューラルネットワーク(Convolutional Neural Network, 以下 CNN) • 画像データの分類で広く利⽤(画像認識,顔認識など) •

    コメントデータのような⽂章の分類など⾃然⾔語処理に⽤いる研究 • 再帰型ニューラルネットワーク(Recurrent Neural Network) • ⾔語データや時系列データの処理で広く利⽤
  5. ⽬的 畳み込みニューラルネットワークを利⽤ • コメントのランク分類 • ネットワーク構成の最適化について考察

  6. 実験データ • 楽天市場の商品レビューデータ(2011年7⽉28⽇) • 学習データ : 1,297,697件 • 評価データ :

    1,216,726件 • 17個の項⽬ • レビューコメント • 評価ポイント : 0〜5の6段階評価 利⽤した項⽬は?
  7. 分類について • 購⼊者が投稿したレビューデータのコメントをその商品に対す る購⼊者の評価ランクで分類

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

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

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

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

  12. 畳み込み層 • ⾏列に対して指定した⾼さと幅のフィルタごとに畳み込む • フィルタについて • 幅:埋め込み表現の次元数と同じ⼤きさに設定 • ⼊⼒⾏列の各⾏が1つの単語トークンとなっているため •

    ⾼さ:任意に設定 • 出⼒について • 畳み込みで得られるデータのベクトル • 特徴マップという
  13. 畳み込みとプーリングイメージ

  14. プーリング層 • マックスプーリングのルールに従う • 畳み込み層の各フィルタから出⼒された特徴マップの⾏列から最⼤値 を取得 • 次元削減 • 出⼒

    • マックスプーリングで得た最⼤値を結合した1つのベクトル • ⽂章の特徴ベクトル • ⽂章の⻑さが変わっても常に同じ次元数のベクトル
  15. 出⼒層 • 出⼒ • 全結合層のからの出⼒に,ソフトマックス関数を適⽤させて 得られる,分類する各クラスに属する確率 P! " , #

    , ⋯ $ = %! &",&#,⋯&$ ∑ !%)" * %!% &",&#,⋯&$ 畳み込み層・プーリング層を通って全結合層から出⼒される⽂章の ⾏列ベクトル ! , " , ⋯ # が評価値である確率
  16. ⽬的関数の定義 • 学習時に出⼒層から出⼒される確率値と教師ラベルに属する確 率値を⼤きくするように重みを学習 • その指標となるのが⽬的関数 • ⽬的関数に交差エントロピー を利⽤ •

    出⼒層でソフトマックス関数を使⽤しているため E = − * +)" , * !%)" * !%,+ log !% + データ$ = (! , " , ⋯ # )が教師ラベル%!,$ に属する確率値($ ) としたときの⽬的関数E
  17. データの学習 • 定義したニューラルネットワークの学習を複数回繰り返し⾏う • ⽬的関数の微分による勾配を利⽤したアルゴリズムに従って⽬ 的関数の値を最⼩化

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

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

  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
  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
  22. 実験評価1 • 2,3回学習時での精度が最も⾼い • それを境に精度が低下 • 5回学習した精度と⽐較すると1.5〜2.0%ほど精度が低下 • 過学習していると考えられる •

    フィルタの⾼さがより⾼くなるほど精度が向上 • より多くの単語を⼀度に畳み込む • ⾼さ5と⾼さ6での精度にそこまで差が⾒られない • これ以上⾼くしても効果は⾒られないと考えられる • ⾼さ6のほうが⾼さ5よりも1回少ない学習回数で同程度の精度に到達
  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
  24. 実験評価2 • 1ノードの時と同様に2回学習時での精度が最も⾼い • それを境に精度が低下 • 1ノードの⾼さ3と⾼さ4での精度と⽐較 • 0.1%程度1ノードずつで分類するよりも精度が⾼い •

    ノードを複数個にすることで精度の向上する可能性あり
  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
  26. 実験評価3 • 1ノード,2ノードの時と同様に2回学習時での精度が最も⾼い • それを境に精度が低下 • 1回⽬の学習で精度が69%を超えている • 実験に⽤いたCNNの中で⼀番少ない学習回数で到達 •

    精度が実験に⽤いたCNNで⼀番⾼い • 2ノードモデルでの実験結果を踏まえても,ノード複数化による精度向 上に多少期待できる
  27. CNN構成最適化についての考察 CNNによるコメント分類での精度向上の最適化は次の⼿順 1. 1ノードの⾼さが⼩さいフィルタで学習 2. 精度が低下するまで学習し,精度が悪くなったら1つ前のモデルを 使い局所最適化 3. フィルタの⾼さを⼤きくし,同様に学習 4.

    フィルタの⾼さを⼤きくしても精度に変化が⾒られなければ, ノード数を増加 5. 1ノードの時の精度を参考にフィルタの⾼さを設定し同様に学習 この⼿順を2ノード,3ノードと繰り返す
  28. まとめ • CNNでの⾃然⾔語処理として,商品レビューのコメントデータ の評価分類を⾏うCNNの実装⽅法を⽰した • ニューラルネットワークはパラメータの数が多く学習には膨⼤ な時間が必要

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

  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 参照)
  31. ご清聴ありがとうございました -Thank You For Your Attention-

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