SGD Momentum の気持ちを理解する

SGD Momentum の気持ちを理解する

SGD Momentum の役割について調べている Understanding the Role of Momentum in Stochastic Gradient Methods の紹介です。

C4c6c7b4fdf9285bcf12c5caa58c8d53?s=128

Yamaguchi Takahiro

February 11, 2020
Tweet

Transcript

  1. 1 SGD Momentum の 気持ちを理解する 2020/02/11 nyk510

  2. Hello! 山口貴大 atma(アートマ)株式会社 取締役 DS / ふろんと / ばっくえんど /

    いんふら 京都大学大学院 最適化数理卒 SGDが好き Kaggle Master kaggle.com/nyk510 2
  3. 準備 以下では次の x を最小化する問題を考えます 3

  4. そんな問題あるの? あります。期待値はだいたいデータの平均になるのでこうも書けます。 よくある設定で言うと…Neural Network での学習の問題 • f: 今の重みxでの誤差関数 • ζ

    での期待値: 学習データ全体の平均 なんらかの方法でこの方程式を解く必要がある 4
  5. しってるよ! NNだったらSGDでしょ • 最近よく使われるのが SGD (Stochastic Gradient Descent) ◦ 特に

    Neural Network への最適化は事実上1強 • 1つのサンプルに対する勾配だけで更新する ◦ 計算が軽い・NNで経験的に良い SGD (Stochastic Gradient Descent) ちなみに: Gradient Descent は 全部使う 5
  6. SGDも種類がいろいろある • Momentum 項をもたせるパターン ◦ 前の更新のときの勾配「も」使う • 加速法 (Nesterov’s Accelerated

    Gradient) を使うパターン ◦ 勾配の評価を momentum を 考慮した点で行う • Adaptiveに改造 ◦ Adagrad, Adadelta, Adam ... • ほかにもいろいろ 6
  7. どれがいいんだろう… • 簡単な問題(線形回帰とか)は昔から研究がされていて知見が多い • 一方で最近の応用問題は凸じゃないことが多い ◦ たとえば Neural Network ◦

    凸最適化で良い物が必ずしも非凸最適化で良いわけでもない ◦ SVRGという良い性質を持つ手法がSGDに勝てなかったり On the Ineffectiveness of Variance Reduced Optimization for Deep Learning [Nips2019] • 色々な手法が出ているがMomentumの形式の違いなどによる影響の明確な 理解は進んでいない 7
  8. きになること 使う側の気持ちになるとこんなことが気になるはず • どういう条件だったら目的関数が収束するの? • 収束するとしたらどのぐらいの速さ? • 得られる解はどのぐら良い解? 8

  9. Understanding the Role of Momentum in Stochastic Gradient Methods SGDにおけるMomentum(と加速法)のパラメータと収束の関係を考えた論文

    https://papers.nips.cc/paper/9158-understanding-the-role-of-momentum-in-stochastic-gradi ent-methods 9
  10. 論文で言っていること 漸近的な収束保証 • どういう条件だったら目的関数が収束するの? Localな収束率: Local Convergence Rate • 収束するとしたらどのぐらいの速さで収束するの?

    • どんなパラメータの組み合わせが良い? 定常解析: Stationary Analysis • 得られる解はどのぐら良い解? 10
  11. 論文で言っていること 漸近的な収束保証 • どういう条件だったら目的関数が収束するの? Localな収束率: Local Convergence Rate • 収束するとしたらどのぐらいの速さで収束するの?

    • どんなパラメータの組み合わせが良い? 定常解析: Stationary Analysis • 得られる解はどのぐら良い解? 11
  12. 議論の前に… • α: 学習率 • β: momentumの強さ. 1のとき gradientを全く使わない •

    γ: 更新の時に使う勾配の強さ • 論文中で取り上げるSGDは以下の形式で表現できるものにします 通常のMomentum・加速法を使った手法(NAG)もこの形式で表現可能 12
  13. Q: どういう条件だったら目的関数が収束するの? • まず収束するとは… 停留点に大体存在するようになること • β→0 の時 ◦ βの意味:

    Momentumの大きさ ◦ β=0は要するにMomentumなし == SGDとほぼ一緒 ◦ イメージどおりSGDと同じように証明出来る (Theorem1) • 面白いのはβが0にならない時の証明(Theorem2) 13
  14. A: α→0よりゆっくりとβγ→1になれば収束 お気持ちを考えると… • α→0 ◦ LRを減らしてだんだんランダムな効果をなくしている • βγ→1 ◦

    momentumの割合をどんどん増やして1にしても収束する 14
  15. βγ→1をもうちょっと考える お気持ちを考えると… • β,γ=1のときは勾配の項 g が消える → 最終的には勾配情報を全く使わなくて収束すると言っている 更新ルールを思い出だす 15

  16. ある種の収束は保証されたけれど… • 最終的に0にしたり1にしたりすると収束するよと言っているに過ぎない • 実際に最適するときはまだ考えることがある ◦ どのぐらいの速さ?(速ければ速いほど良い) ◦ またどのパラメータの組が速い? ◦

    停留点の解はどのぐらい小さいか(小さければ小さいほど良い) 16
  17. 論文で言っていること 漸近的な収束保証 • どういう条件だったら目的関数が収束するの? Localな収束率: Local Convergence Rate • 収束するとしたらどのぐらいの速さで収束するの?

    • どんなパラメータの組み合わせが良い? 定常解析: Stationary Analysis • 得られる解はどのぐら良い解? 17
  18. どのぐらいの速さで収束するの? 仮定 • α・β・γ を定数とする (iterationによって変化しない) • 目的関数を二次近似して考える ◦ ヘシアンは半正定値とする

    ◦ 非線形関数でも局所解近傍では二次近似して考えることが可能 18
  19. Theorem3: 収束の速さに関する定理 収束のためには(13) の条件を満たしておく必要がある 19

  20. どんなパラメータの組み合わせが速い? 直感的に「Amount Of Momentum」を制御するのが良さそうに思える • どのぐらいモーメント項を入れるのがという観点 • モーメントの量は大体 β ×

    γ で決定する どのぐらいで収束するかわかった→収束が最も速いα/β/γが計算できる 20
  21. 最適な値の関係性 (a,b): 最適なβはγに対して単調減少 直感通り (a,b) γに対しての最適なβを出したもの 21

  22. 最適な値の関係性 (a,b) γに対しての最適なβを出したもの (c,d) βに対して最適なγを出したもの (c,d): 複雑な挙動. パターンが見えな い (a,b):

    最適なβはγに対して単調減少 (a,b) γに対しての最適なβを出したもの たんにMomentumの総量を考えればよいというわけではない 22
  23. 論文で言っていること 漸近的な収束保証 • どういう条件だったら目的関数が収束するの? Localな収束率: Local Convergence Rate • 収束するとしたらどのぐらいの速さで収束するの?

    • どんなパラメータの組み合わせが良い? 定常解析: Stationary Analysis • 得られる解はどのぐら良い解? 23
  24. 得られる解はどのぐらい良い解? 仮定 • 目的関数: 同じように二次近似 • 各パラメータ: 定数にfix ねらい •

    収束した目的関数値や最適値がどのような値をとるか? (かかる時間は一旦置いておく) 24
  25. Theorem4: 最適解の分散に関する定理 • 左辺: 最適解の共分散行列 停留点での最適解の分散はαの一次の項で決まる(βやγは関係ない) → 最適解に対しては学習率がもっとも影響を与えることが分かる 25

  26. Theorem5: もっと踏み込んで では α の二次の項まで見てみたら? • 左辺 tr(A∑x) は目的関数の二倍に一致→ 実質的に目的関数の値

    • γ=1 (SHB) や γ=β(NAG) だとβを1に近づけると達成できる目的関数値は小 さくなる 26
  27. 実験@Figure3 条件 • 二次元の二次問題 • 収束率が影響しないように 最適解からスタートして得られる平均的な解の大きさを調べる 結果 • αとβの関係性

    ◦ 理論通り小さいαと大きいβが良い目的関数値を達成 (白いほど値が小さいことを表す) パラメータごとの目的関数の値を 比較 27
  28. 実験@Figure3 • γとβの関係性について ◦ βを固定したとするとあるγで最小をとる二次式にみえる ◦ γを1に固定しない方法が成功している理由のひとつと考えられる (いい感じにγを決めたほうが最終的に良い解にたどり着く) 28

  29. 実験@Figure3 証明の仮定が満たされていない ものでも実験 • ロジスティック回帰@MNIST: 凸だがミニバッチからくるノイズが含まれる • ResNet18@CIFAR10: 非凸+ミニバッチのノイズで全く満たされない これらでも値の関係性が似通っていることを確認

    (小さいαと大きいβが良い値) 29
  30. おさらい • 漸近的な収束保証 Q: どういう条件だったら目的関数が収束するの? A: γβ → 1 で

    α → 0 より遅ければ • 局所的な収束率 Q: 収束するとしたらどのぐらいの速さ? A: 値の条件がある。最適な組合せは複雑。 • 定常解析 Q: 得られる解はどのぐら良い解? A: αが小さいほど良い解。二次まで考えるとβが1に近いほうが良い 30
  31. 「良いパラメータ」を探そう • そもそも… ◦ 良いパラメータを決める方法を探していたんでした ◦ いままでで明らかになったことを使ってパラメータを決めてみましょ う 1. 収束が保証されている

    2. 早く収束する 3. 良い解に収束する (得られる目的関数の値が小さくなる) 「良いパラメータ」とは… 31
  32. 良いパラメータを考える 1. 収束が保証されている ◦ γβ→1or β→0とすれば収束するのでそこまで困らなさそう 2. 早く収束する 3. 良い解に収束する

    (得られる目的関数の値が小さくなる) ◦ この2つは一般にトレードオフ ◦ しかしいままでの結果を使えば 相反しない決め方が考えられる 32
  33. 速くて・良い解を求めて [定理から言えること] • γ=1とする(i.e. SHB) と特定の条件を満たせば収束率は√βのみに依存 • 固定されたβに対してもっとも収束が速いα*は収束可能な最大のαより も小さい βを固定するMomentumの場合、大きいαからはじめて収束しなくなったタ

    イミングで切り下げる戦略が有効 (収束可能なαの中で最も小さいものを探りながら最適化するイメージ) (一般に用いられる Reduce LR Scheduling に相当) 33
  34. まとめ • Momentum+加速法を理解することはNNなどの非凸関数の最適化を行う際 にとても重要 • 漸近的な収束・収束の速度・得られる解の性能を評価しパラメータに対す る理論的・実験的裏付けを提案 34

  35. 参考文献など • Sutskever, Ilya, et al. "On the importance of

    initialization and momentum in deep learning." International conference on machine learning. 2013. • Bottou, Léon, Frank E. Curtis, and Jorge Nocedal. "Optimization methods for large-scale machine learning." Siam Review 60.2 (2018): 223-311. 35