Calculus·Unidad 8

Calc-08 — Taylor series & approximation

Casi toda la teoría de optimización se apoya en aproximar la loss localmente por algo simple. Gradient descent usa la aproximación lineal (Taylor de 1er orden); Newton's method usa la cuadrática (2º orden, con la Hessian). Taylor también explica por qué las funciones de activación se comportan como lo hacen cerca de 0 y da las herramientas para analizar convergencia.

Why this matters for ML

Casi toda la teoría de optimización se apoya en aproximar la loss localmente por algo simple. Gradient descent usa la aproximación lineal (Taylor de 1er orden); Newton's method usa la cuadrática (2º orden, con la Hessian). Taylor también explica por qué las funciones de activación se comportan como lo hacen cerca de 0 y da las herramientas para analizar convergencia.

Concepts covered

  • Aproximación lineal (recta tangente)
  • Aproximación cuadrática
  • Taylor series (1 variable) y polinomio de Taylor
  • Taylor multivariable con gradient y Hessian
  • Uso en gradient descent y Newton's method

Intuition first

🎬 3Blue1Brown Essence of Calculus cap. 11 ("Taylor series"). Idea: aproximar cualquier función suave, cerca de un punto, por un polinomio que copia su valor y sus derivadas.

Theory & key results

Aproximación lineal (1er orden): cerca de aa, f(x)f(a)+f(a)(xa).f(x) \approx f(a) + f'(a)(x-a). Es la recta tangente. Base de "dar un pasito en la dirección de la derivada".

Aproximación cuadrática (2º orden): f(x)f(a)+f(a)(xa)+12f(a)(xa)2.f(x) \approx f(a) + f'(a)(x-a) + \tfrac12 f''(a)(x-a)^2. Añade curvatura → aproxima mejor.

Taylor series: si sigues añadiendo términos, f(x)=n=0f(n)(a)n!(xa)n.f(x) = \sum_{n=0}^{\infty}\frac{f^{(n)}(a)}{n!}(x-a)^n. Ejemplos famosos (en a=0a=0, "Maclaurin"): ex=xnn!e^x=\sum \frac{x^n}{n!}, sinx=xx33!+\sin x = x-\frac{x^3}{3!}+\dots, ln(1+x)=xx22+\ln(1+x)=x-\frac{x^2}{2}+\dots

Taylor multivariable (¡el que usa ML!): cerca de a\mathbf{a}, con gradient g=f(a)\mathbf{g}=\nabla f(\mathbf{a}) y Hessian H=2f(a)H=\nabla^2 f(\mathbf{a}): f(x)f(a)+g(xa)+12(xa)H(xa).f(\mathbf{x}) \approx f(\mathbf{a}) + \mathbf{g}^\top(\mathbf{x}-\mathbf{a}) + \tfrac12 (\mathbf{x}-\mathbf{a})^\top H (\mathbf{x}-\mathbf{a}).

  • El término lineal g()\mathbf{g}^\top(\cdot)gradient descent (baja siguiendo g-\mathbf{g}).
  • El término cuadrático con HHNewton's method (salta directo al mínimo de la parábola local): x*=aH1g\mathbf{x}^* = \mathbf{a} - H^{-1}\mathbf{g}.

Aquí se ve por qué la Hessian (Calc-06) y su definiteness (LA-08) determinan la forma local de la loss.

Worked example

Aproxima exe^x cerca de 0.

  • 1er orden: ex1+xe^x\approx 1 + x. En x=0.1x=0.1: 1.11.1 vs. real 1.105171.10517.
  • 2º orden: ex1+x+x2/2e^x\approx 1 + x + x^2/2. En x=0.1x=0.1: 1.1051.105 vs. real 1.105171.10517 (mucho mejor).

Optimización: minimizar f(x)=x2f(x)=x^2 con Newton desde a=3a=3: f=2x=6f'=2x=6, f=2f''=2, paso =36/2=0=3 - 6/2 = 0. ¡Un solo paso llega al mínimo exacto! (Newton es exacto para cuadráticas.)

Notebook exercises (by hand)

  1. Polinomio de Taylor de orden 2 de f(x)=ln(1+x)f(x)=\ln(1+x) en a=0a=0.
  2. Aproxima 1+x\sqrt{1+x} a 1er orden cerca de 0; úsalo para estimar 1.02\sqrt{1.02}.
  3. Escribe los primeros 3 términos de la Taylor series de sinx\sin x y evalúa en x=0.2x=0.2.
  4. Aproximación cuadrática multivariable de f(x,y)=ex+yf(x,y)=e^{x+y} en (0,0)(0,0) (necesitas f\nabla f y HH).
  5. Aplica un paso de Newton a f(x)=x24x+3f(x)=x^2-4x+3 desde x=0x=0; ¿llegas al mínimo?
  6. Explica cómo el término lineal de Taylor justifica la regla de gradient descent.

