$30 off During Our Annual Pro Sale. View Details »

畳み込みニューラルネットワーク(CNN)の判断根拠の可視化手法 (20分トーク用)

畳み込みニューラルネットワーク(CNN)の判断根拠の可視化手法 (20分トーク用)

CAMPHOR- Day (https://camphor.connpass.com/event/119434/) での発表資料です。

畳み込みニューラルネットワーク(CNN)により非常に高精度で画像認識を行うことができることは良く知られている一方で、AIはブラックボックスだから医療やビジネスには使いづらいという意見も聞きます。果たしてCNNが画像認識を行う過程は本当にブラックボックスなのでしょうか。このトークではCNNが画像認識を行う原理を簡単に説明し、判断根拠の可視化手法の原理を説明します。

他資料からの引用が多いですが,問題があれば削除します.

ShibaNyan

March 09, 2019
Tweet

More Decks by ShibaNyan

Other Decks in Programming

Transcript

  1. 畳み込み
    ニューラルネットワークの
    判断根拠の可視化手法
    @shiba6v

    View Slide

  2. はじめに
    前提知識: 行列が分かればOK.(のはず・・・)
    わからない部分の質問はいつでもOKです.
    かなり端折るので,
    発展的な内容・厳密な議論は最後に
    お願いします.

    View Slide

  3. 構成
    ● CNN(畳み込みニューラルネットワーク)とは?
    ● ブラックボックスってどういうこと?
    ● CNNを理解するための前提知識
    ● CNNの仕組み
    ● 判断根拠の可視化 (CAM)

    View Slide

  4. 畳み込みニューラルネットワーク(CNN)と
    は?

    View Slide

  5. https://qiita.com/taki_tflare/items/42a40119d3d8e622edd2
    機械学習とは

    View Slide

  6. CNNとは・・・
    画像分類など画像系のタスクによく用いられるニューラ
    ルネットワーク(人の神経から着想を得て作られた数理モデル )
    ・画像分類
    ・物体検出
    など・・・ CNN

    CNN
    https://analyticsai.wordpress.com/2017/04/21/raspberry-pi3%E3%81%A7single-shot-mutib
    ox-detector%EF%BC%88ssd%E3%82%92%E5%8B%95%E3%81%8B%E3%81%97%E3
    %81%A6%E3%81%BF%E3%82%8B/

    View Slide

  7. 画像認識にCNNを使うメリット・デメリット
    メリット
    精度が高い!
    デメリット
    ブラックボックス
    https://srconstantin.wordpress.com/2017/01/28/performance-trends-in-ai/

    View Slide

  8. ブラックボックスってどういうこと?

    View Slide

  9. ブラックボックスってどういうこと?
    ● 謎で未知な内部機構を持つもの
    ブラックボックス
    入力 結果
    https://www.merriam-webster.com/dictionary/black%20box

    View Slide

  10. ブラックボックスだと何が困る?
    偏見に基づいて判断しているかもしれない
    男性医師
    の画像
    女性看護
    師の画像
    学習用データセット
    女性医師を看護師と判断してしまうかも・・・
    識別クラス: 医師,看護師,・・・
    ・・・
    https://arxiv.org/abs/1610.02391

    View Slide

  11. 判断根拠を可視化
    https://arxiv.org/abs/1610.02391

    View Slide

  12. CNNを理解するための前提知識
    (畳み込みフィルタ)

    View Slide

  13. 畳み込みフィルタとは?

    View Slide

  14. 畳み込みフィルタ
    画像は,二次元配列とみなせる.(白が255, 黒が0の値)
    説明のために,モノクロ画像とする.
    i行j列目の画素値
    http://hokuts.com/2016/12/13/cnn1/

    View Slide

  15. 畳み込みフィルタ
    画像と別にフィルタとして小さめ(今回は3x3)の二次元配列を用意する.
    s行t列目のフィルタの値
    http://hokuts.com/2016/12/13/cnn1/

    View Slide

  16. 畳み込みフィルタ
    フィルタを重ねてかけあわせ,
    その和を出力
    (出力: フィルタがかかった画像)

    View Slide

  17. 畳み込みフィルタ
    フィルタをかけることで新しい画像を作ることができる.
    http://blog.yusugomori.com/post/129688163130/%E6%95%B0%E5%BC%8F%E3%81%A7%E6%9B%B
    8%E3%81%8D%E4%B8%8B%E3%81%99-convolutional-neural-networks-cnn

    View Slide

  18. 平均化フィルタ
    *
    w
    x
    1/9 1/9 1/9
    1/9 1/9 1/9
    1/9 1/9 1/9
    http://www.image-net.org/

    View Slide

  19. 平均化フィルタ
    * =
    a
    w
    x
    1/9 1/9 1/9
    1/9 1/9 1/9
    1/9 1/9 1/9

    View Slide

  20. 微分フィルタ
    *
    0 0 0
    0 -1 1
    0 0 0

    View Slide

  21. View Slide

  22. 微分フィルタ
    *
    0 0 0
    0 -1 1
    0 0 0

    View Slide

  23. 微分フィルタ
    * =
    0 0 0
    0 -1 1
    0 0 0

    View Slide

  24. CNNのしくみ

    View Slide

  25. CNNのざっくりとしたイメージ
    ドクターフィッシュか?
    キンギョか?
    ホホジロザメか?
    学習後のCNNは,畳み込み層に何度も通すことで複雑な特徴をとらえ,
    画像クラスを識別できる.
    https://lohaco.jp/product/L02317583/

    View Slide

  26. Global Average Pooling
    https://qiita.com/mine820/items/c3726cb906c45a2e5265

    View Slide

  27. CNNの構造
    https://github.com/metalbubble/CAM

    View Slide

  28. 判断根拠の可視化

    View Slide

  29. https://github.com/metalbubble/CAM

    View Slide

  30. https://arxiv.org/abs/1512.04150

    View Slide

  31. まとめ
    ● ブラックボックスだと偏見に基づいて学習するなどの問題がある.
    ● 畳み込みフィルタは,フィルタに画像を重ねてかけ合わせ,和をとる.
    ● CNNは畳み込み層を重ねてできている.
    ● チャネルの重要度をつかって,判断根拠の可視化ができる.

    View Slide