O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Optimizer入門&最新動向

4/16に行われた筑波大の手塚若林研合同ゼミでの発表スライドです。

  • Entre para ver os comentários

Optimizer入門&最新動向

  1. 1. Optimizer⼊⾨ & 最新動向 ⼿塚研究室 本川哲哉
  2. 2. Optimizerとは • Optimization(最適化)する者 • 機械学習の⽂脈では、損失関数の値をできるだけ⼩さくするパラメータの 値を⾒つけることを最適化(Optimization) といい、その⼿法を指して Optimizerと呼ぶ。 • 関数の最⼩化と⾔うと、ラグランジュの未定乗数法、ニュートン法、共役 勾配法など⾊々あるが、機械学習タスクに使われているOptimizerは主に 計算量的な観点から1階微分の勾配降下法がベースとなる。
  3. 3. みんな⼤好き確率的勾配降下法 • Stochastic Gradient Descent • 最近流⾏りのあらゆるOptimizerの基礎 • ミニバッチごとに勾配降下法を適⽤するため、局所解に陥りに くい! 引⽤:⼿塚先⽣の本
  4. 4. シンプルだけど不便! • 学習率の初期値を設定しにくい • 初期値の設定に失敗すると劇的に悪化 ・・・SGDを改良していこう! 引⽤:https://www.slideshare.net/kisa12012/sgd-future-best-27314417?next_slideshow=1
  5. 5. Momentum SGD 「慣性付けるか」 下図のように、より収束に関連性のある⽅向にSGDを加速させて、振動を 抑制する。 引⽤: http://postd.cc/optimizing-gradient-descent/#adagrad
  6. 6. Nesterov accelerated gradient (NAG) 「慣性に加えて⼀歩先の位置での勾配を使おう」 現在のパラメータの勾配ではなく、未来のパラメータの推定位置を計算す ることで効率的な予測が可能になる。 引⽤:http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf
  7. 7. Adaptive Learning Rate(適応学習率法) 今までは全てのパラメータに対して同じ学習率を掛けていた。 稀にしか観測されないパラメータにはより⼤きな更新を、よく観 測されるパラメータにはより⼩さな更新をさせたいよね。 ・・・学習率をパラメータ(軸)毎に適応させよう!
  8. 8. Adagrad(Adaptive Gradient) <⽋点> • エポックを重ねるごとに過去の学習率が累積していき、やがて0に漸近してしまう • 学習の初期に勾配の⼤きな場所を通ると、それ以降その軸⽅向の勾配は⼩さいまま になってしまう
  9. 9. RMSprop 「過去全部ではなく最近の勾配の⼆乗和のみ使おう」 指数関数的に減衰する指数移動平均によって、極めて遠い過去の勾配 は取り除く。 ⾮凸の条件下でAdagradの性能を改善.
  10. 10. 凸関数・⾮凸関数 引⽤: http://ogyahogya.hatenablog.com/entry/2016/05/19/凸解析 Adagradは凸関数では急速に収束するが、⾮凸関数ではうまく機 能しない。RMSpropでこの⽋点を改善。DNNで表現される多く の関数は⾮凸。
  11. 11. Adadelta 「過去全部ではなく最近の勾配の⼆乗和のみ使おう、 さらに次元も合わそう。」 Adagrad、 RMSpropなどは全て次元がおかしい. >次元とは? 横軸t(s)、縦軸x(m)のyという関数を考えるとき, yの勾配(速度)の単位はm/sである。 勾配降下法では、x(m)を勾配(m/s)で更新 していることになるので、次元が合わない! ここでの勾配降下法:𝑥"#$ = 𝑥" − 𝜂 ()* (" 引⽤: https://physnotes.jp/mechanics/motion_diff/
  12. 12. Adadelta もはや⾃分で学習率をチューニングする必要がない!!
  13. 13. Adam(Adaptive moment estimation) 「勾配の1次(平均)と2次(分散)のモーメント推定しよう」
  14. 14. 結局どれが良いの?? • 今のところ、⼈間が経験的に「このタスクにはこのOptimizer を使う」のような決め⽅をしている • ⼊⼒データが疎な場合、適応学習率法のどれかを使うと良い • Adamが最強というわけではない むしろタスクによってはSGDの⽅がより良い性能を⾒せることもある…! 最近の流れの1つ:Adamを改良しよう!
  15. 15. Weight decay • DNNにおいて、多層になるほどモデルの表現⼒は増すが、その 分オーバーフィッティングの危険性も⾼まる • そこでパラメータの⾃由度を制限するWeight decayが⽤いられ る • 重みの⾃由度を制限するという意味で、これはL2正則化と同じ 効果を得ると理解できる
  16. 16. Adam with Weight decay 新しい更新式 ⼩さなデータセットやCIFAR-10のデータセットではAdam with Weight decayの⽅が通常のAdamよりもパフォーマンスが向上.
  17. 17. Fixing the exponential moving average • 指数移動平均(EMA)とは、指数関数的に減衰する重み付き平 均のことで、Adamのような適応学習率法の基本的な考え⽅ • Adamで最適解を狙う場合、⼀部のミニバッチでは有益な勾配 が得られるが、そのようなミニバッチは稀にしか現れない →そこでパラメータ更新時に⼆乗勾配に関してはEMAではなく、過去の ⼆乗勾配の最⼤値を⽤いるAMSgradという⼿法が提案された。
  18. 18. Learning rate annealing schedule • 学習率アニーリング • annealing:焼きなまし • ⼀旦⼤きくなりすぎた学習率をもう⼀度⼩さくするイメージ • つまり、勾配降下法における損失関数の下がり⽅を調整してい る 興味深い⼀例:Adam+以下の学習率アニーリングによって機械翻訳タスクに成功
  19. 19. Warm Restarts • cosineなどを⽤いた周期的な学習率アニーリング • 通常の学習率アニーリングよりも2~4倍のエポックが必要とな るが、同等以上のパフォーマンスを達成する。 Restart後の⾼い学習率によって、前に収束 した最⼩値から損失関数の異なる領域へと 抜け出せるようになる。 引⽤:http://ruder.io/deep-learning-optimization-2017/index.html#fnref:22
  20. 20. 課題と今後の⽅針 • 今のところタスクによって最適なOptimizerは異なる • ⼈間が経験的にこれ!ってやつを使っている • Adamのような複雑な最適化よりも、シンプルで軽いSGDが使われることも少なくない • 最適化理論(局所解の性質、最適化の簡単さ etc...) • 損失関数の形⾃体が分かれば、勾配が消失するor爆発するタイミングが分かって、⼤幅 な改善につながるのでは • また、損失関数の構造が分かればどのタスクにどのOptimizerが効くかが分かる? • 近似理論(表現⼒解析、層とノードの関係 etc...) • 2階微分まで盛り込んでいるニュートン法(計算量がとてつもなく⼤きいが収束が早い) と1階微分の通常の勾配降下法を交互に組み合わせる⽅法は⾯⽩そう • Adadeltaで議論されている次元おかしい問題の突き詰め
  21. 21. 参考⽂献 • Sebastian Ruder. “An overview of gradient descent optimization algorithms”. http://ruder.io/optimizing-gradient-descent/. • Sebastian Ruder. “Optimization for Deep Learning Highlights in 2017”. http://ruder.io/deep-learning-optimization- 2017/index.html. • Ian Goodfellow and Yoshua Bengio and Aaron Courville. “Deep Learning”. http://www.deeplearningbook.org. • Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., … Polosukhin, I. (2017). Attention Is All You Need. In Advances in Neural Information Processing Systems. • Loshchilov, I., & Hutter, F. (2017). SGDR: Stochastic Gradient Descent with Warm Restarts. In Proceedings of ICLR 2017. • Loshchilov, I., & Hutter, F. (2017). Fixing Weight Decay Regularization in Adam. arXiv Preprint arXi1711.05101. Retrieved from http://arxiv.org/abs/1711.05101 • Zeiler, M. D. (2012). ADADELTA: An Adaptive Learning Rate Method. Retrieved from http://arxiv.org/abs/1212.5701 • Kingma, D. P., & Ba, J. L. (2015). Adam: a Method for Stochastic Optimization. International Conference on Learning Representations, 1‒13. • Masaaki Imaizumi. “深層学習による⾮滑らかな関数の推定”. SlideShare. https://www.slideshare.net/masaakiimaizumi1/ss-87969960. • nishio.”勾配降下法の最適化アルゴリズム”. SlideShare. https://www.slideshare.net/nishio/ss-66840545

×