image net classification with deep convolutional neural networks

37
IMAGENet Classification _ with Deep Convolutional Neural Networks 2012 / 12 / 20 本本本本本本 M1 本本 本本 NIPS ‘12 本本

Upload: shingo-horiuchi

Post on 10-Jun-2015

3.457 views

Category:

Technology


2 download

DESCRIPTION

黒船がやってきた!!

TRANSCRIPT

Page 1: Image net classification with Deep Convolutional Neural Networks

    IMAGENet Classification _   with Deep Convolutional Neural Networks

2012 / 12 / 20本位田研究室  M1

堀内 新吾

NIPS ‘12

輪講:

Page 2: Image net classification with Deep Convolutional Neural Networks

発表論文『 IMAGENet Classification with Deep Convolutional Neural Networks 』会議: NIPS 2012著者: Alex Krizhevsky, Ilya Sutskever, Geoffrey E Hinton

トロント大学の Hinton 先生と愉快な仲間たち

Page 3: Image net classification with Deep Convolutional Neural Networks

Object Recognition

Cat? Leopard?

応用例:• カメラの顔認識• 自動レジ• ロボットの目• etc…近年の傾向:• クラス数• 訓練画像数• 特徴量の複雑化

Page 4: Image net classification with Deep Convolutional Neural Networks

ILSVRC2012

IM GENET Large Scale Visual Recognition Challenge• 世界最大規模の画像認識コンテスト

※ ↑ をダウンロードするだけで一週間かかるDifficulty:– データサイズの問題– 訓練画像の数の多さの問題– 識別の複雑さの問題

カテゴリ数 訓練画像 検査画像 テスト画像1000 120 万枚 50000 枚 150000 枚

Page 5: Image net classification with Deep Convolutional Neural Networks

Typical OR Approach

訓練画像 特徴量特徴抽出

クラス分類機

クラスラベル学習

テスト画像 特徴量特徴抽出 クラスラベル識別

“ どんな特徴量を使うか”が最重要、だった

Page 6: Image net classification with Deep Convolutional Neural Networks

Proposal Approach

• 内部で自動で特徴抽出• 各層の間に荷重付き枝を持つような Neural Network

訓練画像クラスラベル

テスト画像クラスラベル

DeepConventional

NeuralNetworks

Page 7: Image net classification with Deep Convolutional Neural Networks

Result of ILSVRC 2012

LEAR-XRCE

Univ. of A

musterd

am

XRCE/INRIA

OXFORD_VGG

Univ. of T

okyo

This!!

0

0.1

0.2

0.3

0.4

Error Rate

29%27% 27% 26%

34%

16%

わけがわからない

Page 8: Image net classification with Deep Convolutional Neural Networks

Agenda

• Overview• ImageNet• Architecture– Deep Learning– Convolutional NNs– Acceleration– Reducing Overfitting

• Learning• Result and Evaluation

Page 9: Image net classification with Deep Convolutional Neural Networks

Intro.

Page 10: Image net classification with Deep Convolutional Neural Networks

Overviewwhy? 実世界におけるクラス分類に耐える識別機を作

るhow?

史上最大規模の Neural Networkそれを動かせる GPU

what? Reasonable な時間で圧倒的な性能を出した

contrib.Reasonable な時間で圧倒的な性能を出したGPU 用のコードを公開した

Page 11: Image net classification with Deep Convolutional Neural Networks

IM GENET

WordNet の階層に従う画像データベースurl: http://www.image-net.org/• カテゴリ 22000• 画像: 1500 万枚1画像1カテゴリで bounding-box や各種特徴量も配布

ex.)Chain-mail カテゴリの画像

Page 12: Image net classification with Deep Convolutional Neural Networks

Architecture

Page 13: Image net classification with Deep Convolutional Neural Networks

Deep Learning

Input

Output

識別機

教師なし学習

教師あり学習

Page 14: Image net classification with Deep Convolutional Neural Networks

Deep Learning

Input

Output

識別機Greedy Layer-wise Training[1]

• 一層ずつ学習• 一層の autoencoder

時間 効率× Overfitting

× 時間× 効率× Vanishing Gradient

Problem

  

Traditional Approach• まとめて学習• 多層

autoencoder

Page 15: Image net classification with Deep Convolutional Neural Networks

Convolutional NNs[2]

• NN s の問題

• 提案1

• 提案2

• 提案3

各ユニットが全て繋がっている   ↓• 入力の欠損• 入力のズレ• ノイズの影響をNNs全体が学習してしまう

Page 16: Image net classification with Deep Convolutional Neural Networks

Convolutional NNs[2]

• NN s の問題

• 提案1

• 提案2

• 提案3

各ユニットへの入力を制限• 前の層の一部のユニットの出力だけを受け取る  フィルタのようなもの→ 入力の誤差を全体に伝搬させない

• 入力範囲はオーバーラップするように選ぶ  データの欠損に対応するため

Page 17: Image net classification with Deep Convolutional Neural Networks

Convolutional NNs[2]

• NN s の問題

• 提案1

• 提案2

• 提案3

重みを共有• 入力範囲の同じ入力座標は同じ重みをもつ • 同じフィルタを使って圧縮するイメージ  → フィルタに対する入力の傾向を学習 → 入力のズレ,ノイズに対応

問題 : 1つのフィルタについてしか学習できない

Page 18: Image net classification with Deep Convolutional Neural Networks

Convolutional NNs[2]

• NN s の問題

• 提案1

• 提案2

• 提案3

フィルタの数を増加• 多数のフィルタを用意して出力を多次元化   異なる重みをもつ複数のフィルタを学習• 様々な特徴を学習可能

Page 19: Image net classification with Deep Convolutional Neural Networks

Architecture of CNNs

