layer normalization@nips+読み会・関西

44
Layer Normalization Jimmy Lei Ba Jamie Ryan Kiros Geoffrey E.Hinton 紹介者:西田 圭吾 阪大 生命機能 M1 2回「NIPS+読み会・関西」

Upload: keigo-nishida

Post on 16-Apr-2017

3.524 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Layer Normalization@NIPS+読み会・関西

Layer Normalization

Jimmy Lei Ba Jamie Ryan Kiros Geoffrey E.Hinton

紹介者:西田 圭吾

阪大 生命機能 M1

第2回「NIPS+読み会・関西」

Page 2: Layer Normalization@NIPS+読み会・関西

• 西田 圭吾

• 大阪大学 生命機能研究科 M1

• 理研QBiC 計算分子設計研究グループ(泰地研) 研修生

• 科学技術計算専用チップ設計

• 学部時代は細胞のイメージングとか、半導体メモリの結晶評価とか

自己紹介

例)分子動力学計算専用計算機 MDGRAPE-4

Page 3: Layer Normalization@NIPS+読み会・関西

•自己紹介

•Layer Normalization 論文概要

•背景

•Batch Normalization

•Weight Normalization

•Layer Normalization

•以上3つの比較

目次

Page 4: Layer Normalization@NIPS+読み会・関西

• 目的State-of-the-artなDNNの学習時間を短縮したい

中間層の出力を正規化することで実現させる

• アイデアBatch Normalizationを作り変えてみた

1. バッチサイズに依存しない(オンライン学習や小さなミニバッチOK)

2. 学習とテストの計算方法が同一

3. そのままRNNに適応可能

• その他関連研究との比較

Layer Normalization概要

Page 5: Layer Normalization@NIPS+読み会・関西

• VGG net(Karen Simonyan et al. ICLR 2015)

16/19層CNN+FCGPU: Titan Black 4枚学習時間:2~3週間

• Google’s Neural Machine Translation system (Yonghui Wu et al. 2016)

8層 LSTM RNNGPU: Tesla k80 96枚学習時間:1週間弱

背景 : DNN研究のボトルネック

膨大な学習時間

図 https://arxiv.org/pdf/1509.07627v1.pdf

Page 6: Layer Normalization@NIPS+読み会・関西

•DNN演算の並列化(Jeffrey Dean et al. NIPS 2012)

データやDNNそのものを分割して計算する通信遅延やソフトウェアの複雑化が課題

背景 :学習時間を減らすために

マシンでゴリ押し

Page 7: Layer Normalization@NIPS+読み会・関西

•勾配法そのものを改良する2次微分を扱うものになると計算コスト膨大

背景 :学習時間を減らすために

学習の効率を上げる

Page 8: Layer Normalization@NIPS+読み会・関西

•パラメータ空間幾何を修正するBatch Normalization(Sergey Ioffe et al. NIPS 2015)が学習時間の削減に

成功

勾配消失の問題が解決(飽和活性化関数も利用可能に)

背景 :学習時間を減らすために

学習の効率を上げる

Page 9: Layer Normalization@NIPS+読み会・関西

• 活性化関数における飽和領域の微分値はほぼ0

• 誤差の逆伝播が減衰し入力層における勾配が0になる恐れ

背景 : 勾配消失問題

活性化関数の飽和領域

データの流れ

誤差の逆伝播

Page 10: Layer Normalization@NIPS+読み会・関西

• 飽和領域をなくすReLU(x) = max(x,0)

• 初期化の工夫

• 小さな学習率の利用学習によって飽和領域に行くことを防ぐ

背景 : 勾配消失問題

解決策

学習に時間がかかる原因の一つ

Q. そもそもなぜ、DNNは最適化してるのに飽和状態へネットワークが陥るのかA. 学習するごとに各層の出力分布が変わる(internal) covariate shiftが生じるから

Page 11: Layer Normalization@NIPS+読み会・関西

• 共変量シフトが起きる場合の学習はドメイン学習としてよく扱われる

• 論文ではDNNの各層ごとに起きる共変量シフトについて考察

背景 : covariate shift (共変量シフト)

訓練時とテスト時の入力分布の変化

入出力規則(与えられた入力に対する出力の生成規則)は訓練時とテスト時で変わらないが,入力(共変量)の分布が訓練時とテスト時で異なるという状況は共変量シフトと呼ばれている

共変量シフト下での教師付き学習 杉山 将 日本神経回路学会誌, vol.13, no3, pp.111-118, 2006

