σμ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 スキル›モジュール 1 · 目的関数と勾配›トピック 1.1·~40 分初級

目的関数と勾配と最小値

スキル上の位置モジュール 1/5 · トピック 1/1
1.1 目的関数と勾配と最小値
—ラボスコア— / 100合計XP—連続日数—

最適化が探すもの

最適化問題には、小さくしたい数である目的関数 f(w)f(\mathbf w)f(w) と、自由に変えられる変数 w\mathbf ww があります。目的関数は最小二乗の損失でも、ポートフォリオの分散 wTΣw\mathbf w^{T}\Sigma\mathbf wwTΣw でも、キャリブレーションでのモデル価格と市場価格の差でも構いません。大きくしたい場合は符号を反転させた同じ問題で、fff を最大化することは −f-f−f を最小化することです。

∇f(w)=(∂f∂w1,…,∂f∂wn),Hij=∂2f∂wi ∂wj\nabla f(\mathbf w)=\Big(\frac{\partial f}{\partial w_1},\dots,\frac{\partial f}{\partial w_n}\Big),\qquad H_{ij}=\frac{\partial^{2} f}{\partial w_i\,\partial w_j}∇f(w)=(∂w1​∂f​,…,∂wn​∂f​),Hij​=∂wi​∂wj​∂2f​(1)

勾配は fff が最も速く増える向きを指すので、−∇f-\nabla f−∇f は最急降下の向きです。最小値では勾配がゼロになり、これが1次の条件です。ただし勾配がゼロであるだけでは足りず、最大値や鞍点でもゼロになります。これらを見分けるのがヘッセ行列 HHH で、HHH が正定値(固有値がすべて正)なら局所最小、負定値なら最大、正負両方の固有値があれば鞍点です。

2変数の例f(x,y)=(x−1)2+2(y+2)2f(x,y)=(x-1)^2+2(y+2)^2f(x,y)=(x−1)2+2(y+2)2 とします。∇f=(2(x−1), 4(y+2))\nabla f=(2(x-1),\,4(y+2))∇f=(2(x−1),4(y+2)) で、点 (3,0)(3,0)(3,0) での勾配は (4,8)(4,8)(4,8) なので、その逆向きに動くと fff は下がります。勾配がゼロになるのは (1,−2)(1,-2)(1,−2) だけで、そこでは H=diag(2,4)H=\mathrm{diag}(2,4)H=diag(2,4) の固有値が正なので最小値であり、f=0f=0f=0 です。
  • 停留点:∇f=0\nabla f=0∇f=0。最小値の必要条件ですが十分条件ではありません。
  • 分類:HHH が正定値なら局所最小、不定なら鞍点です。
  • 1変数の場合:f′(x)=0f'(x)=0f′(x)=0 かつ f′′(x)>0f''(x)>0f′′(x)>0 なら最小値です。
勾配を数値で確かめる最適化のバグの多くは勾配の誤りです。小さな hhh(たとえば 10−510^{-5}10−5)での中心差分 (f(x+h)−f(x−h))/(2h)\big(f(x+h)-f(x-h)\big)/(2h)(f(x+h)−f(x−h))/(2h) と自分の式を比べ、数桁まで一致することを確かめます。新しい目的関数ごとに一度これを行ってから、それを使うソルバーを信用してください。

ラボ:採点される内容

  • 偏微分15点
  • 勾配の長さ15点
  • 3次関数の最小値15点
  • 停留点の分類15点
  • 用語を結び付ける15点
  • 手計算で最小値を求める10点
  • なぜ勾配と逆向きに動くのか15点
0/ 7問回答済み
問題
1数値で答える15点未回答

f(x,y)=(x−1)2+2(y+2)2f(x,y)=(x-1)^2+2(y+2)^2f(x,y)=(x−1)2+2(y+2)2 について、点 (3,0)(3,0)(3,0) での ∂f/∂y\partial f/\partial y∂f/∂y はいくつですか。

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

同じ fff の点 (3,0)(3,0)(3,0) での勾配は (4,8)(4,8)(4,8) です。そのユークリッド長 ∥∇f∥\lVert\nabla f\rVert∥∇f∥ はいくつですか。小数第2位まで答えてください。

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

関数 f(x)=x3−3xf(x)=x^3-3xf(x)=x3−3x は f′(x)=0f'(x)=0f′(x)=0 かつ f′′(x)>0f''(x)>0f′′(x)>0 となる点で局所最小になります。その局所最小での fff の値はいくつですか。

fmin=fmin =fmin=許容:± 0.01
4選択15点未回答

関数 f(x,y)=x2−y2f(x,y)=x^2-y^2f(x,y)=x2−y2 は原点で ∇f=0\nabla f=0∇f=0 かつ H=diag(2,−2)H=\mathrm{diag}(2,-2)H=diag(2,−2) です。原点は何ですか。

5対応づけ15点未回答

各用語をその意味に結び付けてください。

左の各項目に対応するものを選んでください。

勾配
ヘッセ行列
停留点
目的関数
6手順を並べ替える10点未回答

手順を正しい順に並べてください。

ドラッグして並べ替えます。または項目にフォーカスし、スペースで持ち上げ、矢印キーで移動、スペースで置きます。

  1. 1ヘッセ行列が正定値か確かめる
  2. 2目的関数 fff を書く
  3. 3∇f=0\nabla f=0∇f=0 を解いて停留点を求める
  4. 4勾配 ∇f\nabla f∇f とヘッセ行列 HHH を計算する
7言葉で説明する15点未回答

1〜2文で、fff を下げたい最適化が −∇f-\nabla f−∇f の向きに進む理由を説明してください。

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

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

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

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