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

113
第6章 畳込みニューラルネット 2015.7.15 wed. @kenmatsu4

Upload: kenichi-matsui

Post on 16-Apr-2017

32.811 views

Category:

Data & Analytics


0 download

TRANSCRIPT

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

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

2015.7.15 wed.@kenmatsu4

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

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

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

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

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

Twitterアイコン

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

On Center Cell On Center CellOff Center Cell Off Center Cell

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

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

単純型細胞と複雑型細胞

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

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

単純型細胞

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

単純型細胞と複雑型細胞

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

複雑型細胞

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

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

やっと本題に入ります。

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

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

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

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

受容野

単純型細胞複雑型細胞

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

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

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

受容野

単純型細胞複雑型細胞

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

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

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

受容野

単純型細胞複雑型細胞

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

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

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

受容野

単純型細胞複雑型細胞

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

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

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

受容野

単純型細胞複雑型細胞

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

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

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

受容野

単純型細胞複雑型細胞

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

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

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

受容野

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

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

複雑型細胞

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

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

受容野

単純型細胞複雑型細胞

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

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

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

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

受容野

単純型細胞複雑型細胞

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

反応しなくなってしまう

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

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

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

類似の手法

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

全体の構造

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

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

(Local Contrast Normalization, LCN)

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

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

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

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

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

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

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

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

畳込みの定義

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

畳込みの定義(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の前は−が正しいが  実質的な違いはないため、上記とする慣例

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

畳込みの定義(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の前は−が正しいが  実質的な違いはないため、上記とする慣例

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

畳込みの働き

cosフィルター

画像処理でおなじみのLenna

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

畳込み

uij =H�1X

p=0

H�1X

q=0

xi+p,j+qhpq

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

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

畳込みの働き

cosフィルター

画像処理でおなじみのLenna

畳込み

uij =H�1X

p=0

H�1X

q=0

xi+p,j+qhpq

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

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

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

ちなみに

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

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

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

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

これくらい

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

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

bH/2cbH/2cW

H

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

x00

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

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

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

使うのが、パディング

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

パディング

H � 1

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

uij =H�1X

p=0

H�1X

q=0

xi+p,j+qhpq

x00

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

ゼロパディング (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

「ふち」の値を

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

ゼロパディング (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辺で折り返して未定部分の画素を決める

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

などの方法もある

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

ストライド (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以上のストライドを適用することが一般的

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

ストライド (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以上のストライドを適用することが一般的

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

ストライド (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以上のストライドを適用することが一般的

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

ストライド (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以上のストライドを適用することが一般的

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

畳込み層

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

受容野

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

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

複雑型細胞

畳込み層

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

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

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

W

WK

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

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

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

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

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

W ⇥W ⇥K

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

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

畳込み層

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

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

畳込み層

W

W

K

フィルタ1

* …H

H

K

hpqk0

f(·)

m = 0

uij0 zij0

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

zij0 hpqk0

b0

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

畳込み層

W

W

K

フィルタ1

*H

H

K

hpqk0

f(·)

m = 0

uij0 zij0

b0

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

zij0 hpqk0

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

畳込み層

W

W

K

フィルタ1

*H

H

K

hpqk0

f(·)

m = 0

uij0 zij0

b0

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

zij0 hpqk0

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

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

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

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

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

畳込み層

…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

となる

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

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

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

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

uijm =K�1X

k=0

H�1X

p=0

H�1X

q=0

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

hpqkm bijm

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

プーリング層

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

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

input (image)

convolution

convolution

pooling

LCN

convolution

pooling

fully-connected

fully-connected

softmax

output (category label)

example

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

受容野

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

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

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

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

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

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

受容野

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

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

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

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

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

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

受容野

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

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

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

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

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

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

プーリング層

zij

H

H

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

W

W

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

uijk

パディング

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

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

3種のプーリング層

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

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個の画素値の最大値を利用

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

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

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個の画素値の最大値を利用

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

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

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個の画素値の最大値を利用

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

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

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個の画素値の最大値を利用

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

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

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個の画素値の最大値を利用

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

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

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個の画素値の最大値を利用

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

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

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個の画素値の最大値を利用

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

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

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個の画素値の最大値を利用

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

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

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個の画素値の平均値を利用

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

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個の画素値の平均値を利用

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

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個の画素値の平均値を利用

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

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個の画素値の平均値を利用

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

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個の画素値の平均値を利用

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

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個の画素値の平均値を利用

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

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個の画素値の平均値を利用

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

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個の画素値の平均値を利用

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

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

一様分布の例

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

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

ベータ分布の例

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

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

プーリング層

W

W

K

W

W

K

プーリング層

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

コントラスト

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

High contrast

Low contrast

Original

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

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

明るさ

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

High Brightness

Low Brightness

Original

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

γ = 1.5 γ = 2.0

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

正規化

exijk =1

N

NX

n=1

x

(n)ijk

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

xijk xijk � exijk

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

x

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

(i, j)

チャネル の画素値k

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

学習画像の画素ごと平均

局所コントラスト正規化

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

局所コントラスト正規化:減算正規化単一チャネル画像(グレースケール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

平均

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

局所コントラスト正規化:減算正規化単一チャネル画像(グレースケール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

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

ウェイトの例

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

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

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

H = 9H = 5H = 3

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

局所コントラスト正規化:除算正規化単一チャネル画像(グレースケール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

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

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

xij � x̄ij

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

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

cc

zij =xij � x̄ij

max(c,�ij)

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

を使う場合もある。

zij =xij � x̄ijqc+ �

2ij

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

局所コントラスト正規化:減算正規化多チャネル画像(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

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

局所コントラスト正規化:除算正規化多チャネル画像(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)

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

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

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

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

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

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

勾配の計算

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

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

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

ただし、 が 全結合でない

W(l)

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

畳込み層

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)が適用されている

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

…H

H

K

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

…H

H

K

…H

H

K

M=3のとき

H ⇥H ⇥K ⇥M

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

hpqkm

mn

W(l)

どうやって?

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

の長さは

畳み込みの勾配計算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)

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

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

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

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

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

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

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

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

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

畳み込みの勾配計算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

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

畳み込みの勾配計算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)

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

畳み込みの勾配計算

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)

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

畳み込みの勾配計算

(@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 )

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

復習

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

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

畳み込みの勾配計算@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

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

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

プーリングの種類毎に を定め前ページの(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

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

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