Page 12: Layer Normalization@NIPS+読み会・関西

• 入力層への入力分布:平均0 分散1

(に線形変換するとうまくいく)

• 中間層への入力分布:決まった入力分布を各層で持たない

(下層のパラメータ依存)

背景 : covariate shift (共変量シフト)

DNNにおける層ごとの入力分布

入力分布平均0,分散1に規格化

中間層入力分布下層パラメータ依存

学習を行うごとに中間層への入力分布が変化する(内的共変量シフト)

Page 13: Layer Normalization@NIPS+読み会・関西

• 各中間層で学習時に想定していた入力分布が変化パラメータが結果的にあらぬ方向へ更新される恐れ

ネットワークが飽和領域に陥りやすい状態に

層が深くなるほど影響が顕著

背景 : covariate shift (共変量シフト)

(内的)共変量シフトがDNNで起きると

入力分布平均0,分散1に規格化

平均0, 分散1入力分布軸

入力分布p(μ=0,σ=1)

入力分布q(p)

入力分布r(q)

Page 14: Layer Normalization@NIPS+読み会・関西

• 各中間層で学習時に想定していた入力分布が変化パラメータが結果的にあらぬ方向へ更新される恐れ

ネットワークが飽和領域に陥りやすい状態に

層が深くなるほど影響が顕著

背景 : covariate shift (共変量シフト)

(内的)共変量シフトがDNNで起きると

入力分布平均0,分散1に規格化

平均0, 分散1入力分布軸

入力分布q(p)

入力分布r(q)

入力分布q(p)を前提に学習

入力分布p(μ=0,σ=1)

Page 15: Layer Normalization@NIPS+読み会・関西

• 各中間層で学習時に想定していた入力分布が変化パラメータが結果的にあらぬ方向へ更新される恐れ

ネットワークが飽和領域に陥りやすい状態に

層が深くなるほど影響が顕著

背景 : covariate shift (共変量シフト)

(内的)共変量シフトがDNNで起きると

入力分布平均0,分散1に規格化

平均0, 分散1入力分布軸

入力分布q(p)

入力分布r(q)

入力分布p(μ=0,σ=1)

入力分布q(p)を前提に学習

入力分布pを前提に学習(こっちは問題なし)

Page 16: Layer Normalization@NIPS+読み会・関西

• 各中間層で学習時に想定していた入力分布が変化パラメータが結果的にあらぬ方向へ更新される恐れ

ネットワークが飽和領域に陥りやすい状態に

層が深くなるほど影響が顕著

背景 : covariate shift (共変量シフト)

(内的)共変量シフトがDNNで起きると

入力分布平均0,分散1に規格化

平均0, 分散1入力分布軸

入力分布q(p)⇒q’(p)

入力分布r(q)⇒r’(q’)

学習後

入力分布p(μ=0,σ=1)⇒p

入力分布q(p)を前提に学習

学習後の入力分布はq’(p)!⇒内的共変量シフト出力がおかしくなる原因

Page 17: Layer Normalization@NIPS+読み会・関西

• 各中間層で学習時に想定していた入力分布が変化パラメータが結果的にあらぬ方向へ更新される恐れ

ネットワークが飽和領域に陥りやすい状態に

層が深くなるほど影響が顕著

背景 : covariate shift (共変量シフト)

(内的)共変量シフトがDNNで起きると

入力分布平均0,分散1に規格化

平均0, 分散1入力分布軸

入力分布q(p)⇒q’(p)

入力分布r(q)⇒r’(q’)

学習後

入力分布p(μ=0,σ=1)⇒p

入力分布q(p)を前提に学習

学習後の入力分布はq’(p)!⇒内的共変量シフト出力がおかしくなる原因

Page 18: Layer Normalization@NIPS+読み会・関西

• 各中間層で出力を正規化する各中間層の入力分布を一定に

大きな学習率の利用が可能

学習の効率を改善させる

• 様々なアプローチBatch Normalization(Sergey Ioffe et al. NIPS 2015)

Weight Normalization(Tim Salimans et al. NIPS 2016)

Layer Normalization(Jimmy Lei Ba et al. NIPS 2016)

背景 : 隠れユニットの正規化

正規化層の導入

入力分布平均0,分散1に規格化

平均0, 分散1入力分布軸

norm

norm

norm

Page 19: Layer Normalization@NIPS+読み会・関西

Batch Normalization

Page 20: Layer Normalization@NIPS+読み会・関西

•ニューロンへの入力和: 𝑎𝑖•𝑎𝑖 = 𝑤𝑖

