convolutional neural network @ cv勉強会関東

36
第23回 コンピュータビジョン勉強会@関東 Convolutional Neural Network 東大 学際情報学府 M1 加賀谷 北斗

Upload: hokuto-kagaya

Post on 05-Dec-2014

4.389 views

Category:

Data & Analytics


8 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

Convolutional Neural Network東大 学際情報学府 M1

加賀谷 北斗

Page 2: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

自己紹介

★ 加賀谷 北斗(@hokkun_cv / @Fried_garlicHKT) ★ 東京大学大学院学際情報学府学際情報学専攻先端表現情報学コース

!★ 卒論:食事画像認識/検出 ★ Interest of research:機械学習,一般物体認識,Deep Learning

!★ @ketsumedo_yarou先輩の紹介で参加させていただきます

2

Page 3: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

アウトライン

1. Introduction to Convolutional Neural Network

2. The Detail of Conventional CNN Techniques

3. Other Topic

4. Implementation

3

Page 4: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

アウトライン

1. Introduction to Convolutional Neural Network

2. The Detail of Conventional CNN Techniques

3. Other Topic

4. Implementation

4

Page 5: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

ILSVRC 2012

5

チーム Result 手法

SuperVision 15.3% Deep CNN

ISI 26.1% FV + PA

OXFORD_VGG 26.7% FV + SVM

XRCE/INRIA 27.1% FV + SVM

Univ. of Amsterdam 29.6% FV + SVM

LEAR-XRCE 34.5% FV + NCM

1. Introduction to Convolutional Neural Network

Page 6: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

ILSVRC 2013

6

チーム Result 手法

Clarifai 11.7% Deep CNN

NUS 13.0% SVM based + Deep CNN

ZF 13.5% Deep CNN

Andrew Howard 13.6% Deep CNN

OverFeat-NYU 14.1% Deep CNN

UvA-Euvison 14.2% Deep CNN

1. Introduction to Convolutional Neural Network

Page 7: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

Other dataset..

• CIFAR-10 • CIFAR-100 • “Network in Network”, ICLR 2014 !

• MNIST • “Regularization of Neural Networks using DropConnect”, ICML, 2013

7

全てCNN (が基にある)

1. Introduction to Convolutional Neural Network

Page 8: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

知識の流れHubel and Wiesel [1962]

(単純細胞,複雑細胞,局所受容野) !!

Fukushima [1980] (Neocognitron)

!!

LeCun [1989, 1998] (Convolutional Neural Network→手書き文字認識への応用)

8

1. Introduction to Convolutional Neural Network

Page 9: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

基本構造

9

2 3 56 7 41 7 3

Convolution(畳み込み)

2 3 56 7 41 7 3

2 3 56 7 41 7 3

Pooling(プーリング,適切な日本語訳なし?)

※画像はイメージです

2 3 56 7 41 7 3

1. Introduction to Convolutional Neural Network

※画像はイメージです

いわゆる移動フィルタの形で,画像を移動しながら注目画素の周辺の画素値を用いて計算.このフィルタをたくさん用意する

(フィルタ=重み行列が局所的)

Page 10: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

10

1. Introduction to Convolutional Neural Network

Page 11: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

11

http://www.vision.is.tohoku.ac.jp/files/9313/6601/7876/CVIM_tutorial_deep_learning.pdf

1. Introduction to Convolutional Neural Network

Page 12: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

全体構造• 基本的にはこの2層を繰り返すことで成り立つ. • 最終層は出力層として,ソフトマックス関数を置くことが多い(分類問題の場合) • そこにいたるいくつかの層はフル接続とすることが多い.

12

1. Introduction to Convolutional Neural Network

LeNet-5 [LeCun, 1998]

Page 13: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

学習Stochastic Gradient Descend (SGD, Batch training)

!

+ !

Back Propagation (誤差逆伝搬法)13

1. Introduction to Convolutional Neural Network

Page 14: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

アウトライン

1. Introduction to Convolutional Neural Network

2. The Detail of Conventional CNN Techniques

3. Other Topic

4. Implementation

14

Page 15: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

