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

畳み込みニューラルネットワーク

 畳み込みニューラルネットワーク

長岡技術科学大学
自然言語処理研究室
B3ゼミ発表(第9回)

youichiro

March 29, 2017
Tweet

More Decks by youichiro

Other Decks in Technology

Transcript

  1. 畳み込みニューラルネットワーク
    平成29年3月30日
    長岡技術科学大学
    自然言語処理研究室 小川耀一朗

    View Slide

  2. 発表内容
    l 畳み込みニューラルネットワーク
    (Convolutional Neural Networks : CNN)
    l 畳み込みとは
    l ニューラルネットの構造
    l プーリング層
    l 自然言語処理への応用
    2/24

    View Slide

  3. 畳み込みニューラルネットワーク
    ある図形が○か×かを判定する問題
    通常のニューラルネットでは…
    画像の1ピクセルを1つの入力とする
    10×10の画像 → 100ベクトル
    3/24

    View Slide

  4. 畳み込みニューラルネットワーク
    これでは、少し位置がずれていたりすると判定に大
    きな影響が出る
    ある程度の大きさの領域をまとめて入力
    → 「右上から左下にかけて黒」という傾向を捉える
    4/24

    View Slide

  5. 畳み込みニューラルネットワーク
    これでは、少し位置がずれていたりすると判定に大
    きな影響が出る
    ある程度の大きさの領域をまとめて入力
    5/24
    フィルタ

    View Slide

  6. 畳み込みとは
    画像の各要素は0が黒、1が白(一般的には0〜255)
    6/24
    画像
    フィルタ

    View Slide

  7. 畳み込みとは
    画像の値とフィルタの値を要素毎に掛け合わせ、そ
    れらの値を合計
    7/24
    画像
    フィルタ
    畳み込み(内積) 特徴量

    View Slide

  8. 畳み込みとは
    画像の値とフィルタの値を要素毎に掛け合わせ、そ
    れらの値を合計
    8/24
    画像
    フィルタ

    View Slide

  9. 畳み込みとは
    画像の値とフィルタの値を要素毎に掛け合わせ、そ
    れらの値を合計
    9/24
    画像
    フィルタ

    View Slide

  10. 畳み込みとは
    画像の値とフィルタの値を要素毎に掛け合わせ、そ
    れらの値を合計
    10/24
    画像
    フィルタ

    View Slide

  11. 畳み込みとは
    画像の値とフィルタの値を要素毎に掛け合わせ、そ
    れらの値を合計
    11/24
    画像
    フィルタ 畳み込み行列
    ↑全体の畳み込み

    View Slide

  12. 畳み込みとは
    ニューラルネットのイメージ
    12/24

    View Slide

  13. 畳み込みニューラルネットワーク
    フィルタによって1ピクセルだけ出力する処理
    • 入力となる数値の並び(画像の一部分)がある
    • この数値の並びにそれぞれフィルタの値をかける
    • かけ算の各結果をすべて足し合わせる
    13/24

    View Slide

  14. 畳み込みニューラルネットワーク
    フィルタによって1ピクセルだけ出力する処理
    • 入力となる数値の並び(画像の一部分)がある
    • この数値の並びにそれぞれフィルタの値をかける
    • かけ算の各結果をすべて足し合わせる
    ニューラルネットの1ノードの働き
    • 入力となる数値の並びがある
    • この数値の並びにそれぞれ重みの値をかける
    • かけ算の各結果をすべて足し合わせる
    14/24

    View Slide

  15. 畳み込みニューラルネットワーク
    フィルタによって1ピクセルだけ出力する処理
    • 入力となる数値の並び(画像の一部分)がある
    • この数値の並びにそれぞれフィルタの値をかける
    • かけ算の各結果をすべて足し合わせる
    ニューラルネットの1ノードの働き
    • 入力となる数値の並びがある
    • この数値の並びにそれぞれ重みの値をかける
    • かけ算の各結果をすべて足し合わせる
    15/24
    フィルタの値を学習によって更新していく

    View Slide

  16. 構造
    16/24

    View Slide

  17. 構造
    畳み込み層
    1層で複数のフィルタを持っている
    フィルタの数だけ畳み込み行列が生成
    配列の各値には活性化関数をそれぞれ適用
    17/24

    View Slide

  18. 構造
    プーリング層
    畳み込み行列の縮小を行い、有効な値だけ残す
    18/24

    View Slide

  19. プーリング層
    最大プーリング(Max Pooling):
    各領域内の最大値をとって圧縮を行う方法
    19/24

    View Slide

  20. プーリング層
    特徴
    l 出力される行列が固定サイズになる
    1000個のフィルタがあってそれぞれ最大プー
    リングを適用
    →入力画像のサイズやフィルタのサイズに関
    わらず出力は1000次元
    l 位置と回転に不変性を与える
    ある領域について、微妙なピクセルの違いが
    あっても、その差異を吸収する
    20/24

    View Slide

  21. 構造
    全結合層
    最後のプーリング層の出力をすべて入力
    2次元配列(3次元でも可)が1次元配列になる
    出力層で正解ラベルと対応させる
    21/24

    View Slide

  22. 自然言語処理への応用
    CNNの特徴
    l 入力をベクトル表現(word2vecなど)された文書
    にすればNLPに応用できる
    l 感情分析、スパム検出、カテゴリ分類などの分
    類問題が得意
    l 畳み込みとプーリングにより局所的な位置情報
    が失われるため、品詞タグ付けや固有表現抽出な
    どでは難しい
    22/24

    View Slide

  23. 自然言語処理への応用
    文の分類
    文を単語ベクトル列として表現し、CNNを用いて
    特徴抽出・分類
    Convolutional Neural Networks for Sentence Classification(2014/08)
    23/24

    View Slide

  24. 自然言語処理への応用
    言語モデル
    言語モデルのタスクでLSTM同等以上の精度を
    出した
    計算効率がLSTMより20倍程度改善された
    Language Modeling with Gated Convolutional
    Networks(2016/12)
    →自然言語処理の問題に対してもCNNが適用され
    始め、高い精度を出している
    24/24

    View Slide

  25. 発表した内容
    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

    View Slide