𝑇𝑥

•ニューロンの出力: ℎ𝑖•ℎ𝑖 = 𝑓(𝑎𝑖 + 𝑏𝑖)

BN :隠れユニット正規化

ニューロンの基本形

ai

x

wi

f(ai+bi)

bi

hi

Page 21: Layer Normalization@NIPS+読み会・関西

• ത𝑎𝑖: 𝑎𝑖を平均0,分散1に正規化ニューロンの出力分布が変わるゲインパラメータg𝑖を導入

BN :隠れユニット正規化

正規化と非線形関数

ai

x

wi

f(ai+bi)

normbi

hi

Page 22: Layer Normalization@NIPS+読み会・関西

•各ニューロンのバッチごとに計算

• ത𝑎𝑖 =g𝑖

σ𝑖

(𝑎𝑖 − μ𝑖)

• μ𝑖 = 𝐸[𝑎𝑖], σ𝑖 = 𝐸 𝑎𝑖 − μ𝑖2

BN :隠れユニット正規化

Batch Normalization

ai

x

wi

f(ai+bi)

normbi

hi

ai

batch size

Page 23: Layer Normalization@NIPS+読み会・関西

•GoogLeNetがベース

•学習率を上げて実験x5が14倍学習が早い徐々に上げると効率的

BN :実験結果

ImageNet classification

メガ!!

Page 24: Layer Normalization@NIPS+読み会・関西

•学習率を上げると重みのスケールが大きくなる逆誤差伝播で誤差が発散する原因

•BNはそのスケールを正規化して発散を防ぐ

BN :うまくいった理由

BNによる重みのスケール補正

𝐵𝑁 𝑊𝑢 = 𝐵𝑁 𝑎𝑊 𝑢 スケール(𝑎倍)しても出力は等価

𝜕𝐵𝑁 𝑎𝑊 𝑢

𝜕𝑢=𝜕𝐵𝑁 𝑊𝑢

𝜕𝑢ヤコビも等価

𝜕𝐵𝑁 𝑎𝑊 𝑢

𝜕(𝑎𝑊)=1

𝑎·𝜕𝐵𝑁 𝑊𝑢

𝜕𝑊勾配は1/𝑎倍(程よく収束)

Page 25: Layer Normalization@NIPS+読み会・関西

Weight Normalization

Page 26: Layer Normalization@NIPS+読み会・関西

•重みを正規化•ミニバッチのサンプル間の依存関係は無し•オンライン学習やRNNに拡張可能•CNNのように重みの数が小さいものに対して計算が軽い•データ依存重み初期化が活用できる•大まかにはBNの低コストな近似計算

• 比較に使うための紹介程度です

WN :まとめ

Weight Normalization

Page 27: Layer Normalization@NIPS+読み会・関西

•各ニューロンの出力から重みを正規化

• 𝒕 = 𝒘𝑇𝒙 + 𝑏

• μ = 𝐸 𝒕 , σ = 𝐸 𝒕 − μ 2

• ഥ𝒘 ←1

σ𝒘, ത𝑏 ←

𝑏−μ

σ

• 𝒉 = f(𝑡−μ

σ)

= f(ഥ𝒘𝑇𝒙 + ത𝑏)

WN :隠れユニット正規化

Weight Normalization

a

x

w

f( )

norm

b

h

wTx+b--

Page 28: Layer Normalization@NIPS+読み会・関西

Layer Normalization

Page 29: Layer Normalization@NIPS+読み会・関西

•同じ層のニューロン間で正規化

•ミニバッチのサンプル間の依存関係は無し

•オンライン学習やRNNに拡張可能

•CNNはBatch Normより上手くいかない場合が...

LN :まとめ

Layer Normalization

Page 30: Layer Normalization@NIPS+読み会・関西

•各層のニューロンごとに計算

•BNのバッチサイズをニューロン

に変えただけ

• ത𝑎𝑖 =g𝑖

σ𝑖

(𝑎𝑖 − μ𝑖)

• μ𝑖 =1

𝐻σ𝑖=1𝐻 𝑎𝑖 , σ𝑖 =

1

𝐻σ𝑖=1𝐻 (𝑎𝑖 − μ𝑖)

2

• H:同じ層のニューロンの数

LN :隠れユニット正規化

Layer Normalization

ai

x

wi

f(ai+bi)

normbi

hi

x

wi+1

f(ai+1+bi+1)

bi+1

hi+1

ai+1

Page 31: Layer Normalization@NIPS+読み会・関西