全体構造(再掲)• 基本的にはこの2層を繰り返すことで成り立つ. • 最終層は出力層として,ソフトマックス関数を置くことが多い(分類問題の場合) • そこにいたるいくつかの層はフル接続とすることが多い.

15

1. Introduction to Convolutional Neural Network

LeNet-5 [LeCun, 1998]

Page 16: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

Convolutionは先ほど説明したとおりだが… !☆いくつカーネル(フィルタ)を用意する? ☆カーネルのサイズは? ☆「端っこ」の扱いは? ☆活性化関数は? ☆重みやバイアスの決定は? ☆フィルタの動かし方は?

Convolution

16

2. The Detail of Conventional CNN Techniques

[conv] type=conv inputs=data channels=3 filters=32 padding=4 stride=1 filterSize=9 neuron=logistic initW=0.00001 initB=0.5

Page 17: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

• 直感的にはある程度の領域を「まとめる」ことで位置情報を捨て,変化に対してロバストにする作業のこと.

• 広義では,抽出した生の特徴表現を,認識に必要な部分だけ残すような新たな表現に変換すること. !!

• 無意識に多く使われている • 「最大値をとる」「平均をとる」「(語弊あるが)まとめる」 • 要素技術しかり,アルゴリズム全体然り • ex)                       SIFT[Lowe 99], Bag of Features[], Spatial Pyramid[], Object Bank[2010],

Pooling

17

2. The Detail of Conventional CNN Techniques

Page 18: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

Pooling

18

2. The Detail of Conventional CNN Techniques

• Max pooling !!!

• Avg. pooling (平均プーリング) !!!

• (一般の) Pooling

hi,k+1 = max

j2Pi,k

hj

hi,k+1 =1

|Pi|X

j2Pi

hj

hi,k+1 =

✓1

|Pi|X

j2Pi

hpj

◆ 1p

p=1 avg p=∞ max

※実際にはavg~maxのつなぎ方は他にもあり,詳細は[Boureau, ICML 2010]を参照

Page 19: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

Pooling

19

2. The Detail of Conventional CNN Techniques

• 結局どれがいいのか • [Boureau, CVPR 2010及びICML 2010]に詳しい議論 • Cardinality(プーリングサイズ)による • 直感的には・・ • 元画像に対し,広い部分を扱うときは平均プーリング,小さい部分の時はmaxの方が良い?

Page 20: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

☆プーリング開始画素は? ☆プーリングサイズは?(Overlap) ☆動かす幅は?(Overlap) ☆活性化関数は? ☆プーリングの種類は?

Pooling

20

2. The Detail of Conventional CNN Techniques

[pool] type=pool pool=max inputs=local32 start=0 sizeX=4 stride=2 outputsX=0 channels=32 neuron=relu

Page 21: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

局所コントラスト正規化

21

2. The Detail of Conventional CNN Techniques

• 発端は?:計算神経科学(哺乳類の初期視覚野のモデル) • 脳のニュートンによる情報伝達はパルス数によって制限(有限)

• どうやってやる?:減算初期化と除算初期化 • どちらかというと除算が重要か(?) !

• 意味は?: • ①上記の脳の初期視覚野のモデルを表現 • ②複雑視覚野におけるニュ―ロンの選択性がコントラストに非依存であることの説明

Page 22: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

局所コントラスト正規化

22

2. The Detail of Conventional CNN Techniques

• 減算正規化 !!!!

• 除算正規化

h̄i,j,k = hj,k �X

i,p,q

wp,qhi,j+p,k+q

h : 前層の出力 j, k : 画素

i : フィルタ番号 w : 平均を調整するための重み

c : 定数h0i,j,k =

h̄i,j,kqc+

Pi,p,q wp,qh̄2

i,j+p,k+q

文献によっては,減算をしていないもの [Krizhevsky 2012]もある また,いくつかのフィルタにまたがる場合(across map)とまたがらない場合がある

Page 23: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

局所コントラスト正規化

23

2. The Detail of Conventional CNN Techniques

• 具体的な効果は?: • improves invariance • improves optimization • increase sparsity [以上,Ranzato, CVPR 2013 Tutorial]

