Advertisement
Advertisement

More Related Content

Slideshows for you(20)

Advertisement

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

More from Ken'ichi Matsui(20)

Advertisement

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

  1. 第6章 畳込みニューラルネット 2015.7.15 wed. @kenmatsu4
  2. 自己紹介 ・Twitterアカウント    @kenmatsu4 ・Qiitaでブログを書いています(統計、機械学習、Python等)    http://qiita.com/kenmatsu4    (2000 contributionを超えました!) ・趣味    - バンドでベースを弾いたりしています。    - 主に東南アジアへバックパック旅行に行ったりします    (カンボジア、ミャンマー、バングラデシュ、新疆ウイグル自治区 etc) 旅行の写真 : http://matsu-ken.jimdo.com Twitterアイコン
  3. 『深層学習』  岡谷貴之・著  シリーズ: 機械学習プロフェッショナルシリーズ 『深層学習』 第6章 畳込みニューラルネット 輪読会のスライドです。 非常に良い本ですので みなさん購入しましょう!
  4. MASAKARI Come On !!! みんなで勉強しましょう https://twitter.com/_inundata/status/616658949761302528
  5. 画像処理をニューラルネットで 行うにあたって視覚に関する 神経科学の知見を取り入れよう!
  6. • 受容野 • 単純型細胞 • 複雑型細胞 神経科学のアナロジーの利用
  7. 受容野(receptive field)≒ 網膜細胞 http://bsd.neuroinf.jp/wiki/受容野
  8. 受容野(receptive field)≒ 網膜細胞 On Center Cell On Center CellOff Center Cell Off Center Cell https://en.wikipedia.org/wiki/Hypercomplex_cell
  9. 単純型細胞と複雑型細胞 https://en.wikipedia.org/wiki/Hypercomplex_cell 受容野を並べて単純細胞を形成 +に光、-には当てないと興奮反応 +に光、-にも光を当てると 相殺されて興奮反応なし 単純型細胞
  10. 単純型細胞と複雑型細胞 http://www.cns.nyu.edu/~david/courses/perception/lecturenotes/V1/lgn-V1.html 複雑型細胞 平行移動しても反応が起こるが、回転すると反応しない。
  11. やっと本題に入ります。 この神経科学的知見を 数理的に扱い、 「物体カテゴリ認識」に応用します。
  12. 単純型細胞と複雑型細胞のモデル 受容野 単純型細胞 複雑型細胞 ピンクの部分がフィルター
  13. 単純型細胞と複雑型細胞のモデル 受容野 単純型細胞 複雑型細胞 ピンクの部分がフィルター
  14. 単純型細胞と複雑型細胞のモデル 受容野 単純型細胞 複雑型細胞 ピンクの部分がフィルター
  15. 単純型細胞と複雑型細胞のモデル 受容野 単純型細胞 複雑型細胞 ピンクの部分がフィルター
  16. 単純型細胞と複雑型細胞のモデル 受容野 単純型細胞 複雑型細胞 ピンクの部分がフィルター
  17. 単純型細胞と複雑型細胞のモデル 受容野 単純型細胞 複雑型細胞 ピンクの部分がフィルター
  18. 単純型細胞と複雑型細胞のモデル 受容野 ピンクの部分がフィルター 青いセルは入力が ある事を示している 単純型細胞 複雑型細胞
  19. 単純型細胞と複雑型細胞のモデル 受容野 単純型細胞 複雑型細胞 この左上のセルは受容野の入力が ずれてしまうともう反応しない 入力パターンが平行移動している
  20. 単純型細胞と複雑型細胞のモデル 受容野 単純型細胞 複雑型細胞 入力パターンが回転してしまうと、 反応しなくなってしまう
  21. • ネオコグニトロン   単純型細胞、複雑型細胞の2層構造を、   最初に工学的パターン認識に応用 • LaNet   畳込みネットのルーツとされる    ( http://yann.lecun.com/exdb/lenet/ ) 類似の手法
  22. 全体の構造
  23. • 全結合層(fully-connected layer) • 畳込み層(convolution) • プーリング層(pooling) • 局所コントラスト正規化層 (Local Contrast Normalization, LCN) 畳込みネットで使われるレイヤーの種類 → 前章までで扱っていたのは全結合層 l-1層の出力は、l 層の全素子に入力される
  24. 典型的畳込みネットの構造input(image) convolution convolution pooling LCN convolution pooling fully-connected fully-connected softmax output(categorylabel) 畳込み層(convolution)が複数続いた後、プーリング層が最後に 付加され、それを1まとまりとする事が多い。 目的が分類であれば最終の出力にシグモイド関数の多変量版であ る、ソフトマックス関数を使用する。 ソフトマックス関数 fi(x) = exp(xi) Pn j exp(xj) example
  25. 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
  26. 畳込みの定義
  27. 畳込みの定義 (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) Wpixel W pixel W x W画素のアドレス 0 0 1 0 ・・・ 0 0 0 0 0 1 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 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 Hpixel H x H 画素のフィルター xij(i, j) 画素の畳込みの定義 uij = H 1X p=0 H 1X q=0 xi+p,j+qhpq ※ 本当はxの添え字のpとqの前は−が正しいが  実質的な違いはないため、上記とする慣例
  28. 畳込みの定義 (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) Wpixel W pixel W x W画素のアドレス 0 0 1 0 ・・・ 0 0 0 0 0 1 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 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 Hpixel H x H 画素のフィルター xij(i, j) 画素の畳込みの定義 uij = H 1X p=0 H 1X q=0 xi+p,j+qhpq ※ 本当はxの添え字のpとqの前は−が正しいが  実質的な違いはないため、上記とする慣例
  29. 畳込みの働き cosフィルター 画像処理でおなじみのLenna https://gist.github.com/matsuken92/5b78c792f2ab98576c5c 畳込み uij = H 1X p=0 H 1X q=0 xi+p,j+qhpq フィルタが表す特徴的な濃淡構造 を画像から抽出する
  30. 畳込みの働き cosフィルター 画像処理でおなじみのLenna 畳込み uij = H 1X p=0 H 1X q=0 xi+p,j+qhpq https://gist.github.com/matsuken92/5b78c792f2ab98576c5c フィルタが表す特徴的な濃淡構造 を画像から抽出する
  31. ちなみに
  32. 畳込みの働き フィルターのサイズは・・・
  33. 畳込みの働き フィルターのサイズは・・・ これくらい
  34. パディング (W 2bH/2c) ⇥ (W 2bH/2c) bH/2cbH/2c W H b·c※ は小数点以下切り下げ x00 画像からはみ出る部分に フィルタを重ねる方法 このサイズの分だけ 画像が小さくなって しまう・・・。 この画像サイズ減少を 避けるために 使うのが、パディング
  35. パディング H 1 数式を素直に解釈 するとこうなるの では? uij = H 1X p=0 H 1X q=0 xi+p,j+qhpq x00
  36. ゼロパディング (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 「ふち」の値を
  37. ゼロパディング (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辺で折り返して未定部分 の画素を決める 最周囲の画素値を外挿する などの方法もある
  38. ストライド (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以上のストライドを 適用することが一般的
  39. ストライド (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以上のストライドを 適用することが一般的
  40. ストライド (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以上のストライドを 適用することが一般的
  41. ストライド (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以上のストライドを 適用することが一般的
  42. 畳込み層
  43. 受容野 ピンクの部分がフィルター 青いセルは入力が ある事を示している 単純型細胞 複雑型細胞 畳込み層 畳込み層 前述の2層ネットワークの中間層(単純型細胞)部分が これに該当
  44. 畳込み層 実用的な畳込みネットでは1枚のグレースケール画像に 対してではなく、RGB等、多チャネルの画像に対し複数 のフィルターを並行して畳み込む演算を行う。 W W K W :画素数 K :チャネル数 K=3のRGB画像の例 W ⇥ W ⇥ K画像サイズ :
  45. 畳込み層 中間層(畳込み層やプーリング層)では一般的にK=16や K=256等、それ以上のチャネル数も扱う。 中間層での画像サイズ( )をマップ(map)と 呼ぶ場合もある W ⇥ W ⇥ K
  46. バイアスは のように に依存せず、画素の位置に依存 せず設定するのが一般的(  全体の濃さになるイメージ) 畳込み層 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, j uijm b0
  47. 畳込み層 … W W K フィルタ1 * … H H K hpqk0 f(·) m = 0 uij0 zij0 の各画素に対し同一の重み が共有される。 このことは重み共有(weight sharing, weight tying)と呼 ばれる zij0 hpqk0 b0
  48. 畳込み層 … W W K フィルタ1 * H H K hpqk0 f(·) m = 0 uij0 zij0 b0 の各画素に対し同一の重み が共有される。 このことは重み共有(weight sharing, weight tying)と呼 ばれる zij0 hpqk0
  49. 畳込み層 … W W K フィルタ1 * H H K hpqk0 f(·) m = 0 uij0 zij0 b0 の各画素に対し同一の重み が共有される。 このことは重み共有(weight sharing, weight tying)と呼 ばれる zij0 hpqk0
  50. … 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
  51. 畳込み層 畳込み層の出力もまた、フィルタ数Mをチャネル数と解釈 し、      の多チャネルの画像とみなすことができる。W ⇥ W ⇥ M
  52. 畳込み層 … 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 となる
  53. 畳込み層 畳込みネットのパラメーター最適化にも、勾配降下法を 適用する。 最適化の対象はフィルタ  とバイアス 同様に、誤差逆伝播法を用いて勾配計算を行う (詳細は後ほど) uijm = K 1X k=0 H 1X p=0 H 1X q=0 z (l 1) i+p,j+q,khpqkm + bijm hpqkm bijm
  54. プーリング層
  55. プーリング層 プーリング層は通常、畳込み層の直後に置かれる。 input(image) convolution convolution pooling LCN convolution pooling fully-connected fully-connected softmax output(categorylabel) example
  56. 受容野 ピンクの部分がフィルター 青いセルは入力が ある事を示している プーリング層 下記の2層ネットワークの後ろの層(複雑型細胞)部分が これに該当。 対象特徴量が若干変化した場合(や平行移動)でもこの プーリング層が不変となるよう設計される。 単純型細胞 複雑型細胞 プーリング層
  57. 受容野 ピンクの部分がフィルター 青いセルは入力が ある事を示している プーリング層 下記の2層ネットワークの後ろの層(複雑型細胞)部分が これに該当。 対象特徴量が若干変化した場合(や平行移動)でもこの プーリング層が不変となるよう設計される。 単純型細胞 複雑型細胞 プーリング層
  58. 受容野 ピンクの部分がフィルター 青いセルは入力が ある事を示している プーリング層 下記の2層ネットワークの後ろの層(複雑型細胞)部分が これに該当。 対象特徴量が若干変化した場合(や平行移動)でもこの プーリング層が不変となるよう設計される。 単純型細胞 複雑型細胞 プーリング層
  59. プーリング層 zij H H この中に含まれる画素の 集合を で表す。Pij W W k H2 チャネル 毎に独立に 個ある画素値を使って 1つの画素値 を求 める uijk パディング
  60. 1. 最大プーリング (max pooling) 2. 平均プーリング (average pooling) 3. Lpプーリング (Lp pooling) 3種のプーリング層
  61. 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 zpqk uijk H2 個の画素値の最大値を利用 画像認識への応用では定番
  62. 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 zpqk uijk H2 個の画素値の最大値を利用 画像認識への応用では定番
  63. 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 zpqk uijk H2 個の画素値の最大値を利用 画像認識への応用では定番
  64. 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 zpqk uijk H2 個の画素値の最大値を利用 画像認識への応用では定番
  65. 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 zpqk uijk H2 個の画素値の最大値を利用 画像認識への応用では定番
  66. 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 zpqk uijk H2 個の画素値の最大値を利用 画像認識への応用では定番
  67. 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 zpqk uijk H2 個の画素値の最大値を利用 画像認識への応用では定番
  68. 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 zpqk uijk H2 個の画素値の最大値を利用 画像認識への応用では定番
  69. 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 zpqk uijk 2.平均プーリング uijk = 1 H2 X (p,q)2Pij zpqk H2 個の画素値の平均値を利用
  70. 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 zpqk uijk 2.平均プーリング uijk = 1 H2 X (p,q)2Pij zpqk H2 個の画素値の平均値を利用
  71. 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 zpqk uijk 2.平均プーリング uijk = 1 H2 X (p,q)2Pij zpqk H2 個の画素値の平均値を利用
  72. 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 zpqk uijk 2.平均プーリング uijk = 1 H2 X (p,q)2Pij zpqk H2 個の画素値の平均値を利用
  73. 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 zpqk uijk 2.平均プーリング uijk = 1 H2 X (p,q)2Pij zpqk H2 個の画素値の平均値を利用
  74. 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 zpqk uijk 2.平均プーリング uijk = 1 H2 X (p,q)2Pij zpqk H2 個の画素値の平均値を利用
  75. 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 zpqk uijk 2.平均プーリング uijk = 1 H2 X (p,q)2Pij zpqk H2 個の画素値の平均値を利用
  76. 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 zpqk uijk 2.平均プーリング uijk = 1 H2 X (p,q)2Pij zpqk H2 個の画素値の平均値を利用
  77. 3.Lpプーリング https://gist.github.com/matsuken92/5b78c792f2ab98576c5c#file-03_anim_lp_pooling-py uijk = 0 @ 1 H2 X (p,q)2Pij zP pqk 1 A 1 P 最大プーリングと平均プーリングを 含む一般性を持った表記 のとき、平均プーリング のとき、最大プーリング P = 1 P = 1 一様分布の例
  78. 3.Lpプーリング https://gist.github.com/matsuken92/5b78c792f2ab98576c5c#file-03_anim_lp_pooling-py uijk = 0 @ 1 H2 X (p,q)2Pij zP pqk 1 A 1 P 最大プーリングと平均プーリングを 含む一般性を持った表記 のとき、平均プーリング のとき、最大プーリング P = 1 P = 1 ベータ分布の例
  79. 通常、プーリングでは入力のチャネル毎に独立に行い、 そのため出力のチャネル数 は入力と一致するK プーリング層 … W W K … W W K プーリング層 チャネル数Kは変わらない ※ 通常プーリング層には 活性化関数は適応しない プーリング層の結合の重みは固定され、調整不可。 よって、学習により変化するパラメータは無い。
  80. 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 zpqk uijk プーリング層のストライド プーリングサイズ 、ストライド を設定した場合s = 25 ⇥ 5 b(W 1)/sc + 1 出力層のサイズは よって今回のケースでは b(8 1)/2c + 1 = 4
  81. 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 zpqk uijk プーリング層のストライド プーリングサイズ 、ストライド を設定した場合s = 25 ⇥ 5 b(W 1)/sc + 1 出力層のサイズは よって今回のケースでは b(8 1)/2c + 1 = 4
  82. 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 zpqk uijk プーリング層のストライド プーリングサイズ 、ストライド を設定した場合s = 25 ⇥ 5 b(W 1)/sc + 1 出力層のサイズは よって今回のケースでは b(8 1)/2c + 1 = 4
  83. 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 zpqk uijk プーリング層のストライド プーリングサイズ 、ストライド を設定した場合s = 25 ⇥ 5 b(W 1)/sc + 1 出力層のサイズは よって今回のケースでは b(8 1)/2c + 1 = 4
  84. 1. 単一チャネル画像の正規化 1-1.減算正規化 1-2.除算正規化 2. 多チャネル画像の正規化 2-1.減算正規化 2-2.除算正規化 正規化層 (局所コントラスト正規化)
  85. コントラスト http://homepage2.nifty.com/tsugu/sotuken/ronbun/sec3-2.html#0005 High contrast Low contrast Original 色の明暗の差異を変化させる処理で、 これを上げると明暗のはっきりした画 像となり、下げると色の明暗がなくな り中間色が多く現れる
  86. 明るさ http://www.mis.med.akita-u.ac.jp/~kata/image/monogamma.html High Brightness Low Brightness Original 明るさの調整は、各画素ごとの画素値を 指数関数で変換することによって行う γ = 1.5 γ = 2.0
  87. 正規化 exijk = 1 N NX n=1 x (n) ijk 各チャネルの各画素値のサンプル間平均を算出 xijk xijk exijk 対象とする画像からこの平均を差し引いた物を入力データ とする。 x (n) ijk :サンプルの画素   の (i, j) チャネル の画素値k 画像1枚1枚に対して個別に行う処理 学習画像の画素ごと平均 局所コントラスト正規化
  88. 局所コントラスト正規化:減算正規化 単一チャネル画像(グレースケールetc)の場合 zij H Pij W H W W W xij ¯xij = 1 H2 X (p,q)2Pij xi+p,j+q ¯xij = X (p,q)2Pij wpqxi+p,j+q 入力画像の画素値濃淡から に含まれる 画素の濃淡値の平均を差し引く Pij 重み付き平均 zij = xij ¯xij 平均
  89. 局所コントラスト正規化:減算正規化 単一チャネル画像(グレースケールetc)の場合 ¯xij = X (p,q)2Pij wpqxi+p,j+q 重み付き平均 重み付き平均のウェイトは足して1になるように設定し、 X (p,q)2Pij wpq = H 1X p=0 H 1X q=0 wpq = 1 0.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 中央で最大値を取り、周辺部に向けて 低下するような値とする。 ウェイトの例
  90. 局所コントラスト正規化:減算正規化 H = 17 https://gist.github.com/matsuken92/5b78c792f2ab98576c5c H = 9H = 5H = 3
  91. 局所コントラスト正規化:除算正規化 単一チャネル画像(グレースケールetc)の場合 ¯xij = X (p,q)2Pij wpqxi+p,j+q 重み付き平均 X (p,q)2Pij wpq = H 1X p=0 H 1X q=0 wpq = 1 2 ij = X (p,q)2Pij wpq(xi+p,j+q ¯xij)2 領域 のが措置の分散を計算し、これを用いて標準化を行う。 この画素値分散は、 Pij を利用する。これを利用して正規化をした値は下記になる。 zij = xij ¯xij ij
  92. 局所コントラスト正規化:除算正規化 ただし、 をそのまま使うと、濃淡が少ない局所領域ほどzij = xij ¯xij ij 濃淡が増幅されてしまい、ノイズが強調される等の不都合がある。 これを回避するためにある定数 を設定し、濃淡の標準偏差がこれを下回ると きは をつかって除算するようにする。 c c zij = xij ¯xij max(c, ij) 同様の効果が に応じて連続的に変化するij を使う場合もある。 zij = xij ¯xij q c + 2 ij
  93. 局所コントラスト正規化:減算正規化 多チャネル画像(RGB etc)の場合 チャネル間の相互作用を考え、チャネル毎の同区間 の平均値を使用する ¯xij = 1 K K 1X k=0 X (p,q)2Pij wpqxi+p,j+q,k Pij 画素 毎に違うが、チャネル間で共通の を差し引く。(i, j) ¯xij zijk = xijk ¯xij … W W K ¯xij zijk
  94. 局所コントラスト正規化:除算正規化 多チャネル画像(RGB etc)の場合 2 ij = 1 K K 1X k=0 X (p,q)2Pij wpqk(xi+p,j+q,k ¯xij)2 局所領域 の分散Pij 除算正規化の計算 zijk = xij ¯xijk q c + 2 ij zijk = xijk ¯xij max(c, ij) 分散の大きさに合わせて連続的に変化させる場合は
  95. チャネル間の相互作用を考える → 生体の視覚特性をモデル   に取り入れている ・コンテンツの違いには敏感 ・明るさやコントラストの  絶対的差異には鈍感
  96. 勾配の計算
  97. z(l) = f(u(l) )(l) = f(W(l) z(l 1) + b(l) )(l) m 1 1 m 1 m 1 nm n 復習 b (l) j
  98. ただし、 が 全結合でない W(l)
  99. 畳込み層 … 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)が適用されている
  100. … H H K 重み行列 はサイズ の 個のフィルタの 係数 を規則的に並べた物と解釈できる … H H K … H H K M=3のとき H ⇥ H ⇥ K ⇥ M 畳み込みの勾配計算 W(l) M hpqkm m n W(l) どうやって?
  101. の長さは 畳み込みの勾配計算 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)
  102. … h0000 h0100 h0200 h1000 h1100 h1200 h2000 h2100 h2200 Z (l 1) 0 Z (l 1) 0 U (l) 0 z20,0 z00,0 z01,0 z02,0 z10,0 z11,0 z12,0 z21,0 z22,0 i j
  103. … h0000 h0100 h0200 h1000 h1100 h1200 h2000 h2100 h2200 Z (l 1) 0 Z (l 1) 0 U (l) 0 z20,0 z00,0 z01,0 z02,0 z10,0 z11,0 z12,0 z21,0 z22,0 i j wji = h0100
  104. … h0000 h0100 h0200 h1000 h1100 h1200 h2000 h2100 h2200 Z (l 1) 0 Z (l 1) 0 U (l) 0 z20,0 z00,0 z01,0 z02,0 z10,0 z11,0 z12,0 z21,0 z22,0 i j
  105. … h0000 h0100 h0200 h1000 h1100 h1200 h2000 h2100 h2200 Z (l 1) 0 Z (l 1) 0 U (l) 0 z20,0 z00,0 z01,0 z02,0 z10,0 z11,0 z12,0 z21,0 z22,0 i j
  106. 畳み込みの勾配計算 h0000 h0100 h0200 h1000 h1100 h1200 h2000 h2100 h2200 h h2211 h2111 h2011 h0011 h2210 h0010 h2201 h0001 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 tij のとき wji = tT jih 1 2 3 36 35 … r … …… 1 3 … r … 36 35 …… (i = 3, j = 2) r=2
  107. 畳み込みの勾配計算 h0000 h0100 h0200 h1000 h1100 h1200 h2000 h2100 h2200 h h2211 h2111 h2011 h0011 h2210 h0010 h2201 h0001 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 tij 1 2 3 36 35 … r … …… 1 3 … r … 36 35 …… r=2 wji = tT jih tjir のとき(i = 3, j = 2)
  108. 畳み込みの勾配計算 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)
  109. 畳み込みの勾配計算 (@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)
  110. 復習 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 f0(l) @En @w (l) ji = @En @u (l) j @u (l) j @w (l) ji = f0 (u (l) j )( X k w (l+1) kj (l+1) k )z (l 1) i
  111. 畳み込みの勾配計算 @En @w (l) ji = @En @u (l) j @u (l) j @w (l) ji = f0 (u (l) j )( X k w (l+1) kj (l+1) k )z (l 1) i 行列表記 は行列の成分毎の積 (6.5) (l) = f0(l) (u(l) ) (W(l+1)T (l+1) ) @E @W(l) = @W = (l) z(l 1)T (l) j = f0 (u (l) j )( X k w (l+1) kj (l+1) k ) m 1 1 1 m nm n
  112. プーリング層の扱い プーリング層は学習対象のパラメーターがないので、勾配 計算は不要。 デルタの逆伝播計算のみ行う プーリングの種類毎に を定め前ページ の(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
  113. Thanks • Azusa Colors (Keynote template) http://sanographix.github.io/azusa-colors/
Advertisement