σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academyロードマップスキル
Ctrl K
AO
+1.2k 人の学習者
ログイン参加する ↗
ロードマップスキル
AO
+1.2k 人の学習者
ログイン
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academyロードマップスキル
Ctrl K
AO
+1.2k 人の学習者
ログイン参加する ↗
ロードマップスキル
AO
+1.2k 人の学習者
ログイン
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Optimization スキル›モジュール 2 · 勾配法›トピック 2.1·~50 分中級

勾配降下法

スキル上の位置モジュール 2/5 · トピック 1/3
2.1 勾配降下法
—ラボスコア— / 100合計XP—連続日数—

坂を下る

勾配降下法は、勾配と逆向きに進むという1つの動きを繰り返します:wk+1=wk−η ∇f(wk)\mathbf w_{k+1}=\mathbf w_k-\eta\,\nabla f(\mathbf w_k)wk+1​=wk​−η∇f(wk​)。η>0\eta>0η>0 はステップ幅で、学習率とも呼ばれます。η\etaη が小さいと安全ですが遅く、大きいと谷を飛び越え、反復のたびに遠ざかることがあります。

f(w)=12a w2 ⇒ wk+1=(1−ηa) wk,∣1−ηa∣<1  ⟺  0<η<2af(w)=\tfrac12 a\,w^{2}\ \Rightarrow\ w_{k+1}=(1-\eta a)\,w_k,\qquad |1-\eta a|<1\iff 0<\eta<\frac{2}{a}f(w)=21​aw2 ⇒ wk+1​=(1−ηa)wk​,∣1−ηa∣<1⟺0<η<a2​(1)

最も単純なお椀型では、更新のたびに www が 1−ηa1-\eta a1−ηa 倍されるので、∣1−ηa∣<1|1-\eta a|<1∣1−ηa∣<1 すなわち η<2/a\eta<2/aη<2/a のときに限り反復はゼロへ縮みます。η=1/a\eta=1/aη=1/a なら1ステップで最小値に着地し、1/a1/a1/a と 2/a2/a2/a の間なら収束はしますが符号が交互に変わります。2/a2/a2/a を超えると係数の絶対値が1を超え、反復は発散します。

f = 3x² の3ステップここでは f′(x)=6xf'(x)=6xf′(x)=6x なので a=6a=6a=6 です。x0=4x_0=4x0​=4、η=0.1\eta=0.1η=0.1 から始めると係数は 1−0.6=0.41-0.6=0.41−0.6=0.4 で、x1=1.6x_1=1.6x1​=1.6、x2=0.64x_2=0.64x2​=0.64、x3=0.256x_3=0.256x3​=0.256 となります。安定限界は 2/6=0.3332/6=0.3332/6=0.333 です。η=0.5\eta=0.5η=0.5 だと係数は 1−3=−21-3=-21−3=−2 で、反復は 4,−4,8,…4,-4,8,\dots4,−4,8,… と毎回2倍の大きさになります。

多変数では曲率が方向ごとに違います。ヘッセ行列の最大固有値 LLL が使えるステップ幅の上限(η<2/L\eta<2/Lη<2/L)を決め、最小固有値 μ\muμ が最も平らな方向を渡る遅さを決めます。その比 κ=L/μ\kappa=L/\muκ=L/μ が条件数です。最良の固定ステップ η=2/(L+μ)\eta=2/(L+\mu)η=2/(L+μ) では、誤差は1ステップごとにおよそ (κ−1)/(κ+1)(\kappa-1)/(\kappa+1)(κ−1)/(κ+1) 倍になるので、κ\kappaκ が大きいと係数は1に近く、細長い谷をゆっくりジグザグに下ることになります。2010年以降の米国大型株12銘柄の共分散行列では κ\kappaκ は約 333333 で、係数は 0.9410.9410.941、誤差を100分の1にするのに約76ステップかかります。

