$30 off During Our Annual Pro Sale. View Details »

SGD Momentum の気持ちを理解する

SGD Momentum の気持ちを理解する

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

Yamaguchi Takahiro

February 11, 2020
Tweet

More Decks by Yamaguchi Takahiro

Other Decks in Science

Transcript

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

    View Slide

  2. Hello!
    山口貴大
    atma(アートマ)株式会社 取締役
    DS / ふろんと / ばっくえんど / いんふら
    京都大学大学院 最適化数理卒 SGDが好き
    Kaggle Master kaggle.com/nyk510
    2

    View Slide

  3. 準備
    以下では次の x を最小化する問題を考えます
    3

    View Slide

  4. そんな問題あるの?
    あります。期待値はだいたいデータの平均になるのでこうも書けます。
    よくある設定で言うと…Neural Network での学習の問題
    ● f: 今の重みxでの誤差関数
    ● ζ での期待値: 学習データ全体の平均
    なんらかの方法でこの方程式を解く必要がある
    4

    View Slide

  5. しってるよ! NNだったらSGDでしょ
    ● 最近よく使われるのが SGD (Stochastic Gradient Descent)
    ○ 特に Neural Network への最適化は事実上1強
    ● 1つのサンプルに対する勾配だけで更新する
    ○ 計算が軽い・NNで経験的に良い
    SGD (Stochastic Gradient Descent) ちなみに: Gradient Descent は
    全部使う
    5

    View Slide

  6. SGDも種類がいろいろある
    ● Momentum 項をもたせるパターン
    ○ 前の更新のときの勾配「も」使う
    ● 加速法 (Nesterov’s Accelerated Gradient) を使うパターン
    ○ 勾配の評価を momentum を
    考慮した点で行う
    ● Adaptiveに改造
    ○ Adagrad, Adadelta, Adam ...
    ● ほかにもいろいろ
    6

    View Slide

  7. どれがいいんだろう…
    ● 簡単な問題(線形回帰とか)は昔から研究がされていて知見が多い
    ● 一方で最近の応用問題は凸じゃないことが多い
    ○ たとえば Neural Network
    ○ 凸最適化で良い物が必ずしも非凸最適化で良いわけでもない
    ○ SVRGという良い性質を持つ手法がSGDに勝てなかったり
    On the Ineffectiveness of Variance Reduced Optimization for Deep Learning
    [Nips2019]
    ● 色々な手法が出ているがMomentumの形式の違いなどによる影響の明確な
    理解は進んでいない
    7

    View Slide

  8. きになること
    使う側の気持ちになるとこんなことが気になるはず
    ● どういう条件だったら目的関数が収束するの?
    ● 収束するとしたらどのぐらいの速さ?
    ● 得られる解はどのぐら良い解?
    8

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

  12. 議論の前に…
    ● α: 学習率
    ● β: momentumの強さ. 1のとき gradientを全く使わない
    ● γ: 更新の時に使う勾配の強さ
    ● 論文中で取り上げるSGDは以下の形式で表現できるものにします
    通常のMomentum・加速法を使った手法(NAG)もこの形式で表現可能
    12

    View Slide

  13. Q: どういう条件だったら目的関数が収束するの?
    ● まず収束するとは… 停留点に大体存在するようになること
    ● β→0 の時
    ○ βの意味: Momentumの大きさ
    ○ β=0は要するにMomentumなし == SGDとほぼ一緒
    ○ イメージどおりSGDと同じように証明出来る (Theorem1)
    ● 面白いのはβが0にならない時の証明(Theorem2)
    13

    View Slide

  14. A: α→0よりゆっくりとβγ→1になれば収束
    お気持ちを考えると…
    ● α→0
    ○ LRを減らしてだんだんランダムな効果をなくしている
    ● βγ→1
    ○ momentumの割合をどんどん増やして1にしても収束する
    14

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  18. どのぐらいの速さで収束するの?
    仮定
    ● α・β・γ を定数とする (iterationによって変化しない)
    ● 目的関数を二次近似して考える
    ○ ヘシアンは半正定値とする
    ○ 非線形関数でも局所解近傍では二次近似して考えることが可能
    18

    View Slide

  19. Theorem3: 収束の速さに関する定理
    収束のためには(13) の条件を満たしておく必要がある
    19

    View Slide

  20. どんなパラメータの組み合わせが速い?
    直感的に「Amount Of Momentum」を制御するのが良さそうに思える
    ● どのぐらいモーメント項を入れるのがという観点
    ● モーメントの量は大体 β × γ で決定する
    どのぐらいで収束するかわかった→収束が最も速いα/β/γが計算できる
    20

    View Slide

  21. 最適な値の関係性
    (a,b): 最適なβはγに対して単調減少
    直感通り
    (a,b) γに対しての最適なβを出したもの
    21

    View Slide

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

    (a,b): 最適なβはγに対して単調減少
    (a,b) γに対しての最適なβを出したもの
    たんにMomentumの総量を考えればよいというわけではない
    22

    View Slide

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

    View Slide

  24. 得られる解はどのぐらい良い解?
    仮定
    ● 目的関数: 同じように二次近似
    ● 各パラメータ: 定数にfix
    ねらい
    ● 収束した目的関数値や最適値がどのような値をとるか?
    (かかる時間は一旦置いておく)
    24

    View Slide

  25. Theorem4: 最適解の分散に関する定理
    ● 左辺: 最適解の共分散行列
    停留点での最適解の分散はαの一次の項で決まる(βやγは関係ない)
    → 最適解に対しては学習率がもっとも影響を与えることが分かる
    25

    View Slide

  26. Theorem5: もっと踏み込んで
    では α の二次の項まで見てみたら?
    ● 左辺 tr(A∑x) は目的関数の二倍に一致→ 実質的に目的関数の値
    ● γ=1 (SHB) や γ=β(NAG) だとβを1に近づけると達成できる目的関数値は小
    さくなる
    26

    View Slide

  27. 実験@Figure3
    条件
    ● 二次元の二次問題
    ● 収束率が影響しないように
    最適解からスタートして得られる平均的な解の大きさを調べる
    結果
    ● αとβの関係性
    ○ 理論通り小さいαと大きいβが良い目的関数値を達成
    (白いほど値が小さいことを表す)
    パラメータごとの目的関数の値を
    比較
    27

    View Slide

  28. 実験@Figure3
    ● γとβの関係性について
    ○ βを固定したとするとあるγで最小をとる二次式にみえる
    ○ γを1に固定しない方法が成功している理由のひとつと考えられる
    (いい感じにγを決めたほうが最終的に良い解にたどり着く)
    28

    View Slide

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

    View Slide

  30. おさらい
    ● 漸近的な収束保証
    Q: どういう条件だったら目的関数が収束するの?
    A: γβ → 1 で α → 0 より遅ければ
    ● 局所的な収束率
    Q: 収束するとしたらどのぐらいの速さ?
    A: 値の条件がある。最適な組合せは複雑。
    ● 定常解析
    Q: 得られる解はどのぐら良い解?
    A: αが小さいほど良い解。二次まで考えるとβが1に近いほうが良い
    30

    View Slide

  31. 「良いパラメータ」を探そう
    ● そもそも…
    ○ 良いパラメータを決める方法を探していたんでした
    ○ いままでで明らかになったことを使ってパラメータを決めてみましょ

    1. 収束が保証されている
    2. 早く収束する
    3. 良い解に収束する (得られる目的関数の値が小さくなる)
    「良いパラメータ」とは…
    31

    View Slide

  32. 良いパラメータを考える
    1. 収束が保証されている
    ○ γβ→1or β→0とすれば収束するのでそこまで困らなさそう
    2. 早く収束する
    3. 良い解に収束する
    (得られる目的関数の値が小さくなる)
    ○ この2つは一般にトレードオフ
    ○ しかしいままでの結果を使えば
    相反しない決め方が考えられる
    32

    View Slide

  33. 速くて・良い解を求めて
    [定理から言えること]
    ● γ=1とする(i.e. SHB) と特定の条件を満たせば収束率は√βのみに依存
    ● 固定されたβに対してもっとも収束が速いα*は収束可能な最大のαより
    も小さい
    βを固定するMomentumの場合、大きいαからはじめて収束しなくなったタ
    イミングで切り下げる戦略が有効
    (収束可能なαの中で最も小さいものを探りながら最適化するイメージ)
    (一般に用いられる Reduce LR Scheduling に相当)
    33

    View Slide

  34. まとめ
    ● Momentum+加速法を理解することはNNなどの非凸関数の最適化を行う際
    にとても重要
    ● 漸近的な収束・収束の速度・得られる解の性能を評価しパラメータに対す
    る理論的・実験的裏付けを提案
    34

    View Slide

  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

    View Slide