ディープラーニング

チュートリアル（もしくは研究動向報告）

岡谷 貴之 齋藤 真樹
東北大学

Deep Learningとは• Deep Learning = 多層ニューラルネットを使った機械学習の方法論• ニューラルネットの「ルネッサンス」…
…
…
…
Shallow NN…
Deep Neural Network (DNN)目次•

イントロダクション– DNNの事例紹介•

NN の基礎と研究の略史– なぜNN研究は廃れたか？

•

プレトレーニング– Encoder-decoder paradigm•

Convolutional Neural Networks (CNN)– プーリングと不変特徴– CNN vs. fully-connected NN•

ニューロサイエンス– どこまで分かっている？

•

生成モデル

– Restricted Boltzmann Machine (RBM)– Deep Belief Network (DBN)•

実践編– cuda-convnet を使ったMNISTの学習

•

まとめ

目次
•

イントロダクション– DNNの事例紹介•

NN の基礎と研究の略史– なぜNN研究は廃れたか？

•

プレトレーニング– Encoder-decoder paradigm•

Convolutional Neural Networks (CNN)– プーリングと不変特徴– CNN vs. fully-connected NN•

ニューロサイエンス– どこまで分かっている？

•

生成モデル

– Restricted Boltzmann Machine (RBM)– Deep Belief Network (DBN)•

実践編– cuda-convnet を使ったMNISTの学習•

まとめ事例１：画像特徴の無教師学習（Ng のグループ）
Le et al., Building High-level Features Using Large Scale Unsupervised Learning , ICML2012• 12層NNを使った無教師学習– パラメータ数10億個！
– 16コアPC1000台のPCクラスタ×3日間– YouTubeの画像1000万枚• 「おばあさん細胞」の生成を確認

The New York Times (2012/6/25)

顔人の体事例２: 一般物体認識（Hintonのグループ）
Krizhevsk et al., ImageNet Classification with Deep Convolutional Neural Networks, NIPS2012• IMAGENET Large Scale Visual Recognition Challenge 2012
– 1000カテゴリ・カテゴリあたり約1000枚の訓練画像
Team name

Error (5 guesses)

1SuperVision

0.153152ISI

0.26172

3

OXFORD_VGG

0.26979

4

XRCE/INRIA

0.27058

5

University of
Amsterdam

0.29576

6

LEAR-XRCE

0.34464“airliner”“accordion …”

7-layer NN

事例３：文字・画像認識（Schmidhuberのグループ＠IDSIA）• コンテスト1位– IJCNN 2011 Traffic Sign Recognition Competition; 1st(0.56%), 2nd (1.16%, Humans), 3rd (1.69%), 4th (3.86%)– ICPR 2012 Contest on “Mitosis Detection in Breast Cancer
Histological Images”– ISBI 2012 challenge on segmentation of neuronal
structures– ICDAR 2011 Offline Chinese Handwriting Competition– ICDAR2009• Arabic Connected Handwriting Competition• French Connected Handwriting Competition•

認識率最高位 (2012年11月時点)– NORB object recognition benchmark– CIFAR image classification benchmark– MNIST handwritten digits benchmark;“human-competitive result”

Ciresan et al., Multi-column Deep Neural Networks for Image Classification, CVPR2012

事例：音声認識（speech recognition）

Hinton et al., Deep Neural Networks for Acoustic Modeling in Speech Recognition, IEEE SP magazine, Nov. 2012

• 問題
– 入力：音声信号から取り出したMFCC (Mel-frequency cepstral coefficients)– 出力：HMMのステート• 過去のstate-of-the-art: GMM-HMM• 入出力関係をDNNで学習 → 30％の性能向上

事例：化合物反応予測

11/21/2012, The New York Times目次•

イントロダクション– DNNの事例紹介•

NN の基礎と研究の略史– なぜNN研究は廃れたか？

•

プレトレーニング– Encoder-decoder paradigm•

Convolutional Neural Networks (CNN)– プーリングと不変特徴– CNN vs. fully-connected NN•

ニューロサイエンス– どこまで分かっている？

•

生成モデル

– Restricted Boltzmann Machine (RBM)– Deep Belief Network (DBN)•

実践編– cuda-convnet を使ったMNISTの学習•

まとめ

NNの基本要素
非線形入出力のユニット

𝑦𝑦𝑗𝑗
𝑥𝑥𝑗𝑗

ネットワーク…
𝑥𝑥𝑗𝑗 = 𝑏𝑏𝑗𝑗 + � 𝑦𝑦𝑖𝑖 𝑤𝑤𝑖𝑖𝑖𝑖

𝑦𝑦𝑗𝑗 = 𝑓𝑓 𝑥𝑥𝑗𝑗

𝑖𝑖

activation function

𝑓𝑓 𝑥𝑥𝑗𝑗 =1
1 + 𝑒𝑒 −𝑥𝑥𝑗𝑗

𝑓𝑓 𝑥𝑥𝑗𝑗 = tanh 𝑥𝑥𝑗𝑗

𝑓𝑓 𝑥𝑥𝑗𝑗 = max 𝑥𝑥𝑗𝑗 , 0

𝑦𝑦𝑗𝑗
𝑥𝑥𝑗𝑗

𝑗𝑗

…
𝑤𝑤

𝑖𝑖𝑖𝑖

…

𝑖𝑖

NNの学習（分類問題の場合）
class probability

𝑝𝑝1 𝑝𝑝2“softmax”

𝑥𝑥1 𝑥𝑥2

𝐱𝐱

𝑝𝑝𝑛𝑛
𝑥𝑥𝑛𝑛

𝑤𝑤𝑖𝑖𝑖𝑖input pattern

𝑝𝑝𝑗𝑗 =

exp 𝑥𝑥𝑗𝑗∑𝑘𝑘 exp 𝑥𝑥𝑘𝑘

