σμ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.3·~55 minIntermediário

Momento RMSProp e Adam

Posição no roteiroMódulo 2 de 5 · Tópico 3 de 3
2.3 Momento RMSProp e Adam
—Nota do lab— / 100XP total—Sequência—

Lembrar dos gradientes passados

Passos de gradiente simples tratam cada iteração isoladamente, então fazem zigue-zague em vales estreitos e se arrastam nos planos. O momento guarda uma velocidade, soma corrente dos gradientes passados: 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. Gradientes que apontam no mesmo sentido se somam, e os que trocam de sinal se cancelam. Com gradiente constante a velocidade cresce rumo a 1/(1−β)1/(1-\beta)1/(1−β) vezes o gradiente, então β=0.9\beta=0.9β=0.9 acaba dando passos dez vezes maiores que a descida simples.

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)

O RMSProp resolve outro problema, o de parâmetros em escalas diferentes. Ele acompanha uma média móvel sss do quadrado do gradiente de cada coordenada e divide o passo por s\sqrt{s}s​, de modo que uma coordenada com gradiente grande e ruidoso dá passos pequenos e uma com gradiente pequeno dá passos maiores. O Adam combina as duas ideias: faz a média do gradiente (mmm, a parte do momento) e do gradiente ao quadrado (vvv, a parte RMSProp). As duas médias começam em zero, o que as deixa pequenas demais nos primeiros passos, então o Adam divide por 1−βt1-\beta^{t}1−βt para corrigir esse viés. Os valores usuais são β1=0.9\beta_1=0.9β1​=0.9, β2=0.999\beta_2=0.999β2​=0.999 e η=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)
Três atualizações à mãoMomento com β=0.9\beta=0.9β=0.9, η=0.1\eta=0.1η=0.1 e gradiente constante 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, então o terceiro passo mede 0.2710.2710.271 contra 0.10.10.1 da descida simples. RMSProp com ρ=0.9\rho=0.9ρ=0.9 e g=2g=2g=2: s1=0.1⋅4=0.4s_1=0.1\cdot4=0.4s1​=0.1⋅4=0.4 e g/s1=3.16g/\sqrt{s_1}=3.16g/s1​​=3.16, um passo amplificado cerca de 3.163.163.16 vezes. Adam em t=1t=1t=1 com g=2g=2g=2: m=0.2m=0.2m=0.2, v=0.004v=0.004v=0.004, logo m^=2\hat m=2m^=2, v^=4\hat v=4v^=4 e o passo é η⋅2/2=η\eta\cdot2/2=\etaη⋅2/2=η, seja qual for o tamanho de ggg.
  • Momento: suaviza o zigue-zague e acelera em direções consistentes.
  • RMSProp: divide cada coordenada pela raiz da média quadrática móvel do seu gradiente.
  • Adam: ambos, mais uma correção de viés porque as médias começam em zero.
Adam é um padrão, não uma garantiaComo o passo do Adam é cerca de η\etaη por coordenada seja qual for o tamanho do gradiente, η\etaη vira o principal botão de ajuste: grande demais e a perda quica, pequeno demais e o treino se arrasta. Reduza η\etaη ao longo do tempo em problemas ruidosos e compare com um SGD com momento bem ajustado antes de confiar no resultado do Adam, pois os dois podem se acomodar em mínimos diferentes.

Lab: o que é avaliado

  • Velocidade do momento15 pts
  • A amplificação de longo prazo15 pts
  • Média do RMSProp10 pts
  • A escala do passo do RMSProp15 pts
  • O primeiro passo do Adam15 pts
  • Associar método e ideia15 pts
  • Por que a escala por coordenada ajuda15 pts
0/ 7 respondidas
Tarefas
1Resposta numérica15 ptsSem resposta

Com β=0.9\beta=0.9β=0.9 e gradiente constante g=1g=1g=1, a partir de v0=0v_0=0v0​=0, qual é a velocidade v3v_3v3​ após três atualizações v←βv+gv\leftarrow\beta v+gv←βv+g?

v3=v3 =v3=aceito: ± 0.01
2Resposta numérica15 ptsSem resposta

Com gradiente constante, a velocidade tende a g/(1−β)g/(1-\beta)g/(1−β). Por qual fator β=0.9\beta=0.9β=0.9 acaba multiplicando o passo em relação à descida simples?

amp=amp =amp=aceito: ± 0.05
3Resposta numérica10 ptsSem resposta

O RMSProp com ρ=0.9\rho=0.9ρ=0.9, a partir de s0=0s_0=0s0​=0, vê o gradiente g=2g=2g=2. Quanto vale s1=ρs0+(1−ρ)g2s_1=\rho s_0+(1-\rho)g^2s1​=ρs0​+(1−ρ)g2?

s1=s1 =s1=aceito: ± 0.005
4Resposta numérica15 ptsSem resposta

O passo do RMSProp é η g/s1\eta\,g/\sqrt{s_1}ηg/s1​​. Para g=2g=2g=2 e s1=0.4s_1=0.4s1​=0.4, quanto vale g/s1g/\sqrt{s_1}g/s1​​? Dê com duas casas decimais.

scale=scale =scale=aceito: ± 0.02
5Resposta numérica15 ptsSem resposta

O Adam em t=1t=1t=1 com β1=0.9\beta_1=0.9β1​=0.9, β2=0.999\beta_2=0.999β2​=0.999 e g=2g=2g=2 tem m=0.2m=0.2m=0.2 e v=0.004v=0.004v=0.004. Após a correção de viés seu passo é η m^/v^\eta\,\hat m/\sqrt{\hat v}ηm^/v^​. Quantas vezes η\etaη ele se move?

adam1=adam1 =adam1=aceito: ± 0.01
6Associar15 ptsSem resposta

Associe cada método à sua ideia principal.

Escolha o par de cada item da esquerda.

Momento
RMSProp
Adam
Correção de viés
7Explicar com palavras15 ptsSem resposta

Em uma ou duas frases, diga por que dividir o passo de cada coordenada pelo tamanho de seus gradientes recentes ajuda quando os parâmetros têm escalas muito diferentes.

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