σμ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.3·~55分钟中级

动量 RMSProp 与 Adam

路线进度模块 2/5 · 主题 3/3
2.3 动量 RMSProp 与 Adam
—实验得分— / 100总 XP—连续天数—

记住过去的梯度

普通的梯度步把每次迭代孤立看待,所以在狭窄山谷里来回锯齿,在平坦处爬行。动量保留一个速度,即过去梯度的滚动累加:v←βv+g\mathbf v\leftarrow\beta\mathbf v+\mathbf gv←βv+g,w←w−ηv\mathbf w\leftarrow\mathbf w-\eta\mathbf vw←w−ηv。方向一致的梯度会不断累加,符号来回翻转的梯度则相互抵消。梯度恒定时速度趋于梯度的 1/(1−β)1/(1-\beta)1/(1−β) 倍,所以 β=0.9\beta=0.9β=0.9 最终的步长是普通下降的十倍。

v←βv+g,w←w−ηv,v∞=g1−β\mathbf v\leftarrow\beta\mathbf v+\mathbf g,\qquad \mathbf w\leftarrow\mathbf w-\eta\mathbf v,\qquad \mathbf v_{\infty}=\frac{\mathbf g}{1-\beta}v←βv+g,w←w−ηv,v∞​=1−βg​(1)

RMSProp 解决另一个问题,即各参数尺度不同。它为每个坐标跟踪梯度平方的滑动平均 sss,并把步长除以 s\sqrt{s}s​,于是梯度大且噪声大的坐标步子小,梯度小的坐标步子大。Adam 把两种想法合在一起:对梯度取平均(mmm,动量部分),对梯度平方取平均(vvv,RMSProp 部分)。两个平均都从零开始,起初偏小,所以 Adam 除以 1−βt1-\beta^{t}1−βt 来纠正这一偏差。常用默认值为 β1=0.9\beta_1=0.9β1​=0.9、β2=0.999\beta_2=0.999β2​=0.999、η=10−3\eta=10^{-3}η=10−3。

s←ρs+(1−ρ)g2,w←w−ηgs+εs\leftarrow\rho s+(1-\rho)g^{2},\qquad w\leftarrow w-\eta\frac{g}{\sqrt{s}+\varepsilon}s←ρs+(1−ρ)g2,w←w−ηs​+εg​(2)
m←β1m+(1−β1)g,v←β2v+(1−β2)g2,m^=m1−β1t,  v^=v1−β2t,w←w−ηm^v^+εm\leftarrow\beta_1 m+(1-\beta_1)g,\quad v\leftarrow\beta_2 v+(1-\beta_2)g^{2},\quad \hat m=\frac{m}{1-\beta_1^{t}},\ \ \hat v=\frac{v}{1-\beta_2^{t}},\quad w\leftarrow w-\eta\frac{\hat m}{\sqrt{\hat v}+\varepsilon}m←β1​m+(1−β1​)g,v←β2​v+(1−β2​)g2,m^=1−β1t​m​,  v^=1−β2t​v​,w←w−ηv^​+εm^​(3)
手算三种更新动量取 β=0.9\beta=0.9β=0.9、η=0.1\eta=0.1η=0.1、恒定梯度 g=1g=1g=1:v1=1v_1=1v1​=1、v2=1.9v_2=1.9v2​=1.9、v3=2.71v_3=2.71v3​=2.71,所以第三步长度为 0.2710.2710.271,而普通下降是 0.10.10.1。RMSProp 取 ρ=0.9\rho=0.9ρ=0.9、g=2g=2g=2:s1=0.1⋅4=0.4s_1=0.1\cdot4=0.4s1​=0.1⋅4=0.4,g/s1=3.16g/\sqrt{s_1}=3.16g/s1​​=3.16,步长被放大约 3.163.163.16 倍。Adam 在 t=1t=1t=1、g=2g=2g=2:m=0.2m=0.2m=0.2、v=0.004v=0.004v=0.004,故 m^=2\hat m=2m^=2、v^=4\hat v=4v^=4,步长为 η⋅2/2=η\eta\cdot2/2=\etaη⋅2/2=η,与 ggg 的大小无关。
  • 动量:平滑锯齿,并在方向一致时加速。
  • RMSProp:把每个坐标除以其梯度的滑动均方根。
  • Adam:两者兼有,再加上因平均从零开始而做的偏差校正。
Adam 是默认选项而非保证由于 Adam 的步长无论梯度大小每个坐标都约为 η\etaη,η\etaη 就成了主要的调节旋钮:太大则损失来回跳,太小则训练爬行。在噪声大的问题上让 η\etaη 随时间衰减,并在相信 Adam 的结果之前与调好的带动量 SGD 比较,因为两者可能停在不同的极小点。

实验:评分内容

  • 动量速度15 分
  • 长期放大倍数15 分
  • RMSProp 平均10 分
  • RMSProp 步长倍率15 分
  • Adam 的第一步15 分
  • 配对方法与思想15 分
  • 为什么按坐标缩放有帮助15 分
0/ 已答 7 题
任务
1数值作答15 分未作答

取 β=0.9\beta=0.9β=0.9、恒定梯度 g=1g=1g=1、v0=0v_0=0v0​=0,经三次更新 v←βv+gv\leftarrow\beta v+gv←βv+g 后速度 v3v_3v3​ 是多少?

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

梯度恒定时速度趋于 g/(1−β)g/(1-\beta)g/(1−β)。与普通下降相比,β=0.9\beta=0.9β=0.9 最终把步长放大多少倍?

amp=amp =amp=允许误差:± 0.05
3数值作答10 分未作答

RMSProp 取 ρ=0.9\rho=0.9ρ=0.9,从 s0=0s_0=0s0​=0 出发,看到梯度 g=2g=2g=2。s1=ρs0+(1−ρ)g2s_1=\rho s_0+(1-\rho)g^2s1​=ρs0​+(1−ρ)g2 等于多少?

s1=s1 =s1=允许误差:± 0.005
4数值作答15 分未作答

RMSProp 的步长为 η g/s1\eta\,g/\sqrt{s_1}ηg/s1​​。当 g=2g=2g=2、s1=0.4s_1=0.4s1​=0.4 时,g/s1g/\sqrt{s_1}g/s1​​ 是多少?保留两位小数。

scale=scale =scale=允许误差:± 0.02
5数值作答15 分未作答

Adam 在 t=1t=1t=1、β1=0.9\beta_1=0.9β1​=0.9、β2=0.999\beta_2=0.999β2​=0.999、g=2g=2g=2 时有 m=0.2m=0.2m=0.2、v=0.004v=0.004v=0.004。偏差校正后步长为 η m^/v^\eta\,\hat m/\sqrt{\hat v}ηm^/v^​。它移动 η\etaη 的多少倍?

adam1=adam1 =adam1=允许误差:± 0.01
6配对15 分未作答

把每种方法与其主要思想配对。

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

动量
RMSProp
Adam
偏差校正
7用文字解释15 分未作答

用一两句话说明:当参数尺度悬殊时,把每个坐标的步长除以其近期梯度的大小为什么有帮助。

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

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

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

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