Layer Normalization@NIPS+読み会・関西
- 2. • 西田 圭吾
• 大阪大学 生命機能研究科 M1
• 理研QBiC 計算分子設計研究グループ(泰地研) 研修生
• 科学技術計算専用チップ設計
• 学部時代は細胞のイメージングとか、半導体メモリの結晶評価とか
自己紹介
例)分子動力学計算専用計算機 MDGRAPE-4
- 3. • 自己紹介
• Layer Normalization 論文概要
• 背景
• Batch Normalization
• Weight Normalization
• Layer Normalization
• 以上3つの比較
目次
- 5. • 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
- 10. • 飽和領域をなくす
ReLU(x) = max(x,0)
• 初期化の工夫
• 小さな学習率の利用
学習によって飽和領域に行くことを防ぐ
背景 : 勾配消失問題
解決策
学習に時間がかかる
原因の一つ
Q. そもそもなぜ、DNNは最適化してるのに飽和状態へネットワークが陥るのか
A. 学習するごとに各層の出力分布が変わる(internal) covariate shiftが生じるから
- 12. • 入力層への入力分布:
平均0 分散1
(に線形変換するとうまくいく)
• 中間層への入力分布:
決まった入力分布を各層で持たない
(下層のパラメータ依存)
背景 : covariate shift (共変量シフト)
DNNにおける層ごとの入力分布
入力分布
平均0,分散1に規格化
中間層入力分布
下層パラメータ依存
学習を行うごとに中間層への
入力分布が変化する(内的共変量シフト)
- 20. • ニューロンへの入力和: 𝑎𝑖
• 𝑎𝑖 = 𝑤𝑖
𝑇
𝑥
• ニューロンの出力: ℎ𝑖
• ℎ𝑖 = 𝑓(𝑎𝑖 + 𝑏𝑖)
BN : 隠れユニット正規化
ニューロンの基本形
ai
x
wi
f(ai+bi)
bi
hi
- 22. • 各ニューロンのバッチごとに計算
• ത𝑎𝑖 =
g𝑖
σ𝑖
(𝑎𝑖 − μ𝑖)
• μ𝑖 = 𝐸[𝑎𝑖], σ𝑖 = 𝐸 𝑎𝑖 − μ𝑖
2
BN : 隠れユニット正規化
Batch Normalization
ai
x
wi
f(ai+bi)
norm
bi
hi
ー
ai
batch size
- 27. • 各ニューロンの出力から重みを正規化
• 𝒕 = 𝒘 𝑇 𝒙 + 𝑏
• μ = 𝐸 𝒕 , σ = 𝐸 𝒕 − μ 2
• ഥ𝒘 ←
1
σ
𝒘, ത𝑏 ←
𝑏−μ
σ
• 𝒉 = f(
𝑡−μ
σ
)
= f(ഥ𝒘 𝑇 𝒙 + ത𝑏)
WN : 隠れユニット正規化
Weight Normalization
a
x
w
f( )
norm
b
h
wTx+b
--
- 30. • 各層のニューロンごとに計算
• 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
- 32. LN : LN LSTM
Q&Aタスク
BNをRNN用に拡張した論文
- 44. 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の方が良い場合がある)