building high-level features using large scale unsupervised learning

63
名古屋CVPRML勉強会 発表資料 Building High-level Features Using Large Scale Unsupervised Learning 2012/10/20 takmin

Upload: minagawa-takuya

Post on 05-Dec-2014

21.456 views

Category:

Technology


4 download

DESCRIPTION

2012/10/20名古屋CV/PRML勉強会発表資料 "Building High-level Features Using Large Scale Unsupervised Learning"

TRANSCRIPT

Page 1: Building High-level Features Using Large Scale Unsupervised Learning

名古屋CV・PRML勉強会 発表資料

Building High-level Features Using

Large Scale Unsupervised Learning

2012/10/20 takmin

Page 2: Building High-level Features Using Large Scale Unsupervised Learning

はじめに

Page 3: Building High-level Features Using Large Scale Unsupervised Learning

ILSVRC 2012

Team name Error

1 Super Vision 0.15315

2 Super Vision 0.16422

3 ISI 0.26172

4 ISI 0.26602

5 ISI 0.26646

6 ISI 0.26952

7 OXFORD_VGG 0.26979

8 XRCE/INRIA 0.27058

Team name Error

1 Super Vision 0.335463

2 Super Vision 0.341905

3 OXFORD_VGG 0.500342

4 OXFORD_VGG 0.50139

5 OXFORD_VGG 0.522189

6 OXFORD_VGG 0.529482

7 ISI 0.536474

8 ISI 0.536546

Classification Localization

大規模物体認識のコンテスト http://www.image-net.org/challenges/LSVRC/2012/

Deep Learning

Page 4: Building High-level Features Using Large Scale Unsupervised Learning

Super Vision

Our model is a large, deep convolutional neural

network trained on raw RGB pixel values. The neural

network, which has 60 million parameters and 650,000

neurons, consists of five convolutional layers, some of

which are followed by max-pooling layers, and three

globally-connected layers with a final 1000-way softmax. It

was trained on two NVIDIA GPUs for about a week. To

make training faster, we used non-saturating neurons and

a very efficient GPU implementation of convolutional nets.

To reduce overfitting in the globally-connected layers we

employed hidden-unit "dropout", a recently-developed

regularization method that proved to be very effective.

Page 5: Building High-level Features Using Large Scale Unsupervised Learning

ざわつくCVクラスタ

Page 6: Building High-level Features Using Large Scale Unsupervised Learning

僕が抱いたイメージ

Deep Learning

機械学習屋

CV屋

Page 7: Building High-level Features Using Large Scale Unsupervised Learning

Deep Learningとは?

Page 8: Building High-level Features Using Large Scale Unsupervised Learning

物体認識の流れ

入力画像 特徴量抽出 機械学習

画像特徴

(SIFT、HOG、etc)

Hand-Crafted Feature

入力画像 物体認識/検出

Page 9: Building High-level Features Using Large Scale Unsupervised Learning

Deep Learning

Hand-craftedな特徴量を

用いず、特徴量を画素から統計的に学習する。

低レベル特徴から高レベル特徴までの階層構造。

低レベルな特徴ほど、様々なタスクで共有可能

主な手法

Deep Belief Networks

Deep Bolzmann Machines

Deep Neural Networks

(Image from Lee. H in CVPR2012 Tutorial)

Super Vision

Page 10: Building High-level Features Using Large Scale Unsupervised Learning

本題

Page 11: Building High-level Features Using Large Scale Unsupervised Learning

紹介する論文

Building High-level Features Using Large Scale Unsupervised Learning

International Conference on Machine Learning (ICML) 2012 Quac V. Le (Stanford)

Marc’ Aurelio Ranzato (Google)

Rajat Monga (Google)

Matthieu Devin (Google)

Kai Chen (Google)

Greg S. Corrado (Google)

Jeff Dean (Google)

Andrew Y. Ng (Stanford)