NNの学習（分類問題の場合）
学習サンプル 𝐱𝐱1 , 𝑦𝑦1 , … , 𝐱𝐱 𝑁𝑁 , 𝑦𝑦𝑁𝑁 を再現するようにネットワークの重みclass probability

𝑝𝑝1 𝑝𝑝2“softmax”

𝑥𝑥1 𝑥𝑥2

𝐱𝐱

𝑝𝑝𝑛𝑛
𝑥𝑥𝑛𝑛

𝑤𝑤𝑖𝑖𝑖𝑖input pattern

𝑝𝑝𝑗𝑗 =

exp 𝑥𝑥𝑗𝑗∑𝑘𝑘 exp 𝑥𝑥𝑘𝑘

𝑤𝑤𝑖𝑖𝑖𝑖 , 𝑏𝑏𝑗𝑗 を調節

誤差（＝cross entropy）を最小化

𝐶𝐶 = − � 𝑑𝑑𝑗𝑗 log𝑝𝑝𝑗𝑗
𝑗𝑗（理想的には全学習サンプルの総和）

勾配降下法
微分の連鎖計算→ backpropagation

NNの学習（分類問題の場合）
class probability

勾配効果法（GD）の実際

𝑝𝑝1 𝑝𝑝2

𝜕𝜕𝜕𝜕Δ𝑤𝑤𝑖𝑖𝑖𝑖 𝑡𝑡 = 𝛼𝛼Δ𝑤𝑤𝑖𝑖𝑖𝑖 𝑡𝑡 − 1 − 𝜖𝜖𝜕𝜕𝑤𝑤𝑖𝑖𝑖𝑖 (𝑡𝑡)“softmax”

𝑥𝑥1 𝑥𝑥2

𝐱𝐱

𝑝𝑝𝑛𝑛
𝑥𝑥𝑛𝑛

𝑤𝑤𝑖𝑖𝑖𝑖input pattern

𝑝𝑝𝑗𝑗 =

exp 𝑥𝑥𝑗𝑗∑𝑘𝑘 exp 𝑥𝑥𝑘𝑘

momentum

学習係数
learning rate

サンプル数増 → 勾配の計算コスト増大•

全サンプル使用＝batch•

1サンプルのみ（オンライン学習）＝確率的（stochastic GD）•

中間＝”mini batch”

NN研究の歴史

第1期
1960

1970

Perceptron[Rosenblatt57]

第2期「冬の時代」

1980

Back-propagation[Rumelhart+]

Simple/complex cells[Hubel-Wiesel59]“Linearly separable
patterns”[Minsky-Papert]

NIPS2000では，タイトルにNNという語を含む論文は採択率と負の相関がある，とまで言われる [Simard03]

第3期「冬の時代」

1990

2000

Convolutional NN[LeCun+89]

Neo-cognitron[Fukushima80]

2010“Layerwise pretraining”[Hinton+06]

Sparse coding[Olfhausen-Field96]

DNNの学習困難さ

Bengio, Learning Deep Architectures for AI, Foundations and Trends in Machine Learning, 2009

• 過学習：学習誤差は小さくなるが
テスト誤差は小さくならない– 結線の重みをランダムに初期化し，スタートした場合• 経験的知見＝「下層まで情報が伝わらない」– 「勾配が拡散する」• 訓練データを表現するのに，上位層のみで事足りる

…
…
…
…
…

「冬の時代」の終焉• DNNは学習が困難– 過学習「層ごとのプレトレーニング」をやれば大丈夫！ [Hinton+06]• 計算量– Backpropagation の計算量は膨大
計算能力向上；GPU や PCクラスタの登場• 性能を引き出すのに必要なノウハウ（「黒魔術」）– 学習係数，モメンタム，ネットワーク構造など無数のパラメータ？？？（進歩していない？）

NN研究の歴史

第1期
1960

1970

Perceptron[Rosenblatt57]

第2期「冬の時代」

1980

Back-propagation[Rumelhart+]

Simple/complex cells[Hubel-Wiesel59]“Linearly separable
patterns”[Minsky-Papert]

第3期「冬の時代」

1990

2000

Convolutional NN[LeCun+89]

Neo-cognitron[Fukushima80]

2010“Layerwise pretraining”[Hinton+06]

Sparse coding[Olfhausen-Field96]

目次•

イントロダクション– DNNの事例紹介•

NN の基礎と研究の略史– なぜNN研究は廃れたか？

•

プレトレーニング– Encoder-decoder paradigm•

Convolutional Neural Networks (CNN)– プーリングと不変特徴– CNN vs. fully-connected NN•

ニューロサイエンス– どこまで分かっている？

•

生成モデル

– Restricted Boltzmann Machine (RBM)– Deep Belief Network (DBN)•

実践編– cuda-convnet を使ったMNISTの学習•

まとめ

DNNのプレトレーニング• プレトレーニング– 入力データの集合を再現できるように 教師無学習– 入力層から順番に層ごとに実行

…
copy
…
copy
…

𝐖𝐖1

𝐖𝐖2

𝐖𝐖3

…

プレトレーニング（教師なし学習）

…

…

𝐖𝐖3

…

𝐖𝐖2

…

𝐖𝐖1

𝐖𝐖4 ← init
…

𝐖𝐖3

…

𝐖𝐖2

…

𝐖𝐖1

ファインチューニング
（教師あり学習）各層の教師無学習• 入力データの集合を最もよく再現できるように学習– Encoder-decoder• オートエンコーダ（Autoencoder）–

もう一つの方法：Restricted Boltzmann Machine (RBM)→ 「生成モデル」で説明

min � 𝐱𝐱 𝑖𝑖 − 𝑓𝑓𝑓(𝐖𝐖 ′ 𝑓𝑓(𝐖𝐖𝐱𝐱𝑖𝑖 )) 2

