Deep Learning Methods for Vision -CVPR2012 Tutorial-
CVPR2012のチュートリアルの資料を、自分なりに補完しながらまとめていきたいと思います。ただし、繋がりが理解し難い所は適宜端折りながら進めていきます。
Introduction
- これまでの認識プロセス
- 入力となる画像や映像から、手で設計した特徴量を抽出し、事前に学習した識別器により、物体のクラスを判別する(下図)
- 特徴量は学習しない
- 識別器はSVMなどで構築
動機付け
- 近年の認識における進歩というのは、この特徴量の進歩がキーとなってきた
- SIFTを用いることで、画像の回転やスケール変化に頑健な認識を行うことが出来るなど
- たくさんの特徴量が提案されている
- SIFT, HOG, LBP, MSER, Color-SIFT, etc...
- さらに高精度な認識を実現するには、どのようなアプローチが有効なのか
- Betterな識別器
- さらに特徴量を設計する
- 近年の認識における進歩というのは、この特徴量の進歩がキーとなってきた
特徴量を手で設計するアプローチ
なぜ特徴量を学習するか
なぜ階層化するか
- 深い認識を表現することが出来る
- 視覚野は階層構造
認識における階層化の例
- Spatial Pyramid Matching
- 画像を段階的にグリッドで分割、グリッド単位でBoVWヒストグラムを作成して、対応するグリッド間の類似度を計算
- 属性を学習、属性の組み合わせで物体のクラスを表現
- シロクマ→黒:1, 白:0, 茶色:0, ストライプ:0, water: 1, eats fish: 1
- Spatial Pyramid Matching
階層的な特徴の学習
- 各層では前段の層の出力から特徴量を抽出する
- 各層はほぼ同じ構造
- すべての層を一度に学習する
- バックプロパゲーションで入力層に誤差を戻しながらNNのパラメータを学習
これまでの学習方法
- 教師あり学習
- バックプロパゲーション
- 正解ラベル付きのデータ
- e.g. 畳み込みニューラルネットワーク
- 問題
- 多層の場合に学習が上手く出来ない
- Vanishing Gradients(直訳すると、勾配の消失)
- 隠れ層が多い多層のNNになると、バックプロパゲーション時の誤差の伝搬が徐々に小さくなっていくこと
- http://d.hatena.ne.jp/repose/20110112/1294837332を参照した
- 十分な正解ラベル付きのデータを取得するのは大変
- 多層の場合に学習が上手く出来ない
- 教師あり学習
これらの問題を解決したのがDeep Learningということで繋がっていくがとりあえず導入まで。
おまけ
ちょっとした図を作るならば、Asciiflow - ASCII Flow Diagram Toolで図を書いて、
ditaaで画像にすれば簡単に作ることが出来る。便利。