Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

170614 iclr reading-public

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Hier ansehen

1 von 22 Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Andere mochten auch (20)

Anzeige

Ähnlich wie 170614 iclr reading-public (20)

Aktuellste (20)

Anzeige

170614 iclr reading-public

  1. 1. ICLR読み会資料: “On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima” 読んだ人:石黒 勝彦(みらい翻訳/NTTドコモ)
  2. 2. OpenReviewの結果 Rating: 6: Marginally above acceptance threshold Rating: 10: Top 5% of accepted papers, seminal paper Review: …… the work is of great value in shedding light into some interesting questions around generalization of deep networks. …….. such results may have impact on both theory and practice, respectively by suggesting what assumptions are legitimate for real scenarios for building new theories, or be used heuristically to develop new algorithms …. Rating: 8: Top 50% of accepted papers, clear accept Review: Interesting paper, definitely provides value to the community by discussing why large batch gradient descent does not work too well Final Decision Comment: All reviews (including the public one) were extremely positive, and this sheds light on a universal engineering issue that arises in fitting non-convex models. I think the community will benefit a lot from the insights here. Decision: Accept (Oral) 10点とかほしい人生だった・・・
  3. 3. 目次 • 着眼点:SGDのミニバッチは小さいほうが汎化すると いう経験 • 論文の問: “大きいバッチSGD”, “小さいバッチSGD” の汎化性能の差はどこにあるのか? • 論文の主張:バッチが小さいとflatなminimizer, 大き いとsharpなminimizerに収束する • 数値実験結果で主張をサポート • まとめ・所感など
  4. 4. Stochastic Gradient Descent (SGD) • 乱択した少数のサンプル群(ミニバッチ)だけで 勾配を近似してロスを最小化する • 計算が軽くなる(現実的に更新回数を稼げる) • 性能もよく出る(近似の勾配だけど、よい解を得られる) ミニバッチ: k回目の更新時に用いるサンプル点の部分集合 Gradient Descent: 一回の更新にO(M)かかる  DLの世界だと厳しさがある SGD: 一回の更新にO(|Bk| << M) しかかからない  現実的に更新できる データ点i ∈ range(M)に対するロスfi(x)の勾配(の平均)を使ってパラメータxを更新していく
  5. 5. 興味:ミニバッチは「小さいほうが汎化 性能が高い」という経験談 • ミニバッチは全サンプルの近似なので、本当はバッチサイズが 大きいほうが良いはず • 正しい勾配に近い勾配が得られる • バッチサイズが大きいほうがGPUでの並列計算度も稼げる • 現実的には、小さいミニバッチで解いたほうが汎化性能が高い 解が得られることが多い [cf. LeCun, 2012] • なんで?? LeCun+, “Efficient backprop”, Neural networks: Tricks of the trade, pp. 9–48. Springer, 2012
  6. 6. 本論文の問い: “大きいバッチ(Large Batch, LB)”と “小さいバッチ(Small Batch, SB)”で、 SGDの汎化性能の差が生まれる理由は? 本論文の主張: “大きいバッチ”SGDはsharpなminimizer, “小さいバッチ”SGDはflatなminimizer に収束することが原因
  7. 7. SBはこっち LBはこっち パラメータ x ロス Flat vs. Sharp Minimizer
  8. 8. 手法:数値実験(識別問題)で直に検証 https://www.cs.toronto.edu/~kriz/cifar.html
  9. 9. ネットワークの種類 C1, C2: AlexNet Krizhevsky+, “Imagenet classification with deep convolutional neural networks”, NIPS 2012. C3, C4: VGG Simonyan and Zissermanl, “Very deep convolutional networks for large-scale image Recognition”, arXiv preprint arXiv:1409.1556, 2014.
  10. 10. まずは認識率でSBの優位性を確認 Training dataには どちらもほぼ完ぺきに適応 SB: 256 samples, LB: 10% (!!) of the all samples Test dataで明確に差がつく
  11. 11. 疑問1: LB, overfitしているだけでは? • 回答: NO!! • したがって、earlystoppingは救いにならない
  12. 12. 疑問2: 本当にsharp/flat minimizer? LBの解付近はとんがってるSBの解付近はflat LBの解 SBの解 • 回答:可視化結果を見るとそ うなっている・・・ • SB解とLB解を結ぶ直線上で CrossEntropy(目的関数)と Accuracy(識別率)を計算
  13. 13. LBの解SBの解 LBの解SBの解 LBの解 LBの解SBの解 SBの解 LBの解 SBの解
  14. 14. 疑問3:なぜSBはflat minimizerに到達 するの? • バッチサイズが小さいと勾配の分散が大きくなる  更新ごと に解が飛び回る • それだけ飛び回っても「飛び出さない」だけ広い範囲のflatな 局所解に落ち着く • Sharpな局所解にいたら飛び出して、上記のようなflatな局所解を探す • バッチサイズが大きいと似たような解の周辺を「深く掘る」よ うに動く • 勾配の分散が小さいから 力強さがないですが、 正直、論文の中で一番くらい弱いところです
  15. 15. 疑問4:SBとLBは最適化として定性的 に別物なの? • 回答:Yes • SBはsharpnessが低い解を、LBはsharpnessが高い解を追求 している。つまり動き方が全然違う
  16. 16. SBの探索力の強さ(⇔LBの探索力の弱 さ) • まずSBで100エポック学習そのあとでLBで学習 • LB数エポックでほぼ収束
  17. 17. まとめ • “大きいバッチSGD”はsharpなminimizer, “小さいバッチ SGD”はflatなminimizerに収束する • Flatなminimizerは汎化性能が高い • バッチサイズによって明らかに最適化の振る舞いが異なる • 以上を数値実験と可視化で確認した • 計算時間的には大きいバッチのほうが有利だが、汎化性能の差 を埋めるだけの方策はみつかっていない
  18. 18. 所感 • 大きいバッチサイズ、「N数の10%」なので大きすぎる。 • 実際こんなのは回せない • N数の10%もとるなら勾配の分散が小さくなるのも妥当 • バッチサイズが256や512で”small batch”だということなの で、実用的には問題なし(vanilla SGD使おう!) • 面白い、そして大事な観点を明らかにしたgood paper.
  19. 19. と思ったんですが、岡野原さんがフォロー論 文(反論?)発掘してくださいました NIPS17にsubmitぽいですね・・・
  20. 20. 論文読んだポイントとしては、 ・flatなminimaに行くには「更新回数」を稼がないといけない(というモデルがはまると著者は仮定している) ・同一エポック数での実験ではSBのほうが更新回数を稼げる ・更新回数の損を埋めるために、LBでは学習率を上げればいい(単純にはsqrt( |Bk| )倍する) 大きいミニバッチでも小さいミニバッチと同じくらい汎化できるやで・・・ 大きいミニバッチは汎化性能の低いSharp minimaに行ってまう・・・ でもこの論文でそうじゃないこと示したんだよなぁ・・・ 適切な修正すればでかいミニバッチでも汎化性能よくなるってな!
  21. 21. 以上です

×