Layer Normalization
Jimmy Lei Ba Jamie Ryan Kiros Geoffrey E.Hinton
紹介者:西田 圭吾
阪大 生命機能 M1
第2回「NIPS+読み会・関西」
• 西田 圭吾
• 大阪大学 生命機能研究科 M1
• 理研QBiC 計算分子設計研究グループ(泰地研) 研修生
• 科学技術計算専用チップ設計
• 学部時代は細胞のイメージングとか、半導体メモリの結晶評価とか
自己紹介
例)分子動力学計算専用計算機 MDGRAPE-4
• 自己紹介
• Layer Normalization 論文概要
• 背景
• Batch Normalization
• Weight Normalization
• Layer Normalization
• 以上3つの比較
目次
• 目的
State-of-the-artなDNNの学習時間を短縮したい
中間層の出力を正規化することで実現させる
• アイデア
Batch Normalizationを作り変えてみた
1. バッチサイズに依存しない(オンライン学習や小さなミニバッチOK)
2. 学習とテストの計算方法が同一
3. そのままRNNに適応可能
• その他関連研究との比較
Layer Normalization 概要
• VGG net(Karen Simonyan et al. ICLR 2015)
16/19層CNN+FC
GPU: Titan Black 4枚
学習時間:2~3週間
• Google’s Neural Machine Translation system (Yonghui Wu et al. 2016)
8層 LSTM RNN
GPU: Tesla k80 96枚
学習時間:1週間弱
背景 : DNN研究のボトルネック
膨大な学習時間
図 https://arxiv.org/pdf/1509.07627v1.pdf
• DNN演算の並列化(Jeffrey Dean et al. NIPS 2012)
データやDNNそのものを分割して計算する
通信遅延やソフトウェアの複雑化が課題
背景 : 学習時間を減らすために
マシンでゴリ押し
• 勾配法そのものを改良する
2次微分を扱うものになると計算コスト膨大
背景 : 学習時間を減らすために
学習の効率を上げる
• パラメータ空間幾何を修正する
Batch Normalization(Sergey Ioffe et al. NIPS 2015)が学習時間の削減に
成功
勾配消失の問題が解決(飽和活性化関数も利用可能に)
背景 : 学習時間を減らすために
学習の効率を上げる
• 活性化関数における飽和領域の微分値はほぼ0
• 誤差の逆伝播が減衰し入力層における勾配が0になる恐れ
背景 : 勾配消失問題
活性化関数の飽和領域
デ
ー
タ
の
流
れ
誤
差
の
逆
伝
播
• 飽和領域をなくす
ReLU(x) = max(x,0)
• 初期化の工夫
• 小さな学習率の利用
学習によって飽和領域に行くことを防ぐ
背景 : 勾配消失問題
解決策
学習に時間がかかる
原因の一つ
Q. そもそもなぜ、DNNは最適化してるのに飽和状態へネットワークが陥るのか
A. 学習するごとに各層の出力分布が変わる(internal) covariate shiftが生じるから
• 共変量シフトが起きる場合の学習はドメイン学習としてよく扱われる
• 論文ではDNNの各層ごとに起きる共変量シフトについて考察
背景 : covariate shift (共変量シフト)
訓練時とテスト時の入力分布の変化
入出力規則(与えられた入力に対する出力の生成規則)は訓練時と
テスト時で変わらないが,入力(共変量)の分布が訓練時とテスト時
で異なるという状況は共変量シフトと呼ばれている
共変量シフト下での教師付き学習 杉山 将 日本神経回路学会誌, vol.13, no3, pp.111-118, 2006
• 入力層への入力分布:
平均0 分散1
(に線形変換するとうまくいく)
• 中間層への入力分布:
決まった入力分布を各層で持たない
(下層のパラメータ依存)
背景 : covariate shift (共変量シフト)
DNNにおける層ごとの入力分布
入力分布
平均0,分散1に規格化
中間層入力分布
下層パラメータ依存
学習を行うごとに中間層への
入力分布が変化する(内的共変量シフト)
• 各中間層で学習時に想定していた入力分布が変化
パラメータが結果的にあらぬ方向へ更新される恐れ
ネットワークが飽和領域に陥りやすい状態に
層が深くなるほど影響が顕著
背景 : covariate shift (共変量シフト)
(内的)共変量シフトがDNNで起きると
入力分布
平均0,分散1に規格化
平均0, 分散1
入力分布軸
入力分布p(μ=0,σ=1)
入力分布q(p)
入力分布r(q)
• 各中間層で学習時に想定していた入力分布が変化
パラメータが結果的にあらぬ方向へ更新される恐れ
ネットワークが飽和領域に陥りやすい状態に
層が深くなるほど影響が顕著
背景 : covariate shift (共変量シフト)
(内的)共変量シフトがDNNで起きると
入力分布
平均0,分散1に規格化
平均0, 分散1
入力分布軸
入力分布q(p)
入力分布r(q)
入力分布q(p)を前提に学習
入力分布p(μ=0,σ=1)
• 各中間層で学習時に想定していた入力分布が変化
パラメータが結果的にあらぬ方向へ更新される恐れ
ネットワークが飽和領域に陥りやすい状態に
層が深くなるほど影響が顕著
背景 : covariate shift (共変量シフト)
(内的)共変量シフトがDNNで起きると
入力分布
平均0,分散1に規格化
平均0, 分散1
入力分布軸
入力分布q(p)
入力分布r(q)
入力分布p(μ=0,σ=1)
入力分布q(p)を前提に学習
入力分布pを前提に学習
(こっちは問題なし)
• 各中間層で学習時に想定していた入力分布が変化
パラメータが結果的にあらぬ方向へ更新される恐れ
ネットワークが飽和領域に陥りやすい状態に
層が深くなるほど影響が顕著
背景 : covariate shift (共変量シフト)
(内的)共変量シフトがDNNで起きると
入力分布
平均0,分散1に規格化
平均0, 分散1
入力分布軸
入力分布
q(p)⇒q’(p)
入力分布
r(q)⇒r’(q’)
学習後
入力分布
p(μ=0,σ=1)⇒p
入力分布q(p)を前提に学習
学習後の入力分布はq’(p)!
⇒内的共変量シフト
出力がおかしくなる原因
• 各中間層で学習時に想定していた入力分布が変化
パラメータが結果的にあらぬ方向へ更新される恐れ
ネットワークが飽和領域に陥りやすい状態に
層が深くなるほど影響が顕著
背景 : covariate shift (共変量シフト)
(内的)共変量シフトがDNNで起きると
入力分布
平均0,分散1に規格化
平均0, 分散1
入力分布軸
入力分布
q(p)⇒q’(p)
入力分布
r(q)⇒r’(q’)
学習後
入力分布
p(μ=0,σ=1)⇒p
入力分布q(p)を前提に学習
学習後の入力分布はq’(p)!
⇒内的共変量シフト
出力がおかしくなる原因
• 各中間層で出力を正規化する
各中間層の入力分布を一定に
大きな学習率の利用が可能
学習の効率を改善させる
• 様々なアプローチ
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
Batch Normalization
• ニューロンへの入力和: 𝑎𝑖
• 𝑎𝑖 = 𝑤𝑖
𝑇
𝑥
• ニューロンの出力: ℎ𝑖
• ℎ𝑖 = 𝑓(𝑎𝑖 + 𝑏𝑖)
BN : 隠れユニット正規化
ニューロンの基本形
ai
x
wi
f(ai+bi)
bi
hi
• ത𝑎𝑖: 𝑎𝑖を平均0,分散1に正規化
ニューロンの出力分布が変わる
ゲインパラメータg𝑖を導入
BN : 隠れユニット正規化
正規化と非線形関数
ai
x
wi
f(ai+bi)
norm
bi
hi
ー
• 各ニューロンのバッチごとに計算
• ത𝑎𝑖 =
g𝑖
σ𝑖
(𝑎𝑖 − μ𝑖)
• μ𝑖 = 𝐸[𝑎𝑖], σ𝑖 = 𝐸 𝑎𝑖 − μ𝑖
2
BN : 隠れユニット正規化
Batch Normalization
ai
x
wi
f(ai+bi)
norm
bi
hi
ー
ai
batch size
• GoogLeNetがベース
• 学習率を上げて実験
x5が14倍学習が早い
徐々に上げると効率的
BN : 実験結果
ImageNet classification
メガ!!
• 学習率を上げると重みのスケールが大きくなる
逆誤差伝播で誤差が発散する原因
• BNはそのスケールを正規化して発散を防ぐ
BN : うまくいった理由
BNによる重みのスケール補正
𝐵𝑁 𝑊𝑢 = 𝐵𝑁 𝑎𝑊 𝑢 スケール(𝑎倍)しても出力は等価
𝜕𝐵𝑁 𝑎𝑊 𝑢
𝜕𝑢
=
𝜕𝐵𝑁 𝑊𝑢
𝜕𝑢
ヤコビも等価
𝜕𝐵𝑁 𝑎𝑊 𝑢
𝜕(𝑎𝑊)
=
1
𝑎
·
𝜕𝐵𝑁 𝑊𝑢
𝜕𝑊
勾配は1/𝑎倍(程よく収束)
Weight Normalization
•重みを正規化
• ミニバッチのサンプル間の依存関係は無し
• オンライン学習やRNNに拡張可能
•CNNのように重みの数が小さいものに対して計算が軽い
• データ依存重み初期化が活用できる
•大まかにはBNの低コストな近似計算
• 比較に使うための紹介程度です
WN : まとめ
Weight Normalization
• 各ニューロンの出力から重みを正規化
• 𝒕 = 𝒘 𝑇 𝒙 + 𝑏
• μ = 𝐸 𝒕 , σ = 𝐸 𝒕 − μ 2
• ഥ𝒘 ←
1
σ
𝒘, ത𝑏 ←
𝑏−μ
σ
• 𝒉 = f(
𝑡−μ
σ
)
= f(ഥ𝒘 𝑇 𝒙 + ത𝑏)
WN : 隠れユニット正規化
Weight Normalization
a
x
w
f( )
norm
b
h
wTx+b
--
Layer Normalization
•同じ層のニューロン間で正規化
•ミニバッチのサンプル間の依存関係は無し
•オンライン学習やRNNに拡張可能
•CNNはBatch Normより上手くいかない場合が...
LN : まとめ
Layer Normalization
• 各層のニューロンごとに計算
• BNのバッチサイズをニューロン
に変えただけ
• ത𝑎𝑖 =
g𝑖
σ𝑖
(𝑎𝑖 − μ𝑖)
• μ𝑖 =
1
𝐻
σ𝑖=1
𝐻
𝑎𝑖 , σ𝑖 =
1
𝐻
σ𝑖=1
𝐻
(𝑎𝑖 − μ𝑖)2
• H:同じ層のニューロンの数
LN : 隠れユニット正規化
Layer Normalization
ai
x
wi
f(ai+bi)
norm
bi
hi
ー
x
wi+1
f(ai+1+bi+1)
bi+1
hi+1
ー
ai+1
LN : バッチサイズ依存性
LNは影響小 batch-size 128 batch-size 4
BNが不安定
LN : LN LSTM
Q&Aタスク
BNをRNN用に拡張した論文
• BN論文とLN論文でBaselineの結果が違う...
それはともかくとして
• LNの方が性能は良さげ?
• 論文にそれについてのコメントはなし
LN : LNとWNのLSTM性能比較
DRAW (MNISTの生成)
(Tim Salimans et al. 2016) (Jimmy Lei Ba et al. 2016)
BNとWNとLNと
何が違うのか
• それぞれ出力を正規化している
正規化の性質は?
• 重みやデータに定数倍やバイアス加えてみる
出力が不変かどうかで性質をとらえる
• 学習はどのように進むのか
多様体構造の曲率をフィッシャー情報量から暗黙にとらえる
norm
norm
norm
BNとWNとLNと
重み変化に対する出力の不変性~LNを例に~
BNとWNとLNと
データ変化に対する出力の不変性~LNを例に~
BNとWNとLNと
学習の進み方は?
• 学習は多様体の周りを動くものととらえれば、その曲
率はFisher情報量行列によって暗黙的にとらえられる
曲率の2次形式ds2をFisher情報量行列で近似
ネットワークのモデルは一般化線形モデル(GLM)で近似
• 結論
LNの正規化パラメータσは学習が進むにつれて大きくなる
と学習率を下げて学習を安定化させる働きがある
BNとWNとLNと
GLMによる解析準備
• Generalized Linear Model (GLM)による近似
• F(θ)に注目する
BNとWNとLNと
GLMによる解析
• 正規化しない場合のF(θ)
• LNのF(θ)
BNとWNとLNと
GLMによる解析
• 正規化しない場合のF(θ)
• LNのF(θ)
曲率が入力データの大きさに依存
入力データの大きさは反映されにくい
(正規化されているので)
BNとWNとLNと
GLMによる解析
• 正規化しない場合のF(θ)
• LNのF(θ)
wi方向: wiが2倍→σiもおよそ2倍
⇒ wi方向の曲率は1/2に
⇒学習率の低下と捉えられる(らしい)
BNとWNとLNと
• 入力の大きさに影響を受けない(BN)受けにくい(LN)
ゲインの更新は予測誤差程度の大きさ
ゲインによる比較~BN,LN~
出力を決める大事なパラメータでした
正規化されている
BNとWNとLNと
ゲインによる比較~WN~
出力を決める大事なパラメータでした
• 入力の大きさに影響を受ける(WN)
ゲインの更新は予測誤差程度の大きさと入力(ai)の大きさに依存する
BNやLNに比べて学習が安定しにくい可能性あり
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の方が良い場合がある)

Layer Normalization@NIPS+読み会・関西