σμ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.1·~50 minIntermedio

El descenso de gradiente

Posición en la rutaMódulo 2 de 5 · Tema 1 de 3
2.1 El descenso de gradiente
—Puntuación del lab— / 100XP total—Racha—

Bajar la pendiente

El descenso de gradiente repite un único movimiento: avanzar contra el gradiente, wk+1=wk−η ∇f(wk)\mathbf w_{k+1}=\mathbf w_k-\eta\,\nabla f(\mathbf w_k)wk+1​=wk​−η∇f(wk​). El número η>0\eta>0η>0 es el paso, a menudo llamado tasa de aprendizaje. Un η\etaη pequeño es seguro pero lento. Un η\etaη grande se pasa del valle y las iteraciones pueden alejarse cada vez más.

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)

En el cuenco más simple la actualización multiplica www por 1−ηa1-\eta a1−ηa cada vez, así que las iteraciones tienden a cero justo cuando ∣1−ηa∣<1|1-\eta a|<1∣1−ηa∣<1, es decir η<2/a\eta<2/aη<2/a. La elección η=1/a\eta=1/aη=1/a cae en el mínimo en un paso, y cualquier η\etaη entre 1/a1/a1/a y 2/a2/a2/a aún converge pero cambia de signo por el camino. Más allá de 2/a2/a2/a el factor supera uno en valor absoluto y las iteraciones explotan.

Tres pasos sobre f = 3x²Aquí f′(x)=6xf'(x)=6xf′(x)=6x, así que a=6a=6a=6. Partimos de x0=4x_0=4x0​=4 con η=0.1\eta=0.1η=0.1: el factor es 1−0.6=0.41-0.6=0.41−0.6=0.4, de modo que x1=1.6x_1=1.6x1​=1.6, x2=0.64x_2=0.64x2​=0.64, x3=0.256x_3=0.256x3​=0.256. El límite de estabilidad es 2/6=0.3332/6=0.3332/6=0.333. Con η=0.5\eta=0.5η=0.5 el factor es 1−3=−21-3=-21−3=−2, las iteraciones son 4,−4,8,…4,-4,8,\dots4,−4,8,… y duplican su tamaño en cada paso.

En varias variables la curvatura cambia según la dirección. El mayor valor propio LLL del hessiano limita el paso utilizable (η<2/L\eta<2/Lη<2/L) y el menor μ\muμ fija lo lento que es cruzar la dirección más plana. Su cociente κ=L/μ\kappa=L/\muκ=L/μ es el número de condición. Con el mejor paso fijo η=2/(L+μ)\eta=2/(L+\mu)η=2/(L+μ) el error se multiplica por unos (κ−1)/(κ+1)(\kappa-1)/(\kappa+1)(κ−1)/(κ+1) en cada paso, así que un κ\kappaκ grande da un factor cercano a uno y un zigzag lento por un valle largo y estrecho. Para la matriz de covarianza de doce grandes acciones de EE. UU. desde 2010, κ\kappaκ es de unos 333333: el factor es 0.9410.9410.941 y reducir el error cien veces requiere unos 76 pasos.

η∗=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)
  • Paso seguro: η<2/L\eta<2/Lη<2/L, con LLL el mayor valor propio del hessiano; si no, las iteraciones divergen.
  • Velocidad: la fija el número de condición κ=L/μ\kappa=L/\muκ=L/μ; cuanto mayor, más lento el descenso.
  • Parada: detener cuando ∥∇f∥\lVert\nabla f\rVert∥∇f∥ baje de una tolerancia, con un tope de iteraciones.
Escale las variablesUn número de condición grande suele venir de variables con escalas muy distintas, por ejemplo un peso entre 0 y 1 junto a una volatilidad en puntos básicos. Reescalar cada variable a un tamaño parecido reduce κ\kappaκ y puede convertir miles de iteraciones en decenas. El precondicionamiento es la forma general de la misma idea.

Lab: qué se califica

  • El primer paso15 pts
  • El segundo paso10 pts
  • El mayor paso estable15 pts
  • Un paso demasiado grande15 pts
  • Un número de condición15 pts
  • El mejor factor de contracción15 pts
  • Por qué el mal condicionamiento es lento15 pts
0/ 7 respondidos
Ejercicios
1Respuesta numérica15 ptsSin responder

Ejecute el descenso de gradiente sobre f(x)=3x2f(x)=3x^2f(x)=3x2 desde x0=4x_0=4x0​=4 con η=0.1\eta=0.1η=0.1. ¿Cuánto vale x1x_1x1​?

x1=x1 =x1=aceptado: ± 0.01
2Respuesta numérica10 ptsSin responder

Dé un paso más con el mismo η\etaη. ¿Cuánto vale x2x_2x2​?

x2=x2 =x2=aceptado: ± 0.005
3Respuesta numérica15 ptsSin responder

Para f(x)=3x2f(x)=3x^2f(x)=3x2, el descenso de gradiente solo converge si η\etaη es menor que un límite. ¿Cuál es ese límite? Dé tres decimales.

limit=limit =limit=aceptado: ± 0.003
4Elección15 ptsSin responder

Sobre f(x)=3x2f(x)=3x^2f(x)=3x2 usa η=0.5\eta=0.5η=0.5. ¿Qué les pasa a las iteraciones?

5Respuesta numérica15 ptsSin responder

La función f(x,y)=x2+10y2f(x,y)=x^2+10y^2f(x,y)=x2+10y2 tiene hessiano diag(2,20)\mathrm{diag}(2,20)diag(2,20). ¿Cuál es su número de condición κ=L/μ\kappa=L/\muκ=L/μ?

kappa=kappa =kappa=aceptado: ± 0.05
6Respuesta numérica15 ptsSin responder

Para ese fff, el descenso de gradiente con el mejor paso fijo reduce el error en cada paso en unos (κ−1)/(κ+1)(\kappa-1)/(\kappa+1)(κ−1)/(κ+1). ¿Cuál es ese factor? Dé tres decimales.

rate=rate =rate=aceptado: ± 0.003
7Explicar con palabras15 ptsSin responder

En una o dos frases, diga por qué el descenso de gradiente es lento cuando el número de condición es grande.

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