Page 12: Building High-level Features Using Large Scale Unsupervised Learning

紹介する論文

Building High-level Features Using Large Scale

Unsupervised Learning

ラベルがついていない画像だけを使って、特定の種類の物体に反応する、高レベルの特徴検出器を生成できないか?

例:顔認識

「おばあさんニューロン」

Deep Learningは莫大な時間がかかる

1000万枚の画像を16コアのマシン1000台で学習

Deep Neural Network

Page 13: Building High-level Features Using Large Scale Unsupervised Learning

結構話題になりました

WIRED

「猫を認識できるGoogleの巨大頭脳」

http://wired.jp/2012/07/06/google-recognizes-kittens/

RBB Today

「Google、脳のシミュレーションで成果……猫を認識」

http://www.rbbtoday.com/article/2012/06/27/90985.html

IT Pro

「Google、大規模人工ニューロンネットワークを用いた研究成果を紹介」

http://itpro.nikkeibp.co.jp/article/NEWS/20120627/405501/

Page 14: Building High-level Features Using Large Scale Unsupervised Learning

Architecture

(Image from Lee. H in CVPR2012 Tutorial)

1st layer

2nd layer

3rd layer

入力画像(カラー) 特徴マップ

特徴との類似度

Objects

Object

Parts

Low level

Features

Page 15: Building High-level Features Using Large Scale Unsupervised Learning

Architecture

(Image from Lee. H in CVPR2012 Tutorial)

1st layer

2nd layer

3rd layer

入力画像(カラー)

Page 16: Building High-level Features Using Large Scale Unsupervised Learning

Architecture

(Image from Lee. H in CVPR2012 Tutorial)

1st layer

2nd layer

3rd layer

入力画像(カラー)

特徴選択

普遍化

正規化

入力ベクトル

Page 17: Building High-level Features Using Large Scale Unsupervised Learning

1st Sub Layer

特徴選択