𝑾𝑾,𝑾𝑾𝑾𝐡𝐡 = 𝑓𝑓(𝐖𝐖𝐖𝐖)

𝐡𝐡
𝐖𝐖

𝐱𝐱

𝑖𝑖

…

𝐖𝐖𝐖

𝐲𝐲 = 𝑓𝑓𝑓(𝐖𝐖 ′ 𝐡𝐡)

𝐲𝐲

⟺

𝐖𝐖𝐖
𝐖𝐖
𝐱𝐱

…

𝐡𝐡

プレトレーニングの効果• プレトレーニングしておくと過学習が防げる– プレトレーニングで得たウェイトを初期値に• 画像認識の state-of-the-artはすべてConvolutional Neural Network– プレトレーニング不要– 80年代にすでに多層の学習に成功していた！[LeCun+89]
音声認識

画像認識
カテゴリ

データ

著者等

方法

一般物体認識ILSVRC2012

Supervision

CNN w/o pretraining

CIFAR10

Ciresan+12

CNN w/o pretraining

NORB

Ciresan+12

CNN w/o pretraining

「猫細胞」

Le+12

再構成TICA pretraining

MNIST

Ciresan+12

CNN w/o pretraining

HWDB1.0

Ciresan+12

CNN w/o pretraining

文字認識

目次
•

イントロダクション– DNNの事例紹介•

NN の基礎と研究の略史– なぜNN研究は廃れたか？

•

プレトレーニング– Encoder-decoder paradigm•

Convolutional Neural Networks (CNN)– プーリングと不変特徴– CNN vs. fully-connected NN•

ニューロサイエンス– どこまで分かっている？

•

生成モデル

– Restricted Boltzmann Machine (RBM)– Deep Belief Network (DBN)•

実践編– cuda-convnet を使ったMNISTの学習•

まとめConvolutional Neural Network (CNN)

第1期
1960

1970

Perceptron[Rosenblatt57]

第2期「冬の時代」

1980

Back-propagation[Rumelhart+]

Simple/complex cells[Hubel-Wiesel59]“Linearly separable
patterns”[Minsky-Papert]

第3期「冬の時代」

1990

2000

Convolutional NN[LeCun+89]

Neo-cognitron[Fukushima80]

2010“Layerwise pretraining”[Hinton+06]

Sparse coding[Olfhausen-Field96]

Convolutional Neural Network (CNN)••

Neocognitronにルーツ [Fukushima80]
Backpropagationによる教師有学習と手書き文字認識への応用 [LeCun+89]–

Backpropagation Applied to Handwritten Zip Code Recognition, Neural Computation, 1989

• 神経科学の知見が基礎– Hubel-Wiesel の単純細胞・複雑細胞– 局所受容野（local receptive field）[Fukushima+83][LeCun+89]

Convolutional Neural Network (CNN)
5

5

8

＝

8

32
32

4×4→1

＊

＝

…

…

…

8×8×N

＝
N features(kernel)N mapsConvolution

Pooling• local receptive field• tied weights• local receptive field• fixed weights

Convolutional Neural Network (CNN)
5
32
32

5

8

＝

8

＋

特徴抽出
＊

＝

4×4→1
シフト不変性

…

…

…

8×8×N

＝
N features(kernel)N maps

微小変位に対する不変性を獲得
Convolution• local receptive field• shared weights

Pooling…

• local receptive field• fixed weights

Convolutional Neural Network (CNN)• Convolution + pooling を繰り返す（＝ Deep CNN）ことで，多様な変形に対する不変性を獲得• 学習可能– 対象：フィルタの係数，方法：バックプロパゲーション
32
5
5
3

32

3

3
3
32

convolution(32 filters)

16

5
5

3
3
32

max
pooling(2:1)
rect. lin.

32
resp.
norm.

3
3
32

32

convolution(32 filters)
rect. lin.

8

5
5

3
3
32

max
pooling
(2:1)

32
resp.
norm.

CIFAR10用 CNN [Krizhevsk+11]

32

convolution(64 filters)

3
3

4

4

64

64
10

avg.
pooling
(2:1)

fully
connectedlayerプーリング[Boureau+CVPR10] [Jerrett+09] [Scherer+10] [Boureau+ICML10]• プーリングの種類– 平均プーリング，MAXプーリング，L2(Lp)プーリング• プーリングの目的 ＝ 不変性の獲得– 局所パタンの並進・回転・スケール倍・それ以上？

• 物体認識の要諦– 弁別力と不変性の両立“Television set”

非NNの方法とプーリング• 一般物体認識でおなじみ– SIFT [Rowe99]（ディスクリプタの生成）– Bag of Features– Spatial pyramid [Lezebnik+06]

Image

Local features[Rowe99]

Visual words(Vocabulary)

Global feature[Lezebnik+06]

事例２: 一般物体認識（Hintonのグループ）
Krizhevsk et al., ImageNet Classification with Deep Convolutional Neural Networks, NIPS2012• IMAGENET Large Scale Visual Recognition Challenge 2012
– 1000カテゴリ・カテゴリあたり約1000枚の訓練画像
Team name

Error (5 guesses)

OXFORD_VGG

0.26979「さらなるデータと，もっと早いGPUが手に入れば，
1SuperVision
0.15315
ただちに一層の性能向上が可能」
2
ISI[Krizhevsky+12]0.26172
3• ネットワーク大規模化 → 潜在的な認識能力向上 ＋ 過学習
4
XRCE/INRIA
0.27058
リスク増大•

5University of
0.29576
大量データ → 過学習のリスクを低減できる＋ 計算時間がAmsterdam

かかる

6

LEAR-XRCE“airliner”“accordion …”

7-layer NN

0.34464

CNN vs. Fully-connected NN
CNN

