論文輪読: data-dependent initializations of convolutional neural networks / all you need is a...

31
論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init 味曽野雅史 (松尾研 B4) 2016/2/12 2016/2/12 味曽野雅史 (松尾研 B4) 1

Upload: mmisono

Post on 11-Apr-2017

907 views

Category:

Science


1 download

TRANSCRIPT

Page 1: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of ConvolutionalNeural Networks / All You Need Is a Good Init

味曽野雅史 (松尾研 B4)

2016/2/12

2016/2/12 味曽野雅史 (松尾研 B4) 1

Page 2: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

基礎情報: Data-Dependent Initializations of CNNI URL: http://arxiv.org/abs/1511.06856I 学会: ICLR’16I 著者: Philipp Krahenbuhl, Carl Doersch, Jeff Donahue, Trevor DarrellI 所属: UCB, CMU

1. What is this?I CNNのための高速かつシンプルなデータ依存のネットワーク初期化方法を提案

2. 先行研究との比較I 学習データが少ないときに有効な初期化方法を探る (not 学習速度)I (ランダムな初期化ではなく)構造的な初期化をおこなう

3. 提案手法I 各重みが同じ割合で学習されるように重みの初期値を調整する

4. 実験I VOC 2007 の分類/検出タスクでの性能比較 (一部実験未完)

5. 議論I 事前学習用データを使わない場合に提案手法は効果を発揮.ただし ILSCRC のモデルが使えるなら現状それを使った方が良さそう

2016/2/12 味曽野雅史 (松尾研 B4) 2

Page 3: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

fine-tuning

I 訓練データが少ないとき,まず数千万枚のデータがある ImageNetを利用してネットワークを学習(事前学習)し,その後 fine-tuningするのが一般的

2016/2/12 味曽野雅史 (松尾研 B4) 3

Page 4: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

何故 fine-tuningをおこなうか

1. 訓練速度の向上2. 汎化能力の向上

I 適切に初期化をおこなえば,多くの場合 fine-tuning をしなくても訓練誤差は減る

I しかし fine-tuningをしない場合,テスト時の性能が悪化することが多数報告されている

I 訓練データが少ないとき,fine-tuningをすれば良いことはわかっているが,何が汎化能力の向上に寄与するのかほとんど分かっていない

2016/2/12 味曽野雅史 (松尾研 B4) 4

Page 5: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

関連研究 : どう fine-tuningすべきか?

I Yosinski et al. (NIPS’14)I 様々な条件で fine-tuningをおこない性能比較I 結果: 少数の訓練データで fine-tuningをするとき,訓練によって一部の層の重みのみを大きく変更する(他の層の重みは固定する)より,全ての層

の重みを少し変更した方がテスト時の性能が良い

I この結果から得られる仮説: 各層が同じ割合で重みを学習した方がいいのでは?

I 各層の重みの leraning rate を同じにするだけでは不十分I zk = relu(Wkzk−1 + bk), zk+1 = Wk+1zk + bk+1 のとき α > 0 を用いて,I zk+1 = relu(α(Wkzk−1 + bk)), zk+1 = 1/α(Wk+1zk) + bk+1 とすれば zk+1の値は変わらない

I 一方勾配値は変化する

2016/2/12 味曽野雅史 (松尾研 B4) 5

Page 6: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

提案手法: Data-Dependent Initialization

I 目的: ネットワークの各パラメータ(重み)が均等に学習するようにしたいI 各パラメータに関する勾配の大きさの割合を等しくしたい

I やること: パラメータの初期値を各層がパラメータを同じ速さで学習するように設定する

I 手順

0. 適当な方法で重みを初期化する1. レイヤーごとに重みの正規化2. レイヤー間でスケールを合わせる

2016/2/12 味曽野雅史 (松尾研 B4) 6

Page 7: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

手法の概要

I N 層のネットワーク,損失関数 L(zN) = ηTzN とする

I η = N (0, I), L(zN) はラベルに依存しない損失関数I C2

k,i,j を k 層目の重みWk(i , j)に関する勾配のノルムの平均だとする

I ここで D は初期化に利用する適当な画像集合,yk は逆伝播誤差I 各重みが同じ割合で学習するようにしたい → 式 (1)を重みの大きさ

||Wk ||22 で割ったものが各重みで同じになるようにしたい

