1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

子供達に実装されているOptimizerについて考察してみる

Last updated at Posted at 2021-01-16

この記事について

  • e資格にむけてDeepLearningをお勉強中です。
  • 子育て中です。

子供達の様子を見ていて、学び方にいろいろなパターンがあるなあと思ったため、Deeplearningの学習方法をまとめつつ、子供達エピソードを愛でる親バカ記事です

  • 勉強中のため、解釈とか間違っていたり、イメージが異なるエピソードになっているところがあるかも(免責事項)

最適化手法まとめ

最急降下法

  • θ ← θ - ρ∇Lで更新

確率的勾配降下法(SGD)

  • θ ← θ - ρ∇Lで更新
  • 最急降下法と更新式は同じで、ミニバッチで学習する。
  • ∇Lの方向と、最適解の方向が異なる場合に振動して、収束が遅くなる

長女に、「机の上を片付けなさい」と言うと、「机の上を片付けるために、引き出しや本棚を全て片付る!」と言って、全く机の上が片付かない感じかしら。

モーメンタム

  • 勾配降下法・確率的勾配降下法の、「∇Lの方向と最適解の方向が異なる場合に振動して収束が遅くなる」に対応するため、速度ベクトルを採用
  • v ← αv - ρ∇L
  • θ ← θ + v
  • 物理のモーメントみたいに動いた方向を一定反映してくれて、急な勾配の変化を緩和してくれる
  • 速度ベクトルが、損失を減らす方向に向いているかどうかは保証してくれない

長女が小さい頃、コンビニのニキビお兄さんに、「お顔ぶつぶつだから、お薬ちゃんと塗らなきゃダメだよ!」と言っていた(当時、体がガサガサブツブツだったのでヒルドイドをいっぱい塗っていた)。方向は間違っていないけど、自分だけに留めて他の人にも適用できると思わないで欲しい。

ネストロフのモーメンタム

  • 速度ベクトルが損失をへらす方向に向いていることを保証してくれる
  • v ← αv - ρ∇L(θ + dθ)
  • θ ← θ + v

子育ては収束の方向を保証してくれるネステロフのモーメンタムはまずありえない。そこそこ変な方向に更新が行われることが多々ある(そこが面白い)

Adagrad

  • たくさん動いた後はあまりたくさん動かないようにする
  • r ← r + ∇L・∇L ※動く大きさ、アダマール積
  • ∇θ ← - ε / (δ + √r) ・ ∇L ※動く大きさの平方根(単位を合わせる)が分母に来ることで大小入れ替え
  • θ ← θ + ∇θ

子供に何かを注意して、そんなに大きく修正することってなかなかない。むしろ大きく修正と言うの不可能。子供が動いてくれない。ちょっとずつちょっとずつ分かるように導いていくしかない。

RMSProp

  • Adagradの派生
  • r ← ρr + (1-ρ)∇L・∇L ※動く大きさ
  • ∇Lと、rとどちらを寄り重視するか(ρ)を式に入れた
  • ハイパーパラメータが多いと使いづらい
  • Adagradで、一度更新量が飽和したらもう更新されない問題を、指数移動平均を使って解決

「損失関数からの学習」と、「たくさん動いた後は小刻みに」、のどちらを優先的に採用するかは、子供達の様子を見ると損失関数側から(うまく行った、うまく行かなかった、からの学び)の方が多そう。
長男が、いろんなこと(ハイパーパラメータ?)を同時に言われて、どの指摘をポイントに採用すればいいのかハテナがいっぱい浮かんで動けなくなっていることがよくある。(大人が気をつけなければいけない)

Adam

  • 一番一般的。第一選択となる方法
  • r ← ρ1r + (1-ρ1)∇L・∇L ※rはRMSPropと同じ
  • δ ← ρ2δ + (1-ρ2)∇L ※δはモーメンタムと同じ

次男の運動神経が良くて、特にアスレチック系をするときの力の入れ方、転んだり失敗しそうになったときの入れ方を、うまく行ったときとうまくいかなかった時の変更するバランスをうまく取りながら上手になって行っている気がする。
やっぱり、学習の大きさの調整はなかなか子育ての中でのイメージがわかない。

RAdam

  • 最新の方法。Adamより良いらしい。
  • SGDによるwarm start
  • 周りの勾配方向を考慮してくれる、と何処かで読んだ気が、、、、
  • 分散がどうとか、、、、理解できていない

ステップによって学習方法を変えるのは、子育て中あるある。
子供の学習の特徴に合わせて、課題を与えていくのが子育てにはきっと大事。

ニュートン法

  • 目的関数を精度良く近似することができ、最急降下法よりも収束が早い
  • 高次元になると解析的に解くための計算コストが高い

頭の中で考えていることのレベルが高いのに、外とのコミュニケーションがまだまだ(言葉の選び方とか理解とか)長男そのままのイメージ

最後に

  • 子供の学習の特徴に合わせて、課題を与えていくのが子育てにはきっと大事。
  • 苦手な数式と暗記、ちょっとだけ分かるようになってきました。
  • 親バカ失礼しました。

#参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?