η∗=2L+μ,∥wk−w∗∥ ≲ (κ−1κ+1)k∥w0−w∗∥,κ=Lμ\eta^{*}=\frac{2}{L+\mu},\qquad \lVert\mathbf w_k-\mathbf w^{*}\rVert\ \lesssim\ \Big(\frac{\kappa-1}{\kappa+1}\Big)^{k}\lVert\mathbf w_0-\mathbf w^{*}\rVert,\qquad \kappa=\frac{L}{\mu}η∗=L+μ2​,∥wk​−w∗∥ ≲ (κ+1κ−1​)k∥w0​−w∗∥,κ=μL​(2)
  • 安全なステップ:η<2/L\eta<2/Lη<2/L(LLL はヘッセ行列の最大固有値)。超えると発散します。
  • 速さ:条件数 κ=L/μ\kappa=L/\muκ=L/μ で決まり、大きいほど遅くなります。
  • 停止条件:∥∇f∥\lVert\nabla f\rVert∥∇f∥ が許容値を下回ったら止め、反復回数に上限も設けます。
変数のスケールを揃える条件数が大きくなる原因は、0〜1のウェイトとベーシスポイント単位のボラティリティのように、スケールが大きく違う変数であることが多いです。各変数を同程度の大きさに直すと κ\kappaκ が下がり、数千回の反復が数十回で済むことがあります。前処理はこの考えの一般形です。

ラボ:採点される内容

  • 最初のステップ15点
  • 2番目のステップ10点
  • 安定な最大ステップ幅15点
  • 大きすぎるステップ15点
  • 条件数15点
  • 最良の縮小係数15点
  • 悪条件がなぜ遅いのか15点
0/ 7問回答済み
問題
1数値で答える15点未回答

f(x)=3x2f(x)=3x^2f(x)=3x2 に x0=4x_0=4x0​=4、η=0.1\eta=0.1η=0.1 で勾配降下法を適用します。x1x_1x1​ はいくつですか。

x1=x1 =x1=許容:± 0.01
2数値で答える10点未回答

同じ η\etaη でもう1ステップ進めます。x2x_2x2​ はいくつですか。

x2=x2 =x2=許容:± 0.005
3数値で答える15点未回答

f(x)=3x2f(x)=3x^2f(x)=3x2 では、η\etaη がある限界より小さいときだけ収束します。その限界はいくつですか。小数第3位まで答えてください。

limit=limit =limit=許容:± 0.003
4選択15点未回答

f(x)=3x2f(x)=3x^2f(x)=3x2 で η=0.5\eta=0.5η=0.5 を使うと、反復はどうなりますか。

5数値で答える15点未回答

関数 f(x,y)=x2+10y2f(x,y)=x^2+10y^2f(x,y)=x2+10y2 のヘッセ行列は diag(2,20)\mathrm{diag}(2,20)diag(2,20) です。条件数 κ=L/μ\kappa=L/\muκ=L/μ はいくつですか。

kappa=kappa =kappa=許容:± 0.05
6数値で答える15点未回答

この fff では、最良の固定ステップの勾配降下法は誤差を1ステップごとにおよそ (κ−1)/(κ+1)(\kappa-1)/(\kappa+1)(κ−1)/(κ+1) 倍にします。この係数はいくつですか。小数第3位まで答えてください。

rate=rate =rate=許容:± 0.003
7言葉で説明する15点未回答

1〜2文で、条件数が大きいと勾配降下法が遅くなる理由を述べてください。

数学モードキーボードまたは LaTeX で入力問題1/7 · Ctrl ⏎ で確認

コードを実行するにはログインしてください。

レクチャーはすべて無料で読めます。コードの実行、テスト、ラボの提出にはアカウントの作成かログインが必要です。

  • ブラウザ内IDEとbashターミナル。インストール不要
  • 即時採点、XP、スキルでの現在地
アカウントを作成ログイン
または
GitHubで続ける