坂を下る
勾配降下法は、勾配と逆向きに進むという1つの動きを繰り返します:wk+1=wk−η∇f(wk)。η>0 はステップ幅で、学習率とも呼ばれます。η が小さいと安全ですが遅く、大きいと谷を飛び越え、反復のたびに遠ざかることがあります。
f(w)=21aw2 ⇒ wk+1=(1−ηa)wk,∣1−ηa∣<1⟺0<η<a2(1) 最も単純なお椀型では、更新のたびに w が 1−ηa 倍されるので、∣1−ηa∣<1 すなわち η<2/a のときに限り反復はゼロへ縮みます。η=1/a なら1ステップで最小値に着地し、1/a と 2/a の間なら収束はしますが符号が交互に変わります。2/a を超えると係数の絶対値が1を超え、反復は発散します。
f = 3x² の3ステップここでは
f′(x)=6x なので
a=6 です。
x0=4、
η=0.1 から始めると係数は
1−0.6=0.4 で、
x1=1.6、
x2=0.64、
x3=0.256 となります。安定限界は
2/6=0.333 です。
η=0.5 だと係数は
1−3=−2 で、反復は
4,−4,8,… と毎回2倍の大きさになります。
多変数では曲率が方向ごとに違います。ヘッセ行列の最大固有値 L が使えるステップ幅の上限(η<2/L)を決め、最小固有値 μ が最も平らな方向を渡る遅さを決めます。その比 κ=L/μ が条件数です。最良の固定ステップ η=2/(L+μ) では、誤差は1ステップごとにおよそ (κ−1)/(κ+1) 倍になるので、κ が大きいと係数は1に近く、細長い谷をゆっくりジグザグに下ることになります。2010年以降の米国大型株12銘柄の共分散行列では κ は約 33 で、係数は 0.941、誤差を100分の1にするのに約76ステップかかります。
η∗=L+μ2,∥wk−w∗∥ ≲ (κ+1κ−1)k∥w0−w∗∥,κ=μL(2) - 安全なステップ:η<2/L(L はヘッセ行列の最大固有値)。超えると発散します。
- 速さ:条件数 κ=L/μ で決まり、大きいほど遅くなります。
- 停止条件:∥∇f∥ が許容値を下回ったら止め、反復回数に上限も設けます。
変数のスケールを揃える条件数が大きくなる原因は、0〜1のウェイトとベーシスポイント単位のボラティリティのように、スケールが大きく違う変数であることが多いです。各変数を同程度の大きさに直すと κ が下がり、数千回の反復が数十回で済むことがあります。前処理はこの考えの一般形です。 ラボ:採点される内容
- 最初のステップ15点
- 2番目のステップ10点
- 安定な最大ステップ幅15点
- 大きすぎるステップ15点
- 条件数15点
- 最良の縮小係数15点
- 悪条件がなぜ遅いのか15点