Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Convolutional Neural Network @ CV勉強会関東

17,900 views

Published on

Published in: Data & Analytics
  • Be the first to comment

Convolutional Neural Network @ CV勉強会関東

  1. 1. 第23回 コンピュータビジョン勉強会@関東 Convolutional Neural Network 東大 学際情報学府 M1 加賀谷 北斗
  2. 2. 第23回 コンピュータビジョン勉強会@関東 自己紹介 ★ 加賀谷 北斗(@hokkun_cv / @Fried_garlicHKT) ★ 東京大学大学院学際情報学府学際情報学専攻先端表現情報学コース ! ★ 卒論:食事画像認識/検出 ★ Interest of research:機械学習,一般物体認識,Deep Learning ! ★ @ketsumedo_yarou先輩の紹介で参加させていただきます 2
  3. 3. 第23回 コンピュータビジョン勉強会@関東 アウトライン 1. Introduction to Convolutional Neural Network 2. The Detail of Conventional CNN Techniques 3. Other Topic 4. Implementation 3
  4. 4. 第23回 コンピュータビジョン勉強会@関東 アウトライン 1. Introduction to Convolutional Neural Network 2. The Detail of Conventional CNN Techniques 3. Other Topic 4. Implementation 4
  5. 5. 第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
  6. 6. 第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
  7. 7. 第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
  8. 8. 第23回 コンピュータビジョン勉強会@関東 知識の流れ Hubel and Wiesel [1962] (単純細胞,複雑細胞,局所受容野) ! ! Fukushima [1980] (Neocognitron) ! ! LeCun [1989, 1998] (Convolutional Neural Network→手書き文字認識への応用) 8 1. Introduction to Convolutional Neural Network
  9. 9. 第23回 コンピュータビジョン勉強会@関東 基本構造 9 2 3 5 6 7 4 1 7 3 Convolution(畳み込み) 2 3 5 6 7 4 1 7 3 2 3 5 6 7 4 1 7 3 Pooling(プーリング,適切な日本語訳なし?) ※画像はイメージです 2 3 5 6 7 4 1 7 3 1. Introduction to Convolutional Neural Network ※画像はイメージです いわゆる移動フィルタの形で,画像を移動しながら注目画素の周 辺の画素値を用いて計算.このフィルタをたくさん用意する (フィルタ=重み行列が局所的)
  10. 10. 第23回 コンピュータビジョン勉強会@関東 10 1. Introduction to Convolutional Neural Network
  11. 11. 第23回 コンピュータビジョン勉強会@関東 11 http://www.vision.is.tohoku.ac.jp/files/9313/6601/7876/CVIM_tutorial_deep_learning.pdf 1. Introduction to Convolutional Neural Network
  12. 12. 第23回 コンピュータビジョン勉強会@関東 全体構造 • 基本的にはこの2層を繰り返すことで成り立つ. • 最終層は出力層として,ソフトマックス関数を置くことが多い(分類 問題の場合) • そこにいたるいくつかの層はフル接続とすることが多い. 12 1. Introduction to Convolutional Neural Network LeNet-5 [LeCun, 1998]
  13. 13. 第23回 コンピュータビジョン勉強会@関東 学習 Stochastic Gradient Descend (SGD, Batch training) ! + ! Back Propagation (誤差逆伝搬法) 13 1. Introduction to Convolutional Neural Network
  14. 14. 第23回 コンピュータビジョン勉強会@関東 アウトライン 1. Introduction to Convolutional Neural Network 2. The Detail of Conventional CNN Techniques 3. Other Topic 4. Implementation 14
  15. 15. 第23回 コンピュータビジョン勉強会@関東 全体構造(再掲) • 基本的にはこの2層を繰り返すことで成り立つ. • 最終層は出力層として,ソフトマックス関数を置くことが多い(分類 問題の場合) • そこにいたるいくつかの層はフル接続とすることが多い. 15 1. Introduction to Convolutional Neural Network LeNet-5 [LeCun, 1998]
  16. 16. 第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
  17. 17. 第23回 コンピュータビジョン勉強会@関東 • 直感的にはある程度の領域を「まとめる」ことで位置情報を捨て, 変化に対してロバストにする作業のこと. • 広義では,抽出した生の特徴表現を,認識に必要な部分だけ残す ような新たな表現に変換すること. ! ! • 無意識に多く使われている • 「最大値をとる」「平均をとる」「(語弊あるが)まとめる」 • 要素技術しかり,アルゴリズム全体然り • ex)                        SIFT[Lowe 99], Bag of Features[], Spatial Pyramid[], Object Bank[2010], Pooling 17 2. The Detail of Conventional CNN Techniques
  18. 18. 第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 hp j ◆1 p p=1 avg p= max ※実際にはavg∼maxのつなぎ方は他にもあり,詳細は[Boureau, ICML 2010]を参照
  19. 19. 第23回 コンピュータビジョン勉強会@関東 Pooling 19 2. The Detail of Conventional CNN Techniques • 結局どれがいいのか • [Boureau, CVPR 2010及びICML 2010]に詳しい議論 • Cardinality(プーリングサイズ)による • 直感的には・・ • 元画像に対し,広い部分を扱うときは平均プーリング,小さい部分 の時はmaxの方が良い?
  20. 20. 第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
  21. 21. 第23回 コンピュータビジョン勉強会@関東 局所コントラスト正規化 21 2. The Detail of Conventional CNN Techniques • 発端は?:計算神経科学(哺乳類の初期視覚野のモデル) • 脳のニュートンによる情報伝達はパルス数によって制限(有限) • どうやってやる?:減算初期化と除算初期化 • どちらかというと除算が重要か(?) ! • 意味は?: • ①上記の脳の初期視覚野のモデルを表現 • ②複雑視覚野におけるニュ―ロンの選択性がコントラストに非 依存であることの説明
  22. 22. 第23回 コンピュータビジョン勉強会@関東 局所コントラスト正規化 22 2. The Detail of Conventional CNN Techniques • 減算正規化 ! ! ! ! • 除算正規化 ¯hi,j,k = hj,k X i,p,q wp,qhi,j+p,k+q h : 前層の出力 j, k : 画素 i : フィルタ番号 w : 平均を調整するための重み c : 定数 h0 i,j,k = ¯hi,j,k q c + P i,p,q wp,q ¯h2 i,j+p,k+q 文献によっては,減算をしていないもの [Krizhevsky 2012]もある また,いくつかのフィルタにまたがる場合(across map)とまたがらない場合がある
  23. 23. 第23回 コンピュータビジョン勉強会@関東 局所コントラスト正規化 23 2. The Detail of Conventional CNN Techniques • 具体的な効果は?: • improves invariance • improves optimization • increase sparsity [以上,Ranzato, CVPR 2013 Tutorial]
  24. 24. 第23回 コンピュータビジョン勉強会@関東 アウトライン 1. Introduction to Convolutional Neural Network 2. The Detail of Conventional CNN Techniques 3. Other Topic 4. Implementation 24
  25. 25. 第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
  26. 26. 第23回 コンピュータビジョン勉強会@関東 DropOut • DropOut [Hinton et al., 2012] • 学習時に,中間層の出力の50%をrandomに0にする • 一時的に依存関係を大幅に減らすことで,強い正則化の効果があ る • 一般化→DropConnect [Wan et al., 2013] • 50% -> (1-p)% • Sparseな接続の重み行列に 26 3. Other Topic
  27. 27. 第23回 コンピュータビジョン勉強会@関東 CNNの問題点 •ただただパラメータが多い 27 3. Other Topic
  28. 28. 第23回 コンピュータビジョン勉強会@関東 CNNの問題点 28 http://www.slideshare.net/yurieoka37/ss-28152060 3. Other Topic ←最初に決めるが,一番難しい…
  29. 29. 第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
  30. 30. 第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
  31. 31. 第23回 コンピュータビジョン勉強会@関東 いわゆるハイパパラメータ • いくつかの決定手法は提案されてはいる • ランダムサーチのほうが性能がいい?[Bergstra, 2012] • 基本的には層は多くあるべき? [Bengio, 2013] • http://www.slideshare.net/koji_matsuda/practical- recommendation-fordeeplearning ! ! • しかし基本的に問題依存とされる • 経験則しか頼りづらいBlack-box tool 31 3. Other Topic
  32. 32. 第23回 コンピュータビジョン勉強会@関東 アウトライン 1. Introduction to Convolutional Neural Network 2. The Detail of Conventional CNN Techniques 3. Other Topic 4. Implementation 32
  33. 33. 第23回 コンピュータビジョン勉強会@関東 cuda-convnet • LSVRC2012優勝のSupervisionのコード • GPU利用が前提 • 演算部分はC++ / CUDA, UI部分はPython ! • @hokkun_cvの卒論にて利用 33 4. Implementation
  34. 34. 第23回 コンピュータビジョン勉強会@関東 cuda-convnet • 基本的なCNNの機能を網羅 • ただし自分たちで使ってるDropOutの実装はない • (Forkして公開している人はいる) ! • UI部分はPythonなのでいじりやすい ! • 欠点: • 画像を読み込ませるためにデータ加工するコードを自分で書かな ければならない • 並列処理ライブラリCUDAを用いているので,重要な処理の部分 を変更するにはそれなりの知識が必要 34 4. Implementation
  35. 35. 第23回 コンピュータビジョン勉強会@関東 まとめ • CNNはConvolutionとPoolingの繰り返しでできている • アイデア自体はかなり古い ! • 同じ層分だけあるフル接続NNよりも性能が良い • なぜかはまだ理論的説明がない ! • 局所的な正規化を行うことで性能向上 ! • あらゆる場所でコンテストを行っても上位独占 • 特にSupervisionの快挙は2013年にその改良を行う論文が多く執 筆されたことからもわかる 35
  36. 36. 第23回 コンピュータビジョン勉強会@関東 • ご清聴ありがとうございました. 36

×