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.

NVIDIA Seminar ディープラーニングによる画像認識と応用事例

30,361 views

Published on

Presentation at NVIDIA Seminar in Nagoya

Published in: Science
  • Be the first to comment

NVIDIA Seminar ディープラーニングによる画像認識と応用事例

  1. 1. ディープラーニングによる
 画像認識と応用事例 山下 隆義
  2. 2. 目次  ディープラーニングについて  畳み込みニューラルネットワーク  応用事例 2
  3. 3. ディープラーニングの現在(1)  画像認識のベンチマークでトップ Convolution Pooling Softmax OtherGoogLeNet, ILSVRC2014 Image Large Scale Visual Recognition Challenge (ILSVRC) 3
  4. 4. ディープラーニングの現在(2)  音声認識のベンチマークでトップ IBIS2013 “音声認識分野における深層学習技術の研究動向”より 従来法:GMM 4
  5. 5. ディープラーニングの現在(3)  画像から文章を生成 http://googleresearch.blogspot.jp/2014/11/a-picture-is-worth-thousand- coherent.html デモページあり http://deeplearning.cs.toronto.edu/i2t 5
  6. 6. ディープラーニングの現在(4)  Deep Q- Network 6 http://www.iclr.cc/lib/exe/fetch.php?media=iclr2015:silver-iclr2015.pdf
  7. 7. ディープラーニングの現在(5) Inceptionism http://googleresearch.blogspot.co.uk/2015/06/inceptionism-going-deeper-into-neural.html
  8. 8. ディープラーニングの現在(6)   歩行者検出 I.Sato, H. Niihara, “Beyond Pedestrian Detection: Deep Neural Networks Level-Up Automotive Safety”,2014 https://www.youtube.com/watch?feature=player_embedded&v=9Y7yzi_w8qo 車載向けGPU Tegra K1上で実時間動作  人の検出とともに,身長,向き,カメラまでの距離を推定 8
  9. 9. ディープラーニングの現在(7)   自動運転支援 http://ventureclef.com/blog2/?p=2535 車載専用のGPUを用いることでリアルタイムでの物体認識を実現 アウディと共同で自動運転支援を開発中 9
  10. 10. Deep Driving 10 http://deepdriving.cs.princeton.edu
  11. 11. なぜディープラーニング? 色々なベンチマークで1位を取ったから・・・ 過去の偉大な成果 様々なテクニック ハードウェアの進化&活用方法 ニューラルネットワークの 暗黒時代を超えて.. 根気強く取り組んだ成果 画像認識のパラダイムシフトの可能性 特徴抽出,識別手法が別々 手作業での特徴設計 特徴抽出+識別を同時に行う 自動的な特徴設計 11
  12. 12. 何がDeep Learning??  Deep Learningに関連するキーワード Restricted Boltzmann Machines Deep Belief Networks Deep Boltzmann Machines Convolutional Neural Networks Deep Neural Networks Back- propagation Contrastive Divergence Dropout Maxout Maxpooling Dropconnect 12
  13. 13. 何がDeep Learning?? Restricted Boltzmann Machines Deep Belief Networks Deep Boltzmann Machines Convolutional Neural Networks Deep Neural Networks Back- propagation Contrastive Divergence Dropout Maxout Maxpooling Dropconnect ネットワークの構成 ネットワークの学習方法 汎化性向上の方法 13
  14. 14. 何がDeep Learning?? Restricted Boltzmann Machines Deep Belief Networks Deep Boltzmann Machines Convolutional Neural Networks Deep Neural Networks Multi-Layer Perceptron 人工知能モデル 確率モデル 多層化 畳込み層を導入 多層化 多層化 Deep Learning Dropout Maxout Max pooling Dropconnect 14
  15. 15. MLPとRBM Multi-Layer Perceptron(MLP) Restricted Boltzmann Machine(RBM) xi x1 p(xi =1|Y) =σ ( wij yj + ai j=1 m ∑ ) p(yj =1| X) =σ ( wij xi + bj i=1 n ∑ ) yi =σ ( wij xj + bj j=1 m ∑ ) 15
  16. 16. DNNとDBN Deep Neural Networks(DNNs) Deep Belief Networks(DBN) 教師あり学習(Back propagation) すべてのパラメータを同時に学習 教師なし学習(Contrastive Divergence) 階層ごとにパラメータを学習 + 教師あり学習(Back propagation) すべてのパラメータを同時に学習 パラメータ更新 パラメータ更新 パラメータ学習 16 入力層 入力層 隠れ層 隠れ層 出力層 入力層 出力層 入力層 出力層 出力層
  17. 17. 目次  ディープラーニングについて  畳み込みニューラルネットワーク  ディープラーニングのツール 17
  18. 18. 畳み込みニューラルネットワーク   初期の研究(今も同じ)   畳み込み、サブサンプリング、全結合の層から構成   手書き文字認識に応用   平行移動に対する不変性がある Y. LeCun, et.al. “Gradient-based Learning Applied to Document Recognition”, Proc. of The IEEE, 1998. 18
  19. 19. 畳み込み層(1)   カーネルをスライドさせて画像に畳み込む  近接の画素とのみ結合する(局所受容野) Convolution Response f Input image Feature map 10x10 kernel 3x3 8x8 Activation function 19 Convolutions
  20. 20. 畳み込み層(2)  画像全体にフィルタを畳み込む 20 -1 0 1 -1 0 1 -1 0 1 例えば   ソーベルフィルタ Convolution Layerのフィルタは, 学習により獲得
  21. 21. 畳み込み層(3)   カーネルをスライドさせて画像に畳み込む  近接の画素とのみ結合する(局所受容野)  カーネルは複数でも良い 21 Activation function Input image Feature map 10x10 8x8 Convolution Response kernel 3x3 f f f Convolutions
  22. 22. 畳み込み層(4)  入力が複数チャンネル(カラー画像など)の場合 22 * 各チャンネルにフィルタを畳み込む Red Green Blue
  23. 23. 活性化関数 シグモイド関数 Rectified Linear Unit(ReLU) Maxout 古くから使われている サチると勾配が消滅 画像認識でよく使われる 学習が速く、勾配がサチる ことがない 複数のカーネルの畳み込み 値の最大を出力 区分線形凸関数 ReLUより表現力が高い 勾配が消えない f (xi ) = max(xj,0)f (xi ) = 1 1+e −xj 23 Convolutions
  24. 24. Maxout Input image Feature map 10x10 kernel 3x3 8x8x3 Convolution Feature map 8x8 複数のカーネルの応答値から 最大値を出力 I.J.Goodfellow, D.Warde-Farley, M.Mirza, A.Courville, and Y.Bengio, “Maxout networks.“, arXiv preprint arXiv:1302.4389, 2013. 24
  25. 25. プーリング層 Max  pooling 2x2の領域   での最大値 Average  pooling 2x2の領域   での平均値 Lp  pooling f (xi ) = ( I(i, j)p *G(i, j)) 1 p i=1 m ∑ j=1 n ∑ 25 Sampling ピークをより強調 Feature mapのサイズを縮小させる
  26. 26. 全結合層 x1 x2 x3 xi h1 h2 hj 各ノードとの結合重み 例えば、、   は を算出し、 activation functionに与えて値を得る   全結合型の構成 hj = f (WT x + bj ) 26 Full connection w11 w12 w21 w1j w22w31 w32 w3 j wij wi2 wi1
  27. 27. 出力層 Softmaxを利用するのが一般的 P(y1) P(y2) P(yM) 各クラスの確率を算出して、  最大値を認識クラスとする   出力ノード数=認識するクラス数 x1 x2 x3 xi h1 h2 hM 27 前層 出力層 classification 各クラスの確率 P(yi ) = exp(hi ) exp(hj ) j=1 M ∑
  28. 28. どうやって学習するの? Layer数が多ければ多いほど沢山のパラメータ 教師データをもとに識別エラーから各パラメータを更新 エラーが小さくなるように更新を繰り返し行い、収束を図る   学習できめること: 各種パラメータ  畳み込み層の各カーネルの要素の値,バイアス  全結合層の各ユニットの結合重み,バイアス 28
  29. 29. 学習の流れ(1) 29   ニューラルネットワークと同様に,順伝播と逆伝播による更新を 繰り返し行い,良いパラメータ群を得る Input:  画像:x  ラベル:y 学習セット: (I1,y1),…, (xn,yn) 順伝搬  現パラメータ群により各学習データの認識を行う 逆伝搬  認識結果(誤差)をもとに,パラメータ群を更新する Convolution Full connection Classification
  30. 30. 学習の流れ(2) Input:  画像:xi  ラベル:yi 学習セット: (x1,y1),…, (xn,yn) 全パラメータをWとする ロス関数:y’iとラベルyiの違いを算出 これを最小化する 30 Convolution Full connection Classification y' = F(W, x) E = Loss(F(W, xi ), yi ) i n ∑   誤差を最小化するように各層のパラメータを更新する 誤差逆伝播法で誤差の偏微分を計算 更新率γを掛けて、パラメータ群Wを更新 W ← W −γ ∂E ∂W
  31. 31. パラメータの学習  勾配法 誤差を元に,勾配=更新量を求める E = NX n=1 qX k=1 (rnk ynk)2 誤差関数を微分する wi(t) wi(t+1) E(t) @E(t) @wi wi(t + 1) = wi(t) ⌘ @E(t) @wi 31
  32. 32. 誤差関数(1)  二乗和誤差 E = qX k=1 (rk yk)2  クロスエントロピー誤差 E = NX n=1 {rn ln yn + (1 rn) ln(1 yn)} E = NX n=1 CX c=1 rcn ln ycn 2クラス問題の場合 多クラス問題の場合 32
  33. 33. 誤差の更新方法(1)  最急降下法 すべての学習サンプルを一度に用いて誤差を求める E = NX n=1 qX k=1 (rnk ynk)2 誤差から重みを更新する wi(t) wi(t+1) E(t) @E(t) @wi 学習サンプルが増えるにつれて 計算量が増加する wi(t + 1) = wi(t) ⌘ @E(t) @wi 33
  34. 34. 誤差の更新方法(2)  確率的勾配降下法(オンライン) 1つの学習サンプルを一度に用いて誤差を求める 誤差から重みを更新する wi(t) wi(t+1) E(t) @E(t) @wi E = qX k=1 (rk yk)2 ・学習サンプル数が大量に増えたとしても 計算量は変化しない ・しかし,1つのサンプルの誤差により 大きく更新される wi(t + 1) = wi(t) ⌘ @E(t) @wi 34
  35. 35. 誤差の更新方法(3)  確率的勾配降下法(ミニバッチ) 少量の学習サンプルを一度に用いて誤差を求める 誤差から重みを更新する wi(t) wi(t+1) E(t) @E(t) @wi 最急降下法と確率的勾配降下法(オンライ ン)のデメリットを補う  −計算量は変化しない  −誤差を総和するため大きく変化しにくい E = NX n=1 qX k=1 (rnk ynk)2 wi(t + 1) = wi(t) ⌘ @E(t) @wi 35
  36. 36. 初期のパラメータはどうする? すべて乱数できめます・・・ 良いパラメータを得る方法として,教師なし学習がある CNNの場合はほとんど用いられることはない 36
  37. 37. 汎化性を向上させるための方法 37
  38. 38. Dropout   全結合層の過学習を抑制する (学習方法のおさらい)   入力データのラベルとネットワークの   出力の誤差を元にパラメータを更新 Input layer Kernel K1 Kn Fully connected layerの一部のノードからの結 合を取り除く(0にする)  だいたい50% 各mini-batchで異なる結合をランダムに取り除く 近似的なアンサンブル学習 G. Hinton, N.Srivastava, A.Krizhevsky, I.Sutskever, and R.Salakhutdinov, “Improving neural networks by preventing co-adaptation of feature detectors.”, arXiv preprint arXiv:1207.0580, 2012. 38
  39. 39. 学習画像の生成  Elastic Distortion  位置や大きさだけでなく,形状の変化も適用  Data Augmentation  位置や大きさを変えて学習データ数を増やす 39 P.Y. Simard, D. Steinkraus, and J.C. Platt, “Best practices for convolutional neural networks applied to visual document analysis.”, ICDAR2003.
  40. 40. 前処理の重要性   Global Contrast Normalization 各画像を平均0,分散1になるように正規化 入力データの明るさを正規化することで性能が向上 40
  41. 41. 前処理の重要性   Global Contrast Normalization 各画像を平均0,分散1になるように正規化 正規化なし 正規化あり 下図はpylearn2の結果 41
  42. 42. 前処理の重要性   ZCA whitening 隣接ピクセルの冗長性をなくすような Wを主成分分析により学習 X ' = WX http://www.cs.toronto.edu/~kriz/learning-features-2009-TR.pdf 隣接ピクセルの冗長性をなくす 42
  43. 43. 前処理の重要性   ZCA whitening 43 ZCA whitening only Global contrast normalization + ZCA whitening
  44. 44. Normalize Layer activation function で得られた値を正規化 Convolutional layer Normalize layer Pooling layer Convolutional layer Normalize layer Pooling layer pooling layer後にNormalize layerを配置することもある 44
  45. 45. Normalize Layer  Local contrast normalization Convolutional layer Normalize layer 同一特徴マップにおける局所領域内で正規化する vj,k = xj,k − wp,q xj+p,k+q∑ wp,q =1∑ yj,k = vj,k max(C,σ jk ) σ jk = wpqvj+p,k+q 2 ∑ K. Jarrett, K. Kavukcuoglu, M. Ranzato and Y.LeCun ,“What is the Best Multi-Stage Architecture for Object Recognition?”, ICCV2009 45
  46. 46. Normalize Layer  Local response normalization Convolutional layer Normalize layer 同一位置における異なる特徴マップ間で正規化する yi j,k = (1+α (yl j,k )2 )β l=i−N/2 i+N/2 ∑ 46 G. E. Hinton, N. Srivastava, A. Krizhevsky, I. Sutskever and R. R. Salakhutdinov ,“Improving neural networks by preventing co-adaptation of feature detectors ”, arxiv2012
  47. 47. 学習時間について   CPU V.S. GPU(1回の更新にかかる時間) Layer CPU (Core2 2.6GHz) GPU (GeForce GT690) 比率 畳み込み層  カーネル:1 27.3ms 11.6ms 2.35倍 畳み込み層  カーネル:20 451.5ms 29.2ms 15.46倍 全結合層  ノード数:100 486ms 14.8ms 32.84倍 学習率  Pre training :0.5  Fine tuning :0.01 Mini-batch :10 47
  48. 48. リソースサイズについて Layerの種類 リソースサイズ 畳み込み層  カーネルサイズ:5x5、 カーネル数:1 0.1KB 畳み込み層 カーネルサイズ:5x5、カーネル数:32 4KB 全結合層  ノード数:100 (パラメータ数:約 87000) 0.35MB 入力画像サイズ:40x40ピクセルの場合 48
  49. 49. 組込み向けGPU(1) 49 192-core CUDA Enabled Kepler GPU 4 + 1(LP) core ARM Cortex A15 CPU 2014
  50. 50. 組込み向けGPU(2) 50 TEGRA X1 MOBILE SUPERCHIP 256-core Maxwell GPU | 8-core 64-bit CPU | 4Kp60 10-bit H.265/VP9 2015
  51. 51. 組込み向けGPU vs. CPU 51 Tegra 2 Tegra 3 Tegra 4 Tegra K1 0 200 400 600 800 1000 1200 GFLOPS Tegra X1 (FP16) TIME FP16/INT16 Core i7 Tegra X1 CPU GPU GPU CPU
  52. 52. 画像認識におけるDeep Learningの活用 52
  53. 53. Deep Learningの応用先 検出 回帰 セグメンテーション 人検出* (Caltech Pedestrian dataset トップ) *HOG+CSS-SVMでのSliding window処理あり シーンラベリング 顔器官検出 人の姿勢推定 手領域抽出 髪領域抽出 顔ラベリング 53 認識 一般物体認識 (LSVRCトップ) 顔認識(照合) (LFWトップ) 人物属性推定 一般物体検出 (Pascal VOCトップ) 文字認識
  54. 54. AlexNet  ILSVRC2012で優勝したネットワーク 54 •  2つのGPUで別々に学習(最終層で結合) •  5つの畳み込み層 •  3つの全結合層 1層目のフィルタ A. Krizhevsky, I. Sutskever G. E. Hinton , ImageNet Classification with Deep Convolutional Neural Networks (NIPS2012)
  55. 55. Clarifi  ILSVRC2013で優勝したネットワーク 55 Convolution Pooling Softmax Other •  5つの畳み込み層(うち3層にMaxpooling) •  3つの全結合層 Adaptive Deconvolutional Networks for Mid and High Level Feature Learning(CVPR2011) 各層の中間表現を可視化して,良いネットワークを選択  => Deconvolutional Networksを活用
  56. 56. Network in Network(1)  畳み込み層の活性化関数に小さなネットワークを導入 56 Lin, Min, Qiang Chen, and Shuicheng Yan. "Network In Network." (ICLR-2014) Input image Feature map Respon se kernel マイクロネットワーク
  57. 57. Network in Network(2)  簡単な実装:1x1の畳み込み処理として表現ができる 57 Lin, Min, Qiang Chen, and Shuicheng Yan. "Network In Network." (ICLR-2014) CCCP層で畳み込むフィルタは全ての位置で同じなので,パラメータ数は増えない
  58. 58. Network in Network(3)  全結合層なしでネットワークを構成 58 ILSVRC2014での性能  TOP5のエラー率   10.91% for 1 model    9.79% for 3 models
  59. 59. GoogLeNet(1)  22層のネットワーク 59 Convolution Pooling Softmax Other •  Network in Networkを参考にした Inceptionモジュールを9つ積層 •  全結合層はなし http://www.image-net.org/challenges/LSVRC/2014/slides/GoogLeNet.pptx
  60. 60. GoogLeNet(2)  Inceptionモジュール 60 1x1 convolutions 3x3 convolutions 5x5 convolutions Filter concatenation Previous layer 3x3 max pooling 1x1 convolutions 1x1 convolutions 1x1 convolutions http://www.image-net.org/challenges/LSVRC/2014/slides/GoogLeNet.pptx 1x1の畳み込み層とNxNの畳み込み層を組み合わせる
  61. 61. VGG 61 Conv-64 3x3のフィルタを64個 Conv-128 3x3のフィルタを128個 Conv-256 3x3のフィルタを256個 Conv-512 3x3のフィルタを512個 (a) (b) 3x3のフィルタを2層積層すると 5x5のフィルタと等価になる AlexNetとほぼ等価の構成
  62. 62. 62 Team Year Place Error (top-5) External data SuperVision – Toronto (7 layers) 2012 - 16.4% no SuperVision 2012 1st 15.3% ImageNet 22k Clarifai – NYU (7 layers) 2013 - 11.7% no Clarifai 2013 1st 11.2% ImageNet 22k VGG – Oxford (16 layers) 2014 2nd 7.32% no GoogLeNet (19 layers) 2014 1st 6.67% no Human expert* 5.1% Team Method Error (top-5) DeepImage - Baidu Data augmentation + multi GPU 5.33% PReLU-nets - MSRA Parametric ReLU + smart initialization 4.94% BN-Inception ensemble - Google Reducing internal covariate shift 4.82%
  63. 63. LFWデータセットでの顔認証精度  Deep Learningによる手法がトップレベルに 63 http://www.ee.cuhk.edu.hk/~xgwang/talks/deeo_learning_icip2.pdf LFWデータセット:約6000組のテストセット 被験者実験(10人)での照合精度: 56%
  64. 64. Deep Learningによる顔照合(DeepFace) 64  CNNによる顔照合 4030人分の画像440万枚を学習に利用 人間と同等レベルの精度 顔のアライメント+CNNによる特徴抽出 Y.Taigman、M.Yang、M.Ranzato、L.Wolf, “DeepFace: Closing the Gap to Human-Level Performance in Face Verification”, CVPR2014
  65. 65. Deep Learningによる顔照合(DeepFace) 65  顔のアライメント 2次元アライメント(LBP+SVR)  顔の器官点6点を検出,位置合わせ 3次元アライメント(3次元モデル)  詳細点67点を標準的な3次元モデルに  フィッティング 2次元+3次元アライメントにより,顔向きを補正 Y.Taigman、M.Yang、M.Ranzato、L.Wolf, “DeepFace: Closing the Gap to Human-Level Performance in Face Verification”, CVPR2014
  66. 66. Deep Learningによる顔照合(DeepFace) 66  CNN 1層目のみPoolingを利用  (位置不変性が不要) 4層目以降は,位置ごとに畳み込むフィルタを個別に学習  (位置ごとに詳細な特徴を抽出) Y.Taigman、M.Yang、M.Ranzato、L.Wolf, “DeepFace: Closing the Gap to Human-Level Performance in Face Verification”, CVPR2014
  67. 67. Deep Learningによる顔照合(DeepFace) 67  照合結果 最後の隠れ層の値を特徴ベクトルとして利用(4096次元) 照合対象の特徴ベクトルとの距離計算で同一人物かどうかを判定 Y.Taigman、M.Yang、M.Ranzato、L.Wolf, “DeepFace: Closing the Gap to Human-Level Performance in Face Verification”, CVPR2014
  68. 68. Deep Learningの応用先 回帰 セグメンテーション シーンラベリング 顔器官検出 人の姿勢推定 手領域抽出 髪領域抽出 顔ラベリング 68 認識 一般物体認識 (LSVRCトップ) 顔認識(照合) (LFWトップ) 人物属性推定 文字認識 検出 人検出* (Caltech Pedestrian dataset トップ) *HOG+CSS-SVMでのSliding window処理あり 一般物体検出 (Pascal VOCトップ)
  69. 69. 物体検出 R. Girshick, J. Donahue, T. Darrell, J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation” , Conference on Computer Vision and Pattern Recognition, pp. 580–587, 2014. Caffeをもとに,物体のLocalizationに応用 CNNで抽出した特徴量をSVMでクラス識別 Pascal VOCでトップの物体検出 69  CNNを特徴量の生成として使用
  70. 70. Deep Learningによる物体検出(R-CNN)  Selective Searchによる候補領域の抽出 70 候補数は2000 R. Girshick, J. Donahue, T. Darrell, J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation” , Conference on Computer Vision and Pattern Recognition, pp. 580–587, 2014.
  71. 71. Deep Learningによる物体検出(R-CNN)  領域の変形 71 全ての候補領域を一定の大きさに正規化(アスペクト比は無視)  ⇒CNNの入力データサイズに合わせる R. Girshick, J. Donahue, T. Darrell, J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation” , Conference on Computer Vision and Pattern Recognition, pp. 580–587, 2014.
  72. 72. Deep Learningによる物体検出(R-CNN)  CNNによる特徴抽出 72 AlexNet (LSVRC2012で優勝したSuperVisionのネットワーク構成) プレトレーニング: Image netで学習 ファインチューニング:Pascal VOCのデータセットで更新 R. Girshick, J. Donahue, T. Darrell, J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation” , Conference on Computer Vision and Pattern Recognition, pp. 580–587, 2014.
  73. 73. Deep Learningによる物体検出(R-CNN)  SVMによる識別 73 各クラスの識別器を学習(線形SVM) Pascal VOCのデータを利用して学習データセットを作成 R. Girshick, J. Donahue, T. Darrell, J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation” , Conference on Computer Vision and Pattern Recognition, pp. 580–587, 2014.
  74. 74. Deep Learningによる物体検出(R-CNN)  Pascal VOCの性能 74 http://www.image-net.org/challenges/LSVRC/2013/slides/r-cnn-ilsvrc2013-workshop.pdf
  75. 75. Deep Learningによる物体検出(R-CNN)  認識結果例(鳥クラス) 75 http://www.image-net.org/challenges/LSVRC/2013/slides/r-cnn-ilsvrc2013-workshop.pdf
  76. 76. 歩行者検出(1)   Dropoutにランダム性を導入し,汎化性能を向上 ⇒Random Dropout    Dropout =ユニットの出力を一定の割合で0にする手法 教師信号 ユニットの削減率    Dropout 50% 50% Random Dropout 60% 75% 一定の割合 ランダムで割合を決定
  77. 77. 歩行者検出(2)   認識時にネットワーク構成の一部をランダムに変更   複数のネットワークの出力の中央値を最終出力とする   アウトライアな応答値を出すネットワークを除外 0.23 0.77 0.42 0.58 0.15 0.85 Positive Negative ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ STEP1:全結合層の構成が異なる     ネットワークを複数作成 STEP2:応答値を統合 ・ ・ ・
  78. 78. Caltech Pedestrian Datasetを用いた評価  評価で使用するサンプル数(4,021枚) State-of-the-artな歩行者検出法であるJoint Deepと同等の精度で検出可能 従来のCNNに比べて約7%Miss Rateが減少 DPMと比べて約23%Miss Rateが減少
  79. 79. 歩行者検出結果例
  80. 80. 歩行者検出例 DPM 提案手法
  81. 81. Deep Learningの応用先 検出 回帰 人検出* (Caltech Pedestrian dataset トップ) *HOG+CSS-SVMでのSliding window処理あり 顔器官検出 人の姿勢推定 81 認識 一般物体認識 (LSVRCトップ) 顔認識(照合) (LFWトップ) 人物属性推定 一般物体検出 (Pascal VOCトップ) 文字認識 セグメンテーション シーンラベリング 手領域抽出 髪領域抽出 顔ラベリング
  82. 82. シーン認識 畳み込みニューラルネットワークを利用して,各ピクセルのシーンラベルを付与 画素情報をそのまま入力して,特徴を自動的に学習 Superpixelによるセグメンテーションも併用 C.Farabet, C.Couprie, L.Najman, Y.LeCun, “Learning Hierarchical Features for Scene Labeling.”, PAMI2013. 82  畳み込みニューラルネットワークでのシーン認識
  83. 83. 手の形状抽出  畳み込みニューラルネットワークを用いて領域を抽出 layer type size, # of kernels Input grayscale 40x40 1st convolution 5x5, 32 2nd max pooling 2x2 3rd maxout 4 4th convolution 5x5, 32 5th max pooling 2x2 6th maxout 4 7th fully connected 200 output L2 norm 1600 83
  84. 84. 手の形状抽出  畳み込みニューラルネットワークを用いて領域を抽出 更新回数 precision recall F value 0 0.2303 1.0000 0.3742 50000 0.8930 0.9135 0.9032 100000 0.8968 0.9199 0.9082 150000 0.9054 0.9186 0.9120 200000 0.9033 0.9234 0.9133 カーネル precision recall F value 3x3 0.9097 0.9133 0.9115 5x5 0.9033 0.9234 0.9133 7x7 0.9056 0.9039 0.9047 84
  85. 85. ネットワークの学習過程の可視化(1)   updating time : 0 - 50000 85
  86. 86.   最上位の隠れ層ー識別層間の重み 86 x1 x2 x3 xi y1 y2 Yj ネットワークの学習過程の可視化(2)
  87. 87.   最上位の隠れ層ー識別層間の重み 87 x1 x2 x3 xi y1 y2 Yj ネットワークの学習過程の可視化(3)
  88. 88.   最上位の隠れ層ー識別層間の重み 88 x1 x2 x3 xi y1 y2 Yj ネットワークの学習過程の可視化(3)
  89. 89.   最上位の隠れ層ー識別層間の重み 89 x1 x2 x3 xi y1 y2 Yj ネットワークの学習過程の可視化(4)
  90. 90. 顔パーツラベリング  マルチクラスセグメンテーションへの応用
  91. 91. シーンラベリング  マルチクラスセグメンテーションへの応用
  92. 92. Deep Learningの応用先 認識 検出 セグメンテーション 一般物体認識 (LSVRCトップ) 一般物体検出 (Pascal VOCトップ) 人検出* (Caltech Pedestrian dataset トップ) *HOG+CSS-SVMでのSliding window処理あり 顔認識(照合) (LFWトップ) シーンラベリング 人物属性推定 手領域抽出 髪領域抽出 顔ラベリング 92 回帰 顔器官検出 人の姿勢推定
  93. 93. 顔器官検出 Convolution Layer Pooling Layer Fully Connection Layer Output units  器官点の座標数=出力ユニット 各器官点の座標を出力する 誤差は最小二乗法により求める 93
  94. 94. 顔輪郭検出 Convolution Layer Pooling Layer Fully Connection Layer Output units  輪郭点の座標数=出力ユニット 各輪郭点の座標を出力する 誤差は最小二乗法により求める
  95. 95. 画像認識における学習時の工夫 95
  96. 96. カリキュラムラーニング(1)   学習過程で難しいサンプルを追加する   (= similar with Bootstrap, but different…) Y. Bengio, J. Louradour, R. Collobert, J. Weston, “Curriculum Learning”, ICML2009. x1 x2 x3 xi y1 y2 yj y1 y2 y3 h1 h2 hj 初期の学習(単純なパターン) 学習の後期(複雑なパターン) 96
  97. 97. カリキュラムラーニング(2)  認識問題を直接解決するのではなく,中間的な問題を 通して解く 97
  98. 98. カリキュラムラーニング(3) 領域抽出に対応したネットワークを学習 Convolutional Layer Pooling Layer Convolutional Layer Pooling Layer fully connection Layer Binarization layer Input data : gray scale image ground truth : hand segmented image 98
  99. 99. カリキュラムラーニング(4) パラメータを初期値として利用 ネットワークのパラメータを転移する パラメータを更新 Input data : gray scale image ground truth : class label 99
  100. 100. カリキュラムラーニング(5) 認識は識別問題に対応したネットワークのみ利用 5 Input data : gray scale image output : class label 100
  101. 101. カリキュラムラーニング(6) without curriculum learning with curriculum learning Ground Truth class classificationclass Ground Truth class classificationclass 101
  102. 102. カリキュラムラーニング(7)  カリキュラムラーニングを導入した顔器官検出
  103. 103. ヘテロジニアスラーニング(1)  複数の異なる情報を同時に学習 Convolution Layer Pooling Layer Fully Connection Layer Output units 年齢と性別の同時推定 男性or女性 年齢
  104. 104. ヘテロジニアスラーニング(2)   ヘテロジニアスラーニングによる性別・年齢の同時推定
  105. 105. 顔器官検出と性別年齢推定
  106. 106. ヘテロジニアスラーニング(3)   ヘテロジニアスラーニングによる歩行者検出と部位推定 1 0.0001 0.001 0.01 0.1 1 10 MissRate False Positive per Image 回帰型DCNN 31.77% 単体のDCNN 38.38%   0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 Daimler  Mono-­‐Pedestrian  Benchmark  Dataset   の評価結果 距離[m] 距離推定結果[m] 誤差[%] 5 4.89 2.2 10 9.26 5.3 15 14.12 5.8
  107. 107. Deep Learningのツール 107
  108. 108. Theano(1)   数値演算ライブラリ Theano (python)   偏微分等の数値演算実装が容易 http://deeplearning.net/software/theano/ 108
  109. 109. Theanoを利用したDeep Learning(1) http://deeplearning.net/tutorial/intro.html 109
  110. 110. Caffe(1) Caffe : 今最もよく使われている   畳み込みニューラルネットワークの公開実装コード https://github.com/UCB-ICSI-Vision-Group/decaf-release/ UC バークレーの研究グループ(T. Darrell) 学習済みのネットワークも公開  これをベースにベンチマークサイト(Kaggle)で トップになっているチームもあり 開発速度が早く,最新の手法が実装されている コミュニティが大きく,情報共有が盛ん (最高性能の設定ファイル,学習結果ファイルな どが共有される) 110
  111. 111. Chainer 111 http://chainer.org   Chainer : pythonベースで非常に使いやすい  Preferred Networksが開発
  112. 112. まとめ  デープラーニングの基礎について紹介  ディープラーニングの概要  畳み込みニューラルネットワーク  応用事例  物体検出,物体認識,セグメンテーション,回帰  カリキュラムラーニング,ヘテロジニアスラーニング  プロジェクトページ : mprg.jp  質問などは yamashita@cs.chubu.ac.jp  へ 112

×