長岡技術科学大学 自然言語処理研究室 B3ゼミ発表(第9回)
畳み込みニューラルネットワーク平成29年3月30日長岡技術科学大学自然言語処理研究室 小川耀一朗
View Slide
発表内容l 畳み込みニューラルネットワーク(Convolutional Neural Networks : CNN)l 畳み込みとはl ニューラルネットの構造l プーリング層l 自然言語処理への応用2/24
畳み込みニューラルネットワークある図形が○か×かを判定する問題通常のニューラルネットでは…画像の1ピクセルを1つの入力とする10×10の画像 → 100ベクトル3/24
畳み込みニューラルネットワークこれでは、少し位置がずれていたりすると判定に大きな影響が出るある程度の大きさの領域をまとめて入力→ 「右上から左下にかけて黒」という傾向を捉える4/24
畳み込みニューラルネットワークこれでは、少し位置がずれていたりすると判定に大きな影響が出るある程度の大きさの領域をまとめて入力5/24フィルタ
畳み込みとは画像の各要素は0が黒、1が白(一般的には0〜255)6/24画像フィルタ
畳み込みとは画像の値とフィルタの値を要素毎に掛け合わせ、それらの値を合計7/24画像フィルタ畳み込み(内積) 特徴量
畳み込みとは画像の値とフィルタの値を要素毎に掛け合わせ、それらの値を合計8/24画像フィルタ
畳み込みとは画像の値とフィルタの値を要素毎に掛け合わせ、それらの値を合計9/24画像フィルタ
畳み込みとは画像の値とフィルタの値を要素毎に掛け合わせ、それらの値を合計10/24画像フィルタ
畳み込みとは画像の値とフィルタの値を要素毎に掛け合わせ、それらの値を合計11/24画像フィルタ 畳み込み行列↑全体の畳み込み
畳み込みとはニューラルネットのイメージ12/24
畳み込みニューラルネットワークフィルタによって1ピクセルだけ出力する処理• 入力となる数値の並び(画像の一部分)がある• この数値の並びにそれぞれフィルタの値をかける• かけ算の各結果をすべて足し合わせる13/24
畳み込みニューラルネットワークフィルタによって1ピクセルだけ出力する処理• 入力となる数値の並び(画像の一部分)がある• この数値の並びにそれぞれフィルタの値をかける• かけ算の各結果をすべて足し合わせるニューラルネットの1ノードの働き• 入力となる数値の並びがある• この数値の並びにそれぞれ重みの値をかける• かけ算の各結果をすべて足し合わせる14/24
畳み込みニューラルネットワークフィルタによって1ピクセルだけ出力する処理• 入力となる数値の並び(画像の一部分)がある• この数値の並びにそれぞれフィルタの値をかける• かけ算の各結果をすべて足し合わせるニューラルネットの1ノードの働き• 入力となる数値の並びがある• この数値の並びにそれぞれ重みの値をかける• かけ算の各結果をすべて足し合わせる15/24フィルタの値を学習によって更新していく
構造16/24
構造畳み込み層1層で複数のフィルタを持っているフィルタの数だけ畳み込み行列が生成配列の各値には活性化関数をそれぞれ適用17/24
構造プーリング層畳み込み行列の縮小を行い、有効な値だけ残す18/24
プーリング層最大プーリング(Max Pooling):各領域内の最大値をとって圧縮を行う方法19/24
プーリング層特徴l 出力される行列が固定サイズになる1000個のフィルタがあってそれぞれ最大プーリングを適用→入力画像のサイズやフィルタのサイズに関わらず出力は1000次元l 位置と回転に不変性を与えるある領域について、微妙なピクセルの違いがあっても、その差異を吸収する20/24
構造全結合層最後のプーリング層の出力をすべて入力2次元配列(3次元でも可)が1次元配列になる出力層で正解ラベルと対応させる21/24
自然言語処理への応用CNNの特徴l 入力をベクトル表現(word2vecなど)された文書にすればNLPに応用できるl 感情分析、スパム検出、カテゴリ分類などの分類問題が得意l 畳み込みとプーリングにより局所的な位置情報が失われるため、品詞タグ付けや固有表現抽出などでは難しい22/24
自然言語処理への応用文の分類文を単語ベクトル列として表現し、CNNを用いて特徴抽出・分類Convolutional Neural Networks for Sentence Classification(2014/08)23/24
自然言語処理への応用言語モデル言語モデルのタスクでLSTM同等以上の精度を出した計算効率がLSTMより20倍程度改善されたLanguage Modeling with Gated ConvolutionalNetworks(2016/12)→自然言語処理の問題に対してもCNNが適用され始め、高い精度を出している24/24
発表した内容l 畳み込みニューラルネットワークl 畳み込みとはl ニューラルネットの構造l プーリング層l 自然言語処理への応用参考文献u自然言語処理における畳み込みニューラルネットワークを理解する(http://tkengo.github.io/blog/2016/03/11/understanding-convolutional-neural-networks-for-nlp/)uConvolutional Neural Networkとは何なのか(http://qiita.com/icoxfog417/items/5fd55fad152231d706c2)u高卒でもわかる機械学習 (7) 畳み込みニューラルネット その1(http://hokuts.com/2016/12/13/cnn1/)u自然言語処理における畳み込みニューラルネットワークを用いたモデル (http://qiita.com/Hironsan/items/63d255fd038acbcdf95b)25/24