Fully-connected NN• プレトレーニング不要• プレトレーニング有効– local RF, tied weights– “prewired”• アーキテクチャ設計の難しさ– フィルタサイズ・ストライ
ド・マップ数– プーリングサイズ・ストラ
イド– 以前は必須と考えられていたが，そうでもないらしい• 別の方法– Drop-out: Fully-connect
NN の過学習を避ける学習
方法 [Hinton12]– discrimintiveプレトレーニ
ングランダムフィルタ：アーキテクチャの重要性
Jarrett et al., What is the best multi-stage architecture for object recognition? ICCV09• フィルタをランダムとし，最上位層の fully-connected 層のみ学習
random filters

convolution

random filters

supervised learning

convolution

pooling fully-connected

poolingNORB

Caltech-101
アーキテクチャ

ランダム
フィルタ

フィルタも
学習

2層，絶対値プーリング

62.9%

64.7%

2層，平均プーリング

19.6%

31.0%

1層，絶対値プーリング

53.3%

54.8%

ランダムフィルタ：アーキテクチャの重要性
Saxe et al., On random weights and unsupervised feature learning, ICML2010••

学習アルゴリズムよりもアーキテクチャがずっと大事
プーリング層のユニットが最も反応する最適入力：[Jarrett+09]– 理論的説明 [Saxe+10]

学習
ランダムフィルタ

•最適入力

学習後フィルタ

アーキテクチャの性能予測をランダムフィルタで [Saxe+10]– アーキテクチャ探索時間を節約可

最適入力

CNN の改良例：Tiled CNN
Le et al., Tiled convolutional neural networks, NIPS2010• CNNでは単純なシフト不変性しか獲得できない– 局所受容野＋tied weights• Tiled CNN– 場所ごとに違うフィルタ ← より複雑な変形に対する不変性の獲得– Topographic ICA (TICA)
CNN

tied weights

pooling(fixed)

Tiled CNN

partially tiedpooling(fixed)目次•

イントロダクション– DNNの事例紹介•

NN の基礎と研究の略史– なぜNN研究は廃れたか？

•

プレトレーニング– Encoder-decoder paradigm•

Convolutional Neural Networks (CNN)– プーリングと不変特徴– CNN vs. fully-connected NN•

ニューロサイエンス– どこまで分かっている？

•

生成モデル

– Restricted Boltzmann Machine (RBM)– Deep Belief Network (DBN)•

実践編– cuda-convnet を使ったMNISTの学習•

まとめ脳の視覚情報処理

DiCarlo, Zoccolan, Rust, How does the brain solve visual object recognition?, Neuron, 2012

• 視覚野（腹側皮質視覚路 ）の構造
– フィードフォワードで伝播– 階層性：単純な特徴抽出 → 複雑なものへ– IT野での処理：「おばあさん細胞」仮説と「population code」仮説[Dicarlo+12]

V1• ガボールウェーブレット• Simple cells/complex cells– 位置 / 向き / スケール– Topographic map[Huber-Wiesel59]

scaleorientation

Kavukcuoglu, Ranzato, Fergus, LeCun, Learning Invariant
Features through Topographic Filter Maps, CVPR09

Serre et al, Object Recognition with Features
Inspired by Visual Cortex, CVPR05

スパースコーディング
Olshausen, Field, Sparse Coding with an Overcomplete Basis Set: a Strategy Employed by V1?, Vis. Research96

Natural image patches{𝐱𝐱 𝑖𝑖 }1
min � 𝐱𝐱 𝑖𝑖 − 𝐃𝐃𝐡𝐡𝑖𝑖 22 + 𝜆𝜆 𝐡𝐡𝑖𝑖 1
𝐃𝐃,𝐡𝐡
2
𝑖𝑖

過完備性

（overcomplete）

𝐃𝐃 = 𝐝𝐝1 , … , 𝐝𝐝𝑛𝑛 ⊤≈ 0.8 *

スパースコード 𝐡𝐡 =+ 0.3 *

+ 0.5 *

[0, 0, …, 0, 0.8, 0, …, 0, 0.3, 0, …, 0, 0.5, …]

Figs from [Yu and Ng, Feature learning for image classification, Tutorial, ECCV10]

スパースオートエンコーダ