I しかし通常 yk は zk−1 の関数であるため,zk−1 に関係する重みを変更する

と,それは yk にも影響するI そこで式 (2)を簡略化する

2016/2/12 味曽野雅史 (松尾研 B4) 7

Page 8: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

手法の概要 (cont’d)

I 各重みが同じ割合で学習するように重み

を初期化する代わりに,重み行列Wkの各列が同じ割合で学習するようにする

I ここで N は重み行列の行数I zk−1(j) : 下の層の一つの活性化値I ||yk ||2 : 逆伝播誤差のノルムI 通常 ||yk ||2 � zk−1(j)なので,zk−1(j)と ||yk ||2 が独立であると近似すると,

2016/2/12 味曽野雅史 (松尾研 B4) 8

Page 9: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

1. レイヤーごとに重みの正規化

I k + 1層目が入力として受け取る各チャネルが均等に分布するようにしたいI Ez0∼D,a,b [zk(i , a, b)] = β, Ez0∼D,a,b [(zk(i , a, b) − β)2] = 1にする

I |D̃|は数十~数百で十分らしいI β について以降の論文で出てこないので詳細不明..

2016/2/12 味曽野雅史 (松尾研 B4) 9

Page 10: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

2. レイヤー間でスケールを合わせるI 手順 1. で zk(i)の分散は 1になるので,重み行列Wk の列 i に関する C2

k,iは全ての列で一定となる

I 一方で,レイヤー間については何も保証されないI 各層における平均の変化率 C̃k,i,j を計算,その幾何平均を全体の変化率と

するI 各層の平均変化率が全体の変化率に近づくようスケールするI これを収束するまで繰り返す

I α = 0.25を使ったらしい / 通常数十回で収束

2016/2/12 味曽野雅史 (松尾研 B4) 10

Page 11: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

重みの初期値に関して

I 重みの初期値はランダムガウシアンでなくても良いI 実験では 2つのデータ依存の重み初期値を利用

I ただし畳み込み層についてのみ (全結合層に対しては十分なデータがなかったため)

I ちょっと詳細分かってない

1. PCA-based initializationI 各レイヤーの出力が白色化 / 無相関になるようにする

2. k-means based initializationI Coates & Ng (2012)

2016/2/12 味曽野雅史 (松尾研 B4) 11

Page 12: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

実験設定

I 実装: CaffeI データセット: PASCAL VOC 2007 ; 訓練画像 5011, テスト画像 4952I ネットワーク: CaffeNet, (VGG, GoogLeNet)I タスク

1. 画像分類 (20 カテゴリ)2. 物体検出 (Fast R-CNN)

2016/2/12 味曽野雅史 (松尾研 B4) 12

Page 13: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

実験 1: C̃k,i,j に関して

I 複数の初期化方法について,C̃k,i,j を VOCの 100の画像を使って計算I 比較対象

I ImageNet pre-trained model (Krizhevsky et al. 2012)I ランダムガウシアンI unscaled k-meansI 提案手法 (gaussian, k-means)

2016/2/12 味曽野雅史 (松尾研 B4) 13

Page 14: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

実験 1: スケーリング手法別の比較

I VOC 2007分類タスクI 重みの初期値: gaussian / k-means

I k-meanの初期値を Algorithm1,2でスケールさせたものが最も良い成績

2016/2/12 味曽野雅史 (松尾研 B4) 14

Page 15: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

実験 2: 重みの初期化方法別の比較

I Glorot & Bengio はいわゆる xavier initialization

I Glorot & Bengio や He et al. は (CaffeNetで使われる)Poolingや LRNといったレイヤーよりも ReLUやtanhを活性化関数として利用する線形なレイヤーに注目した手法 (なので,random gaussianよりも精度が下がった可能性がある)

2016/2/12 味曽野雅史 (松尾研 B4) 15

Page 16: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

実験 3: 他の事前学習手法との比較

I 提案手法 (k-means)は分類タスクにおいて他の事前学習手法に匹敵する性能

I 提案手法 (k-means)と他の事前学習手法を組み合わせると精度が向上I ImageNet の pre-trained モデルと組み合わせると..?

2016/2/12 味曽野雅史 (松尾研 B4) 16

Page 17: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

実験 3: 初期化によって得られる特徴量

Figure 1:2016/2/12 味曽野雅史 (松尾研 B4) 17

Page 18: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

