Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
CNNの畳み込み層の相違による
文章のランク分類精度の評価
岡山理科大学 総合情報学部 情報科学科
椎名研究室
I13I006 井上 佳祐
アジェンダ
• 背景
• 目的
• 実験データ
• ニューラルネットワークの実装
• 本研究での提案
• 結論
• まとめ
背景
• 人工知能という技術が広く使われるようになった
• Microsoftのりんな(自動返答ボット)
• SoftbankのPepper(ロボット)
• インターネットの普及やコンピュータ性能の向上
• データ収集が容易に
• 速くデータ処...
ディープラーニングについて
• 畳み込みニューラルネットワーク(Convolutional Neural
Network, 以下 CNN)
• 画像データの分類で広く利用(画像認識,顔認識など)
• コメントデータのような文章の分類など自然言語...
目的
畳み込みニューラルネットワークを利用
• コメントのランク分類
• ネットワーク構成の最適化について考察
実験データ
• 楽天市場の商品レビューデータ(2011年7月28日)
• 学習データ : 1,297,697件
• 評価データ : 1,216,726件
• 17個の項目
• レビューコメント
• 評価ポイント : 0〜5の6段階評価
利用した...
分類について
• 購入者が投稿したレビューデータのコメントをその商品に対す
る購入者の評価ランクで分類
分類処理のCNNによる実装
1. コメント文の前処理(トークン化)
2. CNNの定義
入力層,埋め込み層,畳み込み層,プーリング層,全結合層,出力層
3. 目的関数の定義
4. データの学習
コメント文の前処理(トークン化)
• 埋め込み層で単語の埋め込み表現を学習したい
• 文を形態素に分割→単語をトークン
• 単語番号に変換
埋め込み層
• 文中での単語の前後関係などから単語の類似度を計算し単語の高次元ベクト
ルを学習
• フレームワークのWord Embeddingを利用
畳み込みとプーリングイメージ
畳み込み層
• 行列に対して指定した高さと幅のフィルタごとに畳み込む
• フィルタについて
• 幅:埋め込み表現の次元数と同じ大きさに設定
• 入力行列の各行が1つの単語トークンとなっているため
• 高さ:任意に設定
• 出力について
• 畳み...
畳み込みとプーリングイメージ
プーリング層
• マックスプーリングのルールに従う
• 畳み込み層の各フィルタから出力された特徴マップの行列から最大値
を取得
• 次元削減
• 出力
• マックスプーリングで得た最大値を結合した1つのベクトル
• 文章の特徴ベクトル
• 文章...
出力層
• 出力
• 全結合層のからの出力に,ソフトマックス関数を適用させて
得られる,分類する各クラスに属する確率
P𝑘 𝑥1, 𝑥2, ⋯ 𝑥 𝑀 =
𝑒 𝑓 𝑘 𝑥1,𝑥2,⋯𝑥 𝑀
𝑘′=1
𝐾
𝑒 𝑓 𝑘′ 𝑥1,𝑥2,⋯𝑥 𝑀
畳み...
目的関数の定義
• 学習時に出力層から出力される確率値と教師ラベルに属する確
率値を大きくするように重みを学習
• その指標となるのが目的関数
• 目的関数に交差エントロピー を利用
• 出力層でソフトマックス関数を使用しているため
E = −...
データの学習
• 定義したニューラルネットワークの学習を複数回繰り返し行う
• 目的関数の微分による勾配を利用したアルゴリズムに従って目
的関数の値を最小化
本研究での提案
• 畳み込み層のノード数およびフィルタの高さの違いでモデルを
変更
使用したCNNモデル
• 1ノードで畳み込みフィルタの高さ2〜6のCNN
• 2ノードで畳み込みフィルタの高さ3と高さ4のCNN
• 3ノードで畳み込みフィルタの高さ3と高さ4と高さ5のCNN
ノード数およびフィルタの高さを変更した以下のモデル
精度一覧表(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 ...
精度一覧表(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 ...
実験評価1
• 2,3回学習時での精度が最も高い
• それを境に精度が低下
• 5回学習した精度と比較すると1.5〜2.0%ほど精度が低下
• 過学習していると考えられる
• フィルタの高さがより高くなるほど精度が向上
• より多くの単語を一度...
精度一覧表(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 ...
実験評価2
• 1ノードの時と同様に2回学習時での精度が最も高い
• それを境に精度が低下
• 1ノードの高さ3と高さ4での精度と比較
• 0.1%程度1ノードずつで分類するよりも精度が高い
• ノードを複数個にすることで精度の向上する可能性あり
精度一覧表(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 ...
実験評価3
• 1ノード,2ノードの時と同様に2回学習時での精度が最も高い
• それを境に精度が低下
• 1回目の学習で精度が69%を超えている
• 実験に用いたCNNの中で一番少ない学習回数で到達
• 精度が実験に用いたCNNで一番高い
• ...
CNN構成最適化についての考察
CNNによるコメント分類での精度向上の最適化は次の手順
1. 1ノードの高さが小さいフィルタで学習
2. 精度が低下するまで学習し,精度が悪くなったら1つ前のモデルを
使い局所最適化
3. フィルタの高さを大きく...
まとめ
• CNNでの自然言語処理として,商品レビューのコメントデータ
の評価分類を行うCNNの実装方法を示した
• ニューラルネットワークはパラメータの数が多く学習には膨大
な時間が必要
今後の課題
• 少ない学習データでも同程度の精度が得られるかどうかの考察
• パラメータやノード数の違いによる精度への影響を評価
リファレンス
1. Life with Pepper | ソフトバンク, http://www.softbank.jp/robot/special/pepper/, (2017/01/01 参
照)
2. りんな, http://rinna.j...
ご清聴ありがとうございました
-Thank You For Your Attention-
質疑応答
質問・コメントなどがありましたら
静かに挙手をお願いします
Upcoming SlideShare
Loading in …5
×

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

1,457 views

Published on

卒業論文発表会のスライド
http://blog.keisukeinoue.net/archives/1064266664.html

Published in: Data & Analytics
  • Be the first to comment

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

  1. 1. CNNの畳み込み層の相違による 文章のランク分類精度の評価 岡山理科大学 総合情報学部 情報科学科 椎名研究室 I13I006 井上 佳祐
  2. 2. アジェンダ • 背景 • 目的 • 実験データ • ニューラルネットワークの実装 • 本研究での提案 • 結論 • まとめ
  3. 3. 背景 • 人工知能という技術が広く使われるようになった • Microsoftのりんな(自動返答ボット) • SoftbankのPepper(ロボット) • インターネットの普及やコンピュータ性能の向上 • データ収集が容易に • 速くデータ処理が可能に • 機械学習を実装するための便利なツールやライブラリが登場 • ディープラーニングフレームワーク : TensorFlow • ディープラーニングライブラリ : Keras 要因は?
  4. 4. ディープラーニングについて • 畳み込みニューラルネットワーク(Convolutional Neural Network, 以下 CNN) • 画像データの分類で広く利用(画像認識,顔認識など) • コメントデータのような文章の分類など自然言語処理に用いる研究 • 再帰型ニューラルネットワーク(Recurrent Neural Network) • 言語データや時系列データの処理で広く利用
  5. 5. 目的 畳み込みニューラルネットワークを利用 • コメントのランク分類 • ネットワーク構成の最適化について考察
  6. 6. 実験データ • 楽天市場の商品レビューデータ(2011年7月28日) • 学習データ : 1,297,697件 • 評価データ : 1,216,726件 • 17個の項目 • レビューコメント • 評価ポイント : 0〜5の6段階評価 利用した項目は?
  7. 7. 分類について • 購入者が投稿したレビューデータのコメントをその商品に対す る購入者の評価ランクで分類
  8. 8. 分類処理のCNNによる実装 1. コメント文の前処理(トークン化) 2. CNNの定義 入力層,埋め込み層,畳み込み層,プーリング層,全結合層,出力層 3. 目的関数の定義 4. データの学習
  9. 9. コメント文の前処理(トークン化) • 埋め込み層で単語の埋め込み表現を学習したい • 文を形態素に分割→単語をトークン • 単語番号に変換
  10. 10. 埋め込み層 • 文中での単語の前後関係などから単語の類似度を計算し単語の高次元ベクト ルを学習 • フレームワークのWord Embeddingを利用
  11. 11. 畳み込みとプーリングイメージ
  12. 12. 畳み込み層 • 行列に対して指定した高さと幅のフィルタごとに畳み込む • フィルタについて • 幅:埋め込み表現の次元数と同じ大きさに設定 • 入力行列の各行が1つの単語トークンとなっているため • 高さ:任意に設定 • 出力について • 畳み込みで得られるデータのベクトル • 特徴マップという
  13. 13. 畳み込みとプーリングイメージ
  14. 14. プーリング層 • マックスプーリングのルールに従う • 畳み込み層の各フィルタから出力された特徴マップの行列から最大値 を取得 • 次元削減 • 出力 • マックスプーリングで得た最大値を結合した1つのベクトル • 文章の特徴ベクトル • 文章の長さが変わっても常に同じ次元数のベクトル
  15. 15. 出力層 • 出力 • 全結合層のからの出力に,ソフトマックス関数を適用させて 得られる,分類する各クラスに属する確率 P𝑘 𝑥1, 𝑥2, ⋯ 𝑥 𝑀 = 𝑒 𝑓 𝑘 𝑥1,𝑥2,⋯𝑥 𝑀 𝑘′=1 𝐾 𝑒 𝑓 𝑘′ 𝑥1,𝑥2,⋯𝑥 𝑀 畳み込み層・プーリング層を通って全結合層から出力される文章の 行列ベクトル 𝑥1, 𝑥2, ⋯ 𝑥 𝑀 が評価値𝑘である確率
  16. 16. 目的関数の定義 • 学習時に出力層から出力される確率値と教師ラベルに属する確 率値を大きくするように重みを学習 • その指標となるのが目的関数 • 目的関数に交差エントロピー を利用 • 出力層でソフトマックス関数を使用しているため E = − 𝑛=1 𝑁 𝑘′=1 𝐾 𝑡 𝑘′,𝑛 log 𝑃 𝑘′ 𝑋 𝑛 データ𝑋 𝑛 = (𝑥1, 𝑥2, ⋯ 𝑥 𝑀)が教師ラベル𝑡 𝑘′,𝑛に属する確率値𝑃(𝑋 𝑛) としたときの目的関数E
  17. 17. データの学習 • 定義したニューラルネットワークの学習を複数回繰り返し行う • 目的関数の微分による勾配を利用したアルゴリズムに従って目 的関数の値を最小化
  18. 18. 本研究での提案 • 畳み込み層のノード数およびフィルタの高さの違いでモデルを 変更
  19. 19. 使用したCNNモデル • 1ノードで畳み込みフィルタの高さ2〜6のCNN • 2ノードで畳み込みフィルタの高さ3と高さ4のCNN • 3ノードで畳み込みフィルタの高さ3と高さ4と高さ5のCNN ノード数およびフィルタの高さを変更した以下のモデル
  20. 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. 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. 22. 実験評価1 • 2,3回学習時での精度が最も高い • それを境に精度が低下 • 5回学習した精度と比較すると1.5〜2.0%ほど精度が低下 • 過学習していると考えられる • フィルタの高さがより高くなるほど精度が向上 • より多くの単語を一度に畳み込む • 高さ5と高さ6での精度にそこまで差が見られない • これ以上高くしても効果は見られないと考えられる • 高さ6のほうが高さ5よりも1回少ない学習回数で同程度の精度に到達
  23. 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. 24. 実験評価2 • 1ノードの時と同様に2回学習時での精度が最も高い • それを境に精度が低下 • 1ノードの高さ3と高さ4での精度と比較 • 0.1%程度1ノードずつで分類するよりも精度が高い • ノードを複数個にすることで精度の向上する可能性あり
  25. 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. 26. 実験評価3 • 1ノード,2ノードの時と同様に2回学習時での精度が最も高い • それを境に精度が低下 • 1回目の学習で精度が69%を超えている • 実験に用いたCNNの中で一番少ない学習回数で到達 • 精度が実験に用いたCNNで一番高い • 2ノードモデルでの実験結果を踏まえても,ノード複数化による精度向 上に多少期待できる
  27. 27. CNN構成最適化についての考察 CNNによるコメント分類での精度向上の最適化は次の手順 1. 1ノードの高さが小さいフィルタで学習 2. 精度が低下するまで学習し,精度が悪くなったら1つ前のモデルを 使い局所最適化 3. フィルタの高さを大きくし,同様に学習 4. フィルタの高さを大きくしても精度に変化が見られなければ, ノード数を増加 5. 1ノードの時の精度を参考にフィルタの高さを設定し同様に学習 この手順を2ノード,3ノードと繰り返す
  28. 28. まとめ • CNNでの自然言語処理として,商品レビューのコメントデータ の評価分類を行うCNNの実装方法を示した • ニューラルネットワークはパラメータの数が多く学習には膨大 な時間が必要
  29. 29. 今後の課題 • 少ない学習データでも同程度の精度が得られるかどうかの考察 • パラメータやノード数の違いによる精度への影響を評価
  30. 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. 31. ご清聴ありがとうございました -Thank You For Your Attention-
  32. 32. 質疑応答 質問・コメントなどがありましたら 静かに挙手をお願いします

×