Ranzato et al., Efficient learning of sparse representations with an energy-based model, NIPS06 他• 出力層のユニットの反応がスパースになるように正則化– 過完備性min � 𝐱𝐱 𝑖𝑖 − 𝑓𝑓𝑓(𝐖𝐖 ′ 𝑓𝑓(𝐖𝐖𝐱𝐱 𝑖𝑖 )) 2 + � 𝑔𝑔(𝑓𝑓 𝐖𝐖𝐱𝐱 𝑖𝑖

𝑾𝑾,𝑾𝑾𝑾

𝐖𝐖

𝒊𝒊

𝑖𝑖

𝐡𝐡𝑖𝑖

𝐱𝐱 𝑖𝑖

入力データ

…

𝐖𝐖𝐖

スパース項ありスパース項なし

e.g.

𝑛𝑛
𝝐𝝐
1
� 𝐡𝐡𝑖𝑖 ∼ ⋮
𝑛𝑛
𝝐𝝐
𝑖𝑖

Topographic ICA

Hyvarinen and Hoyer, A two-layer sparse coding model learns simple and complex cell…, Vision Research, 2001

• 隣接ユニットの特徴（フィルタ）が類似するように
min �
𝐖𝐖

プーリング層𝐖𝐖𝐖(fixed)
フィルタ層

𝐖𝐖

𝑖𝑖

𝑖𝑖

ℎ𝑗𝑗

𝐱𝐱

′ 2
� 𝑤𝑤𝑖𝑖𝑖𝑖ℎ𝑗𝑗 ,𝑗𝑗∈𝑃𝑃𝑖𝑖

𝑠𝑠. 𝑡𝑡. 𝐖𝐖 ⊤ 𝐖𝐖 = 𝐈𝐈

′ 2
� 𝑤𝑤𝑖𝑖𝑖𝑖ℎ𝑗𝑗

𝑗𝑗∈𝑃𝑃𝑖𝑖𝐡𝐡 = 𝐖𝐖𝐖𝐖[Kavukcuoglu09]

局所コントラスト正規化

Schwartz, Simoncelli, Natural signal statistics and sensory gain control, Nature neuroscience, 2001

• 視覚野ニューロンの挙動のモデル

ボックス領域内の平均が０，分散がある値以上ならそ
れが１になるように正規化[Schwarts-Simoncelli01]– 画像認識でも効果– 自然画像統計に基づく説明 [Schwartz-Simoncelli01]

事例１：画像特徴の無教師学習（Ng のグループ）
Le et al., Building High-level Features Using Large Scale Unsupervised Learning , ICML2012• 12層NNを使った無教師学習– パラメータ数10億個！
– 16コアPC1000台のPCクラスタ×3日間– YouTubeの画像1000万枚• 「おばあさん細胞」の生成を確認

The New York Times (2012/6/25)

顔人の体脳の視覚情報処理

DiCarlo, Zoccolan, Rust, How does the brain solve visual object recognition?, Neuron, 2012

• 視覚野（腹側皮質視覚路 ）の構造
– フィードフォワードで伝播– 階層性：単純な特徴抽出 → 複雑なものへ– IT野での処理：「おばあさん細胞」仮説と「population code」仮説[Dicarlo+12]一般物体認識は脳でどのように行われるか？
• “The brain’s bag of features is better than ours.”• サルに画像を提示；脳のV1,V2,V4,IT野の活動パタンを計測• IT野の計測パタン由来の”code”をSVMで分類すると，人と同じ認識性能を達成できる96 electrode arrays

Mean performance of code

– V4野までの”code”ではできない

IT based codes

V4 based codes
Computer vision
feature-based codes
V1-like based codes
Pixel based codes

Consistency of code
ICCV2011でのJames DiCarloによるキーノート講演スライドから（上の図は筆者の不正確なスケッチです）
http://www.iccv2011.org/authors/oral-presentations/thursday

V2 のモデル

Lee et al., Sparse deep belief net model for visual area V2, NIPS08• スパースRBM を使った V2 のモデル
– 現実のV2ニューロンの応答[Ito-Komatsu04]を再現– V1より複雑な形（アングルやジャンクション）に反応

200

…

400

…

14×14

2nd layer
optimal inputs
自然画像

1st layer目次•

イントロダクション•

NN の基礎と研究の略史•

DNN のプレトレーニング•

Convolutional Neural Networks (CNN)– 事例紹介– なぜNN研究は廃れたか？
– オートエンコーダ––––

プーリングと不変特徴
ネットワークアーキテクチャの重要性
CNNの改良プレトレーニングの必要性•

ニューロ・ビジョンサイエンスのアプローチ

•

生成モデル

•

実践編（ソフトウェア紹介）•まとめ– 明らかになっていること– Restricted Boltzmann Machine (RBM), Deep Belief Network (DBN)– Theano– cuda-convnet

生成モデルを用いたディープラーニング
齋藤 真樹(東北大学)

目次
1. 生成モデル
2. Restricted Boltzmann Machine
3. Deep Belief Network
4. 生成モデルの例

1. 生成モデル

生成モデルを用いたディープラニング
これまで説明したディープラーニングの手法は，ネットワークのふるまいは決定論的に記述される:

𝑓𝑓 𝐯𝐯

生成モデルを用いたディープラーニングの手法では，
ネットワークのふるまいを確率的にとらえる:

𝑝𝑝 𝐯𝐯, 𝐡𝐡𝐡𝐡生成モデルの推定と学習• 推定には，入力が与えられた際の隠れ層の条件付き確率を用いる

𝑝𝑝(𝐡𝐡|𝐯𝐯)𝐡𝐡• パラメータの学習には，学習サンプルによって得られた観測分布に
生成モデルを近づけることで行う
観測分布

モデル分布

𝐡𝐡は見えないので周辺化

𝑝𝑝 𝐯𝐯 = � 𝑝𝑝(𝐯𝐯, 𝐡𝐡)
𝐡𝐡

𝐯𝐯

𝐯𝐯

生成モデルの利点
1. 入力データそれ自体をモデルから生成できる–

隠れ層の学習結果を可視化しやすい

2. すべてを統計的な枠組みで議論できる–

推論やパラメータ学習などの各手法をシステマチックに求められる
0𝑝𝑝(𝐯𝐯)
サンプリング

1

0

1

0

0

0

𝑝𝑝(𝐯𝐯|𝐡𝐡)𝑝𝑝(𝐯𝐯|𝐡𝐡)エネルギー関数を元にしたモデリング• 確率分布をエネルギー関数を用いてモデリング• エネルギー関数によって同時確率変数が定まる構造

1
𝑝𝑝 𝐯𝐯, 𝐡𝐡; 𝜃𝜃 =exp −𝐸𝐸(𝐯𝐯, 𝐡𝐡; 𝜃𝜃)
𝑍𝑍(𝜃𝜃)
𝑍𝑍 𝜃𝜃 = � � exp −𝐸𝐸(𝐯𝐯, 𝐡𝐡; 𝜃𝜃)
𝑣𝑣

ℎ

𝐡𝐡

𝐯𝐯

𝐸𝐸(𝐯𝐯, 𝐡𝐡; 𝜃𝜃)

ボルツマン分布
正規化定数(分配関数)

𝑝𝑝(𝐯𝐯, 𝐡𝐡; 𝜃𝜃)尤度最大化による学習，KL距離最小化• 対数尤度の最大化でパラメータを学習

対数尤度

𝜃𝜃

𝜃𝜃 ∗

KL距離

𝜃𝜃 ∗ = argmax � ln 𝑝𝑝(𝐯𝐯 𝑛𝑛 ; 𝜃𝜃)𝜃𝜃𝑛𝑛• 対数尤度最大化はKL距離の最小化と等価– 𝑝𝑝(𝐯𝐯; 𝜃𝜃)を観測分布𝑝𝑝0 に近づける– KL距離: 確率分布間の近さを測る指標𝜃𝜃 ∗ = argmin 𝒟𝒟[𝑝𝑝0 (𝐯𝐯)||𝑝𝑝(𝐯𝐯; 𝜃𝜃)]
𝜃𝜃

𝜃𝜃

𝜃𝜃 ∗

1
𝑝𝑝0 𝐯𝐯 = � 𝛿𝛿(𝐯𝐯 − 𝐯𝐯 𝑛𝑛 )
𝑁𝑁
𝑛𝑛

観測分布
(観測データで定められる分布)

Kullback-Leibler(KL)距離••

KL距離: 確率分布間の近さを測る指標
KL距離の最小化 : モデル分布𝑝𝑝を観測分布𝑝𝑝0 にできるだけ近づける
観測分布(観測データで定められる分布)𝑝𝑝0 (𝐯𝐯)

𝒟𝒟[𝑝𝑝0 (𝐯𝐯)||𝑝𝑝(𝐯𝐯; 𝜃𝜃)]
モデル分布
(パラメータで定められる分布)𝑝𝑝(𝐯𝐯; 𝜃𝜃)𝑝𝑝(𝐯𝐯; 𝜃𝜃)が動ける範囲

勾配法による最小化• 勾配法によってパラメータを求める

𝜕𝜕𝒟𝒟
𝜕𝜕𝜕𝜕
=
𝜕𝜕𝜃𝜃
𝜕𝜕𝜕𝜕

正項(Positive Phase)data

𝑝𝑝data = 𝑝𝑝0 𝐯𝐯 𝑝𝑝(𝐡𝐡|𝐯𝐯; 𝜃𝜃)
正項の計算

𝜕𝜕𝜕𝜕
−
𝜕𝜕𝜕𝜕

model

⋅ は期待値をあらわす

負項(Negative Phase)

負項の計算

𝑝𝑝model = 𝑝𝑝(𝐯𝐯, 𝐡𝐡; 𝜃𝜃)

収束するまで反復パラメータ更新

2. RESTRICTED BOLTZMANNMACHINE

Restricted Boltzmann Machine(RBM)• 最も単純なボルツマンマシンの一つ• 多層でない．入力層同士，隠れ層同士に結合が存在しない• 𝑣𝑣𝑖𝑖 , ℎ𝑗𝑗 はそれぞれ{0, 1}の二値をとるものとするℎ
𝑣𝑣⃗

𝐸𝐸 𝐯𝐯, 𝐡𝐡; 𝜃𝜃 = − � 𝑏𝑏𝑖𝑖 𝑣𝑣𝑖𝑖 − � 𝑐𝑐𝑗𝑗 ℎ𝑗𝑗 − � 𝑣𝑣𝑖𝑖 𝑊𝑊𝑖𝑖𝑖𝑖 ℎ𝑗𝑗
𝑖𝑖

𝑗𝑗

バイアス

𝑖𝑖,𝑗𝑗

ウェイト

RBMの推論☺

RBMの性質から𝑝𝑝 𝐡𝐡 𝐯𝐯; 𝜃𝜃 , 𝑝𝑝(𝐯𝐯|𝐡𝐡; 𝜃𝜃)は解析的に計算可能

容易に計算できる

𝑝𝑝 ℎ𝑗𝑗 = 1 𝐯𝐯; 𝜃𝜃 = 𝜎𝜎 𝑐𝑐𝑗𝑗 + � 𝑣𝑣𝑖𝑖 𝑊𝑊𝑖𝑖𝑖𝑖
推論に使用

𝑗𝑗

𝑝𝑝 𝑣𝑣𝑖𝑖 = 1 𝐡𝐡; 𝜃𝜃 = 𝜎𝜎 𝑏𝑏𝑖𝑖 + � 𝑊𝑊𝑖𝑖𝑖𝑖 ℎ𝑗𝑗
𝑗𝑗

☺
☹

RBMの学習(ギブスサンプリング)
正項に関しては，RBMの性質から解析的に計算可能負項に関しては，計算コストが指数的に増大するため困難• ギブスサンプリング法を用いて近似的に負項を求める

𝑣𝑣0

𝑝𝑝(𝐡𝐡|𝐯𝐯)

𝐯𝐯01 = 𝐯𝐯1

𝐯𝐯0𝑁𝑁 = 𝐯𝐯 𝑁𝑁ℎ1 𝑝𝑝(𝐯𝐯|𝐡𝐡)

𝐡𝐡11

𝐡𝐡1𝑁𝑁

𝑣𝑣1

𝐯𝐯11

𝐯𝐯1𝑁𝑁

…
…

𝑣𝑣𝑇𝑇

𝐯𝐯𝑇𝑇1

𝐯𝐯𝑇𝑇𝑁𝑁RBMの学習(ギブスサンプリング)• 𝑇𝑇 → ∞の極限において，𝐯𝐯𝑇𝑇 は分布𝑝𝑝(𝐯𝐯; 𝜃𝜃)に従う– 𝑝𝑝(𝐯𝐯; 𝜃𝜃)に近い分布𝑝𝑝𝑇𝑇 (𝐯𝐯)を生成，近似的に負項を計算

𝑣𝑣𝑇𝑇
𝐯𝐯𝑇𝑇1

𝐯𝐯𝑇𝑇𝑁𝑁

𝑝𝑝model ≈ 𝑝𝑝𝑇𝑇 𝐯𝐯 𝑝𝑝(𝐡𝐡|𝐯𝐯; 𝜃𝜃)
𝑝𝑝𝑇𝑇 𝐯𝐯

𝑝𝑝model 𝐯𝐯, 𝐡𝐡

RBMの学習(Contrastive Divergence(Hinton, 2002))
𝑇𝑇を有限回で打ち切った場合は？

Contrastive Divergenceと呼ばれる目的関数の最小化に対応
観測分布

𝑇𝑇 → ∞𝑇𝑇 ∈ ℕ

モデル分布

argmin 𝒟𝒟 𝑝𝑝0 (𝐯𝐯)||𝑝𝑝(𝐯𝐯; 𝜃𝜃)𝜃𝜃

T回のサンプリングで生成した分布

モデル分布

argmin 𝒟𝒟 𝑝𝑝0 (𝐯𝐯)||𝑝𝑝(𝐯𝐯; 𝜃𝜃) − 𝒟𝒟 𝑝𝑝𝑇𝑇 (𝐯𝐯)||𝑝𝑝(𝐯𝐯; 𝜃𝜃)𝜃𝜃

サンプル数が十分多く
𝑇𝑇 → ∞のとき0となる

RBMの学習(Contrastive Divergence(Hinton, 2002))
𝑇𝑇を有限回で打ち切った場合は？

Contrastive Divergenceと呼ばれる目的関数の最小化に対応

𝑇𝑇 ∈ ℕargmin 𝒟𝒟 𝑝𝑝0 (𝐯𝐯)||𝑝𝑝(𝐯𝐯; 𝜃𝜃) − 𝒟𝒟 𝑝𝑝𝑇𝑇 (𝐯𝐯)||𝑝𝑝(𝐯𝐯; 𝜃𝜃)𝜃𝜃

観測分布
T回のサンプリングで生成した分布

モデル分布

𝑝𝑝0 (𝐯𝐯)

𝑝𝑝𝑇𝑇 (𝐯𝐯)𝑝𝑝(𝐯𝐯; 𝜃𝜃)RBMの学習(Contrastive Divergence(Hinton, 2002))• 𝑇𝑇を有限回で打ち切った場合のパラメータの更新則は，Contrastive Divergenceを目的関数とした最小化に対応する．

• RBMは𝑇𝑇 = 1でも精度のよい学習結果が得られる

𝑣𝑣0

𝑝𝑝(𝐡𝐡|𝐯𝐯)

𝐯𝐯01 = 𝐯𝐯1

𝐯𝐯0𝑁𝑁 = 𝐯𝐯 𝑁𝑁ℎ1 𝑝𝑝(𝐯𝐯|𝐡𝐡)

𝐡𝐡11

𝐡𝐡1𝑁𝑁

𝑣𝑣1

𝐯𝐯11

𝐯𝐯1𝑁𝑁

𝑝𝑝model 𝐯𝐯, 𝐡𝐡

RBMの学習(負項の近似: Persistent CD(Tieleman, 2009))• Persistent CD: Contrastive Divergenceを改良• 𝐯𝐯1 を次回のパラメータ更新の際に使用

CD法

𝑣𝑣0

CD

𝑣𝑣1

パラメータ
更新

𝑣𝑣1

パラメータ
更新

𝑣𝑣0

CD

𝑣𝑣1

パラメータ
更新

…

𝑣𝑣2

パラメータ
更新

…

PCD法

𝑣𝑣0

CD

𝑣𝑣1

CD

…

3. DEEP BELIEF NETWORKDeep Belief Network(Hinton, 2006)
𝐡𝐡3

𝐡𝐡2

𝐡𝐡1

• ディープラーニング流行のきっかけ• 上層間だけ無向，それ以外は有向のグラフィカルモデル• 学習をプレトレーニングと微調整の2段階に分ける𝐯𝐯

𝐿𝐿−2

𝑝𝑝 𝐯𝐯, 𝐡𝐡; 𝜃𝜃 = 𝑝𝑝(𝐯𝐯|𝐡𝐡1 ) � 𝑝𝑝 𝐡𝐡𝑙𝑙 𝐡𝐡𝑙𝑙+1
𝑙𝑙=1

𝜎𝜎 𝑐𝑐𝑖𝑖𝑙𝑙 + � 𝑊𝑊𝑖𝑖𝑖𝑖𝑙𝑙+1 ℎ𝑗𝑗𝑙𝑙+1
𝑗𝑗

RBMの条件付き確率と同じ

𝑝𝑝(𝐡𝐡𝐿𝐿−1 , 𝐡𝐡𝐿𝐿 )RBMの結合確率密度と同じ

☹

Deep Belief Networkの推論
周辺分布𝑝𝑝(𝐡𝐡3 |𝐯𝐯)は解析的に計算できない

近似分布𝑞𝑞 を導入し，入力層から隠れ層まで伝搬

𝑝𝑝(𝐡𝐡2 |𝐡𝐡3 )𝑞𝑞(𝐡𝐡3 |𝐡𝐡2 )𝑝𝑝(𝐡𝐡1 |𝐡𝐡2 )𝑞𝑞(𝐡𝐡2 |𝐡𝐡1 )𝑝𝑝(𝐯𝐯|𝐡𝐡1 )1 |𝐯𝐯)𝑞𝑞(𝐡𝐡

𝑞𝑞 ℎ𝑗𝑗𝑙𝑙 = 1 𝐡𝐡𝑙𝑙−1 = 𝜎𝜎 𝑐𝑐𝑗𝑗𝑙𝑙 + � ℎ𝑖𝑖𝑙𝑙−1 𝑊𝑊𝑖𝑖𝑖𝑖𝑙𝑙
𝑖𝑖DBNの学習(プレトレーニング)• RBMを用いて逐次的にトレーニングを行う• プレトレーニングによる学習は，対数尤度を必ず増加させる

Copy

𝑊𝑊

𝑊𝑊 2

𝑊𝑊 3

𝑊𝑊 3

𝑊𝑊 2

Copy

1

ln 𝑝𝑝1<𝑊𝑊 1

ln 𝑝𝑝2<ln 𝑝𝑝3

DBNの学習(微調整)1.
2.

DBN全体の尤度を最大化するように調整
決定論的な別の構造(Neural Net等)に写し，その中で教師付き学習を行う
尤度最大化

𝜃𝜃

𝜃𝜃 ∗

教師付き学習(NN)

識別用の
層を追加

4. 生成モデルの例

Deep Boltzmann Machine(MNIST)• 2層と3層のDBMモデルを，MNIST(手書き数字のデータセット)で学習• ギブスサンプリングを用いて𝑝𝑝(𝐯𝐯)のサンプルを生成

200

282 = 784

ウェイト数 ≈ 1.57 × 105

𝑝𝑝(𝐯𝐯)

90180

282 = 784

ウェイト数 ≈ 1.57 × 105

学習データ

…

𝑝𝑝(𝐯𝐯)

Deep Boltzmann Machine(MNIST)• 2層と3層のDBMモデルを，MNIST(手書き数字のデータセット)で学習• ギブスサンプリングを用いて𝑝𝑝(𝐯𝐯)のサンプルを生成

2層

3層

Shape Boltzmann Machine(Eslami et. al., 2012)• 隠された領域を復元する生成モデル．ボルツマンマシンを使用• 汎化能力に優れる• パラメータを削減するため，局所的に結合した生成モデルを提案

学習データ
…

Convolutional DBN(Lee et. al. 2009)• Convolutional NNのモデルを生成モデルに対して応用• max-poolingを組み込む目的で，probabilistic max-poolingを提案

学習データ

目次
•

イントロダクション– DNNの事例紹介•

NN の基礎と研究の略史– なぜNN研究は廃れたか？

•

プレトレーニング– Encoder-decoder paradigm•

Convolutional Neural Networks (CNN)– プーリングと不変特徴– CNN vs. fully-connected NN•

ニューロサイエンス– どこまで分かっている？

•

生成モデル

– Restricted Boltzmann Machine (RBM)– Deep Belief Network (DBN)•

実践編– cuda-convnet を使ったMNISTの学習•

まとめcuda-convnet

http://code.google.com/p/cuda-convnet/• ILSVRC2012チャンピオンのSupervisionチームのコード• nVidia GTX580系統のGPU• Linux と CUDA

cuda-convnet

http://code.google.com/p/cuda-convnet/

1.

データファイル作成– Python のリスト（サンプルはランダムに並べる）を作り，cPickle で複数ファイル（batchと呼ぶ）に分割してセーブ– 複数個の訓練用 batch と１つ以上のテス
ト用 batch2.

データ読み込み関数を書く

3.

アーキテクチャを考える

4.

学習の実行

– データサイズとプレーン数，正規化の有無– 訓練用バッチのうち１つをvalidation用– テスト誤差が減少し続けるまで，反復学
習（数10～数100エポック）– 全バッチを使って反復学習– 学習係数を小さくし，複数回（10エポッ
ク程度）反復学習
– 終了

MNIST

グレーレベル28×28
60000訓練・10000テスト
サンプル → 訓練用6 batch
テスト用1 batchcuda-convnet

http://code.google.com/p/cuda-convnet/

誤答率1.1%Best result: 0.3%
(＞人間)

目次
•

イントロダクション– DNNの事例紹介•

NN の基礎と研究の略史– なぜNN研究は廃れたか？

•

プレトレーニング– Encoder-decoder paradigm•

Convolutional Neural Networks (CNN)– プーリングと不変特徴– CNN vs. fully-connected NN•

ニューロサイエンス– どこまで分かっている？

•

生成モデル

– Restricted Boltzmann Machine (RBM)– Deep Belief Network (DBN)•

実践編– cuda-convnet を使ったMNISTの学習

•

まとめ

まとめ
• DNNは大きな成果を上げている– 既存手法の性能比で大きなマージン– まだ性能向上の余地• 特に大きな理論的進展があったわけではない（今となっては）– プレトレーニングは必要か？
– CNN は80年代後半からほとんど変わらず– 「やればできる」ことがわかったこと・計算機の性能向上• 性能を引き出すためのノウハウが必要なのは昔と変わらない• エンジニアリングの勝負になるかもしれない– 大規模NNによる大規模データを使った学習– 認識性能上げたい → NN多層化 → 過学習のリスク → 学習データ量増やす → 計算性能必要• Representation/feature learning への期待
– semi-supervised / transfer / self-taught learning

“Representation(Feature) learning”
Bengio, Representation Learning: A Review and New Perspective, arXiv, Oct 2012

• 特徴抽出器を hand-craft or 学習で見つける？
• 複雑な問題 → 何を取り出したらいいかわからない
Kinect Mocap

Schotton et al., Real-Time Human Pose Recognition in Parts froma Single Depth Image, CVPR2011

マテリアル分類，質感の画像認識

Liu et al., Exploring Features in a Bayesian Framework forMaterial Recognition, CVPR2010

“Representation(Feature) learning”
Bengio, Representation Learning: A Review and New Perspective, arXiv, Oct 2012

• 特徴抽出器を hand-craft する or 学習で見つける？
• 複雑な問題 → 何を取り出したらいいかわからない
人の行動認識Le et al., Learning hierarchical invariant spatio-temporalfeatures for action recognition
with independent subspace analysis, CVPR2011
Taylor et al., Convolutional Learning of Spatio-temporal Features, ECCV2010