Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ON THE VARIANCE OF THE ADAPTIVE LEARNING RATE AND BEYOND #4

Open
raxman0721 opened this issue Aug 17, 2019 · 0 comments
Open

ON THE VARIANCE OF THE ADAPTIVE LEARNING RATE AND BEYOND #4

raxman0721 opened this issue Aug 17, 2019 · 0 comments
Labels
opt optimizer

Comments

@raxman0721
Copy link
Owner

raxman0721 commented Aug 17, 2019

一言でいうと

Adamの改善版「RAdam(Rectified Adam)」
Adamを改良することで、ウォームアップを必要とせずに同等の性能と学習率のロバスト性を示せた。

論文リンク

https://arxiv.org/pdf/1908.03265v1.pdf

著者/所属機関

Liyuan Liu University of Illinois, Urbana-Champaign
Haoming Jiang Georgia Tech
Pengcheng He, Weizhu Chen Microsoft Dynamics 365 AI
Xiaodong Liu, Jianfeng Gao Microsoft Research
Jiawei Han University of Illinois, Urbana-Champaig

投稿日付(yyyy/MM/dd)

2019/8/8

概要

今までAdam+ウォームアップの手法は多く使われてきたが、あまり理論的に説明されていることは少ない為に、様々な設定でトライ&エラーの時間に多くを割かれてきた。
この論文ではAdam+ウォームアップの原理を追求して、Adamの問題点を解明した。
その問題点を修正する整流項を追加することで、「RAdam」を提案する。

新規性・差分

Adamでは学習初期にサンプルが少ないことによって学習率に大きな分散があり、局所最適解に捕まる可能性があることを確認した。
スクリーンショット 2019-08-17 12 04 24

一貫した学習率の分散を持つように整流項を追加することで、勾配分布の歪みを回避することができる。

スクリーンショット 2019-08-17 15 03 47

手法

整流項を追加することで、学習初期の勾配分散の歪みを減らした。
スクリーンショット 2019-08-17 12 11 28
整流項
スクリーンショット 2019-08-17 15 14 46

結果

パフォーマンス比較
SGD、Adamと比較した際にはAdamよりも高い性能を残した。
SGDの性能には叶わないが、スピードはAdamと同等。初期段階では整流項により微妙にAdamのほうが早いが、その後は巻き返す。
スクリーンショット 2019-08-17 14 31 50

学習率の変化によるロバスト性
複数の学習率を設定してみたが、RAdamはどれも最終的な性能への影響は少なかった。

スクリーンショット 2019-08-17 14 29 34

ウォームアップとの比較
ウォープアップ+Adamとの比較。
ウォームアップのステップ数を[100,200,500,1000]それぞれに設定した場合、ステップ数と学習率の組み合わせによっては、いいパフォーマンスが出せない場合もあったが、RAdamは高い水準で同等以上の結果をだしている。
ステップ数を決める必要が無いから良い。
スクリーンショット 2019-08-17 14 39 16

実装

https://github.com/LiyuanLucasLiu/RAdam

コメント

整流項のところが具体的に何をしているのかが良くわからん。

@raxman0721 raxman0721 added the opt optimizer label Aug 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
opt optimizer
Projects
None yet
Development

No branches or pull requests

1 participant