σμ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 AcademyHojas de rutaRutas
Ctrl K
AO
+1,2 k estudiantes
Iniciar sesiónUnirse ↗
Hojas de rutaRutas
AO
+1,2 k estudiantes
Iniciar sesión
  • 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 AcademyHojas de rutaRutas
Ctrl K
AO
+1,2 k estudiantes
Iniciar sesiónUnirse ↗
Hojas de rutaRutas
AO
+1,2 k estudiantes
Iniciar sesión
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Ruta de Optimization›Módulo 2 · Métodos de gradiente›Tema 2.3·~55 minIntermedio

Momento RMSProp y Adam

Posición en la rutaMódulo 2 de 5 · Tema 3 de 3
2.3 Momento RMSProp y Adam
—Puntuación del lab— / 100XP total—Racha—

Recordar los gradientes pasados

Los pasos de gradiente simples tratan cada iteración por separado, así que hacen zigzag en valles estrechos y se arrastran por los planos. El momento guarda una velocidad, suma acumulada de gradientes pasados: 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. Los gradientes que apuntan igual se suman y los que cambian de signo se cancelan. Con gradiente constante la velocidad crece hacia 1/(1−β)1/(1-\beta)1/(1−β) veces el gradiente, así que β=0.9\beta=0.9β=0.9 acaba dando pasos diez veces mayores que el descenso simple.

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 corrige otro problema, el de los parámetros con escalas distintas. Sigue un promedio móvil sss del cuadrado del gradiente de cada coordenada y divide el paso entre s\sqrt{s}s​, de modo que una coordenada con gradiente grande y ruidoso da pasos pequeños y una con gradiente pequeño da pasos mayores. Adam combina ambas ideas: promedia el gradiente (mmm, la parte de momento) y el gradiente al cuadrado (vvv, la parte RMSProp). Ambos promedios parten de cero, lo que los deja demasiado pequeños al principio, así que Adam divide entre 1−βt1-\beta^{t}1−βt para corregir ese sesgo. Los valores habituales son β1=0.9\beta_1=0.9β1​=0.9, β2=0.999\beta_2=0.999β2​=0.999 y η=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)
Tres actualizaciones a manoMomento con β=0.9\beta=0.9β=0.9, η=0.1\eta=0.1η=0.1 y 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, así que el tercer paso mide 0.2710.2710.271 frente a 0.10.10.1 del descenso simple. RMSProp con ρ=0.9\rho=0.9ρ=0.9 y g=2g=2g=2: s1=0.1⋅4=0.4s_1=0.1\cdot4=0.4s1​=0.1⋅4=0.4 y g/s1=3.16g/\sqrt{s_1}=3.16g/s1​​=3.16, un paso amplificado unas 3.163.163.16 veces. Adam en t=1t=1t=1 con g=2g=2g=2: m=0.2m=0.2m=0.2, v=0.004v=0.004v=0.004, luego m^=2\hat m=2m^=2, v^=4\hat v=4v^=4 y el paso es η⋅2/2=η\eta\cdot2/2=\etaη⋅2/2=η, sea cual sea el tamaño de ggg.
  • Momento: suaviza el zigzag y acelera en direcciones consistentes.
  • RMSProp: divide cada coordenada entre la raíz de la media cuadrática móvil de su gradiente.
  • Adam: ambos, más una corrección de sesgo porque los promedios parten de cero.
Adam es un valor por defecto, no una garantíaComo el paso de Adam es de unos η\etaη por coordenada sea cual sea el tamaño del gradiente, η\etaη pasa a ser el principal mando de ajuste: si es demasiado grande la pérdida rebota, si es demasiado pequeño el entrenamiento se arrastra. Reduzca η\etaη con el tiempo en problemas ruidosos y compare con un SGD con momento bien ajustado antes de fiarse del resultado de Adam, pues ambos pueden asentarse en mínimos distintos.

Lab: qué se califica

  • Velocidad del momento15 pts
  • La amplificación a largo plazo15 pts
  • Promedio de RMSProp10 pts
  • La escala del paso de RMSProp15 pts
  • El primer paso de Adam15 pts
  • Emparejar método e idea15 pts
  • Por qué ayuda la escala por coordenada15 pts
0/ 7 respondidos
Ejercicios
1Respuesta numérica15 ptsSin responder

Con β=0.9\beta=0.9β=0.9 y gradiente constante g=1g=1g=1, desde v0=0v_0=0v0​=0, ¿cuál es la velocidad v3v_3v3​ tras tres actualizaciones v←βv+gv\leftarrow\beta v+gv←βv+g?

v3=v3 =v3=aceptado: ± 0.01
2Respuesta numérica15 ptsSin responder

Con gradiente constante, la velocidad tiende a g/(1−β)g/(1-\beta)g/(1−β). ¿Por qué factor acaba multiplicando β=0.9\beta=0.9β=0.9 el paso respecto del descenso simple?

amp=amp =amp=aceptado: ± 0.05
3Respuesta numérica10 ptsSin responder

RMSProp con ρ=0.9\rho=0.9ρ=0.9, desde s0=0s_0=0s0​=0, ve el gradiente g=2g=2g=2. ¿Cuánto vale s1=ρs0+(1−ρ)g2s_1=\rho s_0+(1-\rho)g^2s1​=ρs0​+(1−ρ)g2?

s1=s1 =s1=aceptado: ± 0.005
4Respuesta numérica15 ptsSin responder

El paso de RMSProp es η g/s1\eta\,g/\sqrt{s_1}ηg/s1​​. Para g=2g=2g=2 y s1=0.4s_1=0.4s1​=0.4, ¿cuánto vale g/s1g/\sqrt{s_1}g/s1​​? Dé dos decimales.

scale=scale =scale=aceptado: ± 0.02
5Respuesta numérica15 ptsSin responder

Adam en t=1t=1t=1 con β1=0.9\beta_1=0.9β1​=0.9, β2=0.999\beta_2=0.999β2​=0.999 y g=2g=2g=2 tiene m=0.2m=0.2m=0.2 y v=0.004v=0.004v=0.004. Tras la corrección de sesgo su paso es η m^/v^\eta\,\hat m/\sqrt{\hat v}ηm^/v^​. ¿Cuántas veces η\etaη se mueve?

adam1=adam1 =adam1=aceptado: ± 0.01
6Emparejar15 ptsSin responder

Empareje cada método con su idea principal.

Elige la pareja de cada elemento de la izquierda.

Momento
RMSProp
Adam
Corrección de sesgo
7Explicar con palabras15 ptsSin responder

En una o dos frases, diga por qué dividir el paso de cada coordenada entre el tamaño de sus gradientes recientes ayuda cuando los parámetros tienen escalas muy distintas.

Modo matemáticasEntrada por teclado o LaTeXEjercicio 1 de 7 · Ctrl ⏎ para comprobar

Inicia sesión para ejecutar tu código.

Todas las clases se pueden leer gratis. Crea una cuenta o inicia sesión para ejecutar código, lanzar las pruebas y enviar este lab.

  • IDE en el navegador con terminal bash — sin instalar nada
  • Corrección instantánea, XP y tu lugar en la ruta
Crear una cuentaIniciar sesión
O
Continuar con GitHub