σμ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 学习路线›模块 3 · 凸性与曲率›主题 3.2·~55分钟中级

牛顿法与拟牛顿法

路线进度模块 3/5 · 主题 2/2
3.2 牛顿法与拟牛顿法
—实验得分— / 100总 XP—连续天数—

利用曲率

梯度下降只知道斜率。牛顿法还利用曲率:在当前点附近用与 fff 的值、梯度和 Hessian 都相同的二次函数代替 fff,并直接跳到该二次函数的极小点。步长为 w←w−H−1g\mathbf w\leftarrow\mathbf w-H^{-1}\mathbf gw←w−H−1g。对严格二次的函数,无论条件数如何,一步就落在极小点上。在任何光滑函数的极小点附近,收敛是二次的:误差每步大致平方,正确数字的位数大约翻倍。

wk+1=wk−H(wk)−1∇f(wk),∥wk+1−w∗∥ ≲ C ∥wk−w∗∥2\mathbf w_{k+1}=\mathbf w_k-H(\mathbf w_k)^{-1}\nabla f(\mathbf w_k),\qquad \lVert\mathbf w_{k+1}-\mathbf w^{*}\rVert\ \lesssim\ C\,\lVert\mathbf w_k-\mathbf w^{*}\rVert^{2}wk+1​=wk​−H(wk​)−1∇f(wk​),∥wk+1​−w∗∥ ≲ C∥wk​−w∗∥2(1)
对 e^x − 2x 用牛顿法最小化 f(x)=ex−2xf(x)=e^x-2xf(x)=ex−2x,其极小点为 x∗=ln⁡2=0.693147x^{*}=\ln2=0.693147x∗=ln2=0.693147。这里 f′=ex−2f'=e^x-2f′=ex−2,f′′=exf''=e^xf′′=ex。从 x0=0x_0=0x0​=0 出发:x1=0−(−1)/1=1x_1=0-(-1)/1=1x1​=0−(−1)/1=1,然后 x2=1−0.7183/2.7183=0.7358x_2=1-0.7183/2.7183=0.7358x2​=1−0.7183/2.7183=0.7358,x3=0.6940x_3=0.6940x3​=0.6940,x4=0.693148x_4=0.693148x4​=0.693148。误差 0.307, 0.0426, 0.0009, 4⋅10−70.307,\ 0.0426,\ 0.0009,\ 4\cdot10^{-7}0.307, 0.0426, 0.0009, 4⋅10−7 的缩小速度超过任何固定倍数。在二维情形,对 f=(x−1)2+2(y+2)2f=(x-1)^2+2(y+2)^2f=(x−1)2+2(y+2)2 在 (3,0)(3,0)(3,0) 处有 g=(4,8)\mathbf g=(4,8)g=(4,8)、H=diag(2,4)H=\mathrm{diag}(2,4)H=diag(2,4),步长为 −H−1g=(−2,−2)-H^{-1}\mathbf g=(-2,-2)−H−1g=(−2,−2),一步就到达极小点 (1,−2)(1,-2)(1,−2)。

牛顿法是有代价的。有 nnn 个参数时 Hessian 有 n2n^2n2 个元素,用它求解约需 n3n^3n3 次运算,几百个参数还行,几百万个就不可能了。远离极小点或 HHH 不正定时,牛顿步甚至可能指向上坡,因此实用版本会用线搜索来阻尼步长。拟牛顿法在不付出这些代价的情况下保留了大部分速度。BFGS 用观测到的变化 s=wk+1−wk\mathbf s=\mathbf w_{k+1}-\mathbf w_ks=wk+1​−wk​ 与 y=gk+1−gk\mathbf y=\mathbf g_{k+1}-\mathbf g_ky=gk+1​−gk​ 构造 Hessian 逆的近似,并强制满足割线条件 Bs=yB\mathbf s=\mathbf yBs=y。它只需要梯度,每步代价 O(n2)O(n^2)O(n2),超线性收敛。L-BFGS 只存最近 mmm 对向量(通常 5 到 20 对),内存为 O(mn)O(mn)O(mn),是平滑校准和极大似然估计的常用主力,SciPy 的默认优化器就是如此。

  • 牛顿法:w←w−H−1g\mathbf w\leftarrow\mathbf w-H^{-1}\mathbf gw←w−H−1g;二次函数一步到位,极小点附近二次收敛。
  • BFGS:由梯度差学习 Hessian 逆的近似,无需二阶导数。
  • L-BFGS:只保留最近几对向量,因此可扩展到大量参数。
牛顿法需要保护措施纯牛顿法从糟糕的起点出发可能越过目标甚至发散。库的实现会加上线搜索或信赖域,并在 Hessian 不正定时退回到梯度步。做校准时不要手写没有这些保护的裸牛顿循环。

实验:评分内容

  • 第一步牛顿迭代15 分
  • 第二步牛顿迭代15 分
  • 二元牛顿步15 分
  • 二次函数上的步数15 分
  • 割线条件15 分
  • 方法与思想10 分
  • 为什么巨型问题要避免精确牛顿法15 分
0/ 已答 7 题
任务
1数值作答15 分未作答

用牛顿法从 x0=0x_0=0x0​=0 最小化 f(x)=ex−2xf(x)=e^x-2xf(x)=ex−2x。已知 f′=ex−2f'=e^x-2f′=ex−2、f′′=exf''=e^xf′′=ex,x1x_1x1​ 等于多少?

x1=x1 =x1=允许误差:± 0.01
2数值作答15 分未作答

从 x1=1x_1=1x1​=1 继续。取 e1=2.71828e^1=2.71828e1=2.71828,x2x_2x2​ 等于多少?保留四位小数。

x2=x2 =x2=允许误差:± 0.001
3数值作答15 分未作答

对 f=(x−1)2+2(y+2)2f=(x-1)^2+2(y+2)^2f=(x−1)2+2(y+2)2 在 (3,0)(3,0)(3,0) 处梯度为 (4,8)(4,8)(4,8),H=diag(2,4)H=\mathrm{diag}(2,4)H=diag(2,4)。一次牛顿步之后 yyy 坐标是多少?

y=y =y=允许误差:± 0.01
4选择15 分未作答

精确最小化一个严格凸的二次函数需要多少步牛顿迭代?

5选择15 分未作答

设 s=wk+1−wk\mathbf s=\mathbf w_{k+1}-\mathbf w_ks=wk+1​−wk​、y=gk+1−gk\mathbf y=\mathbf g_{k+1}-\mathbf g_ky=gk+1​−gk​,BFGS 的 Hessian 近似 BBB 要满足哪个关系?

6配对10 分未作答

把每种方法与其要点配对。

为左侧每一项选择配对项。

梯度下降
牛顿法
BFGS
L-BFGS
7用文字解释15 分未作答

用一两句话解释:为什么有数百万参数的问题不用精确牛顿法。

数学模式键盘或 LaTeX 输入第 1/7 题 · Ctrl ⏎ 检查

登录后即可运行你的代码。

所有讲解均可免费阅读。创建账户或登录后,即可运行代码、运行测试并提交此实验。

  • 浏览器内 IDE 与 bash 终端,无需安装
  • 即时评分、XP 以及你在学习路线中的位置
创建账户登录
或
使用 GitHub 继续