Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

全体セミナー20170629

2,239 views

Published on

Large Batchにおける収束性について。2017年6月28日のレトリバセミナーで話したスライドです。

Published in: Technology
  • Be the first to comment

全体セミナー20170629

  1. 1. Large BatchでのDeep Learning の学習時における性能低下につ いて 株式会社レトリバ 西鳥羽 二郎
  2. 2. 自己紹介 • 西鳥羽 二郎(ID: jnishi) • 取締役 • リサーチャー • 自然言語処理 • 音声認識 • 情報検索 • アルゴリズムとデータ構造 • 最適化の数理
  3. 3. 今日の話(前回の全体セミナーから再掲) 収束を早める工夫 バッチサイズの大きさ SGDベースの最適化 勾配 momentum second-momentum gradient clipping 〜128 or 256 Hessianを用いた最適化 勾配+曲率情報 数千 © 2017 Retrieva, Inc. 3 このバッチサイズが 大きくできないこと について
  4. 4. GPUにおけるDeep Learningの学習 • 一回の学習で以下のような単位で計算する データ 転送 forward 損失の 計算 backward データ 転送 この演算が重いので GPUで高速化したい
  5. 5. 行列演算 • 1layerあたりm*n(=input size * output size)要素の演算が行わ れる • 5-layer 400個のDNNだと8,000,000 (=400*400*5)要素の演算 が行われる 𝑎11 𝑎12 𝑎21 𝑎22 ⋯ 𝑎1𝑛 𝑎2𝑛 ⋮ ⋱ ⋮ 𝑎 𝑚1 𝑎 𝑚2 ⋯ 𝑎 𝑚𝑛 ∗ 𝑏1 𝑏2 ⋮ 𝑏 𝑛 n = input size m=outputsize
  6. 6. GPUによる高速化 • GTX TITAN X • CUDAコア: 3072 • クロック: 1GHz • 行列の各要素の演算は独立して行えるので、GPUによる並列演 算が行いやすい • 同時の行える演算の並列度を上げれば上げるほどGPUの性能を活かし て高速に計算が行える
  7. 7. GPUにおけるDeep Learningの学習 • 一回の学習で以下のような単位で計算する データ 転送 forward 損失の 計算 backward データ 転送 データ転送が遅いのでなる べくまとめて処理したい
  8. 8. GPUで計算する量を多くする © 2017 Retrieva, Inc. 8 学習データ • 入力データの次元 • (RNNの場合)系列の長さ ミニバッチのサイズx転送するデータ量 ≒ こちらを変えると モデルが変わってしまう モデルのサイズ • 層の大きさ • 層の数 • (RNNの場合)系列の長さ ミニバッチのサイズxDeep Learningの計算量の オーダー ≒ こちらを大きくしたい
  9. 9. バッチサイズを大きくしたい • バッチサイズを大きくしても学習は収束する • 但し学習データの損失の値を小さくできるという意味での収束 • ただし、テストデータ(学習データに入っていないデータ)での 精度が下がる
  10. 10. 精度の例(DNN, CNN) バッチサイズに関わらず学 習データへの精度は上がる バッチサイズ大の時のテスト データに対する精度は下がる
  11. 11. 収束時に起こっていること バッチサイズ小 バッチサイズ大 ギャップが小さい ギャップが 大きい
  12. 12. 損失関数の平坦さ • Deep Learningの性能に関わ る議論にもなるので平坦さに ついては定義が色々ある • ε-flatness(Hochreiter & Schmidhuber, 1997) • 二次微分の曲率による情報 (Chaudhari et al., 2017) • ε-sharpness(Kesker et al., 2017) (Hochreiter & Schmidhuber, 1997) の例 損失の最小値から少し(ε) 大きいところまでの領域(赤 い部分)の大きさ ε
  13. 13. 平坦さの指標に関する議論 • バッチサイズに関する議論だけでなくDeep Learningの精度の 話にも関わってくるので研究トピックとしてはとてもhotであ り決着はついていない ε-sharpnessと精度が 関係あるのではないか (Kesker et al., 2017)@ICLR(4月) いや、ε-sharpnessって精度に 関わらずに自由に変えられるよ (Dinh et al., 2017)@ICML(8月)
  14. 14. ここまでのまとめ • Deep Learningだと学習の高速化のためにバッチサイズを大き くしたい • しかしバッチサイズを大きくすると汎化誤差が大きくなる • 何故だかは不明だし研究的にもとてもHot!
  15. 15. それでも、バッチサイズを大きくしたい • 理論的解析は難しいものの、実験的に良くなる方法が幾つかあ る • 学習方法の工夫(Hoffer et al., 2017) • 最適化手法の選択(Wilson et al. 2017)
  16. 16. 手法その1: 学習率を上げる • バッチサイズが大きくなると勾配の分散がバッチサイズの平方 根に反比例する • そのため、学習率をバッチサイズの平方根倍して移動を大きく する必要がある
  17. 17. その2: Ghost Batch Normalization(GBN) • 通常のBatch Normalization Large Batch BN (出力) 通常のBatch Normalization(BN)
  18. 18. その2: Ghost Batch Normalization(GBN) • 小さいバッチに分けてそれぞれのバッチごとにBNを行う Small Batch Small Batch Small Batch Small Batch BN BN BN BN Large Batch Ghost Batch Normalization(BN) 分割 出力 結合
  19. 19. その3: 学習回数を増やす • バッチサイズを大きくすると1 epochあたりの学習回数は減っ てしまう Small Batch Small Batch Small Batch Small Batch Large Batch Large Batch 4回 2回
  20. 20. DNN及びCNNにおけるlarge batchでの精度 Large Batchの方が 精度が低い 3手法全部入れるとSmall Batchより精度高い
  21. 21. ImageNetとAlexNetでの比較 Large Batchの方が 精度が低い 単純なLarge Batchに比べ ると精度が上がっている
  22. 22. 汎化性能を上げたい Adaptiveな最適化手法 • それまでの学習に応じて反映 させる更新量を調整する • Adam • AdaGrad • RMSProp Non-Adaptiveな最適化手法 • 過去の学習には関係なく更新 する • SGD • SGD w/ momentum • Nesterovの加速勾配 一般的にはAdaptiveな 手法の方が収束が早い
  23. 23. 最適化手法ごとの収束の違い Adam及びRMSProp の方が収束が早い SGDの方が汎化誤 差が小さい
  24. 24. まとめ • バッチサイズを大きくしたいときは以下のことをためそう • 学習率を大きくする • イテレーション回数を増やす • Ghost Batch Normalizationを入れる • SGDやNesterovの加速勾配などnon-Adaptiveな手法を試す
  25. 25. 参考文献 • (Hoffer et al., 2017): Train longer, generalize better: closing the generalization gap in large batch training of neural networks. • (Wilson et al., 2017): The Value of Adaptive Gradient Methods in Machine Learning. • (Dinh et al., 2017): Sharp Minima Can generalize For Deep Nets. • (Kesker et al., 2017): On Large-Batch Training For Deep Learning: Generalization Gap and Sharp Minima. • (Chaudhari et al., 2017): Entropy-sgd: Biasing gradient descent into wide valleys. • (Hochreiter & Schmidhuber, 1997): Flat minima.

×