Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
確率的勾配法のはなし
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yamaguchi Takahiro
April 17, 2019
Science
18
8.5k
確率的勾配法のはなし
プレーンなSGDから最近のアルゴリズム(Adabound)までの流れをまとめています。
Yamaguchi Takahiro
April 17, 2019
Tweet
Share
More Decks by Yamaguchi Takahiro
See All by Yamaguchi Takahiro
コンペを気楽に開催しよーぜ!@関西Kaggler会
nyk510
0
1.4k
Django のセキュリティリリースを見る
nyk510
0
120
3分でMLアプリを作る 〜推論コードにちょっとのStreamlitを添えて〜
nyk510
1
1.2k
硬派で真面目なグラフを描く
nyk510
0
550
CORSをちゃんと理解する atmaバックエンド勉強会#4
nyk510
0
440
pythonで気軽にパッケージを作るのは良いという話。
nyk510
14
9.8k
RestAPIのページネーション atma バックエンド勉強会 #3
nyk510
1
1k
AWS CPU Credit を完全に理解する
nyk510
0
490
atmaCup#8 Opening
nyk510
0
300
Other Decks in Science
See All in Science
コンピュータビジョンによるロボットの視覚と判断:宇宙空間での適応と課題
hf149
1
570
2025-06-11-ai_belgium
sofievl
1
240
データマイニング - ノードの中心性
trycycle
PRO
0
350
(メタ)科学コミュニケーターからみたAI for Scienceの同床異夢
rmaruy
0
180
フィードフォワードニューラルネットワークを用いた記号入出力制御系に対する制御器設計 / Controller Design for Augmented Systems with Symbolic Inputs and Outputs Using Feedforward Neural Network
konakalab
0
110
やるべきときにMLをやる AIエージェント開発
fufufukakaka
2
1.3k
AIに仕事を奪われる 最初の医師たちへ
ikora128
0
1k
KISHIMOTO Atsuo
genomethica
0
110
人生を変えた一冊「独学大全」のはなし / Self-study ENCYCLOPEDIA: The Book Which Change My Life #独学大全 #EM推し本
expajp
0
120
見上公一.pdf
genomethica
0
100
白金鉱業Vol.21【初学者向け発表枠】身近な例から学ぶ数理最適化の基礎 / Learning the Basics of Mathematical Optimization Through Everyday Examples
brainpadpr
1
660
ITTF卓球世界ランキングのポイント比を用いた試合結果予測モデルの性能評価 / Performance evaluation of match result prediction models using the point ratio of the ITTF Table Tennis World Ranking
konakalab
0
110
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Evolving SEO for Evolving Search Engines
ryanjones
0
160
New Earth Scene 8
popppiees
1
1.7k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
290
Six Lessons from altMBA
skipperchong
29
4.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Scaling GitHub
holman
464
140k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
320
Designing for Timeless Needs
cassininazir
0
170
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
150
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Transcript
確率的勾配法のはなし 2019/04/17 Kaggle もくもくかい @nyker_goto
じこしょうかい @nyker_goto (twitter) 京都大学院, 最適化数理 (修論は確率的勾配法関連) 零細ベンチャー Atmaでデータサイエンティスト (新卒二年目) 人大募集中です!!!
今日は確率的勾配法の歴史と最近の論文 Adabound を ざっくり紹介します 2
はじめにおことわり このスライドの数式は若干適当です 3
なんで適当か • 数式追いかけてもあんまりおもしろくない ◦ 正直あまり本質的でもなかったり(変形すればいいだけなので ◦ なので収束性とかの込み入った話はしないです • SGD の「ノリ」をちょっとでも知ってほしいという気持です
◦ SGD は楽しいのです 以上のねらいのため, 出来る限り一般化を避けた表記に変えています。 そのため論文の数式よりも具体的になっていて表記が若干違います。 4
早速ですが Deep の optimizer って 何使ってますか !? 5
Optimizer なにつかってますか !? • SGD ◦ Nesterov の加速法 ◦ Momentum
• Adagrad • RMSProp • Adadelta • Adam • Adabound (NEW!) … 僕は SGD + Nesterov + Momentum (0.8) とかが好きです 6 図1. 勝手にとってきた Nesterov 先生
しんぷるなSGD t ステップ目で全体のうちひとつのデータの勾配 g を使って更新。たんじゅん。 Gradient Descent (最急降下法) だと全データ N
使うのがちがうとこ SGD (Stochastic Gradient Descent ちなみに: Gradient Descent 7
ちょっと一般化 今後の議論のため天下り的にちょっと一般化します。 SGD は毎回勾配(やそれに似た方向) m に対してあるステップサイズと補正ベクトル Vt をかけたような動きをすりゃいいので… と表せます。これを基本形と呼ぶことにします (V
と m はアダマール積) 8
SGD再掲 この基本形で SGD を書き直すと以下のような感じ。 基本形 SGD 9 • SGD は学習率をいじると収束が早いことが実験的に知られている
◦ 最初大きくあとで小さくとかがポピュラー • できれば人がいじらずに勝手に良い学習率で更新してほしい
適合的 (adaptive) なアルゴリズム • Adagrad (2010) • ADAM (2015) •
Adabound (2019) 10
Q. 適合的 (adaptive) って何? 11
A. いい感じに学習率(や勾配)を 変えてくれるような方法のこと 12
Adagrad (2010) Adaptive Subgradient Methods for Online Learning and Stochastic
Optimization (2010) 発想 • 学習率がすべての要素で同じなのは不自然なのでは? ◦ 毎回大きな勾配を持っているような要素ではあまり大きな学習率をとりたくない ◦ 反対にほとんど毎回ゼロの勾配を持つものはたまに勾配があるとき大きく更新し たい • 要素ごとにいい感じの学習率で更新させたい 13
Adagrad (2010) うごく方向 m は SGD と同じ SGD のときとの 差分は
Vt にあり 過去の勾配の二乗を足したもの平均値で割り算 • 過去に大きな勾配を持っている要素はステップ サイズが小さくなる。 • 要素ごとにいい感じの lr を選べる。 基本形 Adagrad 14 [note] 実は Vt は BFGS などの準ニュートン法的な発想で導入 されていたりします
Adagrad の問題点 • よーく V を見ると過去の値すべての平均をとっ ている • 一度とても大きい勾配に遭遇すると再度 V
が 小さくなる (= lr が大きくなる)ことはなかなか無 い ◦ Deep のような非凸関数だと局所解に捕 まったりする。そのときは step size を大 きくして抜けだしたい。けどできない。 基本形 Adagrad 15
みんなだいすき ADAM 先生 (2015) 16 発想 • V の計算を指数で重み付けするので最近の勾 配が小さいと大きい
lr を取れる • 勾配も過去の情報も使うようにしたらいいん じゃない? (Momentum的な発想) • 単に足して平均取るんじゃなくてついでに期待 値でも一致するよう 1- β を掛け算しとくといい のでは?
ADAM の問題点 • 実は どんな lr をとったとしても, 凸な問題で収束しないような場合があります(SGD だと収束します)。 ◦
ニューラルネットワークは非凸関数なので直接的には影響しませんが 解のごく近傍では凸に近似できるのでちょっと気持ちがわるい ◦ Adabound 論文中では学習が進んだ終盤で SGD にくらべ adam の性能が わるくなるのはこのためではないか? と指摘されています 要するに最初は adam 的な更新が良いけれど学習終盤(解近傍)の挙動は微妙 むしろ適合的でない SGD のほうが理論的にも良い (余計なことしないほうが良い) 17
じゃあ ADAM から SGD にかわるようなアルゴリズムに すればよくない? 18
Adabound (NEW! 2019) • V, m (補正項と方向) は adam と一緒
• 違うのは学習率を Clip しているとこ ◦ 最大最小を決めることで極端な学習率に ならなくなる ◦ 最大最小を特定の値に収束させるような 関数を使えば学習終盤でスムーズに SGD に置きかわる (左の例なら lr=0.1 の SGD ) 最大最小の一例@論文中 19
数値実験 • DenseNet121 で CIFAR-10 • 強いよね。序盤、中盤、終盤、隙がない。 (終盤で SGD Momentum
に追いつかれているものの序盤は圧倒的) 20
まとめ • 適合的な手法の発想はどれも似ている。割とシンプル。 • Adabound は SGD と Adam のいいとこ取り。これから流行りそう
21
参考文献 • Duchi, John and Hazan, Elad and Singer, Yoram
/ Adaptive Subgradient Methods for Online Learning and Stochastic Optimization. https://dl.acm.org/citation.cfm?id=2021068 adagrad の論文。結構最適化よりなのでむずい。 • Sebastian Ruder. An overview of gradient descent optimization algorithms. https://arxiv.org/abs/1609.04747 勾配法とか確率的勾配法のサーベイ。わかりよい。 • Liangchen Luo, Yuanhao Xiong, Yan Liu, Xu Sun. Adaptive Gradient Methods with Dynamic Bound of Learning Rate. https://openreview.net/forum?id=Bkg3g2R9FX adabound 論文 22