xWxhT)(

特徴1 特徴2

・・・

・・・ 入力

第1層

入力ベクトル 重み(疎) 第1層の出力

位置毎に異なる重みを用いる(≠ 畳み込みNN)

Page 18: Building High-level Features Using Large Scale Unsupervised Learning

2nd Sub Layer

普遍化

L2 Pooling

),(),(

2)(

,

)1(

,

yxNvu

i

vyux

i

yx hh

特徴A

・・・

第1層

第2層の出力

第2層

特徴B

・・・

Page 19: Building High-level Features Using Large Scale Unsupervised Learning

3rd Sub Layer

正規化

Local Constraint Normalization

),(

),(

)(

,)1(

,

yxN

yxN

i

yxi

yx

mhh

特徴A

・・・

第2層

第2層の出力

第3層

特徴B

・・・

),(),( , yxNyxNm : 周辺領域のガウス平均/分散

,m

Page 20: Building High-level Features Using Large Scale Unsupervised Learning

学習

教師ありニューラルネットワークの場合

学習データ 出力

教師信号

)(Wnxエンコード

nh),( nnE th

nt

誤差関数

順伝播

Page 21: Building High-level Features Using Large Scale Unsupervised Learning

学習

教師ありニューラルネットワークの場合

誤差の勾配

)(W ),( nnE th

誤差関数

逆伝播

h

nE

Page 22: Building High-level Features Using Large Scale Unsupervised Learning

学習

教師ありニューラルネットワークの場合

誤差の勾配

),( nnE th

誤差関数

逆伝播

h

nE

W

nE

WWW

nE )()1(

Page 23: Building High-level Features Using Large Scale Unsupervised Learning

学習

教師ありニューラルネットワークの場合

誤差の勾配

),( nnE th

誤差関数

逆伝播

h

nE

WWW

nE )()1(

)1( W

Page 24: Building High-level Features Using Large Scale Unsupervised Learning

学習

教師なしニューラルネットワークの場合

学習データ 出力

教師信号

)(Wnxエンコード

nh),( nnE th

nt

誤差関数

順伝播

×

Page 25: Building High-level Features Using Large Scale Unsupervised Learning

学習

教師なしニューラルネットワークの場合

学習データ 出力

)(

1

W

)(

2

Wnx

エンコード デコード

nxnh

),( nnE xx

誤差関数

nnnnnE hxxxx 2

),(

二乗和誤差 出力を疎にするための正則化項

(L1ノルム)

Page 26: Building High-level Features Using Large Scale Unsupervised Learning

学習

nnn hxxw

2

min

特徴1 特徴2

・・・

・・・ 入力

第1層

・・・ 第2層

W

H

x

h

二乗和誤差 出力を疎にするための正則化項

(L1ノルム)

Page 27: Building High-level Features Using Large Scale Unsupervised Learning

学習

特徴1 特徴2

・・・

・・・ 入力

第1層

・・・ 第2層

W

H

x

h

二乗和誤差 第2層の出力のL1ノルム

m

i

k

j

iT

j

iiT

1 1

2)(

1

2)()(

12 )(minarg21

xWHxxWWWW

Page 28: Building High-level Features Using Large Scale Unsupervised Learning

学習

各層の学習

デコード

誤差 学習

エンコード

1st Layer 2nd Layer 3rd Layer

Page 29: Building High-level Features Using Large Scale Unsupervised Learning

学習

各層の学習

デコード

誤差 学習

エンコード エンコード

1st Layer 2nd Layer 3rd Layer

Page 30: Building High-level Features Using Large Scale Unsupervised Learning

学習

各層の学習

エンコード

デコード

誤差 学習

エンコード エンコード

1st Layer 2nd Layer 3rd Layer

Page 31: Building High-level Features Using Large Scale Unsupervised Learning

学習環境

学習データ

YouTubeからランダムに1000万枚の画像を取得

画像を200x200のサイズに調整(カラー)

そのうち、顔画像は3%程度

10万枚の60x60のランダムパッチを取得し、OpenCVの顔検出器で確認

ハードウェア/ソフトウェア

16コアのマシン×1000台

自作ソフトウェアDistBeliefを用いて複数のマシンを連動

パラメータ最適化は非同期確率的勾配降下法を用いる

学習に約3日間

Page 32: Building High-level Features Using Large Scale Unsupervised Learning

学習画像の例

Page 33: Building High-level Features Using Large Scale Unsupervised Learning

学習の流れ

ニューロン全体をロケーションを元に169個に分割し、それぞれを別々のマシンへ割り振り。

Page 34: Building High-level Features Using Large Scale Unsupervised Learning

学習の流れ

学習データセットを5つに分割し、それぞれにモデルレプリカを用意。

モデルレプリカ=分割されたモデルが格納されたマシン群

・・・・・

学習データ

モデルレプリカ

Page 35: Building High-level Features Using Large Scale Unsupervised Learning

学習の流れ

パラメータサーバー群を用意し、各モデルレプリカ間でのパラメータ更新を仲介させる

・・・・・ モデルレプリカ

パラメータサーバー

W

Page 36: Building High-level Features Using Large Scale Unsupervised Learning

学習の流れ

パラメータサーバー群を用意し、各モデルレプリカ間でのパラメータ更新を仲介させる

・・・・・ モデルレプリカ

パラメータサーバー

W

E

Page 37: Building High-level Features Using Large Scale Unsupervised Learning

学習の流れ

パラメータサーバー群を用意し、各モデルレプリカ間でのパラメータ更新を仲介させる

・・・・・ モデルレプリカ

パラメータサーバー

W

Page 38: Building High-level Features Using Large Scale Unsupervised Learning

学習の流れ

パラメータサーバー群を用意し、各モデルレプリカ間でのパラメータ更新を仲介させる

・・・・・ モデルレプリカ

パラメータサーバー

W

E

Page 39: Building High-level Features Using Large Scale Unsupervised Learning

実験1:顔認識

試験画像37,000枚

顔画像:13,026枚

Labeled Faces In the Wild

非顔画像:残り

ImageNet

各ニューロンの出力最大値と最小値を求め、等間隔に20分割した閾値を求める。

最も精度の高い閾値を元に評価。

試験画像例

Page 40: Building High-level Features Using Large Scale Unsupervised Learning

実験1:顔認識

手法 精度

Random guess 64.8% Same architecture with

random weights 67.0%

Best linear filter 74.0% Best first layer neuron 71.0% Best neuron 81.7% Best neuron without

contrast normalization 78.5%

Page 41: Building High-level Features Using Large Scale Unsupervised Learning

実験1:顔認識

テスト画像中高いスコアを出したTop48

Page 42: Building High-level Features Using Large Scale Unsupervised Learning

実験1:顔認識

顔ニューロンに対して最適化された刺激

),;(maxarg*HWxx

x

f 12xsubject to

Page 43: Building High-level Features Using Large Scale Unsupervised Learning

実験1:普遍性

入力顔画像を平行移動/スケール変化/回転(3D)させた時の精度変化を見る

10枚の顔テスト画像を選択し、それぞれに編集を加える

顔の回転画像

Page 44: Building High-level Features Using Large Scale Unsupervised Learning

実験1:普遍性

入力顔画像をスケール変化/回転(3D)させた時の精度変化

Page 45: Building High-level Features Using Large Scale Unsupervised Learning

実験1:普遍性

入力顔画像を平行移動させた時の精度変化

Page 46: Building High-level Features Using Large Scale Unsupervised Learning

実験2:猫と人体の認識

猫と人の映像はYouTubeでも一般的なため、ニューロンがこれらを学習していないかを調べる

猫の顔画像データセット

Zhang et al., “Cat head detection – how to effectively exploit shape

and texture features”, ECCV2008

10,000枚の正解画像、18,409枚の非正解画像

人体データセット

Keller et al., “A new bench-mark for stereo-based pedestrian

detection”, the IEEE Intelligent Vehicles Symposium 2009

上記データセットのサブセットを使用

13,026枚の正解画像、23,974枚の非正解画像

実験方法は顔と同じ

Page 47: Building High-level Features Using Large Scale Unsupervised Learning

実験2:猫と人体の認識

手法 猫 人体

Random guess 64.8% 64.8% Same architecture with

random weights 66.0% 66.5%

Best linear filter 67.2% 68.1% Best first layer neuron 67.1% 67.2% Best neuron 74.6% 76.8% Best neuron without

contrast normalization 69.3% 71.8%

Page 48: Building High-level Features Using Large Scale Unsupervised Learning

実験2:猫と人体の認識

猫と人体ニューロンに最適化された信号

猫 人体

Page 49: Building High-level Features Using Large Scale Unsupervised Learning

実験2:猫と人体の認識

テスト画像中高いスコアを出したTop48

猫 人体

Page 50: Building High-level Features Using Large Scale Unsupervised Learning

実験2:猫と人体の認識

手法 顔 人体 猫

Out network 81.7% 76.7% 74.8% Deep autoencoders

3 layers 72.3% 71.2% 67.5%

Deep autoencoders

6 layers 70.9% 69.8% 68.3%

K-means on 40x40

images 72.5% 69.3% 68.5%

他のUnsupervised Learning手法との比較

Page 51: Building High-level Features Using Large Scale Unsupervised Learning

実験3:ImageNetでの物体認識

既に学習したネットワークの最上層の出力に対してone-versus-allのロジスティック識別器を設置する。

ImageNetのラベル付きデータで識別器を学習後、ネットワーク全体を調整 (fine-tunning)

Dataset version 2009

(9M images, 10K categories)

2011

(14M images, 22K categories)

State-of-the-art 16.7%

(Sanchez & Perronnin,2011)

9.3%

(Weston et al., 2011)

Our method

without pretraining

16.1%

13.6%

Our method

with pretraining

19.2% 15.8%

Page 52: Building High-level Features Using Large Scale Unsupervised Learning

おまけ

脳とDeep Learning

Page 53: Building High-level Features Using Large Scale Unsupervised Learning

視覚皮質の画像処理プロセス

背側経路(dorsal stream)

腕を伸ばして何かを掴むなどの際に利用される、行動に関わる経路。”Where”経路

腹側経路(ventral stream)

それが犬か、猫か、などを認識する、知覚に関わる経路。”What”経路

Page 54: Building High-level Features Using Large Scale Unsupervised Learning

“瞬間的な認識”の画像処理モデル

霊長類は、目の動きや注意が働かない程度の短い時間(100msec)画像を見せただけで、認識することができる。

瞬間的な認識(Rapid Categorization)では腹側経路のフィードフォワードパスのみ使用される

画像が十分な時間提示された場合、「注意」が働きフィードバックパスが活性化される。

色情報は瞬間的な認識においては重要ではない。

Page 55: Building High-level Features Using Large Scale Unsupervised Learning

腹側経路のフィードフォワードパス

Page 56: Building High-level Features Using Large Scale Unsupervised Learning

腹側経路の階層構造

Page 57: Building High-level Features Using Large Scale Unsupervised Learning

腹側経路の階層構造

階層が上位に位置するほど、複雑な刺激に対して選択性を持つようになる。

階層が上位になるほど、位置、サイズなどに対する普遍性が上がる。

カバーする受容野の大きさも同時に広くなる。

上位の階層ほど可塑性が高い。

学習に対して早く柔軟に対応する。

Page 58: Building High-level Features Using Large Scale Unsupervised Learning

視覚皮質の計算モデル

Hubel & Wieselの階層モデル: 単純型細胞(Simple Cell)

ある形状に対して選択的に反応

複雑型細胞(Complex Cell)

単純細胞からの出力を受け取る。

位置とスケールの選択性を除去する。

単純型細胞と複雑型細胞で交互に処理される。

Page 59: Building High-level Features Using Large Scale Unsupervised Learning

単純型細胞

ある特定の信号(位置、大きさ、形状)に対して最も強く反応する。

テンプレートマッチング

信号の形が変わると、それに伴って反応も減っていく。

ガウス関数で近似。

しばしばガボールフィルタで近似される

Page 60: Building High-level Features Using Large Scale Unsupervised Learning

複雑型細胞

ある領域内、あるスケール範囲内にある、同一の形状に対する選択性を持つ単純型細胞からの信号受け取る。

そのうち最大の入力を選択する

位置とサイズに対する普遍性実現の例

Page 61: Building High-level Features Using Large Scale Unsupervised Learning

“Deep Learning” vs “Ventral Stream”

Deep Learningは腹側経路における画像処理に類似

階層構造

階層が上がる毎に受容野が広くなる。

選択性と普遍性が交互に現れる

単純型細胞≒DLのサブレイヤー 一層目

複雑型細胞≒DLのサブレイヤー二層目

階層が上がる毎に複雑な特徴へ反応するようになる。

おばあさんニューロン

ニューロンが形状に対してスパースに反応

Page 62: Building High-level Features Using Large Scale Unsupervised Learning

参考資料

R. Fergus et al., “Deep Learning Methods for Vision”,

CVPR2012 Tutorial

http://cs.nyu.edu/~fergus/tutorials/deep_learning_cvpr12/

T. Serre, “Learning a Dictionary of Shape-Components in

Visual Cortex: Comparison with Neurons, Humans and

Machines”, Brain and Cognitive Science, 2006

Page 63: Building High-level Features Using Large Scale Unsupervised Learning

Any Questions?