5 層の CNN s + 3 層の NN s• 入力: 150,528 次元• ニューロン:約 66 万個, GPU2 台に配置           253,440 – 186,624 – 64,896 – 64,896 – 43,264 – 4096 – 4096• 出力: 1000 次元

Page 20: Image net classification with Deep Convolutional Neural Networks

Acceleration

ReLU  非線形変換 GPU2 台の学習 Local Response

正規化Overlapping

Pooling

Page 21: Image net classification with Deep Convolutional Neural Networks

Acceleration

ReLU  非線形変換 GPU2 台の学習 Local Response

正規化Overlapping

Pooling

f(x)

ニューロンのモデル 入力 x   : 前の層の出力を各枝ごとに重み付けした

もの出力 f(x): 入力に非線形な変形を加えたもの

ex.) f(x) = tanh(x), (1 + e-x)-1

問題点 : 莫大な回数行うとなると遅すぎる-> もっと単純な変形で出力を決定したい

ReLU 非線形変換 f(x) = max(0, x)予備実験において 6倍速くネットワークを収束

Page 22: Image net classification with Deep Convolutional Neural Networks

Acceleration

ReLU  非線形変換 GPU2 台の学習 Local Response

正規化Overlapping

Pooling

GPU 間のデータのやり取りを制限- 2,3 層間, 5,6 層間, 6,7 層間だけ

Page 23: Image net classification with Deep Convolutional Neural Networks

Acceleration

• ReLU 非線形変換の入力は全部負だとダメ   → 近傍のフィルタの同じ座標の重みで正規化  予備実験では約 2%の性能向上

ReLU  非線形変換 GPU2 台の学習 Local Response

正規化Overlapping

Pooling

厚み: Nこの範囲で正規化する

Page 24: Image net classification with Deep Convolutional Neural Networks

Acceleration

• 近傍の出力をまとめる  出力 : 平均,最大値, etc…

• 一般的には範囲を分ける→Overlap させることでズレを吸収

   0.3~0.4%の性能向上

ReLU  非線形変換 GPU2 台の学習 Local Response

正規化Overlapping

Pooling

図 :3×3, Overlap 1 の例

図 :Pooling のイメージ

Page 25: Image net classification with Deep Convolutional Neural Networks

Reducing Overfitting

試験前に必死で勉強 とりあえず丸暗記 問題集は完璧!!

応用問題しか出ない 暗記だけだからヤバい 勉強しない方が良かった

Page 26: Image net classification with Deep Convolutional Neural Networks

Dropout

Reducing Overfitting

データの拡張  バリエーションを増やす  ラベルを保存するような変換1. トリミング +鏡像

訓練時:ランダムに切り取る

テスト時:中央+ 4隅2. 輝度の変更

主成分分析を利用ガウス分布から固有値を

抽出固有値と乱数で輝度を変

更約 1%の性能向上

Page 27: Image net classification with Deep Convolutional Neural Networks

Reducing Overfitting

データの拡張  バリエーションを増やす  ラベルを保存するような変換1. トリミング +鏡像

訓練時:ランダムに切り取る

テスト時:中央+ 4隅2. 輝度の変更

主成分分析を利用ガウス分布から固有値を

抽出固有値と乱数で輝度を変

更約 1%の性能向上

Dropout[3]• 出力の半分を 0 にする   CNNs なので重みは共有  → 他の部分で学習は可能  • 他ニューロン任せをやめる   NN sは影響度の高いニューロンに  学習をまかせてしまうことがある

  

Dropout なし

Dropout あり

図:手書き数字画像から得た特徴

Page 28: Image net classification with Deep Convolutional Neural Networks

Learning

Page 29: Image net classification with Deep Convolutional Neural Networks

Learning

• 学習アルゴリズム:確率的勾配降下法• 重みの初期化:平均 0 のガウス分布からサンプリング

• 学習回数: 90回2 台の GPU で 5 , 6日かかった

Page 30: Image net classification with Deep Convolutional Neural Networks

Result & Evaluation

Page 31: Image net classification with Deep Convolutional Neural Networks

Result

図: ILSVRC の結果

error rate

圧倒的なエラー率の低さ

Page 32: Image net classification with Deep Convolutional Neural Networks

Sub-Result

• CNNs の構造の変化に対する性能評価

*付きは 2011 年のデータも使って事前学習したものを利用

Page 33: Image net classification with Deep Convolutional Neural Networks

Qualitative Evaluation

• 1 層目が獲得した特徴– GPU1 :傾き– GPU2 :色

• 脳の視覚野にも異なる性質に反応する部位が存在↑GPU 間の通信を制限したことによるのではないか?

1 層目のレイヤーの出力.上 : GPU1 ,下 : GPU2

Page 34: Image net classification with Deep Convolutional Neural Networks

Application

Page 35: Image net classification with Deep Convolutional Neural Networks

  Summary

Page 36: Image net classification with Deep Convolutional Neural Networks

Sammary

実世界にも応用可能な識別問題を解くために

CNNs と Deep Learning を用いた巨大なネットワークを

GPU2 台の上に実装し

ImageNet のコンテストに応用したら

常識破りな結果が出ちゃった^^

Page 37: Image net classification with Deep Convolutional Neural Networks

Refference

[1]Deep Learning: A fast learning algorithm for deep belief nets, GE Hinton, S Osindero, YW Teh - Neural computation, 2006.

[2]CNNs: Face recognition: A convolutional neural-network approach, S Lawrence, CL Giles,et al. Neural Networks, IEEE Transactions on 1997参考 http://ceromondo.blogspot.jp/2012/09/convolutional-neural-network.html[3]Dropout:Improving neural networks by preventing co-adaptation of feature detectors, GE Hinton, N Srivastava, A Krizhevsky, et al. 2012