「深層学習」第6章 畳込みニューラルネット

Post on 16-Apr-2017

32.811 Views

Category:

Data & Analytics

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

第6章 畳込みニューラルネット

2015.7.15 wed.@kenmatsu4

自己紹介・Twitterアカウント    @kenmatsu4

・Qiitaでブログを書いています(統計、機械学習、Python等)

   http://qiita.com/kenmatsu4    (2000 contributionを超えました!)

・趣味    - バンドでベースを弾いたりしています。    - 主に東南アジアへバックパック旅行に行ったりします    (カンボジア、ミャンマー、バングラデシュ、新疆ウイグル自治区 etc) 旅行の写真 : http://matsu-ken.jimdo.com

Twitterアイコン

『深層学習』  岡谷貴之・著  シリーズ: 機械学習プロフェッショナルシリーズ

『深層学習』第6章 畳込みニューラルネット

輪読会のスライドです。 非常に良い本ですので みなさん購入しましょう!

MASAKARI Come On !!!みんなで勉強しましょう

https://twitter.com/_inundata/status/616658949761302528

画像処理をニューラルネットで 行うにあたって視覚に関する

神経科学の知見を取り入れよう!

• 受容野 • 単純型細胞 • 複雑型細胞

神経科学のアナロジーの利用

受容野(receptive field)≒ 網膜細胞

http://bsd.neuroinf.jp/wiki/受容野

受容野(receptive field)≒ 網膜細胞

On Center Cell On Center CellOff Center Cell Off Center Cell

https://en.wikipedia.org/wiki/Hypercomplex_cell

単純型細胞と複雑型細胞

https://en.wikipedia.org/wiki/Hypercomplex_cell

受容野を並べて単純細胞を形成 +に光、-には当てないと興奮反応+に光、-にも光を当てると 相殺されて興奮反応なし

単純型細胞

単純型細胞と複雑型細胞

http://www.cns.nyu.edu/~david/courses/perception/lecturenotes/V1/lgn-V1.html

複雑型細胞

平行移動しても反応が起こるが、回転すると反応しない。

やっと本題に入ります。

この神経科学的知見を 数理的に扱い、

「物体カテゴリ認識」に応用します。

単純型細胞と複雑型細胞のモデル

受容野

単純型細胞複雑型細胞

ピンクの部分がフィルター

単純型細胞と複雑型細胞のモデル

受容野

単純型細胞複雑型細胞

ピンクの部分がフィルター

単純型細胞と複雑型細胞のモデル

受容野

単純型細胞複雑型細胞

ピンクの部分がフィルター

単純型細胞と複雑型細胞のモデル

受容野

単純型細胞複雑型細胞

ピンクの部分がフィルター

単純型細胞と複雑型細胞のモデル

受容野

単純型細胞複雑型細胞

ピンクの部分がフィルター

単純型細胞と複雑型細胞のモデル

受容野

単純型細胞複雑型細胞

ピンクの部分がフィルター

単純型細胞と複雑型細胞のモデル

受容野

ピンクの部分がフィルター

青いセルは入力が ある事を示している 単純型細胞

複雑型細胞

単純型細胞と複雑型細胞のモデル

受容野

単純型細胞複雑型細胞

この左上のセルは受容野の入力が ずれてしまうともう反応しない

入力パターンが平行移動している

単純型細胞と複雑型細胞のモデル

受容野

単純型細胞複雑型細胞

入力パターンが回転してしまうと、

反応しなくなってしまう

• ネオコグニトロン   単純型細胞、複雑型細胞の2層構造を、   最初に工学的パターン認識に応用