Page 24: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

アウトライン

1. Introduction to Convolutional Neural Network

2. The Detail of Conventional CNN Techniques

3. Other Topic

4. Implementation

24

Page 25: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

なぜ学習がうまくいくのか?• Bengio「Although deep supervised neural networks were generally found too difficult to train before the use of unsupervised pre-training, there is one notable exception: convolutional neural networks.」[Bengio, 2009] !

• 一般に多層のNNは過学習を起こす • なぜCNNはOK? !

• “One untested hypothesis” by Bengio • 入力数(fan-in)が少ないと誤差なく勾配伝搬する? • 局所的に接続された階層構造は認識タスクに向いている? • FULL < Random CNN < Supervised CNN

25

3. Other Topic

Page 26: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

DropOut• DropOut [Hinton et al., 2012] • 学習時に,中間層の出力の50%をrandomに0にする • 一時的に依存関係を大幅に減らすことで,強い正則化の効果がある

• 一般化→DropConnect [Wan et al., 2013] • 50% -> (1-p)% • Sparseな接続の重み行列に

26

3. Other Topic

Page 27: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

CNNの問題点

•ただただパラメータが多い

27

3. Other Topic

Page 28: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

CNNの問題点

28 http://www.slideshare.net/yurieoka37/ss-28152060

3. Other Topic

←最初に決めるが,一番難しい…

Page 29: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

Convolutionは先ほど説明したとおりだが… !☆いくつカーネル(フィルタ)を用意する? ☆カーネルのサイズは? ☆「端っこ」の扱いは? ☆活性化関数は? ☆重みやバイアスの決定は?

Convolution(再掲)

29

[conv] type=conv inputs=data channels=3 filters=32 padding=4 stride=1 filterSize=9 neuron=logistic initW=0.00001 initB=0.5

3. Other Topic

Page 30: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

☆プーリング開始画素は? ☆プーリングサイズは?(Overlap) ☆動かす幅は?(Overlap) ☆活性化関数は? ☆プーリングの種類は?

Pooling(再掲)

30

[pool] type=pool pool=max inputs=local32 start=0 sizeX=4 stride=2 outputsX=0 channels=32 neuron=relu

3. Other Topic

Page 31: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

いわゆるハイパパラメータ• いくつかの決定手法は提案されてはいる • ランダムサーチのほうが性能がいい?[Bergstra, 2012] • 基本的には層は多くあるべき? [Bengio, 2013] • http://www.slideshare.net/koji_matsuda/practical-recommendation-fordeeplearning

!!

• しかし基本的に問題依存とされる • 経験則しか頼りづらいBlack-box tool

31

3. Other Topic

Page 32: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

アウトライン

1. Introduction to Convolutional Neural Network

2. The Detail of Conventional CNN Techniques

3. Other Topic

4. Implementation

32

Page 33: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

cuda-convnet• LSVRC2012優勝のSupervisionのコード • GPU利用が前提 • 演算部分はC++ / CUDA, UI部分はPython !

• @hokkun_cvの卒論にて利用

33

4. Implementation

Page 34: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

cuda-convnet• 基本的なCNNの機能を網羅 • ただし自分たちで使ってるDropOutの実装はない • (Forkして公開している人はいる) !

• UI部分はPythonなのでいじりやすい !

• 欠点: • 画像を読み込ませるためにデータ加工するコードを自分で書かなければならない

• 並列処理ライブラリCUDAを用いているので,重要な処理の部分を変更するにはそれなりの知識が必要

34

4. Implementation

Page 35: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

まとめ• CNNはConvolutionとPoolingの繰り返しでできている • アイデア自体はかなり古い !

• 同じ層分だけあるフル接続NNよりも性能が良い • なぜかはまだ理論的説明がない !

• 局所的な正規化を行うことで性能向上 !

• あらゆる場所でコンテストを行っても上位独占 • 特にSupervisionの快挙は2013年にその改良を行う論文が多く執筆されたことからもわかる

35

Page 36: Convolutional Neural Network @ CV勉強会関東

第23回 コンピュータビジョン勉強会@関東

• ご清聴ありがとうございました.

36