LN :バッチサイズ依存性

LNは影響小batch-size 128 batch-size 4

BNが不安定

Page 32: Layer Normalization@NIPS+読み会・関西

LN : LN LSTM

Q&Aタスク

BNをRNN用に拡張した論文

Page 33: Layer Normalization@NIPS+読み会・関西

• BN論文とLN論文でBaselineの結果が違う...それはともかくとして

• LNの方が性能は良さげ?

• 論文にそれについてのコメントはなし

LN : LNとWNのLSTM性能比較

DRAW (MNISTの生成)

(Tim Salimans et al. 2016) (Jimmy Lei Ba et al. 2016)

Page 34: Layer Normalization@NIPS+読み会・関西

BNとWNとLNと

何が違うのか

• それぞれ出力を正規化している正規化の性質は?

• 重みやデータに定数倍やバイアス加えてみる出力が不変かどうかで性質をとらえる

• 学習はどのように進むのか多様体構造の曲率をフィッシャー情報量から暗黙にとらえる

norm

norm

norm

Page 35: Layer Normalization@NIPS+読み会・関西

BNとWNとLNと

重み変化に対する出力の不変性~LNを例に~

Page 36: Layer Normalization@NIPS+読み会・関西

BNとWNとLNと

データ変化に対する出力の不変性~LNを例に~

Page 37: Layer Normalization@NIPS+読み会・関西

BNとWNとLNと

学習の進み方は?

• 学習は多様体の周りを動くものととらえれば、その曲率はFisher情報量行列によって暗黙的にとらえられる曲率の2次形式ds2をFisher情報量行列で近似

ネットワークのモデルは一般化線形モデル(GLM)で近似

• 結論LNの正規化パラメータσは学習が進むにつれて大きくなる

と学習率を下げて学習を安定化させる働きがある

Page 38: Layer Normalization@NIPS+読み会・関西

BNとWNとLNと

GLMによる解析準備

•Generalized Linear Model (GLM)による近似

•F(θ)に注目する

Page 39: Layer Normalization@NIPS+読み会・関西

BNとWNとLNと

GLMによる解析

•正規化しない場合のF(θ)

•LNのF(θ)

Page 40: Layer Normalization@NIPS+読み会・関西

BNとWNとLNと

GLMによる解析

•正規化しない場合のF(θ)

•LNのF(θ)

曲率が入力データの大きさに依存

入力データの大きさは反映されにくい(正規化されているので)

Page 41: Layer Normalization@NIPS+読み会・関西

BNとWNとLNと

GLMによる解析

•正規化しない場合のF(θ)

•LNのF(θ)

wi方向: wiが2倍→σiもおよそ2倍⇒ wi方向の曲率は1/2に⇒学習率の低下と捉えられる(らしい)

Page 42: Layer Normalization@NIPS+読み会・関西

BNとWNとLNと

• 入力の大きさに影響を受けない(BN)受けにくい(LN)ゲインの更新は予測誤差程度の大きさ

ゲインによる比較~BN,LN~

出力を決める大事なパラメータでした

正規化されている

Page 43: Layer Normalization@NIPS+読み会・関西

BNとWNとLNと

ゲインによる比較~WN~

出力を決める大事なパラメータでした

• 入力の大きさに影響を受ける(WN)ゲインの更新は予測誤差程度の大きさと入力(ai)の大きさに依存する

BNやLNに比べて学習が安定しにくい可能性あり

Page 44: Layer Normalization@NIPS+読み会・関西

BNとWNとLNと

まとめると

Batch Norm(Sergey Ioffe et al. NIPS 2015)

Weight Norm(Tim Salimans et al. NIPS 2016)

Layer Norm(Jimmy Lei Ba et al. NIPS 2016)

Pros

バッチサイズ大だと安定 入力データのスケールとシ

フトに対しロバスト(学習時)

重みベクトルのスケールに対しロバスト

学習が進むにつれ自然に更新のスケールが小さくなる

CNNでの計算コストが小さい

重みの初期化に工夫あり 実装が簡単 重みベクトルのスケールに

対しロバスト

小さなミニバッチのRNNで成果

入力データのスケールに対しロバスト

重み行列のスケールやシフトにロバスト

学習が進むにつれ自然に更新のスケールが小さくなる

Cons

オンライン学習 △ RNN,LSTM △ 学習時とテスト時で計算が

変わる

学習が他と比べて不安定? 入力データ依存性が高い

CNNとの相性は良くない?(BNの方が良い場合がある)