Python lab

import numpy as np, sympy as sp

x = sp.symbols("x")
# polinomios de Taylor de e^x en 0
for n in [1, 2, 3, 5]:
    p = sp.series(sp.exp(x), x, 0, n+1).removeO()
    print(f"orden {n}:", p, "  en 0.1 ->", float(p.subs(x, 0.1)))
print("e^0.1 real:", np.exp(0.1))

# Newton para minimizar x^2 - 4x + 3 (1 variable)
f1 = lambda t: 2*t - 4      # f'
f2 = lambda t: 2.0          # f''
t = 0.0
for _ in range(3):
    t = t - f1(t)/f2(t)
print("mínimo por Newton:", t)   # 2.0 en un paso

Examen final 📝

Intenta cada nivel antes de abrir las soluciones.

🟡 Medio

  1. Aproximación lineal de f(x)=xf(x)=\sqrt x en a=9a=9; úsala para estimar 9.1\sqrt{9.1}.
  2. Polinomio de Taylor de orden 2 de cosx\cos x en a=0a=0.

🟠 Medio-difícil

  1. Escribe la Taylor de orden 2 de ln(1+x)\ln(1+x) en 0 y estima el error al usarla para ln(1.1)\ln(1.1).
  2. Aproximación cuadrática multivariable de f(x,y)=excosyf(x,y)=e^{x}\cos y en (0,0)(0,0) (necesitas f\nabla f y HH).

🔴 Difícil

  1. Deriva Newton's method minimizando la aproximación cuadrática de Taylor de una f:RnRf:\mathbb{R}^n\to\mathbb{R}: muestra que el paso óptimo es x*=aH1g\mathbf x^*=\mathbf a-H^{-1}\mathbf g y explica cuándo falla (Hessian no PD).
  2. Justifica la regla de gradient descent desde Taylor de 1er orden: partiendo de f(x+Δ)f(x)+fΔf(\mathbf x+\Delta)\approx f(\mathbf x)+\nabla f^\top\Delta, encuentra el Δ\Delta de norma fija que más reduce ff, y muestra que es Δf\Delta\propto-\nabla f.
✅ Soluciones
  1. f(x)=12xf'(x)=\frac{1}{2\sqrt x}, f(9)=1/6f'(9)=1/6. 9.13+16(0.1)3.0167\sqrt{9.1}\approx3+\frac16(0.1)\approx3.0167 (real 3.01662).
  2. cosx1x22\cos x\approx 1-\frac{x^2}{2} (la 1ª derivada en 0 es 0).
  3. ln(1+x)xx22\ln(1+x)\approx x-\frac{x^2}{2}; en 0.1: 0.10.005=0.0950.1-0.005=0.095 (real 0.095310.09531; error 3×104\approx3\times10^{-4}, del orden del término cúbico x3/3x^3/3).
  4. f(0,0)=1f(0,0)=1; f=(excosy, exsiny)=(1,0)\nabla f=(e^x\cos y,\ -e^x\sin y)=(1,0); H=[1001]H=\begin{bmatrix}1&0\0&-1\end{bmatrix} en (0,0). Aprox: 1+x+12(x2y2)1+x+\frac12(x^2-y^2).
  5. Aprox cuadrática q(x)=f(a)+g(xa)+12(xa)H(xa)q(\mathbf x)=f(\mathbf a)+\mathbf g^\top(\mathbf x-\mathbf a)+\frac12(\mathbf x-\mathbf a)^\top H(\mathbf x-\mathbf a). q=g+H(xa)=0x*=aH1g\nabla q=\mathbf g+H(\mathbf x-\mathbf a)=0\Rightarrow \mathbf x^*=\mathbf a-H^{-1}\mathbf g. Falla si HH no es invertible o no PD (el "mínimo" de la cuadrática puede ser un saddle o no existir).
  6. Minimizar fΔ\nabla f^\top\Delta sujeto a Δ=ϵ|\Delta|=\epsilon: por Cauchy–Schwarz el mínimo es en Δ=ϵf/f\Delta=-\epsilon,\nabla f/|\nabla f|Δf\Delta\propto-\nabla f, la dirección de gradient descent.