530 Views
March 25, 19
スライド概要
2019/03/22
Deep Learning JP:
http://deeplearning.jp/seminar-2/
DL輪読会資料
DEEP LEARNING JP [DL Papers] Adaptive Gradient Methods with Dynamic Bound of Learning Rate Koichiro Tamura, Matsuo Lab http://deeplearning.jp/
PAPER INFORMATION • Adaptive Gradient Methods with Dynamic Bound of Learning Rate – – – – Liangchen Luo, Yuanhao Xiong, Yan Liu, Xu Sun Submitted on 26 Feb 2019 (arxiv) https://arxiv.org/abs/1902.09843 ICLR2019 under review • Metareview: The paper was found to be well-written and conveys interesting idea. However the AC notices a large body of clarifications that were provided to the reviewers (regarding the theory, experiments, and setting in general) that need to be well addressed in the paper. • Confidence: 5: The area chair is absolutely certain • Recommendation: Accept (Poster) • 最適化手法 – Adamの収束の速さとSGDの汎化性能のいいとこ取り • GitHub: https://github.com/Luolc /AdaBound 2
Outline 1. 2. 3. 4. 5. 6. イントロ 既存の最適化手法の整理と課題 既存の最適化手法の課題のボトルネック特定 提案手法 実験 (みんなの口コミ) 3
イントロ • 近年の機械学習の発展に伴って,最適化手法も研究が盛んに行われてきた – SGD: シンプルで汎化性能が高い手法だが,収束速度と離散的なデータに対する性能が課題 – Adaptiveな手法(adagrad, RMSProp, adamなど): 収束速度が向上したが,汎化性能が課題 – SGDの欠点を補うために研究・提案されたAdaptiveな最適化手法であるが,未知データに対 する性能に対してあまりパフォームしていないなどとの問題提起[Wilsom et al., 2017]など もあり,最近のDeep Learningに関連する手法では結局SGDが用いられている – AMSGrad[Reddi et al., 2018]はLong Term Memoryを持つことによって,既存の指数平均 的なアルゴリズムでは取り扱っていなかった学習データの持つ情報量のバイアスに対処し,ま た小さな学習率を適用することで高性能であることを示した.しかし,Adamとそこまで性能 が変わらないとの指摘も[Keskar&Socher, 2017; Chen et al.,2018] 今回は,実験的にAdam/AMSGradなどの最適化手法が収束しない 原因を実証的に特定し,それに対して新しい手法を提案する 4
既存の最適化手法の整理と課題 • 既存手法を汎用的な表現で整理すると以下のようになる AMSGrad [Reddi et al., 2018]より引用 5
予備知識 • Regret – 1stepの損失ではなく,累計損失について扱う有用性が存在(Momentumとか AdaGradとか) – 関数𝑓𝑡 に対するパラメタ𝑥𝑡 の最適化問題は,累計損失を最小化する問題として 定式化可能 𝑇 min 𝑓𝑡 (𝑥𝑡 ) 𝑥𝑡 – Regretは,累計誤差として定義 1 𝑅𝑡 = σ𝑇1 𝑓𝑡 (𝑥𝑡 ) − min σ𝑇1 𝑓𝑡 (𝑥𝑡 ) 𝑥𝑡 – Regretのオーダーが小さいほど,最適解に向かいやすいと言える 6
既存の最適化手法の整理と課題 • 既存手法を汎用的な表現で整理すると以下のようになる 普通のSGD .スケーリングはなし(固定) AMSGrad [Reddi et al., 2018]より引用 7
既存の最適化手法の整理と課題 • 既存手法を汎用的な表現で整理すると以下のようになる SGD に対して,Momentumを追加. 過去の最適化のトレンドを反映させるこ とで局所最適を飛ばして大局的最適へ スケーリングはなし(固定) AMSGrad [Reddi et al., 2018]より引用 引用: https://postd.cc/optimizing-gradient-descent/ 8
既存の最適化手法の整理と課題 • 既存手法を汎用的な表現で整理すると以下のようになる SGD に対して,Regretの上界を制限すること によって局所解に陥りにくくした手法. Learning rateが適応的に減少していく AMSGrad [Reddi et al., 2018]より引用 9
既存の最適化手法の整理と課題 • 既存手法を汎用的な表現で整理すると以下のようになる ADAGrad に対して,より最近の勾配に大き な重みを置くことで,急激な曲率に対して 適応できるようにした AMSGrad [Reddi et al., 2018]より引用 10
既存の最適化手法の整理と課題 • 既存手法を汎用的な表現で整理すると以下のようになる RMSPROPにさらにMomentumを組み合わせ, 収束スピードを向上. パラメタ毎に適切なスケールで重みが更新 されていくようにした AMSGrad [Reddi et al., 2018]より引用 11
既存の最適化手法の整理と課題 • AMSGradの登場 – 実際のデータには,情報量のばらつきがある – Adamなどの問題点として,そうした最適化 に対して大きく貢献する勾配の重みが即座に 減少してしまう – =>Long Term Memoryの導入 特定期間の最大値をと ることで,有効だった 重みを反映 引用: https://www.slideshare.net/harmonylab/20180611-102102340 • しかし、AMSGradはAdamとそれほど性能差がないことが報告され ることも[Keskar&Socher, 2017; Chen et al.,2018] 12
既存の最適化手法の整理と課題 何がボトルネックなのか? =>既存手法は、大きすぎる学習率が悪影響を及ぼすという知見に基づ いていたが,小さすぎる学習率も悪影響を及ぼしているのでは? 13
既存の最適化手法の課題のボトルネック特定 • 小さすぎる学習率の存在の実証と悪影響の考察 – 実験: CIFAR-10を用いてADAMを利用したResNetから重みとバイアスをサン プリングして,それぞれのパラメタにおける学習率を観測 • 異なる層から9つの3*3カーネルを選んで,最終層からバイアスを選ぶ • 同じ層のパラメタは同質であるため,9つのカーネルからそれぞれ1つずつ選んだ合計9つ のパラメタの学習率と最終層の1つのバイアスの学習率を可視化 *対数化している log0.01=-4.6, log1000=6.9 • 収束が近い(学習終盤)では,パラメタによって学習率が1000以上の大きすぎるものがある 一方で、0.01未満の小さすぎるものも存在している 14
既存の最適化手法の課題のボトルネック特定 • 小さい学習率はなぜ悪い? – -2<x<2における以下の関数(C=3)の最適化問題をAdamでとくことを考える – 最適解は明らかにx<0の時だが,(𝛽1 = 0の)Adamでは局所解に陥ってしまう 1. Cステップに1度, -1の勾配をえる(逆に進む) 2. その次のステップで2の勾配を得る(正しく進む) • =>この時、学習率は減衰しているので,小さい学習率の時,正しい方向への更新は1つ前 の間違った更新の分を補えきれず,xはステップを重ねるたびに大きく(逆向きに進む)なっ てしまう(*Appendixにある証明は説明できるほど理解しきれませんでしたごめんなさい) • SDGであれば学習率が一定であるため,上記のような問題がおこならい(学習率が小さくて もさほど問題ではない) 15
提案手法 • AdaBound/AMSBound – 大きすぎる学習率と同様に,小さすぎる学習率を抑制する仕組みを導入すれば 良いはず – 学習率に上界と下界を定めて,クリッピングする 16
提案手法 • AdaBound/AMSBound – 結果として,学習初期は学習率に制限がないため,Adamと同じ挙動をし,学 習終盤では,学習率に強い制限がかかっているため,学習率が近似的に固定さ れ,SGDのような挙動をするようになる – 実験では,以下の境界を設けた • 𝜂𝑙 𝑡 = 0.1 − • 𝜂𝑢 𝑡 = 0.1 + 0.1 1−𝛽2 𝑡+1 0.1 1−𝛽2 𝑡+1 – 今までにも,AdamからSGDに明示的に 切り替える手法などもあったが, 1. 連続的な変化をすること 2. ハイパラが不要なこと が優れている 引用: https://qiita.com/Phoeboooo/items/f610affdcaaae0a28f34 17
実験 • 以下のアルゴリズムで実験 – フィードフォーワードニューラルネットワーク – CNN – LSTM 18
実験 • フィードフォーワードニューラルネットワーク – MNIST – Adamよりも高性能 19
実験 • CNN – CIFAR-10, DenseNet / ResNet – 収束速度はAdamよりよく,後半もSGDよりも優れている(最高性能) 20
実験 • LSTM – Penn Treebank(Perplexity) 21
実験 • 考察(appendix) – 提案手法はハイパラ設定に対してもロバスト – 提案手法は複雑なモデルほど高性能 22
みんなの口コミ • 実際に使ってみた人の声を集めてみた – AdaBoundを試してみた • https://blog.knjcode.com/adabound-memo/ • [内容]ラーメン二郎のデータセットでAdaBoound/AMSBoundを試してみた • [結果]good: 転移学習においてもほぼ論文の主張どおりの結果 (AdaBound と AMSBound の速い収束、高い汎化性能)を確認できた – tweet@fukkaa さん • https://twitter.com/fukkaa1225/status/1103587061095792640 • [内容]文書分類 • [結果]not good 23
みんなの口コミ • 実際に使ってみた人の声を集めてみた – tweet@coz_a_1980 さん • https://twitter.com/coz_a_1980/status/1107039197565612033 • [内容]CNN • [結果]final lrの調整は必要だが,good 24
みんなの口コミ • 実際に使ってみた人の声を集めてみた – tweet@hrs1985 さん • https://twitter.com/hrs1985/status/1103996044369584129 • [内容]: 強化学習? • [結果]: good 25
みんなの口コミ • 実際に使ってみた人の声を集めてみた – tweet@Reiji_Hatsu • https://twitter.com/Reiji_Hatsu/status/1102920991754280961 • [内容]: 強化学習 • [結果]: good (seedなどによってやや不安定) 26
みんなの口コミ • 実際に使ってみた人の声を集めてみた – tweet@moopan さん • https://twitter.com/mooopan/status/1104080839422369792 • [内容]強化学習 • [結果]not good 27
みんなの口コミ • 皆様の口コミなどをみてみると, – DNN, CNN, LSTMだけでなく,強化学習でも有効 – ハイパラにロバストと論文中では謳っているが,最終LRは細かい調整が必要 となる場合が多い – Seedによるブレなど、やや不安定要素はある – データが少ないとイマイチ 28
参考文献 • • • • • • • [勾配降下法の最適化アルゴリズムを概観する](https://postd.cc/optimizing-gradient-descent/) [Optimizer : 深層学習における勾配法について](https://qiita.com/tokkuman/items/1944c00415d129ca0ee9) [最適化アルゴリズムを評価するベンチマーク関数まとめ](https://qiita.com/tomitomi3/items/d4318bf7afbc1c835dda) [On the Convergence of Adam and Beyond](https://www.slideshare.net/harmonylab/20180611-102102340) [Optimizer : 深層学習における勾配法について](https://qiita.com/tokkuman/items/1944c00415d129ca0ee9) [[最新論文] 新しい最適化手法誕生! AdaBound & AMSBound](https://qiita.com/Phoeboooo/items/f610affdcaaae0a28f34) [AdaBoundを試してみた](https://blog.knjcode.com/adabound-memo/) 29