stMind

about Tech, Computer vision and Machine learning

Deep Learningを学ぼう

Deep Learning Methods for Vision -CVPR2012 Tutorial-

CVPR2012のチュートリアルの資料を、自分なりに補完しながらまとめていきたいと思います。ただし、繋がりが理解し難い所は適宜端折りながら進めていきます。

Introduction

  • これまでの認識プロセス
    • 入力となる画像や映像から、手で設計した特徴量を抽出し、事前に学習した識別器により、物体のクラスを判別する(下図)
    • 特徴量は学習しない
    • 識別器はSVMなどで構築

f:id:satojkovic:20140323173610p:plain

  • 動機付け

    • 近年の認識における進歩というのは、この特徴量の進歩がキーとなってきた
      • SIFTを用いることで、画像の回転やスケール変化に頑健な認識を行うことが出来るなど
    • たくさんの特徴量が提案されている
      • SIFT, HOG, LBP, MSER, Color-SIFT, etc...
    • さらに高精度な認識を実現するには、どのようなアプローチが有効なのか
      • Betterな識別器
      • さらに特徴量を設計する
  • 特徴量を手で設計するアプローチ

    • LP-β マルチカーネル学習
    • 39種類のカーネル
      • PHOG, SIFT, ...
    • 平均的な認識精度を実現する特徴量に対して数%程度の改善しか得られない
    • 組み合わせを手で設計することは難しい→特徴量自体を学習すれば良い
  • なぜ特徴量を学習するか

    • より良いパフォーマンス
    • 別のドメインでの実績?
      • KinectとRandom Forest
        • 特徴量をランダムにサンプリングしてパーツを識別する決定木を作成する
  • なぜ階層化するか

    • 深い認識を表現することが出来る
    • 視覚野は階層構造
  • 認識における階層化の例

    • Spatial Pyramid Matching
      • 画像を段階的にグリッドで分割、グリッド単位でBoVWヒストグラムを作成して、対応するグリッド間の類似度を計算
    • 属性を学習、属性の組み合わせで物体のクラスを表現
      • シロクマ→黒:1, 白:0, 茶色:0, ストライプ:0, water: 1, eats fish: 1
  • 階層的な特徴の学習

    • 各層では前段の層の出力から特徴量を抽出する
    • 各層はほぼ同じ構造
    • すべての層を一度に学習する
  • これまでの学習方法

これらの問題を解決したのがDeep Learningということで繋がっていくがとりあえず導入まで。

おまけ

ちょっとした図を作るならば、Asciiflow - ASCII Flow Diagram Toolで図を書いて、
ditaaで画像にすれば簡単に作ることが出来る。便利。