σμ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 AcademyRoadmapsRoteiros
Ctrl K
AO
+1,2 mil alunos
EntrarParticipar ↗
RoadmapsRoteiros
AO
+1,2 mil alunos
Entrar
  • 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 AcademyRoadmapsRoteiros
Ctrl K
AO
+1,2 mil alunos
EntrarParticipar ↗
RoadmapsRoteiros
AO
+1,2 mil alunos
Entrar
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Roteiro de Optimization›Módulo 2 · Métodos de gradiente›Tópico 2.1·~50 minIntermediário

A descida do gradiente

Posição no roteiroMódulo 2 de 5 · Tópico 1 de 3
2.1 A descida do gradiente
—Nota do lab— / 100XP total—Sequência—

Descer a ladeira

A descida do gradiente repete um único movimento: dar um passo contra o gradiente, wk+1=wk−η ∇f(wk)\mathbf w_{k+1}=\mathbf w_k-\eta\,\nabla f(\mathbf w_k)wk+1​=wk​−η∇f(wk​). O número η>0\eta>0η>0 é o tamanho do passo, muitas vezes chamado taxa de aprendizado. Um η\etaη pequeno é seguro mas lento. Um η\etaη grande passa do vale e as iterações podem se afastar mais a cada vez.

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)

Na tigela mais simples a atualização multiplica www por 1−ηa1-\eta a1−ηa a cada vez, então as iterações tendem a zero exatamente quando ∣1−ηa∣<1|1-\eta a|<1∣1−ηa∣<1, isto é η<2/a\eta<2/aη<2/a. A escolha η=1/a\eta=1/aη=1/a cai no mínimo em um passo, e qualquer η\etaη entre 1/a1/a1/a e 2/a2/a2/a ainda converge mas alterna de sinal no caminho. Além de 2/a2/a2/a o fator passa de um em módulo e as iterações explodem.

Três passos em f = 3x²Aqui f′(x)=6xf'(x)=6xf′(x)=6x, então a=6a=6a=6. Partindo de x0=4x_0=4x0​=4 com η=0.1\eta=0.1η=0.1: o fator é 1−0.6=0.41-0.6=0.41−0.6=0.4, dando x1=1.6x_1=1.6x1​=1.6, x2=0.64x_2=0.64x2​=0.64, x3=0.256x_3=0.256x3​=0.256. O limite de estabilidade é 2/6=0.3332/6=0.3332/6=0.333. Com η=0.5\eta=0.5η=0.5 o fator é 1−3=−21-3=-21−3=−2, as iterações são 4,−4,8,…4,-4,8,\dots4,−4,8,… e dobram de tamanho a cada passo.

Em várias variáveis a curvatura muda conforme a direção. O maior autovalor LLL da hessiana limita o passo utilizável (η<2/L\eta<2/Lη<2/L) e o menor μ\muμ define quão lento é atravessar a direção mais plana. A razão κ=L/μ\kappa=L/\muκ=L/μ é o número de condição. Com o melhor passo fixo η=2/(L+μ)\eta=2/(L+\mu)η=2/(L+μ) o erro encolhe cerca do fator (κ−1)/(κ+1)(\kappa-1)/(\kappa+1)(κ−1)/(κ+1) por passo, então um κ\kappaκ grande dá um fator perto de um e um zigue-zague lento num vale longo e estreito. Para a matriz de covariância de doze grandes ações dos EUA desde 2010, κ\kappaκ é cerca de 333333: o fator é 0.9410.9410.941 e reduzir o erro cem vezes leva cerca de 76 passos.

η∗=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)
  • Passo seguro: η<2/L\eta<2/Lη<2/L, com LLL o maior autovalor da hessiana; senão as iterações divergem.
  • Velocidade: definida pelo número de condição κ=L/μ\kappa=L/\muκ=L/μ; quanto maior, mais lenta a descida.
  • Parada: parar quando ∥∇f∥\lVert\nabla f\rVert∥∇f∥ cair abaixo de uma tolerância, com um teto de iterações.
Coloque as variáveis na mesma escalaUm número de condição grande costuma vir de variáveis em escalas muito diferentes, por exemplo um peso entre 0 e 1 ao lado de uma volatilidade em pontos-base. Reescalar cada variável a um tamanho parecido reduz κ\kappaκ e pode transformar milhares de iterações em dezenas. O precondicionamento é a forma geral da mesma ideia.

Lab: o que é avaliado

  • O primeiro passo15 pts
  • O segundo passo10 pts
  • O maior passo estável15 pts
  • Um passo grande demais15 pts
  • Um número de condição15 pts
  • O melhor fator de contração15 pts
  • Por que o mau condicionamento é lento15 pts
0/ 7 respondidas
Tarefas
1Resposta numérica15 ptsSem resposta

Execute a descida do gradiente em f(x)=3x2f(x)=3x^2f(x)=3x2 a partir de x0=4x_0=4x0​=4 com η=0.1\eta=0.1η=0.1. Quanto vale x1x_1x1​?

x1=x1 =x1=aceito: ± 0.01
2Resposta numérica10 ptsSem resposta

Dê mais um passo com o mesmo η\etaη. Quanto vale x2x_2x2​?

x2=x2 =x2=aceito: ± 0.005
3Resposta numérica15 ptsSem resposta

Para f(x)=3x2f(x)=3x^2f(x)=3x2, a descida do gradiente só converge se η\etaη estiver abaixo de um limite. Qual é esse limite? Dê com três casas decimais.

limit=limit =limit=aceito: ± 0.003
4Escolha15 ptsSem resposta

Em f(x)=3x2f(x)=3x^2f(x)=3x2 você usa η=0.5\eta=0.5η=0.5. O que acontece com as iterações?

5Resposta numérica15 ptsSem resposta

A função f(x,y)=x2+10y2f(x,y)=x^2+10y^2f(x,y)=x2+10y2 tem hessiana diag(2,20)\mathrm{diag}(2,20)diag(2,20). Qual é o seu número de condição κ=L/μ\kappa=L/\muκ=L/μ?

kappa=kappa =kappa=aceito: ± 0.05
6Resposta numérica15 ptsSem resposta

Para essa fff, a descida do gradiente com o melhor passo fixo reduz o erro por passo em cerca de (κ−1)/(κ+1)(\kappa-1)/(\kappa+1)(κ−1)/(κ+1). Qual é esse fator? Dê com três casas decimais.

rate=rate =rate=aceito: ± 0.003
7Explicar com palavras15 ptsSem resposta

Em uma ou duas frases, diga por que a descida do gradiente é lenta quando o número de condição é grande.

Modo matemáticaEntrada por teclado ou LaTeXTarefa 1 de 7 · Ctrl ⏎ para verificar

Entre para executar o seu código.

Todas as aulas são gratuitas para ler. Crie uma conta ou entre para executar código, rodar os testes e enviar este lab.

  • IDE no navegador com terminal bash — nada para instalar
  • Correção instantânea, XP e o seu lugar no roteiro
Criar uma contaEntrar
OU
Continuar com o GitHub