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. 背景 • ⼈⼯知能という技術が広く使われるようになった • Microsoftのりんな(⾃動返答ボット) • SoftbankのPepper(ロボット) • インターネットの普及やコンピュータ性能の向上 •

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

    コメントデータのような⽂章の分類など⾃然⾔語処理に⽤いる研究 • 再帰型ニューラルネットワーク(Recurrent Neural Network) • ⾔語データや時系列データの処理で広く利⽤
  3. 実験データ • 楽天市場の商品レビューデータ(2011年7⽉28⽇) • 学習データ : 1,297,697件 • 評価データ :

    1,216,726件 • 17個の項⽬ • レビューコメント • 評価ポイント : 0〜5の6段階評価 利⽤した項⽬は?
  4. プーリング層 • マックスプーリングのルールに従う • 畳み込み層の各フィルタから出⼒された特徴マップの⾏列から最⼤値 を取得 • 次元削減 • 出⼒

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

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

    出⼒層でソフトマックス関数を使⽤しているため E = − * +)" , * !%)" * 𝑡!%,+ log 𝑃!% 𝑋+ データ𝑋$ = (𝑥! , 𝑥" , ⋯ 𝑥# )が教師ラベル𝑡%!,$ に属する確率値𝑃(𝑋$ ) としたときの⽬的関数E
  7. 精度⼀覧表(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
  8. 精度⼀覧表(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
  9. 実験評価1 • 2,3回学習時での精度が最も⾼い • それを境に精度が低下 • 5回学習した精度と⽐較すると1.5〜2.0%ほど精度が低下 • 過学習していると考えられる •

    フィルタの⾼さがより⾼くなるほど精度が向上 • より多くの単語を⼀度に畳み込む • ⾼さ5と⾼さ6での精度にそこまで差が⾒られない • これ以上⾼くしても効果は⾒られないと考えられる • ⾼さ6のほうが⾼さ5よりも1回少ない学習回数で同程度の精度に到達
  10. 精度⼀覧表(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
  11. 精度⼀覧表(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
  12. CNN構成最適化についての考察 CNNによるコメント分類での精度向上の最適化は次の⼿順 1. 1ノードの⾼さが⼩さいフィルタで学習 2. 精度が低下するまで学習し,精度が悪くなったら1つ前のモデルを 使い局所最適化 3. フィルタの⾼さを⼤きくし,同様に学習 4.

    フィルタの⾼さを⼤きくしても精度に変化が⾒られなければ, ノード数を増加 5. 1ノードの時の精度を参考にフィルタの⾼さを設定し同様に学習 この⼿順を2ノード,3ノードと繰り返す
  13. リファレンス 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 参照)