• LaNet   畳込みネットのルーツとされる    ( http://yann.lecun.com/exdb/lenet/ )

類似の手法

全体の構造

• 全結合層(fully-connected layer) • 畳込み層(convolution) • プーリング層(pooling) • 局所コントラスト正規化層

(Local Contrast Normalization, LCN)

畳込みネットで使われるレイヤーの種類

→ 前章までで扱っていたのは全結合層 l-1層の出力は、l 層の全素子に入力される

典型的畳込みネットの構造

input (image)

convolution

convolution

pooling

LCN

convolution

pooling

fully-connected

fully-connected

softmax

output (category label)

畳込み層(convolution)が複数続いた後、プーリング層が最後に 付加され、それを1まとまりとする事が多い。 目的が分類であれば最終の出力にシグモイド関数の多変量版である、ソフトマックス関数を使用する。

ソフトマックス関数 fi(x) =exp(xi)Pnj exp(xj)

example

def forward(self, x_data, y_data, train=True): x = Variable(x_data, volatile=not train) t = Variable(y_data, volatile=not train)

h = F.relu(self.conv1(x)) h = F.relu(self.conv1a(h)) h = F.relu(self.conv1b(h)) h = F.max_pooling_2d(h, 3, stride=2) h = F.relu(self.conv2(h)) h = F.relu(self.conv2a(h)) h = F.relu(self.conv2b(h)) h = F.max_pooling_2d(h, 3, stride=2) h = F.relu(self.conv3(h)) h = F.relu(self.conv3a(h)) h = F.relu(self.conv3b(h)) h = F.dropout(h, F.max_pooling_2d(h, 3, stride=2), train=train) h = F.relu(self.conv4(h)) h = F.relu(self.conv4a(h)) h = F.relu(self.conv4b(h)) h = F.reshape(F.average_pooling_2d(h, 6), (x_data.shape[0], 1000)) return F.softmax_cross_entropy(h, t), F.accuracy(h, t)

Chainerの例

https://github.com/pfnet/chainer/tree/master/examples/imagenet

畳込みの定義

畳込みの定義(0,0) (0,1) ・・・ (0, W-2) (0, W-1)

(1, 0) (1, 1) ・・・ (1, W-2) (1, W-1)

・・・ ・・・ ・・・ ・・・

(W-2, 0) (W-2, 1) ・・・ (W-2, W-2) (W-2, W-1)

(W-1, 0) (W-1, 1) ・・・ (W-1, W-2) (W-1, W-1)

W pixel

W pixel

W x W画素のアドレス0 0 1 0 ・・・ 0 0 0 00 1 0 0 ・・・ 0 0 0 01 0 0 0 ・・・ 0 0 0 00 0 0 0 ・・・ 0 0 0 0

・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・

0 0 0 0 ・・・ 0 0 0 00 0 0 0 ・・・ 0 0 0 00 0 0 0 ・・・ 0 0 0 00 0 0 0 ・・・ 0 0 0 0

W x W画素のデータ例

0.01 0.02 0.05 0.15

0.02 0.05 0.15 0.05

0.05 0.15 0.05 0.02

0.15 0.05 0.02 0.01

H pixel

H pixel

H x H 画素のフィルター

xij(i, j)

画素の畳込みの定義

uij =H�1X

p=0

H�1X

q=0

xi+p,j+qhpq

※ 本当はxの添え字のpとqの前は−が正しいが  実質的な違いはないため、上記とする慣例

畳込みの定義(0,0) (0,1) ・・・ (0, W-2) (0, W-1)

(1, 0) (1, 1) ・・・ (1, W-2) (1, W-1)

・・・ ・・・ ・・・ ・・・

(W-2, 0) (W-2, 1) ・・・ (W-2, W-2) (W-2, W-1)

(W-1, 0) (W-1, 1) ・・・ (W-1, W-2) (W-1, W-1)

W pixel

W pixel

W x W画素のアドレス0 0 1 0 ・・・ 0 0 0 00 1 0 0 ・・・ 0 0 0 01 0 0 0 ・・・ 0 0 0 00 0 0 0 ・・・ 0 0 0 0

・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・

0 0 0 0 ・・・ 0 0 0 00 0 0 0 ・・・ 0 0 0 00 0 0 0 ・・・ 0 0 0 00 0 0 0 ・・・ 0 0 0 0

W x W画素のデータ例0.01 0.02 0.05 0.150.02 0.05 0.15 0.050.05 0.15 0.05 0.020.15 0.05 0.02 0.01

H pixel

H pixel

H x H 画素のフィルター

xij(i, j)

画素の畳込みの定義

uij =H�1X

p=0

H�1X

q=0

xi+p,j+qhpq

※ 本当はxの添え字のpとqの前は−が正しいが  実質的な違いはないため、上記とする慣例

畳込みの働き

cosフィルター

画像処理でおなじみのLenna

https://gist.github.com/matsuken92/5b78c792f2ab98576c5c

畳込み

uij =H�1X

p=0

H�1X

q=0

xi+p,j+qhpq

フィルタが表す特徴的な濃淡構造を画像から抽出する

畳込みの働き

cosフィルター

画像処理でおなじみのLenna

畳込み

uij =H�1X

p=0

H�1X

q=0

xi+p,j+qhpq

https://gist.github.com/matsuken92/5b78c792f2ab98576c5c

フィルタが表す特徴的な濃淡構造を画像から抽出する

ちなみに

畳込みの働きフィルターのサイズは・・・

畳込みの働きフィルターのサイズは・・・

これくらい

パディング(W � 2bH/2c)⇥ (W � 2bH/2c)

bH/2cbH/2cW

H

b·c※ は小数点以下切り下げ

x00

画像からはみ出る部分に フィルタを重ねる方法

このサイズの分だけ画像が小さくなってしまう・・・。

この画像サイズ減少を避けるために

使うのが、パディング

パディング

H � 1

数式を素直に解釈するとこうなるのでは?

uij =H�1X

p=0

H�1X

q=0

xi+p,j+qhpq

x00

ゼロパディング (zero-padding)

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

「ふち」の値を

ゼロパディング (zero-padding)

0 0 0 0 0 0 0 0 0 0

0 77 80 82 78 70 82 82 140 0

0 83 78 80 83 82 77 94 151 0

0 87 82 81 80 74 75 112 152 0

0 87 87 85 77 66 99 151 167 0

0 84 79 77 78 76 107 162 160 0

0 86 72 70 72 81 151 166 151 0

0 78 72 73 73 107 166 170 148 0

0 76 76 77 84 147 180 168 142 0

0 0 0 0 0 0 0 0 0 0

「ふち」の値を0で埋める方法→畳込みネットでは広く使われている

デメリット

畳み込みの結果、画像の周辺部が暗くなる

4辺で折り返して未定部分の画素を決める

最周囲の画素値を外挿する

などの方法もある

ストライド (stride)

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

フィルターを1画素ずつずらすのではなく、数画素ずつずらして、フィルターと画像の積和を計算するときの、適用位置の間隔を「ストライド」と呼ぶ。 大きなサイズの入力画像を扱うときに出力ユニットが大きくなり過ぎることを防ぐ。(但し性能悪化とのトレードオフ)

uij =H�1X

p=0

H�1X

q=0

xsi+p,sj+qhpq

s : ストライド

ストライド適用時の出力画像サイズ(b(W � 1)/sc+ 1)⇥ (b(W � 1)/sc+ 1)

プーリング層では2以上のストライドを適用することが一般的

ストライド (stride)

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

フィルターを1画素ずつずらすのではなく、数画素ずつずらして、フィルターと画像の積和を計算するときの、適用位置の間隔を「ストライド」と呼ぶ。 大きなサイズの入力画像を扱うときに出力ユニットが大きくなり過ぎることを防ぐ。(但し性能悪化とのトレードオフ)

uij =H�1X

p=0

H�1X

q=0

xsi+p,sj+qhpq

s : ストライド

ストライド適用時の出力画像サイズ(b(W � 1)/sc+ 1)⇥ (b(W � 1)/sc+ 1)

プーリング層では2以上のストライドを適用することが一般的

ストライド (stride)

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

フィルターを1画素ずつずらすのではなく、数画素ずつずらして、フィルターと画像の積和を計算するときの、適用位置の間隔を「ストライド」と呼ぶ。 大きなサイズの入力画像を扱うときに出力ユニットが大きくなり過ぎることを防ぐ。(但し性能悪化とのトレードオフ)

uij =H�1X

p=0

H�1X

q=0

xsi+p,sj+qhpq

s : ストライド

ストライド適用時の出力画像サイズ(b(W � 1)/sc+ 1)⇥ (b(W � 1)/sc+ 1)

プーリング層では2以上のストライドを適用することが一般的

ストライド (stride)

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

フィルターを1画素ずつずらすのではなく、数画素ずつずらして、フィルターと画像の積和を計算するときの、適用位置の間隔を「ストライド」と呼ぶ。 大きなサイズの入力画像を扱うときに出力ユニットが大きくなり過ぎることを防ぐ。(但し性能悪化とのトレードオフ)

uij =H�1X

p=0

H�1X

q=0

xsi+p,sj+qhpq

s : ストライド

ストライド適用時の出力画像サイズ(b(W � 1)/sc+ 1)⇥ (b(W � 1)/sc+ 1)

プーリング層では2以上のストライドを適用することが一般的

畳込み層

受容野

ピンクの部分がフィルター

青いセルは入力が ある事を示している 単純型細胞

複雑型細胞

畳込み層

畳込み層前述の2層ネットワークの中間層(単純型細胞)部分がこれに該当

畳込み層実用的な畳込みネットでは1枚のグレースケール画像に対してではなく、RGB等、多チャネルの画像に対し複数のフィルターを並行して畳み込む演算を行う。

W

WK

W :画素数K:チャネル数

K=3のRGB画像の例 W ⇥W ⇥K画像サイズ :

畳込み層中間層(畳込み層やプーリング層)では一般的にK=16やK=256等、それ以上のチャネル数も扱う。

中間層での画像サイズ( )をマップ(map)と 呼ぶ場合もある

W ⇥W ⇥K

バイアスは のように に依存せず、画素の位置に依存せず設定するのが一般的(  全体の濃さになるイメージ)

畳込み層

uijm =K�1X

k=0

H�1X

p=0

H�1X

q=0

z(l�1)i+p,j+q,khpqkm + bijm

W

W

K

フィルタ1

* …H

H

K

hpqk0

f(·)

m = 0

uij0 zij0

uijm =K�1X

k=0

H�1X

p=0

H�1X

q=0

z(l�1)i+p,j+q,khpqkm + bijmを求める式は下記となる

bijm = bm i, juijm

b0

畳込み層

W

W

K

フィルタ1

* …H

H

K

hpqk0

f(·)

m = 0

uij0 zij0

の各画素に対し同一の重み が共有される。 このことは重み共有(weight sharing, weight tying)と呼ばれる

zij0 hpqk0

b0

畳込み層

W

W

K

フィルタ1

*H

H

K

hpqk0

f(·)

m = 0

uij0 zij0

b0

の各画素に対し同一の重み が共有される。 このことは重み共有(weight sharing, weight tying)と呼ばれる

zij0 hpqk0

畳込み層

W

W

K

フィルタ1

*H

H

K

hpqk0

f(·)

m = 0

uij0 zij0

b0

の各画素に対し同一の重み が共有される。 このことは重み共有(weight sharing, weight tying)と呼ばれる

zij0 hpqk0

W

W

K

フィルタ1

フィルタ2

フィルタ3

*

*

*

…H

H

…H

H

…H

H

K

hpqk0

hpqk1

hpqk2

m = 0

m = 1

m = 2

uij0

z(l�1)ijk

uij1

uij2

zijm (l)

zij2zij1zij0

M

f(·)

f(·)

f(·)

b0

b1

b2

畳込み層畳込み層の出力もまた、フィルタ数Mをチャネル数と解釈し、      の多チャネルの画像とみなすことができる。W ⇥W ⇥M

畳込み層

…H

H

K

パラメーター数は画像サイズ に依存しない

…H

H

K

…H

H

K

M=3のとき

W ⇥W

H ⇥H ⇥K ⇥M

パラメーター数は

つまりfilter size ⇥ filter size

⇥ channel size ⇥ the number of filter

となる

畳込み層畳込みネットのパラメーター最適化にも、勾配降下法を 適用する。

最適化の対象はフィルタ  とバイアス

同様に、誤差逆伝播法を用いて勾配計算を行う (詳細は後ほど)

uijm =K�1X

k=0

H�1X

p=0

H�1X

q=0

z(l�1)i+p,j+q,khpqkm + bijm

hpqkm bijm

プーリング層

プーリング層プーリング層は通常、畳込み層の直後に置かれる。

input (image)

convolution

convolution

pooling

LCN

convolution

pooling

fully-connected

fully-connected

softmax

output (category label)

example

受容野

ピンクの部分がフィルター

青いセルは入力が ある事を示している

プーリング層下記の2層ネットワークの後ろの層(複雑型細胞)部分が これに該当。

対象特徴量が若干変化した場合(や平行移動)でもこの プーリング層が不変となるよう設計される。

単純型細胞複雑型細胞プーリング層

受容野

ピンクの部分がフィルター

青いセルは入力が ある事を示している

プーリング層下記の2層ネットワークの後ろの層(複雑型細胞)部分が これに該当。

対象特徴量が若干変化した場合(や平行移動)でもこの プーリング層が不変となるよう設計される。

単純型細胞複雑型細胞プーリング層

受容野

ピンクの部分がフィルター

青いセルは入力が ある事を示している

プーリング層下記の2層ネットワークの後ろの層(複雑型細胞)部分が これに該当。

対象特徴量が若干変化した場合(や平行移動)でもこの プーリング層が不変となるよう設計される。

単純型細胞複雑型細胞プーリング層

プーリング層

zij

H

H

この中に含まれる画素の 集合を で表す。Pij

W

W

k H2チャネル 毎に独立に 個ある画素値を使って 1つの画素値 を求める

uijk

パディング

1. 最大プーリング (max pooling) 2. 平均プーリング (average pooling) 3. Lpプーリング (Lp pooling)

3種のプーリング層

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

1.最大プーリング

87 87 87 83 112 152 152 152

87 87 87 99 151 167 167 167

87 87 87 107 162 167 167 167

87 87 87 151 166 167 167 167

87 87 107 166 170 170 170 170

87 87 147 180 180 180 180 180

86 86 147 180 180 180 180 180

86 86 147 180 180 180 180 180

uijk = max

p,q2Pi,j

zpqk

zpqkuijk

H2個の画素値の最大値を利用

画像認識への応用では定番

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

1.最大プーリング

87 87 87 83 112 152 152 152

87 87 87 99 151 167 167 167

87 87 87 107 162 167 167 167

87 87 87 151 166 167 167 167

87 87 107 166 170 170 170 170

87 87 147 180 180 180 180 180

86 86 147 180 180 180 180 180

86 86 147 180 180 180 180 180

uijk = max

p,q2Pi,j

zpqk

zpqkuijk

H2個の画素値の最大値を利用

画像認識への応用では定番

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

1.最大プーリング

87 87 87 83 112 152 152 152

87 87 87 99 151 167 167 167

87 87 87 107 162 167 167 167

87 87 87 151 166 167 167 167

87 87 107 166 170 170 170 170

87 87 147 180 180 180 180 180

86 86 147 180 180 180 180 180

86 86 147 180 180 180 180 180

uijk = max

p,q2Pi,j

zpqk

zpqkuijk

H2個の画素値の最大値を利用

画像認識への応用では定番

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

1.最大プーリング

87 87 87 83 112 152 152 152

87 87 87 99 151 167 167 167

87 87 87 107 162 167 167 167

87 87 87 151 166 167 167 167

87 87 107 166 170 170 170 170

87 87 147 180 180 180 180 180

86 86 147 180 180 180 180 180

86 86 147 180 180 180 180 180

uijk = max

p,q2Pi,j

zpqk

zpqkuijk

H2個の画素値の最大値を利用

画像認識への応用では定番

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

1.最大プーリング

87 87 87 83 112 152 152 152

87 87 87 99 151 167 167 167

87 87 87 107 162 167 167 167

87 87 87 151 166 167 167 167

87 87 107 166 170 170 170 170

87 87 147 180 180 180 180 180

86 86 147 180 180 180 180 180

86 86 147 180 180 180 180 180

uijk = max

p,q2Pi,j

zpqk

zpqkuijk

H2個の画素値の最大値を利用

画像認識への応用では定番

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

1.最大プーリング

87 87 87 83 112 152 152 152

87 87 87 99 151 167 167 167

87 87 87 107 162 167 167 167

87 87 87 151 166 167 167 167

87 87 107 166 170 170 170 170

87 87 147 180 180 180 180 180

86 86 147 180 180 180 180 180

86 86 147 180 180 180 180 180

uijk = max

p,q2Pi,j

zpqk

zpqkuijk

H2個の画素値の最大値を利用

画像認識への応用では定番

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

1.最大プーリング

87 87 87 83 112 152 152 152

87 87 87 99 151 167 167 167

87 87 87 107 162 167 167 167

87 87 87 151 166 167 167 167

87 87 107 166 170 170 170 170

87 87 147 180 180 180 180 180

86 86 147 180 180 180 180 180

86 86 147 180 180 180 180 180

uijk = max

p,q2Pi,j

zpqk

zpqkuijk

H2個の画素値の最大値を利用

画像認識への応用では定番

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

1.最大プーリング

87 87 87 83 112 152 152 152

87 87 87 99 151 167 167 167

87 87 87 107 162 167 167 167

87 87 87 151 166 167 167 167

87 87 107 166 170 170 170 170

87 87 147 180 180 180 180 180

86 86 147 180 180 180 180 180

86 86 147 180 180 180 180 180

uijk = max

p,q2Pi,j

zpqk

zpqkuijk

H2個の画素値の最大値を利用

画像認識への応用では定番

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

81.1 80.9 79.8 78.9 82.1 95.5 99.3 107.2

82.4 81.7 80.0 79.9 85.5 99.6 104.6 115.2

81.9 81.3 79.7 80.6 88.4 103.0 109.0 120.7

81.2 80.4 79.5 82.8 94.2 109.8 117.7 131.7

80.0 79.0 79.4 86.4 101.2 116.8 127.1 142.5

78.6 78.2 81.6 93.3 110.5 126.0 138.3 152.5

76.7 76.7 81.9 95.9 114.3 129.5 142.6 155.9

75.6 75.8 82.9 100.1 119.0 133.7 148.1 160.2

zpqkuijk

2.平均プーリングuijk =

1

H2

X

(p,q)2Pij

zpqkH2個の画素値の平均値を利用

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

81.1 80.9 79.8 78.9 82.1 95.5 99.3 107.2

82.4 81.7 80.0 79.9 85.5 99.6 104.6 115.2

81.9 81.3 79.7 80.6 88.4 103.0 109.0 120.7

81.2 80.4 79.5 82.8 94.2 109.8 117.7 131.7

80.0 79.0 79.4 86.4 101.2 116.8 127.1 142.5

78.6 78.2 81.6 93.3 110.5 126.0 138.3 152.5

76.7 76.7 81.9 95.9 114.3 129.5 142.6 155.9

75.6 75.8 82.9 100.1 119.0 133.7 148.1 160.2

zpqkuijk

2.平均プーリングuijk =

1

H2

X

(p,q)2Pij

zpqkH2個の画素値の平均値を利用

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

81.1 80.9 79.8 78.9 82.1 95.5 99.3 107.2

82.4 81.7 80.0 79.9 85.5 99.6 104.6 115.2

81.9 81.3 79.7 80.6 88.4 103.0 109.0 120.7

81.2 80.4 79.5 82.8 94.2 109.8 117.7 131.7

80.0 79.0 79.4 86.4 101.2 116.8 127.1 142.5

78.6 78.2 81.6 93.3 110.5 126.0 138.3 152.5

76.7 76.7 81.9 95.9 114.3 129.5 142.6 155.9

75.6 75.8 82.9 100.1 119.0 133.7 148.1 160.2

zpqkuijk

2.平均プーリングuijk =

1

H2

X

(p,q)2Pij

zpqkH2個の画素値の平均値を利用

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

81.1 80.9 79.8 78.9 82.1 95.5 99.3 107.2

82.4 81.7 80.0 79.9 85.5 99.6 104.6 115.2

81.9 81.3 79.7 80.6 88.4 103.0 109.0 120.7

81.2 80.4 79.5 82.8 94.2 109.8 117.7 131.7

80.0 79.0 79.4 86.4 101.2 116.8 127.1 142.5

78.6 78.2 81.6 93.3 110.5 126.0 138.3 152.5

76.7 76.7 81.9 95.9 114.3 129.5 142.6 155.9

75.6 75.8 82.9 100.1 119.0 133.7 148.1 160.2

zpqkuijk

2.平均プーリングuijk =

1

H2

X

(p,q)2Pij

zpqkH2個の画素値の平均値を利用

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

81.1 80.9 79.8 78.9 82.1 95.5 99.3 107.2

82.4 81.7 80.0 79.9 85.5 99.6 104.6 115.2

81.9 81.3 79.7 80.6 88.4 103.0 109.0 120.7

81.2 80.4 79.5 82.8 94.2 109.8 117.7 131.7

80.0 79.0 79.4 86.4 101.2 116.8 127.1 142.5

78.6 78.2 81.6 93.3 110.5 126.0 138.3 152.5

76.7 76.7 81.9 95.9 114.3 129.5 142.6 155.9

75.6 75.8 82.9 100.1 119.0 133.7 148.1 160.2

zpqkuijk

2.平均プーリングuijk =

1

H2

X

(p,q)2Pij

zpqkH2個の画素値の平均値を利用

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

81.1 80.9 79.8 78.9 82.1 95.5 99.3 107.2

82.4 81.7 80.0 79.9 85.5 99.6 104.6 115.2

81.9 81.3 79.7 80.6 88.4 103.0 109.0 120.7

81.2 80.4 79.5 82.8 94.2 109.8 117.7 131.7

80.0 79.0 79.4 86.4 101.2 116.8 127.1 142.5

78.6 78.2 81.6 93.3 110.5 126.0 138.3 152.5

76.7 76.7 81.9 95.9 114.3 129.5 142.6 155.9

75.6 75.8 82.9 100.1 119.0 133.7 148.1 160.2

zpqkuijk

2.平均プーリングuijk =

1

H2

X

(p,q)2Pij

zpqkH2個の画素値の平均値を利用

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

81.1 80.9 79.8 78.9 82.1 95.5 99.3 107.2

82.4 81.7 80.0 79.9 85.5 99.6 104.6 115.2

81.9 81.3 79.7 80.6 88.4 103.0 109.0 120.7

81.2 80.4 79.5 82.8 94.2 109.8 117.7 131.7

80.0 79.0 79.4 86.4 101.2 116.8 127.1 142.5

78.6 78.2 81.6 93.3 110.5 126.0 138.3 152.5

76.7 76.7 81.9 95.9 114.3 129.5 142.6 155.9

75.6 75.8 82.9 100.1 119.0 133.7 148.1 160.2

zpqkuijk

2.平均プーリングuijk =

1

H2

X

(p,q)2Pij

zpqkH2個の画素値の平均値を利用

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

81.1 80.9 79.8 78.9 82.1 95.5 99.3 107.2

82.4 81.7 80.0 79.9 85.5 99.6 104.6 115.2

81.9 81.3 79.7 80.6 88.4 103.0 109.0 120.7

81.2 80.4 79.5 82.8 94.2 109.8 117.7 131.7

80.0 79.0 79.4 86.4 101.2 116.8 127.1 142.5

78.6 78.2 81.6 93.3 110.5 126.0 138.3 152.5

76.7 76.7 81.9 95.9 114.3 129.5 142.6 155.9

75.6 75.8 82.9 100.1 119.0 133.7 148.1 160.2

zpqkuijk

2.平均プーリングuijk =

1

H2

X

(p,q)2Pij

zpqkH2個の画素値の平均値を利用

3.Lpプーリング

https://gist.github.com/matsuken92/5b78c792f2ab98576c5c#file-03_anim_lp_pooling-py

uijk =

0

@ 1

H2

X

(p,q)2Pij

zPpqk

1

A

1P

最大プーリングと平均プーリングを含む一般性を持った表記

のとき、平均プーリング

のとき、最大プーリング

P = 1

P = 1

一様分布の例

3.Lpプーリング

https://gist.github.com/matsuken92/5b78c792f2ab98576c5c#file-03_anim_lp_pooling-py

uijk =

0

@ 1

H2

X

(p,q)2Pij

zPpqk

1

A

1P

最大プーリングと平均プーリングを含む一般性を持った表記

のとき、平均プーリング

のとき、最大プーリング

P = 1

P = 1

ベータ分布の例

通常、プーリングでは入力のチャネル毎に独立に行い、そのため出力のチャネル数 は入力と一致するK

プーリング層

W

W

K

W

W

K

プーリング層

チャネル数Kは変わらない

※ 通常プーリング層には 活性化関数は適応しない

プーリング層の結合の重みは固定され、調整不可。 よって、学習により変化するパラメータは無い。

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

81.1 79.8 82.1 99.3

81.9 79.7 88.4 109.0

80.0 79.4 101.2 127.1

76.7 81.9 114.3 142.6

zpqkuijk

プーリング層のストライドプーリングサイズ 、ストライド を設定した場合s = 25⇥ 5

b(W � 1)/sc+ 1

出力層のサイズは

よって今回のケースではb(8� 1)/2c+ 1 = 4

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

81.1 79.8 82.1 99.3

81.9 79.7 88.4 109.0

80.0 79.4 101.2 127.1

76.7 81.9 114.3 142.6

zpqkuijk

プーリング層のストライドプーリングサイズ 、ストライド を設定した場合s = 25⇥ 5

b(W � 1)/sc+ 1

出力層のサイズは

よって今回のケースではb(8� 1)/2c+ 1 = 4

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

81.1 79.8 82.1 99.3

81.9 79.7 88.4 109.0

80.0 79.4 101.2 127.1

76.7 81.9 114.3 142.6

zpqkuijk

プーリング層のストライドプーリングサイズ 、ストライド を設定した場合s = 25⇥ 5

b(W � 1)/sc+ 1

出力層のサイズは

よって今回のケースではb(8� 1)/2c+ 1 = 4

77 80 82 78 70 82 82 140

83 78 80 83 82 77 94 151

87 82 81 80 74 75 112 152

87 87 85 77 66 99 151 167

84 79 77 78 76 107 162 160

86 72 70 72 81 151 166 151

78 72 73 73 107 166 170 148

76 76 77 84 147 180 168 142

81.1 79.8 82.1 99.3

81.9 79.7 88.4 109.0

80.0 79.4 101.2 127.1

76.7 81.9 114.3 142.6

zpqkuijk

プーリング層のストライドプーリングサイズ 、ストライド を設定した場合s = 25⇥ 5

b(W � 1)/sc+ 1

出力層のサイズは

よって今回のケースではb(8� 1)/2c+ 1 = 4

1. 単一チャネル画像の正規化 1-1.減算正規化 1-2.除算正規化 2. 多チャネル画像の正規化 2-1.減算正規化 2-2.除算正規化

正規化層 (局所コントラスト正規化)

コントラスト

http://homepage2.nifty.com/tsugu/sotuken/ronbun/sec3-2.html#0005

High contrast

Low contrast

Original

色の明暗の差異を変化させる処理で、これを上げると明暗のはっきりした画像となり、下げると色の明暗がなくなり中間色が多く現れる

明るさ

http://www.mis.med.akita-u.ac.jp/~kata/image/monogamma.html

High Brightness

Low Brightness

Original

明るさの調整は、各画素ごとの画素値を指数関数で変換することによって行う

γ = 1.5 γ = 2.0

正規化

exijk =1

N

NX

n=1

x

(n)ijk

各チャネルの各画素値のサンプル間平均を算出

xijk xijk � exijk

対象とする画像からこの平均を差し引いた物を入力データとする。

x

(n)ijk:サンプルの画素   の

(i, j)

チャネル の画素値k

画像1枚1枚に対して個別に行う処理

学習画像の画素ごと平均

局所コントラスト正規化

局所コントラスト正規化:減算正規化単一チャネル画像(グレースケールetc)の場合

zij

H

Pij

W

H W

W

W

xij

x̄ij =1

H2

X

(p,q)2Pij

xi+p,j+q

x̄ij =X

(p,q)2Pij

wpqxi+p,j+q

入力画像の画素値濃淡から に含まれる 画素の濃淡値の平均を差し引く

Pij

重み付き平均

zij = xij � x̄ij

平均

局所コントラスト正規化:減算正規化単一チャネル画像(グレースケールetc)の場合

x̄ij =X

(p,q)2Pij

wpqxi+p,j+q

重み付き平均

重み付き平均のウェイトは足して1になるように設定し、X

(p,q)2Pij

wpq =H�1X

p=0

H�1X

q=0

wpq = 10.01 0.01 0.01 0.01 0.01

0.01 0.05 0.05 0.05 0.01

0.01 0.05 0.44 0.05 0.01

0.01 0.05 0.05 0.05 0.01

0.01 0.01 0.01 0.01 0.01

中央で最大値を取り、周辺部に向けて低下するような値とする。

ウェイトの例

局所コントラスト正規化:減算正規化H = 17

https://gist.github.com/matsuken92/5b78c792f2ab98576c5c

H = 9H = 5H = 3

局所コントラスト正規化:除算正規化単一チャネル画像(グレースケールetc)の場合

x̄ij =X

(p,q)2Pij

wpqxi+p,j+q

重み付き平均 X

(p,q)2Pij

wpq =H�1X

p=0

H�1X

q=0

wpq = 1

2ij =

X

(p,q)2Pij

wpq(xi+p,j+q � x̄ij)2

領域 のが措置の分散を計算し、これを用いて標準化を行う。 この画素値分散は、

Pij

を利用する。これを利用して正規化をした値は下記になる。

zij =xij � x̄ij

�ij

局所コントラスト正規化:除算正規化ただし、 をそのまま使うと、濃淡が少ない局所領域ほどzij =

xij � x̄ij

�ij濃淡が増幅されてしまい、ノイズが強調される等の不都合がある。

これを回避するためにある定数 を設定し、濃淡の標準偏差がこれを下回るときは をつかって除算するようにする。

cc

zij =xij � x̄ij

max(c,�ij)

同様の効果が に応じて連続的に変化する�ij

を使う場合もある。

zij =xij � x̄ijqc+ �

2ij

局所コントラスト正規化:減算正規化多チャネル画像(RGB etc)の場合チャネル間の相互作用を考え、チャネル毎の同区間 の平均値を使用する

x̄ij =1

K

K�1X

k=0

X

(p,q)2Pij

wpqxi+p,j+q,k

Pij

画素 毎に違うが、チャネル間で共通の を差し引く。(i, j) x̄ij

zijk = xijk � x̄ij

W

W

K

x̄ijzijk

局所コントラスト正規化:除算正規化多チャネル画像(RGB etc)の場合

2ij =

1

K

K�1X

k=0

X

(p,q)2Pij

wpqk(xi+p,j+q,k � x̄ij)2

局所領域 の分散Pij

除算正規化の計算

zijk =xij � x̄ijkq

c+ �

2ij

zijk =

xijk � x̄ij

max(c,�ij)

分散の大きさに合わせて連続的に変化させる場合は

チャネル間の相互作用を考える

→ 生体の視覚特性をモデル   に取り入れている

・コンテンツの違いには敏感 ・明るさやコントラストの  絶対的差異には鈍感

勾配の計算

z(l) = f(u(l))(l) = f(W(l)z(l�1) + b(l))(l)

m1 1

m

1

m

1

nmn

復習

b(l)j

ただし、 が 全結合でない

W(l)

畳込み層

W

W

K

フィルタ1

H

m = 0

uij0

H

uijm =K�1X

k=0

H�1X

p=0

H�1X

q=0

z(l�1)i+p,j+q,khpqkm + bijm

重み共有(weight sharing, weight tying)が適用されている

…H

H

K

重み行列 はサイズ の 個のフィルタの係数 を規則的に並べた物と解釈できる

…H

H

K

…H

H

K

M=3のとき

H ⇥H ⇥K ⇥M

畳み込みの勾配計算W(l) M

hpqkm

mn

W(l)

どうやって?

の長さは

畳み込みの勾配計算H = 3,K = 2,M = 2 の例を考えるh 3⇥ 3⇥ 2⇥ 2 = 36

K = 0 K = 1

M=

0M

=1

h0000 h0100 h0200

h1000 h1100 h1200

h2200h2100h2000

h0010 h0110 h0210

h1210h1110h1010

h2010 h2110 h2210

h0001 h0101 h0201

h1001 h1101 h1201

h2001 h2101 h2201

h0011 h0111 h0211

h1011 h1011 h1211

h2011 h2111 h2211

h0000

h0100

h0200

h1000

h1100

h1200

h2000

h2100

h2200

h

h2211

h2111

h2011

h0011

h2210

h0010

h2201

h0001

(H ⇥H ⇥K ⇥M)

(H ⇥H ⇥K ⇥M)

h0000

h0100

h0200

h1000

h1100

h1200

h2000

h2100

h2200

Z(l�1)0

Z(l�1)0

U (l)0

z20,0

z00,0z01,0z02,0

z10,0z11,0z12,0

z21,0z22,0

ij

h0000

h0100

h0200

h1000

h1100

h1200

h2000

h2100

h2200

Z(l�1)0

Z(l�1)0

U (l)0

z20,0

z00,0z01,0z02,0

z10,0z11,0z12,0

z21,0z22,0

ij

wji = h0100

h0000

h0100

h0200

h1000

h1100

h1200

h2000

h2100

h2200

Z(l�1)0

Z(l�1)0

U (l)0

z20,0

z00,0z01,0z02,0

z10,0z11,0z12,0

z21,0z22,0

ij

h0000

h0100

h0200

h1000

h1100

h1200

h2000

h2100

h2200

Z(l�1)0

Z(l�1)0

U (l)0

z20,0

z00,0z01,0z02,0

z10,0z11,0z12,0

z21,0z22,0

ij

畳み込みの勾配計算h0000

h0100

h0200

h1000

h1100

h1200

h2000

h2100

h2200

h

h2211

h2111

h2011

h0011

h2210

h0010

h2201

h0001

010000000

000000000

000000000

000000000

tij

のとき

wji = tTjih

123

3635

r

……

1

3

r

3635

……

(i = 3, j = 2)

r=2

畳み込みの勾配計算h0000

h0100

h0200

h1000

h1100

h1200

h2000

h2100

h2200

h

h2211

h2111

h2011

h0011

h2210

h0010

h2201

h0001

010000000

000000000

000000000

000000000

tij123

3635

r

……

1

3

r

3635

……

r=2

wji = tTjih

tjir

のとき(i = 3, j = 2)

畳み込みの勾配計算

0 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

Tr

0 1 … W−1…i

0

1

W−1

j

r = 2のとき

のとき(i = 3, j = 2)

畳み込みの勾配計算

(@h)r =X

i,j

(Tr � @W)ji

@E

@W(l)= @W = �(l)z(l�1)T

層のパラメータで誤差を偏微分する

前ページで計算した を使ってフィルタ の勾配を求めるTr

l

h

i

j

h

r(H ⇥H ⇥K ⇥M) (W ⇥W )

復習

z(l)j u(l)j

�(l+1)1

�(l+1)k

�(l+1)M

w(l+1)1j

w(l+1)kj

w(l+1)Mj

w(l)ji

これで微分z(l�1)i

l � 1層層層 ll + 1

f 0(l)

@En

@w(l)ji

=@En

@u(l)j

@u(l)j

@w(l)ji

= f 0(u(l)j )(

X

k

w(l+1)kj �(l+1)

k )z(l�1)i

畳み込みの勾配計算@En

@w(l)ji

=@En

@u(l)j

@u(l)j

@w(l)ji

= f 0(u(l)j )(

X

k

w(l+1)kj �(l+1)

k )z(l�1)i

行列表記 は行列の成分毎の積

(6.5)�(l) = f 0(l)(u(l))� (W(l+1)T�(l+1))

@E

@W(l)= @W = �(l)z(l�1)T

�(l)j = f 0(u(l)j )(

X

k

w(l+1)kj �(l+1)

k )

m1 1

1

m nmn

プーリング層の扱いプーリング層は学習対象のパラメーターがないので、勾配計算は不要。 デルタの逆伝播計算のみ行う

プーリングの種類毎に を定め前ページの(6.5)の計算を行う

W(l+1)

平均プーリング

最大プーリング

w(l+1)ji =

(1 (i, j) for max value

0 otherwise

w(l+1)ji =

(1

H2 if i 2 Pji

0 otherwise

Thanks• Azusa Colors (Keynote template) http://sanographix.github.io/azusa-colors/

top related