実験 4: ネットワーク別比較

I VGG, GoogLeNetでも実験I 結果は分類タスクのMAPがgaussian, k-meanの初期化それぞれの場合で

I VGG: 53.8%, 56.5%I GoogLeNet: 50.0%, 55.0%

I CaffeNetよりも悪い結果I 訓練データ数が少ないことが影響している可能性I CaffeNet と比べると訓練時間は 4~12 倍遅い

2016/2/12 味曽野雅史 (松尾研 B4) 18

Page 19: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

実験 5: ImageNetの訓練

I CaffeNet

2016/2/12 味曽野雅史 (松尾研 B4) 19

Page 20: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

実験 5: ImageNetの訓練

I GoogLeNet

I 学習終了していない

2016/2/12 味曽野雅史 (松尾研 B4) 20

Page 21: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

まとめ

I CNNのための新しい重みの初期化方法を提案I 各重みが均等に学習されるように

I モデルを一から訓練するときに効果を発揮I ただし ILSVRCのモデルを fine-tuningできるならまだそれを使った方が物体認識系は精度が出そう

2016/2/12 味曽野雅史 (松尾研 B4) 21

Page 22: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

基礎情報: All You Need Is a Good Init

I URL: http://arxiv.org/abs/1511.06422I 学会: ICLR’16I 著者: Dmytro Mishkin, Jiri MatasI 所属: Czech Technical University in PragueI コード: https://github.com/ducha-aiki/LSUVinit

1. What is this?I こちらもシンプルな重み初期化方法の提案

I 汎化性能の向上 / 学習速度の向上

2. 先行研究との比較I Orthonormal Initialization (Saxe et al. 2014) の拡張

3. 提案手法I 一番最初だけBatch Normalization する感じ

4. 実験I MNIST / CIFAR-10 / ImageNet

2016/2/12 味曽野雅史 (松尾研 B4) 22

Page 23: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

提案手法: Layer-Sequential Unit-Variance (LSUV) Initialization

1. Orthonormal Initialization (Saxe et al. 2014)1.1 重みを分散 1 のガウシアンで初期化1.2 QR あるいは SVD を適用して重みをその成分に置き換える

2. 各畳み込み層および全結合層における分散を 1にする

I CaffeNetの場合 fc6の重み行列は 9216x4096. これの SVDには数分かかる

2016/2/12 味曽野雅史 (松尾研 B4) 23

Page 24: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

実験 : MNIST / CIFAR-10

I Fitnetを利用

2016/2/12 味曽野雅史 (松尾研 B4) 24

Page 25: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

実験 : CIFAR-10

Figure 2:

2016/2/12 味曽野雅史 (松尾研 B4) 25

Page 26: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

実験 : 各初期化手法 / 活性化関数別比較

I FitNet4, CIFAR-10

I Residual learning(He et al. 2015)を取り入れたFitNet4

2016/2/12 味曽野雅史 (松尾研 B4) 26

Page 27: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

実験 : Batch Normalizationとの比較

I LSUVは最初だけbatch normalizationしたものと考えられるI CIFAR-10に関しては LSUVはBatch Normalizationと同程度の性能I ImageNet等の大規模なデータに関しては?

2016/2/12 味曽野雅史 (松尾研 B4) 27

Page 28: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

実験 : (補足) Batch Normalizationの場所

I FitNet4, CIFAR-10において BNは活性化関数の後ろに入れた方が良い結果となった

I 理由は?

2016/2/12 味曽野雅史 (松尾研 B4) 28

Page 29: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

実験 : ImageNet

I CaffeNet: 最初は LSUVの方が良いが,最終的には original (Krizhevsky etal. 2012)の方が良い結果

2016/2/12 味曽野雅史 (松尾研 B4) 29

Page 30: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

実験 : ImageNet2I GoogLeNet: LSUVの方がいい結果

2016/2/12 味曽野雅史 (松尾研 B4) 30

Page 31: 論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

論文輪読: Data-Dependent Initializations of Convolutional Neural Networks / All You Need Is a Good Init

まとめ

I 提案手法自体は非常にシンプルI 何故これをしようと思ったのかよく分からなかった..I BNとの比較の実験がもう少し欲しかったI Data-Dependent Initializations of CNNと比べてどちらがいいのか?

2016/2/12 味曽野雅史 (松尾研 B4) 31