モデルが実際に学習する仕組み——つまみごとに歩幅を変え、記憶を持つ。
SRC·45
Source
素朴な勾配降下は、10億のつまみに同じ歩幅を使う。
勾配降下には手で決めるつまみが一つある——歩幅だ。その同じ 数値で、モデルの重みすべてを動かす。10億個を、まったく同じに。だが各重みが乗る斜面は大きく異なる。優れたオプティマイザはこれを直す——どの重みにもそれぞれの歩幅 を与え、これまで進んできた向きの短い記憶を持たせる。
測る傾きは小刻みに揺れる——そのまま追えば、よろめく。
各ステップの傾きは、ほんの一握りの例から読み取る。だから小刻みに揺れ 、毎回少しずつ違う方を指す。そのまま追えば、よろめきながら下る。横風の突風になびく吹き流しのように: 突風のたびに新しい角度へ跳ね、どの一瞬の振れも、その奥にある定常の風を教えてはくれない。
傾きを一つずつ追うな。その移動平均を追え。
m t = β 1 m t − 1 + ( 1 − β 1 ) g t m_t = \beta_1\, m_{t-1} + (1-\beta_1)\, g_t
ぴくつく傾きを一つずつ追うな。移動的に混ぜ続けよ——大半は これまでの進路で、最新の読みで少しだけ押される。揺れは打ち消し合い、本当の向きが育つ。斜面を転がる重い岩のように: 小さな凹凸をならし、自分の線を保つ。その混合がmomentum だ。次の向きは、ほぼ今まで進んでいた方向で、最新の傾きへわずかに傾く。
一つの歩幅で、10億の異なるつまみには合わせられない。
θ t + 1 = θ t − η g t \theta_{t+1} = \theta_t - \eta\, g_t
素朴な降下が決して直さない落とし穴がここにある。その単一の歩幅 η は、すべての つまみの傾きを同じように掛ける。だが、あるつまみは急で激しい斜面に乗り、ごく小さな慎重な一歩を要する。別のつまみは平らで穏やかな斜面に乗り、大股で進めるはずだ。どの坂にも自転車のギアが一つきりのように: 平地では快適、登りでは過酷、下りでは怠け。一つの比——共有された一つの η——では、すべてに合わせられない。
ならば、つまみごとに自前の歩幅を——その荒さに応じて。
v t = β 2 v t − 1 + ( 1 − β 2 ) g t 2 , η ~ t = η v t + ϵ v_t = \beta_2\, v_{t-1} + (1-\beta_2)\, g_t^{2}, \qquad \tilde{\eta}_t = \dfrac{\eta}{\sqrt{v_t}+\epsilon}
そこで、つまみごとに自前の歩幅を与える。その傾きがどれだけ荒かった か——勾配の二乗の移動平均——を追い、そのつまみの一歩をそれで割る。傾きが暴れるつまみは抑えられ、穏やかなつまみは自由に動ける。節のまわりを紙やすりで削るように: 木目が逆らうところは力を抜いてゆっくり、なめらかなところは速く滑らせる。平たく言えば、最近の傾きが大きければそこの一歩は縮み、小さければ伸びる。
どちらの平均もゼロから始まる。だから最初の数歩は小さく出すぎる。
m ^ t = m t 1 − β 1 t , v ^ t = v t 1 − β 2 t \hat{m}_t = \dfrac{m_t}{1-\beta_1^{\,t}}, \qquad \hat{v}_t = \dfrac{v_t}{1-\beta_2^{\,t}}
ひとつ難点がある。どちらの移動平均もゼロから始まるので、最初の数歩ではあまりに小さく出る——傾きが小さいからではなく、集計が始まったばかりだからだ。今週、空から始めた小銭の瓶のように: 積み上がった合計が小さく見えるのは、何もないところから始めたからにすぎない。修正はこの出だしの分を割り戻し、若いうちは各平均を引き上げる——集計が満ちるにつれ消えていく補正だ。
定まった進路と、つまみごとの歩幅——それがオプティマイザのすべて。
θ t = θ t − 1 − η m ^ t v ^ t + ϵ \theta_t = \theta_{t-1} - \eta\, \dfrac{\hat{m}_t}{\sqrt{\hat{v}_t}+\epsilon}
すべてを組み合わせる。momentum が向き を選ぶ——ならされた、揺れのない進路だ。つまみごとの歩幅が各一歩 を選ぶ——傾きが穏やかなら長く、暴れるなら短く。一行が両方をこなす。急流を読むカヤッカーのように: 本流の筋を保ちつつ、一漕ぎごとに加減する——なめらかな水では優しく、沸き立つところでは力強く。これが Adam 、ほとんどすべてを学習させるオプティマイザだ(通常 β₁=0.9, β₂=0.999)。
🌱 同じ丘、同じ出発点——だが谷を選んだのはオプティマイザだ。
momentum とつまみごとの歩幅があるため、下り坂の道はもはや地形 のものではない——オプティマイザ のものだ。まったく同じ丘の、まったく同じ地点から二つを走らせても、より重い記憶や、より大胆な歩幅が、それぞれを別々の谷へ運びうる。では学習が止まったとき、私たちはその 底を見つけたのか——それとも、たまたま momentum が転がし込んだ底にすぎないのか?
タップ → ↑スワイプで詳しく ↓スワイプで終了 クリックまたは → で次へ ↑ で詳しく esc で終了