Computational Mathematics Program
De cero absoluto a la matemática que sostiene la inteligencia artificial
18 partes 360 clases 1080 notebooks 18 motores 1440 horas
Manual completo · versión 0.2.0
Generado desde curriculum.yaml, content/ y los motores ejecutables
github.com/vladimiracunadev-create/computational-mathematics-program
Licencia MIT · contenido pedagógico redactado en 360 de 360 clases (100.0 %)

Índice

  1. Parte 00 — Pensamiento matemático desde cero
    1. 001 · Números naturales y conteo
    2. 002 · Enteros, signo y recta numérica
    3. 003 · Fracciones y números racionales
    4. 004 · Decimales y conversiones
    5. 005 · Porcentajes desde cero
    6. 006 · Razones, tasas y proporciones
    7. 007 · Regla de tres y escalas
    8. 008 · Potencias y leyes de exponentes
    9. 009 · Raíces y radicales
    10. 010 · Orden de operaciones y paréntesis
    11. 011 · Notación científica
    12. 012 · Unidades y análisis dimensional
    13. 013 · Aproximación, redondeo y cifras significativas
    14. 014 · Estimación y cálculo mental
    15. 015 · Variables como cantidades desconocidas
    16. 016 · Expresiones y fórmulas
    17. 017 · Patrones, secuencias y regularidades
    18. 018 · Problemas verbales a lenguaje matemático
    19. 019 · Comprobación y contraejemplos
    20. 020 · Capstone: modelar un problema cotidiano con matemáticas
  2. Parte 01 — Aritmética computacional y representación numérica
    1. 021 · Bits, bytes y sistemas de numeración
    2. 022 · Conversión decimal a binario
    3. 023 · Binario, octal y hexadecimal
    4. 024 · Aritmética binaria
    5. 025 · Enteros con signo y complemento a dos
    6. 026 · Rango, overflow y wraparound
    7. 027 · Punto fijo frente a punto flotante
    8. 028 · IEEE 754: estructura de un float
    9. 029 · Por qué 0.1 + 0.2 no es exactamente 0.3
    10. 030 · Error absoluto y error relativo
    11. 031 · ULP y machine epsilon
    12. 032 · Cancelación catastrófica
    13. 033 · Overflow y underflow flotante
    14. 034 · Propagación de errores
    15. 035 · Condicionamiento de problemas
    16. 036 · Estabilidad de algoritmos
    17. 037 · Precisión arbitraria y Decimal
    18. 038 · Racional exacto y Fraction
    19. 039 · Reproducibilidad numérica entre plataformas
    20. 040 · Capstone: auditor de precisión numérica
  3. Parte 02 — Álgebra y funciones
    1. 041 · Expresiones algebraicas y términos
    2. 042 · Propiedades distributiva, asociativa y conmutativa
    3. 043 · Ecuaciones lineales de una variable
    4. 044 · Desigualdades lineales
    5. 045 · Sistemas de ecuaciones 2x2
    6. 046 · Polinomios y operaciones
    7. 047 · Factorización elemental
    8. 048 · Ecuaciones cuadráticas
    9. 049 · Fórmula cuadrática y discriminante
    10. 050 · Exponentes algebraicos
    11. 051 · Logaritmos y sus propiedades
    12. 052 · Funciones: dominio y rango
    13. 053 · Funciones lineales y pendiente
    14. 054 · Funciones cuadráticas y parábolas
    15. 055 · Funciones exponenciales
    16. 056 · Funciones logarítmicas
    17. 057 · Composición de funciones
    18. 058 · Funciones inversas
    19. 059 · Funciones por tramos
    20. 060 · Capstone: construir y comparar modelos funcionales
  4. Parte 03 — Geometría, trigonometría y geometría analítica
    1. 061 · Puntos, segmentos y distancias
    2. 062 · Ángulos y radianes
    3. 063 · Triángulos y semejanza
    4. 064 · Teorema de Pitágoras
    5. 065 · Seno, coseno y tangente
    6. 066 · Identidades trigonométricas básicas
    7. 067 · Círculo unitario
    8. 068 · Coordenadas cartesianas
    9. 069 · Pendiente y ecuación de la recta
    10. 070 · Distancia punto-recta
    11. 071 · Circunferencias y cónicas
    12. 072 · Vectores geométricos 2D
    13. 073 · Transformaciones: traslación y escala
    14. 074 · Rotaciones 2D
    15. 075 · Matrices de transformación
    16. 076 · Coordenadas polares
    17. 077 · Geometría 3D y planos
    18. 078 · Proyecciones y perspectiva
    19. 079 · Aplicaciones en visión, robótica y videojuegos
    20. 080 · Capstone: motor geométrico 2D
  5. Parte 04 — Matemática discreta para computación
    1. 081 · Lógica proposicional
    2. 082 · Tablas de verdad y equivalencias
    3. 083 · Lógica de predicados y cuantificadores
    4. 084 · Conjuntos y operaciones
    5. 085 · Relaciones y propiedades
    6. 086 · Funciones discretas
    7. 087 · Principios de conteo
    8. 088 · Permutaciones
    9. 089 · Combinaciones
    10. 090 · Principio del palomar
    11. 091 · Inducción matemática
    12. 092 · Recurrencias
    13. 093 · Grafos: vértices y aristas
    14. 094 · Caminos, ciclos y conectividad
    15. 095 · Árboles y árboles de expansión
    16. 096 · DAG y orden topológico
    17. 097 · Álgebra booleana
    18. 098 · Aritmética modular
    19. 099 · Números primos y máximo común divisor
    20. 100 · Capstone: modelar dependencias con grafos
  6. Parte 05 — Álgebra lineal I: vectores y matrices
    1. 101 · Escalares, vectores y matrices
    2. 102 · Operaciones con vectores
    3. 103 · Producto punto y similitud
    4. 104 · Normas y distancias
    5. 105 · Vectores unitarios
    6. 106 · Combinaciones lineales
    7. 107 · Independencia y dependencia lineal
    8. 108 · Span y subespacios
    9. 109 · Matrices y operaciones básicas
    10. 110 · Producto matriz-vector
    11. 111 · Producto de matrices
    12. 112 · Transpuesta y simetría
    13. 113 · Sistemas lineales
    14. 114 · Eliminación de Gauss
    15. 115 · Forma escalonada y rango
    16. 116 · Inversa de una matriz
    17. 117 · Determinantes
    18. 118 · Matrices ortogonales
    19. 119 · Proyecciones ortogonales
    20. 120 · Capstone: resolver un sistema de recomendación lineal
  7. Parte 06 — Álgebra lineal II: descomposiciones y tensores
    1. 121 · Bases y coordenadas
    2. 122 · Cambio de base
    3. 123 · Transformaciones lineales
    4. 124 · Núcleo e imagen
    5. 125 · Autovalores y autovectores
    6. 126 · Diagonalización
    7. 127 · Matrices positivas definidas
    8. 128 · Formas cuadráticas
    9. 129 · Descomposición LU
    10. 130 · Descomposición QR
    11. 131 · Mínimos cuadrados lineales
    12. 132 · SVD desde la intuición
    13. 133 · SVD y compresión
    14. 134 · Pseudoinversa de Moore-Penrose
    15. 135 · PCA desde álgebra lineal
    16. 136 · Producto de Kronecker
    17. 137 · Tensores: índices, shape y orden
    18. 138 · Broadcasting como operación tensorial
    19. 139 · Einstein summation
    20. 140 · Capstone: PCA y compresión de imágenes
  8. Parte 07 — Cálculo diferencial e integral
    1. 141 · Intuición de límite
    2. 142 · Límites algebraicos
    3. 143 · Continuidad
    4. 144 · Derivada como tasa de cambio
    5. 145 · Reglas de derivación
    6. 146 · Regla del producto y cociente
    7. 147 · Regla de la cadena
    8. 148 · Derivadas de exponenciales y logaritmos
    9. 149 · Derivadas trigonométricas
    10. 150 · Derivación implícita
    11. 151 · Aproximación lineal y Taylor
    12. 152 · Máximos y mínimos
    13. 153 · Integral como acumulación
    14. 154 · Integral definida
    15. 155 · Antiderivadas
    16. 156 · Teorema fundamental del cálculo
    17. 157 · Integración por sustitución
    18. 158 · Integración por partes
    19. 159 · Integración numérica introductoria
    20. 160 · Capstone: optimizar y acumular una señal
  9. Parte 08 — Cálculo multivariable, matricial y autodiferenciación
    1. 161 · Funciones de varias variables
    2. 162 · Superficies y curvas de nivel
    3. 163 · Derivadas parciales
    4. 164 · Gradiente
    5. 165 · Derivada direccional
    6. 166 · Plano tangente
    7. 167 · Regla de la cadena multivariable
    8. 168 · Jacobiano
    9. 169 · Hessiano
    10. 170 · Taylor multivariable
    11. 171 · Optimización sin restricciones
    12. 172 · Multiplicadores de Lagrange
    13. 173 · Integrales dobles
    14. 174 · Integrales triples
    15. 175 · Campos vectoriales
    16. 176 · Divergencia y rotacional
    17. 177 · Cálculo matricial
    18. 178 · Derivadas respecto de vectores y matrices
    19. 179 · Automatic differentiation y computational graphs
    20. 180 · Capstone: backpropagation manual y automática
  10. Parte 09 — Probabilidad y procesos aleatorios
    1. 181 · Experimentos, espacio muestral y eventos
    2. 182 · Axiomas de probabilidad
    3. 183 · Reglas de suma y producto
    4. 184 · Probabilidad condicional
    5. 185 · Independencia
    6. 186 · Teorema de Bayes
    7. 187 · Variables aleatorias discretas
    8. 188 · Variables aleatorias continuas
    9. 189 · Esperanza matemática
    10. 190 · Varianza y desviación estándar
    11. 191 · Covarianza y correlación
    12. 192 · Bernoulli y binomial
    13. 193 · Poisson y exponencial
    14. 194 · Distribución normal
    15. 195 · Distribuciones conjuntas y marginales
    16. 196 · Ley de los grandes números
    17. 197 · Teorema central del límite
    18. 198 · Métodos Monte Carlo
    19. 199 · Cadenas de Markov
    20. 200 · Capstone: simulador probabilístico y bayesiano
  11. Parte 10 — Estadística e inferencia
    1. 201 · Estadística descriptiva
    2. 202 · Población, muestra y sesgo de selección
    3. 203 · Muestreo y distribuciones muestrales
    4. 204 · Estimadores y propiedades
    5. 205 · Intervalos de confianza
    6. 206 · Pruebas de hipótesis
    7. 207 · p-value correctamente interpretado
    8. 208 · Errores tipo I y II
    9. 209 · Potencia estadística
    10. 210 · t-test y comparación de medias
    11. 211 · Chi-cuadrado y tablas de contingencia
    12. 212 · ANOVA
    13. 213 · Correlación frente a causalidad
    14. 214 · Regresión lineal estadística
    15. 215 · Máxima verosimilitud
    16. 216 · Estimación MAP
    17. 217 · Inferencia bayesiana
    18. 218 · Bootstrap y remuestreo
    19. 219 · A/B testing y diseño experimental
    20. 220 · Capstone: estudio estadístico reproducible
  12. Parte 11 — Métodos numéricos y computación científica
    1. 221 · Errores numéricos y convergencia
    2. 222 · Bisección
    3. 223 · Newton-Raphson
    4. 224 · Método de la secante
    5. 225 · Interpolación de Lagrange
    6. 226 · Splines
    7. 227 · Diferenciación numérica
    8. 228 · Cuadratura numérica
    9. 229 · Regla del trapecio
    10. 230 · Simpson
    11. 231 · Sistemas lineales directos
    12. 232 · Jacobi y Gauss-Seidel
    13. 233 · Métodos iterativos y tolerancias
    14. 234 · Mínimos cuadrados numéricos
    15. 235 · Ecuaciones diferenciales ordinarias
    16. 236 · Método de Euler
    17. 237 · Runge-Kutta
    18. 238 · Introducción a PDE y discretización
    19. 239 · Computación científica con SciPy
    20. 240 · Capstone: solver numérico con informe de error
  13. Parte 12 — Optimización matemática y computacional
    1. 241 · Problemas de optimización y función objetivo
    2. 242 · Convexidad
    3. 243 · Gradiente y direcciones de descenso
    4. 244 · Gradient descent
    5. 245 · Stochastic gradient descent
    6. 246 · Momentum
    7. 247 · Nesterov accelerated gradient
    8. 248 · AdaGrad
    9. 249 · RMSProp
    10. 250 · Adam
    11. 251 · AdamW
    12. 252 · Método de Newton
    13. 253 · Quasi-Newton y BFGS
    14. 254 · Line search
    15. 255 · Regularización como optimización
    16. 256 · Restricciones y Lagrangianos
    17. 257 · Condiciones KKT
    18. 258 · Optimización cuadrática
    19. 259 · Optimización evolutiva
    20. 260 · Capstone: banco de optimizadores comparables
  14. Parte 13 — Teoría de la información, señales y series
    1. 261 · Información y sorpresa
    2. 262 · Entropía de Shannon
    3. 263 · Entropía cruzada
    4. 264 · Divergencia KL
    5. 265 · Jensen-Shannon divergence
    6. 266 · Información mutua
    7. 267 · Principio de máxima entropía
    8. 268 · Codificación y compresión
    9. 269 · Señales discretas y continuas
    10. 270 · Muestreo y aliasing
    11. 271 · Convolución
    12. 272 · Correlación de señales
    13. 273 · Series y transformada de Fourier
    14. 274 · FFT
    15. 275 · Filtros y respuesta en frecuencia
    16. 276 · Procesos estacionarios
    17. 277 · Autocorrelación
    18. 278 · Series temporales y ventanas
    19. 279 · Espectro y densidad espectral
    20. 280 · Capstone: analizar señal y construir features
  15. Parte 14 — Matemática de Machine Learning
    1. 281 · Geometría del aprendizaje supervisado
    2. 282 · Regresión lineal desde mínimos cuadrados
    3. 283 · Ridge y regularización L2
    4. 284 · Lasso y regularización L1
    5. 285 · Regresión logística y sigmoid
    6. 286 · Cross-entropy en clasificación
    7. 287 · Naive Bayes
    8. 288 · k-Nearest Neighbors y métricas
    9. 289 · SVM y margen máximo
    10. 290 · Kernel trick
    11. 291 · Árboles: entropía y Gini
    12. 292 · Random Forest desde probabilidad
    13. 293 · Boosting y descenso funcional
    14. 294 · k-means como optimización
    15. 295 · Gaussian Mixture Models
    16. 296 · EM algorithm
    17. 297 · PCA aplicado a ML
    18. 298 · Bias-variance tradeoff
    19. 299 · Generalización, validación y leakage
    20. 300 · Capstone: derivar y comparar 6 algoritmos ML
  16. Parte 15 — Matemática de Deep Learning
    1. 301 · Perceptrón y separabilidad
    2. 302 · MLP como composición de funciones
    3. 303 · Funciones de activación
    4. 304 · Funciones de pérdida
    5. 305 · Backpropagation paso a paso
    6. 306 · Computational graphs
    7. 307 · Inicialización de pesos
    8. 308 · Batch normalization y layer normalization
    9. 309 · Regularización y dropout
    10. 310 · Convolución discreta
    11. 311 · CNN y receptive fields
    12. 312 · Pooling y downsampling
    13. 313 · RNN y recurrencia
    14. 314 · Vanishing y exploding gradients
    15. 315 · LSTM y compuertas
    16. 316 · GRU
    17. 317 · Embeddings como espacios vectoriales
    18. 318 · Optimización de redes profundas
    19. 319 · Autodiff con PyTorch/JAX
    20. 320 · Capstone: red neuronal desde cero en Python puro
  17. Parte 16 — Matemática de Transformers, modelos generativos, grafos y RL
    1. 321 · Softmax y distribuciones categóricas
    2. 322 · Embeddings y similitud coseno
    3. 323 · Positional encoding
    4. 324 · Query, Key y Value
    5. 325 · Scaled dot-product attention
    6. 326 · Self-attention
    7. 327 · Multi-head attention
    8. 328 · Transformer completo
    9. 329 · Modelado autoregresivo
    10. 330 · Sampling, temperatura, top-k y top-p
    11. 331 · Variational Autoencoders
    12. 332 · ELBO y variational inference
    13. 333 · GAN y juegos minimax
    14. 334 · Diffusion models: forward process
    15. 335 · Diffusion models: reverse process
    16. 336 · Graph Laplacian
    17. 337 · Message passing en GNN
    18. 338 · Bellman equations
    19. 339 · Policy gradients
    20. 340 · Capstone: mini-Transformer matemático
  18. Parte 17 — Frontera matemática para IA e investigación
    1. 341 · Gaussian Processes
    2. 342 · Kernel methods avanzados
    3. 343 · MCMC avanzado
    4. 344 · Hamiltonian Monte Carlo
    5. 345 · Variational inference avanzada
    6. 346 · Optimal transport
    7. 347 · Wasserstein distance
    8. 348 · Manifold learning
    9. 349 · Geometría diferencial para ML
    10. 350 · Information geometry
    11. 351 · Stochastic differential equations
    12. 352 · Neural ODEs
    13. 353 · Score matching
    14. 354 · Spectral graph theory
    15. 355 · Causal inference
    16. 356 · Statistical learning theory
    17. 357 · VC dimension
    18. 358 · PAC learning
    19. 359 · Approximation theory y scaling
    20. 360 · Capstone final: reproducir una idea matemática de un paper

Cómo leer este manual

Este manual es un artefacto generado. Se reconstruye con python scripts/build_manual.py a partir de tres fuentes: el currículo (curriculum.yaml), el contenido pedagógico (content/) y los 18 motores ejecutables, cuyas demostraciones se ejecutan durante la generación para extraer sus salidas reales.

Cada clase incluye su concepto, sus fórmulas, sus fundamentos, un ejemplo numérico trabajado, las salidas que devuelve su laboratorio, los errores conceptuales frecuentes y sus referencias. Los apartados que no aparecen en una clase concreta son los que todavía no están redactados: el manual no rellena huecos con texto genérico.

Estado del contenido pedagógico: 360 de 360 clases redactadas (100.0 %), 18 de 18 partes con resumen extendido y 489 términos de glosario.

Límites declarados. Un manual educativo no sustituye una carrera ni supervisión académica. Las derivaciones se orientan a comprensión computacional; la profundidad formal completa exige los textos citados en cada parte. Los motores son legibles, no rápidos, y no deben usarse en producción.

Parte 00 — Pensamiento matemático desde cero

Nivel cero-absoluto · 20 clases · 80 horas · motor part00

Reconstruye la aritmética y el lenguaje matemático básico con el rigor que exige escribir código: cada número tiene dominio, unidad y representación.

Esta parte no enseña «matemática básica»: reconstruye la aritmética con el nivel de precisión que exige escribir código que otra persona ejecutará. La diferencia es real. En la escuela, 1/3 = 0.33 es una respuesta aceptable; en un programa, esa igualdad es falsa y su error se propaga a todo lo que venga después.

El hilo conductor son tres preguntas que se repetirán en las 360 clases del programa:

1. ¿Qué es este número? Un natural, un entero, un racional exacto o una aproximación decimal no son el mismo objeto, aunque se escriban parecido y la calculadora los mezcle sin avisar. 2. ¿En qué unidad y en qué escala vive? Un 15 sin unidad no es una cantidad: es una cadena de dígitos. Casi todo error de modelado empieza aquí. 3. ¿Cómo sé que el resultado es correcto? Un cálculo sin verificación independiente es una conjetura con formato de respuesta.

La proporcionalidad es el eje del bloque central (clases 006 a 007). Es la primera función lineal que aprendemos sin llamarla así, y reaparece literalmente en cada capa densa de una red neuronal: y = kx es el caso unidimensional de y = Wx. Quien no distingue una proporcionalidad directa de una inversa tampoco distinguirá después una relación lineal de una recíproca en un modelo.

El bloque de potencias, raíces y notación científica (008 a 011) construye el vocabulario para hablar de órdenes de magnitud. En IA esa competencia es cotidiana: un modelo de 7·10⁹ parámetros y otro de 7·10¹¹ no se diferencian en «tamaño», se diferencian en dos órdenes de magnitud, y esa es la unidad en la que se razona sobre coste, memoria y tiempo de entrenamiento.

El cierre (013 a 019) instala los hábitos que separan un cálculo de una afirmación: redondear como decisión declarada, estimar antes de calcular, traducir un enunciado a ecuaciones y —sobre todo— buscar el contraejemplo antes que la confirmación. La clase 019 demuestra una conjetura que resiste 40 verificaciones consecutivas y cae en la cuadragésima primera: es la lección más importante de toda la parte.

Nada de esto requiere talento matemático previo. Requiere aceptar que la precisión no es pedantería: es la única forma de que un resultado siga siendo cierto cuando lo ejecuta otra máquina, otro día, con otros datos.

Ideas centrales

Por qué importa en IA

Toda métrica de un modelo (accuracy, loss, learning rate) es una razón, un porcentaje o una escala. Interpretarlas mal es el primer error de un practicante de IA.

Errores frecuentes de la parte

Glosario de la parte (21 términos)

TérminoDefiniciónClase
Cifra significativaDígito que aporta información sobre la precisión de una medida. Los ceros a la izquierda no cuentan.013
ContraejemploCaso concreto que satisface la hipótesis y viola la conclusión. Un solo contraejemplo refuta una afirmación universal.019
Desarrollo periódicoDecimal que repite indefinidamente un bloque de dígitos. Señala que la fracción no tiene forma decimal finita.004
Estimación de FermiAproximación por órdenes de magnitud usando descomposición en factores estimables. Sirve para detectar resultados absurdos.014
ExponenteNúmero de veces que la base se multiplica por sí misma. Extendido a enteros negativos y fracciones por continuidad de las leyes.008
Factor unitarioCociente igual a 1 entre dos expresiones de la misma cantidad en unidades distintas. Multiplicar por él convierte sin alterar el valor.012
IncógnitaSímbolo que representa un valor concreto pero desconocido, determinado por las restricciones del problema.015
Número naturalEntero no negativo usado para contar objetos discretos. No admite división exacta general.001
Número racionalCociente exacto de dos enteros con denominador no nulo. Su desarrollo decimal es finito o periódico.003
Orden de magnitudExponente de la potencia de 10 más cercana. Permite comparar cantidades que difieren en varios factores de 10.011
ParámetroSímbolo que representa un valor fijo pero no especificado. Distinto de la incógnita: no se despeja, se elige.016
PrecedenciaOrden en que se aplican las operaciones de una expresión. La potenciación asocia por la derecha.010
Progresión aritméticaSucesión con diferencia constante entre términos consecutivos.017
Progresión geométricaSucesión con razón constante entre términos consecutivos. Modela crecimiento exponencial discreto.017
Proporcionalidad directaRelación en la que el cociente y/x permanece constante. Su gráfica es una recta que pasa por el origen.007
Proporcionalidad inversaRelación en la que el producto x·y permanece constante. Su gráfica es una hipérbola.007
Punto porcentualDiferencia absoluta entre dos porcentajes. Pasar del 10 % al 12 % son 2 puntos porcentuales, no un 2 % de aumento.005
RadicalRaíz n-ésima, equivalente al exponente fraccionario 1/n. Su dominio real depende de la paridad del índice.009
RazónCociente entre dos cantidades. Si las unidades difieren, la razón es una tasa y conserva unidad (km/h).006
Redondeo bancarioRegla que redondea el caso 0.5 al par más cercano, para que el sesgo acumulado tienda a cero.013
Valor absolutoDistancia de un número al cero. Siempre no negativo y simétrico: |a−b| = |b−a|.002

Bibliografía de la parte

001 · Números naturales y conteo

Parte 00 · clase 1 de 20 · demostración counting

Contar es establecer una biyección entre un conjunto y un tramo inicial de los naturales.

1 + 2 + ... + n = n(n+1)/2
|{1, 2, ..., n}| = n

Fundamentos

Contar parece trivial hasta que se intenta programar. Cuando decimos que un conjunto tiene 7 elementos, estamos afirmando que existe una correspondencia uno a uno entre ese conjunto y {1,2,3,4,5,6,7}. Esa definición —debida a la construcción de los naturales que formalizaron Peano y Dedekind a finales del siglo XIX— es la que permite contar cosas que no se pueden señalar con el dedo: las combinaciones posibles de una contraseña, los caminos en un grafo, los estados de un programa.

La suma de los primeros n naturales ilustra la diferencia entre contar y calcular. Sumar uno a uno cuesta n operaciones; la fórmula cerrada cuesta tres, independientemente de n. El argumento clásico —atribuido a Gauss siendo niño, aunque la anécdota es probablemente apócrifa— consiste en emparejar el primer término con el último, el segundo con el penúltimo, y observar que cada pareja suma n+1 y que hay n/2 parejas.

Esta distinción reaparece durante todo el programa. En la parte 04 se llamará «complejidad algorítmica»; en la parte 11, «coste de un método numérico». Aquí es simplemente la observación de que dos procedimientos correctos pueden diferir en cuántas operaciones necesitan, y que esa diferencia importa cuando n es grande.

Un detalle que el laboratorio comprueba: la fórmula cerrada y la suma iterativa dan exactamente el mismo entero. Con enteros de Python esto es cierto siempre. En la parte 01 veremos que con números en punto flotante la coincidencia deja de estar garantizada, y por qué.

Ejemplo trabajado

Sumar los enteros de 1 a 100.

Iterativo:  1 + 2 + 3 + ... + 100      → 100 sumas
Emparejado: (1+100) + (2+99) + ...     → 50 parejas de 101
            50 · 101 = 5050
Cerrado:    n(n+1)/2 = 100·101/2 = 5050 → 3 operaciones

Verificación cruzada: ambos caminos deben dar 5050. Si no coinciden, uno de los dos está mal implementado. Esa comprobación —dos caminos independientes al mismo resultado— es el patrón de verificación que se usará en todo el programa.

Qué ejecuta el laboratorio

Conteo, suma de Gauss y verificación cerrada frente a iterativa.

GrupoSalidas
Resultados numéricos (5)n, suma_iterativa, suma_formula_cerrada, operaciones_iterativas, operaciones_formula
Comprobaciones (1)coinciden
compmath run 001

Errores conceptuales frecuentes

  1. Confundir el número de elementos con el último índice: de 1 a 100 hay 100 números, pero de 0 a 100 hay 101.
  2. Aplicar n(n+1)/2 a una secuencia que no empieza en 1 sin ajustar el desplazamiento.
  3. Suponer que «contar» y «sumar» son la misma operación: contar es cardinalidad, sumar es agregación.

Dónde se usa

Toda estimación de coste computacional empieza por un conteo. El número de comparaciones de un algoritmo de ordenación, el número de parejas en un producto cartesiano y el número de operaciones de una multiplicación de matrices son sumas de este tipo. En la parte 04 el conteo se vuelve combinatoria; en la 09, probabilidad.

Bibliografía de la clase

002 · Enteros, signo y recta numérica

Parte 00 · clase 2 de 20 · demostración integers_number_line

El signo indica dirección en la recta numérica; el valor absoluto indica distancia.

|x| = x si x ≥ 0, −x si x < 0
d(a, b) = |a − b| = |b − a|

Fundamentos

Los enteros negativos tardaron siglos en aceptarse. Hasta el siglo XVII se los llamaba «números absurdos» porque no se podía tener −3 ovejas. La aceptación llegó cuando se dejó de exigir que un número representara una cantidad y se admitió que podía representar una posición relativa a un origen: temperatura respecto al punto de congelación, saldo respecto a cero, desplazamiento respecto a un punto de partida.

Esa lectura resuelve de golpe la regla de los signos, que de otro modo hay que memorizar. Multiplicar por −1 es «dar media vuelta» en la recta. Dar media vuelta dos veces deja el sentido original: (−1)·(−1) = +1. No es una convención arbitraria: es la única definición que mantiene válida la propiedad distributiva.

El valor absoluto separa dos preguntas que el signo mezcla: cuánto y hacia dónde. La distancia |a − b| es simétrica por construcción, y esa simetría es lo que la convierte en una distancia en el sentido matemático. En la parte 05 esa misma idea se generaliza a vectores como la norma, y en la parte 03 aparece como distancia euclídea. El valor absoluto es la norma de dimensión 1.

Conviene notar desde ya una asimetría que la parte 01 explotará: en un entero de ancho fijo con complemento a dos, hay un negativo más que positivos, y por eso abs(-128) desborda en un int8. El valor absoluto no siempre es representable.

Ejemplo trabajado

Distancia entre las posiciones −7 y 4 en la recta.

a = −7,  b = 4
a − b = −11      → dirección: de b hacia a se retrocede
|a − b| = 11     → distancia
b − a = 11
|b − a| = 11     → misma distancia, simetría verificada

Con signos: el producto de los signos de a y b es (−1)·(+1) = −1, lo que indica que están en semirrectas opuestas respecto al origen. Esa lectura —el signo del producto como indicador de posición relativa— es la que se usará en la clase 222 (bisección) para decidir en qué mitad del intervalo está la raíz.

Qué ejecuta el laboratorio

Signo, valor absoluto y distancia en la recta numérica.

GrupoSalidas
Resultados numéricos (6)a, b, distancia_|a-b|, distancia_|b-a|, producto_de_signos, opuesto_de_a
Comprobaciones (1)simetrica
compmath run 002

Errores conceptuales frecuentes

  1. Leer −3² como (−3)²: la potenciación tiene mayor precedencia que el signo, así que −3² = −9.
  2. Suponer que |a + b| = |a| + |b|: solo se cumple si a y b tienen el mismo signo (desigualdad triangular).
  3. Tratar el valor absoluto como «quitar el signo» en lugar de «medir distancia»: la segunda lectura es la que generaliza.

Dónde se usa

El error absoluto de la parte 01, la norma L1 de la parte 05, la pérdida MAE de la parte 15 y el criterio de cambio de signo de la bisección (clase 222) son todos el mismo objeto. Cualquier función de pérdida robusta a valores atípicos se construye sobre valor absoluto en lugar de sobre cuadrados.

Bibliografía de la clase

003 · Fracciones y números racionales

Parte 00 · clase 3 de 20 · demostración rational_arithmetic

Un racional es un cociente exacto de enteros; un decimal es casi siempre una aproximación suya.

a/b + c/d = (ad + bc)/(bd)
a/b = c/d ⟺ ad = bc

Fundamentos

Los racionales existen porque los enteros no están cerrados bajo división: 1 dividido entre 3 no es un entero. La construcción formal define un racional como una clase de equivalencia de pares de enteros (a, b) con b ≠ 0, donde (a,b) ~ (c,d) si ad = bc. Por eso 2/4 y 1/2 son el mismo número escrito de dos formas.

La consecuencia práctica es la que importa aquí: la fracción es el objeto exacto y el decimal es su sombra. Fraction(1,3) guarda dos enteros y responde con exactitud a cualquier operación; 0.3333 guarda una aproximación y arrastra un error que se acumula. Python distingue las dos cosas: fractions.Fraction implementa la aritmética exacta, y float la aproximada.

El laboratorio de esta clase muestra el caso mínimo donde la diferencia se ve: 1/3 + 1/6 es exactamente 1/2 en aritmética racional, y en punto flotante da un número que parece 0.5 pero cuya igualdad con 0.5 depende de detalles de representación. Aquí conviene resistir la tentación de concluir «los floats están rotos»: no lo están; simplemente no son racionales exactos, y la parte 01 explica por qué.

Un criterio útil para decidir qué usar: si el resultado se va a comparar con ==, o si representa dinero, o si va a alimentar cientos de miles de operaciones encadenadas, la aritmética exacta paga su coste. Si el resultado se va a graficar o alimentar un modelo estadístico, el float es suficiente y mucho más rápido.

Ejemplo trabajado

Sumar un tercio y un sexto por los dos caminos.

Exacto:   1/3 + 1/6 = 2/6 + 1/6 = 3/6 = 1/2
          denominador reducido: 2
          ¿es igual a 1/2? Sí, por construcción.

Flotante: 0.3333333333333333 + 0.16666666666666666
        = 0.5                    (aparentemente)
        ¿es igual a 0.5? depende del redondeo de cada sumando

La lección no es que un camino sea correcto y el otro incorrecto: es que responden preguntas distintas. El exacto responde «¿cuál es el número?»; el flotante responde «¿cuál es el número representable más cercano?».

Qué ejecuta el laboratorio

Un tercio exacto frente a un tercio en punto flotante.

GrupoSalidas
Resultados numéricos (3)1/3 + 1/6 float, error_absoluto, denominador_reducido
Comprobaciones (2)es_igual_a_1/2_exacto, es_igual_a_0.5_float
compmath run 003

Errores conceptuales frecuentes

  1. Escribir 1/3 como 0.33 y arrastrar ese error al resto del cálculo sin declararlo.
  2. Sumar numeradores y denominadores por separado: 1/2 + 1/3 no es 2/5.
  3. Creer que simplificar una fracción cambia su valor: 2/4 y 1/2 son el mismo número.

Dónde se usa

Cualquier cálculo con dinero, con probabilidades exactas o con proporciones de inventario. En la parte 01 (clase 038) la aritmética racional exacta se usa para medir cuánto error acumula la aritmética flotante: la fracción actúa como patrón de referencia contra el que se mide.

Bibliografía de la clase

004 · Decimales y conversiones

Parte 00 · clase 4 de 20 · demostración decimal_conversion

El desarrollo decimal de una fracción es finito o periódico, y qué caso ocurre depende solo del denominador.

a/b tiene desarrollo finito ⟺ b (reducido) solo tiene factores 2 y 5
0.abcabc... = abc/999

Fundamentos

Toda fracción tiene desarrollo decimal finito o periódico; nunca uno infinito sin patrón. La razón es de conteo puro: al dividir por b, los restos posibles son 0, 1, ..., b−1. Si aparece el resto 0, el desarrollo termina. Si no, en a lo sumo b pasos algún resto se repite —hay más pasos que restos posibles— y desde ahí el desarrollo se repite. Es el principio del palomar (clase 090) aplicado antes de haberlo enunciado.

Cuál de los dos casos ocurre depende únicamente de los factores primos del denominador reducido. Nuestro sistema decimal es base 10 = 2·5, así que solo las fracciones cuyo denominador se factoriza en potencias de 2 y 5 tienen desarrollo finito: 3/8 sí (8 = 2³), 1/7 no (7 no divide ninguna potencia de 10).

Esta observación es la clave para entender la parte 01. En base 2, los denominadores «buenos» son solo las potencias de 2. Y 1/10 —que en decimal es finito y trivial— no lo es en binario. De ahí que 0.1 no sea representable exactamente en un float, que es exactamente el asunto de la clase 029. La rareza no está en la máquina: está en que cambiar de base cambia qué fracciones son «redondas».

El camino inverso —de periódico a fracción— usa una identidad limpia: el periodo de longitud k se escribe sobre k nueves. 0.142857142857... = 142857/999999, que simplificado es exactamente 1/7.

Ejemplo trabajado

Clasificar dos fracciones y reconstruir una desde su periodo.

3/8:  8 = 2³           → solo factores 2      → finito
      3/8 = 0.375

1/7:  7 primo ≠ 2, 5   → periódico
      1/7 = 0.142857 142857 142857...
      periodo = "142857", longitud 6

Reconstrucción: 142857/999999
              = 142857/999999   (dividir num. y den. por 142857)
              = 1/7             ✓

La longitud del periodo de 1/7 es 6 = 7−1. No es casualidad: está relacionada con el orden multiplicativo de 10 módulo 7, tema de la clase 098.

Qué ejecuta el laboratorio

Fracciones con desarrollo decimal finito y periódico.

GrupoSalidas
Resultados numéricos (1)3/8
Comprobaciones (2)3/8_es_finito, coincide_con_1/7
compmath run 004

Errores conceptuales frecuentes

  1. Truncar en lugar de redondear al convertir a decimal, y no declarar cuál de las dos cosas se hizo.
  2. Suponer que un decimal con muchos dígitos es irracional: los irracionales no tienen periodo, y eso no se ve mirando 15 dígitos.
  3. Olvidar reducir la fracción antes de mirar los factores del denominador: 5/10 parece problemático y es 1/2.

Dónde se usa

Explica por qué los sistemas financieros trabajan en centavos enteros o con Decimal, y por qué un total de factura calculado en float puede diferir en un céntimo del calculado a mano. Es el prerrequisito directo de las clases 029 y 037.

Bibliografía de la clase

005 · Porcentajes desde cero

Parte 00 · clase 5 de 20 · demostración percentage

Un porcentaje es una razón con denominador 100; los cambios porcentuales se componen multiplicando, no sumando.

x % de A = A · x/100
aumento de p % seguido de descuento de p %: A · (1+p)(1−p) = A(1 − p²)

Fundamentos

El error más caro con porcentajes no es de cálculo, es de composición. Un aumento del 20 % seguido de un descuento del 20 % no devuelve el precio original: devuelve el 96 % de él. La razón es que los dos porcentajes se aplican a bases distintas —el segundo se aplica sobre el precio ya aumentado— y por eso los cambios relativos se componen multiplicando factores, no sumando tasas.

El factor es la herramienta correcta: aumentar un 20 % es multiplicar por 1.20; descontar un 20 % es multiplicar por 0.80. Encadenar cambios es multiplicar factores, y el orden no altera el resultado porque la multiplicación es conmutativa. Lo que sí cambia es cuál es el descuento que revierte exactamente un aumento: para deshacer un ×1.20 hace falta un ×1/1.20, es decir un descuento del 16.67 %, no del 20 %.

La segunda confusión frecuente es entre punto porcentual y porcentaje. Si una tasa de conversión pasa del 10 % al 12 %, ha subido 2 puntos porcentuales, que es un aumento relativo del 20 %. Ambas cifras son correctas y describen cosas distintas; publicar una sin decir cuál es se usa habitualmente para exagerar resultados. La clase 219 (A/B testing) retoma exactamente esta distinción.

Para dinero, esta clase usa Decimal deliberadamente. Los porcentajes producen divisiones por 100 que en binario no son exactas, y el descuadre por redondeo al repartir un total es un fenómeno real que el capstone de la parte hace visible.

Ejemplo trabajado

Un producto de 1000 sube un 20 % y luego baja un 20 %.

Precio inicial            1000
Tras +20 %:  1000 × 1.20 = 1200
Tras −20 %:  1200 × 0.80 =  960

Variación neta: 960/1000 − 1 = −4 %      (= −p² con p = 0.20)

¿Qué descuento revierte exactamente el +20 %?
1 − 1/1.20 = 0.1667 → 16.67 %
1200 × (1 − 0.1667) = 1000  ✓

Qué ejecuta el laboratorio

Aumento y descuento sucesivos: el orden no cambia, la reversión sí.

GrupoSalidas
Resultados numéricos (5)precio_inicial, tras_+20%, tras_-20%, variacion_neta_%, descuento_que_revierte_+20%
Comprobaciones (1)vuelve_al_inicial
compmath run 005

Errores conceptuales frecuentes

  1. Sumar porcentajes encadenados: +20 % y −20 % no se cancelan.
  2. Confundir «subió 2 puntos porcentuales» con «subió un 2 %».
  3. Calcular el porcentaje sobre la base equivocada: el descuento se aplica sobre el precio ya modificado.

Dónde se usa

Interés compuesto (parte 07), tasas de conversión y lift en experimentos (clase 219), y cualquier métrica relativa de un modelo. Un «20 % de mejora» sin base declarada es una afirmación incompleta.

Bibliografía de la clase

006 · Razones, tasas y proporciones

Parte 00 · clase 6 de 20 · demostración ratios

Una razón compara dos cantidades por cociente; si las unidades difieren, es una tasa y conserva unidad.

razón = a/b (adimensional si a y b comparten unidad)
tasa = cantidad/unidad de referencia (km/h, €/kg, tokens/s)

Fundamentos

La distinción entre razón y tasa parece terminológica y es operativa. Una razón entre dos cantidades de la misma unidad —tres manzanas por cada dos peras— es adimensional: su valor no cambia si se mide en docenas en lugar de en unidades. Una tasa relaciona unidades distintas y conserva la unidad en el resultado: 80 km/h no es «80», es 80 kilómetros por cada hora.

Arrastrar la unidad no es formalismo escolar: es el mecanismo de verificación más barato que existe. Si un cálculo produce «kilómetros por hora al cuadrado» donde se esperaba una velocidad, hay un error de modelado, y se detecta sin comprobar ni un solo número. La clase 012 sistematiza esta idea como análisis dimensional.

Las tasas se componen por multiplicación de factores unitarios, y esa composición es la que permite responder preguntas sin fórmulas memorizadas. Si una tarea consume 3 GB por hora y hay 5 tareas, el consumo es 15 GB/h; el tiempo hasta llenar 120 GB es 120 GB ÷ 15 GB/h = 8 h, donde los GB se cancelan y queda la unidad correcta.

En IA las tasas están por todas partes y casi nunca se declaran con unidad completa: «tokens por segundo», «muestras por época», «FLOPs por parámetro», «coste por millón de tokens». Comparar dos modelos por una tasa cuyo denominador difiere es el error de benchmarking más común.

Ejemplo trabajado

Un vehículo recorre 240 km en 3 horas.

Tasa:  240 km / 3 h = 80 km/h        (unidad: km/h, no adimensional)

¿Cuánto tarda en recorrer 400 km a esa tasa?
400 km ÷ 80 km/h = 5 h
          ↑ los km se cancelan, queda h   ✓

Razón (misma unidad): 240 km / 400 km = 0.6   → adimensional

Comprobación por unidades: si el resultado hubiera salido en km²/h, sabríamos que multiplicamos donde había que dividir, sin necesidad de revisar la aritmética.

Qué ejecuta el laboratorio

Razón, tasa y proporción con unidades explícitas.

GrupoSalidas
Resultados numéricos (4)distancia_km, tiempo_h, razon_km_por_h, tiempo_para_400km_h
Comprobaciones (1)razon_es_adimensional
compmath run 006

Errores conceptuales frecuentes

  1. Reportar una tasa sin unidad: «la velocidad es 80» no dice si son km/h o m/s.
  2. Sumar tasas con denominadores distintos: 60 km/h y 30 km/h de dos tramos no promedian 45 km/h salvo que los tiempos sean iguales.
  3. Confundir razón (adimensional) con tasa (con unidad) al comparar dos sistemas.

Dónde se usa

Throughput y latencia de un sistema, coste por inferencia, tasa de aprendizaje (que es una tasa: cuánto se mueve el parámetro por unidad de gradiente) y cualquier métrica normalizada de la parte 10.

Bibliografía de la clase

007 · Regla de tres y escalas

Parte 00 · clase 7 de 20 · demostración rule_of_three

En la proporcionalidad directa el cociente es constante; en la inversa lo es el producto.

directa:  y/x = k  ⟹  y = kx
inversa:  x·y = k  ⟹  y = k/x
producto cruzado: a/b = c/d ⟺ ad = bc

Fundamentos

La «regla de tres» se enseña como una receta y por eso se aplica mal: se usa la directa donde corresponde la inversa. El criterio para decidir no es el enunciado sino la pregunta ¿qué permanece constante?. Si al duplicar x se duplica y, lo constante es el cociente y hay proporcionalidad directa. Si al duplicar x se reduce y a la mitad, lo constante es el producto y la proporcionalidad es inversa.

Casos típicos de cada una: el precio total frente a la cantidad comprada es directo (más unidades, proporcionalmente más precio). El tiempo de una obra frente al número de trabajadores es inverso (más trabajadores, proporcionalmente menos tiempo), bajo el supuesto —rara vez cierto en la práctica— de que los trabajadores no se estorban. Declarar ese supuesto es parte del modelado.

La proporcionalidad directa es la primera función lineal del programa. y = kx es una recta por el origen, y su generalización a varias variables, y = Wx, es exactamente lo que hace una capa densa de una red neuronal (clase 110). Quien internaliza aquí que «k es cuánto cambia y por cada unidad de x» ya tiene la intuición correcta de lo que es un peso en un modelo lineal.

Una advertencia que el programa repetirá: la proporcionalidad es un modelo, no una ley. Casi ninguna relación real es proporcional en todo su rango. El precio por unidad baja con el volumen, el rendimiento por trabajador cae con el tamaño del equipo, y el error de un modelo no baja proporcionalmente con los datos. Usar la regla de tres fuera de su rango de validez es el error de modelado más frecuente.

Ejemplo trabajado

Si 4 unidades cuestan 10, ¿cuánto cuestan 6?

Directa (precio ∝ cantidad):
  10/4 = x/6  →  x = 10·6/4 = 15
  comprobación cruzada: 4·15 = 60 = 10·6   ✓

Si en cambio el problema fuera: 4 trabajadores tardan 10 días,
¿cuánto tardan 6?

Inversa (tiempo ∝ 1/trabajadores):
  4·10 = 6·x  →  x = 40/6 = 6.67 días
  comprobación: el producto se conserva, 40 = 40   ✓

El mismo par de números da 15 o 6.67 según el tipo de proporcionalidad. Elegir mal no produce un error pequeño: produce una respuesta sin relación con la pregunta.

Qué ejecuta el laboratorio

Proporcionalidad directa e inversa comparadas sobre el mismo dato.

GrupoSalidas
Resultados numéricos (2)proporcion_directa, proporcion_inversa
Comprobaciones (2)producto_cruzado_directa, producto_constante_inversa
compmath run 007

Errores conceptuales frecuentes

  1. Aplicar proporcionalidad directa a una relación inversa (o al revés) sin preguntarse qué permanece constante.
  2. Extrapolar fuera del rango donde la proporcionalidad es válida.
  3. Olvidar el supuesto de independencia: 9 mujeres no gestan un bebé en un mes.

Dónde se usa

Escalado de recursos, conversión de unidades, ajuste de recetas y presupuestos. En IA es el modelo mental correcto para el learning rate y para leer una ley de escala, cuya forma es una proporcionalidad en escala logarítmica (clase 359).

Bibliografía de la clase

008 · Potencias y leyes de exponentes

Parte 00 · clase 8 de 20 · demostración exponent_laws

Las leyes de exponentes se derivan de contar factores, y su extensión a exponentes negativos y cero es la única que las conserva.

aᵐ · aⁿ = aᵐ⁺ⁿ
(aᵐ)ⁿ = aᵐⁿ
a⁰ = 1 (a ≠ 0),   a⁻ⁿ = 1/aⁿ

Fundamentos

Con exponentes naturales, las leyes son literalmente contar: a³·a² es (a·a·a)·(a·a), cinco factores, luego a⁵. Nada que memorizar. Lo interesante ocurre al extender la definición fuera de los naturales, porque ahí ya no hay «número de factores» que contar.

La extensión no es arbitraria: se elige la única que mantiene las leyes válidas. Si queremos que aᵐ·aⁿ = aᵐ⁺ⁿ siga siendo cierto con n = 0, entonces aᵐ·a⁰ = aᵐ, y por tanto a⁰ debe ser 1. Con el mismo argumento, aⁿ·a⁻ⁿ = a⁰ = 1 obliga a definir a⁻ⁿ = 1/aⁿ. Este patrón —extender una definición preservando las propiedades estructurales— es cómo funciona buena parte de la matemática, y reaparecerá en la clase 009 con los exponentes fraccionarios.

El caso 0⁰ queda genuinamente indefinido: los dos argumentos naturales (a⁰ = 1 y 0ⁿ = 0) apuntan a valores distintos. En análisis se toma convencionalmente 0⁰ = 1 porque hace que las series de potencias funcionen sin caso especial, y Python devuelve 1; conviene saber que es un convenio, no un teorema.

La ley que más se confunde es la de la potencia iterada. (aᵐ)ⁿ = aᵐⁿ pero a^(mⁿ) es otra cosa completamente distinta, y la potenciación asocia por la derecha: 232 es 2(32) = 2⁹ = 512, no (2³)² = 64. La clase 010 vuelve sobre esto.

Ejemplo trabajado

Verificar las leyes con a = 2, m = 5, n = 3.

Producto:   2⁵ · 2³ = 32 · 8 = 256
            2⁵⁺³   = 2⁸      = 256          ✓

Potencia:   (2⁵)³  = 32³     = 32768
            2⁵ˑ³   = 2¹⁵     = 32768        ✓

Extensión:  2⁰ = 1
            2⁻³ = 1/8 = 0.125
            2³ · 2⁻³ = 8 · 0.125 = 1 = 2⁰   ✓

Cada igualdad es una comprobación independiente. Si alguna fallara, la implementación —no la matemática— tendría un error.

Qué ejecuta el laboratorio

Leyes de exponentes verificadas numéricamente.

GrupoSalidas
Resultados numéricos (6)a^m * a^n, a^(m+n), (a^m)^n, a^(m*n), a^0, a^-n
Comprobaciones (2)ley_producto_ok, ley_potencia_ok
compmath run 008

Errores conceptuales frecuentes

  1. Leer (aᵐ)ⁿ y a^(mⁿ) como lo mismo.
  2. Suponer que la potenciación asocia por la izquierda: 232 = 512, no 64.
  3. Aplicar aᵐ·bᵐ = (ab)ᵐ a bases distintas con exponentes distintos: 2³·3² no se simplifica.

Dónde se usa

Complejidad exponencial (parte 04), crecimiento compuesto (parte 02), tamaño del espacio de búsqueda de una contraseña (clase 087) y el conteo de parámetros de un modelo. La escala logarítmica de la clase 011 es la inversa de esta.

Bibliografía de la clase

009 · Raíces y radicales

Parte 00 · clase 9 de 20 · demostración radicals

La raíz n-ésima es el exponente 1/n, y su dominio real depende de la paridad del índice.

ⁿ√a = a^(1/n)
(ⁿ√a)ⁿ = a  para a ≥ 0
√(a²) = |a|,  no a

Fundamentos

Definir la raíz como exponente fraccionario es la extensión natural de la clase 008: si (a^(1/n))ⁿ = a^(n/n) = a, entonces a^(1/n) es precisamente el número que elevado a n devuelve a. La notación de radical y la de exponente describen el mismo objeto, y la segunda es la que se generaliza sin esfuerzo a exponentes reales.

El dominio depende de la paridad del índice, y esta es la fuente de confusión más común. Con índice impar, todo real tiene raíz real única: la raíz cúbica de −8 es −2. Con índice par, los negativos no tienen raíz real, porque ningún real elevado a una potencia par da negativo. Ahí es donde aparecen los números complejos, que el programa usa desde la parte 13 (transformada de Fourier).

La identidad √(x²) = |x| sorprende hasta que se piensa en el dominio: la raíz cuadrada devuelve por convenio la rama no negativa, así que √((−3)²) = √9 = 3, no −3. Olvidarlo produce errores de signo silenciosos al despejar en una ecuación cuadrática, tema de la clase 048.

Numéricamente hay un detalle que la parte 01 explota: √2 no es representable en punto flotante, así que (√2)² no devuelve exactamente 2. El error es minúsculo pero real, y comprobarlo aquí prepara el terreno para el concepto de error de redondeo.

Ejemplo trabajado

Ida y vuelta con la raíz cuadrada de 2.

√2         = 1.4142135623730951    (float64, no exacto)
2**0.5     = 1.4142135623730951    (misma cosa)
(√2)²      = 2.0000000000000004
error      = 4.44e-16              ≈ 2 ulp

Raíz cúbica de −8:  índice impar → −2 en los reales
Raíz cuadrada de −8: índice par  → no existe en ℝ

El error de 4.44·10⁻¹⁶ no es un fallo: es el tamaño del hueco entre floats cerca de 2. La clase 031 le pondrá nombre (ULP).

Qué ejecuta el laboratorio

Raíces como exponentes fraccionarios y su dominio real.

GrupoSalidas
Resultados numéricos (5)sqrt(2), 2**0.5, cuadrado_de_la_raiz, error_del_roundtrip, raiz_cubica_de_-8
Comprobaciones (1)coinciden
compmath run 009

Errores conceptuales frecuentes

  1. Escribir √(x²) = x olvidando el valor absoluto.
  2. Buscar raíces pares de números negativos en los reales.
  3. Comparar (√a)² con a usando ==: hace falta una tolerancia declarada.

Dónde se usa

La norma euclídea (clase 104) es una raíz cuadrada; la desviación estándar (clase 190) también; el factor 1/√d de la atención escalada (clase 325) es una raíz cuya justificación es de varianza.

Bibliografía de la clase

010 · Orden de operaciones y paréntesis

Parte 00 · clase 10 de 20 · demostración operator_precedence

La precedencia y la asociatividad determinan qué expresión representa una cadena de símbolos.

orden: paréntesis → potencias → producto/división → suma/resta
la potenciación asocia por la derecha: a**b**c = a**(b**c)
−a**n = −(aⁿ)

Fundamentos

Una expresión escrita en una línea es una notación comprimida de un árbol. 2+3*4 no es ambiguo para una máquina porque las reglas de precedencia determinan un único árbol: la multiplicación se agrupa antes que la suma. La ambigüedad está solo en la cabeza de quien lee sin conocer las reglas.

Dos reglas concentran casi todos los errores. La primera es la asociatividad de la potenciación por la derecha: 232 es 2(32) = 2⁹ = 512. Es la convención matemática estándar y la que implementan Python, R y las calculadoras científicas; algunas hojas de cálculo hacen lo contrario, lo que produce discrepancias reales entre un cuaderno y un script.

La segunda es que el signo menos unario tiene menor precedencia que la potenciación: −3**2 es −(3²) = −9, no (−3)² = 9. Este error aparece constantemente al trasladar una fórmula de un paper a código, y no produce una excepción: produce un número con el signo equivocado.

La conclusión práctica no es memorizar la tabla completa, sino adoptar un hábito: poner paréntesis donde la lectura no sea inmediata. Los paréntesis redundantes no cuestan nada en tiempo de ejecución y eliminan una clase entera de errores. En una fórmula que otra persona va a auditar, la claridad vale más que la brevedad.

Ejemplo trabajado

Cuatro expresiones que se leen mal con frecuencia.

2 + 3 * 4      = 2 + 12 = 14      (no 20)
(2 + 3) * 4    = 5 * 4  = 20

2 ** 3 ** 2    = 2 ** 9 = 512     (asocia por la derecha)
(2 ** 3) ** 2  = 8 ** 2 = 64

-3 ** 2        = -(3²)  = -9      (el menos va después)
(-3) ** 2      = 9

Escribir (2 3) 2 cuando se quiere decir eso no es redundancia: es documentación ejecutable.

Qué ejecuta el laboratorio

Precedencia y asociatividad: dos lecturas de la misma cadena.

GrupoSalidas
Resultados numéricos (6)2+3*4, (2+3)*4, 2**3**2 (asocia derecha), (2**3)**2, -3**2, (-3)**2
Comprobaciones (0)
compmath run 010

Errores conceptuales frecuentes

  1. Suponer que la potenciación asocia por la izquierda.
  2. Escribir -x2 esperando (-x)2.
  3. Confiar en la precedencia entre herramientas distintas: hoja de cálculo y Python no siempre coinciden.

Dónde se usa

Trasladar fórmulas de un paper a código sin cambiar su significado. Es la causa número uno de discrepancias al reproducir un resultado publicado.

Bibliografía de la clase

011 · Notación científica

Parte 00 · clase 11 de 20 · demostración scientific_notation

La notación científica separa la magnitud (exponente) de la precisión (mantisa).

x = m · 10ᵉ  con 1 ≤ |m| < 10
orden de magnitud = ⌊log₁₀|x|⌋

Fundamentos

La notación científica no es una forma abreviada de escribir números grandes: es una descomposición que separa dos informaciones independientes. La mantisa dice qué dígitos conocemos —es decir, cuánta precisión tenemos— y el exponente dice en qué escala estamos. Esa separación es exactamente la que usa el formato IEEE 754 en base 2, tema central de la clase 028.

Razonar por órdenes de magnitud es una habilidad, no un atajo. Decir que un modelo tiene «siete mil millones de parámetros» y otro «setecientos mil millones» invita a compararlos como si la diferencia fuera de grado; decir 7·10⁹ frente a 7·10¹¹ deja claro que hay un factor 100 de diferencia, con el coste de memoria y cómputo que eso implica.

Dos números del mismo orden de magnitud son comparables; dos que difieren en tres órdenes casi nunca lo son en la práctica, porque el factor 1000 suele cambiar qué solución es viable. Este criterio es el que se usa en la clase 014 para validar una estimación: si la estimación y el cálculo exacto comparten orden de magnitud, la estimación cumplió su función.

Al escribir código, conviene usar la notación de Python (1.2e-9) en lugar de contar ceros. 0.0000000012 y 0.000000012 son visualmente casi idénticos y difieren en un factor 10; 1.2e-9 y 1.2e-8 no se confunden.

Ejemplo trabajado

Descomponer 0.00000012345.

valor        = 1.2345e-7
exponente    = ⌊log₁₀(1.2345e-7)⌋ = −7
mantisa      = 1.2345e-7 / 10⁻⁷ = 1.2345
condición    1 ≤ 1.2345 < 10                ✓
reconstruido = 1.2345 × 10⁻⁷ = 0.00000012345 ✓

Orden de magnitud: −7

Comparación por órdenes: 7·10⁹ frente a 7·10¹¹ → dos órdenes de diferencia, factor 100. No es «un poco más grande»: es otra categoría de problema.

Qué ejecuta el laboratorio

Mantisa, exponente y orden de magnitud.

GrupoSalidas
Resultados numéricos (5)valor, mantisa, exponente, reconstruido, orden_de_magnitud
Comprobaciones (0)
compmath run 011

Errores conceptuales frecuentes

  1. Dejar la mantisa fuera del rango [1, 10): 12.3e5 no está en forma normalizada.
  2. Contar ceros a mano en lugar de usar el exponente.
  3. Confundir la precisión (número de dígitos de la mantisa) con la magnitud (exponente).

Dónde se usa

Presupuestos de cómputo, tamaños de modelo, tolerancias numéricas y cualquier comparación entre cantidades de escalas distintas. Es la base de la representación en punto flotante (clase 028).

Bibliografía de la clase

012 · Unidades y análisis dimensional

Parte 00 · clase 12 de 20 · demostración dimensional_analysis

Convertir unidades es multiplicar por factores iguales a 1; las unidades se cancelan como factores algebraicos.

1 = 1000 m / 1 km = 1 h / 3600 s
[velocidad] = L·T⁻¹

Fundamentos

El análisis dimensional trata las unidades como objetos algebraicos que se multiplican y se cancelan. Un factor unitario es un cociente entre dos expresiones de la misma cantidad —1000 m / 1 km— cuyo valor es exactamente 1, de modo que multiplicar por él cambia la unidad sin cambiar la cantidad. Encadenar factores unitarios convierte cualquier unidad en cualquier otra sin memorizar fórmulas.

La verdadera potencia del método no es convertir, es verificar. Antes de comprobar un solo número, el análisis dimensional detecta si una fórmula es imposible: una ecuación que iguala metros con segundos está mal, y eso se ve sin calculadora. En física esta comprobación es rutina; en modelado de datos se omite casi siempre, y de ahí salen features que mezclan escalas incompatibles.

El desastre más citado —la pérdida del Mars Climate Orbiter en 1999, donde un sistema trabajaba en libras-fuerza·segundo y otro en newton·segundo— es el ejemplo canónico de que declarar la unidad no es una formalidad. Ningún número estaba mal calculado; la interfaz entre dos sistemas no declaraba unidad.

En machine learning aparece disfrazado: estandarizar features es, en el fondo, convertirlas todas a una unidad común (desviaciones estándar) para que una distancia euclídea tenga sentido. La clase 288 muestra cómo cambia una predicción de k-NN si una variable se mide en una escala 100 veces mayor.

Ejemplo trabajado

Convertir 90 km/h a m/s encadenando factores unitarios.

90 km   1000 m    1 h        90 · 1000
----- × ------ × ------  =  ----------- m/s = 25 m/s
 1 h     1 km    3600 s        3600

Cancelaciones: km/km = 1, h/h = 1  → quedan m/s   ✓

Vuelta:  25 m/s × 3600 s/h × 1 km/1000 m = 90 km/h   ✓
Atajo verificado: dividir entre 3.6

Si el resultado hubiera salido en km²/h², el error estaría en la estructura del cálculo, no en la aritmética.

Qué ejecuta el laboratorio

Conversión de unidades como multiplicación por factores unitarios.

GrupoSalidas
Resultados numéricos (3)velocidad_km/h, velocidad_m/s, vuelta_a_km/h
Comprobaciones (1)consistente
compmath run 012

Errores conceptuales frecuentes

  1. Multiplicar cuando había que dividir por el factor: siempre se comprueba qué unidad se cancela.
  2. Mezclar sistemas (imperial y SI) sin declararlo en la interfaz entre módulos.
  3. Comparar features de escalas distintas con una distancia euclídea sin estandarizar.

Dónde se usa

Interfaces entre sistemas, física computacional, y el preprocesado de datos: la estandarización de la parte 14 es análisis dimensional aplicado a estadística.

Bibliografía de la clase

013 · Aproximación, redondeo y cifras significativas

Parte 00 · clase 13 de 20 · demostración rounding

Redondear es una decisión de modelado con regla declarada, no un accidente de la calculadora.

half-even (bancario): 0.5 → 0, 1.5 → 2, 2.5 → 2
half-up (aritmético): 0.5 → 1, 1.5 → 2, 2.5 → 3

Fundamentos

Cuando el valor a redondear cae exactamente en la mitad, hay que elegir hacia dónde va, y las dos elecciones habituales tienen consecuencias estadísticas distintas. El redondeo aritmético (half-up) siempre sube, y por tanto introduce un sesgo positivo que se acumula al sumar muchos valores. El redondeo bancario (half-even) manda al par más cercano, con lo que los casos intermedios se reparten y el sesgo tiende a cero.

Por eso el estándar IEEE 754 fija half-even como modo por defecto, y por eso la función round de Python hace lo mismo: round(0.5) devuelve 0, no 1. Quien espera el comportamiento escolar lo interpreta como un bug; es la elección correcta para cadenas largas de cálculos.

Las cifras significativas son el otro lado de la misma moneda: dicen cuánta información contiene el número, no cuántos dígitos se imprimen. Un valor medido como 2.50 comunica precisión de centésimas; escrito como 2.5 comunica precisión de décimas; escrito como 2.500000 comunica una precisión que probablemente no se tiene. Reportar más dígitos de los que la medida soporta es una forma de exagerar la certeza.

La regla práctica del programa: redondear al final, nunca en pasos intermedios, y declarar siempre la regla usada. Redondear intermedio destruye información que ya no se recupera, y es una causa habitual de que dos implementaciones «iguales» devuelvan totales distintos.

Ejemplo trabajado

Redondear los cuatro casos intermedios y medir el sesgo.

valores        0.5   1.5   2.5   3.5     suma original = 8.0

half-even       0     2     2     4      suma = 8   → sesgo  0.0
half-up         1     2     3     4      suma = 10  → sesgo +2.0
round() Python  0     2     2     4      (half-even)

Con cuatro valores el sesgo de half-up ya es de 2 unidades. Sobre un millón de importes, el descuadre es sistemático y siempre en la misma dirección.

Qué ejecuta el laboratorio

Redondeo bancario frente a redondeo aritmético.

GrupoSalidas
Resultados numéricos (2)sesgo_half_even, sesgo_half_up
Comprobaciones (0)
compmath run 013

Errores conceptuales frecuentes

  1. Esperar que round(0.5) devuelva 1 en Python.
  2. Redondear en pasos intermedios y no solo en la presentación final.
  3. Reportar más cifras significativas de las que la medida soporta.

Dónde se usa

Contabilidad, reparto de totales, informes de métricas y cualquier agregación de muchos valores redondeados. Es prerrequisito directo del capstone de esta parte y de la clase 034 (propagación de errores)."

Bibliografía de la clase

014 · Estimación y cálculo mental

Parte 00 · clase 14 de 20 · demostración estimation

Estimar por órdenes de magnitud detecta resultados absurdos antes de invertir esfuerzo en calcularlos.

error relativo = |estimado − exacto| / |exacto|
mismo orden de magnitud ⟺ ⌊log₁₀ a⌋ = ⌊log₁₀ b⌋

Fundamentos

La estimación no compite con el cálculo exacto: lo protege. Antes de ejecutar una operación cara —o de aceptar el número que devuelve— conviene tener una expectativa del orden de magnitud del resultado. Si el cálculo devuelve algo tres órdenes por encima de la expectativa, hay un error en alguna parte y se busca antes de seguir.

El método de Fermi consiste en descomponer una cantidad difícil en factores que sí se pueden estimar, aceptando que cada factor tendrá error. La clave es que los errores tienden a compensarse: si algunos factores se sobreestiman y otros se subestiman, el producto queda cerca. Enrico Fermi es célebre por haber estimado la potencia de la primera prueba nuclear soltando papelitos y midiendo su desplazamiento.

Redondear a la potencia de 10 más cercana antes de multiplicar convierte cualquier producto en una suma de exponentes, que se hace mentalmente. 4873 × 297 es aproximadamente 5·10³ × 3·10²= 15·10⁵ = 1.5·10⁶, y el valor exacto es 1447281: mismo orden de magnitud, error relativo del 3.6 %. Para decidir si un enfoque es viable, esa precisión sobra.

En la práctica profesional esta habilidad se usa para descartar rápido: si un cálculo de coste de entrenamiento da tres órdenes de magnitud por encima del presupuesto, no hace falta refinarlo. La estimación no responde «cuánto», responde «¿es siquiera posible?».

Ejemplo trabajado

Estimar 4873 × 297 antes de calcularlo.

Estimación:  4873 ≈ 5000 = 5·10³
              297 ≈  300 = 3·10²
              producto ≈ 15·10⁵ = 1.5·10⁶

Exacto:      4873 × 297 = 1 447 281 ≈ 1.45·10⁶

Error relativo = |1.5e6 − 1.447e6| / 1.447e6 = 3.6 %
Mismo orden de magnitud (10⁶)                      ✓

Si el cálculo hubiera devuelto 1.4·10⁵ o 1.4·10⁷, la estimación habría detectado el error de inmediato.

Qué ejecuta el laboratorio

Estimación por orden de magnitud contra el cálculo exacto.

GrupoSalidas
Resultados numéricos (3)exacto, estimado, error_relativo_%
Comprobaciones (1)mismo_orden_de_magnitud
compmath run 014

Errores conceptuales frecuentes

  1. Confundir estimación con cálculo aproximado descuidado: una estimación declara su margen.
  2. Redondear todos los factores en la misma dirección, que amplifica el sesgo en lugar de compensarlo.
  3. Usar la estimación como resultado final en lugar de como control de sanidad.

Dónde se usa

Dimensionar infraestructura, validar la salida de un modelo, revisar un presupuesto y detectar errores de unidad. En entrevistas técnicas es una competencia evaluada explícitamente."

Bibliografía de la clase

015 · Variables como cantidades desconocidas

Parte 00 · clase 15 de 20 · demostración variables

Una incógnita es un valor concreto pero desconocido; las restricciones del problema lo determinan.

ax + b = c  ⟹  x = (c − b)/a,  a ≠ 0
residuo = a·x + b − c  (debe ser 0)

Fundamentos

Introducir una letra para lo que no se conoce es el paso que convierte un acertijo en un problema resoluble. Antes de al-Juarismi —cuyo tratado del siglo IX da nombre al álgebra y al algoritmo— los problemas se resolvían con recetas verbales específicas para cada caso. La letra permite escribir la relación antes de conocer el valor, y luego manipularla mecánicamente.

Conviene distinguir tres papeles que juegan las letras, porque se confunden a menudo: la incógnita tiene un valor concreto que hay que despejar; el parámetro es fijo pero no especificado (la a de ax + b); y la variable recorre un conjunto de valores (la x de una función). Un mismo símbolo puede cambiar de papel según el contexto, y no darse cuenta produce confusiones reales en la parte 02.

Despejar es aplicar operaciones inversas manteniendo la igualdad. Cada paso es legítimo mientras la operación sea reversible: sumar y restar siempre lo son; dividir lo es solo si el divisor no es cero. Ese detalle —a ≠ 0— no es un tecnicismo: si a es cero, la ecuación 0·x = 0 tiene infinitas soluciones y 0·x = 5 no tiene ninguna. Declarar el caso degenerado es parte de resolver.

La verificación es obligatoria y barata: sustituir la solución en la ecuación original y comprobar que el residuo es cero. Es el mismo hábito que en la parte 05 se llamará «comprobar el residuo del sistema lineal» y en la 11, «criterio de parada».

Ejemplo trabajado

Resolver 3x + 7 = 25 y verificar.

3x + 7 = 25
3x     = 25 − 7 = 18        (restar 7 a ambos lados)
 x     = 18/3   = 6          (dividir por 3, válido porque 3 ≠ 0)

Verificación:  3·6 + 7 = 18 + 7 = 25    ✓
Residuo:       3·6 + 7 − 25 = 0         ✓

Casos degenerados:
  0·x = 0  → infinitas soluciones
  0·x = 5  → ninguna solución

Qué ejecuta el laboratorio

Una incógnita convierte una pregunta en una ecuación resoluble.

GrupoSalidas
Resultados numéricos (3)x, verificacion, residuo
Comprobaciones (1)resuelta
compmath run 015

Errores conceptuales frecuentes

  1. Dividir por una expresión que puede ser cero sin declarar el caso.
  2. Aplicar una operación a un solo lado de la igualdad.
  3. Dar la solución sin sustituirla en la ecuación original.

Dónde se usa

Toda resolución de sistemas (parte 05), todo despeje en una derivación (parte 07) y la condición de primer orden ∇f = 0 de la optimización (parte 12) son despejes con más variables."

Bibliografía de la clase

016 · Expresiones y fórmulas

Parte 00 · clase 16 de 20 · demostración formula_evaluation

Una fórmula es una relación entre cantidades con dominio y unidades declarados.

A = πr²  (r > 0, A en unidad²)
P = 2πr  ⟹  A/P = r/2

Fundamentos

Evaluar una fórmula es fácil; usarla bien exige tres cosas que rara vez se escriben: su dominio de validez, las unidades de cada símbolo y los supuestos bajo los que se dedujo. Una fórmula sin esas tres declaraciones es una máquina de producir números plausibles fuera de contexto.

El área del círculo, A = πr², ilustra los tres. Dominio: r > 0, porque un radio negativo no tiene interpretación. Unidades: si r está en metros, A está en metros cuadrados, y esa elevación al cuadrado es lo que hace que duplicar el radio cuadruplique el área —un hecho que sorprende a mucha gente y que se deduce sin calcular nada, solo mirando el exponente.

La relación entre área y perímetro, A/P = r/2, muestra otra habilidad: combinar fórmulas para obtener relaciones que ninguna de las dos expresa por separado. Que el cociente dependa solo de r —y linealmente— dice algo estructural sobre el círculo, no sobre un círculo concreto.

Este es el hábito que la parte 07 formaliza como análisis de sensibilidad: preguntar «¿qué le pasa a la salida si esta entrada cambia un poco?» antes de meter números. El exponente de cada variable responde esa pregunta de forma inmediata: en A = πr², un error del 1 % en r produce aproximadamente un 2 % de error en A.

Ejemplo trabajado

Círculo de radio 2.5 m.

A = π · 2.5² = π · 6.25 ≈ 19.635 m²
P = 2π · 2.5           ≈ 15.708 m

A/P = 19.635 / 15.708 = 1.25 m
r/2 = 2.5/2           = 1.25 m       ✓ (relación estructural)

Sensibilidad: si r sube un 1 % (2.525 m),
  A = π·2.525² ≈ 20.030 m²  → +2.01 %
  el exponente 2 predice el factor de amplificación

Qué ejecuta el laboratorio

Una fórmula evaluada con dominio y unidades declaradas.

GrupoSalidas
Resultados numéricos (5)radio_m, area_m2, perimetro_m, razon_area_perimetro, razon_teorica_r/2
Comprobaciones (1)dominio_valido
compmath run 016

Errores conceptuales frecuentes

  1. Evaluar una fórmula fuera de su dominio (radio negativo, logaritmo de cero).
  2. Olvidar que el área escala con el cuadrado de la longitud y el volumen con el cubo.
  3. Usar una fórmula sin conocer los supuestos bajo los que se dedujo.

Dónde se usa

Cualquier modelo es una fórmula con dominio. El análisis de sensibilidad por exponentes es la versión elemental del gradiente (parte 08) y del número de condición (clase 035)."

Bibliografía de la clase

017 · Patrones, secuencias y regularidades

Parte 00 · clase 17 de 20 · demostración sequences

Detectar una regla en una secuencia es una conjetura; extrapolarla sin justificación es un salto injustificado.

aritmética:  aₙ = a₁ + (n−1)d
geométrica:  aₙ = a₁·rⁿ⁻¹
Fibonacci:   Fₙ = Fₙ₋₁ + Fₙ₋₂,  Fₙ₊₁/Fₙ → φ = (1+√5)/2

Fundamentos

Ver un patrón es barato; demostrarlo no. Dada la secuencia 3, 7, 11, 15, la regla «suma 4» es la más simple, pero infinitas fórmulas producen esos cuatro términos y luego divergen. La matemática distingue entre conjeturar una regla y demostrarla, y esa distinción es el puente entre esta clase y la 091 (inducción).

Las dos familias fundamentales se distinguen por qué operación es constante. En la aritmética lo constante es la diferencia entre términos consecutivos; su crecimiento es lineal. En la geométrica lo constante es la razón; su crecimiento es exponencial. Confundirlas al modelar produce predicciones que fallan por órdenes de magnitud, no por un poco.

Fibonacci añade un tercer tipo: la recurrencia, donde cada término depende de varios anteriores. Su comportamiento asintótico es sorprendente y demostrable: el cociente entre términos consecutivos converge a la razón áurea φ ≈ 1.618, que es la raíz positiva de x² = x + 1. Que una recurrencia de enteros converja a un irracional es un buen ejemplo de que el comportamiento asintótico no se lee en los primeros términos.

El hábito que instala esta clase: al proponer una regla, indicar qué operación permanece constante y hasta dónde se ha verificado. «Suma 4, verificado en 4 términos» es una afirmación honesta; «la regla es sumar 4» no lo es.

Ejemplo trabajado

Tres secuencias y su regla.

Aritmética:  3, 7, 11, 15, 19        diferencia constante = 4
             a₆ = 3 + 5·4 = 23

Geométrica:  2, 6, 18, 54, 162       razón constante = 3
             a₆ = 2·3⁵ = 486

Fibonacci:   1, 1, 2, 3, 5, 8, 13, 21, 34, 55
             55/34 = 1.6176...
             φ     = 1.6180...       converge, no coincide aún

La secuencia aritmética crece 4 por paso; la geométrica multiplica por 3 por paso. En diez pasos la primera llega a 39 y la segunda a 39366.

Qué ejecuta el laboratorio

Detectar la regla de una secuencia y extrapolarla con cuidado.

GrupoSalidas
Resultados numéricos (5)diferencia_comun, siguiente_aritmetica, razon_comun, razon_fib_final, razon_aurea
Comprobaciones (0)
compmath run 017

Errores conceptuales frecuentes

  1. Afirmar una regla como demostrada tras verificar unos pocos términos.
  2. Confundir diferencia constante (lineal) con razón constante (exponencial).
  3. Extrapolar una secuencia empírica fuera del rango observado.

Dónde se usa

Análisis de complejidad (parte 04), crecimiento compuesto (parte 02), series temporales (parte 13) y la lectura de curvas de aprendizaje: distinguir si un error baja linealmente o exponencialmente cambia por completo la decisión."

Bibliografía de la clase

018 · Problemas verbales a lenguaje matemático

Parte 00 · clase 18 de 20 · demostración word_problem

Modelar es traducir un enunciado a ecuaciones declarando qué representa cada símbolo.

sistema 2×2:  x + y = T,   p₁x + p₂y = M
solución:  y = (M − p₁T)/(p₂ − p₁),  x = T − y

Fundamentos

La dificultad de un problema verbal casi nunca está en el álgebra: está en la traducción. El procedimiento fiable tiene cuatro pasos y conviene seguirlos en orden: (1) nombrar las incógnitas con su unidad, (2) escribir una ecuación por cada restricción del enunciado, (3) resolver el sistema, (4) comprobar que la solución tiene sentido en el problema original, no solo en las ecuaciones.

El paso 4 es el que más se omite y el que más errores atrapa. Un sistema puede tener solución matemática y ninguna solución real: si el reparto da −3 unidades de un producto, el modelo es correcto y el enunciado es imposible. Distinguir «no hay solución» de «el modelo está mal» exige volver al enunciado.

Contar restricciones es el control de sanidad previo. Dos incógnitas necesitan dos ecuaciones independientes; con una sola hay infinitas soluciones, y con tres es probable que el sistema sea incompatible. Esta cuenta reaparece en la parte 05 como la relación entre rango, número de incógnitas y existencia de solución.

Polya, en How to Solve It (1945), sistematizó este método en cuatro fases: comprender el problema, concebir un plan, ejecutarlo y examinar la solución. Sigue siendo la mejor descripción del proceso, y su última fase —examinar— es exactamente el paso que la prisa elimina.

Ejemplo trabajado

«Se venden 30 unidades entre dos productos, uno a 1500 y otro a 2500, recaudando 61 000. ¿Cuántas de cada uno?»

Paso 1 — incógnitas con unidad
  x = unidades del producto A
  y = unidades del producto B

Paso 2 — una ecuación por restricción
  x + y = 30                    (total de unidades)
  1500x + 2500y = 61000         (recaudación)

Paso 3 — resolver
  y = (61000 − 1500·30)/(2500 − 1500) = 16000/1000 = 16
  x = 30 − 16 = 14

Paso 4 — comprobar contra el enunciado
  14 + 16 = 30                            ✓
  1500·14 + 2500·16 = 21000 + 40000 = 61000 ✓
  ambas cantidades ≥ 0 → solución factible  ✓

Qué ejecuta el laboratorio

Traducir un enunciado a ecuaciones y resolverlo.

GrupoSalidas
Resultados numéricos (4)unidades_producto_a, unidades_producto_b, verificacion_unidades, verificacion_dinero
Comprobaciones (1)solucion_valida
compmath run 018

Errores conceptuales frecuentes

  1. Empezar a operar antes de nombrar las incógnitas y sus unidades.
  2. Escribir menos ecuaciones que incógnitas y no notar que el problema queda indeterminado.
  3. Aceptar una solución matemáticamente válida pero imposible en el problema (cantidades negativas).

Dónde se usa

Es la habilidad central del modelado: formular un problema real como un objeto matemático. Reaparece en cada capstone del programa, y en la parte 12 como la construcción de la función objetivo y sus restricciones."

Bibliografía de la clase

019 · Comprobación y contraejemplos

Parte 00 · clase 19 de 20 · demostración counterexample

Un contraejemplo refuta una afirmación universal; ninguna cantidad de confirmaciones la demuestra.

¬(∀x P(x)) ⟺ ∃x ¬P(x)
n² + n + 41 es primo para n = 0..39, compuesto para n = 40

Fundamentos

La asimetría entre verificar y demostrar es el contenido de esta clase, y es la lección más transferible de toda la parte. Una afirmación universal —«para todo n se cumple P(n)»— no queda demostrada por muchos casos favorables, pero queda refutada por uno solo desfavorable. Verificar y demostrar son operaciones de coste y de valor radicalmente distintos.

El polinomio de Euler n² + n + 41 es el ejemplo canónico. Produce números primos para n = 0, 1, 2, ..., 39: cuarenta confirmaciones consecutivas, más de las que cualquiera revisaría antes de convencerse. Y falla en n = 40, donde vale 40² + 40 + 41 = 1681 = 41². La razón es visible en retrospectiva: al sustituir n = 41 (o 40) aparece el factor 41 explícitamente.

Trasladado al software, esto es exactamente la relación entre pruebas y corrección: «los tests pasan» significa que no se encontró contraejemplo en los casos probados, no que el código sea correcto. Dijkstra lo formuló en 1970 con una frase que resume la clase: las pruebas pueden mostrar la presencia de errores, nunca su ausencia.

La estrategia práctica que se deriva es contraintuitiva y muy eficaz: al evaluar una afirmación propia, buscar activamente el caso que la rompa en lugar de acumular casos que la confirmen. Los casos límite —cero, negativos, vacío, uno, el máximo representable— son donde viven los contraejemplos.

Ejemplo trabajado

La conjetura de Euler y su caída.

n:   0  1  2  3  ...  38  39   |  40
n²+n+41: 41 43 47 53 ... 1523 1601  |  1681

n = 0..39  → los 40 valores son primos
n = 40     → 1681 = 41 × 41       ✗ COMPUESTO

Regla:  40 confirmaciones no demuestran
        1 contraejemplo refuta

Nótese que el contraejemplo no requiere teoría avanzada: requiere seguir probando cuando ya «parecía» cierto.

Qué ejecuta el laboratorio

Una conjetura plausible destruida por un único contraejemplo.

GrupoSalidas
Resultados numéricos (4)casos_favorables_consecutivos, primer_contraejemplo_n, valor_en_el_contraejemplo, factor
Comprobaciones (0)
compmath run 019

Errores conceptuales frecuentes

  1. Concluir que una afirmación es cierta porque no se encontró contraejemplo en pocos casos.
  2. Probar solo casos favorables o típicos, evitando los límites.
  3. Confundir «los tests pasan» con «el código es correcto».

Dónde se usa

Diseño de pruebas, validación de modelos y evaluación de resultados publicados. En la parte 10 reaparece como la lógica de las pruebas de hipótesis: no se demuestra H₁, se rechaza H₀."

Bibliografía de la clase

020 · Capstone: modelar un problema cotidiano con matemáticas

Parte 00 · clase 20 de 20 · demostración capstone_budget_model

Modelar un presupuesto integra dinero exacto, porcentajes, redondeo y verificación en un solo problema.

Σ pᵢ = 1  (los porcentajes deben sumar la unidad)
descuadre = ingreso − Σ redondeo(ingreso · pᵢ)

Fundamentos

El capstone reúne todo lo de la parte en un problema con consecuencias reales: repartir un ingreso en categorías según porcentajes. Parece trivial y contiene tres trampas que las clases anteriores anticiparon.

La primera: los porcentajes deben sumar exactamente 1. Comprobarlo con Decimal es trivial; comprobarlo con float no lo es, porque 0.35 + 0.20 + 0.10 + 0.20 + 0.15 puede no dar exactamente 1.0 en binario. Esta es la primera vez en el programa que la representación numérica cambia el resultado de una comprobación lógica.

La segunda: redondear cada categoría a la unidad monetaria hace que la suma de las partes no coincida con el total. El descuadre es pequeño pero sistemático, y cualquier sistema contable real necesita una política explícita para él: asignar el resto a una categoría, distribuirlo, o llevar el redondeo por acumulación. No decidir es también una decisión, y produce descuadres impredecibles.

La tercera: proyectar hacia el futuro. «¿Cuántos meses para ahorrar 5 millones?» es una división, pero su resultado es un número real y la respuesta es un entero de meses —hay que redondear hacia arriba, porque a mitad de mes no se ha ahorrado la cantidad—. Elegir la dirección del redondeo según el significado del problema, y no según la costumbre, es la competencia que cierra la parte.

Ejemplo trabajado

Repartir un ingreso de 1 250 000 en cinco categorías.

categoría      %      importe (Decimal, redondeado a 1)
vivienda      35 %      437 500
alimentación  20 %      250 000
transporte    10 %      125 000
ahorro        20 %      250 000
otros         15 %      187 500
─────────────────────────────────
suma %       100 %  ✓
suma importes        1 250 000
descuadre                    0    (aquí los porcentajes dan exactos)

Meses para ahorrar 5 000 000 con 250 000/mes:
  5 000 000 / 250 000 = 20 meses exactos
  (si diera 20.3, la respuesta operativa sería 21)

Con porcentajes como 1/3 el descuadre aparece y hay que decidir dónde va el resto.

Qué ejecuta el laboratorio

Capstone: modelar un presupuesto con dinero exacto y proporciones.

GrupoSalidas
Resultados numéricos (4)ingreso, total_asignado, descuadre_por_redondeo, meses_para_ahorrar_5M
Comprobaciones (1)porcentajes_suman_1
compmath run 020

Errores conceptuales frecuentes

  1. Comprobar que los porcentajes suman 1 usando float y == en lugar de Decimal.
  2. No definir una política para el descuadre por redondeo.
  3. Redondear hacia abajo un número de periodos: a los 20.3 meses aún no se alcanzó la meta.

Dónde se usa

Contabilidad, presupuestos personales y empresariales, reparto de costes entre equipos y prorrateo de recursos en la nube. La política de descuadre es un requisito real en cualquier sistema de facturación."

Bibliografía de la clase

Parte 01 — Aritmética computacional y representación numérica

Nivel basico-computacional · 20 clases · 80 horas · motor part01

Qué es realmente un número dentro de una máquina: bits, complemento a dos, IEEE 754, error, condicionamiento y estabilidad.

Esta es la parte que más cambia la forma de programar de quien la estudia, y la que casi ningún curso de matemáticas incluye. La pregunta central es incómoda: ¿qué es realmente un número dentro de una máquina? La respuesta —una cadena finita de bits con una interpretación acordada— tiene consecuencias que aparecen en producción a las tres de la mañana.

El recorrido va de lo discreto a lo continuo. Las clases 021 a 026 tratan los enteros: cuántos valores caben en un ancho de palabra, cómo se representan los negativos con complemento a dos y qué ocurre cuando una suma se sale del rango. Python oculta este problema porque sus enteros son de precisión arbitraria, pero NumPy, C, Rust y cualquier base de datos no lo hacen, y el desbordamiento silencioso es un error de seguridad clásico.

Las clases 027 a 033 son el núcleo: IEEE 754. Un float64 no es un número real: es un racional binario con 53 bits de mantisa. De ahí se derivan, con necesidad lógica, los fenómenos que parecen fallos y no lo son: 0.1 + 0.2 != 0.3, la suma que deja de ser asociativa, el epsilon de máquina, los subnormales y el NaN. Goldberg escribió en 1991 el artículo que sigue siendo la referencia; esta parte es su versión ejecutable.

Las clases 034 a 036 introducen la distinción que separa a quien depura numéricamente de quien adivina: condicionamiento es una propiedad del problema, estabilidad es una propiedad del algoritmo. Un problema mal condicionado no tiene algoritmo estable que lo salve; un algoritmo inestable estropea un problema bien condicionado. Confundirlos lleva a buscar el error en el sitio equivocado.

El cierre (037 a 039) da las salidas: Decimal cuando hace falta exactitud decimal, Fraction cuando hace falta exactitud racional, y las condiciones bajo las que un resultado numérico es reproducible entre máquinas. El capstone construye un auditor que mide cuántos dígitos significativos pierde cada forma de escribir una expresión.

En IA esta parte es cotidiana aunque nadie la nombre: float32, bfloat16, la cuantización a int8, los NaN que aparecen en la época 3, el epsilon dentro de cada LayerNorm y el motivo por el que dos entrenamientos con la misma semilla dan resultados distintos en GPU. Todo eso es esta parte.

Ideas centrales

Por qué importa en IA

float32, bfloat16 y la cuantización a int8 son decisiones de representación. Los NaN en un entrenamiento casi siempre nacen aquí, no en la arquitectura.

Errores frecuentes de la parte

Glosario de la parte (18 términos)

TérminoDefiniciónClase
Base posicionalSistema en el que el valor de un dígito depende de su posición. Cambiar de base no cambia la cantidad, solo su escritura.023
BitUnidad mínima de información: dos estados posibles. n bits codifican 2ⁿ valores distintos.021
Cancelación catastróficaPérdida masiva de dígitos significativos al restar dos números casi iguales. No lanza excepción.032
Complemento a dosCodificación de enteros con signo en la que el negativo de x es 2ⁿ − x. Permite sumar positivos y negativos con el mismo circuito.025
Epsilon de máquinaMenor ε tal que 1 + ε ≠ 1. En float64 vale 2⁻⁵² ≈ 2.22e−16.031
Error absolutoDiferencia |aproximado − exacto|. Depende de la escala y no es comparable entre magnitudes distintas.030
Error relativoError absoluto dividido por el valor exacto. Es la magnitud que se propaga y la que define la precisión.030
Estabilidad numéricaPropiedad de un algoritmo que no amplifica los errores de redondeo más allá de lo que el problema exige.036
Exponente sesgadoExponente almacenado con un desplazamiento (1023 en float64) para poder representarlo sin signo.028
MantisaParte significativa de un número en punto flotante. Determina la precisión relativa, no el rango.028
Número de condiciónFactor por el que un problema amplifica el error relativo de la entrada. Es propiedad del problema.035
OverflowResultado que excede el rango representable. En ancho fijo produce wraparound silencioso, no una excepción.026
Precisión arbitrariaAritmética cuya precisión se declara y no está limitada por el hardware, a cambio de velocidad.037
Punto fijoRepresentación con número fijo de decimales, típicamente enteros de la unidad mínima (centavos). Exacta dentro de su rango.027
Reproducibilidad numéricaPropiedad de un cálculo que devuelve bit a bit el mismo resultado. Exige fijar el orden de las operaciones, no solo la semilla.039
SubnormalNúmero flotante menor que el mínimo normal, representado con mantisa desnormalizada y precisión reducida.033
Suma compensadaTécnica (Kahan, o math.fsum) que arrastra el error de redondeo para que la suma de muchos términos conserve precisión.034
ULPUnit in the Last Place: distancia entre un float y su vecino. Depende de la magnitud del número.031

Bibliografía de la parte

021 · Bits, bytes y sistemas de numeración

Parte 01 · clase 1 de 20 · demostración bits_and_bytes

Con n bits se codifican exactamente 2ⁿ valores distintos; el ancho de palabra fija el rango, no la precisión.

valores representables con n bits = 2ⁿ
bits necesarios para k valores = ⌈log₂ k⌉

Fundamentos

Un bit distingue dos estados. Dos bits distinguen cuatro, porque cada estado del primero se combina con cada estado del segundo. La regla del producto —que la clase 087 formalizará como combinatoria— da directamente 2ⁿ para n bits, y esa cuenta es la base de todo dimensionamiento en computación.

La relación inversa importa igual: para representar k valores distintos hacen falta ⌈log₂ k⌉ bits. Un millón de valores necesita 20 bits; mil millones, 30. El logaritmo convierte una multiplicación de posibilidades en una suma de bits, y por eso la información se mide en bits (clase 262): es la unidad natural en la que las posibilidades se suman.

Los anchos habituales no son arbitrarios: 8, 16, 32 y 64 bits corresponden a las unidades que el hardware manipula de una vez. Elegir el ancho es elegir un compromiso entre rango y memoria. En deep learning esa elección es un tema activo: pasar de float32 a bfloat16 reduce a la mitad la memoria de activaciones y permite lotes mayores, a costa de precisión.

Conviene separar desde ya dos cosas que el ancho de palabra confunde: cuántos valores distintos caben (rango) y cuán juntos están (precisión). Un int32 y un float32 ocupan lo mismo y representan cosas radicalmente distintas: el entero cubre un rango pequeño con espaciado uniforme de 1; el flotante cubre un rango enorme con espaciado variable.

Ejemplo trabajado

Cuántos bits hacen falta y cuántos valores caben.

ancho    valores representables
1 bit                       2
1 byte                    256
16 bits                65 536
32 bits         4 294 967 296
64 bits    1.8446744e19

Para 1000 valores:      ⌈log₂ 1000⌉  = 10 bits   (2¹⁰ = 1024 ≥ 1000)
Para 1 000 000 valores: ⌈log₂ 10⁶⌉   = 20 bits   (2²⁰ = 1 048 576)

Observa el salto: duplicar los bits no duplica los valores, los eleva al cuadrado. De 32 a 64 bits no hay «el doble de números»: hay 4·10⁹ veces más.

Qué ejecuta el laboratorio

Cuántos valores distintos codifica cada ancho de palabra.

GrupoSalidas
Resultados numéricos (7)valores_por_bit, valores_en_1_byte, valores_en_16_bits, valores_en_32_bits, valores_en_64_bits, bits_para_1000_valores, bits_para_1_millon
Comprobaciones (0)
compmath run 021

Errores conceptuales frecuentes

  1. Confundir rango (cuántos valores caben) con precisión (cuán juntos están).
  2. Suponer que 2ⁿ bits representan 2n valores en lugar de 2^(2n).
  3. Elegir el ancho por costumbre en lugar de por el rango real que necesita el dato.

Dónde se usa

Diseño de esquemas de base de datos, formatos binarios, cuantización de modelos y dimensionamiento de índices. La elección float32 frente a bfloat16 en entrenamiento es exactamente esta decisión.

Bibliografía de la clase

022 · Conversión decimal a binario

Parte 01 · clase 2 de 20 · demostración decimal_to_binary

Convertir a binario es dividir sucesivamente por 2 y leer los restos en orden inverso.

n = Σ bᵢ·2ⁱ  con bᵢ ∈ {0,1}
restos de n/2 leídos de abajo arriba = representación binaria

Fundamentos

El algoritmo de divisiones sucesivas no es un truco: es la construcción directa de la representación posicional. Al dividir n entre 2, el resto es el bit menos significativo —dice si n es par o impar— y el cociente es el número «desplazado un bit a la derecha». Repetir hasta llegar a cero produce todos los bits, del menos al más significativo, y por eso se leen al revés.

La representación es única: todo entero positivo tiene exactamente una escritura en base 2. Esa unicidad es la que permite que dos máquinas distintas interpreten los mismos bits como el mismo número, y es la que se pierde en punto flotante, donde varios reales distintos comparten representación.

El mismo algoritmo funciona en cualquier base cambiando el divisor. En base 16 los restos van de 0 a 15 y se escriben con dígitos hexadecimales; en base 8, de 0 a 7. La clase 023 explota que 16 y 8 son potencias de 2 para convertir sin dividir.

Un detalle práctico: Python trae la conversión en format(n, "b") y int(s, 2), pero implementarla a mano una vez deja claro por qué el bit menos significativo es la paridad, hecho que se usará constantemente en la parte 04 (aritmética modular) y en cualquier manipulación de bits.

Ejemplo trabajado

Convertir 156 a binario por divisiones sucesivas.

156 / 2 = 78  resto 0    ← bit menos significativo
 78 / 2 = 39  resto 0
 39 / 2 = 19  resto 1
 19 / 2 =  9  resto 1
  9 / 2 =  4  resto 1
  4 / 2 =  2  resto 0
  2 / 2 =  1  resto 0
  1 / 2 =  0  resto 1    ← bit más significativo

Leídos de abajo arriba: 10011100

Verificación: 128 + 16 + 8 + 4 = 156   ✓
              (2⁷ + 2⁴ + 2³ + 2²)

Qué ejecuta el laboratorio

Divisiones sucesivas frente a la conversión de la biblioteca.

GrupoSalidas
Resultados numéricos (2)decimal, reconstruido
Comprobaciones (1)coinciden
compmath run 022

Errores conceptuales frecuentes

  1. Leer los restos en el orden en que salen en lugar de invertirlos.
  2. Olvidar que el último resto (el del cociente 1) también forma parte del número.
  3. No verificar reconstruyendo con las potencias de 2.

Dónde se usa

Máscaras de bits, permisos de sistema de archivos, banderas de configuración, direcciones de red y cualquier serialización binaria. Es el prerrequisito de la representación IEEE 754.

Bibliografía de la clase

023 · Binario, octal y hexadecimal

Parte 01 · clase 3 de 20 · demostración bases

Hexadecimal y octal son taquigrafías de binario porque 16 y 8 son potencias de 2.

1 dígito hexadecimal = 4 bits
1 dígito octal = 3 bits

Fundamentos

Los programadores usan hexadecimal por una razón puramente práctica: cada dígito hexadecimal corresponde exactamente a 4 bits, así que convertir entre binario y hex se hace por grupos, sin dividir nada. 1101 0110 es D6 porque 1101 es 13 (D) y 0110 es 6. En octal ocurre lo mismo con grupos de 3 bits.

Esta correspondencia solo funciona porque 16 = 2⁴ y 8 = 2³. Con base 10 no hay agrupación posible, y por eso convertir decimal ↔ binario requiere el algoritmo de divisiones de la clase 022 mientras que hex ↔ binario es una tabla de 16 entradas.

El hexadecimal es además compacto: un byte se escribe con dos dígitos en lugar de ocho, y una dirección de 32 bits con ocho en lugar de treinta y dos. Por eso aparece en direcciones de memoria, colores CSS (#7c5cff son tres bytes), UUID, hashes y volcados de memoria.

Al leer código conviene reconocer los prefijos: 0b para binario, 0o para octal, 0x para hexadecimal. Python los acepta todos y int(s, base) convierte desde cualquier base entre 2 y 36. Los permisos de Unix (chmod 755) son octal precisamente porque cada dígito codifica tres bits de permiso: lectura, escritura y ejecución.

Ejemplo trabajado

El mismo número en cuatro bases.

decimal      3 735 928 559
hexadecimal  deadbeef
octal        33653337357
binario      11011110101011011011111011101111

Agrupación hex ← binario (grupos de 4, desde la derecha):
  1101 1110 1010 1101 1011 1110 1110 1111
     d    e    a    d    b    e    e    f     ✓

Bits necesarios: 32

deadbeef es un valor centinela clásico en depuración: es hexadecimal legible y difícilmente aparece por accidente en memoria.

Qué ejecuta el laboratorio

La misma cantidad en base 2, 8, 10 y 16.

GrupoSalidas
Resultados numéricos (4)decimal, digitos_binarios, un_hex_equivale_a_bits, un_octal_equivale_a_bits
Comprobaciones (0)
compmath run 023

Errores conceptuales frecuentes

  1. Agrupar los bits desde la izquierda en lugar de desde la derecha.
  2. Confundir el prefijo 0o (octal) con un cero seguido de la letra o.
  3. Suponer que la agrupación por dígitos funciona con base 10.

Dónde se usa

Direcciones de memoria, colores, hashes, UUID, permisos Unix y protocolos binarios. Leer un volcado hexadecimal es una habilidad de depuración básica.

Bibliografía de la clase

024 · Aritmética binaria

Parte 01 · clase 4 de 20 · demostración binary_arithmetic

La aritmética binaria es la decimal con acarreo en base 2; los desplazamientos multiplican y dividen por potencias de 2.

x << k = x · 2ᵏ
x >> k = ⌊x / 2ᵏ⌋  (para x ≥ 0)
x & (x−1) apaga el bit menos significativo encendido

Fundamentos

Sumar en binario funciona igual que en decimal: se suma columna a columna y se arrastra el acarreo. La única diferencia es que el acarreo salta cuando la suma llega a 2 en lugar de a 10. Esta simplicidad es la razón por la que el hardware usa base 2: un sumador completo de un bit cabe en unas pocas puertas lógicas.

Los desplazamientos son la operación más barata de un procesador y equivalen a multiplicar o dividir por potencias de 2. x << 3 es x · 8, y x >> 1 es la división entera por 2. Los compiladores hacen esta sustitución automáticamente, pero reconocerla ayuda a leer código de bajo nivel y algoritmos de hashing.

Las operaciones bit a bit —AND, OR, XOR— actúan sobre cada posición de forma independiente, sin acarreo. AND enmascara (deja pasar solo los bits marcados), OR activa, XOR conmuta. XOR tiene una propiedad que se usa constantemente en criptografía: es su propia inversa, (a ^ b) ^ b = a.

Un idiom que conviene conocer: x & (x−1) apaga el bit encendido más a la derecha, porque restar 1 invierte ese bit y todos los ceros a su derecha. Contar cuántas veces se puede aplicar antes de llegar a cero cuenta los bits encendidos (popcount), y esa cuenta aparece en distancias de Hamming y en índices de bases de datos.

Ejemplo trabajado

Operaciones sobre a = 1011₂ (11) y b = 0110₂ (6).

a      = 1011   (11)
b      = 0110   (6)

a + b  = 10001  (17)     acarreo hasta el quinto bit
a & b  = 0010   (2)      solo donde ambos tienen 1
a | b  = 1111   (15)     donde alguno tiene 1
a ^ b  = 1101   (13)     donde difieren

a << 2 = 101100 (44)     = 11 · 4    ✓
a >> 1 = 101    (5)      = ⌊11/2⌋    ✓

Verificación XOR:  (a ^ b) ^ b = 1101 ^ 0110 = 1011 = a   ✓

Qué ejecuta el laboratorio

Suma y desplazamiento en binario, con acarreo visible.

GrupoSalidas
Resultados numéricos (2)a<<2 (multiplica por 4), a>>1 (divide por 2)
Comprobaciones (0)
compmath run 024

Errores conceptuales frecuentes

  1. Usar >> con enteros negativos esperando división truncada hacia cero: en Python trunca hacia −∞.
  2. Confundir & (bit a bit) con and (lógico) o | con or.
  3. Suponer que << nunca desborda: en ancho fijo los bits que salen se pierden.

Dónde se usa

Hashing, compresión, criptografía, banderas de configuración, índices de bitmap y optimización de bucles. La distancia de Hamming entre dos cadenas de bits es el popcount de su XOR.

Bibliografía de la clase

025 · Enteros con signo y complemento a dos

Parte 01 · clase 5 de 20 · demostración twos_complement

En complemento a dos, el negativo de x es 2ⁿ − x, y por eso la resta se implementa con el mismo sumador que la suma.

representación de −x en n bits = 2ⁿ − x
rango: [−2ⁿ⁻¹, 2ⁿ⁻¹ − 1]

Fundamentos

La razón por la que existe el complemento a dos es de ingeniería, no de matemáticas: permite que un único circuito sumador maneje positivos y negativos sin casos especiales. Si −x se representa como 2ⁿ − x, entonces a + (−b) calculado módulo 2ⁿ da exactamente a − b cuando el resultado está en rango. La resta desaparece como operación separada.

Las alternativas históricas —signo-magnitud y complemento a uno— tenían dos representaciones para el cero (+0 y −0), lo que obliga a casos especiales en las comparaciones. El complemento a dos tiene un único cero, y como contrapartida un rango asimétrico: en 8 bits va de −128 a +127, un negativo más que positivos.

Esa asimetría no es una curiosidad. abs(-128) en un int8 no es representable, así que desborda; en NumPy, np.abs(np.int8(-128)) devuelve −128 sin avisar. El mismo fenómeno afecta a -x y a la división x // -1. Es una fuente real de errores en código que procesa datos de sensores o audio en enteros.

El bit más significativo actúa como bit de signo, pero no es «un bit de signo» en el sentido de signo-magnitud: su peso es −2ⁿ⁻¹. Interpretar 11111011 como número requiere −128 + 64 + 32 + 16 + 8 + 2 + 1 = −5, no «signo negativo y magnitud 123».

Ejemplo trabajado

Representación en 8 bits y suma con signos opuestos.

+5  = 00000101
−5  = 2⁸ − 5 = 251 = 11111011

Suma 5 + (−5):
  00000101
+ 11111011
-----------
 100000000   → se descarta el noveno bit (módulo 2⁸)
  00000000   = 0   ✓

Decodificar 11111011:
  −128 + 64 + 32 + 16 + 8 + 0 + 2 + 1 = −5   ✓

Rango:  mínimo −128,  máximo +127
Asimetría: |−128| = 128 NO es representable en int8

Qué ejecuta el laboratorio

Representación de negativos en 8 bits.

GrupoSalidas
Resultados numéricos (4)ancho_bits, decodifica_11111011, minimo_representable, maximo_representable
Comprobaciones (0)
compmath run 025

Errores conceptuales frecuentes

  1. Interpretar el bit más significativo como signo y el resto como magnitud.
  2. Suponer que abs(x) siempre es representable: abs(−128) desborda en int8.
  3. Olvidar el módulo 2ⁿ al sumar: el bit que se sale no es un error, es la definición.

Dónde se usa

Todo entero con signo en C, Rust, Java, NumPy y bases de datos. Los errores de desbordamiento por complemento a dos son una categoría reconocida de vulnerabilidad (CWE-190).

Bibliografía de la clase

026 · Rango, overflow y wraparound

Parte 01 · clase 6 de 20 · demostración overflow_wraparound

En ancho fijo, superar el máximo no lanza excepción: el valor da la vuelta al rango.

resultado = (a + b) mod 2ⁿ, reinterpretado con signo
int8: 127 + 1 = −128

Fundamentos

El desbordamiento en enteros de ancho fijo es silencioso por diseño: el hardware calcula módulo 2ⁿ y descarta los bits que sobran. No hay excepción, no hay aviso, y el programa continúa con un valor que puede tener el signo contrario al esperado. Es una de las pocas situaciones en computación donde un error grave no produce ninguna señal.

Python es la excepción cómoda: sus enteros crecen indefinidamente, limitados solo por la memoria. Esa comodidad esconde el problema hasta que el mismo cálculo pasa a NumPy (donde int32 sí desborda), a una base de datos, a un servicio en otro lenguaje o a un modelo cuantizado. La lección de esta clase es que la ausencia de desbordamiento en Python no es una propiedad del algoritmo: es una propiedad del intérprete.

Los casos históricos abundan. El vuelo inaugural del Ariane 5 en 1996 se destruyó por una conversión de un flotante de 64 bits a un entero con signo de 16 bits cuyo valor no cabía. El «problema del año 2038» es el desbordamiento de un time_t de 32 bits contando segundos desde 1970.

La defensa práctica tiene tres capas: elegir el ancho con margen sobre el rango real, validar los límites en las fronteras del sistema, y usar tipos con detección de desbordamiento donde el lenguaje los ofrezca (checked_add en Rust, -ftrapv en C).

Ejemplo trabajado

Wraparound en int8 simulado sobre Python.

máximo int8            127
127 + 1  →  wraparound  −128       (no 128)
127 + 2  →  wraparound  −127

En Python nativo:
127 + 1 = 128                       (int ilimitado)
sys.maxsize = 9223372036854775807   (tamaño del puntero, no un límite del int)

Lección: Python no desborda, C y NumPy sí.
El algoritmo es el mismo; el resultado, no.

Qué ejecuta el laboratorio

Wraparound en enteros de ancho fijo simulado sobre Python.

GrupoSalidas
Resultados numéricos (5)maximo_int8, maximo+1_con_wraparound, maximo+2_con_wraparound, python_int_es_ilimitado, sys_maxsize
Comprobaciones (0)
compmath run 026

Errores conceptuales frecuentes

  1. Probar un algoritmo solo en Python y asumir que no desborda en otro lenguaje.
  2. Confiar en que un valor «nunca será tan grande» sin validarlo en la frontera del sistema.
  3. Confundir sys.maxsize con un límite del tipo int de Python: es el tamaño del puntero.

Dónde se usa

Contadores, marcas de tiempo, identificadores, acumuladores de métricas y cualquier dato que cruza la frontera entre Python y un sistema de ancho fijo. Es una categoría reconocida de vulnerabilidad de seguridad.

Bibliografía de la clase

027 · Punto fijo frente a punto flotante

Parte 01 · clase 7 de 20 · demostración fixed_vs_floating

El punto fijo reparte la precisión de forma uniforme; el flotante la reparte proporcionalmente a la magnitud.

punto fijo: valor = entero · 10⁻ᵏ (exacto en su rango)
punto flotante: valor = mantisa · 2^exponente (precisión relativa constante)

Fundamentos

Las dos representaciones responden a necesidades distintas. En punto fijo se guarda un entero y se acuerda dónde está la coma: el dinero se guarda en centavos, y todas las operaciones son aritmética entera exacta. El espaciado entre valores representables es constante —un centavo— en todo el rango.

En punto flotante se guarda una mantisa y un exponente, y el espaciado crece con la magnitud: cerca de 1 los floats están separados por unos 2⁻⁵², y cerca de 10⁶ por unos 2⁻³². Eso significa precisión relativa constante: siempre unos 16 dígitos significativos, independientemente de la escala. Es la elección correcta para magnitudes físicas que abarcan muchos órdenes de magnitud.

La consecuencia para dinero es directa y conocida: sumar 0.1 diez veces en float no da exactamente 1.0, porque 0.1 no es representable en binario. Sumar 10 veces el entero 10 (centavos) da exactamente 100. Por eso todo sistema contable serio trabaja en punto fijo o con Decimal.

El criterio para elegir: si los valores tienen una unidad mínima natural y las comparaciones exactas importan (dinero, contadores, índices), punto fijo. Si los valores abarcan varios órdenes de magnitud y lo que importa es la precisión relativa (física, estadística, gradientes), punto flotante.

Ejemplo trabajado

Sumar diez veces una décima por los dos caminos.

Punto flotante:
  0.0 + 0.1 repetido 10 veces = 0.9999999999999999
  ¿es exactamente 1.0?  No
  error = 1.11e−16

Punto fijo (centavos como enteros):
  0 + 10 repetido 10 veces = 100
  100 / 100 = 1.0
  exacto: sí, porque toda la aritmética fue entera

El error del flotante es minúsculo. El problema no es su tamaño: es que rompe la comparación total == 1.0, que es exactamente la que hace un sistema de facturación.

Qué ejecuta el laboratorio

Punto fijo (centavos enteros) frente a punto flotante.

GrupoSalidas
Resultados numéricos (4)suma_float_de_0.1_x10, error, suma_en_centavos_enteros, centavos_a_unidades
Comprobaciones (2)es_exactamente_1.0, punto_fijo_exacto
compmath run 027

Errores conceptuales frecuentes

  1. Usar float para dinero y comparar totales con ==.
  2. Suponer que el punto fijo es siempre mejor: pierde rango y no sirve para magnitudes físicas.
  3. Redondear a dos decimales al final y creer que eso corrige el error acumulado.

Dónde se usa

Contabilidad, facturación e inventario en punto fijo; física, estadística y deep learning en punto flotante. La cuantización de modelos a int8 es una vuelta al punto fijo por razones de memoria.

Bibliografía de la clase

028 · IEEE 754: estructura de un float

Parte 01 · clase 8 de 20 · demostración ieee754_layout

Un float64 es signo, exponente sesgado de 11 bits y mantisa de 52 bits con un 1 implícito.

valor = (−1)^s · (1 + m/2⁵²) · 2^(e − 1023)
float64: 1 bit de signo + 11 de exponente + 52 de mantisa = 64

Fundamentos

El estándar IEEE 754, publicado en 1985 y revisado en 2019, unificó lo que antes era un caos de formatos incompatibles entre fabricantes. Su diseño responde a una idea: guardar un número en notación científica binaria, con la mantisa normalizada al intervalo [1, 2) para que el primer bit sea siempre 1 y no haga falta almacenarlo. Ese «bit implícito» regala un bit de precisión gratis.

Los tres campos tienen papeles distintos. El signo es un bit. El exponente se guarda sesgado (sumándole 1023 en float64) para poder representar exponentes negativos sin necesitar un signo propio; con 11 bits cubre de 2⁻¹⁰²² a 2¹⁰²³, es decir de 10⁻³⁰⁸ a 10³⁰⁸ aproximadamente. La mantisa de 52 bits (más el implícito, 53 efectivos) determina la precisión: log₁₀(2⁵³) ≈ 15.95 dígitos decimales.

Los valores extremos del exponente están reservados: todo ceros indica cero o subnormal, todo unos indica infinito o NaN. Por eso existen +inf, -inf y NaN como valores de primera clase en lugar de como errores, lo que permite que un cálculo continúe y el problema se detecte al final.

Reconstruir un float a mano desde sus bits, como hace el laboratorio, deja claro que no hay nada mágico: es notación científica en base 2 con un formato de empaquetado acordado. Y explica de inmediato por qué la precisión es relativa: los 53 bits de mantisa siempre representan los mismos dígitos significativos, sea cual sea el exponente.

Ejemplo trabajado

Descomponer −6.25 en float64.

−6.25 en binario = −110.01₂ = −1.1001₂ × 2²

signo    s = 1                        (negativo)
exponente e = 2 + 1023 = 1025 = 10000000001₂
mantisa   m = 1001000...0   (el 1 inicial es implícito)

Reconstrucción:
  (−1)¹ · (1 + m/2⁵²) · 2^(1025−1023)
= −1 · 1.5625 · 4
= −6.25   ✓

Precisión: 53 bits ⇒ log₁₀(2⁵³) ≈ 15.95 dígitos decimales
Rango:     exponente de −1022 a 1023 ⇒ ~1e−308 a ~1e308

Qué ejecuta el laboratorio

Signo, exponente y mantisa de un float64.

GrupoSalidas
Resultados numéricos (5)valor, exponente_bruto, sesgo, exponente_real, reconstruido
Comprobaciones (0)
compmath run 028

Errores conceptuales frecuentes

  1. Confundir precisión (mantisa, ~16 dígitos) con rango (exponente, ~1e±308).
  2. Olvidar el sesgo del exponente al leer los bits.
  3. Suponer que más bits de exponente dan más precisión: dan más rango.

Dónde se usa

Es el formato de casi todo cálculo científico. Entenderlo explica float32 (24 bits de mantisa), bfloat16 (8 bits de mantisa pero el mismo rango que float32, por eso se usa en entrenamiento) y float16 (10 bits, rango reducido).

Bibliografía de la clase

029 · Por qué 0.1 + 0.2 no es exactamente 0.3

Parte 01 · clase 9 de 20 · demostración why_point_one

0.1 no es representable en binario, igual que 1/3 no lo es en decimal; la desigualdad no es un fallo sino una consecuencia.

0.1₁₀ = 0.0001100110011...₂  (periódico infinito)
comparación correcta: math.isclose(a, b, rel_tol=...)

Fundamentos

La clase 004 estableció que una fracción tiene desarrollo finito solo si su denominador reducido se factoriza en los primos de la base. En base 10 los primos son 2 y 5, y por eso 1/10 es finito. En base 2 el único primo es 2, así que 1/10 —cuyo denominador contiene un 5— tiene desarrollo binario periódico infinito.

Como la mantisa tiene 53 bits, ese desarrollo se trunca. El float más cercano a 0.1 es en realidad 0.1000000000000000055511151231257827021181583404541015625. Sumar dos aproximaciones y compararlas con la aproximación de 0.3 no tiene por qué dar igualdad, y de hecho no la da: la diferencia es de unos 5.5·10⁻¹⁷.

La conclusión correcta no es «los floats están rotos». Es que el operador == no es la comparación adecuada para resultados de cálculo en punto flotante. La comparación correcta declara una tolerancia: math.isclose(a, b, rel_tol=1e-12) pregunta si los dos números coinciden dentro de una precisión relativa declarada, que es la pregunta que realmente se quiere responder.

Hay una excepción importante: comparar con == sí es correcto cuando los valores son exactamente representables y no han pasado por operaciones inexactas —enteros pequeños, potencias de 2, resultados de asignaciones directas—. La regla práctica es preguntarse si el valor viene de un cálculo; si viene, hace falta tolerancia.

Ejemplo trabajado

La desigualdad y su explicación.

0.1 + 0.2 = 0.30000000000000004
0.3       = 0.29999999999999998889776975374843...
¿iguales con ==?           No
diferencia                 5.55e−17

0.1 con 50 decimales:
  0.10000000000000000555111512312578270211815834045410

Comparación correcta:
  math.isclose(0.1 + 0.2, 0.3, rel_tol=1e-12)  →  True

El error es de 5.5·10⁻¹⁷ sobre 0.3: precisión relativa de 1.8·10⁻¹⁶, exactamente el epsilon de máquina. El resultado es tan bueno como el formato permite.

Qué ejecuta el laboratorio

0.1 + 0.2 != 0.3 explicado con la fracción binaria real.

GrupoSalidas
Resultados numéricos (3)0.1+0.2, 0.3, diferencia
Comprobaciones (2)iguales, comparacion_correcta
compmath run 029

Errores conceptuales frecuentes

  1. Comparar resultados de cálculo con == en lugar de con una tolerancia declarada.
  2. Concluir que los floats son poco fiables en lugar de que la comparación era incorrecta.
  3. Usar una tolerancia absoluta fija sin considerar la escala de los valores.

Dónde se usa

Cualquier test numérico, criterio de convergencia o comparación de resultados. Los asserts de todo el programa usan tolerancia declarada precisamente por esto.

Bibliografía de la clase

030 · Error absoluto y error relativo

Parte 01 · clase 10 de 20 · demostración absolute_relative_error

El error relativo es la magnitud que se propaga; el absoluto solo tiene sentido con la escala declarada.

error absoluto = |aprox − exacto|
error relativo = |aprox − exacto| / |exacto|
dígitos significativos correctos ≈ −log₁₀(error relativo)

Fundamentos

Un error absoluto sin escala es una cifra sin significado. Diez unidades de error son catastróficas si el valor exacto es 1 e irrelevantes si es un millón. El error relativo normaliza esa comparación y por eso es la magnitud que se usa para hablar de precisión.

La relación con los dígitos significativos es directa y muy útil: un error relativo de 10⁻⁶ significa aproximadamente 6 dígitos correctos. Como el epsilon de máquina de float64 es ≈2.2·10⁻¹⁶, ningún cálculo en doble precisión puede prometer más de unos 16 dígitos, y prometer más es exagerar la certeza.

Los dos errores se comportan de forma distinta al operar. Al multiplicar o dividir, los errores relativos se suman aproximadamente. Al sumar o restar, los errores absolutos se suman. Esa asimetría explica por qué la resta de números parecidos es peligrosa —el error absoluto se mantiene pero el resultado se hace pequeño, así que el relativo explota— y es el contenido de la clase 032.

La consecuencia práctica: al reportar un resultado numérico hay que decir cuál de los dos errores se está acotando y con respecto a qué. Un criterio de parada basado solo en el error absoluto falla si la escala del problema es muy grande o muy pequeña (clase 233).

Ejemplo trabajado

Dos aproximaciones con errores absolutos muy distintos.

Caso A:  exacto = 1.0            aprox = 1.01
         error absoluto = 0.01
         error relativo = 0.01   → 1 %      ~2 dígitos correctos

Caso B:  exacto = 1 000 000.0    aprox = 1 000 010.0
         error absoluto = 10.0   (1000× mayor que en A)
         error relativo = 1e−5   → 0.001 %  ~5 dígitos correctos

Conclusión: B es 1000 veces más preciso pese a tener
            un error absoluto 1000 veces mayor.

Qué ejecuta el laboratorio

El error relativo es el que se propaga; el absoluto engaña con la escala.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (0)
compmath run 030

Errores conceptuales frecuentes

  1. Comparar errores absolutos entre magnitudes de escalas distintas.
  2. Reportar más dígitos significativos de los que el error relativo justifica.
  3. Usar solo tolerancia absoluta como criterio de parada de un método iterativo.

Dónde se usa

Criterios de parada (parte 11), tolerancias de test, informes de precisión y comparación de implementaciones. La clase 040 construye un auditor basado en esta métrica.

Bibliografía de la clase

031 · ULP y machine epsilon

Parte 01 · clase 11 de 20 · demostración ulp_epsilon

El epsilon de máquina mide la precisión relativa; el ULP mide la distancia absoluta entre floats vecinos.

ε = 2⁻⁵² ≈ 2.22e−16  (float64)
ulp(x) ≈ ε · 2^⌊log₂|x|⌋

Fundamentos

El epsilon de máquina se define como el menor ε tal que 1 + ε ≠ 1 en la aritmética del formato. En float64 vale exactamente 2⁻⁵², porque la mantisa tiene 52 bits almacenados: sumar algo menor que el último bit de la mantisa no cambia el número. El laboratorio comprueba justamente eso: 1.0 + ε difiere de 1.0, pero 1.0 + ε/2 no.

El ULP —unit in the last place— es el concepto relacionado pero distinto: la distancia entre un float concreto y su vecino inmediato. No es constante: cerca de 1 vale unos 2.2·10⁻¹⁶, cerca de 10⁶ vale unos 1.2·10⁻¹⁰, y cerca de 10⁻⁶ vale unos 2.1·10⁻²². Los floats no están repartidos uniformemente en la recta: se concentran cerca del cero y se espacian al alejarse.

Esta no uniformidad explica un fenómeno cotidiano: sumar un número muy pequeño a uno muy grande no cambia nada. 1e16 + 1.0 devuelve 1e16 porque 1.0 es menor que el ULP en esa escala. No es un redondeo agresivo: es que el resultado exacto no tiene representación y el más cercano es el propio 1e16.

Medir un error en ULP en lugar de en unidades absolutas es la forma correcta de evaluar la calidad de una función numérica. Una implementación de sin «correctamente redondeada» tiene un error menor a 0.5 ULP; una aceptable, menor a 1 ULP. Esa es la unidad en la que las bibliotecas matemáticas declaran su precisión.

Ejemplo trabajado

Epsilon, ULP y el límite de la suma.

ε = sys.float_info.epsilon = 2.220446049250313e−16 = 2⁻⁵²

1.0 + ε      ≠ 1.0        ✓ (por definición de ε)
1.0 + ε/2    == 1.0       ✓ (por debajo del último bit)

ULP según la magnitud:
  ulp(1.0)   = 2.22e−16
  ulp(1e6)   = 1.16e−10       500 000 veces mayor
  ulp(1e−6)  = 2.12e−22

Siguiente float tras 1.0: 1.0000000000000002

Los floats no son un retículo uniforme: son casi logarítmicos.

Qué ejecuta el laboratorio

Machine epsilon y la distancia al float siguiente.

GrupoSalidas
Resultados numéricos (6)sys.float_info.epsilon, 2**-52, ulp_en_1.0, ulp_en_1e6, ulp_en_1e-6, siguiente_float_tras_1.0
Comprobaciones (2)1.0 + eps != 1.0, 1.0 + eps/2 == 1.0
compmath run 031

Errores conceptuales frecuentes

  1. Confundir el epsilon de máquina con el menor float positivo (5e−324).
  2. Suponer que el ULP es constante en toda la recta real.
  3. Usar una tolerancia absoluta de 1e−16 para valores de magnitud 1e6, donde el ULP ya es 1e−10.

Dónde se usa

Elegir tolerancias, evaluar la calidad de una biblioteca matemática y entender por qué un acumulador pierde términos pequeños. Es el prerrequisito de las clases 032 y 034.

Bibliografía de la clase

032 · Cancelación catastrófica

Parte 01 · clase 12 de 20 · demostración catastrophic_cancellation

Restar dos números casi iguales destruye dígitos significativos sin producir ningún error visible.

forma ingenua:  √(x²+1) − x
forma estable:  1 / (√(x²+1) + x)

Fundamentos

La cancelación catastrófica es el fenómeno más peligroso de la aritmética de punto flotante porque no produce ninguna señal. Al restar dos números que coinciden en sus primeros k dígitos, esos dígitos se anulan y el resultado queda formado por los dígitos de menor peso, que son precisamente los contaminados por el redondeo previo. El error absoluto se mantiene; el resultado se hace pequeño; el error relativo explota.

El caso canónico es √(x²+1) − x para x grande. Con x = 10⁸, ambos términos valen aproximadamente 10⁸ y coinciden en unos 16 dígitos, que son todos los que hay. El resultado de la resta es esencialmente ruido. La forma algebraicamente equivalente 1/(√(x²+1) + x) —obtenida multiplicando y dividiendo por el conjugado— no tiene resta y da el resultado correcto.

El patrón se repite en toda la matemática computacional: exp(x) − 1 para x pequeño (por eso existe expm1), log(1 + x) para x pequeño (log1p), la fórmula cuadrática cuando b² ≫ 4ac (clase 036), y la varianza calculada como E[X²] − E[X]² en lugar de con la fórmula de dos pasos.

La regla práctica es reconocible: cada vez que una fórmula reste dos cantidades que pueden ser casi iguales, hay que buscar una forma alternativa. Casi siempre existe, y obtenerla es álgebra elemental —racionalizar, factorizar, usar una identidad—, no análisis numérico avanzado.

Ejemplo trabajado

La misma expresión por dos caminos con x = 10⁸.

Ingenua:  √(10¹⁶ + 1) − 10⁸
          = 100000000.00000001 − 100000000
          = 7.45e−09          ← casi todo ruido

Estable:  1 / (√(10¹⁶+1) + 10⁸)
          = 1 / 200000000.00000001
          = 5.0e−09           ← correcto

Diferencia relativa entre ambas: ~49 %
Dígitos significativos de la ingenua: ~0

Las dos expresiones son idénticas en ℝ. En float64 una es útil y la otra no.

Qué ejecuta el laboratorio

Dos fórmulas algebraicamente iguales con precisión muy distinta.

GrupoSalidas
Resultados numéricos (5)x, formula_ingenua_sqrt(x^2+1)-x, formula_estable_1/(sqrt(x^2+1)+x), diferencia, error_relativo_de_la_ingenua
Comprobaciones (0)
compmath run 032

Errores conceptuales frecuentes

  1. Trasladar una fórmula del papel al código sin comprobar si contiene una resta peligrosa.
  2. Interpretar el resultado incorrecto como un problema del lenguaje o de la biblioteca.
  3. Aumentar la precisión (float128) en lugar de reformular: retrasa el problema, no lo resuelve.

Dónde se usa

Fórmula cuadrática, cálculo de varianza, diferencias finitas, funciones especiales y cualquier resta de magnitudes cercanas. expm1 y log1p existen exactamente por esto.

Bibliografía de la clase

033 · Overflow y underflow flotante

Parte 01 · clase 13 de 20 · demostración float_overflow_underflow

Los subnormales extienden el rango hacia el cero a costa de precisión; el overflow produce infinito y no error.

float64: max ≈ 1.797e308,  min normal ≈ 2.225e−308,  min subnormal = 5e−324
inf − inf = NaN,  0/0 = NaN,  NaN != NaN

Fundamentos

El rango de float64 tiene tres zonas. Los normales van de 2.2·10⁻³⁰⁸ a 1.8·10³⁰⁸ con la precisión completa de 53 bits. Por debajo del mínimo normal están los subnormales, que renuncian al bit implícito para poder acercarse más al cero: llegan hasta 5·10⁻³²⁴ pero con precisión progresivamente menor. Por encima del máximo está el infinito.

Los subnormales existen para que la resta de dos números cercanos nunca dé cero cuando los números son distintos, propiedad conocida como gradual underflow. Sin ellos, a − b == 0 podría ser cierto con a != b, lo que rompe algoritmos que dividen por esa diferencia. La contrapartida es de rendimiento: en muchas CPU las operaciones con subnormales son órdenes de magnitud más lentas, y por eso los frameworks de deep learning ofrecen el modo flush-to-zero.

El desbordamiento no lanza excepción: produce inf, y el cálculo continúa. Esto es deliberado —permite terminar una operación vectorizada y detectar el problema al final— pero exige comprobar los resultados. El NaN aparece en las operaciones indeterminadas (inf − inf, 0/0, √(−1)) y tiene una propiedad que sorprende: no es igual a sí mismo. nan == nan es False, y por eso hay que usar math.isnan.

En entrenamiento de redes, la secuencia típica es: un gradiente crece, produce inf, el inf participa en una resta y produce NaN, y el NaN contamina todos los pesos en una sola actualización. Detectarlo exige comprobar explícitamente; el programa no avisa.

Ejemplo trabajado

Los tres límites y la propiedad del NaN.

max float64        1.7976931348623157e+308
max × 2            inf                      ← sin excepción

min normal         2.2250738585072014e−308
min subnormal      5e−324
min subnormal / 2  0.0                      ← underflow a cero

inf − inf          nan
nan == nan         False                    ← usar math.isnan

Un inf en un cálculo no detiene nada. Se propaga en silencio hasta que alguien comprueba.

Qué ejecuta el laboratorio

Límites del float64 y el paso por subnormales.

GrupoSalidas
Resultados numéricos (5)max_float, max*2_da_inf, min_normal, min_subnormal, min_subnormal/2
Comprobaciones (2)underflow_a_cero, inf-inf_es_nan
compmath run 033

Errores conceptuales frecuentes

  1. Comparar con == para detectar NaN en lugar de usar math.isnan.
  2. Suponer que el desbordamiento lanza una excepción.
  3. Ignorar el coste de rendimiento de los subnormales en bucles numéricos intensivos.

Dónde se usa

Depuración de entrenamientos que producen NaN, control de estabilidad en softmax y logaritmos, y validación de pipelines numéricos. La estabilización de softmax (clase 321) existe para evitar exactamente este overflow.

Bibliografía de la clase

034 · Propagación de errores

Parte 01 · clase 14 de 20 · demostración error_propagation

Los errores de redondeo se acumulan al sumar muchos términos; la suma compensada los recupera.

error de la suma ingenua: O(n·ε)
error de la suma compensada (Kahan): O(ε)

Fundamentos

Cada operación en punto flotante introduce un error de a lo sumo medio ULP. Al sumar n términos, esos errores se acumulan, y en el peor caso el error total crece proporcionalmente a n·ε. Con un millón de sumandos y ε ≈ 2·10⁻¹⁶, el error relativo puede llegar a 2·10⁻¹⁰: se han perdido seis dígitos por el simple hecho de sumar muchas veces.

La suma compensada de Kahan (1965) resuelve el problema arrastrando explícitamente el error de cada paso: guarda en una variable auxiliar lo que se perdió al redondear y lo reinyecta en la siguiente suma. El coste es cuatro operaciones en lugar de una, y el error pasa a ser independiente de n. Python ofrece math.fsum, que usa un algoritmo aún más preciso y devuelve la suma correctamente redondeada.

El orden de la suma también importa. Sumar de menor a mayor magnitud reduce el error, porque evita que los términos pequeños caigan por debajo del ULP del acumulado. Es el motivo por el que algunas bibliotecas ordenan antes de sumar en cálculos críticos.

En deep learning esto aparece al acumular la pérdida sobre un lote grande o al reducir gradientes entre dispositivos. Los frameworks acumulan en float32 aunque el cálculo sea en float16 precisamente para que el acumulador tenga más precisión que los sumandos.

Ejemplo trabajado

Acumular un millón de veces 0.1.

Suma ingenua de 1e6 términos de 0.1:
  resultado    99999.99999808663
  exacto       100000.0
  error abs    1.91e−03
  error rel    1.91e−08         ← se perdieron ~8 dígitos

math.fsum([0.1]*1000) − 100.0 = 0.0
  (correctamente redondeada)

Coste: fsum es más lento, pero el error no crece con n.

Qué ejecuta el laboratorio

Cómo crece el error al sumar 10^6 veces un valor no representable.

GrupoSalidas
Resultados numéricos (6)n_sumas, suma_acumulada, valor_exacto, error_absoluto, error_relativo, suma_compensada_fsum
Comprobaciones (0)
compmath run 034

Errores conceptuales frecuentes

  1. Acumular millones de términos con += y no medir el error resultante.
  2. Acumular en la misma precisión que los sumandos cuando esta es baja (float16).
  3. Suponer que el error de redondeo se cancela estadísticamente: en general se acumula.

Dónde se usa

Sumas de grandes conjuntos de datos, integración numérica, acumulación de pérdida y reducción de gradientes. math.fsum, numpy.sum con dtype ampliado y la acumulación en float32 responden a este problema.

Bibliografía de la clase

035 · Condicionamiento de problemas

Parte 01 · clase 15 de 20 · demostración conditioning

El número de condición mide cuánto amplifica el problema el error de la entrada, con independencia del algoritmo.

κ(f, x) = |x·f′(x) / f(x)|
error relativo de salida ≈ κ · error relativo de entrada

Fundamentos

El condicionamiento es una propiedad del problema, no de cómo se resuelva. Formaliza la pregunta: si perturbo la entrada un 0.001 %, ¿cuánto cambia la salida? El número de condición es el factor de amplificación. Si vale 1, el problema conserva la precisión; si vale 10⁸, un error de entrada en el dígito 16 se convierte en un error en el dígito 8 de la salida.

Para una función de una variable, κ = |x·f′(x)/f(x)|. La fórmula dice algo intuitivo: el problema está mal condicionado donde la función es muy sensible en relación a su propio valor, típicamente cerca de sus ceros. f(x) = 1 − x cerca de x = 1 tiene condición enorme: es la versión analítica de la cancelación catastrófica.

La consecuencia práctica es dura y conviene aceptarla pronto: ningún algoritmo puede resolver con precisión un problema mal condicionado. Si la entrada tiene 16 dígitos y la condición es 10⁸, la salida tiene como mucho 8 dígitos correctos, use uno el método que use. Buscar un algoritmo mejor es buscar en el sitio equivocado; hay que reformular el problema.

En álgebra lineal el mismo concepto aparece como el número de condición de una matriz —cociente entre el mayor y el menor valor singular (clase 132)—, y en machine learning como la razón entre el mayor y el menor autovalor del Hessiano, que determina lo lento que converge el descenso de gradiente (clase 244).

Ejemplo trabajado

Condición de f(x) = 1 − x en tres puntos.

κ(x) = |x · f′(x) / f(x)| = |x / (1 − x)|

x = 0.5     f(x) = 0.5        κ = 1.0        bien condicionado
x = 0.99    f(x) = 0.01       κ = 99         empieza a amplificar
x = 1e−8    f(x) ≈ 1.0        κ = 1e−8       muy bien condicionado

x = 0.9999  f(x) = 1e−4       κ = 9999
  un error de entrada de 1e−16 → error de salida de 1e−12

La condición no depende de cómo se calcule 1 − x: depende del problema.

Qué ejecuta el laboratorio

Número de condición de una función: sensibilidad del problema.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (0)
compmath run 035

Errores conceptuales frecuentes

  1. Buscar un algoritmo mejor para un problema mal condicionado.
  2. Confundir condicionamiento (del problema) con estabilidad (del algoritmo).
  3. Evaluar la condición en un punto y extrapolarla a todo el dominio.

Dónde se usa

Diagnóstico de sistemas lineales (parte 05), regularización (ridge mejora el condicionamiento, clase 283) y análisis de convergencia de optimizadores. Es la pregunta previa a elegir método.

Bibliografía de la clase

036 · Estabilidad de algoritmos

Parte 01 · clase 16 de 20 · demostración stability

Un algoritmo es estable si no amplifica el error más allá de lo que el condicionamiento del problema exige.

raíz pequeña ingenua:  (−b + √(b²−4ac)) / 2a
raíz pequeña estable:  2c / (−b − √(b²−4ac))
invariante: r₁·r₂ = c/a

Fundamentos

Estabilidad y condicionamiento son propiedades distintas que se confunden constantemente. El condicionamiento dice cuánta precisión permite el problema; la estabilidad dice cuánta precisión conserva el algoritmo. Un algoritmo estable aplicado a un problema mal condicionado dará un resultado impreciso, y eso no es culpa del algoritmo. Un algoritmo inestable aplicado a un problema bien condicionado dará un resultado impreciso, y eso sí lo es.

La fórmula cuadrática es el ejemplo canónico. Cuando b² ≫ 4ac, la raíz cuadrada del discriminante es casi igual a |b|, así que una de las dos raíces se obtiene restando dos números casi iguales: cancelación catastrófica. El problema —encontrar las raíces— está perfectamente bien condicionado; el algoritmo estándar es inestable para una de ellas.

La solución usa una identidad elemental: el producto de las raíces es c/a. Calculada la raíz grande de forma estable (la que no sufre cancelación), la pequeña se obtiene dividiendo. El invariante que se usa para calcularla sirve además como verificación: si r₁·r₂ no da c/a, hay un error.

Este patrón —usar un invariante conocido tanto para calcular como para verificar— es uno de los hábitos más transferibles del programa. Aparece en la ortogonalidad de QR (clase 130), en la conservación de la masa de un plan de transporte (clase 346) y en la suma de probabilidades de una softmax (clase 321).

Ejemplo trabajado

Raíces de x² + 10⁸x + 1 = 0.

a = 1,  b = 1e8,  c = 1
√(b² − 4ac) = 99999999.99999999

Raíz grande (estable en ambos métodos):
  r₂ = (−b − √Δ)/2a = −1e8

Raíz pequeña:
  ingenua:  (−b + √Δ)/2a = −7.45e−09    ← cancelación
  estable:  2c/(−b − √Δ) = −1.0e−08     ← correcta

Verificación con el invariante r₁·r₂ = c/a = 1:
  ingenua:  −7.45e−09 × −1e8 = 0.745    ✗
  estable:  −1.0e−08  × −1e8 = 1.0      ✓

Qué ejecuta el laboratorio

Misma raíz cuadrática por dos algoritmos: uno estable, otro no.

GrupoSalidas
Resultados numéricos (6)raiz_pequena_ingenua, raiz_pequena_estable, raiz_grande, producto_raices_ingenua, producto_raices_estable, producto_teorico_c/a
Comprobaciones (0)
compmath run 036

Errores conceptuales frecuentes

  1. Culpar al condicionamiento del problema cuando el inestable es el algoritmo.
  2. Aceptar un resultado numérico sin comprobar ningún invariante.
  3. Usar la fórmula cuadrática estándar sin considerar el caso b² ≫ 4ac.

Dónde se usa

Selección de algoritmos numéricos, implementación de fórmulas cerradas y verificación de resultados. Es la razón por la que se prefiere QR frente a las ecuaciones normales en mínimos cuadrados (clase 234).

Bibliografía de la clase

037 · Precisión arbitraria y Decimal

Parte 01 · clase 17 de 20 · demostración arbitrary_precision

Decimal ofrece precisión decimal declarada y exacta a cambio de velocidad.

Decimal('0.1') · 3 == Decimal('0.3')  → True
0.1 * 3 == 0.3  → False

Fundamentos

El módulo decimal implementa aritmética de punto flotante en base 10 con precisión configurable. Su ventaja no es tener más dígitos: es que las fracciones decimales que escribimos —0.1, 0.05, 19.99— son exactamente representables, porque la base coincide con la de nuestra notación.

Eso resuelve de raíz el problema del dinero. Decimal('0.1') 3 da exactamente Decimal('0.3'), mientras que 0.1 3 en float da 0.30000000000000004. Además, Decimal permite declarar la precisión (getcontext().prec) y el modo de redondeo, de modo que el comportamiento queda documentado en el código en lugar de depender del hardware.

El coste es real: Decimal es entre 50 y 100 veces más lento que float porque no se apoya en la FPU. Para un cálculo científico con millones de operaciones es inaceptable; para calcular el total de una factura es irrelevante.

Un detalle que atrapa a muchos: Decimal(0.1) —con un float como argumento— hereda el error del float y da 0.1000000000000000055511151231257827. Hay que construirlo desde cadena: Decimal('0.1'). La firma acepta ambos precisamente para poder inspeccionar qué guarda realmente un float, que es lo que hace el laboratorio de la clase 029.

Ejemplo trabajado

Exactitud decimal frente a binaria.

getcontext().prec = 50

Decimal(1)/Decimal(3) =
  0.33333333333333333333333333333333333333333333333333   (50 dígitos)
1/3 (float) = 0.3333333333333333                          (16 dígitos)

Decimal('0.1') * 3 == Decimal('0.3')   →  True   ✓
0.1 * 3 == 0.3                          →  False  ✗

Trampa:
  Decimal(0.1)   → 0.1000000000000000055511151231257827...
  Decimal('0.1') → 0.1                                    ✓

Qué ejecuta el laboratorio

Decimal con precisión declarada frente a float.

GrupoSalidas
Resultados numéricos (2)precision_configurada, 1/3_float
Comprobaciones (1)es_exactamente_0.3
compmath run 037

Errores conceptuales frecuentes

  1. Construir Decimal desde un float en lugar de desde una cadena.
  2. Usar Decimal en bucles numéricos intensivos donde el coste es prohibitivo.
  3. Suponer que Decimal elimina todos los errores: sigue siendo precisión finita, solo que en base 10.

Dónde se usa

Contabilidad, facturación, impuestos, cálculo de intereses y cualquier dominio con reglas de redondeo normativas. Es el estándar en sistemas financieros.

Bibliografía de la clase

038 · Racional exacto y Fraction

Parte 01 · clase 18 de 20 · demostración exact_rationals

Fraction guarda dos enteros y da aritmética racional exacta, útil como patrón de referencia.

Fraction(1,3) + Fraction(1,6) == Fraction(1,2)  → exacto
H_n = Σ 1/k  (número armónico)

Fundamentos

Fraction representa un racional como un par de enteros de precisión arbitraria en forma reducida. Toda operación —suma, producto, comparación— es exacta, sin excepciones y sin necesidad de declarar precisión. Es la aritmética más fiel que ofrece la biblioteca estándar.

Su papel en este programa no es sustituir al float en cálculo real: es servir de patrón de referencia. Para medir cuánto error comete un cálculo en punto flotante hace falta conocer el valor exacto, y Fraction lo proporciona en cualquier expresión que solo use operaciones racionales. El laboratorio calcula el número armónico H₁₀ por ambos caminos y compara.

El coste es de crecimiento: los denominadores se multiplican y crecen muy rápido. H₁₀ ya tiene denominador 2520, y H₁₀₀ tiene cientos de dígitos. Para cálculos largos, la aritmética exacta deja de ser viable no por lentitud de cada operación sino por el tamaño de los números.

Una utilidad práctica: Fraction(0.1) muestra el racional exacto que guarda un float, y Fraction(x).limit_denominator(n) encuentra la mejor aproximación racional con denominador acotado. Esto último es la base de la aproximación por fracciones continuas y explica por qué 22/7 y 355/113 son buenas aproximaciones de π.

Ejemplo trabajado

Número armónico H₁₀ exacto frente a flotante.

H₁₀ = 1 + 1/2 + 1/3 + ... + 1/10

Exacto (Fraction):  7381/2520
Como float:         2.9289682539682538
Suma en float:      2.9289682539682538
Diferencia:         0.0  (en este caso coinciden)

Denominador: 2520 = mcm(1..10)

Fraction(0.1) == Fraction(1, 10)  →  False
  porque el float 0.1 no es exactamente 1/10

Que coincidan con diez términos no significa que coincidan con un millón: el error crece con n (clase 034).

Qué ejecuta el laboratorio

Fraction mantiene exactitud donde float ya perdió información.

GrupoSalidas
Resultados numéricos (4)H_10_float, H_10_exacto_como_float, error, denominador
Comprobaciones (1)float_desde_fraction
compmath run 038

Errores conceptuales frecuentes

  1. Usar Fraction en cálculos largos sin considerar el crecimiento del denominador.
  2. Suponer que Fraction(0.1) es 1/10: hereda el valor real del float.
  3. Confundir aritmética exacta con precisión infinita en el resultado final convertido a float.

Dónde se usa

Verificación de implementaciones numéricas, cálculo simbólico ligero, probabilidades exactas en combinatoria y generación de casos de prueba con valor esperado conocido.

Bibliografía de la clase

039 · Reproducibilidad numérica entre plataformas

Parte 01 · clase 19 de 20 · demostración reproducibility

La suma en punto flotante no es asociativa; reproducir un resultado exige fijar el orden de las operaciones.

(a + b) + c ≠ a + (b + c)  en float64
la suma es conmutativa pero no asociativa

Fundamentos

En los reales, la suma es asociativa: agrupar de una forma u otra da el mismo resultado. En punto flotante no lo es, porque cada suma parcial se redondea y el redondeo depende de las magnitudes involucradas. El ejemplo clásico usa 1e16, 1.0 y −1e16: sumando de izquierda a derecha, el 1.0 se pierde por estar bajo el ULP de 1e16; sumando en otro orden, sobrevive.

Esto tiene una consecuencia incómoda para la reproducibilidad: fijar la semilla aleatoria no basta. Dos ejecuciones del mismo código pueden dar resultados distintos si el orden de las sumas cambia, y el orden cambia con el número de hilos, la arquitectura de la GPU, la versión de la biblioteca BLAS o incluso la disponibilidad de instrucciones vectoriales.

Por eso los frameworks de deep learning ofrecen modos deterministas explícitos (torch.use_deterministic_algorithms(True)), que fuerzan implementaciones con orden fijo a costa de rendimiento. Sin ese modo, el mismo entrenamiento con la misma semilla puede divergir tras unos miles de pasos —no porque haya aleatoriedad extra, sino porque las diferencias de redondeo se amplifican.

El programa adopta la consecuencia como norma: todas las demostraciones son deterministas en un solo hilo y con orden de operaciones fijo, y un test comprueba que dos ejecuciones devuelven exactamente el mismo diccionario. Esa comprobación sería imposible de garantizar en cálculo paralelo sin medidas adicionales.

Ejemplo trabajado

El mismo conjunto de sumandos en dos órdenes.

valores = [1e16, 1.0, −1e16, 1.0]

De izquierda a derecha:
  1e16 + 1.0    = 1e16        ← el 1.0 cae bajo el ULP
  1e16 − 1e16   = 0.0
  0.0 + 1.0     = 1.0         resultado: 1.0

De derecha a izquierda:
  1.0 − 1e16    = −1e16
  −1e16 + 1.0   = −1e16
  −1e16 + 1e16  = 0.0         resultado: 0.0

math.fsum(valores) = 2.0      ← el valor exacto

¿Asociativa en ℝ?      Sí
¿Asociativa en float64? No

Qué ejecuta el laboratorio

El orden de la suma cambia el resultado en punto flotante.

GrupoSalidas
Resultados numéricos (3)suma_de_izquierda_a_derecha, suma_de_derecha_a_izquierda, suma_compensada
Comprobaciones (3)coinciden, suma_es_asociativa_en_R, suma_es_asociativa_en_float64
compmath run 039

Errores conceptuales frecuentes

  1. Creer que fijar la semilla garantiza reproducibilidad numérica.
  2. Comparar resultados entre CPU y GPU esperando igualdad bit a bit.
  3. Paralelizar una reducción sin declarar que el resultado deja de ser determinista.

Dónde se usa

Reproducibilidad de experimentos, comparación de implementaciones, depuración de divergencias entre entornos y publicación de resultados verificables. Es la razón por la que los papers serios publican semilla, versión y hardware.

Bibliografía de la clase

040 · Capstone: auditor de precisión numérica

Parte 01 · clase 20 de 20 · demostración capstone_precision_auditor

Auditar una expresión es medir cuántos dígitos significativos pierde cada forma de escribirla.

dígitos perdidos ≈ −log₁₀(|ingenua − estable| / |estable|)
formas estables: expm1, log1p, conjugado

Fundamentos

El capstone convierte en herramienta todo lo anterior. Un auditor de precisión toma una expresión, la evalúa por su forma directa y por una forma algebraicamente equivalente pero numéricamente estable, y reporta cuántos dígitos significativos separa a ambas. Ese número es la medida honesta de cuánta confianza merece la primera forma.

Las tres expresiones auditadas son las que más aparecen en la práctica. exp(x) − 1 para x pequeño pierde precisión porque exp(x) se acerca a 1 y la resta cancela; expm1 la calcula directamente. log(1 + x) sufre lo mismo cuando 1 + x redondea a 1; log1p lo evita. Y √(x²+1) − x es el caso de la clase 032.

Que estas funciones existan en la biblioteca estándar de todos los lenguajes serios no es casualidad: son la respuesta institucionalizada a problemas de cancelación conocidos desde los años sesenta. Reconocer cuándo usarlas es parte del oficio.

La regla que cierra la parte: toda diferencia de magnitudes cercanas necesita una forma alternativa, y toda implementación numérica publicada debería declarar cuántos dígitos garantiza. El programa aplica esa regla a sí mismo: cada demostración devuelve claves de verificación en lugar de pedir confianza.

Ejemplo trabajado

Auditoría de tres expresiones.

expresión         x        ingenua        estable       dígitos perdidos
exp(x)−1        1e−10   1.000000e−10   1.000000e−10          ~6
log(1+x)        1e−12   1.000089e−12   1.000000e−12          ~4
√(x²+1)−x       1e7     5.000000e−08   5.000000e−08          ~9

Regla operativa:
  si la expresión contiene una resta de cantidades que pueden
  acercarse, buscar la forma alternativa ANTES de implementarla.

Los números concretos dependen del valor de x: el auditor los mide, no los supone.

Qué ejecuta el laboratorio

Capstone: auditoría de precisión de una expresión numérica.

GrupoSalidas
Resultados numéricos (1)expresiones_auditadas
Comprobaciones (0)
compmath run 040

Errores conceptuales frecuentes

  1. Publicar un resultado numérico sin declarar cuántos dígitos son fiables.
  2. Auditar solo con un valor de x: el número de dígitos perdidos depende del punto.
  3. Sustituir la forma ingenua por la estable sin comprobar que son equivalentes en ℝ.

Dónde se usa

Revisión de código numérico, elección de biblioteca, validación de una reimplementación y documentación de precisión en una API científica.

Bibliografía de la clase

Parte 02 — Álgebra y funciones

Nivel basico · 20 clases · 80 horas · motor part02

Manipulación simbólica con criterio y la función como objeto central: dominio, imagen, composición, inversa y familias lineal, cuadrática, exponencial y logarítmica.

El álgebra tiene mala fama porque se enseña como manipulación de símbolos sin objeto. Esta parte invierte el orden: primero el objeto —la función—, después las reglas para manipularlo. Una función no es una fórmula: es una asignación que a cada elemento de un dominio le hace corresponder exactamente uno de un codominio. La fórmula es solo una de las formas de describirla, y el dominio forma parte de su identidad.

Las clases 041 a 051 construyen la maquinaria simbólica: términos semejantes, propiedades, ecuaciones, sistemas, polinomios, factorización, cuadráticas, exponentes y logaritmos. El énfasis no está en resolver rápido sino en saber qué operación es reversible. Dividir por una expresión que puede anularse pierde soluciones; elevar al cuadrado introduce soluciones falsas. Cada paso de un despeje es un compromiso, y hay que saber cuál.

Las clases 052 a 059 son el corazón de la parte. Dominio y rango, familias lineal, cuadrática, exponencial y logarítmica, composición, inversa y funciones por tramos. Estas cinco familias cubren casi todo el modelado elemental, y saber reconocer cuál describe un conjunto de datos es una competencia directamente evaluable: el capstone 060 lo hace con residuos.

Dos ideas de esta parte reaparecen literalmente en deep learning. La primera es la composición: una red neuronal es f_n(...f_2(f_1(x))), una composición de funciones parametrizadas, y la regla de la cadena de la parte 07 es la derivada de esa composición. La segunda es que el logaritmo convierte productos en sumas, que es exactamente por qué toda función de pérdida probabilística se escribe en escala logarítmica: multiplicar diez mil probabilidades produce underflow, sumar diez mil logaritmos no.

La función por tramos de la clase 059 merece atención especial: ReLU, la activación más usada en deep learning, es literalmente una función por tramos, y su comportamiento —derivada 1 en un lado, 0 en el otro— se entiende aquí antes de que aparezca con nombre técnico.

Al terminar la parte deberías poder mirar una curva y decir qué familia la describe, mirar una fórmula y decir cuál es su dominio, y mirar una composición y decir en qué orden se aplican sus piezas.

Ideas centrales

Por qué importa en IA

Una red neuronal es una composición de funciones parametrizadas. La sigmoide, la softmax y la log-verosimilitud son álgebra de exponenciales y logaritmos.

Errores frecuentes de la parte

Glosario de la parte (20 términos)

TérminoDefiniciónClase
Composición(g∘f)(x) = g(f(x)). No es conmutativa. Es la estructura de una red neuronal.057
DesigualdadRelación de orden entre expresiones. Multiplicar por un negativo invierte su sentido.044
Discriminanteb² − 4ac. Su signo determina la naturaleza de las raíces antes de calcularlas.049
DominioConjunto de entradas válidas de una función. Forma parte de su definición, no es un detalle.052
Ecuación equivalenteEcuación con el mismo conjunto solución. Se obtiene aplicando operaciones reversibles a ambos lados.043
Escala logarítmicaEje donde distancias iguales representan factores iguales. Convierte exponenciales en rectas.056
FactorizaciónEscritura de un polinomio como producto. Sus raíces se leen directamente de los factores.047
Función inversaFunción que deshace a otra. Existe solo si la original es inyectiva. Distinta del recíproco 1/f.058
Función por tramosFunción definida por reglas distintas en subconjuntos del dominio. ReLU es el caso más usado en IA.059
Grado de un polinomioMayor exponente con coeficiente no nulo. El grado del producto es la suma de los grados.046
Imagen (rango)Conjunto de valores que la función realmente alcanza.052
LogaritmoExponente al que hay que elevar la base para obtener el argumento. Convierte productos en sumas.051
PendienteRazón de cambio constante de una función lineal: cuánto cambia y por cada unidad de x.053
Propiedad distributivaa(b+c) = ab + ac. Es la propiedad que conecta suma y producto y la que justifica la regla de los signos.042
Regla de HornerEsquema de evaluación de polinomios que usa n multiplicaciones en lugar de n(n+1)/2.046
Sistema compatible determinadoSistema con solución única. En 2×2 equivale a determinante no nulo.045
Suma de residuos al cuadrado (SSE)Σ(observado − predicho)². Criterio para comparar modelos ajustados a los mismos datos.060
Tiempo de duplicaciónTiempo que tarda una cantidad con crecimiento exponencial en duplicarse: ln 2 / ln(base).055
Término semejanteTérminos con la misma parte literal y los mismos exponentes. Solo ellos pueden sumarse entre sí.041
VérticePunto extremo de una parábola, situado en x = −b/2a. Es el punto medio de las raíces.054

Bibliografía de la parte

041 · Expresiones algebraicas y términos

Parte 02 · clase 1 de 20 · demostración algebraic_terms

Solo se suman términos con la misma parte literal; simplificar reduce operaciones sin cambiar el valor.

3x²y + 5x²y = 8x²y
términos semejantes ⟺ misma parte literal con los mismos exponentes

Fundamentos

Una expresión algebraica es una receta de cálculo escrita con símbolos. Simplificarla no cambia lo que calcula: cambia cuántas operaciones necesita para calcularlo. Esa es la utilidad concreta de reducir términos semejantes, y es la misma idea que la clase 001 introdujo comparando la suma iterativa con la fórmula cerrada.

Dos términos son semejantes si tienen idéntica parte literal: mismas variables con los mismos exponentes. 3x²y y 5x²y lo son; 3x²y y 3xy² no, aunque usen las mismas letras. La razón es la propiedad distributiva: 3x²y + 5x²y = (3+5)x²y solo porque el factor común existe.

La verificación es inmediata y conviene hacerla siempre: evaluar la expresión original y la simplificada en un punto arbitrario y comprobar que coinciden. Si difieren, la simplificación introdujo un error. Un solo punto no demuestra equivalencia —eso lo recuerda la clase 019— pero detecta la mayoría de los errores de manipulación.

El hábito que instala esta clase es de lectura: antes de operar, identificar qué términos pueden combinarse. En expresiones grandes, agrupar por parte literal antes de sumar reduce errores más que cualquier técnica de cálculo.

Ejemplo trabajado

Reducir una expresión de cuatro términos a dos.

original:     3x²y − 2xy + 5x²y + 7xy
agrupar:      (3x²y + 5x²y) + (−2xy + 7xy)
simplificada: 8x²y + 5xy

Verificación con x = 2, y = 3:
  original:     3·4·3 − 2·2·3 + 5·4·3 + 7·2·3 = 36 − 12 + 60 + 42 = 126
  simplificada: 8·4·3 + 5·2·3 = 96 + 30 = 126     ✓

Operaciones: 4 términos → 2 términos

Qué ejecuta el laboratorio

Términos semejantes y evaluación de una expresión.

GrupoSalidas
Resultados numéricos (4)evaluada_original, evaluada_simplificada, terminos_originales, terminos_tras_reducir
Comprobaciones (1)equivalentes
compmath run 041

Errores conceptuales frecuentes

  1. Sumar términos con la misma variable pero distinto exponente: 3x² y 3x no son semejantes.
  2. Perder un signo al reagrupar términos negativos.
  3. Simplificar sin verificar numéricamente en al menos un punto.

Dónde se usa

Simplificar una expresión antes de implementarla reduce operaciones y errores de redondeo. Es la versión manual de lo que hace un compilador al optimizar y de lo que hacen los frameworks al fusionar operaciones en un grafo de cómputo.

Bibliografía de la clase

042 · Propiedades distributiva, asociativa y conmutativa

Parte 02 · clase 2 de 20 · demostración algebra_properties

Conmutativa, asociativa y distributiva son válidas en ℝ, pero la asociatividad falla en punto flotante.

conmutativa: a + b = b + a,  ab = ba
asociativa: (a+b)+c = a+(b+c)
distributiva: a(b+c) = ab + ac

Fundamentos

Las tres propiedades definen la estructura de cuerpo de los números reales, y de ellas se deduce todo el álgebra elemental. La distributiva es la más productiva: conecta la suma con el producto y es la que justifica factorizar, desarrollar y —como vio la clase 002— la regla de los signos.

Conviene notar qué no cumplen ciertas operaciones. La resta no es conmutativa ni asociativa. La división tampoco. La potenciación no es conmutativa (2³ ≠ 3²) ni asociativa (asocia por la derecha, clase 010). Y en la parte 05 aparecerá que el producto de matrices es asociativo pero no conmutativo, lo que cambia por completo cómo se manipulan las expresiones.

El hallazgo incómodo de esta clase es que la asociatividad de la suma falla en punto flotante. (1e16 + 1.0) − 1e16 da 0.0, mientras que 1e16 + (1.0 − 1e16) da 1.0. No es un bug: es la consecuencia directa de que cada suma parcial se redondea, tal como explicó la clase 039.

La conclusión práctica es que las identidades algebraicas son ciertas en ℝ y solo aproximadamente ciertas en float. Reordenar una expresión para simplificarla puede cambiar su resultado numérico, y en cálculo sensible ese reordenamiento debe hacerse con criterio, no automáticamente.

Ejemplo trabajado

Las tres propiedades y su límite en flotante.

a = 2.5,  b = −4.0,  c = 7.25

conmutativa suma      a + b == b + a          True
conmutativa producto  a·b == b·a              True
asociativa en ℝ       (a+b)+c == a+(b+c)      True
distributiva          a(b+c) == ab + ac       True (isclose)

resta no conmutativa  a − b == b − a          False

Asociatividad en float64:
  (1e16 + 1.0) − 1e16  =  0.0
  1e16 + (1.0 − 1e16)  =  1.0
  ¿iguales?  No

Qué ejecuta el laboratorio

Conmutativa, asociativa y distributiva: válidas en ℝ, no siempre en float.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (6)conmutativa_suma, conmutativa_producto, asociativa_suma_en_R, distributiva, asociativa_falla_en_float, resta_no_es_conmutativa
compmath run 042

Errores conceptuales frecuentes

  1. Suponer que la resta o la división heredan la conmutatividad de la suma y el producto.
  2. Reordenar sumas en código numérico sensible sin comprobar el efecto.
  3. Aplicar la conmutatividad al producto de matrices (parte 05).

Dónde se usa

Justifica toda manipulación algebraica y explica por qué un compilador con optimizaciones agresivas de coma flotante (-ffast-math) puede cambiar resultados.

Bibliografía de la clase

043 · Ecuaciones lineales de una variable

Parte 02 · clase 3 de 20 · demostración linear_equation

Resolver una ecuación es aplicar operaciones reversibles hasta aislar la incógnita.

ax + b = c  ⟹  x = (c − b)/a,  a ≠ 0
residuo = ax + b − c = 0

Fundamentos

Cada paso de un despeje transforma la ecuación en otra equivalente: con el mismo conjunto solución. Sumar o restar la misma cantidad a ambos lados siempre preserva la equivalencia. Multiplicar o dividir por una cantidad no nula, también. La condición «no nula» es la que hay que vigilar: dividir por una expresión que puede anularse pierde soluciones sin avisar.

Los casos degenerados no son curiosidades de examen. Si a = 0, la ecuación 0·x = 0 tiene infinitas soluciones y 0·x = 5 no tiene ninguna. En una implementación, ambos casos deben detectarse y reportarse; lanzar una división por cero es peor que devolver un diagnóstico. La clase 113 encontrará la versión matricial del mismo fenómeno.

Otras operaciones no son reversibles y hay que declararlo. Elevar al cuadrado ambos lados puede introducir soluciones falsas: de x = 2 se pasa a x² = 4, que además admite x = −2. Por eso, tras elevar al cuadrado, hay que comprobar cada solución candidata en la ecuación original.

La verificación cierra el proceso y es innegociable: sustituir y comprobar que el residuo es cero. Ese hábito —calcular el residuo en lugar de confiar en el procedimiento— es el mismo que se usará para sistemas lineales (clase 113), métodos iterativos (clase 233) y ajuste por mínimos cuadrados (clase 131).

Ejemplo trabajado

Resolver 7x − 3 = 25 con verificación y casos degenerados.

7x − 3 = 25
7x     = 28        (sumar 3, reversible)
 x     = 4         (dividir por 7 ≠ 0, reversible)

Verificación: 7·4 − 3 = 25    ✓
Residuo:      7·4 − 3 − 25 = 0 ✓

Casos degenerados (a = 0):
  0·x = 0  →  infinitas soluciones
  0·x = 5  →  ninguna solución

Qué ejecuta el laboratorio

Resolver ax + b = c y verificar el residuo.

GrupoSalidas
Resultados numéricos (2)x, residuo
Comprobaciones (1)sin_solucion_si_a_es_0
compmath run 043

Errores conceptuales frecuentes

  1. Dividir por una expresión con variable sin excluir el caso en que se anula.
  2. Elevar al cuadrado y no comprobar las soluciones en la ecuación original.
  3. No reportar el caso degenerado a = 0 en una implementación.

Dónde se usa

Todo despeje analítico, la condición de primer orden ∇f = 0 en optimización y la resolución de sistemas lineales. El residuo es el criterio de aceptación universal.

Bibliografía de la clase

044 · Desigualdades lineales

Parte 02 · clase 4 de 20 · demostración linear_inequality

Multiplicar o dividir una desigualdad por un número negativo invierte su sentido.

a < b  y  k > 0  ⟹  ka < kb
a < b  y  k < 0  ⟹  ka > kb

Fundamentos

Una desigualdad describe un conjunto, no un punto. La solución de −3x + 4 > 10 no es un número: es el intervalo (−∞, −2). Esa diferencia de naturaleza explica por qué el resultado se expresa como intervalo o como condición, y por qué conviene comprobarlo con un valor de prueba dentro y otro fuera.

La regla del signo tiene una justificación geométrica clara. Multiplicar por un negativo refleja la recta numérica respecto al origen, y una reflexión invierte el orden: lo que estaba a la izquierda queda a la derecha. Es la misma «media vuelta» que la clase 002 usó para explicar el producto de signos.

Al resolver, el hábito seguro es despejar sin dividir por negativos: pasar los términos de modo que el coeficiente de la incógnita quede positivo. Si no se puede evitar, hay que invertir el símbolo y marcarlo explícitamente, porque es el error más frecuente y el más silencioso: produce el intervalo complementario, que suele parecer razonable.

Las desigualdades son el lenguaje de las restricciones en optimización. La parte 12 escribe g(x) ≤ 0 para cada restricción, y las condiciones KKT (clase 257) tratan por separado las restricciones activas —donde se cumple la igualdad— de las inactivas.

Ejemplo trabajado

Resolver −3x + 4 > 10 y comprobar con dos valores.

−3x + 4 > 10
−3x     > 6          (restar 4)
  x     < −2         (dividir por −3: SE INVIERTE)

Frontera: x = −2

Prueba dentro  (x = −5):  −3(−5) + 4 = 19 > 10   ✓
Prueba fuera   (x =  0):  −3(0)  + 4 =  4 > 10   ✗

Solución: (−∞, −2)

Qué ejecuta el laboratorio

Multiplicar por un negativo invierte el sentido de la desigualdad.

GrupoSalidas
Resultados numéricos (1)frontera
Comprobaciones (2)verifica_x=-5, verifica_x=0
compmath run 044

Errores conceptuales frecuentes

  1. Olvidar invertir el símbolo al dividir por un negativo.
  2. Dar la solución como un punto en lugar de como un intervalo.
  3. No comprobar con un valor dentro y otro fuera del intervalo obtenido.

Dónde se usa

Restricciones en optimización (parte 12), rangos de validez de un modelo, umbrales de decisión de un clasificador y condiciones de estabilidad numérica (h < 2/|λ|).

Bibliografía de la clase

045 · Sistemas de ecuaciones 2x2

Parte 02 · clase 5 de 20 · demostración system_2x2

Un sistema 2×2 tiene solución única si y solo si su determinante es no nulo.

det = a₁b₂ − a₂b₁
x = (c₁b₂ − c₂b₁)/det,   y = (a₁c₂ − a₂c₁)/det

Fundamentos

Un sistema de dos ecuaciones lineales con dos incógnitas admite tres lecturas geométricas: dos rectas que se cortan en un punto (solución única), dos rectas paralelas (sin solución) o dos rectas coincidentes (infinitas soluciones). El determinante distingue los casos: si es no nulo, las rectas tienen pendientes distintas y se cortan.

La regla de Cramer da las soluciones como cocientes de determinantes. Es elegante y útil para 2×2, pero no escala: para n×n requiere calcular n+1 determinantes, con un coste factorial si se hace por la definición. La parte 05 introduce la eliminación de Gauss, que resuelve el mismo problema en O(n³) y es lo que usan las bibliotecas reales.

El determinante no solo dice si hay solución: dice cuán bien condicionado está el problema. Un determinante muy cercano a cero significa rectas casi paralelas, y entonces una perturbación mínima de los coeficientes mueve mucho el punto de corte. Es el número de condición de la clase 035 aplicado a sistemas, y en la parte 06 se medirá correctamente con los valores singulares.

La verificación sigue siendo la misma: sustituir la solución en ambas ecuaciones y comprobar los residuos. Con dos ecuaciones es barato; con doscientas es la única forma de saber si el solver hizo su trabajo.

Ejemplo trabajado

Resolver el sistema 2x + 3y = 12, 4x − y = 10.

det = 2·(−1) − 4·3 = −2 − 12 = −14 ≠ 0   → solución única

x = (12·(−1) − 10·3) / (−14) = (−12 − 30)/(−14) = 3
y = (2·10 − 4·12)   / (−14) = (20 − 48)/(−14)   = 2

Verificación:
  2·3 + 3·2 = 6 + 6 = 12    ✓
  4·3 − 1·2 = 12 − 2 = 10   ✓

Si el determinante hubiera sido 0, habría que distinguir entre sistema incompatible (rectas paralelas) y compatible indeterminado (rectas coincidentes).

Qué ejecuta el laboratorio

Sistema 2x2 por determinantes (regla de Cramer) y verificación.

GrupoSalidas
Resultados numéricos (5)determinante, x, y, verificacion_1, verificacion_2
Comprobaciones (1)unica_solucion
compmath run 045

Errores conceptuales frecuentes

  1. Aplicar Cramer sin comprobar antes que el determinante es no nulo.
  2. No distinguir entre sistema sin solución y sistema con infinitas soluciones.
  3. Verificar la solución en una sola de las dos ecuaciones.

Dónde se usa

Es el caso 2×2 del problema central de la parte 05. Cualquier ajuste lineal, sistema de equilibrio o intersección geométrica se reduce a esto en dimensión baja.

Bibliografía de la clase

046 · Polinomios y operaciones

Parte 02 · clase 6 de 20 · demostración polynomial_ops

El esquema de Horner evalúa un polinomio de grado n con n multiplicaciones en lugar de n(n+1)/2.

p(x) = aₙxⁿ + ... + a₁x + a₀
Horner: p(x) = (...((aₙx + aₙ₋₁)x + aₙ₋₂)x + ...) + a₀
grado(p·q) = grado(p) + grado(q)

Fundamentos

Los polinomios son las funciones más simples después de las lineales, y su aritmética es la de los enteros con otra notación: se suman término a término y se multiplican por convolución de coeficientes. Esa operación —multiplicar polinomios es convolucionar sus coeficientes— es literalmente la misma que la convolución discreta de la clase 271, y es la razón por la que la FFT sirve para multiplicar polinomios grandes.

Evaluar un polinomio de forma ingenua calcula cada potencia por separado: , , x⁴... lo que suma n(n+1)/2 multiplicaciones. El esquema de Horner factoriza sucesivamente y necesita solo n multiplicaciones y n sumas. Para grado 100, eso son 100 operaciones frente a 5050.

Horner no es solo más rápido: es más estable numéricamente, porque evita calcular potencias grandes que luego se cancelan con coeficientes pequeños. Es el algoritmo que usan las bibliotecas para evaluar polinomios, incluidos los que aproximan sin, exp o log internamente.

El grado del producto es la suma de los grados, hecho que parece trivial y tiene consecuencias: multiplicar dos polinomios de grado 50 da uno de grado 100, y por eso el coste de las operaciones simbólicas crece rápido. Es la razón por la que el álgebra computacional es cara.

Ejemplo trabajado

Producto y evaluación de p(x) = x² − 3x + 2.

p = x² − 3x + 2       (grado 2)
q = 2x + 1            (grado 1)

p·q: convolución de [1,−3,2] con [2,1]
     = 2x³ − 5x² + x + 2      (grado 3 = 2 + 1)  ✓

Evaluar p(3):
  directo: 3² − 3·3 + 2 = 9 − 9 + 2 = 2
  Horner:  ((1)·3 + (−3))·3 + 2 = (0)·3 + 2 = 2   ✓

  multiplicaciones directas: 3   (x², y dos productos)
  multiplicaciones Horner:   2

Qué ejecuta el laboratorio

Suma, producto y evaluación de polinomios por Horner.

GrupoSalidas
Resultados numéricos (5)grado_p, grado_producto, p(3)_horner, p(3)_directo, multiplicaciones_horner
Comprobaciones (0)
compmath run 046

Errores conceptuales frecuentes

  1. Evaluar potencias por separado en polinomios de grado alto.
  2. Confundir el producto de polinomios con el producto término a término.
  3. Olvidar los coeficientes nulos al escribir el vector de coeficientes.

Dónde se usa

Evaluación de funciones especiales en bibliotecas matemáticas, interpolación (clase 225), ajuste polinómico y aritmética de precisión arbitraria. La convolución de coeficientes es la misma operación que en señales.

Bibliografía de la clase

047 · Factorización elemental

Parte 02 · clase 7 de 20 · demostración factoring

Factorizar expone las raíces; las relaciones de Vieta las conectan con los coeficientes.

x² + bx + c = (x − r₁)(x − r₂)
r₁ + r₂ = −b,   r₁·r₂ = c

Fundamentos

Factorizar un polinomio es escribirlo como producto de factores más simples. Su valor práctico es que las raíces se leen directamente: si p(x) = (x−1)(x−2), las raíces son 1 y 2 sin resolver nada. Esa es la razón por la que factorizar es útil, y no un ejercicio de manipulación.

Las relaciones de Vieta conectan las raíces con los coeficientes sin calcularlas: para x² + bx + c, la suma de las raíces es −b y su producto es c. Esto sirve para dos cosas. Primero, para adivinar factorizaciones con coeficientes enteros: hay que buscar dos números que sumen −b y multipliquen c. Segundo, y más importante en este programa, para verificar: si las raíces calculadas no satisfacen las relaciones, hay un error.

Esa verificación es exactamente la que la clase 036 usó para detectar la inestabilidad de la fórmula cuadrática. El producto de las raíces debe ser c/a; cuando la fórmula ingenua sufre cancelación, la relación de Vieta lo delata de inmediato.

No todo polinomio factoriza sobre los racionales. x² + 1 no tiene raíces reales y x² − 2 las tiene irracionales. El teorema fundamental del álgebra garantiza que sobre los complejos todo polinomio de grado n tiene exactamente n raíces contando multiplicidad, y ese es el marco en el que la factorización siempre existe.

Ejemplo trabajado

Factorizar x² − 3x + 2 y verificar con Vieta.

Buscar r₁, r₂ con  r₁ + r₂ = 3  y  r₁·r₂ = 2
Candidatos enteros: 1 y 2

x² − 3x + 2 = (x − 1)(x − 2)

Verificación desarrollando:
  (x−1)(x−2) = x² − 2x − x + 2 = x² − 3x + 2   ✓

Vieta:
  suma:     1 + 2 = 3 = −b   ✓   (b = −3)
  producto: 1 · 2 = 2 =  c   ✓

Qué ejecuta el laboratorio

Factorizar x² - 3x + 2 y comprobar las raíces.

GrupoSalidas
Resultados numéricos (4)suma_de_raices, suma_teorica_-b, producto_de_raices, producto_teorico_c
Comprobaciones (0)
compmath run 047

Errores conceptuales frecuentes

  1. Buscar solo factorizaciones con enteros: muchos polinomios no las tienen.
  2. Equivocar el signo al aplicar Vieta: la suma es −b, no b.
  3. Factorizar sin verificar desarrollando el producto.

Dónde se usa

Simplificación de expresiones racionales, análisis de estabilidad por raíces del polinomio característico y verificación de solvers de raíces (clase 036).

Bibliografía de la clase

048 · Ecuaciones cuadráticas

Parte 02 · clase 8 de 20 · demostración quadratic_equation

El vértice de una parábola está en x = −b/2a y es el punto medio de las raíces.

raíces: x = (−b ± √(b²−4ac)) / 2a
vértice: xᵥ = −b/2a,  yᵥ = a·xᵥ² + b·xᵥ + c

Fundamentos

La ecuación cuadrática es el primer caso en que la solución exige una fórmula y no solo despejar. Su deducción —completar el cuadrado— es instructiva porque es la misma técnica que aparece en la parte 06 al diagonalizar formas cuadráticas y en la parte 09 al normalizar la densidad de una gaussiana.

El vértice está en x = −b/2a, que es exactamente el punto medio entre las dos raíces. Eso no es coincidencia: la parábola es simétrica respecto a la recta vertical que pasa por su vértice, y las raíces son simétricas respecto a ella. De ahí que el vértice se pueda calcular sin conocer las raíces, y viceversa.

La forma de vértice, a(x − xᵥ)² + yᵥ, hace evidente lo que la forma estándar oculta: el signo de a decide si el vértice es mínimo o máximo, y yᵥ es el valor extremo. En optimización esto es el caso más simple posible de la condición de segundo orden que la parte 08 generaliza con el Hessiano.

La minimización de una cuadrática es el problema modelo de toda la parte 12: la función objetivo x² + 20y² que usan los optimizadores es una cuadrática multivariable, y su mínimo se conoce analíticamente, lo que permite medir cuánto se acerca cada algoritmo.

Ejemplo trabajado

Analizar 2x² − 8x + 6 = 0.

a = 2, b = −8, c = 6
discriminante = 64 − 48 = 16 > 0  → dos raíces reales

raíces: (8 ± 4)/4  →  r₁ = 3,  r₂ = 1

vértice: xᵥ = −(−8)/(2·2) = 2
         yᵥ = 2·4 − 8·2 + 6 = −2

Comprobación de simetría:
  punto medio de las raíces = (3 + 1)/2 = 2 = xᵥ   ✓

Como a = 2 > 0, la parábola abre hacia arriba y el vértice es un MÍNIMO.

Qué ejecuta el laboratorio

Resolver una cuadrática y contrastar con la forma de vértice.

GrupoSalidas
Resultados numéricos (3)discriminante, vertice_x, vertice_y
Comprobaciones (1)vertice_es_punto_medio_de_raices
compmath run 048

Errores conceptuales frecuentes

  1. Olvidar dividir por 2a en la fórmula de las raíces.
  2. Confundir el signo del vértice: xᵥ = −b/2a, no b/2a.
  3. Suponer que el vértice es siempre un mínimo sin mirar el signo de a.

Dónde se usa

Optimización cuadrática (clase 258), ajuste por mínimos cuadrados —cuyo objetivo es una cuadrática— y análisis de trayectorias parabólicas en física y videojuegos.

Bibliografía de la clase

049 · Fórmula cuadrática y discriminante

Parte 02 · clase 9 de 20 · demostración discriminant

El discriminante clasifica las raíces antes de calcularlas.

Δ = b² − 4ac
Δ > 0: dos raíces reales · Δ = 0: una doble · Δ < 0: dos complejas conjugadas

Fundamentos

El discriminante es un ejemplo de una idea muy general: obtener información cualitativa sobre la solución sin resolver. Su signo determina la naturaleza de las raíces, y calcularlo cuesta tres operaciones frente a las siete de la fórmula completa. En una implementación, comprobar el discriminante antes de llamar a sqrt evita una excepción o un NaN.

Los tres casos tienen lectura geométrica: Δ > 0 significa que la parábola corta el eje x en dos puntos; Δ = 0, que lo toca en uno (el vértice está sobre el eje); Δ < 0, que no lo corta. Las raíces complejas no son un artefacto: describen oscilaciones, y en la parte 13 aparecerán como las frecuencias de una señal.

El caso Δ = 0 es delicado numéricamente. Comprobar Δ == 0 con floats casi nunca es correcto: el discriminante calculado rara vez da exactamente cero aunque la raíz sea doble. Hay que usar una tolerancia relativa a la escala de los coeficientes, decisión que debe documentarse.

La misma idea —un indicador que clasifica antes de resolver— reaparece en el determinante para sistemas (clase 045), en el signo de los autovalores del Hessiano para puntos críticos (clase 169) y en el signo del producto f(a)·f(b) para la bisección (clase 222).

Ejemplo trabajado

Los tres casos con sus coeficientes.

Caso              (a, b, c)      Δ = b²−4ac    naturaleza
dos reales        (1, −5,  6)    25 − 24 = 1   2 raíces: 3 y 2
una doble         (1, −4,  4)    16 − 16 = 0   1 raíz doble: 2
complejas         (1,  1,  1)     1 −  4 = −3  2 conjugadas

Complejas explícitas: (−1 ± i√3)/2

Precaución numérica:
  comprobar Δ == 0 con floats es casi siempre incorrecto;
  usar |Δ| < tol · max(|b²|, |4ac|)

Qué ejecuta el laboratorio

El discriminante clasifica las raíces antes de calcularlas.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (0)
compmath run 049

Errores conceptuales frecuentes

  1. Comparar el discriminante con cero usando == en aritmética de punto flotante.
  2. Llamar a sqrt sin comprobar antes el signo del discriminante.
  3. Tratar las raíces complejas como un error en lugar de como información.

Dónde se usa

Estabilidad de sistemas dinámicos (raíces del polinomio característico), clasificación de cónicas y decisión previa en cualquier solver de raíces.

Bibliografía de la clase

050 · Exponentes algebraicos

Parte 02 · clase 10 de 20 · demostración algebraic_exponents

Los exponentes fraccionarios extienden las leyes de potencias y definen las raíces.

a^(m/n) = ⁿ√(aᵐ)
a^(1/3) · a^(2/3) = a
dominio de a^(1/2): a ≥ 0 en ℝ

Fundamentos

La extensión de los exponentes a números fraccionarios sigue el mismo principio que la clase 008 aplicó a los negativos: se elige la definición que conserva las leyes. Si a^(1/n) debe cumplir (a^(1/n))ⁿ = a^(n/n) = a, entonces a^(1/n) es la raíz n-ésima. La notación de exponente no es una alternativa a la de radical: es la que permite operar sin casos especiales.

Con esa definición, el álgebra funciona: a^(1/3) · a^(2/3) = a^(1/3+2/3) = a¹ = a. El laboratorio comprueba precisamente esa identidad, y en punto flotante se cumple solo dentro de una tolerancia, porque cada potencia fraccionaria introduce redondeo.

El dominio sigue las reglas de la clase 009: con denominador par, la base debe ser no negativa en los reales. Y hay una trampa de implementación que conviene conocer: (-8) (1/3) en Python devuelve un complejo o nan según el tipo, porque 1/3 es un float que no es exactamente un tercio. Para raíces cúbicas de negativos hay que calcular -(8 (1/3)) explícitamente, como hace el motor.

Extender aún más —a exponentes reales arbitrarios— exige definir a^x = e^(x ln a), que es la ruta que toma el análisis y la que usa la implementación de pow. Ese es el puente hacia las funciones exponencial y logarítmica de las clases 055 y 056.

Ejemplo trabajado

Exponentes fraccionarios con base 8.

8^(1/3)  = 2.0            (raíz cúbica)
8^(2/3)  = 4.0            (raíz cúbica al cuadrado)
8^(−1)   = 0.125
8^(−1/3) = 0.5

Ley del producto:
  8^(1/3) · 8^(2/3) = 2.0 · 4.0 = 8.0 = 8¹   ✓

Dominio:
  (−8)^(1/3) en ℝ  →  −2   (raíz impar, existe)
  (−8)^(1/2) en ℝ  →  no existe
  En Python: (-8) ** (1/3) NO devuelve −2; hay que escribir −(8 ** (1/3))

Qué ejecuta el laboratorio

Exponentes negativos, fraccionarios y su dominio.

GrupoSalidas
Resultados numéricos (5)x^(1/3), x^(2/3), x^(-1), x^(-1/3), producto_x^(1/3)*x^(2/3)
Comprobaciones (1)es_x
compmath run 050

Errores conceptuales frecuentes

  1. Escribir (-8) ** (1/3) esperando −2.
  2. Aplicar exponentes fraccionarios a bases negativas sin comprobar la paridad del denominador.
  3. Comparar identidades de exponentes con == en lugar de con tolerancia.

Dónde se usa

Normas Lp con p no entero (clase 104), transformaciones de potencia en estadística (Box-Cox) y escalado de leyes de potencia en las leyes de escala (clase 359).

Bibliografía de la clase

051 · Logaritmos y sus propiedades

Parte 02 · clase 11 de 20 · demostración logarithm_laws

El logaritmo convierte productos en sumas, y por eso toda verosimilitud se calcula en escala logarítmica.

log(ab) = log a + log b
log(a/b) = log a − log b
log(aⁿ) = n log a
log_b(a) = ln a / ln b

Fundamentos

El logaritmo se inventó, literalmente, para convertir multiplicaciones en sumas. Napier publicó sus tablas en 1614 con ese propósito explícito: antes de las calculadoras, multiplicar dos números de seis cifras era costoso y sumar sus logaritmos no. Esa misma propiedad, cuatro siglos después, es la razón por la que el logaritmo está en el centro de la estadística y del machine learning.

El motivo es de precisión, no de velocidad. Multiplicar diez mil probabilidades —cada una menor que 1— produce un número tan pequeño que hace underflow a cero en float64 (clase 033). Sumar diez mil logaritmos no tiene ese problema. Por eso la verosimilitud se maximiza siempre como log-verosimilitud (clase 215) y por eso la pérdida de un clasificador es cross-entropy, que es una suma de logaritmos (clase 263).

Las tres leyes se deducen directamente de las de exponentes, porque el logaritmo es su función inversa. log(ab) = log a + log b es exactamente aᵐ·aⁿ = aᵐ⁺ⁿ leído al revés. El cambio de base, log_b(a) = ln a / ln b, permite calcular cualquier logaritmo con uno solo implementado.

Numéricamente hay dos precauciones. El dominio es x > 0, y log(0) es −inf: por eso toda implementación de cross-entropy añade un epsilon. Y log(1 + x) para x pequeño sufre cancelación, de ahí que exista log1p (clase 040).

Ejemplo trabajado

Las tres leyes verificadas con a = 12, b = 5.

log(12·5) = log(60) = 4.094345
log 12 + log 5 = 2.484907 + 1.609438 = 4.094345    ✓

log(12/5) = log(2.4) = 0.875469
log 12 − log 5 = 2.484907 − 1.609438 = 0.875469    ✓

log(12³) = log(1728) = 7.454720
3·log 12 = 3 · 2.484907 = 7.454720                 ✓

Cambio de base:
  log₂(12) = ln 12 / ln 2 = 2.484907/0.693147 = 3.584963
  math.log2(12) = 3.584963                          ✓

Qué ejecuta el laboratorio

Las tres leyes del logaritmo verificadas numéricamente.

GrupoSalidas
Resultados numéricos (8)log(a*b), log(a)+log(b), log(a/b), log(a)-log(b), log(a^3), 3*log(a), cambio_de_base_log2(a), math.log2(a)
Comprobaciones (1)ley_producto
compmath run 051

Errores conceptuales frecuentes

  1. Aplicar log a valores no positivos sin proteger el dominio.
  2. Escribir log(a + b) = log a + log b: la ley es para el producto, no para la suma.
  3. Multiplicar muchas probabilidades en lugar de sumar sus logaritmos.

Dónde se usa

Log-verosimilitud, cross-entropy, entropía, escalas logarítmicas (decibelios, pH, magnitud sísmica), perplejidad de un modelo de lenguaje y leyes de escala.

Bibliografía de la clase

052 · Funciones: dominio y rango

Parte 02 · clase 12 de 20 · demostración domain_range

El dominio forma parte de la definición de una función: cambiarlo cambia la función.

f(x) = 1/(x−2),  dominio ℝ \ {2},  imagen ℝ \ {0}
asíntota vertical en x = 2, horizontal en y = 0

Fundamentos

Una función es una terna: dominio, codominio y regla de asignación. Dos funciones con la misma fórmula y distinto dominio son funciones distintas. Esa precisión, que parece pedante, es la que evita evaluar una expresión fuera de donde tiene sentido —el error de modelado más común— y la que hace que preguntas como «¿es invertible?» tengan respuesta.

Determinar el dominio consiste en excluir lo que no está definido: denominadores nulos, raíces pares de negativos, logaritmos de valores no positivos. La imagen es más difícil: exige razonar sobre qué valores alcanza realmente la función, no solo cuáles son plausibles.

Las asíntotas describen el comportamiento en las fronteras del dominio y en el infinito. 1/(x−2) tiene una asíntota vertical en 2 —donde el dominio se rompe— y una horizontal en 0 —el valor al que tiende cuando x crece—. Ambas son, en el fondo, límites, y la parte 07 las formalizará.

En implementación esto se traduce en una regla simple: toda función debe declarar y validar su dominio. Un modelo que recibe una entrada fuera de su rango de validez no falla ruidosamente: devuelve un número, y ese número no significa nada. La validación de entradas es el equivalente en ingeniería de declarar el dominio.

Ejemplo trabajado

Analizar f(x) = 1/(x−2).

Dominio: ℝ \ {2}         (el denominador se anula en x = 2)
Imagen:  ℝ \ {0}         (nunca vale 0: 1/algo ≠ 0)

valores:
  f(0)   = −0.5
  f(1.9) = −10.0         se dispara al acercarse por la izquierda
  f(2.1) =  10.0         y por la derecha, con signo opuesto
  f(5)   =  0.333

asíntota vertical:   x = 2
asíntota horizontal: y = 0
¿f(2) definido?      No

Qué ejecuta el laboratorio

El dominio forma parte de la definición de la función.

GrupoSalidas
Resultados numéricos (2)asintota_vertical, asintota_horizontal
Comprobaciones (1)x=2_definido
compmath run 052

Errores conceptuales frecuentes

  1. Evaluar una función fuera de su dominio y aceptar el resultado.
  2. Confundir codominio (donde puede caer) con imagen (donde realmente cae).
  3. Suponer que una función continua en su dominio no tiene asíntotas.

Dónde se usa

Validación de entradas, rango de validez de un modelo, dominio de una activación y detección de valores fuera de distribución en inferencia.

Bibliografía de la clase

053 · Funciones lineales y pendiente

Parte 02 · clase 13 de 20 · demostración linear_function

Una función lineal tiene razón de cambio constante; la pendiente es esa razón.

y = mx + b
m = (y₂ − y₁)/(x₂ − x₁)

Fundamentos

La función lineal es el modelo más simple que no es constante, y por eso es la primera hipótesis razonable ante cualquier conjunto de datos. Su propiedad definitoria es que la razón de cambio es constante: aumentar x en una unidad siempre cambia y en m, independientemente de dónde se esté.

Comprobar linealidad es directo: calcular la pendiente con dos puntos y verificar que predice correctamente un tercero. Si no lo hace, la relación no es lineal, y conviene saberlo antes de ajustar una recta. Esa comprobación es la versión elemental del análisis de residuos que la parte 10 formaliza.

La pendiente es un peso en el sentido del machine learning: dice cuánto contribuye la entrada a la salida. La generalización a varias entradas, y = w₁x₁ + ... + wₙxₙ + b, es exactamente una capa lineal, y cada wᵢ es la pendiente parcial respecto a xᵢ —lo que la parte 08 llamará derivada parcial—.

Una advertencia que el programa repetirá: casi ninguna relación real es lineal en todo su rango. La linealidad es una aproximación local, y la parte 07 explicará por qué: la derivada es precisamente la pendiente de la mejor recta que aproxima la función cerca de un punto.

Ejemplo trabajado

Comprobar linealidad con tres puntos.

puntos: (1, 5), (3, 11), (7, 23)

pendiente con los dos primeros:
  m = (11 − 5)/(3 − 1) = 6/2 = 3

intercepto:
  b = 5 − 3·1 = 2

modelo: y = 3x + 2

predicción del tercer punto:
  3·7 + 2 = 23     observado: 23     ✓  es lineal

Si el tercer punto hubiera sido (7, 30), el modelo lineal quedaría descartado con una sola comprobación.

Qué ejecuta el laboratorio

Pendiente como razón de cambio constante.

GrupoSalidas
Resultados numéricos (3)pendiente, intercepto, predice_tercer_punto
Comprobaciones (1)es_lineal
compmath run 053

Errores conceptuales frecuentes

  1. Ajustar una recta sin comprobar antes que la relación es aproximadamente lineal.
  2. Confundir pendiente con correlación: la pendiente tiene unidades, la correlación no.
  3. Extrapolar un modelo lineal fuera del rango de los datos observados.

Dónde se usa

Regresión lineal (clase 282), capas densas (clase 110), tasas de cambio y cualquier aproximación de primer orden. La derivada es la pendiente de la recta tangente.

Bibliografía de la clase

054 · Funciones cuadráticas y parábolas

Parte 02 · clase 14 de 20 · demostración quadratic_function

El signo del coeficiente principal decide la concavidad, y el vértice es el extremo.

f(x) = ax² + bx + c
xᵥ = −b/2a;  a > 0 ⟹ mínimo,  a < 0 ⟹ máximo

Fundamentos

La función cuadrática es el primer modelo con un extremo, y por eso es el ejemplo canónico de optimización. Todo lo que la parte 12 hace con funciones complicadas se puede visualizar aquí: hay un punto donde la derivada se anula, y el signo de la curvatura decide si es mínimo o máximo.

La concavidad la determina a: positivo abre hacia arriba y el vértice es un mínimo; negativo abre hacia abajo y es un máximo. En la parte 08 ese a se convertirá en el Hessiano, y «positivo» en «definido positivo», pero la lógica es idéntica.

La simetría respecto al eje vertical x = xᵥ es una propiedad estructural: f(xᵥ − h) y f(xᵥ + h) valen lo mismo para cualquier h. Comprobarlo numéricamente es una verificación barata de que el vértice se calculó bien.

Las cuadráticas son además el problema modelo de la optimización numérica porque su mínimo se conoce en forma cerrada. Toda la parte 12 usa f(x,y) = x² + 20y² como banco de pruebas precisamente por eso: se puede medir exactamente cuánto se aleja cada optimizador del óptimo conocido.

Ejemplo trabajado

Analizar f(x) = −x² + 6x − 5.

a = −1 < 0  →  abre hacia abajo, el vértice es un MÁXIMO

xᵥ = −6/(2·(−1)) = 3
yᵥ = −9 + 18 − 5 = 4

Simetría (h = 2):
  f(1) = −1 + 6 − 5 = 0
  f(5) = −25 + 30 − 5 = 0     ✓  iguales

raíces: −x² + 6x − 5 = 0 → x = 1, x = 5
punto medio: (1+5)/2 = 3 = xᵥ   ✓

Qué ejecuta el laboratorio

Vértice, eje de simetría y concavidad.

GrupoSalidas
Resultados numéricos (3)eje_de_simetria, f(xv-2), f(xv+2)
Comprobaciones (2)es_maximo, simetria_verificada
compmath run 054

Errores conceptuales frecuentes

  1. Suponer que el vértice es siempre un mínimo.
  2. Calcular xᵥ como b/2a en lugar de −b/2a.
  3. Confundir el vértice (punto) con el valor extremo (ordenada del vértice).

Dónde se usa

Optimización cuadrática, ajuste por mínimos cuadrados, trayectorias balísticas y aproximación de segundo orden de cualquier función suave (Taylor, clase 151).

Bibliografía de la clase

055 · Funciones exponenciales

Parte 02 · clase 15 de 20 · demostración exponential_function

El crecimiento exponencial tiene razón constante, no diferencia constante.

P(t) = P₀·bᵗ
tiempo de duplicación = ln 2 / ln b
regla del 72: t ≈ 72 / (porcentaje anual)

Fundamentos

La diferencia entre crecimiento lineal y exponencial es la diferencia entre sumar y multiplicar una cantidad fija en cada periodo. Es fácil de enunciar y difícil de intuir: la intuición humana es lineal, y por eso las predicciones sobre procesos exponenciales —epidemias, interés compuesto, capacidad de cómputo— fallan sistemáticamente por defecto.

El indicador más útil es el tiempo de duplicación: cuánto tarda la cantidad en multiplicarse por dos. Se obtiene de ln 2 / ln b y no depende del valor inicial, lo que lo convierte en una propiedad del proceso. La «regla del 72» es su aproximación mental: dividir 72 entre el porcentaje anual da los años aproximados.

Todo crecimiento exponencial real termina saturándose, porque los recursos son finitos. El modelo exponencial es válido en la fase inicial y deja de serlo después; el modelo logístico describe la transición. Aplicar un exponencial fuera de su fase de validez produce predicciones absurdas, y ese es el error de modelado más citado en divulgación científica.

En machine learning el crecimiento exponencial aparece en el decaimiento del learning rate, en las medias móviles exponenciales de Adam (clase 250) y en el término e^z de la softmax, cuyo desbordamiento obliga a restar el máximo (clase 321).

Ejemplo trabajado

Población que crece un 8 % anual desde un millón.

P(t) = 10⁶ · 1.08ᵗ

t = 0     1 000 000
t = 5     1 469 328
t = 10    2 158 925
t = 20    4 660 957

razón entre años consecutivos: P(6)/P(5) = 1.08   (constante) ✓

tiempo de duplicación: ln 2 / ln 1.08 = 0.6931/0.07696 = 9.006 años
regla del 72:          72/8 = 9 años                      ✓ aproximación

Qué ejecuta el laboratorio

Crecimiento exponencial: razón constante, no diferencia constante.

GrupoSalidas
Resultados numéricos (3)razon_entre_años_consecutivos, tiempo_de_duplicacion, regla_del_72_aproximada
Comprobaciones (0)
compmath run 055

Errores conceptuales frecuentes

  1. Modelar como lineal un proceso con razón constante.
  2. Extrapolar un exponencial más allá de su fase de validez.
  3. Confundir la razón (multiplicativa) con la diferencia (aditiva) entre periodos.

Dónde se usa

Interés compuesto, crecimiento de usuarios, propagación epidémica, decaimiento del learning rate y medias móviles exponenciales de los optimizadores.

Bibliografía de la clase

056 · Funciones logarítmicas

Parte 02 · clase 16 de 20 · demostración logarithmic_function

El logaritmo es la inversa de la exponencial y convierte factores en distancias iguales.

y = log_b(x)  ⟺  x = bʸ
escala logarítmica: distancias iguales ⟹ factores iguales

Fundamentos

La función logarítmica deshace la exponencial, y esa relación de inversa es lo que la hace útil: convierte una pregunta sobre crecimiento («¿cuánto tarda en multiplicarse por 10?») en una pregunta sobre suma. Su crecimiento es extraordinariamente lento —de 10³ a 10⁶ el logaritmo decimal solo sube 3— y por eso comprime rangos enormes.

La escala logarítmica es la aplicación práctica más visible. En un eje logarítmico, una exponencial se ve como una recta, lo que permite identificar el modelo a simple vista y leer la tasa como pendiente. Los decibelios, el pH, la escala de magnitud sísmica y las curvas de aprendizaje de los modelos usan esa propiedad.

El dominio es x > 0, sin excepciones: no hay ningún exponente al que elevar una base positiva para obtener un número negativo. log(0) tiende a −inf, y ese es el motivo técnico por el que toda implementación de entropía o cross-entropy protege el argumento con un epsilon (clase 263).

En las leyes de escala de los modelos de lenguaje (clase 359), la relación entre pérdida y número de parámetros es una ley de potencia, que en escala log-log es una recta cuya pendiente es el exponente. Leer esas gráficas exige entender esta clase.

Ejemplo trabajado

Logaritmo como inversa y como escala.

log₁₀(1000) = 3       porque 10³ = 1000
10^log₁₀(1000) = 1000                    ✓ inversa verificada

Escala: de 10³ a 10⁶ hay un factor 1000
  log₁₀(10⁶) − log₁₀(10³) = 6 − 3 = 3
  tres unidades en el eje = tres órdenes de magnitud

Decibelios: 10·log₁₀(10⁻³) = −30 dB

Dominio: x > 0.  log(0) → −inf,  log(−1) no existe en ℝ

Qué ejecuta el laboratorio

El logaritmo como inversa de la exponencial y como escala.

GrupoSalidas
Resultados numéricos (4)log10(1000), 10^3, escala_decibel_de_1e-3, crecimiento_de_log_entre_1e3_y_1e6
Comprobaciones (1)inversa_verificada
compmath run 056

Errores conceptuales frecuentes

  1. Aplicar logaritmo a cero o a valores negativos sin protección.
  2. Leer una gráfica logarítmica como si fuera lineal.
  3. Confundir log natural, log₁₀ y log₂ al comparar resultados (entropía en nats vs bits).

Dónde se usa

Escalas de medida, visualización de rangos amplios, log-verosimilitud, entropía, perplejidad y lectura de leyes de escala en log-log.

Bibliografía de la clase

057 · Composición de funciones

Parte 02 · clase 17 de 20 · demostración function_composition

La composición aplica funciones en cadena y no es conmutativa: (g∘f) ≠ (f∘g).

(g∘f)(x) = g(f(x))
dominio de g∘f: {x ∈ dom f : f(x) ∈ dom g}

Fundamentos

Componer es encadenar: la salida de una función entra en la siguiente. El orden importa y casi nunca conmuta, hecho que se comprueba con un solo ejemplo numérico. Leer (g∘f)(x) correctamente —primero f, luego g, aunque g esté escrita a la izquierda— es una de las causas frecuentes de error al trasladar fórmulas.

El dominio de la composición no es el dominio de f: hay que exigir además que f(x) caiga dentro del dominio de g. Si g es un logaritmo, hay que garantizar que f(x) > 0. Este detalle es la fuente de los NaN que aparecen cuando una activación produce valores fuera del dominio de la siguiente capa.

Y aquí está la idea que conecta esta parte con todo el resto del programa: una red neuronal es una composición de funciones parametrizadas. f(x) = f_L(...f_2(f_1(x))), donde cada f_i es «transformación lineal seguida de no linealidad». Nada más. La profundidad de una red es la longitud de esa cadena.

La consecuencia inmediata, que la clase 302 hará explícita: si todas las f_i fueran lineales, su composición sería lineal, y apilar capas no aportaría nada. La no linealidad entre capas es lo que hace que la composición sea más expresiva que sus partes. Y derivar una composición es exactamente la regla de la cadena (clase 147).

Ejemplo trabajado

Componer f(x) = 2x + 1 con g(x) = x².

(g∘f)(3) = g(f(3)) = g(7)  = 49
(f∘g)(3) = f(g(3)) = f(9)  = 19
¿conmutan?  No     49 ≠ 19

Cadena de tres:
  f(g(f(3))) = f(g(7)) = f(49) = 99

Analogía directa:
  red neuronal = f_L(...f_2(f_1(x)))
  cada f_i = no_linealidad(W_i · entrada + b_i)

Qué ejecuta el laboratorio

(g∘f) no es (f∘g): la composición no conmuta.

GrupoSalidas
Resultados numéricos (3)(g∘f)(3), (f∘g)(3), cadena_de_3
Comprobaciones (1)conmutan
compmath run 057

Errores conceptuales frecuentes

  1. Leer (g∘f) como «primero g»: se aplica f primero.
  2. Olvidar restringir el dominio para que f(x) caiga en el dominio de g.
  3. Suponer que la composición conmuta.

Dónde se usa

Arquitectura de redes neuronales, pipelines de transformación de datos, cambio de variable en integración (clase 157) y la regla de la cadena.

Bibliografía de la clase

058 · Funciones inversas

Parte 02 · clase 18 de 20 · demostración inverse_function

La inversa deshace la función y existe solo si es inyectiva; no es el recíproco 1/f.

f⁻¹(f(x)) = x  para todo x del dominio
f inyectiva ⟺ f(a) = f(b) ⟹ a = b

Fundamentos

La función inversa deshace lo que la original hizo. Para que exista, la función debe ser inyectiva: dos entradas distintas no pueden dar la misma salida, porque de lo contrario la inversa no sabría a cuál volver. f(x) = x² no es invertible en todo ℝ —2 y −2 dan lo mismo— pero sí lo es restringida a x ≥ 0, y esa restricción es la que define la raíz cuadrada.

La notación f⁻¹ es desafortunada porque se parece a f⁻¹ = 1/f, y no lo es. Para f(x) = 3x − 4, la inversa es (y+4)/3 y el recíproco es 1/(3x−4). Son funciones completamente distintas y confundirlas es un error clásico.

Gráficamente, la inversa es la reflexión respecto a la recta y = x, lo que da una forma visual de comprobar si existe: si alguna recta horizontal corta la gráfica más de una vez, la función no es inyectiva y no tiene inversa global.

En machine learning las inversas aparecen en los normalizing flows, que exigen transformaciones invertibles con jacobiano calculable, y en toda transformación de datos que deba deshacerse para interpretar una predicción en las unidades originales (desestandarizar).

Ejemplo trabajado

Inversa de f(x) = 3x − 4 y contraste con el recíproco.

Despejar:  y = 3x − 4  →  x = (y + 4)/3
f⁻¹(y) = (y + 4)/3

Comprobación en x = 5:
  f(5) = 11
  f⁻¹(11) = (11 + 4)/3 = 5      ✓ roundtrip

Recíproco (COSA DISTINTA):
  1/f(5) = 1/11 = 0.0909

¿f⁻¹ = 1/f?   No.

Condición: f debe ser inyectiva. 3x − 4 lo es en todo ℝ.

Qué ejecuta el laboratorio

Inversa frente a recíproco: dos objetos distintos.

GrupoSalidas
Resultados numéricos (3)f(5), f_inv(f(5)), reciproco_1/f(5)
Comprobaciones (2)roundtrip_ok, inversa_es_reciproco
compmath run 058

Errores conceptuales frecuentes

  1. Confundir la inversa f⁻¹ con el recíproco 1/f.
  2. Invertir una función sin comprobar que es inyectiva.
  3. Olvidar restringir el dominio para que la inversa exista (raíz cuadrada).

Dónde se usa

Desestandarizar predicciones, normalizing flows, cambio de variable en probabilidad (con su jacobiano) y la relación entre exponencial y logaritmo.

Bibliografía de la clase

059 · Funciones por tramos

Parte 02 · clase 19 de 20 · demostración piecewise_function

Una función por tramos se define con reglas distintas en subconjuntos del dominio; ReLU es el ejemplo dominante en IA.

ReLU(x) = max(0, x)
continuidad en el corte: límite por la izquierda = límite por la derecha = valor

Fundamentos

Definir una función por tramos es lo natural cuando el fenómeno cambia de régimen: una tarifa con tramos, un impuesto progresivo, una penalización que solo actúa por encima de un umbral. La única pregunta técnica es qué ocurre en los puntos de corte, y ahí hay que comprobar dos cosas: si la función es continua (los límites laterales coinciden con el valor) y si es derivable (las pendientes laterales coinciden).

Continua y derivable no son lo mismo. ReLU es continua en 0 —ambos lados tienden a 0— pero no derivable, porque la pendiente salta de 0 a 1. En la práctica, los frameworks definen la derivada en 0 por convenio (habitualmente 0), y eso funciona porque el punto exacto tiene medida nula.

ReLU es la activación más usada en deep learning y es literalmente una función por tramos. Su éxito frente a la sigmoide tiene una explicación directa que la clase 303 desarrolla: su derivada vale exactamente 1 en el semieje positivo, así que el gradiente no se atenúa al propagarse por muchas capas. La sigmoide, cuya derivada máxima es 0.25, hace que el gradiente se desvanezca (clase 314).

La contrapartida también es visible aquí: para x < 0 la derivada de ReLU es 0, así que una neurona que caiga en esa región deja de recibir gradiente y «muere». Leaky ReLU —otro tramo, con pendiente pequeña en lugar de nula— existe para evitarlo.

Ejemplo trabajado

Analizar una función de tres tramos.

f(x) = |x|    si x < 0
       x²     si 0 ≤ x < 2
       4      si x ≥ 2

f(−3)    = 3
f(0)     = 0
f(1.999) = 3.996
f(2)     = 4

Continuidad en x = 0:  lím⁻ = 0,  lím⁺ = 0,  f(0) = 0     ✓
Continuidad en x = 2:  lím⁻ = 4,  lím⁺ = 4,  f(2) = 4     ✓

Derivabilidad en x = 0:
  pendiente por la izquierda: −1
  pendiente por la derecha:    0        ✗ no derivable

Qué ejecuta el laboratorio

Una función por tramos y su continuidad en el punto de corte.

GrupoSalidas
Resultados numéricos (4)f(-3), f(0), f(1.999), f(2)
Comprobaciones (3)continua_en_0, continua_en_2, relu_es_por_tramos
compmath run 059

Errores conceptuales frecuentes

  1. Comprobar continuidad y dar por hecha la derivabilidad.
  2. Olvidar definir el valor en el punto de corte.
  3. Suponer que ReLU es derivable en 0: no lo es; su derivada allí es un convenio.

Dónde se usa

Activaciones ReLU y Leaky ReLU, funciones de pérdida robustas como Huber (clase 304), tarifas por tramos e impuestos progresivos.

Bibliografía de la clase

060 · Capstone: construir y comparar modelos funcionales

Parte 02 · clase 20 de 20 · demostración capstone_model_fitting

Elegir modelo es comparar residuos sobre los mismos datos, no elegir la familia que parece más elegante.

SSE = Σ(yᵢ − ŷᵢ)²
linealizar exponencial: ln y = ln a + b·x

Fundamentos

El capstone plantea la pregunta que cierra la parte: dados unos datos, ¿qué familia de funciones los describe? La respuesta no se decide mirando la gráfica ni por preferencia estética: se decide comparando el error de cada candidato sobre los mismos datos, con la misma métrica.

La suma de residuos al cuadrado (SSE) es el criterio más simple. Penaliza más los errores grandes que los pequeños, lo que la hace sensible a valores atípicos —tema de la clase 304— pero la convierte en el objetivo de mínimos cuadrados, que tiene solución cerrada (clase 131).

El truco central para ajustar un exponencial es linealizarlo: tomando logaritmos, y = a·e^(bx) se convierte en ln y = ln a + b·x, que es una recta. Ajustar por mínimos cuadrados en el espacio logarítmico y volver da los parámetros. Conviene saber que esto minimiza el error relativo, no el absoluto, lo que a veces es preferible y a veces no.

La honestidad del procedimiento exige dos advertencias. Primera: un SSE menor no demuestra que el modelo sea correcto, solo que ajusta mejor esos datos; un polinomio de grado suficiente ajusta cualquier cosa (clase 298). Segunda: la comparación solo es válida si ambos modelos se evalúan en la misma escala; comparar un SSE calculado en escala logarítmica con otro en escala lineal no significa nada.

Ejemplo trabajado

Decidir entre lineal y exponencial con seis puntos.

x:  1     2     3      4      5      6
y:  2.1   4.4   8.9   17.5   35.2   70.8

Pista: cada y es aproximadamente el doble del anterior
       → razón ≈ 2 constante → exponencial

Linealización: ln y contra x
  ln y:  0.74  1.48  2.19  2.86  3.56  4.26
  diferencias: ~0.70 constantes → recta ✓

Ajuste:  y = 1.055 · e^(0.702x)
         razón de crecimiento: e^0.702 = 2.018

SSE lineal:      ~1010
SSE exponencial: ~1.5
Modelo elegido: exponencial

Qué ejecuta el laboratorio

Capstone: ¿lineal, cuadrático o exponencial? Decidir con residuos.

GrupoSalidas
Resultados numéricos (3)modelo_lineal_SSE, modelo_exponencial_SSE, razon_de_crecimiento
Comprobaciones (0)
compmath run 060

Errores conceptuales frecuentes

  1. Elegir modelo por inspección visual sin medir residuos.
  2. Comparar SSE calculados en escalas distintas (lineal frente a logarítmica).
  3. Concluir que el modelo con menor SSE es «el correcto» en lugar de «el que mejor ajusta estos datos».

Dónde se usa

Selección de modelos, ajuste de curvas de crecimiento, análisis de escalabilidad y la lectura de leyes de escala. Es el precursor directo de la regresión de la parte 14.

Bibliografía de la clase

Parte 03 — Geometría, trigonometría y geometría analítica

Nivel basico-intermedio · 20 clases · 80 horas · motor part03

Del espacio a las coordenadas: distancia, ángulo, trigonometría, transformaciones lineales en el plano, coordenadas polares y proyección.

Descartes hizo en 1637 el movimiento que define esta parte: identificar un punto del plano con un par de números. A partir de ahí, toda pregunta geométrica se convierte en una pregunta algebraica, y toda respuesta algebraica tiene lectura geométrica. Esa doble vía es la que permite que un ordenador —que solo sabe operar con números— haga gráficos, robótica y visión artificial.

Las clases 061 a 067 construyen la trigonometría desde la geometría del triángulo y del círculo unitario. El punto que conviene no perder es por qué el radián es la unidad correcta: es la única en la que la derivada del seno es el coseno, sin factores de conversión. Trabajar en grados obliga a arrastrar un π/180 en cada derivada, y de ahí salen errores que no producen excepción, solo resultados escalados.

Las clases 068 a 071 son geometría analítica clásica: coordenadas, rectas, distancias y cónicas. La distancia punto-recta de la clase 070 es la misma fórmula que define el margen de una SVM (clase 289), y la ecuación general Ax + By + C = 0 es exactamente wᵀx + b = 0, la frontera de decisión de cualquier clasificador lineal.

Las clases 072 a 078 son el corazón computacional: vectores, transformaciones, matrices de transformación, coordenadas polares, planos y proyección. Aquí aparece por primera vez una matriz como transformación —no como tabla— y aparecen dos hechos que la parte 05 formalizará: componer transformaciones es multiplicar matrices, y el orden importa.

Las coordenadas homogéneas de la clase 073 son un truco brillante y poco intuitivo: añadiendo una dimensión, la traslación —que no es lineal— se convierte en una multiplicación de matrices. Es la razón por la que las GPU pueden aplicar toda la cadena de transformaciones de un vértice con un único producto matricial.

El cierre (079 y 080) monta el pipeline completo: modelo → mundo → cámara → pantalla, el mismo que ejecuta cualquier motor de videojuego y cualquier sistema de visión. Y el capstone comprueba una relación que resume la parte: el área de un polígono transformado es el área original multiplicada por el valor absoluto del determinante.

Ideas centrales

Por qué importa en IA

Las transformaciones geométricas son el caso visual de las transformaciones lineales que una red aplica a sus activaciones; la similitud coseno es trigonometría en alta dimensión.

Errores frecuentes de la parte

Glosario de la parte (18 términos)

TérminoDefiniciónClase
atan2Arcotangente de dos argumentos que devuelve el ángulo correcto en los cuatro cuadrantes.065
Coordenadas homogéneasRepresentación con una dimensión extra que convierte la traslación en multiplicación de matrices.073
Coordenadas polaresRepresentación (r, θ) de un punto por su distancia al origen y su ángulo.076
CuadranteCada una de las cuatro regiones en que los ejes dividen el plano, numeradas en sentido antihorario.068
Círculo unitarioCircunferencia de radio 1 centrada en el origen. Define seno y coseno para cualquier ángulo real.067
Determinante como factor de áreaEl valor absoluto del determinante es el factor por el que una transformación multiplica las áreas.075
Distancia euclídeaNorma L2 de la diferencia de dos puntos. Es la distancia 'en línea recta'.061
ExcentricidadCociente c/a que clasifica una cónica: 0 circunferencia, <1 elipse, 1 parábola, >1 hipérbola.071
Forma general de la rectaAx + By + C = 0. Es la misma expresión que la frontera de decisión wᵀx + b = 0.069
Identidad pitagóricasin²θ + cos²θ = 1. Es el teorema de Pitágoras sobre el círculo unitario.066
Matriz de rotaciónMatriz ortogonal de determinante 1 que preserva normas y ángulos.074
Pie de perpendicularProyección ortogonal de un punto sobre una recta; el punto de la recta más cercano a él.070
Producto cruzVector ortogonal a dos dados, cuya norma es el área del paralelogramo que forman.077
Proyección en perspectivaDivisión por la profundidad que hace que los objetos lejanos se vean más pequeños.078
RadiánÁngulo cuyo arco mide igual que el radio. Es la unidad en la que d(sin x)/dx = cos x sin factores extra.062
SemejanzaRelación entre figuras con los mismos ángulos y lados proporcionales. Las áreas escalan con el cuadrado del factor.063
Terna pitagóricaTres enteros que cumplen a² + b² = c². Se generan con a = m²−n², b = 2mn, c = m²+n².064
Vector unitarioVector de norma 1. Codifica dirección sin magnitud.072

Bibliografía de la parte

061 · Puntos, segmentos y distancias

Parte 03 · clase 1 de 20 · demostración distances

La distancia euclídea es una de varias métricas posibles; cuál se elige cambia qué está cerca.

L2: d(p,q) = √Σ(pᵢ−qᵢ)²
L1: d(p,q) = Σ|pᵢ−qᵢ|
L∞: d(p,q) = máx|pᵢ−qᵢ|

Fundamentos

Una distancia no es «la» distancia: es cualquier función que cumpla tres condiciones —no negatividad con d(p,q)=0 solo si p=q, simetría y desigualdad triangular—. Bajo esa definición, la euclídea es una entre muchas, y elegir una u otra cambia qué puntos se consideran cercanos.

Las tres más usadas tienen interpretación directa. La euclídea (L2) es la línea recta: la que mediría una regla. La Manhattan (L1) es la distancia por calles en cuadrícula, y su nombre viene de ahí. La Chebyshev (L∞) es el máximo de las diferencias por coordenada: el movimiento del rey en ajedrez.

Siempre se cumple L∞ ≤ L2 ≤ L1, hecho que conviene comprobar numéricamente porque da una intuición útil: L1 penaliza más el total de desviaciones, L∞ solo mira la peor. Esa diferencia reaparece en la parte 14 como la diferencia entre regularización Lasso (L1) y Ridge (L2), y en la 15 entre pérdida MAE y MSE.

En alta dimensión la intuición euclídea falla. Todas las distancias entre puntos aleatorios se concentran alrededor de un valor común, y la noción de «vecino más cercano» pierde significado. Es la maldición de la dimensionalidad, y es la razón por la que en embeddings se usa similitud coseno en lugar de distancia euclídea.

Ejemplo trabajado

Tres distancias entre p = (1,2) y q = (4,6).

diferencias: (3, 4)

L2 (euclídea):  √(9 + 16) = √25 = 5.0
L1 (Manhattan): |3| + |4|       = 7.0
L∞ (Chebyshev): máx(3, 4)       = 4.0

Orden:  L∞ (4) ≤ L2 (5) ≤ L1 (7)      ✓

Punto medio: ((1+4)/2, (2+6)/2) = (2.5, 4.0)

El triángulo (3,4,5) no es casual: es la terna pitagórica más simple, tema de la clase 064.

Qué ejecuta el laboratorio

Distancia euclídea, Manhattan y Chebyshev sobre los mismos puntos.

GrupoSalidas
Resultados numéricos (3)euclidea_L2, manhattan_L1, chebyshev_Linf
Comprobaciones (1)orden_L1>=L2>=Linf
compmath run 061

Errores conceptuales frecuentes

  1. Suponer que «distancia» siempre significa euclídea.
  2. Comparar distancias entre variables de escalas distintas sin estandarizar.
  3. Confiar en la intuición euclídea de 2D o 3D al trabajar en dimensión 768.

Dónde se usa

k-NN y k-means (parte 14), detección de anomalías, búsqueda de vecinos en embeddings y elección de norma en regularización.

Bibliografía de la clase

062 · Ángulos y radianes

Parte 03 · clase 2 de 20 · demostración angles_radians

El radián es la unidad natural del ángulo: en ella, la derivada del seno es el coseno sin factores de conversión.

θ(rad) = θ(grados) · π/180
vuelta completa = 2π rad = 360°
d(sin x)/dx = cos x   solo si x está en radianes

Fundamentos

Un radián es el ángulo cuyo arco mide lo mismo que el radio. Esa definición hace que la longitud de arco sea simplemente s = rθ, sin constantes, y es el primer indicio de por qué el radián es «natural»: elimina factores arbitrarios.

El motivo profundo aparece en cálculo. La derivada de sin x es cos x únicamente si x está en radianes; en grados, la derivada es (π/180)·cos x. Ese factor contaminaría cada derivada, cada serie de Taylor y cada ecuación diferencial. Por eso todas las bibliotecas matemáticas trabajan internamente en radianes, y math.sin(90) no devuelve 1 sino el seno de 90 radianes.

El error de unidad angular es de los más frecuentes y de los más silenciosos: el resultado no lanza excepción, simplemente es incorrecto por un factor. La defensa es la misma que la clase 012 propuso: declarar la unidad en el nombre de la variable (angulo_rad, angulo_deg) y convertir explícitamente en las fronteras.

La comprobación numérica que hace el laboratorio es directa: calcular la derivada de sin por diferencias finitas en un ángulo dado en radianes y verificar que coincide con el coseno de ese ángulo. Si se hiciera en grados, la discrepancia sería de un factor 57.3.

Ejemplo trabajado

Verificar que d(sin)/dx = cos solo en radianes.

30° = 30 · π/180 = 0.5236 rad = π/6

Derivada numérica en x = 0.5236 rad:
  (sin(x+h) − sin(x−h)) / 2h   con h = 1e−7
  = 0.8660254

cos(0.5236) = 0.8660254                      ✓ coinciden

Si el ángulo se pasara en grados (x = 30):
  d(sin)/dx en grados = (π/180)·cos(30°) = 0.01511
  factor de discrepancia: 180/π = 57.3

Qué ejecuta el laboratorio

Grados y radianes: por qué el radián es la unidad natural.

GrupoSalidas
Resultados numéricos (6)grados, radianes, pi/6, vuelta_completa_rad, d(sin)/dx_en_radianes, cos(x)
Comprobaciones (1)coinciden
compmath run 062

Errores conceptuales frecuentes

  1. Pasar grados a una función trigonométrica que espera radianes.
  2. Convertir con 180/π donde correspondía π/180.
  3. No declarar la unidad angular en el nombre de la variable.

Dónde se usa

Toda la trigonometría computacional, rotaciones en gráficos y robótica, positional encoding de los Transformers (clase 323) y análisis de Fourier (parte 13).

Bibliografía de la clase

063 · Triángulos y semejanza

Parte 03 · clase 3 de 20 · demostración similar_triangles

En figuras semejantes los ángulos se conservan, las longitudes escalan con k y las áreas con k².

longitudes: L' = k·L
áreas: A' = k²·A
volúmenes: V' = k³·V

Fundamentos

Dos figuras son semejantes si tienen los mismos ángulos y sus lados son proporcionales. La consecuencia que sorprende es la ley de escalado: al multiplicar las longitudes por k, las áreas se multiplican por k² y los volúmenes por k³. Duplicar el tamaño de una figura cuadruplica su área y octuplica su volumen.

Esta ley explica fenómenos aparentemente inconexos. Por qué los animales grandes tienen extremidades proporcionalmente más gruesas (el peso crece con el volumen, la resistencia del hueso con la sección); por qué una pizza de 40 cm tiene cuatro veces más superficie que una de 20; por qué duplicar la resolución de una imagen cuadruplica los píxeles y, con ellos, el coste de procesarla.

En computación la ley de escalado es la que convierte una decisión aparentemente menor en un factor de coste. Pasar de imágenes de 224×224 a 448×448 no duplica el cómputo de una CNN: lo cuadruplica. Y en la atención de un Transformer, la memoria crece con el cuadrado de la longitud de secuencia, que es la razón de casi toda la investigación en atención eficiente.

El criterio de semejanza AA —dos ángulos iguales bastan— es el que hace útil el concepto: permite deducir proporcionalidad de lados sin medirlos, y es la base de la trigonometría, donde las razones seno y coseno dependen solo del ángulo precisamente porque todos los triángulos rectángulos con ese ángulo son semejantes.

Ejemplo trabajado

Escalar un triángulo 3-4-5 por k = 2.5.

original:   catetos 3 y 4, hipotenusa 5
            perímetro 12,  área 6

escalado:   catetos 7.5 y 10, hipotenusa 12.5
            perímetro 30,  área 37.5

razón de perímetros: 30/12  = 2.5  = k     ✓
razón de áreas:      37.5/6 = 6.25 = k²    ✓

Los ángulos no cambian: 36.87°, 53.13°, 90°

Qué ejecuta el laboratorio

Semejanza: los ángulos se conservan, las longitudes escalan.

GrupoSalidas
Resultados numéricos (5)factor_de_escala, razon_de_perimetros, razon_de_areas, area_original, area_escalada
Comprobaciones (1)angulos_invariantes
compmath run 063

Errores conceptuales frecuentes

  1. Suponer que al duplicar las dimensiones se duplica el área.
  2. Comparar densidades o costes entre figuras de escalas distintas sin normalizar.
  3. Olvidar que la semejanza exige ángulos iguales, no solo proporción de algunos lados.

Dónde se usa

Coste de procesar imágenes según resolución, memoria cuadrática de la atención, escalado de mallas en gráficos y análisis dimensional en ingeniería.

Bibliografía de la clase

064 · Teorema de Pitágoras

Parte 03 · clase 4 de 20 · demostración pythagoras

El teorema de Pitágoras y su recíproco caracterizan el ángulo recto; las ternas se generan sistemáticamente.

a² + b² = c²  ⟺  el triángulo es rectángulo
generador: a = m²−n²,  b = 2mn,  c = m²+n²  (m > n > 0)

Fundamentos

El teorema de Pitágoras es la relación métrica más usada de toda la matemática computacional, aunque casi nunca se la llame por su nombre: cada vez que se calcula una norma euclídea, se está aplicando. Su recíproco es igual de útil: si a² + b² = c², el triángulo es rectángulo, lo que da una prueba de perpendicularidad sin medir ángulos.

Las ternas pitagóricas —tríos de enteros que lo cumplen— se generan con la fórmula de Euclides a partir de dos enteros m > n: (m²−n², 2mn, m²+n²). Con m=2, n=1 sale la (3,4,5); con m=3, n=2 la (5,12,13). Que exista una parametrización completa es un resultado clásico de teoría de números, y conecta esta clase con la parte 04.

La generalización a n dimensiones es directa: ‖v‖² = Σvᵢ². Y la generalización conceptual es aún más importante: en cualquier espacio con producto interno, si dos vectores son ortogonales entonces ‖u+v‖² = ‖u‖² + ‖v‖². Ese es el teorema de Pitágoras abstracto, y es lo que hace que la descomposición de la varianza en estadística funcione (clase 214) y que la proyección ortogonal sea la mejor aproximación (clase 119).

Una precaución numérica: calcular √(a² + b²) directamente puede desbordar si a o b son grandes, aunque el resultado quepa. Por eso existe math.hypot, que reescala antes de elevar al cuadrado.

Ejemplo trabajado

Generar una terna y verificar el recíproco.

Generador con m = 3, n = 2:
  a = 9 − 4 = 5
  b = 2·3·2 = 12
  c = 9 + 4 = 13

Verificación:  25 + 144 = 169 = 13²      ✓ rectángulo

Contraejemplo:  triángulo 5-5-7
  25 + 25 = 50 ≠ 49 = 7²                 ✗ no es rectángulo

Precaución numérica:
  √(1e200² + 1e200²) desborda
  math.hypot(1e200, 1e200) = 1.414e200    ✓

Qué ejecuta el laboratorio

Pitágoras, su recíproco y una terna pitagórica generada.

GrupoSalidas
Resultados numéricos (3)hipotenusa, a²+b²,
Comprobaciones (2)es_rectangulo, triangulo_5_5_7_es_rectangulo
compmath run 064

Errores conceptuales frecuentes

  1. Aplicar el teorema a un triángulo que no es rectángulo.
  2. Calcular √(a²+b²) directamente con valores grandes en lugar de usar hypot.
  3. Confundir el teorema (rectángulo ⟹ relación) con su recíproco (relación ⟹ rectángulo); ambos son ciertos, pero son afirmaciones distintas.

Dónde se usa

Norma euclídea, cálculo de distancias, verificación de ortogonalidad, descomposición de la varianza y el teorema de Pitágoras en espacios de Hilbert.

Bibliografía de la clase

065 · Seno, coseno y tangente

Parte 03 · clase 5 de 20 · demostración trig_ratios

Seno, coseno y tangente son razones que dependen solo del ángulo, por semejanza de triángulos.

sin θ = opuesto/hipotenusa,  cos θ = adyacente/hipotenusa
tan θ = sin θ / cos θ
atan2(y, x) devuelve el ángulo en el cuadrante correcto

Fundamentos

Las razones trigonométricas están bien definidas gracias a la semejanza (clase 063): todos los triángulos rectángulos con el mismo ángulo agudo son semejantes, así que la razón entre dos de sus lados no depende del tamaño del triángulo, solo del ángulo. Sin ese hecho, «el seno de 30°» no significaría nada.

La tangente es el cociente de las otras dos, y por eso no está definida donde el coseno se anula: en 90° y 270° la tangente diverge. Esa singularidad es real y hay que manejarla; en implementaciones se evita la tangente siempre que se pueda, usando directamente seno y coseno.

Para recuperar el ángulo a partir de las coordenadas, la función correcta es atan2, no atan. atan(y/x) pierde la información del cuadrante —el cociente es el mismo para (1,1) y (−1,−1)— y además falla si x es cero. atan2(y, x) recibe los dos argumentos por separado, devuelve el ángulo en el rango (−π, π] y maneja los cuatro cuadrantes. Usar atan donde correspondía atan2 es un error clásico en robótica y gráficos.

El programa usa estas razones en la clase 076 (coordenadas polares), en la 323 (positional encoding, construido con senos y cosenos de frecuencias distintas) y en cualquier cálculo de ángulo entre vectores.

Ejemplo trabajado

Triángulo con catetos 3 y 4.

opuesto = 3,  adyacente = 4
hipotenusa = √(9+16) = 5

θ = atan2(3, 4) = 0.6435 rad = 36.87°

sin θ = 3/5 = 0.6
cos θ = 4/5 = 0.8
tan θ = 3/4 = 0.75

Comprobación: tan θ = sin θ / cos θ = 0.6/0.8 = 0.75    ✓

Por qué atan2 y no atan:
  atan(3/4)   = 0.6435   (cuadrante I)
  atan(-3/-4) = 0.6435   ← ¡mismo valor, cuadrante III!
  atan2(-3,-4) = -2.498  ✓ correcto

Qué ejecuta el laboratorio

Seno, coseno y tangente sobre un triángulo rectángulo concreto.

GrupoSalidas
Resultados numéricos (8)opuesto, adyacente, hipotenusa, angulo_rad, angulo_grados, sin, cos, tan
Comprobaciones (1)tan_es_sin/cos
compmath run 065

Errores conceptuales frecuentes

  1. Usar atan(y/x) en lugar de atan2(y, x) y perder el cuadrante.
  2. Evaluar la tangente cerca de 90° sin controlar la singularidad.
  3. Confundir cateto opuesto con adyacente al identificar el ángulo.

Dónde se usa

Cálculo de ángulos en robótica y gráficos, conversión a coordenadas polares, positional encoding y análisis de fase en señales.

Bibliografía de la clase

066 · Identidades trigonométricas básicas

Parte 03 · clase 6 de 20 · demostración trig_identities

La identidad pitagórica es el teorema de Pitágoras sobre el círculo unitario; de ella se derivan las demás.

sin²θ + cos²θ = 1
sin(2θ) = 2 sin θ cos θ
cos(2θ) = cos²θ − sin²θ

Fundamentos

La identidad fundamental sin²θ + cos²θ = 1 no es una fórmula que memorizar: es el teorema de Pitágoras aplicado al triángulo que forma un punto del círculo unitario con los ejes. La hipotenusa es el radio, que vale 1, y los catetos son el coseno y el seno. Verla así hace innecesario recordarla.

De ella se derivan las demás mediante las fórmulas de suma de ángulos. La del ángulo doble, sin(2θ) = 2 sin θ cos θ, es el caso particular de sin(a+b) con a = b, y su utilidad es de eficiencia: permite calcular una función de 2θ sin evaluar la función trigonométrica de nuevo.

Las identidades cumplen además un papel de verificación: comprobar que sin²θ + cos²θ da 1 en varios ángulos es una prueba barata de que una implementación trigonométrica funciona. En punto flotante el resultado no será exactamente 1, y esa desviación —del orden del epsilon de máquina— es una medida de la calidad de la biblioteca.

En procesamiento de señales estas identidades permiten reescribir productos de senoidales como sumas, que es lo que hace la modulación y lo que subyace al análisis de Fourier de la parte 13. Y en el positional encoding de los Transformers, la fórmula de suma de ángulos es la que garantiza que un desplazamiento de posición sea una transformación lineal de la codificación.

Ejemplo trabajado

Verificar las identidades en cinco ángulos.

θ       sin²+cos²    sin(2θ)      2·sin·cos    coinciden
0°      1.000000     0.000000     0.000000     ✓
30°     1.000000     0.866025     0.866025     ✓
45°     1.000000     1.000000     1.000000     ✓
60°     1.000000     0.866025     0.866025     ✓
90°     1.000000     0.000000     0.000000     ✓

Nota numérica: sin²+cos² da 1.0 con error < 1e−16
(es una prueba de calidad de la implementación)

Qué ejecuta el laboratorio

Identidades fundamentales verificadas en varios ángulos.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (0)
compmath run 066

Errores conceptuales frecuentes

  1. Memorizar las identidades en lugar de derivarlas del círculo unitario.
  2. Comparar identidades con == en punto flotante en lugar de con tolerancia.
  3. Confundir sin²θ con sin(θ²).

Dónde se usa

Simplificación de expresiones trigonométricas, modulación de señales, verificación de bibliotecas matemáticas y la construcción del positional encoding.

Bibliografía de la clase

067 · Círculo unitario

Parte 03 · clase 7 de 20 · demostración unit_circle

El círculo unitario extiende seno y coseno a cualquier ángulo real y muestra su periodicidad y paridad.

punto del círculo: (cos θ, sin θ)
periodo: sin(θ + 2π) = sin θ
paridad: sin(−θ) = −sin θ,  cos(−θ) = cos θ

Fundamentos

El triángulo rectángulo solo define las razones trigonométricas para ángulos entre 0 y 90°. El círculo unitario las extiende a cualquier número real: el punto que resulta de recorrer un arco de longitud θ desde (1,0) tiene coordenadas (cos θ, sin θ), y esa definición funciona para ángulos negativos, mayores que una vuelta o irracionales.

De esa definición se leen dos propiedades sin cálculo. La periodicidad: dar una vuelta completa devuelve al mismo punto, así que sin(θ + 2π) = sin θ. Y la paridad: reflejar respecto al eje x cambia el signo de la ordenada pero no de la abscisa, así que el seno es impar y el coseno es par.

La periodicidad tiene una consecuencia práctica que conviene tener presente: los ángulos no son comparables directamente. La diferencia entre 359° y 1° es de 2°, no de 358°. Calcular diferencias angulares exige normalizar al rango (−π, π], y olvidarlo produce saltos bruscos en robótica y en seguimiento de orientación.

La tabla de valores notables —0, 90, 180, 270, 360— conviene poder reconstruirla mirando el círculo en lugar de memorizarla: en 90° el punto es (0,1), así que el coseno es 0 y el seno 1. Numéricamente hay un detalle: cos(π/2) no da exactamente 0 sino 6.1e−17, porque π/2 no es representable exactamente.

Ejemplo trabajado

Coordenadas en los ángulos notables.

ángulo    (cos, sin)
  0°      ( 1,  0)
 90°      ( 0,  1)
180°      (−1,  0)
270°      ( 0, −1)
360°      ( 1,  0)      ← igual que 0°: periodo 2π

Paridad:
  sin(−1) = −0.841471 = −sin(1)     ✓ impar
  cos(−1) =  0.540302 =  cos(1)     ✓ par

Detalle numérico: cos(π/2) = 6.12e−17, no exactamente 0
(π/2 no es representable en float64)

Qué ejecuta el laboratorio

El círculo unitario como diccionario de ángulos notables.

GrupoSalidas
Resultados numéricos (2)radio, periodo_sin
Comprobaciones (2)sin_es_impar, cos_es_par
compmath run 067

Errores conceptuales frecuentes

  1. Restar ángulos sin normalizar el resultado al rango (−π, π].
  2. Esperar que cos(π/2) sea exactamente 0.
  3. Limitar la definición de seno y coseno a ángulos agudos.

Dónde se usa

Orientación en robótica, ángulos de fase en señales, animación cíclica y cualquier fenómeno periódico. La periodicidad es la propiedad que explota Fourier.

Bibliografía de la clase

068 · Coordenadas cartesianas

Parte 03 · clase 8 de 20 · demostración cartesian_coordinates

Las coordenadas convierten preguntas geométricas en preguntas algebraicas.

simetría respecto a x: (a, b) → (a, −b)
simetría respecto a y: (a, b) → (−a, b)
simetría respecto al origen: (a, b) → (−a, −b)

Fundamentos

La idea de Descartes —identificar el plano con ℝ²— es probablemente la más productiva de la matemática moderna. Convierte la geometría en álgebra: una recta es una ecuación, una circunferencia es otra, y la intersección de dos figuras es la solución de un sistema. Sin ella no habría gráficos por computador ni análisis de datos.

Los cuatro cuadrantes se numeran en sentido antihorario empezando por el de coordenadas positivas. Esa convención importa al interpretar atan2, cuyo signo depende del cuadrante, y al leer gráficas donde el eje y crece hacia abajo —convención habitual en pantallas e imágenes, que invierte el sentido de las rotaciones.

Las simetrías se expresan como cambios de signo, y ese es el primer ejemplo de que una transformación geométrica es una operación algebraica sobre coordenadas. La reflexión respecto al eje x es la matriz diag(1, −1), y su determinante negativo indica que invierte la orientación (clase 075).

En machine learning el «espacio de features» es literalmente un espacio de coordenadas, y cada observación es un punto. Toda la intuición geométrica de esta parte —distancia, proyección, frontera— se traslada directamente allí, con la advertencia de la clase 061 sobre la alta dimensión.

Ejemplo trabajado

Los cuatro cuadrantes y las simetrías.

punto      cuadrante
( 3,  2)       I
(−3,  2)       II
(−3, −2)       III
( 3, −2)       IV

Simetrías de (3, 2):
  respecto al eje x:  ( 3, −2)
  respecto al eje y:  (−3,  2)
  respecto al origen: (−3, −2)

Traslación (+1, −1): (3,2) → (4,1)

Qué ejecuta el laboratorio

Cuadrantes, simetrías y traslación de origen.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (0)
compmath run 068

Errores conceptuales frecuentes

  1. Olvidar que en pantallas e imágenes el eje y suele crecer hacia abajo.
  2. Numerar los cuadrantes en sentido horario.
  3. Confundir traslación (sumar) con escala (multiplicar).

Dónde se usa

Espacios de features, sistemas de coordenadas de pantalla frente a mundo, visualización de datos y transformaciones geométricas.

Bibliografía de la clase

069 · Pendiente y ecuación de la recta

Parte 03 · clase 9 de 20 · demostración line_equation

La forma general Ax + By + C = 0 es la misma expresión que la frontera de decisión de un clasificador lineal.

explícita: y = mx + b
general: Ax + By + C = 0
perpendicular: m⊥ = −1/m

Fundamentos

Una recta admite varias escrituras y cada una sirve para algo distinto. La forma explícita y = mx + b es cómoda para evaluar y graficar, pero no puede representar rectas verticales (pendiente infinita). La forma general Ax + By + C = 0 no tiene esa limitación y es la que se usa en geometría computacional.

La forma general tiene además una lectura vectorial importante: el vector (A, B) es normal a la recta, es decir, perpendicular a ella. Y esa observación es la que conecta esta clase con machine learning: la frontera de decisión de un clasificador lineal es wᵀx + b = 0, exactamente la misma ecuación, donde w es el vector normal. El signo de wᵀx + b dice de qué lado cae un punto, que es literalmente la predicción.

La condición de perpendicularidad m·m⊥ = −1 se deduce de que los vectores directores deben tener producto punto nulo. Es un caso particular de ortogonalidad, concepto que la parte 05 generaliza a cualquier dimensión.

Calcular la pendiente entre dos puntos exige cuidado numérico: si las abscisas son casi iguales, la resta del denominador sufre cancelación (clase 032) y la pendiente resultante es ruido. En geometría computacional se prefiere la forma general precisamente por eso.

Ejemplo trabajado

Recta por (1,2) y (5,10).

pendiente:  m = (10 − 2)/(5 − 1) = 2
intercepto: b = 2 − 2·1 = 0

explícita: y = 2x
general:   2x − y + 0 = 0        →  A = 2, B = −1, C = 0

Verificación en (1,2):  2·1 − 1·2 + 0 = 0    ✓

Vector normal: (2, −1)
Pendiente perpendicular: −1/2

Lectura en ML:
  w = (2, −1),  b = 0
  clasificador: signo(wᵀx + b)

Qué ejecuta el laboratorio

Recta en forma pendiente-intercepto y en forma general.

GrupoSalidas
Resultados numéricos (4)pendiente, intercepto, verifica_p, pendiente_perpendicular
Comprobaciones (0)
compmath run 069

Errores conceptuales frecuentes

  1. Usar la forma explícita para rectas verticales.
  2. Calcular la pendiente con abscisas casi iguales sin considerar la cancelación.
  3. Confundir el vector normal (A,B) con el vector director (B,−A).

Dónde se usa

Fronteras de decisión lineales, detección de colisiones, ajuste de rectas y geometría computacional en general.

Bibliografía de la clase

070 · Distancia punto-recta

Parte 03 · clase 10 de 20 · demostración point_line_distance

La distancia de un punto a una recta es la misma fórmula que define el margen de una SVM.

d = |Ax₀ + By₀ + C| / √(A² + B²)
pie de perpendicular: p − ((Ap₁+Bp₂+C)/(A²+B²))·(A,B)

Fundamentos

La distancia de un punto a una recta es la longitud del segmento perpendicular que los une, y esa longitud tiene fórmula cerrada. El numerador |Ax₀ + By₀ + C| mide cuánto «falla» el punto la ecuación de la recta; el denominador √(A²+B²) normaliza por la longitud del vector normal, para que el resultado sea una distancia y no dependa de cómo se escaló la ecuación.

Esa normalización es exactamente lo que ocurre en una SVM. El margen geométrico de un punto respecto al hiperplano wᵀx + b = 0 es |wᵀx + b| / ‖w‖, la misma expresión. Maximizar el margen equivale entonces a minimizar ‖w‖ sujeto a que todos los puntos queden bien clasificados, que es precisamente el problema de la clase 289.

El pie de perpendicular es el punto de la recta más cercano, y calcularlo es proyectar. La comprobación es doble: el pie debe satisfacer la ecuación de la recta, y la distancia del punto al pie debe coincidir con la fórmula. El laboratorio verifica ambas cosas.

La generalización a un hiperplano en ℝⁿ es inmediata y no requiere ideas nuevas: la fórmula es idéntica con más términos. Esa es la ventaja de haber escrito la recta en forma general en lugar de explícita.

Ejemplo trabajado

Distancia del punto (2,7) a la recta 3x − 4y + 5 = 0.

numerador:   |3·2 − 4·7 + 5| = |6 − 28 + 5| = 17
denominador: √(9 + 16) = 5
distancia:   17/5 = 3.4

Pie de perpendicular:
  t = (3·2 − 4·7 + 5)/(9+16) = −17/25 = −0.68
  pie = (2 − 3·(−0.68), 7 − (−4)·(−0.68)) = (4.04, 4.28)

Verificaciones:
  3·4.04 − 4·4.28 + 5 = 0        ✓ el pie está en la recta
  dist((2,7), (4.04,4.28)) = 3.4  ✓ coincide con la fórmula

Qué ejecuta el laboratorio

Distancia de un punto a una recta y su proyección.

GrupoSalidas
Resultados numéricos (2)distancia, distancia_al_pie
Comprobaciones (1)el_pie_pertenece_a_la_recta
compmath run 070

Errores conceptuales frecuentes

  1. Olvidar el valor absoluto en el numerador y obtener distancias negativas.
  2. No normalizar por √(A²+B²): el resultado deja de ser una distancia.
  3. Suponer que la fórmula solo vale en 2D: se generaliza sin cambios.

Dónde se usa

Margen de una SVM, detección de colisiones, clustering basado en distancia a fronteras y métricas de separabilidad.

Bibliografía de la clase

071 · Circunferencias y cónicas

Parte 03 · clase 11 de 20 · demostración conics

La excentricidad clasifica las cónicas en una única familia continua.

circunferencia: x² + y² = r²
elipse: x²/a² + y²/b² = 1,  c = √(a²−b²),  e = c/a
parábola y = x²: foco en (0, 1/4)

Fundamentos

Las cónicas —circunferencia, elipse, parábola e hipérbola— son las curvas que resultan de cortar un cono con un plano, y ese origen común explica que compartan una descripción unificada. La excentricidad e es el parámetro que las distingue: 0 para la circunferencia, entre 0 y 1 para la elipse, exactamente 1 para la parábola y mayor que 1 para la hipérbola.

No son una curiosidad clásica. Las órbitas planetarias son elipses con el Sol en un foco (primera ley de Kepler); las antenas parabólicas concentran las señales paralelas en el foco; las curvas de nivel de una forma cuadrática definida positiva son elipses, hecho central en la parte 06 y en la parte 12, donde la forma de esas elipses determina lo rápido que converge el descenso de gradiente.

Esa última conexión merece énfasis. Cuando la función objetivo tiene curvas de nivel muy alargadas —elipses de excentricidad alta—, el gradiente apunta casi perpendicular a la dirección del mínimo y el descenso zigzaguea. El cociente entre los semiejes es precisamente el número de condición del Hessiano.

La propiedad focal de la parábola —todos los rayos paralelos al eje se reflejan hacia el foco— es la que la hace útil en antenas y faros, y se demuestra con geometría elemental.

Ejemplo trabajado

Tres cónicas y sus parámetros.

Circunferencia x² + y² = 9
  radio 3,  área = π·9 = 28.27,  e = 0

Elipse x²/25 + y²/9 = 1
  a = 5 (semieje mayor), b = 3 (semieje menor)
  c = √(25 − 9) = 4        (distancia focal)
  e = c/a = 0.8            (bastante alargada)

Parábola y = x²
  foco en (0, 0.25),  e = 1

Lectura en optimización:
  curvas de nivel de x² + 20y² → elipse con e alta
  → el descenso de gradiente zigzaguea

Qué ejecuta el laboratorio

Circunferencia, elipse y parábola desde su ecuación.

GrupoSalidas
Resultados numéricos (6)radio, area_circulo, semieje_mayor, semieje_menor, distancia_focal, excentricidad
Comprobaciones (0)
compmath run 071

Errores conceptuales frecuentes

  1. Confundir el semieje mayor con el menor al calcular la distancia focal.
  2. Suponer que las órbitas planetarias son circulares.
  3. Olvidar que la excentricidad de una elipse informa sobre el condicionamiento del problema asociado.

Dónde se usa

Órbitas, óptica, curvas de nivel de formas cuadráticas y diagnóstico de convergencia en optimización.

Bibliografía de la clase

072 · Vectores geométricos 2D

Parte 03 · clase 12 de 20 · demostración vectors_2d

El producto punto mide alineación; la norma mide magnitud; juntos dan el ángulo.

u·v = Σuᵢvᵢ = ‖u‖‖v‖cos θ
‖u‖ = √(u·u)
u ⊥ v  ⟺  u·v = 0

Fundamentos

Un vector admite dos lecturas que conviene mantener a la vez: es una lista de números y es una flecha con dirección y magnitud. El producto punto conecta ambas: definido algebraicamente como suma de productos componente a componente, resulta ser geométricamente ‖u‖‖v‖cos θ. Esa identidad es la que convierte el álgebra en geometría.

De ella se lee todo lo demás. Si el producto punto es positivo, los vectores apuntan hacia el mismo semiespacio; si es cero, son ortogonales; si es negativo, se oponen. La ortogonalidad como «producto punto nulo» es la definición que se generaliza a cualquier dimensión, donde el concepto de «ángulo recto» ya no es visualizable.

Normalizar un vector —dividirlo por su norma— separa dirección de magnitud. Comparar direcciones exige normalizar primero, y esa operación es exactamente la que define la similitud coseno, la métrica estándar entre embeddings (clase 322). Comparar sin normalizar mezcla «de qué habla» con «cuánto texto es», que casi nunca es lo que se quiere.

Este es el punto donde la parte 03 entrega el testigo a la parte 05: todo lo dicho aquí en dos dimensiones vale sin cambios en 768, con la salvedad de que la intuición visual deja de funcionar y hay que confiar en el álgebra.

Ejemplo trabajado

Dos vectores perpendiculares.

u = (3, 4),  v = (−4, 3)

‖u‖ = √(9+16) = 5
‖v‖ = √(16+9) = 5

u·v = 3·(−4) + 4·3 = −12 + 12 = 0     → ortogonales ✓

cos θ = 0/(5·5) = 0  →  θ = 90°

u normalizado: (0.6, 0.8),  norma = 1.0    ✓

Qué ejecuta el laboratorio

Vector como dirección y magnitud; ángulo entre vectores.

GrupoSalidas
Resultados numéricos (5)|u|, |v|, u·v, cos_theta, angulo_grados
Comprobaciones (1)son_ortogonales
compmath run 072

Errores conceptuales frecuentes

  1. Comparar direcciones sin normalizar los vectores.
  2. Confundir el producto punto (escalar) con el producto componente a componente (vector).
  3. Calcular el ángulo con acos sin acotar el argumento a [−1,1]: el redondeo puede sacarlo del dominio.

Dónde se usa

Similitud coseno entre embeddings, proyecciones, detección de ortogonalidad, iluminación en gráficos (producto punto entre normal y dirección de luz) y capas densas.

Bibliografía de la clase

073 · Transformaciones: traslación y escala

Parte 03 · clase 13 de 20 · demostración translation_scale

Las coordenadas homogéneas convierten la traslación —que no es lineal— en una multiplicación de matrices.

punto homogéneo: (x, y, 1)
traslación: [[1,0,tx],[0,1,ty],[0,0,1]]
escala: [[sx,0,0],[0,sy,0],[0,0,1]]

Fundamentos

La traslación tiene un problema estructural: no es una transformación lineal. Una transformación lineal debe mandar el origen al origen, y trasladar precisamente lo mueve. Eso impide componerla con rotaciones y escalas usando un único producto de matrices, que es lo que la hace incómoda.

Las coordenadas homogéneas resuelven el problema con un truco elegante: se añade una coordenada extra fija a 1, de modo que un punto del plano se representa como (x, y, 1) en ℝ³. En ese espacio ampliado, la traslación es lineal, y se escribe como una matriz 3×3 cuya última columna contiene el desplazamiento.

La ganancia es enorme en la práctica. Toda la cadena de transformaciones de un vértice —modelo, mundo, vista, proyección— se compone en una única matriz que se calcula una vez y se aplica a millones de vértices con un solo producto. Es la razón por la que las GPU están optimizadas para multiplicar matrices 4×4.

El orden de composición importa y es la fuente de errores más común: T·S escala y luego traslada; S·T traslada y luego escala, con lo que el desplazamiento también se escala. El laboratorio comprueba que ambos productos dan resultados distintos, que es la forma más directa de recordarlo.

Ejemplo trabajado

Trasladar y escalar el punto (2,3), en los dos órdenes.

punto homogéneo: (2, 3, 1)

T (traslación +5, −2)     S (escala ×2, ×0.5)
[1 0  5]                  [2   0 0]
[0 1 −2]                  [0 0.5 0]
[0 0  1]                  [0   0 1]

T·(2,3,1) = (7, 1, 1)
S·(2,3,1) = (4, 1.5, 1)

T·S aplicado a (2,3,1) = (9, −0.5, 1)     escala y luego traslada
S·T aplicado a (2,3,1) = (14, −0.5, 1)    traslada y luego escala

¿iguales?  No.  El orden importa.

Qué ejecuta el laboratorio

Traslación y escala en coordenadas homogéneas.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (1)el_orden_importa
compmath run 073

Errores conceptuales frecuentes

  1. Componer transformaciones en el orden equivocado.
  2. Olvidar la coordenada homogénea 1 al construir el punto.
  3. Suponer que la traslación es una transformación lineal en coordenadas normales.

Dónde se usa

Pipeline gráfico, robótica (matrices de transformación homogénea entre articulaciones), visión artificial y cualquier composición de transformaciones afines.

Bibliografía de la clase

074 · Rotaciones 2D

Parte 03 · clase 14 de 20 · demostración rotation_2d

Una matriz de rotación es ortogonal y de determinante 1: preserva normas, ángulos y orientación.

R(θ) = [[cos θ, −sin θ], [sin θ, cos θ]]
RᵀR = I,  det R = 1
R(α)·R(β) = R(α+β)

Fundamentos

La matriz de rotación se construye viendo a dónde van los vectores de la base: (1,0) va a (cos θ, sin θ) y (0,1) va a (−sin θ, cos θ). Esas dos imágenes son las columnas de la matriz. Este método —las columnas de una matriz son las imágenes de la base— es general y es la forma correcta de leer cualquier matriz de transformación (clase 123).

Dos propiedades la caracterizan. Es ortogonal, RᵀR = I, lo que significa que su inversa es su transpuesta: deshacer una rotación es transponer, sin necesidad de invertir. Y su determinante es 1, lo que indica que preserva áreas y orientación (una reflexión tendría determinante −1).

La consecuencia numérica es importante: las transformaciones ortogonales no amplifican el error. Su número de condición es 1, el mejor posible. Por eso los algoritmos numéricamente estables se construyen con rotaciones y reflexiones (Givens, Householder) en lugar de con transformaciones generales, y por eso la factorización QR es preferible a las ecuaciones normales (clase 234).

La composición de rotaciones suma ángulos, R(α)R(β) = R(α+β), lo que se demuestra con las fórmulas de suma de la clase 066. En 2D las rotaciones conmutan; en 3D no, y esa es una de las diferencias más importantes entre ambos casos.

Ejemplo trabajado

Rotar (1,0) noventa grados.

R(90°) = [[cos 90, −sin 90], [sin 90, cos 90]]
       = [[0, −1], [1, 0]]

R·(1,0) = (0, 1)          ✓ el eje x va al eje y

det R = 0·0 − (−1)·1 = 1            ✓ preserva área y orientación
RᵀR   = [[1,0],[0,1]] = I           ✓ ortogonal

‖(1,0)‖ = 1,  ‖R(1,0)‖ = 1          ✓ preserva la norma

Cuatro rotaciones de 90° = identidad

Qué ejecuta el laboratorio

Matriz de rotación: ortogonal y de determinante 1.

GrupoSalidas
Resultados numéricos (2)angulo_grados, determinante
Comprobaciones (2)preserva_la_norma, cuatro_rotaciones_vuelven_al_origen
compmath run 074

Errores conceptuales frecuentes

  1. Colocar el signo negativo en la posición equivocada de la matriz.
  2. Invertir una matriz de rotación en lugar de transponerla.
  3. Suponer que las rotaciones en 3D conmutan.

Dónde se usa

Gráficos, robótica, aumento de datos por rotación, factorizaciones QR estables y transformaciones ortogonales en general.

Bibliografía de la clase

075 · Matrices de transformación

Parte 03 · clase 15 de 20 · demostración transform_matrices

El valor absoluto del determinante es el factor por el que la transformación multiplica las áreas; su signo indica si invierte la orientación.

área transformada = |det M| · área original
det R = 1 (rotación),  det S = sx·sy (escala),  det F = −1 (reflexión)

Fundamentos

El determinante de una matriz 2×2 tiene una interpretación geométrica precisa: es el área con signo del paralelogramo que forman sus columnas. Como las columnas son las imágenes de los vectores de la base —que forman un cuadrado de área 1—, el determinante es exactamente el factor por el que la transformación escala las áreas.

El signo aporta información adicional: si es negativo, la transformación invierte la orientación, es decir, convierte un recorrido antihorario en horario. Las reflexiones tienen determinante negativo; las rotaciones, positivo. Un determinante nulo significa que la transformación aplasta el plano sobre una recta o un punto: pierde información y no es invertible.

Esta lectura hace comprensible por qué det(AB) = det(A)·det(B): aplicar dos transformaciones escala el área por el producto de sus factores. Y por qué una matriz con determinante cero no tiene inversa: no se puede recuperar un área a partir de algo que quedó aplastado.

La generalización a n dimensiones es directa: el determinante es el factor de escalado del volumen n-dimensional. Ese hecho es el que aparece en el cambio de variable de una integral múltiple (clase 173) y en el jacobiano de una transformación de variables aleatorias, donde el determinante corrige la densidad.

Ejemplo trabajado

Tres transformaciones y su determinante.

Rotación 45°:   det = 1        preserva área, mantiene orientación
Escala ×2:      det = 4        cuadruplica el área (2·2)
Reflexión en x: det = −1       preserva área, INVIERTE orientación

Composición R·S aplicada a (1,1):
  primero escala ×2 → (2,2)
  luego rota 45°    → (0, 2.83)

det(R·S) = det(R)·det(S) = 1·4 = 4     ✓

Qué ejecuta el laboratorio

Composición de rotación, escala y reflexión.

GrupoSalidas
Resultados numéricos (3)det_rotacion, det_escala, det_reflexion
Comprobaciones (1)reflexion_invierte_orientacion
compmath run 075

Errores conceptuales frecuentes

  1. Ignorar el signo del determinante y perder la información de orientación.
  2. Suponer que determinante cero significa «error» en lugar de «transformación no invertible».
  3. Confundir el determinante con la traza.

Dónde se usa

Cambio de variable en integrales múltiples, jacobiano en transformaciones de distribuciones, detección de degeneración en geometría computacional y normalizing flows.

Bibliografía de la clase

076 · Coordenadas polares

Parte 03 · clase 16 de 20 · demostración polar_coordinates

Las coordenadas polares describen un punto por distancia y ángulo; atan2 hace la conversión inversa correctamente.

r = √(x²+y²),  θ = atan2(y, x)
x = r·cos θ,  y = r·sin θ

Fundamentos

Elegir el sistema de coordenadas adecuado puede convertir un problema difícil en uno trivial. Una circunferencia en cartesianas es x² + y² = r²; en polares es simplemente r = constante. Los problemas con simetría radial —campos centrales, difusión desde un punto, patrones de radiación— se simplifican radicalmente al cambiar de coordenadas.

La conversión de cartesianas a polares exige atan2 por la razón de la clase 065: el cociente y/x no distingue cuadrantes opuestos. Con atan2(y, x) el ángulo sale correcto en los cuatro cuadrantes y en los ejes, incluido el caso x = 0 que rompería la división.

La conversión no es biyectiva sin restricciones: el ángulo está determinado salvo múltiplos de 2π, y el origen (r = 0) no tiene ángulo definido. Al implementar hay que decidir el rango del ángulo —habitualmente (−π, π]— y documentarlo, porque comparar ángulos de rangos distintos produce discrepancias.

En dimensiones superiores el análogo son las coordenadas esféricas, y en la parte 09 aparece el mismo cambio de variable al deducir la distribución normal multivariante. El jacobiano de la transformación —r en polares— es el factor que la clase 075 explicó.

Ejemplo trabajado

Convertir (−3, 4) a polares y volver.

r = √(9 + 16) = 5
θ = atan2(4, −3) = 2.2143 rad = 126.87°     (cuadrante II) ✓

Vuelta a cartesianas:
  x = 5·cos(2.2143) = −3.0
  y = 5·sin(2.2143) =  4.0                  ✓ roundtrip exacto

Con atan(4/−3) se habría obtenido −0.9273 rad = −53.13°,
que es el cuadrante IV: incorrecto.

Qué ejecuta el laboratorio

Conversión cartesiana ↔ polar y su ida y vuelta.

GrupoSalidas
Resultados numéricos (3)r, theta_rad, theta_grados
Comprobaciones (2)roundtrip_ok, atan2_maneja_cuadrantes
compmath run 076

Errores conceptuales frecuentes

  1. Usar atan en lugar de atan2 y perder el cuadrante.
  2. No declarar el rango del ángulo devuelto.
  3. Intentar definir el ángulo del origen.

Dónde se usa

Problemas con simetría radial, patrones de radiación, transformadas en coordenadas polares, robótica y representación de fase y magnitud en señales complejas.

Bibliografía de la clase

077 · Geometría 3D y planos

Parte 03 · clase 17 de 20 · demostración planes_3d

El producto cruz da un vector ortogonal a dos dados, y su norma es el área del paralelogramo que forman.

a × b = (a₂b₃−a₃b₂, a₃b₁−a₁b₃, a₁b₂−a₂b₁)
‖a × b‖ = ‖a‖‖b‖ sin θ = área del paralelogramo
plano: n·(x − p₀) = 0

Fundamentos

En tres dimensiones aparece una operación sin análogo en 2D: el producto cruz, que a dos vectores les asocia un tercero perpendicular a ambos. Su norma es el área del paralelogramo que forman, y su sentido lo da la regla de la mano derecha. Es una operación específica de ℝ³ —no se generaliza a dimensión arbitraria sin cambiar de formalismo—, y por eso es tan característica de la geometría espacial.

Un plano queda determinado por un punto y un vector normal: la ecuación n·(x − p₀) = 0 dice que el vector que va de p₀ a x es perpendicular a n. Como el producto cruz de dos vectores del plano da su normal, dos direcciones bastan para definir un plano.

La distancia de un punto a un plano se calcula con la misma estructura que la distancia punto-recta de la clase 070: producto punto con la normal, dividido por la norma de la normal. Cambia la dimensión, no la idea, y esa es la ventaja de haber entendido la versión 2D correctamente.

En gráficos por computador las normales son omnipresentes: determinan la iluminación (el brillo depende del producto punto entre la normal y la dirección de la luz), la orientación de una cara y si un polígono mira hacia la cámara o hacia el lado opuesto (backface culling).

Ejemplo trabajado

Normal al plano z = 0 y distancia de un punto.

a = (1,0,0),  b = (0,1,0)

a × b = (0·0 − 0·1, 0·0 − 1·0, 1·1 − 0·0) = (0, 0, 1)

Verificaciones:
  (a×b)·a = 0        ✓ ortogonal a a
  (a×b)·b = 0        ✓ ortogonal a b
  ‖a×b‖ = 1          = área del cuadrado unitario ✓

Distancia de (2,3,5) al plano z = 0:
  |(0,0,1)·(2,3,5)| / ‖(0,0,1)‖ = 5/1 = 5

Qué ejecuta el laboratorio

Plano por su normal, distancia de un punto y producto cruz.

GrupoSalidas
Resultados numéricos (2)distancia_al_plano, norma_del_producto_cruz_es_el_area
Comprobaciones (1)normal_es_ortogonal_a_a
compmath run 077

Errores conceptuales frecuentes

  1. Suponer que el producto cruz es conmutativo: a×b = −(b×a).
  2. Usar el producto cruz en dimensiones distintas de 3.
  3. Olvidar normalizar la normal antes de usarla en cálculos de iluminación.

Dónde se usa

Iluminación y sombreado, orientación de superficies, detección de caras traseras, cinemática de sólidos rígidos y momento de fuerzas en física.

Bibliografía de la clase

078 · Proyecciones y perspectiva

Parte 03 · clase 18 de 20 · demostración projection

La perspectiva divide por la profundidad, y esa división es lo que hace que los objetos lejanos se vean pequeños.

proyección ortogonal sobre u: proj_u(x) = (x·u/u·u)·u
perspectiva: x' = f·x/z,  y' = f·y/z

Fundamentos

Hay dos proyecciones distintas y conviene no mezclarlas. La proyección ortogonal sobre una dirección es una operación lineal que descompone un vector en una componente paralela y otra perpendicular. Es la base de PCA (clase 135), de mínimos cuadrados (clase 119) y de cualquier «cuánto de esta dirección hay en este vector».

La proyección en perspectiva es otra cosa: divide las coordenadas por la profundidad, y por eso no es lineal. Es la que reproduce cómo vemos: dos objetos del mismo tamaño a distancias distintas ocupan ángulos distintos en la retina. La división por z es exactamente lo que hace que las vías del tren converjan en el horizonte.

La proyección ortogonal viene acompañada de un teorema de Pitágoras: si x = p + r con p la proyección y r el residuo ortogonal, entonces ‖x‖² = ‖p‖² + ‖r‖². Comprobar esa identidad es la verificación estándar de que una proyección se calculó bien, y el laboratorio la incluye.

Que la perspectiva no sea lineal explica por qué las coordenadas homogéneas de la clase 073 son imprescindibles en gráficos: la división por z se difiere hasta el final (la «división de perspectiva») y todo lo anterior se mantiene como productos de matrices.

Ejemplo trabajado

Proyección ortogonal y perspectiva.

Ortogonal de v = (4,3) sobre u = (1,0):
  coef = (v·u)/(u·u) = 4/1 = 4
  proyección = (4, 0)
  residuo    = (0, 3)
  residuo·u  = 0                    ✓ ortogonal
  Pitágoras: 25 = 16 + 9            ✓

Perspectiva con f = 2, z = 5:
  x' = 2·4/5 = 1.6
  el mismo punto a z = 10 daría 0.8
  → al doblar la distancia, el tamaño se reduce a la mitad

Qué ejecuta el laboratorio

Proyección ortogonal de un vector y proyección en perspectiva.

GrupoSalidas
Resultados numéricos (1)perspectiva_x'_con_f=2_z=5
Comprobaciones (3)residuo_ortogonal_a_u, pitagoras, objetos_lejanos_se_encogen
compmath run 078

Errores conceptuales frecuentes

  1. Confundir proyección ortogonal (lineal) con perspectiva (no lineal).
  2. Olvidar dividir por (u·u) cuando u no es unitario.
  3. Dividir por z sin comprobar que es no nulo (plano de recorte cercano).

Dónde se usa

Pipeline gráfico, calibración de cámaras, PCA, mínimos cuadrados y descomposición ortogonal en general.

Bibliografía de la clase

079 · Aplicaciones en visión, robótica y videojuegos

Parte 03 · clase 19 de 20 · demostración applications_pipeline

El pipeline geométrico encadena modelo, mundo, cámara y pantalla como una composición de transformaciones.

x_pantalla = Proyección · Vista · Modelo · x_local
perspectiva final: (f·x/z, f·y/z)

Fundamentos

Todo sistema que dibuja o interpreta escenas tridimensionales ejecuta la misma secuencia de cambios de coordenadas. El objeto se define en su espacio local; una matriz de modelo lo coloca en el mundo; una matriz de vista lo lleva al sistema de la cámara; y una proyección lo pasa a pantalla. Cada etapa es una transformación, y componerlas es multiplicar sus matrices.

La ventaja de esta arquitectura es de reutilización: un mismo modelo 3D se puede colocar cien veces en la escena cambiando solo la matriz de modelo, sin tocar sus vértices. Y la composición se calcula una vez por objeto, no una vez por vértice.

El orden de multiplicación es la fuente inagotable de errores, y no hay atajo: hay que fijar una convención (fila o columna, premultiplicar o posmultiplicar) y respetarla en todo el sistema. Las bibliotecas difieren entre sí, y mezclar dos convenciones produce escenas que se ven «casi bien».

El mismo pipeline, recorrido al revés, es el problema de la visión artificial: dada una imagen, recuperar la geometría de la escena. Ahí la división por z se convierte en la ambigüedad fundamental —no se puede distinguir un objeto pequeño y cercano de uno grande y lejano sin información adicional— y de ahí nacen la estereovisión y la estructura a partir del movimiento.

Ejemplo trabajado

Un punto recorriendo las cuatro etapas.

1. espacio modelo:   (1, 1, 1)

2. rotación 30° en Z → mundo:
   (0.366, 1.366, 1.0)

3. cámara desplazada 4 en Z:
   (0.366, 1.366, 5.0)

4. proyección con f = 1.5:
   x' = 1.5·0.366/5 = 0.1098
   y' = 1.5·1.366/5 = 0.4098

Etapas: modelo → mundo → cámara → proyección → pantalla

Qué ejecuta el laboratorio

Pipeline geométrico típico: modelo → mundo → cámara → pantalla.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (0)
compmath run 079

Errores conceptuales frecuentes

  1. Mezclar convenciones de fila y columna entre bibliotecas.
  2. Aplicar la proyección antes que la transformación de vista.
  3. Olvidar el plano de recorte cercano y dividir por z ≈ 0.

Dónde se usa

Motores de videojuegos, realidad aumentada, calibración de cámaras, robótica y reconstrucción 3D.

Bibliografía de la clase

080 · Capstone: motor geométrico 2D

Parte 03 · clase 20 de 20 · demostración capstone_geometry_engine

El área de un polígono transformado es la original multiplicada por el valor absoluto del determinante.

fórmula del cordón: A = ½|Σ(xᵢyᵢ₊₁ − xᵢ₊₁yᵢ)|
A' = |det M| · A

Fundamentos

El capstone reúne las tres ideas centrales de la parte: una matriz es una transformación, componerlas es multiplicarlas, y el determinante mide cómo cambian las áreas. Se construye un motor mínimo que aplica una transformación compuesta a un polígono y comprueba la relación entre áreas.

El área se calcula con la fórmula del cordón (o de Gauss), que suma productos cruzados de vértices consecutivos. Es un resultado notable: el área de un polígono arbitrario se obtiene recorriendo su frontera, sin necesidad de triangularlo. El signo de la suma indica además el sentido del recorrido, información que se usa para detectar orientación en geometría computacional.

La verificación central es que área_transformada = |det M| · área_original. Que se cumpla para un cuadrado rotado y escalado no es sorprendente; que se cumpla para cualquier polígono es el contenido geométrico del determinante, y comprobarlo numéricamente cierra la parte con una relación que se usará en integración múltiple y en transformación de densidades.

Un motor así, con unas pocas decenas de líneas, es el núcleo de cualquier sistema de gráficos 2D. Lo que añaden las bibliotecas reales es rendimiento, antialiasing y gestión de recursos; la matemática es exactamente esta.

Ejemplo trabajado

Cuadrado unitario rotado 45° y escalado ×2.

polígono original: (0,0), (1,0), (1,1), (0,1)
área (cordón): 1.0

M = R(45°) · S(2)
  = [[1.414, −1.414], [1.414, 1.414]]

polígono transformado:
  (0,0), (1.414, 1.414), (0, 2.828), (−1.414, 1.414)

área transformada: 4.0
det M = 1.414² + 1.414² = 4.0

Verificación: 1.0 × |4.0| = 4.0     ✓

Qué ejecuta el laboratorio

Capstone: motor 2D que compone transformaciones sobre un polígono.

GrupoSalidas
Resultados numéricos (3)area_original, area_transformada, determinante
Comprobaciones (1)area_escala_como_|det|
compmath run 080

Errores conceptuales frecuentes

  1. Recorrer los vértices del polígono en orden no consecutivo al aplicar la fórmula del cordón.
  2. Olvidar el valor absoluto y obtener áreas negativas.
  3. Aplicar las transformaciones en el orden equivocado al componerlas.

Dónde se usa

Motores gráficos 2D, cálculo de áreas en SIG, detección de orientación de polígonos y cambio de variable en integrales.

Bibliografía de la clase

Parte 04 — Matemática discreta para computación

Nivel intermedio · 20 clases · 80 horas · motor part04

Lógica, conjuntos, conteo, inducción, recurrencias, grafos y aritmética modular: la matemática que hace demostrable un programa.

La matemática discreta es la que trata objetos separados y contables —proposiciones, conjuntos, grafos, enteros— frente a la continua, que trata magnitudes que fluyen. Es la matemática nativa de la computación, porque un ordenador es un objeto discreto: estados finitos, memoria numerable, pasos separados.

Las clases 081 a 083 son lógica. Su valor no es filosófico sino operativo: una implicación es equivalente a su contrarrecíproca pero no a su recíproca, y confundirlas es el error de razonamiento más caro que existe —en matemáticas y fuera de ellas—. El orden de los cuantificadores cambia el significado: «para todo x existe un y» y «existe un y para todo x» son afirmaciones distintas, y esa distinción reaparece en las definiciones de convergencia (parte 07) y en las cotas de aprendizaje (parte 17).

Las clases 084 a 090 construyen el conteo. El principio del producto, las permutaciones, las combinaciones y el principio del palomar son la base sobre la que la parte 09 define la probabilidad: un espacio muestral equiprobable convierte cada probabilidad en un cociente de conteos. El palomar (clase 090) merece atención especial porque demuestra que las colisiones de hash existen sin construir ninguna.

Las clases 091 y 092 son inducción y recurrencias: cómo demostrar algo sobre infinitos casos con dos pasos, y cómo analizar un algoritmo que se llama a sí mismo. La inducción es literalmente un bucle for con garantía, y la recurrencia es lo que hace que Fibonacci ingenuo tarde exponencialmente y memoizado tarde linealmente.

Las clases 093 a 096 son teoría de grafos. Un grafo es la estructura más versátil de la computación: modela dependencias, redes, rutas, jerarquías y —esto importa— los grafos de cómputo sobre los que se ejecuta la autodiferenciación. El orden topológico de la clase 096 es exactamente el orden en que un framework de deep learning recorre las operaciones al propagar gradientes.

El cierre (097 a 099) es álgebra booleana y aritmética modular, la base del hardware digital y de la criptografía. El capstone monta un planificador de dependencias que detecta ciclos y calcula qué tareas pueden ejecutarse en paralelo, que es el problema real de cualquier sistema de construcción.

Ideas centrales

Por qué importa en IA

Los grafos de cómputo, la búsqueda en árbol y las GNN son estructuras discretas; el conteo sostiene la probabilidad que después usa todo modelo generativo.

Errores frecuentes de la parte

Glosario de la parte (21 términos)

TérminoDefiniciónClase
Aritmética modularAritmética de los restos respecto a un módulo. Base de hashing, criptografía y checksums.098
BFSRecorrido en anchura. Encuentra el camino con menos aristas en un grafo no ponderado. Coste O(V+E).094
CombinaciónSelección sin orden. C(n,k) = n!/(k!(n−k)!). Simétrica: C(n,k) = C(n,n−k).089
Contrarrecíproca¬q → ¬p. Lógicamente equivalente a p → q, y a menudo más fácil de demostrar.081
Criba de EratóstenesAlgoritmo que encuentra todos los primos hasta n tachando múltiplos. Coste O(n log log n).099
Cuantificador universal∀x P(x): P se cumple para todo elemento del universo. Su negación es ∃x ¬P(x).083
DAGGrafo dirigido acíclico. Admite orden topológico; su ausencia delata un ciclo.096
Función inyectivaEntradas distintas dan salidas distintas. Condición necesaria para que exista inversa.086
Grado de un vérticeNúmero de aristas incidentes. La suma de los grados es el doble del número de aristas.093
Implicaciónp → q, falsa solo cuando p es verdadera y q falsa. Equivale a su contrarrecíproca, no a su recíproca.081
Inclusión-exclusión|A∪B| = |A| + |B| − |A∩B|. Corrige el doble conteo de la intersección.084
Inducción matemáticaMétodo de demostración con caso base y paso inductivo. Cubre infinitos casos con dos argumentos.091
Leyes de De Morgan¬(p∧q) ≡ ¬p∨¬q y ¬(p∨q) ≡ ¬p∧¬q. Rigen la negación de condiciones compuestas.082
Orden topológicoOrdenación de los vértices de un DAG tal que toda arista va de un vértice anterior a uno posterior.096
PermutaciónSelección ordenada. P(n,k) = n!/(n−k)!088
Principio del palomarSi n objetos se reparten en m cajas con n > m, alguna caja tiene al menos dos. Demuestra colisiones sin construirlas.090
RecurrenciaDefinición de un término en función de los anteriores. Su coste depende de si se memoiza.092
Regla del productoSi una decisión tiene m opciones y otra n, hay m·n combinaciones.087
Relación de equivalenciaRelación reflexiva, simétrica y transitiva. Particiona el conjunto en clases disjuntas.085
TautologíaFórmula verdadera bajo toda asignación de valores de verdad.082
ÁrbolGrafo conexo sin ciclos. Con n vértices tiene exactamente n−1 aristas.095

Bibliografía de la parte

081 · Lógica proposicional

Parte 04 · clase 1 de 20 · demostración propositional_logic

Una implicación equivale a su contrarrecíproca, nunca a su recíproca.

p → q ≡ ¬p ∨ q
p → q ≡ ¬q → ¬p   (contrarrecíproca)
p → q ≢ q → p     (recíproca)

Fundamentos

La lógica proposicional asigna un valor de verdad a cada enunciado y define cómo se combinan. El conector que causa más problemas es la implicación, porque su definición formal no coincide con el uso coloquial: p → q es falsa únicamente cuando p es verdadera y q falsa. Si p es falsa, la implicación es verdadera sea cual sea q, lo que se llama verdad vacua.

Esa definición tiene una consecuencia práctica inmediata: «todos los elementos de la lista vacía cumplen la condición» es cierto, y por eso all([]) devuelve True en Python. No es una rareza del lenguaje: es la lógica correcta.

La equivalencia con la contrarrecíproca es la herramienta de demostración más útil de toda la matemática. Probar «si n² es par entonces n es par» directamente es incómodo; probar «si n es impar entonces n² es impar» es inmediato. Ambas afirmaciones son la misma, y elegir la más fácil es legítimo.

Confundir una implicación con su recíproca es la falacia más extendida. «Si llueve, el suelo está mojado» no permite concluir «si el suelo está mojado, llovió». En estadística la misma confusión es la falacia del fiscal: P(evidencia | inocente) pequeña no implica P(inocente | evidencia) pequeña, tema de la clase 186.

Ejemplo trabajado

Tabla de verdad de las tres formas.

p      q      p→q    q→p (recíproca)   ¬q→¬p (contrarrecíproca)
V      V       V           V                    V
V      F       F           V                    F
F      V       V           F                    V
F      F       V           V                    V

¿p→q ≡ contrarrecíproca?  Sí, columnas idénticas      ✓
¿p→q ≡ recíproca?         No, difieren en 2 filas     ✗

Verdad vacua: si p es falsa, p→q es verdadera siempre.
Por eso all([]) == True.

Qué ejecuta el laboratorio

Implicación, contrarrecíproca y recíproca no son lo mismo.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (2)implicacion_equivale_a_contrarreciproca, implicacion_equivale_a_reciproca
compmath run 081

Errores conceptuales frecuentes

  1. Concluir la recíproca a partir de una implicación demostrada.
  2. Interpretar la verdad vacua como un error del sistema formal.
  3. Leer «si p entonces q» como «p si y solo si q».

Dónde se usa

Demostración por contrarrecíproca, diseño de condiciones en código, especificación de contratos y la lógica de las pruebas de hipótesis (parte 10).

Bibliografía de la clase

082 · Tablas de verdad y equivalencias

Parte 04 · clase 2 de 20 · demostración truth_tables

Las leyes de De Morgan rigen cómo se niega una condición compuesta.

¬(p ∧ q) ≡ ¬p ∨ ¬q
¬(p ∨ q) ≡ ¬p ∧ ¬q
p ⊕ q ≡ (p ∨ q) ∧ ¬(p ∧ q)

Fundamentos

Una tabla de verdad decide cualquier equivalencia proposicional por fuerza bruta: se evalúan las dos fórmulas en las 2ⁿ asignaciones posibles y se comparan. Es un método completo —siempre da respuesta— y de coste exponencial, lo que anticipa por qué SAT es un problema difícil (clase 097).

Las leyes de De Morgan son las que más se usan sin nombrarlas. Al negar una condición compuesta, la conjunción se convierte en disyunción y viceversa, y cada término se niega. En código: la negación de edad >= 18 and tiene_permiso es edad < 18 or not tiene_permiso, no edad < 18 and not tiene_permiso. Ese error produce condiciones que parecen razonables y filtran mal.

Una tautología es verdadera bajo toda asignación; una contradicción, falsa bajo todas. Detectarlas importa porque señalan código muerto: una condición tautológica siempre se cumple y su rama alternativa nunca se ejecuta.

El XOR merece mención aparte: es verdadero cuando los operandos difieren, y tiene la propiedad de ser su propia inversa, (a ⊕ b) ⊕ b = a. Esa propiedad lo hace omnipresente en criptografía, en sumas de comprobación y en el intercambio de variables sin memoria auxiliar.

Ejemplo trabajado

Verificar De Morgan exhaustivamente.

4 casos evaluados (2² asignaciones)

p  q  | ¬(p∧q)  ¬p∨¬q  | ¬(p∨q)  ¬p∧¬q
V  V  |   F       F    |   F       F
V  F  |   V       V    |   F       F
F  V  |   V       V    |   F       F
F  F  |   V       V    |   V       V

Ambas leyes: columnas idénticas    ✓

Tautología:    p ∨ ¬p  → V en las 4 filas
Contradicción: p ∧ ¬p  → F en las 4 filas

XOR: (V,V)→F  (V,F)→V  (F,V)→V  (F,F)→F

Qué ejecuta el laboratorio

Leyes de De Morgan verificadas exhaustivamente.

GrupoSalidas
Resultados numéricos (1)casos_evaluados
Comprobaciones (4)¬(p∧q) ≡ ¬p∨¬q, ¬(p∨q) ≡ ¬p∧¬q, tautologia_p∨¬p, contradiccion_p∧¬p
compmath run 082

Errores conceptuales frecuentes

  1. Negar una conjunción sin cambiarla por disyunción.
  2. Olvidar negar todos los términos al aplicar De Morgan.
  3. Usar & y | (bit a bit) donde correspondía and y or (lógicos) en Python.

Dónde se usa

Simplificación de condiciones, optimización de consultas SQL, diseño de circuitos digitales y refactorización de código con lógica compleja.

Bibliografía de la clase

083 · Lógica de predicados y cuantificadores

Parte 04 · clase 3 de 20 · demostración predicate_logic

Intercambiar dos cuantificadores cambia el significado de la afirmación.

¬(∀x P(x)) ≡ ∃x ¬P(x)
∀x ∃y Q(x,y)   ≢   ∃y ∀x Q(x,y)

Fundamentos

La lógica de predicados añade a la proposicional la capacidad de hablar sobre objetos de un universo. ∀x P(x) afirma que P vale para todos; ∃x P(x), que vale para al menos uno. La negación intercambia los cuantificadores y niega el predicado, que es la forma general de la regla que la clase 019 aplicó al contraejemplo.

El punto delicado es el orden. ∀x ∃y (y > x) dice que para cada x existe alguien mayor —cierto en los naturales—. ∃y ∀x (y > x) dice que existe un número mayor que todos —falso—. Las mismas palabras en distinto orden afirman cosas distintas, y en un conjunto finito la segunda puede ser cierta mientras que en uno infinito no.

Esta distinción no es académica. La definición de límite —«para todo ε existe un δ»— tiene ese orden y no el contrario: δ puede depender de ε. La convergencia uniforme exige el orden inverso —«existe un δ que sirve para todo ε»— y por eso es una condición más fuerte. Toda la parte 07 se apoya en leer esos cuantificadores correctamente.

En teoría del aprendizaje (parte 17) los enunciados PAC tienen la misma estructura: para todo ε y δ, existe un tamaño muestral m tal que... Leer mal el orden convierte una garantía útil en una afirmación trivial o imposible.

Ejemplo trabajado

El orden de los cuantificadores en {1,...,6}.

Universo: {1, 2, 3, 4, 5, 6}

∀x par(x)   → Falso  (1 no es par)
∃x par(x)   → Verdadero

Negación: ¬(∀x par(x)) ≡ ∃x ¬par(x)  → Verdadero  ✓

∀x ∃y (y > x):  ¿para cada x hay alguien mayor?
  x=6 → no hay ninguno mayor en el universo → Falso

∃y ∀x (y > x):  ¿hay uno mayor que todos?
  ningún y supera a sí mismo → Falso

En ℕ (infinito): el primero sería Verdadero y el segundo Falso.
El orden importa.

Qué ejecuta el laboratorio

Cuantificadores: el orden cambia el significado.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (6)∀x par(x), ∃x par(x), negacion_de_∀_es_∃¬, ∀x∃y y>x, ∃y∀x y>x, el_orden_de_cuantificadores_importa
compmath run 083

Errores conceptuales frecuentes

  1. Intercambiar cuantificadores al reescribir una definición.
  2. Negar un cuantificador sin cambiarlo por el otro.
  3. Olvidar declarar el universo sobre el que se cuantifica.

Dónde se usa

Definiciones de límite y continuidad, especificación formal de sistemas, cotas de aprendizaje PAC y verificación de programas.

Bibliografía de la clase

084 · Conjuntos y operaciones

Parte 04 · clase 4 de 20 · demostración sets

Inclusión-exclusión corrige el doble conteo al unir conjuntos que se solapan.

|A ∪ B| = |A| + |B| − |A ∩ B|
|P(A)| = 2^|A|

Fundamentos

Un conjunto es una colección sin orden y sin repeticiones. Esa doble propiedad lo distingue de una lista y determina qué operaciones tienen sentido: unión, intersección, diferencia y diferencia simétrica, todas con implementación directa y eficiente en Python mediante set.

El principio de inclusión-exclusión responde a una pregunta que la suma ingenua contesta mal: al contar los elementos de una unión, los que están en ambos conjuntos se cuentan dos veces, y hay que restarlos una. Con tres conjuntos la fórmula alterna signos —se suman los individuales, se restan las intersecciones dos a dos y se suma la triple—, patrón que generaliza a n conjuntos.

El conjunto de partes de un conjunto de n elementos tiene 2ⁿ elementos, porque cada elemento está o no está: es la regla del producto aplicada n veces. Esa cifra explica por qué la búsqueda exhaustiva sobre subconjuntos es inviable salvo para n pequeño, y por qué la selección de características es un problema difícil.

En probabilidad (parte 09), inclusión-exclusión reaparece intacta como la regla de la suma: P(A∪B) = P(A) + P(B) − P(A∩B). Los conjuntos se convierten en eventos y los cardinales en probabilidades, pero la estructura es la misma.

Ejemplo trabajado

Operaciones e inclusión-exclusión con dos conjuntos.

A = {1,2,3,4,5}       |A| = 5
B = {4,5,6,7}         |B| = 4

A ∪ B = {1,2,3,4,5,6,7}    |A∪B| = 7
A ∩ B = {4,5}              |A∩B| = 2
A − B = {1,2,3}
A △ B = {1,2,3,6,7}        (diferencia simétrica)

Inclusión-exclusión: 5 + 4 − 2 = 7 = |A∪B|      ✓
Suma ingenua:        5 + 4     = 9              ✗ cuenta 4 y 5 dos veces

Partes de A: 2⁵ = 32 subconjuntos

Qué ejecuta el laboratorio

Operaciones de conjuntos e inclusión-exclusión.

GrupoSalidas
Resultados numéricos (3)|A|+|B|-|A∩B|, |A∪B|, partes_de_A
Comprobaciones (1)inclusion_exclusion_ok
compmath run 084

Errores conceptuales frecuentes

  1. Sumar cardinales de conjuntos que se solapan sin restar la intersección.
  2. Tratar un conjunto como una lista y esperar orden o repeticiones.
  3. Olvidar el conjunto vacío y el total al contar subconjuntos.

Dónde se usa

Consultas con condiciones múltiples, deduplicación, conteo de casos favorables en probabilidad y análisis de solapamiento entre poblaciones.

Bibliografía de la clase

085 · Relaciones y propiedades

Parte 04 · clase 5 de 20 · demostración relations

Reflexiva, simétrica y transitiva son las tres condiciones que hacen de una relación una equivalencia, y toda equivalencia particiona el conjunto.

reflexiva: ∀a, aRa
simétrica: aRb ⟹ bRa
transitiva: aRb ∧ bRc ⟹ aRc

Fundamentos

Una relación es un conjunto de pares. Las tres propiedades clásicas se comprueban por separado y su combinación tiene consecuencias muy fuertes: si una relación es reflexiva, simétrica y transitiva, particiona el conjunto en clases disjuntas cuya unión es el total. No hay que demostrar la partición: se sigue de las tres propiedades.

El ejemplo canónico es la congruencia módulo n: x ≡ y (mod 3) si x − y es múltiplo de 3. Sus clases de equivalencia son los restos {0,1,2}, y esa partición es exactamente la estructura sobre la que se define la aritmética modular de la clase 098.

La utilidad práctica es de modelado. Cuando se decide que dos objetos son «el mismo» a efectos de un sistema —dos URLs que apuntan al mismo recurso, dos registros del mismo cliente, dos representaciones del mismo número racional—, se está definiendo una relación de equivalencia, y conviene comprobar que cumple las tres propiedades. Una relación de «similitud» que no es transitiva produce agrupamientos inconsistentes.

Ese fallo es real y frecuente: la deduplicación por umbral de similitud no es transitiva —A parecido a B y B parecido a C no implica A parecido a C— y por eso los algoritmos de agrupamiento por similitud necesitan una definición explícita de transitividad, como el cierre transitivo o el enlace completo.

Ejemplo trabajado

Congruencia módulo 3 sobre {0,...,5}.

Relación: x ~ y  si  (x − y) mod 3 == 0

reflexiva:  (x−x) mod 3 = 0                    ✓
simétrica:  si (x−y)≡0 entonces (y−x)≡0        ✓
transitiva: (x−y)≡0 y (y−z)≡0 ⟹ (x−z)≡0        ✓

→ es una relación de equivalencia

Clases de equivalencia:
  [0] = {0, 3}
  [1] = {1, 4}
  [2] = {2, 5}

Disjuntas y su unión es todo el conjunto        ✓

Qué ejecuta el laboratorio

Reflexiva, simétrica y transitiva: la receta de una relación de equivalencia.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (5)reflexiva, simetrica, transitiva, es_equivalencia, particiona_el_universo
compmath run 085

Errores conceptuales frecuentes

  1. Suponer transitividad en relaciones de similitud por umbral.
  2. Comprobar solo una o dos de las tres propiedades.
  3. Confundir relación de equivalencia con relación de orden (que es antisimétrica, no simétrica).

Dónde se usa

Deduplicación de registros, normalización de datos, particiones de un conjunto, aritmética modular y clases de equivalencia de fracciones.

Bibliografía de la clase

086 · Funciones discretas

Parte 04 · clase 6 de 20 · demostración discrete_functions

Inyectiva, sobreyectiva y biyectiva describen qué información conserva una función.

funciones totales de A a B: |B|^|A|
biyecciones de A en A: |A|!

Fundamentos

Sobre conjuntos finitos, las tres propiedades se cuentan. Una función es inyectiva si no repite salidas, sobreyectiva si alcanza todo el codominio y biyectiva si ambas. Entre conjuntos del mismo tamaño finito, inyectiva y sobreyectiva son equivalentes —hecho que falla en conjuntos infinitos y da lugar a las paradojas de Hilbert—.

El conteo de funciones ilustra la regla del producto: cada uno de los |A| elementos puede ir a cualquiera de los |B| destinos, luego hay |B|^|A| funciones. Las biyecciones de un conjunto en sí mismo son |A|!, que es el conteo de permutaciones de la clase 088.

La inyectividad es la condición que hace invertible una función (clase 058) y la que define una función hash perfecta. Como una función hash mapea un dominio enorme en un rango pequeño, no puede ser inyectiva, y de ahí las colisiones que el palomar garantiza en la clase 090.

En machine learning, la pérdida de inyectividad es lo que hace que una capa no sea invertible: si la dimensión de salida es menor que la de entrada, información se pierde irremediablemente. Los normalizing flows se construyen precisamente con capas biyectivas para poder invertirlas y calcular densidades exactas.

Ejemplo trabajado

Dos funciones sobre un dominio de tres elementos.

dominio = {1,2,3},  codominio = {a,b,c}

f = {1→a, 2→b, 3→c}
  inyectiva:   3 salidas distintas         ✓
  sobreyectiva: alcanza a, b y c           ✓
  biyectiva                                ✓

g = {1→a, 2→a, 3→b}
  inyectiva:   1 y 2 comparten salida      ✗
  sobreyectiva: no alcanza c               ✗

Conteo:
  funciones totales posibles: 3³ = 27
  biyecciones posibles:       3! = 6

Qué ejecuta el laboratorio

Inyectiva, sobreyectiva y biyectiva sobre conjuntos finitos.

GrupoSalidas
Resultados numéricos (2)funciones_totales_posibles, biyecciones_posibles
Comprobaciones (4)f_inyectiva, f_sobreyectiva, f_biyectiva, g_inyectiva
compmath run 086

Errores conceptuales frecuentes

  1. Suponer que inyectiva implica sobreyectiva en conjuntos de distinto tamaño.
  2. Extender a conjuntos infinitos la equivalencia entre inyectiva y sobreyectiva.
  3. Esperar que una función hash sea inyectiva.

Dónde se usa

Funciones hash y colisiones, invertibilidad de capas, codificación sin pérdida y normalizing flows.

Bibliografía de la clase

087 · Principios de conteo

Parte 04 · clase 7 de 20 · demostración counting_principles

La regla del producto multiplica opciones independientes; la de la suma las suma cuando son excluyentes.

producto: |A × B| = |A| · |B|
suma (excluyentes): |A ∪ B| = |A| + |B|
entropía de una contraseña: log₂(espacio)

Fundamentos

Los dos principios básicos del conteo se distinguen por una palabra: si las decisiones son sucesivas (esto y aquello), se multiplican; si son alternativas excluyentes (esto o aquello), se suman. Casi todo error de conteo viene de aplicar uno donde correspondía el otro.

La aplicación más ilustrativa es el espacio de contraseñas. Con un alfabeto de 36 caracteres y longitud 8, hay 36⁸ ≈ 2.8·10¹² combinaciones; con solo 10 dígitos, 10⁸. La razón entre ambos es de más de 28 000, y ese factor es lo que separa una contraseña débil de una razonable frente a fuerza bruta.

Medir el espacio en bits de entropíalog₂ del número de combinaciones— es más informativo que dar el número, porque los bits se suman al añadir caracteres. Cada carácter adicional de un alfabeto de 36 símbolos añade log₂36 ≈ 5.17 bits. Esa es la cuenta que hace un estimador de fortaleza de contraseñas.

La misma regla es la que da 2ⁿ estados para n bits (clase 021), |B|^|A| funciones (clase 086) y el tamaño del espacio de búsqueda de cualquier problema combinatorio. En machine learning aparece al contar configuraciones de hiperparámetros: cinco parámetros con diez valores cada uno dan 10⁵ combinaciones, que es por lo que la búsqueda exhaustiva se abandona en favor de la aleatoria o bayesiana.

Ejemplo trabajado

Espacio de contraseñas de 8 caracteres.

Alfanumérico (26 letras + 10 dígitos = 36 símbolos):
  36⁸ = 2 821 109 907 456 ≈ 2.8·10¹²
  entropía = 8·log₂(36) = 41.4 bits

Solo dígitos (10 símbolos):
  10⁸ = 100 000 000 = 10⁸
  entropía = 8·log₂(10) = 26.6 bits

Factor de ventaja: 2.8·10¹² / 10⁸ = 28 211

Regla del producto:  3 camisas × 4 pantalones = 12 conjuntos
Regla de la suma:    3 camisas o 4 pantalones = 7 prendas

Qué ejecuta el laboratorio

Regla del producto, de la suma y conteo de contraseñas.

GrupoSalidas
Resultados numéricos (6)regla_del_producto_3x4, regla_de_la_suma_3+4, contraseñas_alfanumericas_8, contraseñas_solo_digitos_8, factor_de_ventaja, bits_de_entropia
Comprobaciones (0)
compmath run 087

Errores conceptuales frecuentes

  1. Sumar cuando las decisiones son sucesivas o multiplicar cuando son excluyentes.
  2. Contar dos veces casos que pertenecen a ambas alternativas.
  3. Reportar el tamaño del espacio en lugar de su logaritmo al comparar órdenes de magnitud.

Dónde se usa

Estimación de fortaleza de contraseñas, tamaño de espacios de búsqueda, conteo de configuraciones de hiperparámetros y cardinalidad de esquemas de datos.

Bibliografía de la clase

088 · Permutaciones

Parte 04 · clase 8 de 20 · demostración permutations_demo

Una permutación cuenta selecciones donde el orden importa.

P(n) = n!
P(n,k) = n!/(n−k)!
con repetición: nᵏ

Fundamentos

Permutar es ordenar. El número de ordenaciones completas de n objetos distintos es n!, y el argumento es la regla del producto: hay n opciones para la primera posición, n−1 para la segunda —ya se usó una— y así sucesivamente.

Las permutaciones parciales P(n,k) cuentan las formas de elegir k objetos en orden entre n disponibles: n!/(n−k)!. Si además se permite repetir, el conteo es nᵏ, porque cada posición vuelve a tener n opciones. Distinguir los tres casos —total, parcial sin repetición, parcial con repetición— es la mitad de la combinatoria elemental.

El factorial crece brutalmente: 10! ≈ 3.6·10⁶, 20! ≈ 2.4·10¹⁸, 70! ya supera el mayor float64 representable. Ese crecimiento es la razón por la que el problema del viajante no se resuelve por fuerza bruta y por la que cualquier algoritmo con coste factorial es inviable más allá de una veintena de elementos.

En deep learning las permutaciones aparecen de forma indirecta pero relevante: la atención es permutación-equivariante, es decir, permutar los tokens de entrada permuta la salida de la misma forma. Esa propiedad es la que hace necesario el positional encoding (clase 323), porque sin él el modelo no distinguiría el orden.

Ejemplo trabajado

Permutaciones de cuatro elementos.

elementos: A, B, C, D

permutaciones totales:  4! = 24
P(4,2) = 4!/2! = 12     (elegir 2 en orden)
  AB AC AD BA BC BD CA CB CD DA DB DC

con repetición: 4² = 16   (AA, AB, ..., DD)

Crecimiento del factorial:
  10! = 3 628 800
  20! = 2.43·10¹⁸
  70! > 1.8·10³⁰⁸ → desborda float64

Qué ejecuta el laboratorio

Permutaciones: el orden importa.

GrupoSalidas
Resultados numéricos (4)permutaciones_totales_4!, P(4,2), formula_n!/(n-k)!, con_repeticion_4^2
Comprobaciones (0)
compmath run 088

Errores conceptuales frecuentes

  1. Usar permutaciones donde el orden no importa (corresponde combinación).
  2. Olvidar si se permite repetición al elegir la fórmula.
  3. Calcular factoriales grandes en float en lugar de en entero exacto.

Dónde se usa

Barajado y muestreo sin reemplazo, problemas de ordenación y planificación, y equivarianza a permutaciones en arquitecturas de atención y GNN.

Bibliografía de la clase

089 · Combinaciones

Parte 04 · clase 9 de 20 · demostración combinations_demo

Una combinación cuenta selecciones donde el orden no importa; su simetría refleja que elegir k es descartar n−k.

C(n,k) = n!/(k!(n−k)!)
C(n,k) = C(n,n−k)
Σₖ C(n,k) = 2ⁿ

Fundamentos

Una combinación es una permutación a la que se le ha quitado el orden: hay k! ordenaciones de cada selección, así que C(n,k) = P(n,k)/k!. Esa deducción es la forma correcta de recordar la fórmula, en lugar de memorizarla.

La simetría C(n,k) = C(n,n−k) tiene una lectura inmediata: elegir k elementos es lo mismo que decidir cuáles n−k se descartan. Es un ejemplo de biyección como técnica de demostración: dos conteos coinciden porque existe una correspondencia uno a uno entre lo que cuentan.

La suma de toda una fila del triángulo de Pascal es 2ⁿ, y también tiene lectura combinatoria: sumar sobre todos los tamaños posibles de subconjunto es contar todos los subconjuntos, que son 2ⁿ. Este tipo de argumentos —contar lo mismo de dos formas— es la herramienta central de la combinatoria.

En probabilidad, C(n,k) es el coeficiente de la distribución binomial (clase 192): el número de secuencias con exactamente k éxitos en n ensayos. Y en machine learning aparece al contar particiones de un conjunto de datos y al calcular el número de comparaciones en un test estadístico múltiple.

Ejemplo trabajado

Combinaciones de 3 entre 5.

elementos: A B C D E

C(5,3) = 5!/(3!·2!) = 120/(6·2) = 10
  ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE

Simetría: C(5,3) = C(5,2) = 10          ✓
  (elegir 3 ≡ descartar 2)

Fila de Pascal para n=5:
  C(5,0..5) = 1, 5, 10, 10, 5, 1
  suma = 32 = 2⁵                        ✓

Qué ejecuta el laboratorio

Combinaciones: el orden no importa.

GrupoSalidas
Resultados numéricos (4)C(5,3), math.comb, suma_fila_de_pascal, 2^5
Comprobaciones (1)simetria_C(5,3)=C(5,2)
compmath run 089

Errores conceptuales frecuentes

  1. Usar combinaciones donde el orden sí importa.
  2. Calcular el factorial completo en lugar de usar math.comb, que evita desbordar.
  3. Confundir C(n,k) con P(n,k): difieren en el factor k!.

Dónde se usa

Distribución binomial, número de comparaciones en tests múltiples, muestreo de subconjuntos y conteo de particiones en validación cruzada.

Bibliografía de la clase

090 · Principio del palomar

Parte 04 · clase 10 de 20 · demostración pigeonhole

El principio del palomar demuestra que existe una colisión sin construir ninguna.

n objetos en m cajas con n > m ⟹ alguna caja tiene ≥ ⌈n/m⌉
colisión de hash garantizada si entradas > tamaño del espacio

Fundamentos

El principio del palomar es de una simplicidad desarmante: si se reparten n objetos en m cajas y n > m, alguna caja recibe al menos dos. Su potencia está en que demuestra una existencia sin ofrecer un método para encontrarla, y ese tipo de argumento —no constructivo— es habitual en matemáticas y muy útil en informática.

La aplicación directa es a las funciones hash. Una función que mapea un dominio infinito —o simplemente mayor— en un espacio de 2ⁿ valores tiene colisiones necesariamente. No es un defecto de la función: es una consecuencia lógica. Por eso la pregunta correcta sobre una función hash criptográfica no es «¿tiene colisiones?» sino «¿es computacionalmente factible encontrarlas?».

La forma generalizada da una cota más fina: alguna caja tiene al menos ⌈n/m⌉ objetos. Con 400 personas y 365 días del año, alguna fecha tiene al menos dos cumpleaños; con 800, al menos tres.

Conviene no confundirlo con la paradoja del cumpleaños, que es un resultado probabilístico distinto: con solo 23 personas la probabilidad de coincidencia supera el 50 %. El palomar da certeza con 366; la paradoja da probabilidad alta con 23. La segunda es la que determina la seguridad real de un hash frente a ataques de colisión, y aparece en la clase 090 como contraste.

Ejemplo trabajado

Cumpleaños y colisiones de hash.

400 personas, 365 días:
  400 > 365 → coincidencia GARANTIZADA
  mínimo de repeticiones: ⌈400/365⌉ = 2

Hash de 16 bits (65 536 valores), 100 000 entradas:
  100 000 > 65 536 → colisión GARANTIZADA

Contraste con la paradoja del cumpleaños:
  con 23 personas, P(coincidencia) > 0.5
  el palomar da certeza; la paradoja da probabilidad

Lección: no hace falta encontrar la colisión
         para demostrar que existe.

Qué ejecuta el laboratorio

Principio del palomar: colisiones garantizadas sin construirlas.

GrupoSalidas
Resultados numéricos (5)personas, dias_del_año, minimo_repeticiones, espacio_hash, entradas
Comprobaciones (2)coincidencia_de_cumpleaños_garantizada, colision_garantizada
compmath run 090

Errores conceptuales frecuentes

  1. Confundir el principio del palomar (certeza) con la paradoja del cumpleaños (probabilidad).
  2. Suponer que una función hash bien diseñada no tiene colisiones.
  3. Aplicar la cota ⌈n/m⌉ como si fuera el máximo en lugar del mínimo garantizado.

Dónde se usa

Análisis de funciones hash, límites de compresión sin pérdida, diseño de tablas hash y argumentos de existencia en teoría de la complejidad.

Bibliografía de la clase

091 · Inducción matemática

Parte 04 · clase 11 de 20 · demostración induction

La inducción demuestra infinitos casos con un caso base y un paso que hereda la propiedad.

base: P(1) es cierta
paso: P(k) ⟹ P(k+1)
conclusión: P(n) para todo n ≥ 1

Fundamentos

La inducción resuelve un problema que parece imposible: demostrar algo sobre infinitos números en dos pasos. El caso base establece que la propiedad vale en el primer valor; el paso inductivo demuestra que si vale en k, entonces vale en k+1. La combinación de ambos hace caer todas las fichas de dominó.

La analogía con un bucle es exacta: el caso base es la inicialización y el paso inductivo es el invariante que se mantiene en cada iteración. Demostrar la corrección de un bucle es demostrar por inducción que su invariante se preserva, y esa es la base de la verificación formal de programas.

El paso inductivo es donde vive la demostración, y su estructura es siempre la misma: escribir P(k+1), identificar dentro de ella la parte que es P(k), aplicar la hipótesis y simplificar. Para la suma de Gauss: S(k+1) = S(k) + (k+1) = k(k+1)/2 + (k+1) = (k+1)(k+2)/2, que es exactamente la fórmula con k+1.

Es importante no confundir inducción con verificación. Comprobar los primeros 50 casos no demuestra nada, como la clase 019 mostró con el polinomio de Euler. La verificación empírica es un control de sanidad previo a la demostración, no un sustituto.

Ejemplo trabajado

Demostrar la suma de Gauss por inducción.

Proposición: 1 + 2 + ... + n = n(n+1)/2

Caso base (n=1):
  izquierda = 1
  derecha   = 1·2/2 = 1              ✓

Paso inductivo: suponemos S(k) = k(k+1)/2
  S(k+1) = S(k) + (k+1)
         = k(k+1)/2 + (k+1)
         = (k+1)(k/2 + 1)
         = (k+1)(k+2)/2              ✓ es la fórmula con k+1

Verificación empírica (control de sanidad):
  50 valores comprobados, 0 contraejemplos
  → NO es la demostración, es una comprobación previa

Qué ejecuta el laboratorio

Inducción: caso base, paso inductivo y verificación empírica.

GrupoSalidas
Resultados numéricos (1)verificado_hasta
Comprobaciones (2)caso_base_n=1, la_verificacion_no_es_demostracion
compmath run 091

Errores conceptuales frecuentes

  1. Omitir el caso base: sin él, el paso inductivo no arranca.
  2. Usar la conclusión como hipótesis dentro del paso inductivo.
  3. Confundir verificar los primeros n casos con demostrar.

Dónde se usa

Corrección de algoritmos recursivos, invariantes de bucle, análisis de estructuras de datos y demostración de cotas de complejidad.

Bibliografía de la clase

092 · Recurrencias

Parte 04 · clase 12 de 20 · demostración recurrences

Una recurrencia define cada término desde los anteriores; su coste depende radicalmente de si se memoiza.

F(n) = F(n−1) + F(n−2),  F(0)=0, F(1)=1
Binet: F(n) = (φⁿ − (−1/φ)ⁿ)/√5,  φ = (1+√5)/2

Fundamentos

Una recurrencia es una definición autorreferente con casos base. Fibonacci es el ejemplo canónico, y sirve para ilustrar la diferencia más importante del análisis de algoritmos: la implementación recursiva ingenua recalcula los mismos valores una y otra vez y tarda O(φⁿ); la iterativa —o la memoizada— tarda O(n).

La diferencia no es de constante: para n = 50, la ingenua hace del orden de 10¹⁰ llamadas y la iterativa 50 pasos. Es la demostración más clara de que la complejidad asintótica no es una abstracción académica.

Fibonacci tiene además una fórmula cerrada, la de Binet, que involucra la razón áurea φ. Que una recurrencia de enteros se exprese con irracionales es notable, y su deducción —resolver la ecuación característica x² = x + 1— es el método general para recurrencias lineales homogéneas, análogo al de las ecuaciones diferenciales lineales de la parte 11.

Una precaución numérica: la fórmula de Binet en punto flotante deja de dar el entero exacto para n grande, porque φⁿ crece y la precisión relativa se agota. Para n = 71 el redondeo ya falla. Es un buen recordatorio de que una fórmula cerrada no siempre es preferible a una iteración.

Ejemplo trabajado

Fibonacci por tres caminos.

F(30):
  iterativo:  832040        30 pasos
  Binet:      832040        1 evaluación
  coinciden                            ✓

recursivo ingenuo: 2 692 537 llamadas
  coste O(φⁿ) ≈ O(1.618ⁿ)

Razón entre consecutivos:
  F(31)/F(30) = 1.6180339...
  φ           = 1.6180339...           ✓ converge

Límite de Binet en float64: falla a partir de n ≈ 71

Qué ejecuta el laboratorio

Recurrencia lineal: iterativo, memoizado y forma cerrada.

GrupoSalidas
Resultados numéricos (4)F(30)_iterativo, F(30)_binet, razon_asintotica, razon_aurea
Comprobaciones (1)coinciden
compmath run 092

Errores conceptuales frecuentes

  1. Implementar una recurrencia recursivamente sin memoización.
  2. Confiar en la fórmula de Binet para n grande en punto flotante.
  3. Olvidar los casos base al definir la recurrencia.

Dónde se usa

Análisis de algoritmos divide y vencerás, programación dinámica, modelos autorregresivos y recurrencias en RNN (clase 313).

Bibliografía de la clase

093 · Grafos: vértices y aristas

Parte 04 · clase 13 de 20 · demostración graphs

Un grafo modela relaciones; el lema del apretón de manos relaciona grados y aristas.

no dirigido: Σ grados = 2|E|
dirigido: Σ grados de salida = Σ grados de entrada = |E|
densidad = |E| / (|V|(|V|−1))

Fundamentos

Un grafo es un conjunto de vértices y un conjunto de aristas que los conectan. Es la estructura más versátil de la computación porque casi cualquier relación se modela así: dependencias entre tareas, enlaces entre páginas, amistades, rutas, y —lo que importa en este programa— operaciones de un cálculo.

El lema del apretón de manos dice que la suma de los grados es el doble del número de aristas, porque cada arista contribuye 1 a cada uno de sus dos extremos. De ahí se deduce inmediatamente que el número de vértices de grado impar es par, resultado que parece anecdótico y aparece en problemas de emparejamiento.

La representación importa para el rendimiento. Una matriz de adyacencia ocupa O(V²) y responde «¿hay arista?» en tiempo constante; una lista de adyacencia ocupa O(V+E) y es preferible en grafos dispersos, que son la mayoría de los reales. Los grafos de redes sociales tienen densidad ínfima, y usar matriz sería inviable.

El grafo del laboratorio es un pipeline de machine learning —entrada, limpieza, features, split, entrenamiento, evaluación—, y ese ejemplo no es decorativo: la ejecución de un pipeline, de un sistema de construcción y de un grafo de cómputo de autodiferenciación son el mismo problema sobre la misma estructura.

Ejemplo trabajado

Grafo de un pipeline de ML.

entrada → limpieza → features    → entrenamiento → evaluacion
                  ↘ split       ↗

vértices: 6
aristas dirigidas: 6

grados de salida:
  entrada 1, limpieza 2, features 1,
  split 1, entrenamiento 1, evaluacion 0
suma = 6 = |E|                        ✓

densidad = 6/(6·5) = 0.2

Qué ejecuta el laboratorio

Grados, aristas y el lema del apretón de manos.

GrupoSalidas
Resultados numéricos (3)aristas_dirigidas, suma_de_grados, densidad
Comprobaciones (0)
compmath run 093

Errores conceptuales frecuentes

  1. Usar matriz de adyacencia en grafos grandes y dispersos.
  2. Aplicar el lema del apretón de manos (2|E|) a grafos dirigidos.
  3. Olvidar si el grafo es dirigido al contar grados.

Dónde se usa

Grafos de cómputo y autodiferenciación, sistemas de construcción, redes sociales, rutas y GNN.

Bibliografía de la clase

094 · Caminos, ciclos y conectividad

Parte 04 · clase 14 de 20 · demostración paths_connectivity

BFS recorre por niveles y encuentra el camino con menos aristas en tiempo O(V+E).

coste BFS: O(V + E)
distancia BFS = número mínimo de aristas
excentricidad = máxima distancia desde un vértice

Fundamentos

El recorrido en anchura visita primero todos los vecinos, luego los vecinos de los vecinos, y así sucesivamente. Esa disciplina por niveles garantiza que la primera vez que se alcanza un vértice se ha hecho por el camino con menos aristas, que es el camino más corto en un grafo no ponderado.

La implementación necesita una cola (FIFO) y un conjunto de visitados. Cambiar la cola por una pila convierte el algoritmo en DFS, con propiedades muy distintas: DFS no garantiza caminos mínimos pero sirve para detectar ciclos y para ordenar topológicamente. La estructura de datos determina el comportamiento.

El coste O(V + E) es óptimo: cada vértice y cada arista se procesan una vez. Con pesos en las aristas, BFS deja de servir y hace falta Dijkstra, cuyo coste sube a O((V+E) log V) por la cola de prioridad.

La excentricidad de un vértice —la mayor distancia a cualquier otro— y el diámetro del grafo se calculan con BFS desde cada vértice. En redes sociales esas métricas dan lugar al fenómeno de los «seis grados de separación», y en un pipeline indican cuántas etapas secuenciales hay como mínimo.

Ejemplo trabajado

BFS desde «entrada» en el pipeline.

orden de visita:
  entrada → limpieza → features → split → entrenamiento → evaluacion

distancias (en aristas):
  entrada       0
  limpieza      1
  features      2
  split         2
  entrenamiento 3
  evaluacion    4

todos alcanzables: 6/6                ✓
excentricidad de entrada: 4
coste: O(V + E) = O(6 + 6)

Qué ejecuta el laboratorio

Recorrido BFS: alcanzabilidad y distancia en aristas.

GrupoSalidas
Resultados numéricos (1)excentricidad
Comprobaciones (1)todos_alcanzables
compmath run 094

Errores conceptuales frecuentes

  1. Usar una pila en lugar de una cola y obtener DFS sin darse cuenta.
  2. Aplicar BFS a un grafo con pesos esperando el camino de coste mínimo.
  3. No marcar los vértices como visitados y entrar en bucle infinito.

Dónde se usa

Camino más corto en grafos no ponderados, detección de componentes conexas, análisis de alcance en redes y niveles de un pipeline.

Bibliografía de la clase

095 · Árboles y árboles de expansión

Parte 04 · clase 15 de 20 · demostración trees

Un árbol con n vértices tiene exactamente n−1 aristas; añadir una crea un ciclo.

|E| = |V| − 1
existe un único camino entre cada par de vértices

Fundamentos

Un árbol es un grafo conexo sin ciclos, y esa doble condición tiene una consecuencia numérica exacta: con n vértices tiene exactamente n−1 aristas. Ni una más —eso crearía un ciclo— ni una menos —eso lo desconectaría—. Es la estructura conexa mínima.

La unicidad del camino entre cualquier par de vértices se sigue de la ausencia de ciclos, y es la propiedad que hace útiles a los árboles: no hay ambigüedad sobre cómo llegar de un nodo a otro. De ahí que se usen para jerarquías, sistemas de archivos, índices de bases de datos y estructuras de decisión.

La altura de un árbol determina el coste de las operaciones. Un árbol binario equilibrado con n nodos tiene altura log₂ n, y por eso las búsquedas cuestan logarítmicamente; uno degenerado en lista tiene altura n y el coste se vuelve lineal. Todo el diseño de árboles balanceados (AVL, rojo-negro, B-tree) existe para garantizar esa altura logarítmica.

En machine learning, los árboles de decisión (clase 291) usan esta estructura para particionar el espacio de features, y su profundidad es el hiperparámetro que controla directamente el compromiso sesgo-varianza: más profundo, menos sesgo y más varianza.

Ejemplo trabajado

Verificar la relación en un árbol de seis nodos.

        raiz
       /    \
      a      b
     / \      \
    c   d      e

vértices: 6   (raiz, a, b, c, d, e)
aristas:  5
n − 1 = 5                              ✓ es un árbol

hojas: c, d, e
altura: 2

profundidades:
  raiz 0,  a 1,  b 1,  c 2,  d 2,  e 2

Qué ejecuta el laboratorio

Un árbol con n nodos tiene exactamente n-1 aristas.

GrupoSalidas
Resultados numéricos (4)nodos, aristas, n-1, altura
Comprobaciones (1)es_arbol
compmath run 095

Errores conceptuales frecuentes

  1. Llamar árbol a un grafo con ciclos.
  2. Suponer que un árbol binario está equilibrado sin garantizarlo.
  3. Confundir altura (aristas del camino más largo) con número de nodos.

Dónde se usa

Sistemas de archivos, índices de bases de datos, árboles de decisión, parseo sintáctico y árboles de expansión mínima.

Bibliografía de la clase

096 · DAG y orden topológico

Parte 04 · clase 16 de 20 · demostración topological_order

El orden topológico existe si y solo si el grafo es acíclico; su ausencia localiza el ciclo.

algoritmo de Kahn: repetir «tomar vértice de grado de entrada 0»
si quedan vértices sin ordenar ⟹ hay ciclo

Fundamentos

Un orden topológico es una ordenación lineal de los vértices tal que toda arista va de un vértice anterior a uno posterior. Existe si y solo si el grafo es acíclico, y esa equivalencia convierte el algoritmo en un detector de ciclos: si al terminar quedan vértices sin ordenar, esos vértices forman —o dependen de— al menos un ciclo.

El algoritmo de Kahn es directo: se toman repetidamente los vértices con grado de entrada cero (los que no dependen de nada pendiente), se emiten y se decrementan los grados de sus sucesores. Coste O(V + E), el mismo que BFS.

Este algoritmo es el que ejecuta todo sistema de construcción —make, Bazel, un DAG de Airflow— para decidir en qué orden ejecutar tareas. El mensaje «dependencia circular detectada» que emiten esos sistemas es literalmente el caso en que Kahn no consigue ordenar todos los nodos.

Y aquí está la conexión que da sentido a esta clase dentro del programa: la autodiferenciación en modo reverso recorre el grafo de cómputo en orden topológico inverso. La clase 306 lo hace explícito, y la clase 179 lo implementa: backward() construye el orden topológico y luego lo recorre al revés propagando gradientes. Sin esta clase, esa implementación parecería magia.

Ejemplo trabajado

Orden topológico del pipeline y detección de ciclo.

Grafo (DAG):
  entrada → limpieza → {features, split} → entrenamiento → evaluacion

Grados de entrada iniciales:
  entrada 0, limpieza 1, features 1, split 1,
  entrenamiento 2, evaluacion 1

Orden de Kahn:
  entrada, limpieza, features, split, entrenamiento, evaluacion
6 de 6 vértices ordenados → es un DAG            ✓

Con una arista extra evaluacion → limpieza:
  ningún vértice queda con grado 0 tras entrada
  vértices ordenados: 1 de 6
  → hay un ciclo, y los 5 restantes están dentro o dependen de él

Qué ejecuta el laboratorio

Orden topológico y detección de ciclos por conteo de Kahn.

GrupoSalidas
Resultados numéricos (1)nodos_ordenados
Comprobaciones (1)es_DAG
compmath run 096

Errores conceptuales frecuentes

  1. Suponer que un grafo de dependencias es acíclico sin comprobarlo.
  2. Interpretar el fallo del orden topológico como un error del algoritmo en lugar de como un diagnóstico.
  3. Olvidar que puede haber varios órdenes topológicos válidos.

Dónde se usa

Sistemas de construcción, planificadores de tareas, resolución de dependencias de paquetes, evaluación de hojas de cálculo y autodiferenciación en modo reverso.

Bibliografía de la clase

097 · Álgebra booleana

Parte 04 · clase 17 de 20 · demostración boolean_algebra

Simplificar una expresión booleana reduce puertas físicas sin cambiar su comportamiento.

absorción: a ∨ (a ∧ b) ≡ a
distributiva: a ∧ (b ∨ c) ≡ (a∧b) ∨ (a∧c)
complemento: a ∨ ¬a ≡ 1,  a ∧ ¬a ≡ 0

Fundamentos

El álgebra de Boole, publicada en 1854, describió las leyes del razonamiento con símbolos. Ochenta años después, Claude Shannon mostró en su tesis de máster —una de las más influyentes de la historia— que esas mismas leyes describen los circuitos de conmutación. Ese puente es el fundamento del hardware digital.

Simplificar una expresión booleana tiene una consecuencia física directa: menos términos significan menos puertas lógicas, menos área de silicio, menos consumo y menor retardo de propagación. La expresión (a∧b) ∨ (a∧¬b) ∨ (a∧c) se reduce a a por absorción y complemento, eliminando cuatro puertas.

La verificación por tabla de verdad es exhaustiva y por tanto concluyente para pocas variables, pero su coste es 2ⁿ. Con veinte variables ya es un millón de filas, y ahí empieza el terreno del problema SAT, el primer problema que se demostró NP-completo (Cook, 1971). Que la verificación sea fácil y la búsqueda difícil es la esencia de esa clase de complejidad.

En machine learning el álgebra booleana aparece de forma menos visible pero real: las máscaras de atención son matrices booleanas, los filtros de datos son expresiones booleanas, y la cuantización binaria de redes (BNN) opera con estas mismas leyes.

Ejemplo trabajado

Simplificar una expresión de tres términos.

original:     (a∧b) ∨ (a∧¬b) ∨ (a∧c)

paso 1: (a∧b) ∨ (a∧¬b) = a∧(b ∨ ¬b) = a∧1 = a
paso 2: a ∨ (a∧c) = a                (absorción)

simplificada: a

Verificación exhaustiva: 8 casos (2³)
  todas las asignaciones coinciden               ✓

Puertas ahorradas: 4

Qué ejecuta el laboratorio

Álgebra booleana: simplificación y equivalencia funcional.

GrupoSalidas
Resultados numéricos (2)casos, puertas_ahorradas
Comprobaciones (2)equivalentes, absorcion_a∨(a∧b)
compmath run 097

Errores conceptuales frecuentes

  1. Simplificar sin verificar con tabla de verdad.
  2. Aplicar la distributiva de la conjunción como si fuera la de los números.
  3. Suponer que la verificación exhaustiva escala a muchas variables.

Dónde se usa

Diseño de circuitos digitales, optimización de condiciones y consultas, máscaras de atención y verificación formal de propiedades.

Bibliografía de la clase

098 · Aritmética modular

Parte 04 · clase 18 de 20 · demostración modular_arithmetic

La aritmética modular opera con restos y hace factible exponenciar números enormes.

(a + b) mod n = ((a mod n) + (b mod n)) mod n
pequeño teorema de Fermat: a^(p−1) ≡ 1 (mod p) si p es primo y p ∤ a
inverso modular: a·a⁻¹ ≡ 1 (mod n), existe si mcd(a,n) = 1

Fundamentos

La aritmética modular trabaja con las clases de equivalencia que la clase 085 definió: dos números son «el mismo» si difieren en un múltiplo de n. Sobre esas clases, la suma y el producto están bien definidos, y esa buena definición es lo que permite reducir en cada paso en lugar de al final.

Esa reducción es lo que hace viable la exponenciación modular. Calcular 7¹²⁸ mod 13 sin reducir exigiría un número de 108 dígitos; con exponenciación binaria y reducción en cada paso, son siete multiplicaciones de números pequeños. pow(base, exp, mod) en Python implementa exactamente eso.

El pequeño teorema de Fermat —a^(p−1) ≡ 1 (mod p) para p primo— es la base de los tests de primalidad probabilísticos y de RSA. El inverso modular existe cuando mcd(a, n) = 1 y se calcula con el algoritmo de Euclides extendido; Python lo expone como pow(a, -1, n) desde la versión 3.8.

Estas operaciones sostienen buena parte de la infraestructura digital: RSA, Diffie- Hellman, curvas elípticas, funciones hash, sumas de comprobación y generadores congruenciales de números pseudoaleatorios. La seguridad de varios de esos sistemas descansa en que la operación inversa —el logaritmo discreto— es computacionalmente difícil.

Ejemplo trabajado

Exponenciación e inverso modular.

7¹²⁸ mod 13 = 3
  (sin reducir, 7¹²⁸ tendría 109 dígitos)

Pequeño teorema de Fermat (p = 13 primo):
  7¹² mod 13 = 1                        ✓

Inverso de 7 módulo 13:
  pow(7, -1, 13) = 2
  verificación: 7·2 = 14 ≡ 1 (mod 13)   ✓

Suma modular: (25 + 30) mod 13 = 55 mod 13 = 3

Qué ejecuta el laboratorio

Aritmética modular: exponenciación rápida e inverso modular.

GrupoSalidas
Resultados numéricos (5)7^128 mod 13, pequeño_teorema_de_fermat, inverso_de_7_mod_13, verificacion_inverso, suma_modular
Comprobaciones (0)
compmath run 098

Errores conceptuales frecuentes

  1. Calcular la potencia completa antes de reducir módulo n.
  2. Buscar el inverso modular cuando mcd(a,n) ≠ 1: no existe.
  3. Usar el operador % con negativos esperando el comportamiento de C: Python devuelve resto no negativo.

Dónde se usa

RSA y Diffie-Hellman, funciones hash, sumas de comprobación, generadores pseudoaleatorios y aritmética de campos finitos.

Bibliografía de la clase

099 · Números primos y máximo común divisor

Parte 04 · clase 19 de 20 · demostración primes_gcd

La criba encuentra todos los primos hasta n, y mcd·mcm = a·b relaciona ambos conceptos.

criba: tachar múltiplos desde i² con i ≤ √n
mcd(a,b)·mcm(a,b) = a·b
Euclides: mcd(a,b) = mcd(b, a mod b)

Fundamentos

La criba de Eratóstenes, del siglo III a.C., sigue siendo el método práctico para listar todos los primos hasta n. Su eficiencia viene de dos optimizaciones: basta recorrer hasta √n, porque todo compuesto tiene un factor menor o igual a su raíz; y basta empezar a tachar desde , porque los múltiplos menores ya fueron tachados por primos anteriores. El coste es O(n log log n), prácticamente lineal.

El algoritmo de Euclides para el máximo común divisor es aún más antiguo y es un candidato al algoritmo no trivial más antiguo que se sigue usando. Su idea —mcd(a,b) = mcd(b, a mod b)— reduce el problema en cada paso y termina en O(log min(a,b)).

La identidad mcd·mcm = a·b permite calcular el mínimo común múltiplo sin factorizar, que es importante porque factorizar es difícil mientras que calcular el mcd es fácil. Esa asimetría es la que sostiene RSA: multiplicar dos primos grandes es inmediato, recuperarlos del producto no se sabe hacer eficientemente.

El teorema fundamental de la aritmética —toda factorización en primos es única— es lo que da sentido a todo esto. Y el hecho de que los primos sean infinitos, demostrado por Euclides con un argumento por contradicción de tres líneas, garantiza que siempre hay primos suficientemente grandes para la criptografía.

Ejemplo trabajado

Criba hasta 50 y mcd de dos números.

Primos ≤ 50 (15 en total):
  2 3 5 7 11 13 17 19 23 29 31 37 41 43 47

mcd(252, 198) por Euclides:
  252 = 1·198 + 54
  198 = 3·54  + 36
   54 = 1·36  + 18
   36 = 2·18  + 0     → mcd = 18

mcm = 252·198/18 = 2772

Verificación: 18 · 2772 = 49 896 = 252 · 198    ✓

Factorización de 252 = 2²·3²·7

Qué ejecuta el laboratorio

Criba, MCD por Euclides y su relación con el mínimo común múltiplo.

GrupoSalidas
Resultados numéricos (5)cantidad, a, b, mcd, mcm
Comprobaciones (1)mcd*mcm=a*b
compmath run 099

Errores conceptuales frecuentes

  1. Recorrer la criba hasta n en lugar de hasta √n.
  2. Calcular el mcm factorizando en lugar de usar la identidad con el mcd.
  3. Suponer que factorizar es tan fácil como multiplicar.

Dónde se usa

Generación de claves criptográficas, simplificación de fracciones, tests de primalidad y hashing con módulos primos.

Bibliografía de la clase

100 · Capstone: modelar dependencias con grafos

Parte 04 · clase 20 de 20 · demostración capstone_dependency_graph

Planificar dependencias es ordenar topológicamente y agrupar por niveles para paralelizar.

nivel(v) = 1 + máx(nivel(u)) sobre los predecesores u
pasos secuenciales mínimos = máximo nivel + 1

Fundamentos

El capstone monta el problema real que resuelve cualquier sistema de construcción o de orquestación: dado un grafo de dependencias, decidir en qué orden ejecutar las tareas, cuáles pueden ir en paralelo y qué hacer si hay un ciclo.

El orden topológico da la secuencia válida. Agrupar por niveles —donde el nivel de una tarea es uno más que el máximo de sus predecesores— da algo más útil: todas las tareas del mismo nivel son independientes entre sí y pueden ejecutarse simultáneamente. El número de niveles es el número mínimo de pasos secuenciales, sin importar cuántos trabajadores haya.

Ese número es el camino crítico, y es la cota que ninguna cantidad de paralelismo puede superar. Si un pipeline tiene cinco niveles, tardará al menos cinco pasos aunque se disponga de mil máquinas. Es la versión discreta de la ley de Amdahl.

La detección de ciclos completa la herramienta. Un grafo con ciclo no admite orden topológico, y el algoritmo lo detecta contando cuántos vértices consiguió emitir. Los vértices no emitidos son exactamente los que están en el ciclo o dependen de él, lo que convierte el fallo en un diagnóstico útil en lugar de en un error opaco.

Ejemplo trabajado

Planificar el pipeline y detectar un ciclo.

Orden de ejecución:
  entrada, limpieza, features, split, entrenamiento, evaluacion

Niveles paralelizables:
  nivel 0: entrada
  nivel 1: limpieza
  nivel 2: features, split      ← pueden ir en paralelo
  nivel 3: entrenamiento
  nivel 4: evaluacion

Tareas: 6
Pasos secuenciales mínimos: 5    (camino crítico)
Con 2 trabajadores: sigue siendo 5 pasos

Con arista evaluacion → limpieza:
  ciclo detectado, 5 nodos bloqueados

Qué ejecuta el laboratorio

Capstone: planificar un pipeline con grafos y detectar dependencias rotas.

GrupoSalidas
Resultados numéricos (3)pasos_secuenciales_minimos, tareas, nodos_bloqueados_por_el_ciclo
Comprobaciones (1)grafo_con_ciclo_detectado
compmath run 100

Errores conceptuales frecuentes

  1. Suponer que más trabajadores reducen el tiempo por debajo del camino crítico.
  2. No detectar ciclos antes de intentar ejecutar el plan.
  3. Confundir el número de tareas con el número de pasos secuenciales.

Dónde se usa

Sistemas de construcción, orquestadores de flujos (Airflow, Dagster), resolución de dependencias de paquetes, planificación de proyectos y ejecución de grafos de cómputo.

Bibliografía de la clase

Parte 05 — Álgebra lineal I: vectores y matrices

Nivel intermedio · 20 clases · 80 horas · motor part05

Vectores, normas, producto punto, independencia, span, sistemas lineales, eliminación de Gauss, rango, inversa, determinante y proyección ortogonal.

Si hubiera que elegir una parte del programa como la más rentable para alguien que quiere entender IA, sería esta. Todo modelo moderno —desde la regresión lineal hasta un Transformer de cien mil millones de parámetros— opera sobre vectores y matrices, y casi toda su computación es producto matricial. Quien no distingue un espacio columna de un espacio fila no puede depurar un error de dimensiones ni entender por qué una capa pierde información.

El cambio de perspectiva que propone la parte es concreto: dejar de ver una matriz como una tabla y verla como una función. Una matriz A de tamaño m×n es una transformación lineal de ℝⁿ en ℝᵐ, y sus columnas son las imágenes de los vectores de la base. Con esa lectura, Ax deja de ser «filas por columnas» y pasa a ser una combinación lineal de las columnas de A con los coeficientes de x —que es exactamente lo que hace una capa densa con sus pesos—.

Las clases 101 a 108 construyen el vocabulario vectorial: operaciones, producto punto, normas, independencia y span. El producto punto es el protagonista: mide alineación, define ortogonalidad y es la operación que ejecutan miles de millones de veces por segundo los aceleradores. La similitud coseno de un buscador semántico es un producto punto normalizado, ni más ni menos.

Las clases 109 a 117 pasan a las matrices: producto, transpuesta, sistemas lineales, eliminación de Gauss, rango, inversa y determinante. Aquí aparece el mensaje práctico más importante de la parte: resolver Ax = b casi nunca requiere calcular A⁻¹. Invertir es más caro y numéricamente peor que factorizar; ninguna biblioteca seria invierte una matriz para resolver un sistema, y saber por qué distingue a quien entiende de quien recita.

Las clases 118 y 119 introducen la ortogonalidad como propiedad numérica privilegiada: las transformaciones ortogonales no amplifican el error, y la proyección ortogonal es la mejor aproximación posible en norma euclídea. Ese resultado es el que sostiene los mínimos cuadrados (parte 06), PCA (clase 135) y la descomposición de la varianza en estadística.

El capstone construye un sistema de recomendación por similitud coseno entre usuarios. No usa ninguna biblioteca de machine learning: es todo producto punto y norma. Ese es el punto de la parte.

Ideas centrales

Por qué importa en IA

Cada capa densa es un producto matriz-vector. Los embeddings viven en subespacios y la similitud entre ellos es producto punto normalizado.

Errores frecuentes de la parte

Glosario de la parte (19 términos)

TérminoDefiniciónClase
Combinación linealSuma de vectores multiplicados por escalares. Es la operación que define todo el álgebra lineal.106
Desigualdad triangular‖u+v‖ ≤ ‖u‖ + ‖v‖. Es una de las tres condiciones que definen una norma.102
DeterminanteFactor por el que la transformación escala el volumen. Cero significa que aplasta el espacio.117
Escalar, vector, matriz, tensorTensores de orden 0, 1, 2 y n. El orden es el número de índices necesarios para localizar un elemento.101
Espacio columnaSpan de las columnas de A. Es donde vive Ax; el sistema Ax = b tiene solución si y solo si b está en él.110
Independencia linealNingún vector del conjunto es combinación de los demás. Se detecta por el rango, no por inspección.107
Matriz ortogonalQᵀQ = I. Preserva normas y ángulos, y su número de condición es 1: no amplifica el error.118
Matriz singularMatriz sin inversa; su determinante es cero y su rango es deficiente.116
NormaMedida de magnitud de un vector. L2 es la euclídea; L1 induce dispersión; L∞ mira el máximo.104
Pivoteo parcialIntercambio de filas para usar el mayor pivote disponible. Evita dividir por valores casi nulos.114
Producto matricialComposición de transformaciones lineales. Asociativo pero no conmutativo. Coste O(n³) ingenuo.111
Producto puntoΣuᵢvᵢ. Mide alineación; es cero si y solo si los vectores son ortogonales.103
Proyección ortogonalMejor aproximación de un vector dentro de un subespacio, en norma euclídea. Su residuo es ortogonal al subespacio.119
RangoDimensión del espacio columna. Es la dimensión efectiva de la salida de la transformación.115
SpanConjunto de todas las combinaciones lineales de unos vectores. Es siempre un subespacio.108
SubespacioSubconjunto cerrado bajo suma y producto por escalar. Contiene siempre al vector cero.108
Teorema del rango-nulidadrango + nulidad = número de columnas. Lo que no llega a la imagen se pierde en el núcleo.115
TranspuestaIntercambio de filas y columnas. (AB)ᵀ = BᵀAᵀ, con el orden invertido.112
Vector unitarioVector de norma 1. Normalizar separa dirección de magnitud.105

Bibliografía de la parte

101 · Escalares, vectores y matrices

Parte 05 · clase 1 de 20 · demostración scalars_vectors_matrices

Escalar, vector, matriz y tensor son el mismo objeto con distinto número de índices.

escalar: orden 0 · vector: orden 1 · matriz: orden 2
shape de una matriz m×n: (m, n)
(Aᵀ)ᵢⱼ = Aⱼᵢ

Fundamentos

La jerarquía escalar → vector → matriz → tensor no es una lista de objetos distintos: es el mismo objeto con distinto número de índices. Un escalar necesita cero índices para localizar su valor, un vector uno, una matriz dos y un tensor de orden n, n índices. Esa lectura unifica lo que en muchos cursos se presenta por separado.

El shape es el dato operativo: la tupla de tamaños de cada dimensión. La mayoría de los errores al programar con arrays son errores de shape, y la disciplina más rentable al escribir código numérico es anotar el shape esperado de cada variable. Un comentario # (batch, seq, d_model) ahorra horas de depuración.

Multiplicar un vector por un escalar escala su magnitud sin cambiar su dirección —salvo que el escalar sea negativo, que la invierte—. Es la operación más simple y ya contiene la idea central: las operaciones lineales respetan la estructura del espacio.

La transposición intercambia filas y columnas, y su efecto sobre el shape es invertir la tupla: una matriz (3,2) transpuesta es (2,3). En deep learning la transposición aparece constantemente al calcular gradientes, porque la derivada de Wx respecto a x involucra Wᵀ.

Ejemplo trabajado

Los cuatro objetos y sus shapes.

escalar   3.0                      shape ()      orden 0
vector    [1, 2, 3]                shape (3,)    orden 1
matriz    [[1,2],[3,4],[5,6]]      shape (3,2)   orden 2
tensor    imágenes de un lote      shape (N,C,H,W)  orden 4

escalar × vector:  3·[1,2,3] = [3,6,9]

transpuesta de la matriz (3,2) → shape (2,3)
  [[1,3,5],
   [2,4,6]]

Qué ejecuta el laboratorio

Escalar, vector y matriz como objetos con forma y significado.

GrupoSalidas
Resultados numéricos (1)escalar
Comprobaciones (1)un_tensor_de_orden_0_es_un_escalar
compmath run 101

Errores conceptuales frecuentes

  1. Confundir el orden del tensor con el tamaño de sus dimensiones.
  2. No anotar el shape esperado de cada variable en código numérico.
  3. Suponer que un vector es una matriz columna: en NumPy, (3,) y (3,1) no son lo mismo.

Dónde se usa

Toda representación de datos en machine learning: un lote de imágenes es un tensor de orden 4, un lote de secuencias uno de orden 3. Los errores de shape son la categoría de bug más frecuente al entrenar modelos.

Bibliografía de la clase

102 · Operaciones con vectores

Parte 05 · clase 2 de 20 · demostración vector_operations

La suma de vectores es componente a componente, y la desigualdad triangular acota la norma del resultado.

(u + v)ᵢ = uᵢ + vᵢ
‖u + v‖ ≤ ‖u‖ + ‖v‖

Fundamentos

La suma de vectores tiene dos lecturas que conviene mantener a la vez. Algebraicamente se suman las componentes. Geométricamente se aplica la regla del paralelogramo: el resultado es la diagonal del paralelogramo que forman ambos vectores. Las dos describen la misma operación.

La desigualdad triangular —‖u+v‖ ≤ ‖u‖ + ‖v‖— dice que el camino directo nunca es más largo que el rodeo, y es una de las tres condiciones que definen una norma. La igualdad se alcanza solo cuando los vectores son paralelos y del mismo sentido; en cualquier otro caso hay cancelación parcial.

Esa desigualdad no es un tecnicismo: es la que permite acotar errores acumulados. Si el error de cada paso está acotado, el error total lo está por la suma, y de ahí salen las cotas de estabilidad de los métodos iterativos (parte 11) y las cotas de generalización (parte 17).

Restar es sumar el opuesto, y u − v es el vector que va de v a u. Esa interpretación —la diferencia como desplazamiento— es la que convierte ‖u − v‖ en la distancia entre los dos puntos, conectando con la clase 061.

Ejemplo trabajado

Suma, resta y desigualdad triangular.

u = (1, 2),  v = (3, −1)

u + v = (4, 1)
u − v = (−2, 3)
2u − 3v = (2,4) − (9,−3) = (−7, 7)

‖u+v‖ = √17 = 4.123
‖u‖ + ‖v‖ = √5 + √10 = 2.236 + 3.162 = 5.398

4.123 ≤ 5.398      ✓ desigualdad triangular

La diferencia (5.398 − 4.123) mide cuánto se cancelan entre sí.

Qué ejecuta el laboratorio

Suma, resta y combinación lineal con interpretación geométrica.

GrupoSalidas
Resultados numéricos (2)|u+v|, |u|+|v|
Comprobaciones (1)desigualdad_triangular
compmath run 102

Errores conceptuales frecuentes

  1. Sumar vectores de dimensiones distintas.
  2. Suponer que ‖u+v‖ = ‖u‖ + ‖v‖ en general: solo si son paralelos y del mismo sentido.
  3. Confundir u − v con v − u: son opuestos.

Dónde se usa

Composición de desplazamientos, acumulación de gradientes, cotas de error en métodos iterativos y agregación de vectores en sistemas de recomendación.

Bibliografía de la clase

103 · Producto punto y similitud

Parte 05 · clase 3 de 20 · demostración dot_product

El producto punto mide alineación; su normalización es la similitud coseno de los embeddings.

u·v = Σuᵢvᵢ = ‖u‖‖v‖cos θ
cos θ = u·v / (‖u‖‖v‖)
u·u = ‖u‖²

Fundamentos

El producto punto es la operación más importante de esta parte y probablemente de todo el programa. Definido como suma de productos componente a componente, resulta ser ‖u‖‖v‖cos θ, lo que le da una interpretación geométrica: mide cuánto apuntan dos vectores en la misma dirección, escalado por sus magnitudes.

Tres lecturas del signo: positivo significa ángulo agudo, cero significa ortogonalidad, negativo significa ángulo obtuso. La ortogonalidad definida como «producto punto nulo» es la que se generaliza a dimensión arbitraria, donde no se puede dibujar un ángulo recto.

La similitud coseno normaliza por las magnitudes y deja solo el ángulo. Es la métrica estándar entre embeddings porque la magnitud de un embedding suele codificar frecuencia o longitud del texto, no significado: dos documentos sobre el mismo tema, uno largo y otro corto, tienen coseno alto y distancia euclídea grande.

Computacionalmente, el producto punto es la operación que domina el coste de un modelo moderno. Una capa densa es un conjunto de productos punto; la atención calcula un producto punto por cada par consulta-clave. Los TFLOPS de una GPU miden, en esencia, cuántos productos punto por segundo puede hacer.

Ejemplo trabajado

Ángulos entre tres vectores.

u = (1, 0),  v = (1, 1),  w = (0, 1)

u·v = 1        cos = 1/(1·√2) = 0.7071   →  45°
u·w = 0        cos = 0                   →  90°  ortogonales
u·u = 1 = ‖u‖²                            ✓

Similitud coseno en embeddings:
  misma fórmula, dimensión 768 o 1536
  la magnitud se descarta a propósito

Qué ejecuta el laboratorio

Producto punto: proyección, ángulo y similitud.

GrupoSalidas
Resultados numéricos (4)u·v, coseno_u_v, angulo_u_v_grados, u·w
Comprobaciones (2)ortogonales, u·u_es_|u|²
compmath run 103

Errores conceptuales frecuentes

  1. Comparar vectores por producto punto sin normalizar cuando importa solo la dirección.
  2. Calcular acos sin acotar el argumento a [−1,1]: el redondeo puede sacarlo del dominio.
  3. Confundir el producto punto con el producto componente a componente (Hadamard).

Dónde se usa

Similitud coseno en búsqueda semántica y RAG, capas densas, atención escalada, y cálculo de proyecciones e iluminación en gráficos.

Bibliografía de la clase

104 · Normas y distancias

Parte 05 · clase 4 de 20 · demostración norms_distances

La norma elegida determina qué se penaliza: L1 induce dispersión, L2 penaliza los valores grandes.

L1 = Σ|xᵢ| · L2 = √Σxᵢ² · L∞ = máx|xᵢ|
L∞ ≤ L2 ≤ L1

Fundamentos

Una norma asigna una magnitud a un vector cumpliendo tres condiciones: es positiva salvo en el cero, escala con el valor absoluto del escalar y satisface la desigualdad triangular. Hay infinitas normas; las tres de la familia Lp son las que se usan en la práctica.

La elección no es estética: cambia qué se penaliza. La L2 eleva al cuadrado, así que castiga desproporcionadamente los componentes grandes y tiende a repartir el valor entre todos. La L1 trata todos los componentes por igual y, usada como penalización, empuja los pequeños exactamente a cero. Esa diferencia es la que separa Ridge de Lasso (clases 283 y 284) y es puramente geométrica: la bola L1 tiene vértices sobre los ejes y el óptimo tiende a caer en ellos.

La L∞ solo mira el peor componente. Es la norma adecuada cuando lo que importa es garantizar que ningún error individual supere un umbral, y aparece en robustez adversarial: un ataque «acotado en L∞» limita cuánto puede cambiar cada píxel.

El orden L∞ ≤ L2 ≤ L1 se cumple siempre y conviene verificarlo numéricamente una vez. Explica que la misma perturbación parezca grande o pequeña según la norma con la que se mida, y por qué comparar magnitudes exige declarar la norma.

Ejemplo trabajado

Tres normas del mismo vector.

v = (3, −4, 12)

L1  = 3 + 4 + 12 = 19
L2  = √(9 + 16 + 144) = √169 = 13
L∞  = máx(3, 4, 12) = 12

Orden: 12 ≤ 13 ≤ 19          ✓

Interpretación:
  L1  penaliza la suma total de desviaciones → dispersión
  L2  penaliza los componentes grandes      → reparto
  L∞  solo mira el peor componente          → garantía

Qué ejecuta el laboratorio

L1, L2 e L∞ sobre el mismo vector.

GrupoSalidas
Resultados numéricos (3)L1, L2, Linf
Comprobaciones (1)L2_es_la_hipotenusa
compmath run 104

Errores conceptuales frecuentes

  1. Reportar una magnitud sin declarar la norma usada.
  2. Suponer que Ridge (L2) produce coeficientes exactamente cero.
  3. Comparar normas de vectores de dimensiones distintas sin normalizar por la dimensión.

Dónde se usa

Regularización Ridge y Lasso, funciones de pérdida MSE y MAE, robustez adversarial acotada en L∞ y criterios de convergencia.

Bibliografía de la clase

105 · Vectores unitarios

Parte 05 · clase 5 de 20 · demostración unit_vectors

Normalizar separa dirección de magnitud; el vector cero no tiene dirección definida.

û = v / ‖v‖,  ‖û‖ = 1
v = ‖v‖ · û   (reconstrucción)

Fundamentos

Un vector codifica dos informaciones: hacia dónde apunta y cuánto mide. Normalizar —dividir por la norma— conserva la primera y descarta la segunda. La reconstrucción es inmediata: v = ‖v‖·û, lo que muestra que la descomposición no pierde nada, solo separa.

La operación tiene una excepción que hay que tratar: el vector cero no se puede normalizar, porque no tiene dirección. En una implementación, dividir por su norma da NaN o inf (clase 033), así que hay que comprobar el caso explícitamente. El motor del programa devuelve el vector cero sin modificar, decisión que hay que declarar porque no es la única razonable.

Normalizar es lo que hace que la comparación entre embeddings sea justa. También es lo que hace la normalización de capa (clase 308), aunque allí se normaliza por media y desviación en lugar de solo por norma. En ambos casos el objetivo es el mismo: que la escala no domine la comparación.

Un detalle numérico: normalizar un vector de norma muy pequeña amplifica su error relativo, porque se divide por un número cercano a cero. En cálculos sensibles conviene comprobar que la norma supera un umbral antes de dividir.

Ejemplo trabajado

Normalizar y reconstruir.

v = (6, 8)
‖v‖ = √(36 + 64) = 10

û = (0.6, 0.8)
‖û‖ = √(0.36 + 0.64) = 1.0        ✓

Reconstrucción: 10 · (0.6, 0.8) = (6, 8)    ✓

Caso límite:
  normalizar (0, 0) → división por cero
  el motor devuelve (0, 0) y lo declara

Qué ejecuta el laboratorio

Normalizar separa dirección de magnitud.

GrupoSalidas
Resultados numéricos (2)|v|, |v_normalizado|
Comprobaciones (0)
compmath run 105

Errores conceptuales frecuentes

  1. Normalizar sin comprobar que la norma es no nula.
  2. Normalizar vectores de norma muy pequeña y amplificar su error relativo.
  3. Suponer que normalizar conserva toda la información: descarta la magnitud a propósito.

Dónde se usa

Comparación de embeddings, normalización de gradientes (gradient clipping), vectores normales en gráficos y preparación de datos para similitud coseno.

Bibliografía de la clase

106 · Combinaciones lineales

Parte 05 · clase 6 de 20 · demostración linear_combinations

Una combinación lineal es la operación fundamental del álgebra lineal, y una capa densa es exactamente eso.

Σ αᵢvᵢ = α₁v₁ + ... + αₖvₖ
capa densa: y = Wx + b

Fundamentos

Una combinación lineal suma vectores multiplicados por escalares. Toda la estructura del álgebra lineal se construye sobre esta única operación: independencia, span, base, dimensión, transformación lineal y rango se definen en términos de combinaciones lineales.

Con la base canónica la combinación es trivial —los coeficientes son las propias coordenadas— y por eso las coordenadas de un vector son sus coeficientes en esa base. Con otra base, los coeficientes cambian aunque el vector sea el mismo, que es exactamente el contenido de la clase 121.

La conexión con machine learning es directa y merece enunciarse sin rodeos: una capa densa calcula combinaciones lineales. Cada neurona de salida toma los pesos de una fila de W como coeficientes y combina las entradas. y = Wx + b es un conjunto de combinaciones lineales más un desplazamiento.

El sesgo b es lo que impide que la capa sea estrictamente lineal: una transformación lineal manda el cero al cero, y sumar b lo mueve. Técnicamente Wx + b es una transformación afín, no lineal, y esa distinción es la misma que la clase 073 resolvió con coordenadas homogéneas.

Ejemplo trabajado

Combinación lineal en la base canónica.

e₁ = (1,0,0)   e₂ = (0,1,0)   e₃ = (0,0,1)
coeficientes: 2, −3, 5

2·e₁ + (−3)·e₂ + 5·e₃ = (2, −3, 5)

Los coeficientes SON las coordenadas       ✓
(esto solo ocurre en la base canónica)

Capa densa equivalente:
  y = Wx + b   con W de shape (salidas, entradas)
  cada fila de W son los coeficientes de una combinación

Qué ejecuta el laboratorio

Toda combinación lineal de la base canónica reconstruye el vector.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (2)coincide_con_los_coeficientes, una_capa_densa_es_una_combinacion_lineal
compmath run 106

Errores conceptuales frecuentes

  1. Confundir los coeficientes con las coordenadas fuera de la base canónica.
  2. Llamar lineal a Wx + b: es afín, porque no manda el cero al cero.
  3. Olvidar que el número de coeficientes debe coincidir con el de vectores.

Dónde se usa

Capas densas, mezclas de modelos, interpolación, representación en bases y superposición de señales.

Bibliografía de la clase

107 · Independencia y dependencia lineal

Parte 05 · clase 7 de 20 · demostración linear_independence

La independencia lineal se detecta por el rango, no por inspección visual.

independientes ⟺ Σαᵢvᵢ = 0 solo con todos los αᵢ = 0
k vectores en ℝⁿ con k > n son siempre dependientes

Fundamentos

Un conjunto de vectores es linealmente independiente si ninguno se puede escribir como combinación de los demás. La definición formal —la única combinación que da el vector cero es la trivial— es la operativa, porque se traduce en un sistema homogéneo cuya única solución debe ser la nula.

En la práctica no se comprueba a ojo: se calcula el rango. Si el rango del conjunto coincide con el número de vectores, son independientes; si es menor, hay al menos una relación de dependencia. Para conjuntos cuadrados, el determinante nulo es equivalente y más rápido de calcular.

La dependencia lineal en datos tiene un nombre propio en estadística: multicolinealidad. Cuando dos features son casi combinación lineal una de otra, la matriz XᵀX se vuelve casi singular, los coeficientes de la regresión se disparan y pierden interpretabilidad. Ridge (clase 283) existe en buena parte para mitigar exactamente eso.

Un hecho de conteo que conviene tener presente: en ℝⁿ no puede haber más de n vectores independientes. Si un conjunto de datos tiene más features que observaciones, las filas son necesariamente dependientes, y eso garantiza que el sistema esté indeterminado sin regularización.

Ejemplo trabajado

Dos conjuntos de tres vectores en ℝ³.

A = base canónica         rango 3 = 3 vectores  → independientes ✓
B = {(1,2,3), (2,4,6), (1,1,1)}

  fila2 = 2 · fila1       → hay dependencia
  rango(B) = 2 < 3        → dependientes       ✗
  det(B) = 0                                   ✓ coherente

En ℝ³ nunca puede haber 4 vectores independientes.

Qué ejecuta el laboratorio

Independencia detectada por el rango, no por inspección.

GrupoSalidas
Resultados numéricos (3)rango_A, rango_B, determinante_B
Comprobaciones (2)A_independiente, B_independiente
compmath run 107

Errores conceptuales frecuentes

  1. Juzgar la independencia por inspección en lugar de calcular el rango.
  2. Usar el determinante en matrices no cuadradas: no está definido.
  3. Ignorar la multicolinealidad al interpretar coeficientes de una regresión.

Dónde se usa

Detección de multicolinealidad, selección de features, diagnóstico de sistemas mal condicionados y reducción de dimensionalidad.

Bibliografía de la clase

108 · Span y subespacios

Parte 05 · clase 8 de 20 · demostración span_subspaces

El span de un conjunto es siempre un subespacio, y su dimensión es el rango del conjunto.

span{v₁,...,vₖ} = {Σαᵢvᵢ}
dim(span) = rango del conjunto

Fundamentos

El span de un conjunto de vectores es el conjunto de todas sus combinaciones lineales. Siempre es un subespacio: contiene el vector cero y es cerrado bajo suma y producto por escalar. Esa cerradura es lo que lo distingue de un subconjunto cualquiera.

Su dimensión —el número de vectores independientes que contiene— determina qué tipo de objeto geométrico es. En ℝ³, el span de un vector no nulo es una recta por el origen; el de dos vectores independientes, un plano; el de tres, todo el espacio. Añadir un vector que ya está en el span no cambia nada, y esa es la definición operativa de redundancia.

La conexión con datos es directa. Si las features de un conjunto de datos generan un subespacio de dimensión menor que el número de features, hay redundancia, y PCA (clase 135) encuentra una base de ese subespacio con menos vectores. La «dimensión intrínseca» de un conjunto de datos es la dimensión de su span aproximado.

En redes neuronales, el espacio columna de la matriz de pesos determina qué salidas son alcanzables. Si W tiene rango deficiente, la capa proyecta sobre un subespacio y pierde información irrecuperablemente: dos entradas distintas pueden producir la misma salida.

Ejemplo trabajado

Span en ℝ³.

v₁ = (1,0,0),  v₂ = (0,1,0)

span{v₁, v₂}:  dimensión 2  →  el plano z = 0
¿contiene (0,0,1)?  No

Al añadir v₃ = (0,0,1):
  rango pasa de 2 a 3  →  ahora genera todo ℝ³

Propiedades del subespacio:
  contiene el (0,0,0)                  ✓
  cerrado bajo suma y escala           ✓

Qué ejecuta el laboratorio

El span de dos vectores en ℝ³ es un plano, no todo el espacio.

GrupoSalidas
Resultados numéricos (2)dimension_del_span, rango_al_añadirlo
Comprobaciones (3)es_un_plano, ahora_genera_R3, subespacio_contiene_al_cero
compmath run 108

Errores conceptuales frecuentes

  1. Suponer que el span de k vectores tiene dimensión k sin comprobar la independencia.
  2. Olvidar que todo subespacio contiene el vector cero.
  3. Confundir el span (infinito) con el conjunto generador (finito).

Dónde se usa

Dimensión intrínseca de un conjunto de datos, PCA, análisis de capacidad de una capa y compresión por reducción de rango.

Bibliografía de la clase

109 · Matrices y operaciones básicas

Parte 05 · clase 9 de 20 · demostración matrix_basics

Suma, escala y transpuesta operan elemento a elemento; la traza suma la diagonal.

(A + B)ᵢⱼ = Aᵢⱼ + Bᵢⱼ
(Aᵀ)ᵀ = A
tr(A) = Σ Aᵢᵢ = suma de los autovalores

Fundamentos

Las operaciones básicas con matrices son las que se esperan: suma y escala elemento a elemento, ambas definidas solo entre matrices del mismo shape. El producto matricial es la excepción: no es elemento a elemento, y por eso la clase 111 lo trata aparte.

La traza —la suma de la diagonal— parece una definición arbitraria y tiene propiedades notables: es lineal, es invariante bajo transposición y cumple tr(AB) = tr(BA) aunque AB ≠ BA. Esa última propiedad la hace invariante bajo cambio de base, y de ahí que la traza sea igual a la suma de los autovalores (clase 125).

En machine learning la traza aparece con frecuencia en formas cuadráticas y en el cálculo de gradientes matriciales: ∂tr(AᵀB)/∂A = B. También es la que define la norma de Frobenius, ‖A‖_F = √tr(AᵀA), que es la norma euclídea de la matriz vista como un vector largo.

La transposición cumple (Aᵀ)ᵀ = A y, lo más útil, (AB)ᵀ = BᵀAᵀ con el orden invertido. Ese cambio de orden es la causa de la mitad de los errores al derivar expresiones matriciales, y conviene comprobarlo numéricamente una vez para fijarlo.

Ejemplo trabajado

Operaciones básicas con matrices 2×2.

A = [[1,2],[3,4]]      B = [[0,1],[−1,2]]

A + B = [[1,3],[2,6]]
3A    = [[3,6],[9,12]]

Aᵀ    = [[1,3],[2,4]]
(Aᵀ)ᵀ = A                            ✓

traza(A) = 1 + 4 = 5

Qué ejecuta el laboratorio

Suma, escala y transpuesta de matrices.

GrupoSalidas
Resultados numéricos (1)traza_A
Comprobaciones (1)(Aᵀ)ᵀ=A
compmath run 109

Errores conceptuales frecuentes

  1. Sumar matrices de shapes distintos.
  2. Olvidar invertir el orden en (AB)ᵀ = BᵀAᵀ.
  3. Confundir la traza con el determinante.

Dónde se usa

Norma de Frobenius, cálculo de gradientes matriciales, invariantes bajo cambio de base y regularización de matrices de pesos.

Bibliografía de la clase

110 · Producto matriz-vector

Parte 05 · clase 10 de 20 · demostración matrix_vector

Ax es una combinación lineal de las columnas de A, y por eso vive en el espacio columna.

Ax = Σ xⱼ · (columna j de A)
Ax = b tiene solución ⟺ b ∈ espacio columna de A

Fundamentos

Hay dos formas de calcular Ax y una de entenderlo. La primera —fila por fila, cada componente del resultado es un producto punto— es la que se enseña para calcular a mano. La segunda —combinación lineal de las columnas de A con los coeficientes de x— es la que explica qué está ocurriendo.

Esa segunda lectura tiene una consecuencia inmediata y muy útil: Ax siempre está en el span de las columnas de A, es decir, en el espacio columna. Y por tanto Ax = b tiene solución si y solo si b pertenece a ese espacio. La existencia de solución deja de ser un misterio y pasa a ser una pregunta sobre pertenencia a un subespacio.

En deep learning, Wx + b es exactamente esto: cada fila de W define una combinación de las entradas, o equivalentemente, la salida es una combinación de las columnas de W. Si W tiene rango deficiente, la salida está confinada a un subespacio de dimensión menor que el número de neuronas: hay capacidad desperdiciada.

El coste de Ax es O(mn), lineal en el número de elementos de la matriz. Es la operación básica sobre la que se construye todo lo demás, y por eso las bibliotecas la implementan en BLAS de nivel 2 con optimizaciones de caché específicas.

Ejemplo trabajado

Ax como combinación de columnas.

A = [[2,1],       x = (4, 5)
     [0,3],
     [1,−1]]

Cálculo por filas:
  (2·4 + 1·5, 0·4 + 3·5, 1·4 + (−1)·5) = (13, 15, −1)

Cálculo por columnas:
  4·(2,0,1) + 5·(1,3,−1) = (8,0,4) + (5,15,−5) = (13,15,−1)   ✓

Ax vive en el span de {(2,0,1), (1,3,−1)}: un plano en ℝ³

Qué ejecuta el laboratorio

Ax como combinación lineal de las columnas de A.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (1)coinciden
compmath run 110

Errores conceptuales frecuentes

  1. Multiplicar matrices con dimensiones incompatibles.
  2. Olvidar que Ax siempre está en el espacio columna de A.
  3. Suponer que Ax = b siempre tiene solución.

Dónde se usa

Capas densas, transformación de coordenadas, sistemas de ecuaciones y análisis de capacidad de una red.

Bibliografía de la clase

111 · Producto de matrices

Parte 05 · clase 11 de 20 · demostración matrix_product

El producto matricial compone transformaciones, es asociativo y no conmuta.

(AB)ᵢⱼ = Σₖ AᵢₖBₖⱼ
(AB)C = A(BC)  pero  AB ≠ BA
(AB)ᵀ = BᵀAᵀ

Fundamentos

El producto matricial no se define elemento a elemento porque no representa una suma: representa una composición. Aplicar B y luego A es aplicar la matriz AB, y de esa definición se deduce la fórmula «filas por columnas», no al revés.

Que sea asociativo pero no conmutativo tiene consecuencias prácticas. La asociatividad permite elegir el orden de evaluación, y esa elección puede cambiar radicalmente el coste: calcular (AB)C con A de (1000,1000), B de (1000,1) y C de (1,1000) cuesta muchísimo más que A(BC). Es una optimización real que hacen los compiladores de grafos de cómputo.

La no conmutatividad es la que hace que el orden de las capas importe, que rotar y luego escalar difiera de escalar y luego rotar (clase 073), y que las derivadas matriciales tengan que respetar el orden.

El coste del algoritmo ingenuo es O(n³). Strassen redujo el exponente a 2.807 en 1969, y el récord teórico actual está por debajo de 2.372, aunque esos algoritmos no son prácticos por sus constantes. En la práctica, el rendimiento lo determinan la localidad de caché y el paralelismo, no el exponente asintótico, y esa es la razón de existir de BLAS y de las unidades tensoriales de las GPU.

Ejemplo trabajado

El producto no conmuta.

A = [[1,2],[3,4]]      B = [[0,1],[1,0]]   (intercambia columnas)

AB = [[2,1],[4,3]]
BA = [[3,4],[1,2]]
¿AB = BA?  No                              ✗

Transpuesta del producto:
  (AB)ᵀ = [[2,4],[1,3]]
  BᵀAᵀ  = [[2,4],[1,3]]                    ✓ con el orden invertido

Coste ingenuo n×n: O(n³)

Qué ejecuta el laboratorio

AB ≠ BA y el coste cúbico del producto.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (2)conmutan, identidad_de_transpuesta
compmath run 111

Errores conceptuales frecuentes

  1. Suponer que el producto matricial conmuta.
  2. Escribir (AB)ᵀ = AᵀBᵀ sin invertir el orden.
  3. Elegir el orden de evaluación sin considerar el coste en cadenas de matrices.

Dónde se usa

Composición de capas, pipelines de transformación gráfica, optimización del orden de evaluación en grafos de cómputo y atención multi-cabeza.

Bibliografía de la clase

112 · Transpuesta y simetría

Parte 05 · clase 12 de 20 · demostración transpose_symmetry

Toda matriz cuadrada se descompone en parte simétrica y antisimétrica, y AᵀA es siempre simétrica.

A = (A+Aᵀ)/2 + (A−Aᵀ)/2
AᵀA es simétrica y semidefinida positiva

Fundamentos

Una matriz es simétrica si coincide con su transpuesta. Las simétricas tienen propiedades excepcionales que la parte 06 desarrolla: sus autovalores son reales, sus autovectores son ortogonales y siempre son diagonalizables. Nada de eso está garantizado para una matriz general.

Toda matriz cuadrada se descompone de forma única en una parte simétrica y una antisimétrica, y esa descomposición es un ejemplo de una idea general: separar un objeto en componentes con propiedades distintas para tratar cada una por separado. En física, esa separación distingue deformación de rotación.

El hecho más útil de esta clase es que AᵀA es siempre simétrica, sea A cuadrada o no, y además semidefinida positiva. Esa propiedad es la que hace que las ecuaciones normales de mínimos cuadrados (clase 131) tengan solución, que la matriz de covarianza (clase 191) sea diagonalizable con autovalores no negativos, y que la SVD exista para toda matriz (clase 132).

La contrapartida numérica es que AᵀA eleva al cuadrado el número de condición de A. Por eso, aunque las ecuaciones normales son correctas en teoría, en la práctica se prefiere QR o SVD: la clase 234 mide esa diferencia.

Ejemplo trabajado

Descomposición y simetría de AᵀA.

A = [[1,2],[4,5]]

parte simétrica    = (A + Aᵀ)/2 = [[1,3],[3,5]]
parte antisimétrica = (A − Aᵀ)/2 = [[0,−1],[1,0]]
suma = A                                   ✓

simétrica = su transpuesta                 ✓
antisimétrica: diagonal nula, opuestos fuera

AᵀA = [[17,22],[22,29]]
¿es simétrica?  Sí                         ✓

Qué ejecuta el laboratorio

Toda matriz cuadrada se descompone en parte simétrica y antisimétrica.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (3)suma_reconstruye_A, sim_es_simetrica, AᵀA_es_simetrica
compmath run 112

Errores conceptuales frecuentes

  1. Suponer que una matriz general tiene autovalores reales.
  2. Usar las ecuaciones normales con matrices mal condicionadas sin considerar QR.
  3. Confundir simétrica (A = Aᵀ) con ortogonal (AᵀA = I).

Dónde se usa

Matriz de covarianza, ecuaciones normales, Hessiano (siempre simétrico si f es dos veces derivable con continuidad) y matriz de Gram en métodos kernel.

Bibliografía de la clase

113 · Sistemas lineales

Parte 05 · clase 13 de 20 · demostración linear_systems

Un sistema lineal tiene solución única si el determinante no es nulo; el residuo es el criterio de aceptación.

Ax = b
residuo r = Ax − b, debe ser ≈ 0
solución única ⟺ det(A) ≠ 0 ⟺ rango(A) = n

Fundamentos

Resolver Ax = b es el problema computacional más frecuente del álgebra lineal, y sus tres desenlaces posibles —solución única, ninguna o infinitas— se distinguen por el rango. Con determinante no nulo, la matriz es invertible y la solución es única; con determinante nulo, hay que comparar el rango de A con el de la matriz ampliada para distinguir los otros dos casos.

El residuo r = Ax − b es el criterio de aceptación universal. Un solver puede devolver un vector sin lanzar ninguna excepción y estar equivocado; calcular el residuo cuesta una multiplicación matriz-vector y detecta el problema. La regla del programa es que ningún resultado de un solver se acepta sin comprobar su residuo.

Un residuo pequeño no garantiza que la solución sea precisa: en un sistema mal condicionado, un residuo minúsculo puede corresponder a una solución muy alejada de la correcta. La relación entre ambos la da el número de condición (clase 035), y esa es la razón por la que el residuo es necesario pero no suficiente.

Geométricamente, cada ecuación de un sistema 3×3 es un plano, y la solución es su punto de intersección. Sin solución significa que no hay punto común; infinitas soluciones, que los planos se cortan en una recta o coinciden.

Ejemplo trabajado

Sistema 3×3 con solución única.

A = [[ 2,  1, −1],      b = ( 8,
     [−3, −1,  2],           −11,
     [−2,  1,  2]]            −3)

det(A) = −1 ≠ 0  →  solución única

x = (2, 3, −1)

Residuo: Ax − b = (0, 0, 0)     ✓
‖r‖ = 0.0

Verificación por ecuación:
  2·2 + 1·3 − 1·(−1) = 8        ✓

Qué ejecuta el laboratorio

Sistema 3x3: solución, residuo y unicidad.

GrupoSalidas
Resultados numéricos (2)norma_del_residuo, determinante
Comprobaciones (1)solucion_unica
compmath run 113

Errores conceptuales frecuentes

  1. Aceptar la salida de un solver sin calcular el residuo.
  2. Suponer que un residuo pequeño implica una solución precisa en un sistema mal condicionado.
  3. No distinguir entre sistema incompatible e indeterminado cuando el determinante es cero.

Dónde se usa

Ajuste de modelos lineales, equilibrio en circuitos y estructuras, interpolación, balance de reacciones y cualquier problema con restricciones lineales.

Bibliografía de la clase

114 · Eliminación de Gauss

Parte 05 · clase 14 de 20 · demostración gaussian_elimination_demo

El pivoteo parcial evita dividir por pivotes casi nulos y hace estable la eliminación.

coste: ~2n³/3 operaciones
pivote = fila con el mayor |Aᵢⱼ| en la columna actual

Fundamentos

La eliminación de Gauss transforma el sistema en uno triangular mediante operaciones que no cambian el conjunto solución: intercambiar filas, escalarlas y restarles múltiplos de otras. Una vez triangular, la sustitución hacia atrás resuelve en O(n²).

El pivoteo parcial no es un refinamiento opcional: es lo que hace el método utilizable. Sin él, un pivote muy pequeño produce factores enormes que amplifican los errores de redondeo y pueden destruir por completo la precisión. Con pivoteo, se elige en cada columna la fila con el mayor valor absoluto, garantizando que los factores estén acotados por 1.

El ejemplo clásico es un sistema de 2×2 con pivote 10⁻²⁰: sin pivoteo la solución calculada es completamente errónea; con pivoteo es correcta. La diferencia no está en la matemática —ambas eliminaciones son válidas en ℝ— sino en la aritmética finita.

El coste, ~2n³/3 operaciones, es el mismo que el de la factorización LU, y no es casualidad: la eliminación de Gauss es la factorización LU, expresada de otra forma. La ventaja de guardarla como LU (clase 129) es poder resolver muchos sistemas con la misma matriz pagando O(n²) cada uno en lugar de O(n³).

Ejemplo trabajado

Eliminación con pivoteo sobre un sistema 3×3.

Matriz original:
  [ 2  1 −1 |   8]
  [−3 −1  2 | −11]
  [−2  1  2 |  −3]

Pivoteo: la mayor |entrada| de la columna 1 es −3 → intercambiar filas
Intercambios realizados: 2

Triangular superior resultante:
  [−3 −1.000  2.000]
  [ 0  1.667  0.667]
  [ 0  0      0.200]

Sustitución hacia atrás → x = (2, 3, −1)
Verificación: Ax = (8, −11, −3) = b     ✓

Coste: O(n³/3) ≈ 9 operaciones para n=3

Qué ejecuta el laboratorio

Eliminación de Gauss con pivoteo parcial, paso a paso.

GrupoSalidas
Resultados numéricos (1)intercambios_de_fila
Comprobaciones (0)
compmath run 114

Errores conceptuales frecuentes

  1. Implementar la eliminación sin pivoteo y sorprenderse con resultados erróneos.
  2. Elegir el pivote por su valor y no por su valor absoluto.
  3. Olvidar aplicar los intercambios de fila también al vector b.

Dónde se usa

Es el algoritmo que hay dentro de cualquier solve de biblioteca. Resolver circuitos, estructuras, sistemas de equilibrio y ajustes lineales.

Bibliografía de la clase

115 · Forma escalonada y rango

Parte 05 · clase 15 de 20 · demostración echelon_rank

El rango es la dimensión efectiva de la salida; rango más nulidad es siempre el número de columnas.

rango(A) ≤ mín(m, n)
rango + nulidad = número de columnas

Fundamentos

El rango de una matriz es la dimensión de su espacio columna, es decir, cuántas direcciones independientes puede alcanzar la transformación. Es el número que realmente describe una matriz, mucho más que su tamaño: una matriz 1000×1000 de rango 3 contiene tanta información como una de 3×3.

El teorema del rango-nulidad —rango más nulidad igual al número de columnas— dice que lo que no llega a la imagen se pierde en el núcleo. Si una transformación de ℝ⁵ en ℝ⁵ tiene rango 3, hay un subespacio de dimensión 2 que colapsa al cero: dos direcciones de información desaparecen sin posibilidad de recuperación.

Numéricamente, el rango es delicado. Una matriz puede ser de rango completo en aritmética exacta y comportarse como deficiente en punto flotante si sus valores singulares más pequeños están cerca del ruido. Por eso el rango numérico se define con una tolerancia —cuántos valores singulares superan un umbral— y se calcula con SVD, no con eliminación.

En machine learning el rango bajo es a la vez un problema y una herramienta. Es un problema cuando indica features redundantes; es una herramienta cuando se impone a propósito para comprimir, como en LoRA, que adapta un modelo grande añadiendo matrices de rango muy bajo.

Ejemplo trabajado

Rango de tres matrices.

A = [[1,2],[3,4]]      rango 2 (completo)     det = −2 ≠ 0
B = [[1,2],[2,4]]      rango 1 (deficiente)   det = 0
C = [[1,2,3],[4,5,6]]  rango 2                máximo posible: mín(2,3) = 2

Teorema del rango-nulidad para B:
  columnas = 2,  rango = 1  →  nulidad = 1
  el núcleo es la recta generada por (2,−1)
  B·(2,−1) = (0,0)                            ✓

Qué ejecuta el laboratorio

Rango: la dimensión efectiva de la transformación.

GrupoSalidas
Resultados numéricos (5)rango_completa, rango_deficiente, rango_rectangular_2x3, rango_maximo_posible, nulidad_de_la_deficiente
Comprobaciones (1)deficiente_es_invertible
compmath run 115

Errores conceptuales frecuentes

  1. Calcular el rango con eliminación en datos ruidosos en lugar de con SVD y tolerancia.
  2. Suponer que una matriz grande tiene rango alto.
  3. Olvidar que el rango está acotado por el menor de los dos tamaños.

Dónde se usa

Detección de redundancia en features, compresión de bajo rango, LoRA, diagnóstico de sistemas indeterminados y análisis de capacidad de una capa.

Bibliografía de la clase

116 · Inversa de una matriz

Parte 05 · clase 16 de 20 · demostración matrix_inverse

La inversa existe si el determinante no es nulo, pero resolver un sistema casi nunca debe pasar por ella.

A·A⁻¹ = I
2×2: A⁻¹ = (1/det)·[[d,−b],[−c,a]]
resolver Ax = b: usar factorización, no A⁻¹b

Fundamentos

La inversa de una matriz es la que deshace su transformación. Existe si y solo si la matriz es cuadrada y de rango completo, condición equivalente a que su determinante sea no nulo. Para 2×2 hay fórmula cerrada; para tamaños mayores se calcula con eliminación de Gauss-Jordan.

El mensaje práctico de esta clase es una recomendación explícita: no calcules la inversa para resolver un sistema. A⁻¹b cuesta unas tres veces más que resolver directamente y es numéricamente peor, porque acumula error en cada entrada de la inversa antes de multiplicar. Ninguna biblioteca seria lo hace, y ver inv(A) @ b en código es señal de que quien lo escribió no conoce esta distinción.

Hay casos legítimos para calcular la inversa: cuando se necesita explícitamente, como en la matriz de covarianza inversa (matriz de precisión) de un modelo gaussiano, o al analizar la sensibilidad de un sistema. Incluso ahí, si la matriz está mal condicionada, conviene usar la pseudoinversa vía SVD (clase 134).

La comprobación de que la inversa se calculó bien es directa: A·A⁻¹ debe dar la identidad dentro de una tolerancia. Que no dé exactamente la identidad es esperado, y la magnitud de la desviación informa sobre el condicionamiento del problema.

Ejemplo trabajado

Inversa de una matriz 2×2 y su verificación.

A = [[4,7],[2,6]]
det = 4·6 − 7·2 = 10 ≠ 0  →  invertible

A⁻¹ = (1/10)·[[6,−7],[−2,4]] = [[0.6,−0.7],[−0.2,0.4]]

A·A⁻¹ = [[1,0],[0,1]]                    ✓ identidad

Coste comparado para resolver Ax = b:
  vía inversa:      ~n³ + n²  operaciones y peor precisión
  vía factorización: ~n³/3    operaciones

Qué ejecuta el laboratorio

La inversa existe, pero rara vez conviene calcularla.

GrupoSalidas
Resultados numéricos (1)determinante
Comprobaciones (1)es_identidad
compmath run 116

Errores conceptuales frecuentes

  1. Escribir inv(A) @ b en lugar de solve(A, b).
  2. Invertir una matriz mal condicionada sin usar la pseudoinversa.
  3. Suponer que A·A⁻¹ da exactamente la identidad en punto flotante.

Dónde se usa

Matriz de precisión en modelos gaussianos, análisis de sensibilidad y transformaciones inversas en gráficos. Para resolver sistemas, siempre factorización.

Bibliografía de la clase

117 · Determinantes

Parte 05 · clase 17 de 20 · demostración determinants

El determinante mide cuánto escala el volumen la transformación; cero significa que la aplasta.

det(AB) = det(A)·det(B)
det(A) = 0 ⟺ A es singular
|det| = factor de escalado del volumen

Fundamentos

El determinante tiene una definición algebraica engorrosa y una interpretación geométrica limpia: es el factor —con signo— por el que la transformación multiplica el volumen. En 2D es el área del paralelogramo de las columnas; en 3D, el volumen del paralelepípedo; en n dimensiones, el volumen n-dimensional.

Desde esa lectura, las propiedades se vuelven evidentes. det(AB) = det(A)det(B) porque aplicar dos transformaciones escala el volumen por el producto de sus factores. Un determinante nulo significa que la transformación aplasta el espacio en una dimensión menor, y por eso no es invertible: no se puede recuperar volumen de algo aplastado. Un determinante negativo indica inversión de orientación.

Computacionalmente, el determinante no es un buen indicador de singularidad. Escalar una matriz por 0.1 divide su determinante por 10ⁿ, así que un determinante minúsculo puede corresponder a una matriz perfectamente bien condicionada. El indicador correcto es el número de condición, cociente entre el mayor y el menor valor singular (clase 132).

Donde el determinante sí es imprescindible es en el cambio de variable: al transformar una densidad de probabilidad, el jacobiano corrige el factor de volumen. Sin esa corrección, la densidad transformada no integraría a 1. Esa es la base de los normalizing flows.

Ejemplo trabajado

Determinante de tres transformaciones.

A = [[2,0],[0,3]]   diagonal
  det = 6  →  escala las áreas por 6

B = [[1,2],[2,4]]   fila2 = 2·fila1
  det = 0  →  singular, aplasta el plano en una recta

F = [[0,1],[1,0]]   reflexión
  det = −1 →  conserva el área, invierte la orientación

Producto: det(A·M) = det(A)·det(M)      ✓ verificado

Qué ejecuta el laboratorio

El determinante mide el escalado de volumen y detecta singularidad.

GrupoSalidas
Resultados numéricos (3)det_A, escala_areas_por, det_B
Comprobaciones (3)B_es_singular, det(AB)=det(A)det(B), det_negativo_invierte_orientacion
compmath run 117

Errores conceptuales frecuentes

  1. Usar el determinante como medida de condicionamiento.
  2. Ignorar el signo y perder la información de orientación.
  3. Calcular el determinante por la definición de Laplace: coste O(n!).

Dónde se usa

Cambio de variable en integrales y en densidades, normalizing flows, detección de degeneración geométrica y cálculo de volúmenes.

Bibliografía de la clase

118 · Matrices ortogonales

Parte 05 · clase 18 de 20 · demostración orthogonal_matrices

Las matrices ortogonales preservan normas y ángulos, y su número de condición es 1.

QᵀQ = I ⟹ Q⁻¹ = Qᵀ
‖Qv‖ = ‖v‖
κ(Q) = 1

Fundamentos

Una matriz ortogonal tiene columnas ortonormales: unitarias y perpendiculares entre sí. La condición QᵀQ = I implica que su inversa es su transpuesta, lo que convierte una operación cara O(n³) en una gratuita.

Su propiedad más valiosa es numérica: preservan la norma, ‖Qv‖ = ‖v‖. Como no estiran ni encogen ningún vector, su número de condición es exactamente 1, el mínimo posible. Aplicar una transformación ortogonal no amplifica el error relativo, y esa es la razón por la que el análisis numérico serio se construye sobre ellas.

De ahí que los algoritmos estables usen rotaciones de Givens y reflexiones de Householder en lugar de transformaciones generales: la factorización QR es más estable que las ecuaciones normales precisamente porque Q es ortogonal (clase 234). Y de ahí que la SVD, cuya U y V son ortogonales, sea la herramienta más robusta del álgebra lineal numérica.

Las rotaciones son ortogonales con determinante 1; las reflexiones, con determinante −1. En deep learning se han propuesto capas con matrices ortogonales precisamente para evitar que los gradientes se desvanezcan o exploten al propagarse por muchas capas: si la norma se preserva en cada capa, se preserva en toda la red.

Ejemplo trabajado

Verificar las propiedades de una rotación.

Q = rotación de 37°
  [[0.7986, −0.6018],
   [0.6018,  0.7986]]

QᵀQ = [[1,0],[0,1]]                     ✓ ortogonal
det Q = 1                               ✓ rotación (no reflexión)

v = (3,4),  ‖v‖ = 5
Qv = (0.0887, 4.9992),  ‖Qv‖ = 5.0      ✓ preserva la norma

Q⁻¹ = Qᵀ  →  invertir es transponer, coste O(n²) en lugar de O(n³)

Qué ejecuta el laboratorio

Matriz ortogonal: QᵀQ = I, preserva normas y ángulos.

GrupoSalidas
Resultados numéricos (3)det_Q, |v|, |Qv|
Comprobaciones (2)preserva_norma, inversa_es_la_transpuesta
compmath run 118

Errores conceptuales frecuentes

  1. Confundir matriz ortogonal (QᵀQ = I) con matriz simétrica (A = Aᵀ).
  2. Invertir una matriz ortogonal en lugar de transponerla.
  3. Suponer que cualquier matriz de columnas ortogonales es ortogonal: deben ser además unitarias.

Dónde se usa

Factorización QR, SVD, rotaciones en gráficos, capas ortogonales en redes profundas y algoritmos numéricamente estables en general.

Bibliografía de la clase

119 · Proyecciones ortogonales

Parte 05 · clase 19 de 20 · demostración orthogonal_projection

La proyección ortogonal es la mejor aproximación dentro de un subespacio, y su residuo es ortogonal a él.

p = A(AᵀA)⁻¹Aᵀb
residuo r = b − p, con Aᵀr = 0
‖b‖² = ‖p‖² + ‖r‖²

Fundamentos

Proyectar un vector sobre un subespacio es encontrar el punto del subespacio más cercano a él. Ese punto es único y se caracteriza por una condición geométrica limpia: el residuo es ortogonal al subespacio. Si no lo fuera, quedaría una componente en el subespacio que se podría aprovechar para acercarse más.

Esa caracterización es la que se usa para calcular: exigir Aᵀ(b − Ax) = 0 da las ecuaciones normales AᵀAx = Aᵀb, que es exactamente el problema de mínimos cuadrados de la clase 131. Ajustar una recta a unos datos es proyectar el vector de observaciones sobre el espacio columna de la matriz de diseño.

El teorema de Pitágoras se cumple: ‖b‖² = ‖p‖² + ‖r‖². Esa identidad es la que aparece en estadística como la descomposición de la varianza —total igual a explicada más residual— y la que define el R² de una regresión (clase 214). No son tres resultados distintos: es el mismo, escrito en tres lenguajes.

Verificar una proyección es barato y conviene hacerlo siempre: comprobar que el residuo es ortogonal a todas las columnas de A. Si no lo es, el cálculo está mal. El motor del programa lo comprueba explícitamente.

Ejemplo trabajado

Proyectar (6,0,0) sobre el plano generado por dos columnas.

A = [[1,0],    b = (6, 0, 0)
     [1,1],
     [1,2]]

Ecuaciones normales: AᵀA·x = Aᵀb
  [[3,3],[3,5]] x = (6, 0)
  x = (5, −3)

proyección p = A·x = (5, 2, −1)
residuo    r = b − p = (1, −2, 1)

Verificaciones:
  Aᵀr = (0, 0)                      ✓ ortogonal al subespacio
  ‖b‖² = 36
  ‖p‖² + ‖r‖² = 30 + 6 = 36         ✓ Pitágoras

Qué ejecuta el laboratorio

Proyección sobre un subespacio y descomposición ortogonal.

GrupoSalidas
Resultados numéricos (1)norma_del_residuo
Comprobaciones (2)residuo_ortogonal, es_la_mejor_aproximacion_en_L2
compmath run 119

Errores conceptuales frecuentes

  1. No comprobar que el residuo es ortogonal al subespacio.
  2. Usar las ecuaciones normales con una matriz de diseño mal condicionada.
  3. Confundir la proyección (dentro del subespacio) con el residuo (fuera de él).

Dónde se usa

Mínimos cuadrados, R² de una regresión, PCA, descomposición de la varianza y eliminación de componentes no deseadas de una señal.

Bibliografía de la clase

120 · Capstone: resolver un sistema de recomendación lineal

Parte 05 · clase 20 de 20 · demostración capstone_linear_recommender

Un recomendador por filtrado colaborativo es producto punto normalizado y media ponderada; nada más.

similitud(u,v) = u·v / (‖u‖‖v‖)
puntuación(i) = Σ sim(u,w)·rᵥᵢ / Σ |sim(u,w)|

Fundamentos

El capstone construye un sistema de recomendación por filtrado colaborativo basado en usuarios, y su interés está en lo que no usa: ninguna biblioteca de machine learning, ningún modelo entrenado, ninguna red neuronal. Es producto punto, norma y media ponderada.

El algoritmo tiene tres pasos. Calcular la similitud coseno entre el usuario objetivo y todos los demás; usar esas similitudes como pesos para promediar las valoraciones de los demás sobre los ítems que el objetivo no ha visto; recomendar el ítem con mayor puntuación estimada. Los pesos se normalizan dividiendo por la suma de similitudes absolutas para que la escala se conserve.

Las limitaciones son reales y conviene declararlas. El arranque en frío: un usuario nuevo no tiene vector, así que no hay similitud que calcular. La dispersión: en un catálogo real, cada usuario ha valorado una fracción minúscula de los ítems, y los vectores son casi todo ceros. Y el coste: comparar con todos los usuarios es O(n·d) por consulta, inviable con millones de usuarios sin índices aproximados.

Los sistemas industriales resuelven esas limitaciones con factorización matricial —que es la parte 06— y con embeddings aprendidos, pero la métrica de comparación sigue siendo la de esta clase. Entender el caso simple es lo que permite entender por qué las soluciones complejas hacen lo que hacen.

Ejemplo trabajado

Recomendar a «ana» entre cuatro usuarios.

valoraciones (0 = no visto):
  ana    [5, 3, 0, 1]
  beto   [4, 0, 0, 1]
  cata   [1, 1, 0, 5]
  dario  [0, 0, 5, 4]

similitud coseno con ana:
  beto  0.9783    ← el más parecido
  cata  0.4707
  dario 0.0900

ítems no vistos por ana: índice 2

puntuación estimada del ítem 2:
  (0.9783·0 + 0.4707·0 + 0.0900·5) / (0.9783+0.4707+0.0900) = 0.29

recomendación: ítem 2 (el único no visto)

Qué ejecuta el laboratorio

Capstone: recomendación lineal por similitud coseno entre usuarios.

GrupoSalidas
Resultados numéricos (1)recomendacion
Comprobaciones (1)todo_es_producto_punto
compmath run 120

Errores conceptuales frecuentes

  1. Comparar usuarios sin normalizar y dejar que el número de valoraciones domine.
  2. Ignorar el problema del arranque en frío al desplegar.
  3. Promediar sin normalizar por la suma de similitudes y romper la escala.

Dónde se usa

Sistemas de recomendación, búsqueda por similitud, agrupación de usuarios y motores de contenido relacionado. El mismo cálculo, con embeddings en lugar de valoraciones, es la base de la recuperación semántica.

Bibliografía de la clase

Parte 06 — Álgebra lineal II: descomposiciones y tensores

Nivel intermedio-avanzado · 20 clases · 80 horas · motor part06

Cambio de base, autovalores, diagonalización, LU, QR, mínimos cuadrados, SVD, pseudoinversa, PCA y álgebra tensorial.

Si la parte 05 enseñó qué es una matriz, esta enseña a desarmarla. Una descomposición escribe una matriz como producto de matrices más simples, y esa reescritura convierte problemas difíciles en fáciles: resolver muchos sistemas, calcular potencias, comprimir datos, encontrar direcciones principales o diagnosticar mal condicionamiento.

Las clases 121 a 124 preparan el terreno con el concepto que más cuesta y más rinde: la base es una elección. Un vector no cambia al cambiar de base; lo que cambia es su lista de coordenadas. La matriz A' = P⁻¹AP representa la misma transformación vista desde otra base, y toda la teoría de autovalores consiste en buscar la base donde la transformación se ve lo más simple posible.

Las clases 125 a 128 son autovalores y diagonalización. Un autovector es una dirección que la transformación solo escala, y en esa base la matriz se convierte en diagonal: aplicarla cien veces cuesta elevar números a la centésima, no multiplicar cien matrices. Las matrices simétricas —que incluyen toda covarianza y todo Hessiano— son siempre diagonalizables con base ortonormal, resultado conocido como teorema espectral.

Las clases 129 a 134 son las descomposiciones de trabajo: LU para resolver muchos sistemas, QR para mínimos cuadrados estables, y SVD, que es la más general y la más útil. La SVD existe para toda matriz, incluso rectangular y singular, y de ella se leen el rango, el número de condición, la mejor aproximación de rango bajo y la pseudoinversa. Si hubiera que quedarse con un solo resultado de álgebra lineal aplicada, sería la SVD.

El teorema de Eckart-Young, que la clase 133 comprueba numéricamente, dice algo muy fuerte: truncar la SVD da la mejor aproximación posible de rango k, no una buena. Ese resultado es el que fundamenta PCA, la compresión de imágenes, los sistemas de recomendación por factorización y LoRA.

El cierre (135 a 139) conecta con la práctica moderna: PCA como SVD de datos centrados, producto de Kronecker, tensores, broadcasting y notación de Einstein. Broadcasting y einsum no son algoritmos nuevos: son notación para expresar operaciones tensoriales sin bucles, y saber leerlos es requisito para leer código de deep learning.

Ideas centrales

Por qué importa en IA

LoRA factoriza matrices de bajo rango, la atención se define con productos tensoriales y la estabilidad del entrenamiento depende del espectro de los pesos.

Errores frecuentes de la parte

Glosario de la parte (20 términos)

TérminoDefiniciónClase
AutovalorFactor λ por el que la transformación escala su autovector: Av = λv.125
BaseConjunto independiente que genera todo el espacio. Las coordenadas de un vector dependen de la base elegida.121
BroadcastingRegla que alinea shapes por la derecha y estira las dimensiones de tamaño 1 sin copiar memoria.138
Cambio de baseTransformación A' = P⁻¹AP que expresa la misma aplicación lineal en otra base.122
Definida positivaMatriz simétrica con todos los autovalores positivos; equivale a xᵀAx > 0 para todo x no nulo.127
Factorización LUA = LU con L triangular inferior y U superior. Factoriza una vez, resuelve muchos sistemas.129
Factorización QRA = QR con Q ortogonal y R triangular superior. Numéricamente más estable que las ecuaciones normales.130
Forma cuadráticaq(x) = xᵀAx. Sus curvas de nivel son elipses si A es definida positiva.128
Matrices semejantesA y P⁻¹AP. Representan la misma transformación y comparten traza, determinante y autovalores.122
Mínimos cuadradosSolución que minimiza ‖Ax − b‖². Es la proyección de b sobre el espacio columna de A.131
Notación de EinsteinConvenio en el que los índices repetidos se suman. Unifica producto, traza, contracción y transposición.139
NúcleoConjunto de vectores que la transformación manda al cero. Su dimensión es la nulidad.124
Orden de un tensorNúmero de índices necesarios para localizar un elemento. Un lote de imágenes es de orden 4.137
PCAProyección sobre los autovectores de la covarianza. Es la SVD de los datos centrados.135
Producto de KroneckerA⊗B, matriz en bloques cuyo rango es el producto de los rangos.136
PseudoinversaA⁺, generalización de la inversa a matrices rectangulares o singulares. Da la solución de mínima norma.134
SVDA = UΣVᵀ. Existe para toda matriz. De ella se leen rango, condición y mejor aproximación de rango bajo.132
Teorema de Eckart-YoungLa SVD truncada a rango k es la mejor aproximación de rango k en norma de Frobenius y espectral.133
Teorema espectralToda matriz simétrica real es diagonalizable con autovectores ortonormales y autovalores reales.126
Valor singularRaíz cuadrada de los autovalores de AᵀA. Miden cuánto estira A en cada dirección principal.132

Bibliografía de la parte

121 · Bases y coordenadas

Parte 06 · clase 1 de 20 · demostración bases_coordinates

Las coordenadas de un vector dependen de la base; el vector no.

v = Σ cᵢ bᵢ  con bᵢ los vectores de la base
coordenadas: c = B⁻¹v, donde B tiene las bᵢ por columnas

Fundamentos

La confusión más persistente del álgebra lineal es identificar un vector con su lista de números. La lista son sus coordenadas en una base concreta, casi siempre la canónica, y cambiar de base cambia la lista sin cambiar el objeto. El vector (3,1) es el mismo punto del plano se mire desde donde se mire.

Calcular las coordenadas en otra base es resolver un sistema: si B es la matriz cuyas columnas son los vectores de la nueva base, las coordenadas c cumplen Bc = v. Que ese sistema tenga solución única es exactamente la condición de que los vectores formen base: independientes y generadores.

La utilidad de cambiar de base es que algunos problemas son triviales en la base correcta. Una matriz cualquiera es difícil de elevar a la centésima potencia; en la base de sus autovectores es diagonal y basta elevar números. Ese es el programa completo de las clases 125 y 126.

En machine learning el cambio de base es omnipresente aunque no se nombre: PCA cambia a la base de componentes principales, la transformada de Fourier cambia a la base de frecuencias, y una capa de embedding cambia de la base «one-hot» a una base densa aprendida. Todas son la misma operación.

Ejemplo trabajado

El mismo vector en dos bases.

base canónica: (3, 1)

nueva base: b₁ = (1,1),  b₂ = (1,−1)

Resolver B·c = v:
  [[1, 1],  [c₁]   [3]
   [1,−1]]  [c₂] = [1]

  c = (2, 1)

Comprobación: 2·(1,1) + 1·(1,−1) = (3,1)    ✓

El vector no cambió; cambió su lista de coordenadas.

Qué ejecuta el laboratorio

Las coordenadas dependen de la base elegida.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (2)el_vector_no_cambia, base_es_independiente
compmath run 121

Errores conceptuales frecuentes

  1. Identificar el vector con su lista de coordenadas.
  2. Olvidar declarar en qué base están expresadas unas coordenadas.
  3. Suponer que cualquier conjunto de n vectores en ℝⁿ es base: deben ser independientes.

Dónde se usa

PCA, transformada de Fourier, embeddings, cambio de sistema de referencia en robótica y cualquier representación alternativa de los mismos datos.

Bibliografía de la clase

122 · Cambio de base

Parte 06 · clase 2 de 20 · demostración change_of_basis

A y P⁻¹AP representan la misma transformación en bases distintas y comparten sus invariantes.

A' = P⁻¹AP  (semejanza)
tr(A') = tr(A),  det(A') = det(A),  autovalores iguales

Fundamentos

Si P es la matriz cuyas columnas son los vectores de la nueva base, entonces P⁻¹AP es la misma transformación expresada en esa base. La lectura de la fórmula, de derecha a izquierda, es literal: pasar de la nueva base a la canónica (P), aplicar la transformación (A) y volver (P⁻¹).

Las matrices relacionadas así se llaman semejantes, y comparten todo lo que no depende de la base: traza, determinante, rango, polinomio característico y autovalores. Esos son los invariantes de la transformación, y son las magnitudes que describen la transformación en sí, no su representación.

Que la traza y el determinante sean invariantes explica por qué son iguales a la suma y al producto de los autovalores respectivamente: los autovalores tampoco dependen de la base, y en la base diagonal la traza es su suma y el determinante su producto.

La diagonalización de la clase 126 es el caso particular en que la nueva base está formada por autovectores y A' resulta diagonal. No siempre existe esa base —hay matrices no diagonalizables— pero para las simétricas sí, y siempre ortonormal.

Ejemplo trabajado

Cambio de base con P y su inversa.

P = [[1, 1],     P⁻¹ = [[0.5,  0.5],
     [1,−1]]            [0.5, −0.5]]

P·P⁻¹ = I                                  ✓

v = (3,1) en base canónica
coordenadas nuevas: P⁻¹v = (2, 1)
vuelta:             P·(2,1) = (3,1)        ✓

Semejanza: A' = P⁻¹AP
  misma transformación, otra representación
  mismos autovalores, traza y determinante

Qué ejecuta el laboratorio

Matriz de cambio de base y su inversa.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (0)
compmath run 122

Errores conceptuales frecuentes

  1. Escribir PAP⁻¹ cuando corresponde P⁻¹AP (o al revés) sin fijar la convención.
  2. Suponer que matrices semejantes son iguales entrada a entrada.
  3. Comparar matrices de transformaciones expresadas en bases distintas.

Dónde se usa

Diagonalización, análisis de sistemas dinámicos, cambio de sistema de referencia y reducción de una forma cuadrática a ejes principales.

Bibliografía de la clase

123 · Transformaciones lineales

Parte 06 · clase 3 de 20 · demostración linear_transformations

Una transformación es lineal si preserva sumas y escalados; sus columnas son las imágenes de la base.

T(u+v) = T(u) + T(v)
T(ku) = k·T(u)
T(0) = 0  (condición necesaria)

Fundamentos

Una transformación lineal es la que respeta la estructura del espacio vectorial: transformar una suma es sumar las transformaciones, y transformar un múltiplo es multiplicar la transformación. Ambas condiciones juntas equivalen a preservar combinaciones lineales.

De ahí se deduce inmediatamente que T(0) = 0. Esa condición necesaria es la que excluye la traslación: mover el origen no es una transformación lineal, y por eso las coordenadas homogéneas de la clase 073 tuvieron que ampliar la dimensión.

El resultado que hace todo esto operativo es que toda transformación lineal está determinada por lo que hace con los vectores de la base. Si se sabe a dónde va cada eᵢ, se sabe a dónde va cualquier vector, porque todo vector es combinación de la base. Y esas imágenes son precisamente las columnas de la matriz.

La consecuencia práctica al leer código: para entender qué hace una matriz de pesos, mirar sus columnas dice a dónde manda cada entrada; mirar sus filas dice de qué depende cada salida. Las dos lecturas son útiles y responden preguntas distintas.

Ejemplo trabajado

Verificar linealidad de una escala.

A = [[2,0],[0,3]]   (escala x2 en x, x3 en y)

u = (1,2),  v = (3,−1),  k = 4

Aditividad:
  A(u+v) = A(4,1) = (8,3)
  Au + Av = (2,6) + (6,−3) = (8,3)          ✓

Homogeneidad:
  A(4u) = A(4,8) = (8,24)
  4·Au  = 4·(2,6) = (8,24)                  ✓

T(0) = (0,0)                                ✓

Columnas de A: (2,0) y (0,3)
  son las imágenes de e₁ y e₂

Qué ejecuta el laboratorio

Una transformación lineal preserva sumas y escalados.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (3)aditiva, homogenea, T(0)=0
compmath run 123

Errores conceptuales frecuentes

  1. Llamar lineal a una transformación afín Wx + b.
  2. Verificar solo una de las dos condiciones.
  3. Olvidar que las columnas son las imágenes de la base, no las filas.

Dónde se usa

Capas densas, transformaciones geométricas, filtros lineales y cualquier operación que deba conmutar con la suma de sus entradas.

Bibliografía de la clase

124 · Núcleo e imagen

Parte 06 · clase 4 de 20 · demostración kernel_image

Lo que no llega a la imagen se pierde en el núcleo: rango más nulidad es el número de columnas.

núcleo = {x : Ax = 0}
imagen = espacio columna
rango + nulidad = n

Fundamentos

El núcleo de una transformación es el conjunto de vectores que manda al cero, y la imagen es el conjunto de vectores alcanzables. Ambos son subespacios, y el teorema del rango-nulidad los relaciona: la suma de sus dimensiones es el número de columnas.

La lectura es de conservación: cada dimensión de entrada o bien sobrevive en la imagen o bien colapsa en el núcleo. No hay una tercera opción. Si una transformación de ℝ³ en ℝ² tiene rango 2, su núcleo tiene dimensión 1: hay una recta entera de vectores distintos que producen la misma salida.

Esa pérdida es irreversible. Si el núcleo no es trivial, la transformación no es inyectiva y no se puede invertir: dada una salida, no se sabe de qué entrada vino. Es la versión lineal de la inyectividad de la clase 086, y es la razón por la que una capa que reduce dimensión pierde información necesariamente.

El núcleo también describe la no unicidad de la solución de un sistema: si x₀ resuelve Ax = b, entonces x₀ + k también lo resuelve para cualquier k del núcleo. Por eso un sistema con núcleo no trivial tiene infinitas soluciones, y por eso la pseudoinversa (clase 134) elige entre ellas la de norma mínima.

Ejemplo trabajado

Núcleo e imagen de una matriz 2×3 de rango 1.

A = [[1, 2, 3],
     [2, 4, 6]]        (fila2 = 2·fila1)

rango = 1     (dimensión de la imagen)
columnas = 3
nulidad = 3 − 1 = 2                        ✓ teorema

Un vector del núcleo: (2, −1, 0)
  A·(2,−1,0) = (2−2+0, 4−4+0) = (0,0)      ✓

Consecuencia: A no es inyectiva.
Infinitos vectores distintos dan la misma salida.

Qué ejecuta el laboratorio

Núcleo, imagen y teorema del rango-nulidad.

GrupoSalidas
Resultados numéricos (4)columnas, rango_(dim_imagen), nulidad_(dim_nucleo), rango+nulidad
Comprobaciones (1)teorema_verificado
compmath run 124

Errores conceptuales frecuentes

  1. Confundir el núcleo (en el dominio) con la imagen (en el codominio).
  2. Suponer que núcleo trivial implica sobreyectividad.
  3. Olvidar que el teorema cuenta las columnas, no las filas.

Dónde se usa

Unicidad de soluciones, pérdida de información en capas con reducción de dimensión, análisis de identificabilidad de modelos y espacios nulos en optimización con restricciones.

Bibliografía de la clase

125 · Autovalores y autovectores

Parte 06 · clase 5 de 20 · demostración eigen

Un autovector es una dirección que la transformación solo escala; su factor es el autovalor.

Av = λv,  v ≠ 0
Σλᵢ = tr(A),   Πλᵢ = det(A)

Fundamentos

Casi todo vector cambia de dirección al aplicarle una transformación. Los autovectores son las excepciones: direcciones que solo se estiran o encogen, con factor el autovalor. Encontrarlas es encontrar los ejes naturales de la transformación.

Las dos identidades que conectan autovalores con invariantes son muy útiles como verificación: su suma es la traza y su producto el determinante. Comprobarlas cuesta nada y detecta errores de cálculo de inmediato, que es por lo que el laboratorio las incluye.

Para matrices simétricas —el caso que más importa aquí— los autovalores son reales y los autovectores ortogonales. Ese resultado, el teorema espectral, no vale para matrices generales: una rotación en el plano no tiene autovectores reales, porque ninguna dirección se conserva. Sus autovalores son complejos, y su parte imaginaria codifica el ángulo.

El método de cálculo del motor es la iteración de Jacobi, que anula sistemáticamente los elementos fuera de la diagonal mediante rotaciones. Es estable, converge siempre para simétricas y es fácil de leer, aunque no sea el más rápido. En la práctica profesional se usa el algoritmo QR con desplazamientos.

Ejemplo trabajado

Autovalores de una matriz simétrica 2×2.

A = [[4, 1],
     [1, 3]]

autovalores: λ₁ = 4.6180,  λ₂ = 2.3820
autovector dominante: (0.8507, 0.5257)

Verificación Av = λv:
  A·v = (3.9284, 2.4272)
  λ₁·v = (3.9284, 2.4272)                  ✓

Invariantes:
  suma  4.6180 + 2.3820 = 7 = tr(A)        ✓
  producto 4.6180 · 2.3820 = 11 = det(A)   ✓

Qué ejecuta el laboratorio

Autovalores: direcciones que la transformación solo escala.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (3)Av=λv, traza_es_suma_de_autovalores, det_es_producto_de_autovalores
compmath run 125

Errores conceptuales frecuentes

  1. Buscar autovectores reales en matrices de rotación.
  2. Olvidar normalizar los autovectores al compararlos.
  3. No verificar con la traza y el determinante.

Dónde se usa

PCA, análisis de estabilidad de sistemas dinámicos, PageRank, modos de vibración y curvatura del Hessiano en optimización.

Bibliografía de la clase

126 · Diagonalización

Parte 06 · clase 6 de 20 · demostración diagonalization

Diagonalizar es elegir la base donde la transformación solo escala, y ahí las potencias son triviales.

A = PDP⁻¹,  D diagonal de autovalores
simétrica: A = QDQᵀ con Q ortogonal
Aᵏ = PDᵏP⁻¹

Fundamentos

Si una matriz tiene una base completa de autovectores, se puede escribir como PDP⁻¹ con D diagonal. Esa factorización es un cambio de base: pasar a la base de autovectores, escalar cada eje por su autovalor y volver.

La ganancia práctica más visible está en las potencias. A¹⁰⁰ = PD¹⁰⁰P⁻¹, y elevar una diagonal a la centésima es elevar sus entradas. De multiplicar cien matrices se pasa a elevar n números. Es lo que permite analizar el comportamiento a largo plazo de una cadena de Markov (clase 199) sin simularla.

Para matrices simétricas el resultado es aún mejor: la base de autovectores puede elegirse ortonormal, así que P es ortogonal y P⁻¹ = Pᵀ. La factorización queda A = QDQᵀ, sin necesidad de invertir nada. Es el teorema espectral, y es la razón por la que las matrices simétricas son tan cómodas.

No toda matriz es diagonalizable. Las que tienen autovalores repetidos sin suficientes autovectores independientes no lo son, y para ellas existe la forma de Jordan. En la práctica numérica ese caso es inestable y se prefiere la SVD, que siempre existe.

Ejemplo trabajado

Diagonalizar una simétrica y elevarla a la décima.

A = [[4,1],[1,3]]

D = diag(4.6180, 2.3820)
Q = matriz ortogonal de autovectores

QDQᵀ reconstruye A                         ✓

A¹⁰ vía diagonalización:
  Q·diag(4.6180¹⁰, 2.3820¹⁰)·Qᵀ
  = [[ 4 259 552, 2 632 158],
     [ 2 632 158, 1 627 394]]

Coste: 2 exponenciaciones frente a 10 productos de matrices

Qué ejecuta el laboratorio

A = PDP⁻¹: la base donde la transformación solo escala.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (1)reconstruccion_ok
compmath run 126

Errores conceptuales frecuentes

  1. Suponer que toda matriz es diagonalizable.
  2. Invertir P cuando la matriz es simétrica y bastaría transponer.
  3. Usar diagonalización en matrices no simétricas mal condicionadas: preferir SVD.

Dónde se usa

Potencias de matrices, cadenas de Markov, análisis modal, PCA y ecuaciones diferenciales lineales.

Bibliografía de la clase

127 · Matrices positivas definidas

Parte 06 · clase 7 de 20 · demostración positive_definite

Definida positiva significa todos los autovalores positivos, y equivale a que xᵀAx sea siempre positivo.

A ≻ 0 ⟺ xᵀAx > 0 para todo x ≠ 0 ⟺ todos los λᵢ > 0
criterio de Sylvester: todos los menores principales positivos

Fundamentos

Una matriz simétrica es definida positiva si su forma cuadrática es siempre positiva salvo en el origen. Las tres caracterizaciones —forma cuadrática, autovalores y menores principales— son equivalentes, y cada una es la más cómoda en un contexto distinto.

Esta propiedad es la que hace «bien portados» a los objetos donde aparece. Una matriz de covarianza es siempre semidefinida positiva, porque su forma cuadrática es la varianza de una combinación lineal, que no puede ser negativa. Un Hessiano definido positivo en un punto crítico garantiza que es un mínimo (clase 169). Una matriz de Gram de un kernel válido debe ser semidefinida positiva, y esa es la condición de Mercer (clase 290).

La distinción entre definida y semidefinida importa: semidefinida permite autovalores nulos, lo que significa direcciones planas. Una covarianza semidefinida pero no definida indica que hay una combinación lineal de las variables con varianza cero, es decir, dependencia lineal exacta entre features.

Numéricamente, la comprobación robusta no es calcular autovalores sino intentar la factorización de Cholesky: existe si y solo si la matriz es definida positiva, y cuesta la mitad que una LU. Es lo que hacen las bibliotecas para comprobar la condición.

Ejemplo trabajado

Una definida positiva y una indefinida.

A = [[4,1],[1,3]]        autovalores 4.618, 2.382   → todos > 0  ✓ definida positiva
B = [[1,2],[2,1]]        autovalores 3, −1          → signos mixtos ✗ indefinida

Forma cuadrática con x = (1,−1):
  xᵀBx = 1 − 2 − 2 + 1 = −2 < 0          ✗ confirma que B no es definida positiva

Criterio de Sylvester para A:
  menor 1×1: 4 > 0                       ✓
  menor 2×2: det = 11 > 0                ✓

Qué ejecuta el laboratorio

Definida positiva: todos los autovalores positivos, xᵀAx > 0.

GrupoSalidas
Resultados numéricos (1)xᵀBx_con_x=(1,-1)
Comprobaciones (2)todos_positivos, criterio_de_Sylvester_A
compmath run 127

Errores conceptuales frecuentes

  1. Comprobar la condición solo en algunos vectores x en lugar de usar los autovalores.
  2. Confundir definida positiva con «todas las entradas positivas».
  3. Olvidar que la propiedad solo está definida para matrices simétricas.

Dónde se usa

Matrices de covarianza, condición de mínimo en optimización, kernels válidos, métodos de Newton y muestreo de gaussianas multivariantes por Cholesky.

Bibliografía de la clase

128 · Formas cuadráticas

Parte 06 · clase 8 de 20 · demostración quadratic_forms

Una forma cuadrática tiene curvas de nivel elípticas cuando su matriz es definida positiva, y los ejes son los autovectores.

q(x) = xᵀAx
∇q = 2Ax  (A simétrica)
máx y mín sobre ‖x‖=1: mayor y menor autovalor

Fundamentos

Una forma cuadrática es un polinomio homogéneo de grado dos escrito matricialmente. Su geometría la determinan los autovalores de A: si todos son positivos, las curvas de nivel son elipses; si hay signos mixtos, hiperbolas; si alguno es cero, la forma es degenerada en esa dirección.

Los ejes de las elipses son los autovectores y sus longitudes dependen de los autovalores. Cuanto más dispares sean los autovalores, más alargadas son las elipses, y esa excentricidad es exactamente el número de condición. Ese es el vínculo entre álgebra lineal y velocidad de convergencia: el descenso de gradiente zigzaguea en valles alargados (clase 244).

El gradiente de una forma cuadrática es 2Ax cuando A es simétrica, y ese es el ejemplo canónico de derivada matricial (clase 177). Igualar a cero da Ax = 0, lo que confirma que el único punto crítico de una forma definida positiva es el origen, y es un mínimo.

Los valores extremos sobre la esfera unitaria son el mayor y el menor autovalor, resultado conocido como cociente de Rayleigh. Es lo que hace que la primera componente principal maximice la varianza proyectada (clase 135): maximizar xᵀΣx con ‖x‖=1 da el autovector dominante.

Ejemplo trabajado

Forma cuadrática con matriz definida positiva.

A = [[4,1],[1,3]]
q(x) = 4x₁² + 2x₁x₂ + 3x₂²

valores en cuatro direcciones unitarias:
  (1,0)  → 4
  (0,1)  → 3
  (1,1)  → 10
  (1,−1) → 6

Extremos sobre ‖x‖ = 1:
  mínimo = λ_min = 2.3820
  máximo = λ_max = 4.6180

Gradiente en (1,1): 2A(1,1) = (10, 8)

Curvas de nivel: elipses (A es definida positiva)

Qué ejecuta el laboratorio

La forma cuadrática xᵀAx y sus curvas de nivel.

GrupoSalidas
Resultados numéricos (2)minimo_en_la_esfera_unitaria, maximo_en_la_esfera_unitaria
Comprobaciones (0)
compmath run 128

Errores conceptuales frecuentes

  1. Escribir la forma cuadrática con una matriz no simétrica sin simetrizarla.
  2. Olvidar el factor 2 en el gradiente.
  3. Suponer que las curvas de nivel son circulares cuando los autovalores difieren.

Dónde se usa

Función objetivo de mínimos cuadrados, energía en física, análisis de curvatura y diagnóstico de velocidad de convergencia en optimización.

Bibliografía de la clase

129 · Descomposición LU

Parte 06 · clase 9 de 20 · demostración lu_decomposition

LU factoriza una vez y resuelve muchos sistemas: O(n³) una sola vez, O(n²) por cada b.

A = LU
resolver: Ly = b (hacia delante), luego Ux = y (hacia atrás)
det(A) = Π uᵢᵢ

Fundamentos

La factorización LU descompone una matriz en el producto de una triangular inferior con unos en la diagonal y una triangular superior. No es un algoritmo nuevo: es la eliminación de Gauss guardando los multiplicadores en lugar de descartarlos.

Su valor está en la reutilización. Factorizar cuesta O(n³/3), pero una vez hecho, resolver Ax = b para cada nuevo b cuesta solo O(n²): dos sustituciones triangulares. Si hay que resolver mil sistemas con la misma matriz —caso frecuente en simulación y en métodos implícitos— la diferencia es de tres órdenes de magnitud.

Como subproducto, el determinante sale gratis: es el producto de la diagonal de U, corregido por el signo de los intercambios de fila. Calcularlo así cuesta O(n³) en lugar del O(n!) de la definición de Laplace.

La versión sin pivoteo que implementa el motor —Doolittle— falla si aparece un pivote nulo, y es numéricamente frágil con pivotes pequeños. Las bibliotecas reales usan LU con pivoteo parcial (PA = LU), y por eso scipy.linalg.lu devuelve también una matriz de permutación.

Ejemplo trabajado

Factorizar una matriz 2×2.

A = [[4,3],[6,3]]

L = [[1,   0],      U = [[4,  3],
     [1.5, 1]]           [0, −1.5]]

L·U = [[4,3],[6,3]] = A                    ✓

det(A) = 4 · (−1.5) = −6                   ✓

Coste:
  factorizar:               O(n³/3)
  cada sistema adicional:   O(n²)

Qué ejecuta el laboratorio

LU: factorizar una vez, resolver muchos sistemas.

GrupoSalidas
Resultados numéricos (1)det_como_producto_de_U
Comprobaciones (1)reconstruccion_ok
compmath run 129

Errores conceptuales frecuentes

  1. Usar LU sin pivoteo con matrices que lo requieren.
  2. Refactorizar la matriz para cada nuevo lado derecho.
  3. Olvidar el signo de los intercambios al calcular el determinante.

Dónde se usa

Solvers de sistemas lineales, métodos implícitos en EDO, simulación con la misma matriz y muchos lados derechos, y cálculo eficiente de determinantes.

Bibliografía de la clase

130 · Descomposición QR

Parte 06 · clase 10 de 20 · demostración qr_decomposition

QR produce una base ortonormal del espacio columna y es la vía estable para mínimos cuadrados.

A = QR,  QᵀQ = I,  R triangular superior
resolver mínimos cuadrados: Rx = Qᵀb

Fundamentos

La factorización QR escribe una matriz como el producto de una ortogonal y una triangular superior. Las columnas de Q son una base ortonormal del espacio columna de A, obtenida ortonormalizando sus columnas.

Su importancia es numérica. Resolver mínimos cuadrados por las ecuaciones normales exige formar AᵀA, lo que eleva al cuadrado el número de condición (clase 112). Con QR no hace falta: el problema se reduce a Rx = Qᵀb, una sustitución triangular, y la condición se conserva. La diferencia es la que separa seis dígitos correctos de doce.

El método de Gram-Schmidt que implementa el motor es el más legible pero no el más estable: la ortogonalidad se degrada con matrices mal condicionadas. Las bibliotecas usan reflexiones de Householder, que son ortogonales exactas salvo redondeo. La versión «modificada» de Gram-Schmidt es un punto intermedio.

QR también es la base del algoritmo estándar para calcular autovalores: iterar A ← RQ converge a una forma triangular cuya diagonal son los autovalores. Es uno de los algoritmos más influyentes del siglo XX.

Ejemplo trabajado

QR de una matriz 3×2.

A = [[1,1],
     [1,0],
     [0,1]]

Q (3×2, columnas ortonormales):
  [[0.7071,  0.4082],
   [0.7071, −0.4082],
   [0,       0.8165]]

R = [[1.4142, 0.7071],
     [0,      1.2247]]

QᵀQ = I                                    ✓ ortonormal
QR  = A                                    ✓ reconstruye
R triangular superior                      ✓

Qué ejecuta el laboratorio

QR por Gram-Schmidt: base ortonormal del espacio columna.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (2)Q_es_ortonormal, R_es_triangular_superior
compmath run 130

Errores conceptuales frecuentes

  1. Usar Gram-Schmidt clásico en matrices mal condicionadas.
  2. Formar AᵀA cuando QR resuelve el mismo problema mejor.
  3. Suponer que Q es cuadrada: en la QR reducida tiene el shape de A.

Dónde se usa

Mínimos cuadrados estables, cálculo de autovalores por el algoritmo QR, ortonormalización de bases y regresión numéricamente robusta.

Bibliografía de la clase

131 · Mínimos cuadrados lineales

Parte 06 · clase 11 de 20 · demostración least_squares

Mínimos cuadrados es la proyección de b sobre el espacio columna, y su residuo es ortogonal a él.

min ‖Ax − b‖²
ecuaciones normales: AᵀAx = Aᵀb
residuo ortogonal: Aᵀ(Ax − b) = 0

Fundamentos

Cuando un sistema tiene más ecuaciones que incógnitas, en general no hay solución exacta. Mínimos cuadrados busca la que minimiza la norma del residuo, y esa solución tiene una caracterización geométrica limpia: es la proyección ortogonal de b sobre el espacio columna de A (clase 119).

Derivar el objetivo ‖Ax − b‖² e igualar a cero da directamente las ecuaciones normales. La condición de ortogonalidad del residuo no es un requisito adicional: es equivalente a que el gradiente se anule. Álgebra y geometría dicen lo mismo.

Por qué se minimiza el cuadrado del residuo y no su valor absoluto tiene dos razones. La analítica: el cuadrado es derivable en todas partes y da solución cerrada, mientras que el valor absoluto exige programación lineal. Y la estadística: bajo error gaussiano, minimizar el error cuadrático es maximizar la verosimilitud (clase 215). No es una elección arbitraria, es la consecuencia de un supuesto.

La contrapartida es la sensibilidad a valores atípicos: elevar al cuadrado da mucho peso a los errores grandes. Cuando eso es un problema, se usan pérdidas robustas como Huber (clase 304), a costa de perder la solución cerrada.

Ejemplo trabajado

Ajustar una recta a cinco puntos.

datos: (0,1.0) (1,3.1) (2,4.9) (3,7.2) (4,8.9)

A = [[1,0],[1,1],[1,2],[1,3],[1,4]]
b = (1.0, 3.1, 4.9, 7.2, 8.9)

Ecuaciones normales AᵀA x = Aᵀb:
  intercepto = 1.02,  pendiente = 2.00

residuos: (−0.02, 0.08, −0.13, 0.16, −0.09)
SSE = 0.058

Verificación: Aᵀ·residuo = (0, 0)         ✓ ortogonal

Qué ejecuta el laboratorio

Mínimos cuadrados por ecuaciones normales.

GrupoSalidas
Resultados numéricos (3)intercepto, pendiente, SSE
Comprobaciones (1)residuo_ortogonal_a_las_columnas
compmath run 131

Errores conceptuales frecuentes

  1. Usar mínimos cuadrados con valores atípicos sin considerar una pérdida robusta.
  2. Resolver por ecuaciones normales cuando la matriz está mal condicionada.
  3. Interpretar el SSE sin normalizar por el número de datos ni compararlo con una línea base.

Dónde se usa

Regresión lineal, calibración de sensores, ajuste de curvas, estimación de parámetros y resolución de sistemas sobredeterminados.

Bibliografía de la clase

132 · SVD desde la intuición

Parte 06 · clase 12 de 20 · demostración svd_intuition

La SVD existe para toda matriz y de ella se leen rango, condición y estructura.

A = UΣVᵀ
σᵢ = √(autovalores de AᵀA)
κ(A) = σ_max / σ_min

Fundamentos

La descomposición en valores singulares escribe cualquier matriz —cuadrada o no, invertible o no— como el producto de una rotación, un escalado por ejes y otra rotación. Esa universalidad es lo que la hace la herramienta más útil del álgebra lineal aplicada: donde la diagonalización falla, la SVD funciona.

Los valores singulares son las cantidades por las que la matriz estira cada dirección principal, ordenados de mayor a menor. Su lectura es directa: el mayor es la norma espectral de la matriz, el número de no nulos es el rango, y el cociente entre el mayor y el menor es el número de condición. Tres diagnósticos de una sola descomposición.

El número de condición es el indicador correcto de mal condicionamiento, no el determinante (clase 117). Una matriz puede tener determinante minúsculo y condición 1 —si está simplemente escalada— o determinante razonable y condición 10¹² —si tiene una dirección casi degenerada—. Solo el segundo caso es problemático.

El rango numérico se define con la SVD y una tolerancia: cuántos valores singulares superan un umbral relativo al mayor. Es la definición que usan las bibliotecas, porque en datos reales el rango exacto casi siempre es completo por culpa del ruido, aunque la estructura sea de rango bajo.

Ejemplo trabajado

SVD de una matriz 2×2.

A = [[3,0],
     [4,5]]

valores singulares: σ₁ = 6.7082,  σ₂ = 2.2361

norma espectral   = σ₁ = 6.7082
número de condición = 6.7082/2.2361 = 3.0
rango numérico    = 2  (ambos σ > tolerancia)

A = UΣVᵀ reconstruye la matriz              ✓

Existe para TODA matriz, incluso rectangular y singular.

Qué ejecuta el laboratorio

SVD: rotar, escalar, rotar. Existe siempre.

GrupoSalidas
Resultados numéricos (3)sigma1_es_la_norma_espectral, numero_de_condicion, rango_numerico
Comprobaciones (1)existe_para_toda_matriz
compmath run 132

Errores conceptuales frecuentes

  1. Usar el determinante como indicador de condicionamiento.
  2. Calcular la SVD vía AᵀA con matrices mal condicionadas: eleva la condición al cuadrado.
  3. Suponer que los valores singulares son los autovalores: coinciden solo si A es simétrica semidefinida positiva.

Dónde se usa

Diagnóstico de condicionamiento, rango numérico, pseudoinversa, compresión, PCA, recomendación por factorización y regularización truncada.

Bibliografía de la clase

133 · SVD y compresión

Parte 06 · clase 13 de 20 · demostración svd_compression

Truncar la SVD da la mejor aproximación de rango k que existe, no una buena.

Aₖ = Σᵢ₌₁ᵏ σᵢ uᵢ vᵢᵀ
‖A − Aₖ‖_F = √(Σᵢ₌ₖ₊₁ σᵢ²)
energía retenida = Σᵢ₌₁ᵏ σᵢ² / Σ σᵢ²

Fundamentos

El teorema de Eckart-Young (1936) es de los resultados más fuertes del álgebra lineal aplicada: entre todas las matrices de rango k, la que mejor aproxima a A es la SVD truncada, y el error cometido es exactamente la raíz de la suma de los cuadrados de los valores singulares descartados.

«La mejor» es una afirmación de optimalidad, no una recomendación heurística. No existe ninguna otra matriz de rango k más cercana, ni en norma de Frobenius ni en norma espectral. Eso convierte la truncación SVD en el estándar contra el que se comparan todos los métodos de compresión y reducción de dimensionalidad.

La energía retenida —la fracción de la suma de cuadrados de los valores singulares que conservan los k primeros— es el criterio habitual para elegir k. En PCA se llama «varianza explicada» y es exactamente la misma cantidad. Un salto brusco en el espectro indica el rango natural de los datos.

El ahorro de almacenamiento es real: guardar Aₖ requiere k(m + n + 1) números en lugar de mn. Para una matriz 1000×1000 aproximada con rango 10, son 20 010 números frente a un millón. Esa es la aritmética que hace viable LoRA, que adapta modelos gigantes añadiendo matrices de rango muy bajo.

Ejemplo trabajado

Aproximación de rango 1 de una matriz 2×2.

A = [[4, 0],
     [3,−5]]

valores singulares: σ₁ = 6.0644,  σ₂ = 3.2977

Aproximación de rango 1:
  error de Frobenius = 3.2977 = σ₂          ✓ coincide con la teoría
  energía retenida = σ₁²/(σ₁²+σ₂²) = 77.2 %

Teorema de Eckart-Young:
  ninguna otra matriz de rango 1 se acerca más.

Qué ejecuta el laboratorio

Aproximación de rango 1 y energía retenida.

GrupoSalidas
Resultados numéricos (3)error_de_frobenius, error_teorico_sigma2, energia_retenida_%
Comprobaciones (0)
compmath run 133

Errores conceptuales frecuentes

  1. Elegir k sin mirar el espectro de valores singulares.
  2. Confundir energía retenida (cuadrados) con la fracción de valores singulares.
  3. Suponer que otra factorización de rango k podría aproximar mejor.

Dónde se usa

Compresión de imágenes, PCA, sistemas de recomendación por factorización, eliminación de ruido y LoRA.

Bibliografía de la clase

134 · Pseudoinversa de Moore-Penrose

Parte 06 · clase 14 de 20 · demostración pseudoinverse

La pseudoinversa generaliza la inversa y da la solución de mínima norma.

A⁺ = VΣ⁺Uᵀ
sobredeterminado: A⁺b = solución de mínimos cuadrados
indeterminado: A⁺b = solución de norma mínima

Fundamentos

La pseudoinversa de Moore-Penrose extiende la inversa a matrices que no la tienen: rectangulares o singulares. Se construye desde la SVD invirtiendo los valores singulares no nulos y dejando en cero los demás.

Su comportamiento depende del caso. Si el sistema está sobredeterminado —más ecuaciones que incógnitas—, A⁺b da la solución de mínimos cuadrados. Si está indeterminado —infinitas soluciones—, da la de norma mínima entre todas ellas. Esa elección no es arbitraria: es la solución sin componente en el núcleo, la más «económica».

El detalle numérico que importa: al invertir los valores singulares, los más pequeños se convierten en los más grandes y amplifican el ruido. Por eso la pseudoinversa práctica trunca: descarta los valores singulares por debajo de una tolerancia relativa. Ese truncamiento es una forma de regularización, emparentada con Ridge.

Cuando A tiene rango completo por columnas, A⁺ = (AᵀA)⁻¹Aᵀ y coincide con las ecuaciones normales. La versión SVD es preferible porque funciona también cuando el rango es deficiente, donde las ecuaciones normales fallan.

Ejemplo trabajado

Pseudoinversa de un sistema sobredeterminado.

A = [[1,0],      b = (1, 2, 4)
     [1,1],
     [1,2]]

3 ecuaciones, 2 incógnitas → sobredeterminado

A⁺ = [[ 0.8333,  0.3333, −0.1667],
      [−0.5,     0,       0.5   ]]

A⁺b = (0.8333, 1.5)

Coincide con las ecuaciones normales        ✓
A⁺A = I (rango completo por columnas)       ✓

Qué ejecuta el laboratorio

Pseudoinversa de Moore-Penrose para sistemas sobredeterminados.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (2)sistema_sobredeterminado, coinciden
compmath run 134

Errores conceptuales frecuentes

  1. Usar la pseudoinversa sin truncar valores singulares minúsculos.
  2. Suponer que A⁺A siempre es la identidad: solo si el rango es completo por columnas.
  3. Confundir la solución de mínima norma con «la» solución cuando hay infinitas.

Dónde se usa

Mínimos cuadrados con rango deficiente, regularización truncada, cinemática inversa en robótica y resolución de sistemas indeterminados.

Bibliografía de la clase

135 · PCA desde álgebra lineal

Parte 06 · clase 15 de 20 · demostración pca

PCA es la autodescomposición de la covarianza, y equivale a la SVD de los datos centrados.

Σ = XᵀX/(n−1)  con X centrada
componentes = autovectores de Σ
varianza explicada = λᵢ / Σλⱼ

Fundamentos

PCA busca las direcciones de máxima varianza de un conjunto de datos. La primera componente es la dirección en la que los datos más se dispersan; la segunda, la de máxima varianza entre las ortogonales a la primera, y así sucesivamente. Esas direcciones son los autovectores de la matriz de covarianza, y sus autovalores son las varianzas correspondientes.

Centrar los datos es obligatorio, no un preprocesado opcional. Sin centrar, la primera componente apunta hacia la media en lugar de hacia la dirección de máxima dispersión, y el resultado carece de sentido. Es el error más frecuente al implementar PCA a mano.

Escalar es otra decisión, y esta sí es opcional pero consecuente. Si las variables están en unidades distintas —euros y kilómetros—, la de mayor magnitud domina la covarianza y la primera componente la sigue. Estandarizar antes de PCA equivale a hacer PCA sobre la matriz de correlación en lugar de sobre la de covarianza.

PCA y SVD son el mismo cálculo. La SVD de la matriz de datos centrados da directamente las componentes en V y las varianzas en σ²/(n−1), sin necesidad de formar la covarianza —que, como toda matriz XᵀX, eleva al cuadrado el número de condición—. Por eso las implementaciones profesionales usan SVD.

Una advertencia que conviene repetir: PCA es no supervisado. Maximiza varianza, no capacidad discriminativa, y puede descartar precisamente la dirección que separa las clases. Para eso está el análisis discriminante lineal, que sí usa las etiquetas.

Ejemplo trabajado

PCA sobre diez observaciones bidimensionales.

medias: (1.81, 1.91)

matriz de covarianza:
  [[0.6166, 0.6154],
   [0.6154, 0.7166]]

autovalores: 1.2840,  0.0491
varianza explicada por PC1: 96.32 %

PC1 = (0.6779, 0.7352)

Proyecciones (primeras 5):
  0.8280, −1.7776, 0.9922, 0.2742, 1.6759

Conclusión: los datos son casi unidimensionales.

Qué ejecuta el laboratorio

PCA como autodescomposición de la covarianza.

GrupoSalidas
Resultados numéricos (2)observaciones, varianza_explicada_PC1_%
Comprobaciones (1)PCA_es_SVD_de_los_datos_centrados
compmath run 135

Errores conceptuales frecuentes

  1. No centrar los datos antes de calcular la covarianza.
  2. No estandarizar cuando las variables tienen unidades distintas.
  3. Esperar que PCA conserve la dirección que separa las clases: es no supervisado.

Dónde se usa

Reducción de dimensionalidad, visualización, eliminación de ruido, compresión y detección de multicolinealidad.

Bibliografía de la clase

136 · Producto de Kronecker

Parte 06 · clase 16 de 20 · demostración kronecker

El producto de Kronecker construye matrices en bloques cuyo rango es el producto de los rangos.

(A ⊗ B) shape = (m₁m₂, n₁n₂)
rango(A ⊗ B) = rango(A) · rango(B)
(A⊗B)(C⊗D) = (AC)⊗(BD)

Fundamentos

El producto de Kronecker sustituye cada entrada de A por esa entrada multiplicada por toda la matriz B, generando una matriz en bloques mucho mayor. Su interés es que estructura: representa operaciones que actúan de forma independiente sobre dos factores de un problema.

Aparece de forma natural en problemas separables. Discretizar una ecuación en derivadas parciales sobre una malla rectangular produce matrices de Kronecker, porque el operador actúa por separado en cada dirección. Lo mismo ocurre al modelar un sistema compuesto por dos subsistemas independientes.

Las identidades que cumple son las que lo hacen útil computacionalmente: el rango del producto es el producto de los rangos, y (A⊗B)(C⊗D) = (AC)⊗(BD). Esta última permite operar con los factores pequeños en lugar de con la matriz gigante, ahorrando memoria y tiempo.

En machine learning aparece en K-FAC, un método de optimización de segundo orden que aproxima el Hessiano de una red como un producto de Kronecker de dos matrices pequeñas. Sin esa estructura, el Hessiano de una capa con un millón de parámetros sería una matriz de 10¹² entradas: inmanejable.

Ejemplo trabajado

Kronecker de dos matrices 2×2.

A = [[1,2],[3,4]]      B = [[0,5],[6,7]]

A⊗B (4×4):
  [[ 0,  5,  0, 10],
   [ 6,  7, 12, 14],
   [ 0, 15,  0, 20],
   [18, 21, 24, 28]]

shape: (2·2, 2·2) = (4,4)                  ✓
rango(A⊗B) = rango(A)·rango(B) = 2·2 = 4   ✓

Qué ejecuta el laboratorio

Producto de Kronecker: estructura en bloques.

GrupoSalidas
Resultados numéricos (2)rango, rango_A_por_rango_B
Comprobaciones (0)
compmath run 136

Errores conceptuales frecuentes

  1. Confundir el producto de Kronecker con el producto matricial ordinario.
  2. Construir explícitamente A⊗B cuando se puede operar con los factores.
  3. Olvidar que el orden importa: A⊗B ≠ B⊗A en general.

Dónde se usa

Discretización de PDE separables, sistemas compuestos, K-FAC en optimización de segundo orden y grafos producto.

Bibliografía de la clase

137 · Tensores: índices, shape y orden

Parte 06 · clase 17 de 20 · demostración tensors

El orden de un tensor es su número de índices; el shape y el orden de aplanado determinan cómo se recorre.

orden = número de índices
índice lineal (row-major) = i·(d₂d₃) + j·d₃ + k
lote de imágenes: (N, C, H, W)

Fundamentos

Un tensor generaliza escalar, vector y matriz a un número arbitrario de índices. En computación no es más que un array multidimensional con un shape, y el trabajo real está en no perderse entre los índices.

El orden de aplanado determina cómo se recorre en memoria. En row-major —el de C, Python y NumPy por defecto— el último índice varía más rápido; en column-major —el de Fortran, MATLAB y las rutinas BLAS— es el primero. Recorrer en el orden equivocado destruye la localidad de caché y puede costar un orden de magnitud de rendimiento sin cambiar el resultado.

Las convenciones de shape importan porque no son universales. Un lote de imágenes es (N, C, H, W) en PyTorch y (N, H, W, C) en TensorFlow. Confundirlas produce errores silenciosos: el código corre y el modelo no aprende. Anotar el shape esperado en cada punto del código es la práctica que evita esa clase de bug.

Las operaciones de reordenamiento —transpose, permute, reshape, view— no mueven datos necesariamente: cambian la interpretación de los índices. Esa distinción entre vista y copia es la que explica los errores de contigüidad que aparecen al encadenar operaciones en PyTorch.

Ejemplo trabajado

Tensor de orden 3 y su aplanado.

shape (2,2,2), 8 elementos

T[0] = [[0,1],[2,3]]
T[1] = [[4,5],[6,7]]

aplanado row-major: [0,1,2,3,4,5,6,7]

elemento T[1][0][1] = 5
índice lineal: 1·4 + 0·2 + 1 = 5           ✓

Convenciones reales:
  PyTorch:    (N, C, H, W)
  TensorFlow: (N, H, W, C)

Qué ejecuta el laboratorio

Orden, shape y reordenamiento de índices.

GrupoSalidas
Resultados numéricos (4)orden, elementos, elemento_[1][0][1], indice_lineal
Comprobaciones (0)
compmath run 137

Errores conceptuales frecuentes

  1. Confundir el orden del tensor con el tamaño de sus dimensiones.
  2. Mezclar convenciones de shape entre frameworks.
  3. Suponer que reshape siempre puede hacerse sin copiar: depende de la contigüidad.

Dónde se usa

Representación de lotes de imágenes, secuencias y vídeo; interoperabilidad entre frameworks; optimización de recorridos por localidad de caché.

Bibliografía de la clase

138 · Broadcasting como operación tensorial

Parte 06 · clase 18 de 20 · demostración broadcasting

Broadcasting alinea shapes por la derecha y estira las dimensiones de tamaño 1 sin copiar memoria.

las dimensiones se alinean por la derecha
compatibles si son iguales o alguna vale 1
(2,3) + (3,) → (2,3);  (2,3) + (2,1) → (2,3)

Fundamentos

Broadcasting es la regla que permite operar arrays de shapes distintos sin escribir bucles ni replicar datos. Las dimensiones se alinean por la derecha y se consideran compatibles si coinciden o si una de ellas vale 1; en ese caso, la de tamaño 1 se «estira» conceptualmente.

La clave es que el estiramiento no copia memoria: la implementación recorre el array pequeño repetidamente con stride cero. Por eso sumar un vector de sesgos a una matriz de activaciones es prácticamente gratis, y por eso normalizar por columna no requiere construir una matriz de medias.

Las reglas son estrictas y su violación produce uno de dos resultados. El bueno: un error de shape que detiene el programa. El malo: una operación que «funciona» pero no es la pretendida, típicamente por confundir (n,) con (n,1). Un vector (3,) sumado a una matriz (3,3) se suma por filas; si se quería por columnas, hay que escribir (3,1) explícitamente.

Ese matiz es la fuente de un error clásico al calcular distancias o normalizaciones. La defensa es anotar los shapes y usar None/np.newaxis de forma explícita en lugar de confiar en que la regla haga lo esperado.

Ejemplo trabajado

Sumar una fila y una columna a la misma matriz.

matriz  shape (2,3):  [[1,2,3],[4,5,6]]

+ fila  shape (3,):   [10,20,30]
  alinea por la derecha: (2,3) y (3,) → (2,3)
  resultado: [[11,22,33],[14,25,36]]      suma por filas

+ columna shape (2,1): [[100],[200]]
  (2,3) y (2,1) → (2,3)
  resultado: [[101,102,103],[204,205,206]]  suma por columnas

Incompatible: (2,3) + (2,) → error

Qué ejecuta el laboratorio

Broadcasting: reglas de compatibilidad de shapes.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (1)no_copia_memoria
compmath run 138

Errores conceptuales frecuentes

  1. Confundir shape (n,) con (n,1) y sumar en el eje equivocado.
  2. Suponer que broadcasting copia memoria y evitarlo por rendimiento.
  3. No anotar los shapes esperados en operaciones encadenadas.

Dónde se usa

Suma de sesgos, normalización por eje, cálculo de matrices de distancias, aplicación de máscaras y prácticamente cualquier operación vectorizada.

Bibliografía de la clase

139 · Einstein summation

Parte 06 · clase 19 de 20 · demostración einsum

En notación de Einstein los índices repetidos se suman, y una sola expresión cubre producto, traza y contracción.

'ij,jk->ik'  producto matricial
'ii->'       traza
'ij,ij->'    producto de Frobenius
'ij->ji'     transposición

Fundamentos

La notación de Einstein, introducida en 1916 para simplificar la escritura de la relatividad general, establece un convenio: los índices que aparecen repetidos se suman. Con esa única regla, operaciones que en notación matricial requieren nombres distintos se escriben de forma uniforme.

La implementación moderna, einsum, hace explícitos los índices de entrada y de salida. 'ij,jk->ik' dice: toma dos tensores con esos índices, suma sobre j —repetido— y deja i y k. Eso es el producto matricial. Cambiar la cadena a 'ij,ij->' da el producto de Frobenius, y a 'ij->ji', la transpuesta.

Su ventaja práctica es doble. Primero, legibilidad: en operaciones con tensores de orden 4 o 5 —habituales en atención multi-cabeza— la cadena de índices dice exactamente qué se contrae con qué, mientras que una secuencia de transpose, reshape y matmul no lo dice. Segundo, optimización: la implementación puede elegir el orden de contracción más barato, igual que el orden de evaluación de la clase 111.

La atención escalada se escribe en una línea con einsum: 'bqd,bkd->bqk' calcula todos los productos punto entre consultas y claves de un lote. Leer esa cadena es leer la operación.

Ejemplo trabajado

Cinco operaciones con la misma notación.

A = [[1,2],[3,4]]      B = [[5,6],[7,8]]

'ij,jk->ik'  producto     [[19,22],[43,50]]
'ii->'       traza de A   5
'ij,ij->ij'  Hadamard     [[5,12],[21,32]]
'ij,ij->'    Frobenius    70
'ij->ji'     transpuesta  [[1,3],[2,4]]

Una sola notación para todas.

Qué ejecuta el laboratorio

Notación de Einstein: índices repetidos se suman.

GrupoSalidas
Resultados numéricos (2)'ii->' (traza), 'ij,ij->' (Frobenius)
Comprobaciones (0)
compmath run 139

Errores conceptuales frecuentes

  1. Repetir un índice que no se quiere sumar.
  2. Olvidar declarar el orden de los índices de salida y obtener una transposición inesperada.
  3. Usar einsum sin comprobar el resultado contra una implementación explícita.

Dónde se usa

Atención multi-cabeza, contracciones tensoriales, operaciones por lotes y cualquier manipulación de tensores de orden alto.

Bibliografía de la clase

140 · Capstone: PCA y compresión de imágenes

Parte 06 · clase 20 de 20 · demostración capstone_pca_compression

Comprimir con SVD es elegir cuántos valores singulares conservar y declarar el error que eso implica.

almacenamiento de rango k: k(m + n + 1) frente a mn
error = √(Σᵢ₌ₖ₊₁ σᵢ²)

Fundamentos

El capstone aplica la truncación SVD a una matriz y mide, para cada rango, tres cantidades: cuántos números hay que guardar, qué error se comete y qué fracción de la energía se retiene. Ese informe es la forma honesta de presentar una compresión: no «comprime bien», sino «con rango 2 el error de Frobenius es X y se retiene el Y % de la energía».

La matriz del ejemplo está construida para que dos de sus filas sean múltiplos de un mismo patrón, así que su rango efectivo es muy bajo y el primer valor singular concentra casi toda la energía. Eso es lo que ocurre en datos reales: las imágenes naturales, las matrices de valoraciones y las activaciones de una red tienen espectros que decaen rápido.

El ahorro se calcula sin ambigüedad. Guardar Aₖ requiere las k columnas de U, los k valores singulares y las k columnas de V: k(m + n + 1) números frente a mn. La compresión es rentable cuando k es pequeño frente a mn/(m+n).

La conexión con LoRA cierra la parte: en lugar de ajustar una matriz de pesos W de millones de parámetros, se le suma un producto BA de rango muy bajo. La justificación teórica es exactamente Eckart-Young: si la actualización necesaria tiene rango intrínsecamente bajo, una aproximación de rango bajo la captura casi por completo.

Ejemplo trabajado

Informe de compresión de una matriz 4×4.

valores singulares: 96.28, 1.87, 0.0004, 0.0000

rango  valores guardados  error Frobenius  energía retenida
  1           9              1.8734            99.98 %
  2          18              0.0004           100.00 %
  3          27              0.0000           100.00 %
  4          36              0.0000           100.00 %

matriz original: 16 valores
rango efectivo (σ > 1e−8): 3

Con rango 1 se guardan 9 números en lugar de 16
y se conserva el 99.98 % de la energía.

Qué ejecuta el laboratorio

Capstone: comprimir una matriz con SVD y medir la pérdida.

GrupoSalidas
Resultados numéricos (2)valores_originales, rango_efectivo
Comprobaciones (0)
compmath run 140

Errores conceptuales frecuentes

  1. Reportar una compresión sin declarar el error cometido.
  2. Elegir k por el número de componentes en lugar de por la energía retenida.
  3. Suponer que un espectro que decae rápido garantiza que la aproximación sirve para la tarea concreta.

Dónde se usa

Compresión de imágenes y modelos, reducción de dimensionalidad, eliminación de ruido, recomendación por factorización y LoRA.

Bibliografía de la clase

Parte 07 — Cálculo diferencial e integral

Nivel universitario · 20 clases · 80 horas · motor part07

Límite, continuidad, derivada, reglas de derivación, Taylor, optimización de una variable, integral definida y teorema fundamental del cálculo.

El cálculo es el estudio del cambio, y su invención independiente por Newton y Leibniz en la década de 1660 es probablemente el acontecimiento más productivo de la historia de la matemática. Esta parte lo reconstruye con una orientación concreta: la derivada es la mejor aproximación lineal local, y la regla de la cadena es el mecanismo entero del entrenamiento de una red neuronal.

Las clases 141 a 143 tratan el límite y la continuidad. El límite responde a una pregunta que la aritmética no puede: qué valor «debería» tener una función donde no está definida. sin(x)/x no existe en cero y sin embargo tiene un límite perfectamente definido, y esa distinción entre valor y límite es la que hace posible definir la derivada.

Las clases 144 a 150 construyen la derivada y sus reglas. La más importante con diferencia es la regla de la cadena (147): derivar una composición es multiplicar las derivadas de sus piezas. Como una red neuronal es una composición de capas (clase 057), su gradiente es un producto de factores, uno por capa. Ese producto explica de golpe el desvanecimiento del gradiente, por qué ReLU funciona mejor que la sigmoide y por qué las conexiones residuales ayudan.

Las clases 151 y 152 introducen Taylor y la optimización de una variable. Taylor cambia una función difícil por un polinomio con error acotado, y es la base de los métodos de segundo orden, del análisis de convergencia y de la mitad de las aproximaciones que usa el análisis numérico. La condición f'(x) = 0 es el caso unidimensional de ∇f = 0, la condición de primer orden de toda la parte 12.

Las clases 153 a 158 desarrollan la integral como acumulación y el teorema fundamental, que establece que derivar e integrar son operaciones inversas. Ese teorema conecta dos ideas que nacieron separadas —la tangente y el área— y es el resultado que da nombre a la asignatura.

El cierre (159 y 160) pasa a la integración numérica, que es como se calcula en la práctica casi cualquier integral: no hay forma cerrada para e^(-x²) y sin embargo su integral es la que define la distribución normal. Trapecio y Simpson introducen el concepto de orden de convergencia, que reaparecerá en toda la parte 11.

Ideas centrales

Por qué importa en IA

Sin regla de la cadena no hay entrenamiento por gradiente; sin Taylor no hay métodos de segundo orden ni análisis de convergencia.

Errores frecuentes de la parte

Glosario de la parte (18 términos)

TérminoDefiniciónClase
AntiderivadaFunción cuya derivada es la dada. Está determinada salvo una constante aditiva.155
Continuidadf(a) existe, el límite existe y coinciden. Continua no implica derivable.143
Criterio de la segunda derivadaEn un punto crítico, f'' > 0 indica mínimo y f'' < 0 máximo.152
Derivación implícitaDerivar una relación F(x,y)=0 sin despejar y, tratando y como función de x.150
DerivadaLímite del cociente incremental. Es la pendiente de la mejor aproximación lineal local.144
Diferencia central(f(x+h) − f(x−h))/2h. Aproxima la derivada con error O(h²), un orden mejor que la diferencia adelantada.144
IndeterminaciónForma como 0/0 o ∞/∞ que no determina el límite por sí sola; es de la expresión, no del límite.142
Integración por partes∫u dv = uv − ∫v du. Es la regla del producto leída al revés.158
Integral definidaÁrea con signo bajo la curva entre dos límites. Es aditiva y cambia de signo al invertir la orientación.154
LímiteValor al que se acerca una función cerca de un punto, exista o no la función en él.141
Orden de convergenciaExponente p tal que el error de un método cae como O(hᵖ). Trapecio es 2, Simpson es 4.159
Punto críticoPunto donde la derivada se anula. Puede ser máximo, mínimo o inflexión.152
Regla de la cadena(f∘g)' = f'(g(x))·g'(x). Es el mecanismo completo de backpropagation.147
Regla del producto(fg)' = f'g + fg'. No es el producto de las derivadas.146
Serie de TaylorAproximación polinómica de una función alrededor de un punto, con error acotado por el término siguiente.151
Suma de RiemannAproximación de una integral por rectángulos. Converge a la integral al refinar la partición.153
SustituciónCambio de variable en una integral. Es la regla de la cadena leída al revés.157
Teorema fundamental del cálculoDerivar la integral de una función devuelve la función. Derivación e integración son inversas.156

Bibliografía de la parte

141 · Intuición de límite

Parte 07 · clase 1 de 20 · demostración limit_intuition

Una función puede no estar definida en un punto y tener límite perfectamente definido en él.

lím(x→0) sin(x)/x = 1
el límite existe si los laterales coinciden

Fundamentos

El límite responde a una pregunta que la evaluación directa no puede: ¿a qué valor se acerca f(x) cuando x se acerca a a, sin llegar nunca? Esa exclusión del punto es la clave: el límite no depende de f(a), y por eso existe aunque la función no esté definida allí.

sin(x)/x en cero es el ejemplo canónico. Sustituir da 0/0, que no es un número. Pero al acercarse, los valores tienden inequívocamente a 1, y ese límite es el que hace que la derivada del seno sea el coseno. Toda la trigonometría del cálculo descansa en él.

La definición formal —para todo ε existe un δ— tiene el orden de cuantificadores de la clase 083 y no es un capricho: δ puede depender de ε, y en la mayoría de los casos depende. Cambiar el orden daría la definición de continuidad uniforme, una condición estrictamente más fuerte.

Para que el límite exista, los límites laterales deben coincidir. Una función con un salto tiene ambos laterales pero distintos, y por tanto no tiene límite en ese punto. Comprobar los dos lados numéricamente, como hace el laboratorio, es la forma práctica de detectar discontinuidades.

Ejemplo trabajado

Acercarse a cero por ambos lados.

f(x) = sin(x)/x       (no definida en x = 0)

x        f(x)
1.0      0.841471
0.1      0.998334
0.01     0.999983
0.001    0.99999983
1e−6     0.9999999999998

límite = 1
error en 1e−6: 1.67e−13

Por la izquierda: f(−1e−6) = 0.9999999999998
Los laterales coinciden → el límite existe    ✓

Qué ejecuta el laboratorio

sin(x)/x cuando x→0: indeterminado en el punto, definido en el límite.

GrupoSalidas
Resultados numéricos (3)limite, error_en_1e-6, por_la_izquierda
Comprobaciones (2)definida_en_0, limites_laterales_coinciden
compmath run 141

Errores conceptuales frecuentes

  1. Concluir que no hay límite porque la función no está definida en el punto.
  2. Comprobar el límite por un solo lado.
  3. Usar valores de x demasiado pequeños y confundir el límite con el error de redondeo.

Dónde se usa

Definición de derivada e integral, análisis de convergencia de sucesiones y series, comportamiento asintótico de algoritmos y estabilidad de métodos numéricos.

Bibliografía de la clase

142 · Límites algebraicos

Parte 07 · clase 2 de 20 · demostración algebraic_limits

Una indeterminación es una propiedad de la expresión, no del límite: casi siempre se resuelve reescribiéndola.

(x²−4)/(x−2) = x+2  para x ≠ 2
lím(x→2) = 4

Fundamentos

Formas como 0/0 o ∞/∞ se llaman indeterminadas porque no determinan el límite: hay ejemplos con esa forma cuyo límite es 0, otros con límite infinito y otros con cualquier valor intermedio. La forma no basta; hay que analizar la expresión concreta.

La técnica básica es reescribir. En (x²−4)/(x−2), factorizar el numerador permite cancelar el factor (x−2), que era el causante de la indeterminación. La función resultante, x+2, coincide con la original en todos los puntos salvo en x = 2, donde la original no existe. Como el límite ignora el punto, el límite de ambas es el mismo.

Ese es el patrón general: la indeterminación aparece porque la expresión escrita esconde una cancelación. Racionalizar, factorizar, dividir por la potencia dominante o usar una identidad son las técnicas habituales. Cuando ninguna funciona, L'Hôpital deriva numerador y denominador por separado —pero conviene usarla como último recurso, porque oculta la estructura del problema.

Hay una conexión directa con la parte 01: la cancelación catastrófica (clase 032) es el equivalente numérico de esta situación. La expresión √(x²+1) − x no es indeterminada en el sentido analítico, pero sufre el mismo problema estructural —una resta que anula dígitos— y se resuelve con la misma técnica: reescribirla.

Ejemplo trabajado

Resolver una indeterminación 0/0 por factorización.

f(x) = (x² − 4)/(x − 2)

En x = 2:  (4−4)/(2−2) = 0/0        indeterminado

Factorizar: (x−2)(x+2)/(x−2) = x+2   para x ≠ 2

lím(x→2) f(x) = 4

Comprobación numérica:
  f(2.0001) = 4.0001
  f(1.9999) = 3.9999
  error respecto a 4: 1e−4          ✓

Qué ejecuta el laboratorio

Indeterminación 0/0 resuelta por factorización.

GrupoSalidas
Resultados numéricos (4)limite_en_2, f(2.0001), f(1.9999), error
Comprobaciones (0)
compmath run 142

Errores conceptuales frecuentes

  1. Concluir que 0/0 significa que el límite no existe.
  2. Cancelar el factor sin advertir que la función original sigue sin estar definida en el punto.
  3. Aplicar L'Hôpital a formas que no son indeterminadas.

Dónde se usa

Cálculo de derivadas por definición, análisis asintótico y reescritura de expresiones numéricamente inestables.

Bibliografía de la clase

143 · Continuidad

Parte 07 · clase 3 de 20 · demostración continuity

Continuidad exige tres condiciones; ser continua no implica ser derivable.

f continua en a ⟺ f(a) existe, lím f existe, y coinciden
derivable ⟹ continua, pero no al revés

Fundamentos

La continuidad es la ausencia de saltos, y su definición formal descompone esa idea en tres requisitos: que la función esté definida en el punto, que el límite exista y que ambos coincidan. Que sean tres y no uno permite clasificar las discontinuidades según cuál falla.

Una discontinuidad removible es aquella en la que el límite existe pero no coincide con el valor (o el valor no existe). Se «arregla» redefiniendo la función en ese punto, de ahí el nombre. Una discontinuidad de salto tiene límites laterales distintos y no se puede arreglar de ninguna forma.

La implicación «derivable implica continua» es cierta y su recíproca es falsa. |x| es continua en cero y no derivable, porque las pendientes laterales son −1 y +1. Ese contraejemplo tiene consecuencias prácticas: ReLU (clase 059) es exactamente ese caso, y su no derivabilidad en cero se resuelve por convenio.

Weierstrass construyó en 1872 una función continua en todo punto y derivable en ninguno, demostrando que la intuición geométrica —«una curva sin saltos tiene tangente casi siempre»— es falsa. Las trayectorias del movimiento browniano tienen esa misma propiedad, hecho relevante en la parte 17 al tratar ecuaciones diferenciales estocásticas.

Ejemplo trabajado

Dos discontinuidades y una no derivabilidad.

Salto:      f(x) = 0 si x<1, 1 si x≥1
  lím izquierda = 0,  lím derecha = 1
  no coinciden → no continua                ✗

Removible:  g(x) = (x²−1)/(x−1) con g(1) = 5
  límite = 2,  valor asignado = 5
  no coinciden → no continua                ✗
  se arregla redefiniendo g(1) = 2          ✓

Continua no derivable: |x| en 0
  continua                                  ✓
  pendiente izquierda −1, derecha +1        ✗ no derivable

Qué ejecuta el laboratorio

Los tres requisitos de continuidad en un punto.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (1)derivable_implica_continua
compmath run 143

Errores conceptuales frecuentes

  1. Comprobar solo el límite y no el valor de la función en el punto.
  2. Deducir derivabilidad a partir de continuidad.
  3. Suponer que toda discontinuidad se puede eliminar redefiniendo la función.

Dónde se usa

Validez de teoremas que exigen continuidad, activaciones no derivables como ReLU, funciones de pérdida por tramos y detección de saltos en series temporales.

Bibliografía de la clase

144 · Derivada como tasa de cambio

Parte 07 · clase 4 de 20 · demostración derivative_as_rate

La derivada es la pendiente de la mejor recta que aproxima la función cerca de un punto.

f'(x) = lím(h→0) (f(x+h) − f(x))/h
diferencia central: (f(x+h) − f(x−h))/2h, error O(h²)

Fundamentos

La derivada nace de una pregunta física —¿cuál es la velocidad instantánea?— y se resuelve con un límite: la pendiente de la secante entre dos puntos, cuando esos puntos se juntan. El resultado es la pendiente de la tangente, y esa recta es la mejor aproximación lineal de la función cerca del punto.

Esa lectura, «mejor aproximación lineal», es más útil que «pendiente» porque se generaliza. En varias variables, la derivada es el gradiente y define el plano tangente (clase 166); en funciones vectoriales, es el Jacobiano. Siempre es lo mismo: el objeto lineal que mejor aproxima localmente.

Numéricamente, la diferencia central es superior a la adelantada. Su error es O(h²) en lugar de O(h), porque los términos de orden impar del desarrollo de Taylor se cancelan. Con h = 10⁻⁶, la central da unos 12 dígitos correctos y la adelantada unos 6.

Pero reducir h indefinidamente no mejora: por debajo de cierto valor, el error de redondeo de la resta —cancelación catastrófica, clase 032— domina sobre el error de truncamiento. Existe un h óptimo, aproximadamente √ε ≈ 1.5·10⁻⁸ para la central, y la clase 221 lo mide.

Ejemplo trabajado

Derivada de x² en x = 3 por varios caminos.

cociente incremental (f(3+h)−f(3))/h:
  h = 1.0     →  7.0
  h = 0.1     →  6.1
  h = 0.01    →  6.01
  h = 1e−4    →  6.0001

derivada exacta (2x): 6.0
diferencia central con h = 1e−6: 6.0000000000
error de la central: 8.8e−11

La central es dos órdenes mejor que la adelantada.

Qué ejecuta el laboratorio

Derivada como límite del cociente incremental.

GrupoSalidas
Resultados numéricos (4)punto, derivada_exacta_2x, diferencia_central, error_central
Comprobaciones (1)la_central_es_de_orden_h²
compmath run 144

Errores conceptuales frecuentes

  1. Usar h demasiado pequeño y amplificar el error de redondeo.
  2. Usar la diferencia adelantada cuando la central cuesta lo mismo y es mejor.
  3. Derivar en un punto donde la función no es continua.

Dónde se usa

Verificación de gradientes analíticos (gradient checking), análisis de sensibilidad, métodos numéricos y cualquier cálculo de tasa instantánea de cambio.

Bibliografía de la clase

145 · Reglas de derivación

Parte 07 · clase 5 de 20 · demostración derivative_rules

Las reglas de derivación se deducen del límite una vez y se aplican mecánicamente después.

(xⁿ)' = n·xⁿ⁻¹
(f + g)' = f' + g'
(c·f)' = c·f'
(c)' = 0

Fundamentos

Las reglas básicas convierten la derivación en un procedimiento mecánico. Cada una se demuestra una vez desde la definición por límite y luego se aplica sin volver a pensar en límites, que es exactamente el propósito de tener reglas.

La linealidad —la derivada de una suma es la suma de las derivadas, y las constantes salen fuera— es la propiedad que hace que la derivación sea un operador lineal. Eso importa más de lo que parece: permite derivar término a término cualquier polinomio, cualquier serie de potencias y cualquier combinación lineal de funciones.

La regla de la potencia, (xⁿ)' = n·xⁿ⁻¹, vale para todo exponente real, no solo natural. Su demostración para exponentes naturales usa el binomio de Newton; para exponentes reales necesita la definición exponencial de la clase 148.

La derivada de una constante es cero, y esa es la razón por la que la antiderivada no es única (clase 155): sumar cualquier constante no cambia la derivada. En optimización, ese hecho significa que desplazar la función objetivo verticalmente no cambia dónde está su mínimo, propiedad que se usa para estabilizar cálculos.

Ejemplo trabajado

Cuatro derivadas verificadas numéricamente.

función        punto   numérica    analítica   coinciden
x³              2      12.000000   3x² = 12       ✓
5x              7       5.000000   5              ✓
x³ + 5x         2      17.000000   3x²+5 = 17     ✓
constante 4     1       0.000000   0              ✓

Linealidad verificada:
  (x³ + 5x)' = (x³)' + (5x)' = 12 + 5 = 17       ✓

Qué ejecuta el laboratorio

Reglas de potencia, suma y constante verificadas numéricamente.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (0)
compmath run 145

Errores conceptuales frecuentes

  1. Aplicar la regla de la potencia a exponentes que dependen de x: (xˣ)' no es x·xˣ⁻¹.
  2. Suponer que la derivada de un producto es el producto de las derivadas.
  3. Olvidar que la derivada de una constante es cero, no la constante.

Dónde se usa

Derivación de polinomios y modelos lineales, cálculo de gradientes analíticos y verificación de implementaciones de autodiferenciación.

Bibliografía de la clase

146 · Regla del producto y cociente

Parte 07 · clase 6 de 20 · demostración product_quotient_rule

La derivada de un producto no es el producto de las derivadas.

(fg)' = f'g + fg'
(f/g)' = (f'g − fg')/g²

Fundamentos

La regla del producto es contraintuitiva la primera vez y su demostración explica por qué: al incrementar x, cambian tanto f como g, y el cambio total del producto tiene dos contribuciones —una por cada factor— más un término de segundo orden que se anula en el límite.

Geométricamente, si f y g son los lados de un rectángulo, fg es su área. Al incrementar ambos lados, el área crece en dos franjas —f'g y fg'— más una esquina diminuta que es despreciable. Esa imagen hace la regla memorable sin memorizarla.

La regla del cociente se deduce de la del producto aplicada a f · g⁻¹, y su forma —numerador con resta, denominador al cuadrado— hay que respetarla en el orden: f'g − fg' y no al revés. Invertir el orden cambia el signo, error frecuente y silencioso.

En machine learning estas reglas aparecen cada vez que una función de pérdida es un producto o un cociente de términos. La derivada de la softmax, del cociente de verosimilitudes y de las puertas de una LSTM (clase 315) usan la del producto; la derivada de la sigmoide, σ' = σ(1−σ), se obtiene con la del cociente.

Ejemplo trabajado

Producto y cociente de x² y sin(x) en x = 1.3.

f = x²,  g = sin(x),  x = 1.3

(fg)' por la regla:  2x·sin(x) + x²·cos(x)
                  =  2.5057 + 0.4518 = 2.9575
(fg)' numérica    =  2.9575                    ✓

(f/g)' por la regla: (2x·sin x − x²·cos x)/sin²x
                  =  2.2160
(f/g)' numérica    =  2.2160                   ✓

ERROR común: f'·g' = 2x·cos(x) = 0.6952  ✗ no es la derivada

Qué ejecuta el laboratorio

Regla del producto y del cociente.

GrupoSalidas
Resultados numéricos (5)x, (fg)'_numerica, (fg)'_regla, (f/g)'_numerica, (f/g)'_regla
Comprobaciones (2)producto_ok, cociente_ok
compmath run 146

Errores conceptuales frecuentes

  1. Escribir (fg)' = f'g'.
  2. Invertir el orden de la resta en la regla del cociente.
  3. Olvidar elevar al cuadrado el denominador.

Dónde se usa

Derivada de la sigmoide y de la softmax, puertas de LSTM y GRU, cocientes de verosimilitud y cualquier pérdida con términos multiplicativos.

Bibliografía de la clase

147 · Regla de la cadena

Parte 07 · clase 7 de 20 · demostración chain_rule

La regla de la cadena es el mecanismo completo de backpropagation: derivar una composición es multiplicar factores.

(f∘g)'(x) = f'(g(x)) · g'(x)
cadena de L funciones: producto de L derivadas

Fundamentos

La regla de la cadena dice que la derivada de una composición es el producto de las derivadas de sus piezas, evaluadas en los puntos correctos. La intuición de tasas encadenadas lo hace evidente: si y cambia 3 veces más rápido que u, y u cambia 2 veces más rápido que x, entonces y cambia 6 veces más rápido que x.

Esta clase es la más importante del programa para quien quiera entender deep learning. Una red de L capas es una composición de L funciones (clase 057), así que su gradiente respecto a los parámetros de la primera capa es un producto de L factores. Ese producto explica de golpe tres fenómenos que suelen presentarse por separado:

Si cada factor es menor que 1, el producto tiende a cero exponencialmente: el gradiente se desvanece y las primeras capas dejan de aprender (clase 314). Si cada factor es mayor que 1, el producto diverge: el gradiente explota. Y como la derivada de ReLU vale exactamente 1 en el semieje positivo, sustituir la sigmoide —cuya derivada máxima es 0.25— por ReLU evita que el producto se atenúe.

La regla se generaliza a varias variables como una suma de productos sobre todos los caminos del grafo de cómputo (clase 167), y su implementación eficiente en modo reverso es la autodiferenciación (clase 179). Todo lo demás en el entrenamiento de una red es ingeniería alrededor de esta regla.

Ejemplo trabajado

Derivar sin(x²+1) y una cadena de tres niveles.

f(u) = sin(u),  g(x) = x²+1,  x = 1.5

g(x) = 3.25
df/du en g(x) = cos(3.25) = −0.9940
dg/dx = 2x = 3.0

producto: −0.9940 × 3.0 = −2.9821
derivada numérica:        −2.9821          ✓

Cadena de tres: e^(sin(x²)) en x = 0.8
  derivada = 2.0871

En una red de L capas: el gradiente es un producto de L factores.

Qué ejecuta el laboratorio

La regla de la cadena: el mecanismo entero de backpropagation.

GrupoSalidas
Resultados numéricos (6)x, df/du_en_g(x), dg/dx, producto_de_la_cadena, derivada_numerica, cadena_de_3_niveles
Comprobaciones (1)coinciden
compmath run 147

Errores conceptuales frecuentes

  1. Evaluar f' en x en lugar de en g(x).
  2. Olvidar multiplicar por la derivada interna.
  3. No reconocer que una expresión es una composición y derivarla como si fuera simple.

Dónde se usa

Backpropagation, autodiferenciación, cambio de variable en integrales, propagación de incertidumbre y análisis de gradientes que se desvanecen o explotan.

Bibliografía de la clase

148 · Derivadas de exponenciales y logaritmos

Parte 07 · clase 8 de 20 · demostración exp_log_derivatives

e^x es la única función que es su propia derivada, y por eso e aparece en todas partes.

(eˣ)' = eˣ
(ln x)' = 1/x
(aˣ)' = aˣ · ln a

Fundamentos

La función exponencial e^x tiene una propiedad que ninguna otra función no nula comparte: es su propia derivada. Ese hecho define el número e, y es la razón por la que aparece en toda ecuación que modele crecimiento proporcional a la cantidad presente.

Con otra base aparece un factor: (aˣ)' = aˣ·ln a. Solo cuando a = e ese factor vale 1. Es el mismo fenómeno que con los radianes (clase 062): existe una elección de unidad o de base que elimina las constantes de conversión, y esa elección es la «natural».

La derivada del logaritmo, 1/x, es igual de notable: una función trascendente cuya derivada es una función racional simple. De ahí que ∫dx/x = ln|x|, la única excepción a la regla de integración de potencias.

En machine learning estas dos derivadas aparecen constantemente. La derivada de la sigmoide se calcula con la de la exponencial; el gradiente de la cross-entropy, con la del logaritmo; y la combinación de ambas produce la simplificación más elegante del área: el gradiente de sigmoide más entropía cruzada es simplemente (p − y), sin términos residuales (clase 305).

Ejemplo trabajado

Las tres derivadas verificadas.

x = 2

d(eˣ)/dx numérica = 7.389056
e²                = 7.389056                ✓ es su propia derivada

d(ln x)/dx numérica = 0.500000
1/x = 0.5                                   ✓

d(3ˣ)/dx numérica = 9.887511
3²·ln 3 = 9 × 1.098612 = 9.887511           ✓ aparece el factor ln a

Qué ejecuta el laboratorio

e^x es su propia derivada; log tiene derivada 1/x.

GrupoSalidas
Resultados numéricos (6)d(e^x)/dx_numerica, e^x, d(ln x)/dx_numerica, 1/x, d(a^x)/dx_con_a=3, a^x·ln(a)
Comprobaciones (1)es_su_propia_derivada
compmath run 148

Errores conceptuales frecuentes

  1. Escribir (aˣ)' = x·aˣ⁻¹: esa es la regla de la potencia, no de la exponencial.
  2. Olvidar el factor ln a con bases distintas de e.
  3. Derivar ln x sin restringir el dominio a x > 0.

Dónde se usa

Sigmoide y softmax, cross-entropy, decaimiento exponencial del learning rate, interés compuesto y toda ecuación diferencial de crecimiento proporcional.

Bibliografía de la clase

149 · Derivadas trigonométricas

Parte 07 · clase 9 de 20 · demostración trig_derivatives

Las derivadas trigonométricas forman un ciclo de periodo cuatro.

(sin x)' = cos x
(cos x)' = −sin x
(tan x)' = sec²x = 1/cos²x

Fundamentos

Derivar el seno da el coseno, derivar el coseno da menos el seno, y repitiendo se vuelve al principio tras cuatro pasos. Ese ciclo de periodo cuatro tiene una consecuencia elegante: la cuarta derivada de sin x es sin x, igual que e^x es su propia primera derivada.

Esa analogía no es casual. La fórmula de Euler, e^(ix) = cos x + i·sin x, unifica ambas familias: las funciones trigonométricas son exponenciales de argumento imaginario. Derivar e^(ix) multiplica por i, y multiplicar por i es girar 90° en el plano complejo, que es exactamente el desplazamiento de fase entre seno y coseno.

El requisito ineludible es que el argumento esté en radianes (clase 062). En grados, cada derivada arrastraría un factor π/180, y tras cuatro derivaciones el factor sería (π/180)⁴ ≈ 9·10⁻⁹. Los errores de unidad angular no lanzan excepción: producen resultados escalados por un factor que parece arbitrario.

La derivada de la tangente, sec²x, diverge donde el coseno se anula. Esa singularidad es real y hay que manejarla: en robótica produce el «bloqueo de cardán», y en cualquier cálculo con ángulos cerca de 90° conviene reformular usando seno y coseno directamente.

Ejemplo trabajado

El ciclo de derivadas en x = 0.7.

d(sin)/dx  numérica = 0.764842   cos(0.7) = 0.764842    ✓
d(cos)/dx  numérica = −0.644218  −sin(0.7) = −0.644218  ✓
d(tan)/dx  numérica = 1.703879   sec²(0.7) = 1.703879   ✓

Ciclo:  sin → cos → −sin → −cos → sin
La cuarta derivada de sin es sin                        ✓

Requisito: argumento en RADIANES

Qué ejecuta el laboratorio

Derivadas trigonométricas y su ciclo de periodo 4.

GrupoSalidas
Resultados numéricos (6)d(sin)/dx, cos(x), d(cos)/dx, -sin(x), d(tan)/dx, sec²(x)
Comprobaciones (1)cuarta_derivada_de_sin_es_sin
compmath run 149

Errores conceptuales frecuentes

  1. Derivar funciones trigonométricas con el argumento en grados.
  2. Olvidar el signo negativo en la derivada del coseno.
  3. Evaluar la derivada de la tangente cerca de 90° sin controlar la singularidad.

Dónde se usa

Análisis de señales, positional encoding, oscilaciones y ondas, cinemática y cualquier modelo periódico.

Bibliografía de la clase

150 · Derivación implícita

Parte 07 · clase 10 de 20 · demostración implicit_differentiation

La derivación implícita permite derivar una relación sin despejar una variable en función de la otra.

x² + y² = r²  ⟹  dy/dx = −x/y
derivar ambos lados tratando y como función de x

Fundamentos

No toda relación entre x e y se puede despejar. x² + y² = 25 define una circunferencia, y despejar y obliga a elegir una de las dos ramas. La derivación implícita evita el problema: se deriva la ecuación entera respecto a x, tratando y como función de x y aplicando la regla de la cadena a cada término que la contenga.

Del término sale 2y·(dy/dx), y de ahí se despeja dy/dx. El resultado, −x/y, depende de ambas coordenadas, lo que es coherente: la pendiente de la tangente a una circunferencia depende de en qué punto se esté.

La verificación geométrica es bonita: la tangente a una circunferencia es perpendicular al radio en ese punto. La pendiente del radio es y/x y la de la tangente es −x/y, y su producto es −1, que es exactamente la condición de perpendicularidad de la clase 069. El laboratorio comprueba esa relación.

La técnica se generaliza al caso multivariable como el teorema de la función implícita, y aparece en machine learning en la diferenciación implícita de capas definidas como la solución de un problema de optimización —modelos de equilibrio profundo, capas de optimización diferenciables—, donde no hay fórmula explícita que derivar.

Ejemplo trabajado

Tangente a la circunferencia de radio 5 en (3,4).

x² + y² = 25

Derivar: 2x + 2y·(dy/dx) = 0
Despejar: dy/dx = −x/y = −3/4 = −0.75

Verificación numérica con y = √(25−x²):
  dy/dx en x=3 → −0.750000                  ✓

Recta tangente: y − 4 = −0.75(x − 3)

Perpendicularidad con el radio:
  pendiente del radio = 4/3
  (−3/4)·(4/3) = −1                         ✓

Qué ejecuta el laboratorio

Derivación implícita sobre la circunferencia x²+y²=25.

GrupoSalidas
Resultados numéricos (2)dy/dx_implicita, dy/dx_numerica
Comprobaciones (2)coinciden, tangente_perpendicular_al_radio
compmath run 150

Errores conceptuales frecuentes

  1. Olvidar multiplicar por dy/dx al derivar términos que contienen y.
  2. Despejar y antes de derivar cuando la relación no es una función.
  3. Evaluar dy/dx en un punto donde y = 0: la tangente es vertical.

Dónde se usa

Curvas definidas implícitamente, teorema de la función implícita, capas de optimización diferenciables y modelos de equilibrio profundo.

Bibliografía de la clase

151 · Aproximación lineal y Taylor

Parte 07 · clase 11 de 20 · demostración taylor_approximation

Taylor cambia una función difícil por un polinomio con error acotado por el primer término omitido.

f(x) ≈ Σ f⁽ⁿ⁾(a)(x−a)ⁿ/n!
error del grado n ≤ máx|f⁽ⁿ⁺¹⁾|·|x−a|ⁿ⁺¹/(n+1)!
aproximación lineal: f(a) + f'(a)(x−a)

Fundamentos

La serie de Taylor aproxima una función por un polinomio construido con sus derivadas en un punto. El grado 1 es la recta tangente; el grado 2 añade curvatura; cada grado adicional captura más estructura local. Y lo más útil: el error está acotado, no solo es «pequeño».

Esa cota es lo que convierte la aproximación en una herramienta rigurosa. Saber que el error del polinomio de grado n no supera máx|f⁽ⁿ⁺¹⁾|·|x−a|ⁿ⁺¹/(n+1)! permite decidir cuántos términos hacen falta para una precisión dada, en lugar de añadir términos hasta que «parezca suficiente».

Taylor es el motor de buena parte del análisis numérico. El orden de error de la diferencia central (clase 144), el de la regla del trapecio (clase 229) y el del método de Euler (clase 236) se deducen todos truncando un desarrollo de Taylor y contando potencias de h. Cuando la parte 11 diga «error O(h²)», estará diciendo «el desarrollo de Taylor se truncó tras el término lineal».

En optimización, el desarrollo de segundo orden es lo que da el método de Newton: se aproxima la función por una parábola y se salta a su vértice. Y en machine learning, la linealización de primer orden es la que justifica que un paso pequeño en dirección contraria al gradiente reduzca la función.

Ejemplo trabajado

Aproximar e^0.5 con polinomios de grado creciente.

valor exacto: 1.6487212707

grado  aproximación      error
  0    1.0000000000      6.49e−01
  1    1.5000000000      1.49e−01
  2    1.6250000000      2.37e−02
  3    1.6458333333      2.89e−03
  4    1.6484375000      2.84e−04
  5    1.6486979167      2.34e−05

Cota teórica del error de grado 5:
  e^0.5 · 0.5⁶/6! = 3.58e−05      ✓ acota el error real

Qué ejecuta el laboratorio

Taylor de e^x en 0: el error cae con el grado.

GrupoSalidas
Resultados numéricos (3)valor_exacto, aproximacion_lineal, cota_de_error_grado_5
Comprobaciones (0)
compmath run 151

Errores conceptuales frecuentes

  1. Usar Taylor lejos del punto de desarrollo sin comprobar la cota de error.
  2. Suponer que añadir términos siempre mejora: fuera del radio de convergencia, empeora.
  3. Olvidar el factorial en el denominador.

Dónde se usa

Métodos numéricos y sus órdenes de error, método de Newton, linealización de modelos, análisis de convergencia y funciones especiales en bibliotecas matemáticas.

Bibliografía de la clase

152 · Máximos y mínimos

Parte 07 · clase 12 de 20 · demostración extrema

La derivada nula señala un punto crítico; el signo de la segunda derivada decide de qué tipo es.

condición de primer orden: f'(x) = 0
f''(x) > 0 ⟹ mínimo local; f''(x) < 0 ⟹ máximo local
f''(x) = 0 ⟹ el criterio no decide

Fundamentos

Los extremos locales de una función derivable ocurren donde la derivada se anula, porque en un máximo o un mínimo la tangente es horizontal. Esa es la condición de primer orden, y es necesaria pero no suficiente: tiene derivada nula en cero y no tiene ahí ni máximo ni mínimo.

La segunda derivada resuelve la ambigüedad en la mayoría de los casos: positiva indica que la función se curva hacia arriba (mínimo) y negativa que se curva hacia abajo (máximo). Cuando vale cero, el criterio no decide y hay que examinar derivadas superiores o el comportamiento a ambos lados.

Un punto crítico es local, no global. Encontrar todos los mínimos locales de una función arbitraria es un problema difícil, y esa dificultad es exactamente la que hace que el entrenamiento de redes neuronales sea un problema no convexo. En una función convexa (clase 242), todo mínimo local es global y el problema se simplifica radicalmente.

La generalización a varias variables sustituye f' = 0 por ∇f = 0 y el signo de f'' por el carácter definido positivo del Hessiano (clase 169). La lógica no cambia: primera derivada para localizar, segunda para clasificar.

Ejemplo trabajado

Puntos críticos de x³ − 3x.

f(x) = x³ − 3x,   f'(x) = 3x² − 3

f'(x) = 0  →  x = ±1

x = −1:  f = 2,   f'' = 6x = −6 < 0  →  MÁXIMO local
x =  1:  f = −2,  f'' = 6  > 0       →  MÍNIMO local

Extremos globales en ℝ: no existen
  f no está acotada: f(x) → ±∞

Qué ejecuta el laboratorio

Máximos y mínimos por derivada y criterio de la segunda derivada.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (0)
compmath run 152

Errores conceptuales frecuentes

  1. Confundir punto crítico con extremo.
  2. Olvidar comprobar la frontera del dominio al buscar extremos globales.
  3. Concluir cuando f'' = 0 en lugar de examinar el entorno.

Dónde se usa

Optimización de una variable, condición de primer orden en la parte 12, ajuste de hiperparámetros y análisis de curvas de aprendizaje.

Bibliografía de la clase

153 · Integral como acumulación

Parte 07 · clase 13 de 20 · demostración integral_as_accumulation

La integral es el límite de sumas de rectángulos, y la regla del punto medio converge como O(h²).

∫f ≈ Σ f(xᵢ*)·Δx
punto medio: error O(h²)

Fundamentos

Integrar es acumular. La suma de Riemann aproxima el área bajo una curva con rectángulos, y al refinar la partición esa suma converge a la integral. La definición formal exige que el límite sea el mismo independientemente de cómo se elija el punto de evaluación dentro de cada subintervalo, y esa independencia es lo que define a las funciones integrables.

La elección del punto afecta a la velocidad de convergencia aunque no al límite. Evaluar en el extremo izquierdo o derecho da error O(h); evaluar en el punto medio da O(h²), porque los errores por exceso y por defecto se compensan en cada subintervalo. Es una mejora gratuita: el mismo número de evaluaciones, un orden más de precisión.

Esa cancelación por simetría es la misma idea que hace superior la diferencia central (clase 144). Aparece una y otra vez en análisis numérico: aprovechar la simetría para cancelar términos de error de orden impar.

Riemann formalizó esta construcción en 1854. Lebesgue la generalizó en 1902 con una integral que maneja funciones mucho más patológicas y que es la base de la teoría de la probabilidad moderna. Para las funciones de este programa, ambas coinciden.

Ejemplo trabajado

Integrar x² en [0,1] por punto medio.

valor exacto: 1/3 = 0.333333...

n      suma           error
4      0.33203125     1.30e−03
16     0.33325195     8.14e−05
64     0.33333206     5.09e−06
256    0.33333333     3.18e−07

Al cuadruplicar n, el error se divide por 16 → O(h²)   ✓

Qué ejecuta el laboratorio

Sumas de Riemann convergiendo a la integral.

GrupoSalidas
Resultados numéricos (1)valor_exacto_1/3
Comprobaciones (0)
compmath run 153

Errores conceptuales frecuentes

  1. Usar el extremo del intervalo cuando el punto medio cuesta lo mismo y converge mejor.
  2. Suponer que más subintervalos siempre mejoran: el error de redondeo acaba dominando.
  3. Aplicar sumas de Riemann a funciones con singularidades sin tratarlas.

Dónde se usa

Cuadratura numérica, cálculo de probabilidades por integración, acumulación de señales y cualquier magnitud que se obtenga sumando contribuciones infinitesimales.

Bibliografía de la clase

154 · Integral definida

Parte 07 · clase 14 de 20 · demostración definite_integral

La integral definida es aditiva en el intervalo y cambia de signo al invertir la orientación.

∫ₐᵇ + ∫_b^c = ∫ₐ^c
∫ₐᵇ = −∫_bₐ
valor medio = (1/(b−a))·∫ₐᵇ f

Fundamentos

La integral definida representa el área con signo: las regiones bajo el eje cuentan negativo. Esa convención es la que permite que la integral de una función que oscila alrededor de cero sea pequeña, y es la que hace consistente el teorema fundamental.

Las propiedades estructurales son tres. La aditividad en el intervalo permite partir un dominio en trozos y sumar. La orientación invierte el signo al intercambiar los límites, lo que hace que ∫ₐᵃ = 0 sea consistente. Y la linealidad permite integrar término a término, igual que se derivaba.

El valor medio de una función en un intervalo es su integral dividida por la longitud, y es la altura del rectángulo con la misma área. El teorema del valor medio integral garantiza que la función alcanza ese valor en algún punto del intervalo, si es continua.

Esa noción es la que conecta con probabilidad: la esperanza de una variable aleatoria continua es la integral de x·f(x), es decir, un promedio ponderado por la densidad. Y es la que aparece en machine learning como el promedio de una pérdida sobre una distribución, que en la práctica se estima con Monte Carlo (clase 198).

Ejemplo trabajado

Propiedades de la integral de x².

∫₀¹ x² = 0.333333
∫₁² x² = 2.333333
∫₀² x² = 2.666667

Aditividad: 0.333333 + 2.333333 = 2.666667      ✓

Orientación: ∫₁⁰ x² = −0.333333                 ✓
Intervalo nulo: ∫₀⁰ x² = 0                      ✓

Valor medio en [0,2]: 2.666667/2 = 1.333333

Qué ejecuta el laboratorio

Propiedades de la integral definida.

GrupoSalidas
Resultados numéricos (6)∫₀¹x², ∫₁²x², ∫₀²x², ∫₁⁰x² (orientación), ∫₀⁰x², valor_medio_en_[0,2]
Comprobaciones (1)aditividad
compmath run 154

Errores conceptuales frecuentes

  1. Olvidar el signo al intercambiar los límites de integración.
  2. Interpretar la integral como área geométrica cuando la función toma valores negativos.
  3. Confundir el valor medio de la función con la media de sus valores en unos puntos.

Dónde se usa

Esperanza de variables continuas, trabajo y energía en física, acumulación de métricas y área bajo la curva ROC.

Bibliografía de la clase

155 · Antiderivadas

Parte 07 · clase 15 de 20 · demostración antiderivatives

La antiderivada está determinada salvo una constante, y esa constante desaparece en la integral definida.

F' = f  ⟹  (F + C)' = f
∫ₐᵇ f = F(b) − F(a),  independiente de C

Fundamentos

Una antiderivada de f es cualquier función cuya derivada sea f. Como la derivada de una constante es cero (clase 145), sumar cualquier constante a una antiderivada da otra antiderivada. La familia completa es F(x) + C, y esa C es la razón por la que la integral indefinida se escribe siempre con ella.

En la integral definida la constante desaparece: al restar F(b) − F(a), las constantes se cancelan. Por eso el valor de una integral definida no depende de qué antiderivada se elija, resultado que parece obvio y que conviene comprobar una vez.

Encontrar antiderivadas es sustancialmente más difícil que derivar. Derivar es un procedimiento mecánico que siempre termina; integrar requiere reconocer patrones, y hay funciones elementales cuya antiderivada no es elemental. e^(-x²) es el caso más famoso: su integral define la función error erf, que no se puede escribir con funciones elementales.

Ese hecho —demostrado por Liouville en el siglo XIX— es la razón de ser de la integración numérica. No es que no sepamos calcular la integral: es que se ha demostrado que no existe forma cerrada elemental. La probabilidad normal acumulada es precisamente uno de esos casos.

Ejemplo trabajado

Dos antiderivadas de x² y su integral definida.

F₁(x) = x³/3
F₂(x) = x³/3 + 7

F₁'(2) = 4.0                                 ✓
F₂'(2) = 4.0                                 ✓ misma derivada

diferencia constante: F₂ − F₁ = 7

Integral definida en [1,3]:
  con F₁: 9 − 1/3 = 8.6667
  con F₂: 16 − 7.3333 = 8.6667              ✓ la constante se cancela

Qué ejecuta el laboratorio

La antiderivada no es única: difiere en una constante.

GrupoSalidas
Resultados numéricos (4)F1'(2), F2'(2), diferencia_constante, la_constante_desaparece_en_la_definida
Comprobaciones (1)misma_derivada
compmath run 155

Errores conceptuales frecuentes

  1. Omitir la constante de integración en una integral indefinida.
  2. Suponer que toda función elemental tiene antiderivada elemental.
  3. Usar antiderivadas distintas para los dos límites de una integral definida.

Dónde se usa

Resolución de ecuaciones diferenciales, cálculo de probabilidades acumuladas y reconstrucción de una magnitud a partir de su tasa de cambio.

Bibliografía de la clase

156 · Teorema fundamental del cálculo

Parte 07 · clase 16 de 20 · demostración fundamental_theorem

Derivar e integrar son operaciones inversas: ese es el teorema que da nombre al cálculo.

d/dx ∫ₐˣ f(t)dt = f(x)
∫ₐᵇ f = F(b) − F(a)  con F' = f

Fundamentos

El teorema fundamental del cálculo conecta dos problemas que nacieron completamente separados: el de la tangente —resuelto con derivadas— y el del área —resuelto con integrales—. Su enunciado es que son inversos, y esa unificación es el logro central de Newton y Leibniz.

La primera parte dice que la función área, F(x) = ∫ₐˣ f, tiene derivada f. Intuitivamente: al mover el extremo derecho un poquito, el área crece en una franja de altura f(x) y anchura infinitesimal. La segunda parte convierte ese resultado en un método de cálculo: para integrar, basta encontrar una antiderivada y evaluarla en los extremos.

El impacto práctico es difícil de exagerar. Sin el teorema, cada integral exigiría un límite de sumas; con él, muchas se resuelven en una línea. Es la diferencia entre calcular áreas una por una y tener un método general.

El laboratorio comprueba ambas partes numéricamente con cos, cuya antiderivada es sin: integra cos desde cero hasta x y verifica que da sin(x), y luego deriva esa integral y verifica que devuelve cos(x). Que ambas comprobaciones pasen es la confirmación ejecutable del teorema.

Ejemplo trabajado

Verificar las dos partes con cos.

Primera parte: F(x) = ∫₀ˣ cos(t)dt

  F(1.2) numérica = 0.932039
  sin(1.2)        = 0.932039              ✓

Segunda parte: dF/dx debe ser cos(x)

  dF/dx en 1.2 (numérica) = 0.362358
  cos(1.2)                = 0.362358      ✓

Derivar deshace integrar.

Qué ejecuta el laboratorio

Teorema fundamental: derivar deshace integrar.

GrupoSalidas
Resultados numéricos (4)F(x)=∫₀ˣcos, sin(x), dF/dx_numerica, f(x)
Comprobaciones (2)primera_parte_ok, segunda_parte_ok
compmath run 156

Errores conceptuales frecuentes

  1. Aplicar el teorema a funciones discontinuas en el intervalo.
  2. Confundir la variable de integración con el límite superior.
  3. Olvidar que la primera parte exige que f sea continua.

Dónde se usa

Cálculo de integrales en forma cerrada, resolución de ecuaciones diferenciales, relación entre función de densidad y función de distribución acumulada.

Bibliografía de la clase

157 · Integración por sustitución

Parte 07 · clase 17 de 20 · demostración substitution

La sustitución es la regla de la cadena leída al revés.

∫f(g(x))·g'(x)dx = ∫f(u)du  con u = g(x)
los límites también se transforman

Fundamentos

Integrar por sustitución consiste en reconocer que el integrando tiene la forma f(g(x))·g'(x), que es exactamente lo que produce derivar F(g(x)) por la regla de la cadena. Al identificar u = g(x), la integral se convierte en ∫f(u)du, que suele ser inmediata.

La señal para aplicarla es la presencia de una función y de su derivada como factor. En ∫2x·cos(x²)dx, el 2x es la derivada de , así que la sustitución u = x² cierra el problema. Reconocer ese patrón es la habilidad que hay que entrenar.

En integrales definidas hay que transformar también los límites, y ese es el error más frecuente: cambiar la variable sin cambiar el intervalo. La alternativa es deshacer la sustitución antes de evaluar, pero transformar los límites es más limpio y menos propenso a error.

En probabilidad, la sustitución es el cambio de variable de una densidad, y allí aparece el jacobiano como factor de corrección (clase 075). Esa corrección es la que hace que la densidad transformada siga integrando a 1, y es el mecanismo central de los normalizing flows.

Ejemplo trabajado

Integrar 2x·cos(x²) de 0 a 1.

Reconocer: la derivada de x² es 2x, que está presente

Sustitución: u = x²,  du = 2x dx
Límites: x=0 → u=0,   x=1 → u=1

∫₀¹ 2x·cos(x²)dx = ∫₀¹ cos(u)du = sin(1) = 0.841471

Verificación numérica directa: 0.841471       ✓

Qué ejecuta el laboratorio

Integración por sustitución: la regla de la cadena al revés.

GrupoSalidas
Resultados numéricos (3)valor_directo, valor_sustituido, valor_analitico_sin(1)
Comprobaciones (1)coinciden
compmath run 157

Errores conceptuales frecuentes

  1. Cambiar la variable sin transformar los límites en una integral definida.
  2. Olvidar el factor du = g'(x)dx.
  3. Aplicar la sustitución cuando la derivada de g no está presente en el integrando.

Dónde se usa

Cambio de variable en densidades de probabilidad, normalizing flows, simplificación de integrales y reparametrización en inferencia variacional.

Bibliografía de la clase

158 · Integración por partes

Parte 07 · clase 18 de 20 · demostración integration_by_parts

La integración por partes es la regla del producto leída al revés.

∫u dv = uv − ∫v du
criterio LIATE para elegir u

Fundamentos

Integrar por partes se obtiene integrando la regla del producto y despejando. Su utilidad es transformar una integral difícil en otra más fácil, cambiando cuál de los dos factores se deriva y cuál se integra.

La elección de u determina si el método ayuda o empeora. El criterio LIATE —logarítmica, inversa trigonométrica, algebraica, trigonométrica, exponencial— ordena qué tipo de función conviene elegir como u, y funciona en la mayoría de los casos escolares. La lógica es elegir como u lo que se simplifica al derivar.

En ∫x·eˣdx, elegir u = x hace que du = dx desaparezca el polinomio, dejando ∫eˣdx, inmediata. Elegir al revés produciría x²/2·eˣ, que es peor. La misma integral con un polinomio de grado n requiere aplicar el método n veces.

Hay un caso elegante que conviene conocer: al integrar por partes dos veces ∫eˣ·sin x dx, reaparece la integral original, y despejarla algebraicamente da el resultado. Es un truco que muestra que la integración es más creativa que la derivación.

Ejemplo trabajado

Integrar x·eˣ de 0 a 1.

Elegir u = x  (algebraica, se simplifica al derivar)
       dv = eˣdx

du = dx,  v = eˣ

∫x·eˣdx = x·eˣ − ∫eˣdx = x·eˣ − eˣ

Evaluar en [0,1]:
  (1·e − e) − (0 − 1) = 0 + 1 = 1

Verificación numérica: 1.0000000            ✓
error: 1.4e−09

Qué ejecuta el laboratorio

Integración por partes: la regla del producto al revés.

GrupoSalidas
Resultados numéricos (3)resultado_analitico, resultado_numerico, error
Comprobaciones (0)
compmath run 158

Errores conceptuales frecuentes

  1. Elegir u de forma que la nueva integral sea más difícil que la original.
  2. Olvidar el signo menos delante de la segunda integral.
  3. No evaluar el término uv en los límites en una integral definida.

Dónde se usa

Cálculo de momentos de distribuciones, transformadas de Laplace y Fourier, y deducción de fórmulas de recurrencia para integrales.

Bibliografía de la clase

159 · Integración numérica introductoria

Parte 07 · clase 19 de 20 · demostración numerical_integration_intro

El orden de convergencia dice cómo cae el error al refinar: trapecio es O(h²) y Simpson O(h⁴).

trapecio: h·(f(a)/2 + Σf(xᵢ) + f(b)/2),  error O(h²)
Simpson: h/3·(f(a) + 4Σimpares + 2Σpares + f(b)),  error O(h⁴)

Fundamentos

Cuando una integral no tiene forma cerrada —el caso habitual— hay que calcularla numéricamente. El trapecio aproxima la función por segmentos rectos entre nodos; Simpson la aproxima por parábolas que pasan por tres nodos consecutivos.

La diferencia de precisión es notable. El trapecio tiene error O(h²): duplicar el número de subintervalos divide el error por 4. Simpson tiene error O(h⁴): duplicar lo divide por 16. Con 100 subintervalos, Simpson suele dar diez órdenes de magnitud más de precisión con el mismo número de evaluaciones de la función.

Ese salto tiene una explicación bonita: Simpson es exacto para polinomios de grado 3, aunque solo interpole parábolas. El término cúbico se cancela por simetría, y esa cancelación regala un orden completo. Es el mismo fenómeno que hace superior la diferencia central.

La función del laboratorio, e^(-x²), no tiene antiderivada elemental (clase 155) y su integral define la función error. Que el resultado numérico coincida con erf a doce decimales es la comprobación de que el método funciona, y es cómo se calculan en la práctica las probabilidades de la distribución normal.

Ejemplo trabajado

Integrar e^(-x²) en [0,1] con 100 subintervalos.

referencia (erf): 0.746824132812

trapecio: 0.746820967  →  error 3.17e−06
Simpson:  0.746824133  →  error 1.11e−13

Simpson es 7 órdenes de magnitud más preciso
con el mismo número de evaluaciones.

Órdenes: trapecio O(h²), Simpson O(h⁴)

Qué ejecuta el laboratorio

Trapecio frente a Simpson sobre la misma integral.

GrupoSalidas
Resultados numéricos (6)subintervalos, trapecio, simpson, referencia_erf, error_trapecio, error_simpson
Comprobaciones (0)
compmath run 159

Errores conceptuales frecuentes

  1. Usar Simpson con un número impar de subintervalos: requiere que sea par.
  2. Aplicar estos métodos a integrandos con singularidades o muy oscilantes.
  3. Aumentar n indefinidamente: el error de redondeo acaba dominando.

Dónde se usa

Probabilidades de la distribución normal, cálculo de expectativas, integración de señales y cualquier integral sin forma cerrada.

Bibliografía de la clase

160 · Capstone: optimizar y acumular una señal

Parte 07 · clase 20 de 20 · demostración capstone_optimize_and_accumulate

Derivar localiza; integrar acumula. Un mismo problema suele necesitar las dos.

máximo: buscar la raíz de f'
energía: ∫f²  ·  área: ∫f  ·  valor medio: (1/T)∫f

Fundamentos

El capstone analiza una señal amortiguada, e^(-0.5t)·sin(3t), con las dos operaciones del cálculo. La derivada localiza sus extremos; la integral acumula su área, su energía y su valor medio. Ninguna de las dos por separado describe la señal.

Encontrar el máximo se plantea como buscar la raíz de la derivada, y se resuelve por bisección. Esa reformulación —optimizar equivale a resolver f' = 0— es la que conecta la parte 07 con la parte 11: los métodos de búsqueda de raíces son también métodos de optimización, y viceversa.

Las tres integrales tienen interpretaciones distintas. El área es la acumulación con signo, y en una señal oscilante tiende a cancelarse. La energía, ∫f², no se cancela porque el cuadrado es siempre positivo, y por eso es la medida estándar de «cuánta señal hay». El valor medio normaliza el área por la duración.

Esa distinción entre área y energía reaparece en la parte 13: el teorema de Parseval dice que la energía calculada en el tiempo coincide con la calculada en frecuencia, y es la base del análisis espectral. Aquí se introduce sin nombrarla todavía.

Ejemplo trabajado

Analizar la señal amortiguada en [0,6].

f(t) = e^(−0.5t)·sin(3t)

Primer máximo (raíz de f' por bisección):
  t = 0.4048,  f(t) = 0.7818
  f'(t) = 1.4e−09                  ✓ derivada nula

Acumulaciones en [0,6]:
  área    ∫f  = 0.3220
  energía ∫f² = 0.2856
  valor medio = 0.0537

El área casi se cancela por la oscilación;
la energía no, porque el cuadrado es positivo.

Qué ejecuta el laboratorio

Capstone: derivar para optimizar e integrar para acumular una señal.

GrupoSalidas
Resultados numéricos (6)t_del_primer_maximo, valor_maximo, derivada_en_el_maximo, area_acumulada_0_a_6, energia_∫f², valor_medio
Comprobaciones (0)
compmath run 160

Errores conceptuales frecuentes

  1. Confundir el área (con signo) con la energía (siempre positiva).
  2. Buscar el máximo evaluando en una malla en lugar de resolviendo f' = 0.
  3. Reportar un valor medio sin declarar el intervalo sobre el que se calculó.

Dónde se usa

Análisis de señales, cálculo de energía en física, métricas acumuladas en el tiempo y localización de extremos en curvas experimentales.

Bibliografía de la clase

Parte 08 — Cálculo multivariable, matricial y autodiferenciación

Nivel universitario-avanzado · 20 clases · 80 horas · motor part08

Derivadas parciales, gradiente, Jacobiano, Hessiano, Taylor multivariable, multiplicadores de Lagrange, cálculo matricial y autodiferenciación.

Esta es la parte donde el programa deja de hablar de matemática «que se usa en IA» y pasa a construir el mecanismo exacto que entrena una red neuronal. Al final de las 20 clases habrás implementado un motor de autodiferenciación en modo reverso de unas cien líneas y habrás comprobado que sus gradientes coinciden con los que calculaste a mano.

Las clases 161 a 166 extienden la derivada a varias variables. La idea central es que el gradiente es el vector de derivadas parciales y apunta en la dirección de mayor crecimiento. De ahí sale, sin más argumento, el descenso de gradiente: para minimizar, hay que moverse en la dirección opuesta. Todo el entrenamiento de un modelo es esa frase repetida millones de veces.

Las clases 167 a 170 generalizan la maquinaria: regla de la cadena multivariable, Jacobiano, Hessiano y Taylor. El Jacobiano es la derivada de una función vectorial y es el objeto que manipulan internamente los frameworks: backward() calcula un producto vector-Jacobiano sin construir nunca el Jacobiano completo, que sería inmanejable. El Hessiano describe la curvatura y decide si un punto crítico es mínimo, máximo o silla.

Las clases 171 y 172 son optimización: descenso de gradiente sobre una cuadrática y multiplicadores de Lagrange. Lagrange convierte una restricción en un término del objetivo, y su multiplicador tiene una interpretación económica precisa —cuánto mejora el óptimo si se relaja la restricción— que reaparece en KKT (clase 257) y en el precio sombra de la programación lineal.

Las clases 173 a 176 tratan integrales múltiples y campos vectoriales, y las clases 177 y 178 el cálculo matricial: cómo derivar respecto a vectores y matrices. Ahí aparece la identidad más usada en machine learning: el gradiente de la pérdida cuadrática ‖Xw − y‖²/n es 2Xᵀ(Xw − y)/n. Esa expresión es el gradiente de una capa lineal.

El cierre (179 y 180) implementa la autodiferenciación y la contrasta con backpropagation manual sobre la misma red. Que ambos den exactamente el mismo número es la demostración de que autograd no es magia: es la regla de la cadena aplicada en orden topológico inverso (clase 096).

Ideas centrales

Por qué importa en IA

Autograd de PyTorch y JAX es exactamente el modo reverso del grafo de cómputo que se construye en esta parte a mano.

Errores frecuentes de la parte

Glosario de la parte (19 términos)

TérminoDefiniciónClase
Campo conservativoCampo que es el gradiente de una función potencial. Su rotacional es nulo.175
Campo vectorialFunción que asigna un vector a cada punto del espacio.175
Convención de layoutAcuerdo sobre si el gradiente es fila o columna. Mezclar convenciones produce transposiciones erróneas.177
Curva de nivelConjunto de puntos donde la función toma el mismo valor. El gradiente es perpendicular a ella.162
Derivada direccionalTasa de cambio en una dirección unitaria; es la proyección del gradiente sobre ella.165
Derivada parcialDerivada respecto a una variable manteniendo las demás fijas. Se denota ∂f/∂x.163
DivergenciaMedida de cuánto un campo actúa como fuente o sumidero en un punto.176
GradienteVector de derivadas parciales. Apunta en la dirección de mayor crecimiento y su norma mide la pendiente.164
Grafo de cómputoDAG cuyos nodos son operaciones. La autodiferenciación lo recorre en orden topológico inverso.179
HessianoMatriz de segundas derivadas. Describe la curvatura y clasifica los puntos críticos.169
JacobianoMatriz de primeras derivadas de una función vectorial. Su fila i es el gradiente de la componente i.168
Modo reversoEstrategia de autodiferenciación que calcula todas las derivadas con un barrido hacia adelante y uno hacia atrás.179
Multiplicador de LagrangeCoeficiente λ que mide cuánto mejora el óptimo al relajar la restricción una unidad.172
Plano tangenteAproximación lineal de una superficie en un punto. Su error crece cuadráticamente con la distancia.166
Punto de sillaPunto crítico con Hessiano de autovalores de signos mixtos: mínimo en unas direcciones y máximo en otras.169
RotacionalMedida de la circulación local de un campo alrededor de un punto.176
Taylor multivariablef(x+d) ≈ f(x) + ∇fᵀd + ½dᵀHd. El término de segundo orden usa el Hessiano.170
Teorema de FubiniPermite calcular una integral múltiple como integrales iteradas cuando la función es integrable.173
VJPProducto vector-Jacobiano. Es lo que calcula el modo reverso sin construir el Jacobiano completo.168

Bibliografía de la parte

161 · Funciones de varias variables

Parte 08 · clase 1 de 20 · demostración multivariable_functions

Una función de varias variables asigna un número a cada punto de un espacio; su gráfica vive una dimensión más arriba.

f: ℝⁿ → ℝ
f(x,y) = x²y + 3xy² + 2

Fundamentos

Pasar de una a varias variables no es un cambio de grado: es un cambio de naturaleza. La gráfica de f(x) es una curva en el plano; la de f(x,y) es una superficie en el espacio; la de una función de diez variables no se puede dibujar. A partir de tres variables hay que razonar con álgebra, y esa es la habilidad que instala esta parte.

La función del laboratorio, x²y + 3xy² + 2, es deliberadamente no simétrica: f(2,1) y f(1,2) dan valores distintos. Esa asimetría importa porque en machine learning las variables casi nunca son intercambiables, y suponer simetría donde no la hay produce errores de interpretación.

La forma práctica de explorar una función de varias variables es fijar todas las variables menos una y observar el corte resultante, que es una función de una variable. Esa es exactamente la idea de derivada parcial (clase 163), y es también la técnica de los gráficos de dependencia parcial en interpretabilidad de modelos.

En machine learning, la función de pérdida es una función de varias variables donde las «variables» son los parámetros: millones de ellos. Su gráfica vive en un espacio de millones de dimensiones y no se puede visualizar. Todo lo que se dice sobre «paisajes de pérdida» son proyecciones bidimensionales, útiles como intuición y engañosas si se toman literalmente.

Ejemplo trabajado

Evaluar una función de dos variables.

f(x,y) = x²y + 3xy² + 2

f(0,0) = 2
f(1,1) = 1 + 3 + 2 = 6
f(2,1) = 4 + 6 + 2 = 12
f(1,2) = 2 + 12 + 2 = 16

f(2,1) ≠ f(1,2)  →  no simétrica         ✓

dominio: ℝ²      codominio: ℝ
la gráfica es una superficie en ℝ³

Qué ejecuta el laboratorio

Una función de dos variables evaluada sobre una malla.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (1)no_conmuta_en_x_y
compmath run 161

Errores conceptuales frecuentes

  1. Suponer simetría entre variables sin comprobarla.
  2. Intentar visualizar funciones de más de dos variables.
  3. Confundir el dominio (ℝⁿ) con la gráfica (que vive en ℝⁿ⁺¹).

Dónde se usa

Funciones de pérdida, superficies de respuesta, modelos con varias entradas y gráficos de dependencia parcial en interpretabilidad.

Bibliografía de la clase

162 · Superficies y curvas de nivel

Parte 08 · clase 2 de 20 · demostración level_curves

Las curvas de nivel son los conjuntos donde la función vale lo mismo, y el gradiente es perpendicular a ellas.

curva de nivel: f(x,y) = c
∇f ⊥ curva de nivel
curvas juntas ⟹ pendiente alta

Fundamentos

Una curva de nivel une los puntos donde la función toma el mismo valor. Es el mismo concepto que las isolíneas de un mapa topográfico, y la analogía es exacta: la altura del terreno es una función de dos variables, y las curvas de nivel son las líneas de altitud constante.

De esa imagen se leen dos hechos importantes. Primero, el gradiente es perpendicular a la curva de nivel: la dirección de máximo ascenso es la que cruza las isolíneas de frente, no la que las recorre. Segundo, cuanto más juntas están las curvas, mayor es la pendiente: la misma diferencia de valor en menos distancia.

Esa segunda observación es la que explica el zigzagueo del descenso de gradiente. Cuando las curvas de nivel son elipses muy alargadas —función mal condicionada, clase 128—, el gradiente apunta casi perpendicular al eje largo, es decir, casi perpendicular a la dirección hacia el mínimo. El algoritmo rebota entre las paredes del valle en lugar de avanzar por él.

Los gráficos de contorno son la herramienta estándar para visualizar funciones de dos variables, y en optimización se usan para mostrar trayectorias de convergencia. Su limitación es la misma de siempre: solo funcionan en dos dimensiones, y los paisajes reales tienen millones.

Ejemplo trabajado

Curvas de nivel de x² + y².

g(x,y) = x² + y²,   nivel c = 4

puntos del nivel 4:
  (2,0)     → 4    ✓
  (0,2)     → 4    ✓
  (√2,√2)   → 4    ✓
  (−2,0)    → 4    ✓

forma: circunferencia de radio 2

gradiente en (2,0): (4, 0)
  apunta radialmente hacia fuera
  perpendicular a la circunferencia        ✓

Qué ejecuta el laboratorio

Curvas de nivel: dónde la función vale lo mismo.

GrupoSalidas
Resultados numéricos (1)nivel
Comprobaciones (1)gradiente_perpendicular_a_la_curva
compmath run 162

Errores conceptuales frecuentes

  1. Suponer que el gradiente es tangente a la curva de nivel: es perpendicular.
  2. Interpretar la separación entre curvas al revés: juntas significa pendiente alta.
  3. Extrapolar la intuición de un gráfico de contorno 2D a un espacio de millones de dimensiones.

Dónde se usa

Visualización de paisajes de pérdida, mapas topográficos, análisis de convergencia y diagnóstico de mal condicionamiento.

Bibliografía de la clase

163 · Derivadas parciales

Parte 08 · clase 3 de 20 · demostración partial_derivatives

Una derivada parcial mide el cambio en una dirección de eje, congelando el resto.

∂f/∂x = derivada tratando y como constante
teorema de Schwarz: ∂²f/∂x∂y = ∂²f/∂y∂x

Fundamentos

La derivada parcial respecto a x se calcula tratando todas las demás variables como constantes. Operativamente, es la derivada de una variable de la clase 144 aplicada al corte de la función. La notación en lugar de d recuerda que hay otras variables congeladas.

El teorema de Schwarz garantiza que las derivadas cruzadas coinciden —∂²f/∂x∂y = ∂²f/∂y∂x— si son continuas. Ese resultado es el que hace que el Hessiano sea simétrico (clase 169), y la simetría del Hessiano es lo que permite aplicarle el teorema espectral de la clase 126.

La limitación conceptual de las parciales es que solo miran en direcciones de eje. Una función puede tener ambas parciales definidas en un punto y no ser diferenciable allí, porque el comportamiento en direcciones oblicuas es distinto. La diferenciabilidad exige más: que exista una buena aproximación lineal en todas las direcciones (clase 166).

En machine learning, cada componente del gradiente es una derivada parcial: cuánto cambia la pérdida al mover un parámetro dejando el resto fijo. Con millones de parámetros, calcularlas una a una por diferencias finitas costaría millones de evaluaciones; la autodiferenciación las obtiene todas de una vez, y esa es su razón de ser.

Ejemplo trabajado

Parciales de x²y + 3xy² en (2,3).

∂f/∂x = 2xy + 3y²
      = 2·2·3 + 3·9 = 12 + 27 = 39
numérica: 39.000000                        ✓

∂f/∂y = x² + 6xy
      = 4 + 6·2·3 = 4 + 36 = 40
numérica: 40.000000                        ✓

Cruzadas (Schwarz):
  ∂²f/∂x∂y = 2x + 6y
  ∂²f/∂y∂x = 2x + 6y                       ✓ coinciden

Qué ejecuta el laboratorio

Derivadas parciales: mover una variable congelando el resto.

GrupoSalidas
Resultados numéricos (4)∂f/∂x_analitica, ∂f/∂x_numerica, ∂f/∂y_analitica, ∂f/∂y_numerica
Comprobaciones (2)coinciden, cruzadas_iguales_(Schwarz)
compmath run 163

Errores conceptuales frecuentes

  1. Derivar respecto a una variable sin tratar las demás como constantes.
  2. Deducir diferenciabilidad de la existencia de las parciales.
  3. Confundir la notación ∂ con d en funciones de una sola variable.

Dónde se usa

Componentes del gradiente, análisis de sensibilidad respecto a un parámetro, elasticidades en economía y ecuaciones en derivadas parciales.

Bibliografía de la clase

164 · Gradiente

Parte 08 · clase 4 de 20 · demostración gradient

El gradiente apunta al mayor ascenso; por eso se minimiza moviéndose en dirección contraria.

∇f = (∂f/∂x₁, ..., ∂f/∂xₙ)
descenso: x ← x − α∇f
‖∇f‖ = pendiente máxima

Fundamentos

El gradiente reúne todas las derivadas parciales en un vector, y ese vector tiene dos propiedades que lo convierten en el objeto central de la optimización: apunta en la dirección de máximo crecimiento y su norma es la pendiente en esa dirección.

La primera propiedad es la que justifica el algoritmo más usado del machine learning moderno. Si el gradiente apunta hacia arriba, moverse en −∇f es la forma más rápida de bajar localmente. x ← x − α∇f es el descenso de gradiente, y toda la parte 12 son variantes de esa línea.

La palabra localmente es esencial. El gradiente solo informa del comportamiento infinitesimal alrededor del punto; nada garantiza que la dirección de máximo descenso local lleve al mínimo global, ni siquiera que sea una buena dirección a media distancia. En un valle alargado, la dirección de máximo descenso es casi perpendicular a la que lleva al mínimo.

La norma del gradiente sirve además como criterio de parada: cerca de un punto crítico, ‖∇f‖ tiende a cero. Es el indicador que usan todos los optimizadores para decidir cuándo detenerse, y es preferible a un número fijo de iteraciones porque se adapta al problema.

Ejemplo trabajado

Gradiente y verificación de la dirección de ascenso.

f(x,y) = x²y + 3xy² + 2   en el punto (2,3)

∇f = (39, 40),   ‖∇f‖ = 55.87
dirección unitaria: (0.6981, 0.7160)

f(2,3) = 68.0

Moverse h = 0.001 en dirección +∇f:  68.055872   ↑
Moverse h = 0.001 en dirección −∇f:  67.944128   ↓

El gradiente sube y su opuesto baja           ✓

Qué ejecuta el laboratorio

El gradiente apunta al mayor ascenso.

GrupoSalidas
Resultados numéricos (4)norma, f(p), f(p + h·∇f), f(p - h·∇f)
Comprobaciones (2)el_gradiente_sube, descenso_usa_-∇f
compmath run 164

Errores conceptuales frecuentes

  1. Confundir el gradiente con la derivada direccional (que es un escalar).
  2. Suponer que la dirección de máximo descenso local lleva al mínimo global.
  3. Detener la optimización por número de iteraciones sin comprobar la norma del gradiente.

Dónde se usa

Descenso de gradiente y todas sus variantes, criterios de parada, mapas de saliencia en interpretabilidad y ataques adversariales.

Bibliografía de la clase

165 · Derivada direccional

Parte 08 · clase 5 de 20 · demostración directional_derivative

La derivada direccional es la proyección del gradiente sobre una dirección unitaria.

D_u f = ∇f · u,  con ‖u‖ = 1
máximo: ‖∇f‖ en la dirección de ∇f
nulo: en direcciones perpendiculares a ∇f

Fundamentos

La derivada direccional generaliza la parcial a cualquier dirección, no solo a los ejes. Su fórmula es un producto punto: D_u f = ∇f · u, y de esa expresión se leen inmediatamente sus valores extremos usando la clase 103.

Como ∇f · u = ‖∇f‖·cos θ para u unitario, el valor es máximo cuando θ = 0 —en la dirección del gradiente— y vale ‖∇f‖. Es mínimo en la dirección opuesta, valiendo −‖∇f‖. Y es cero en las direcciones perpendiculares al gradiente, que son precisamente las tangentes a la curva de nivel (clase 162).

Esa última observación cierra el círculo: moverse a lo largo de una curva de nivel no cambia el valor de la función, y por eso la derivada direccional en esa dirección es nula. La perpendicularidad entre gradiente y curva de nivel no es un hecho adicional: es una consecuencia.

El requisito de que u sea unitario no es formalismo. Si no se normaliza, el resultado escala con la longitud del vector y deja de ser una tasa de cambio por unidad de distancia. Es el error más frecuente al implementar derivadas direccionales.

Ejemplo trabajado

Derivada direccional en cuatro direcciones.

punto (2,3),  ∇f = (39, 40),  ‖∇f‖ = 55.87

dirección          D_u f
e₁ = (1,0)         39.00
e₂ = (0,1)         40.00
45° = (0.707,0.707) 55.86    ← casi el máximo
−∇f normalizado   −55.87     ← el mínimo

perpendicular a ∇f: (−40, 39)/‖·‖  →  0.0    ✓ nula

máximo posible = ‖∇f‖ = 55.87

Qué ejecuta el laboratorio

Derivada direccional como proyección del gradiente.

GrupoSalidas
Resultados numéricos (3)maxima_posible, minima_posible, nula_en_direccion_perpendicular
Comprobaciones (0)
compmath run 165

Errores conceptuales frecuentes

  1. No normalizar el vector de dirección.
  2. Confundir la derivada direccional (escalar) con el gradiente (vector).
  3. Suponer que la derivada direccional es máxima en la dirección de una variable.

Dónde se usa

Análisis de sensibilidad en direcciones combinadas, búsqueda de línea en optimización (clase 254) y estudio de la anisotropía de una función de pérdida.

Bibliografía de la clase

166 · Plano tangente

Parte 08 · clase 6 de 20 · demostración tangent_plane

El plano tangente es la aproximación lineal en varias variables, y su error crece cuadráticamente.

z = f(a) + ∇f(a)·(x − a)
error ≈ ½·(x−a)ᵀH(x−a) = O(‖x−a‖²)

Fundamentos

El plano tangente es a las superficies lo que la recta tangente a las curvas: la mejor aproximación lineal en un punto. Su ecuación usa el gradiente como vector de pendientes: f(a) + ∇f(a)·(x − a).

Lo interesante es cómo se comporta el error. Al alejarse del punto de tangencia, el error crece cuadráticamente, no linealmente. Duplicar la distancia cuadruplica el error. Eso explica por qué las aproximaciones lineales funcionan bien cerca y mal lejos, y por qué el paso del descenso de gradiente debe ser pequeño: el gradiente solo describe la función en un entorno.

El término cuadrático del error es exactamente el que captura el Hessiano, y por eso Taylor de segundo orden (clase 170) es tanto más preciso. Los métodos de Newton usan esa información para dar pasos más largos con seguridad.

La diferenciabilidad en varias variables se define precisamente como la existencia de una buena aproximación lineal, con error o(‖x−a‖). Es una condición más fuerte que la mera existencia de las parciales, y es la que garantiza que el plano tangente merece ese nombre.

Ejemplo trabajado

Plano tangente y crecimiento del error.

f(x,y) = x²y + 3xy² + 2   en (2,3)
f(2,3) = 68,  ∇f = (39, 40)

plano: z = 68 + 39(x−2) + 40(y−3)

punto cercano (2.01, 3.01):
  f real     = 68.79
  plano      = 68.79
  error      = 0.0034

punto lejano (3, 4):
  f real     = 182.0
  plano      = 147.0
  error      = 35.0

Distancia ×100 → error ×10 000: crecimiento cuadrático  ✓

Qué ejecuta el laboratorio

Plano tangente: la aproximación lineal en dos variables.

GrupoSalidas
Resultados numéricos (3)f(p), error_cerca, error_lejos
Comprobaciones (1)el_error_crece_cuadraticamente
compmath run 166

Errores conceptuales frecuentes

  1. Usar la aproximación lineal lejos del punto de tangencia.
  2. Confundir el plano tangente con la superficie.
  3. Suponer que la existencia de las parciales implica que hay plano tangente.

Dónde se usa

Linealización de modelos, propagación de incertidumbre de primer orden, un paso de descenso de gradiente y aproximación local de funciones complejas.

Bibliografía de la clase

167 · Regla de la cadena multivariable

Parte 08 · clase 7 de 20 · demostración multivariable_chain_rule

La regla de la cadena multivariable suma las contribuciones de todos los caminos.

dh/dt = (∂f/∂x)(dx/dt) + (∂f/∂y)(dy/dt)
en general: producto punto entre gradiente y velocidad

Fundamentos

Cuando una función depende de variables que a su vez dependen de un parámetro, la tasa de cambio total suma las contribuciones de cada camino. Esa es la regla de la cadena multivariable, y su forma compacta es un producto punto: gradiente por vector velocidad.

La lectura de «suma sobre caminos» es la que se generaliza al grafo de cómputo. En una red neuronal, un parámetro puede influir en la pérdida por varias rutas —pesos compartidos, conexiones residuales, capas que se reutilizan— y su gradiente total es la suma de las contribuciones de todas ellas.

Ese detalle es la causa del error más común al implementar autodiferenciación a mano: si un nodo se usa dos veces, hay que acumular su gradiente en lugar de sobrescribirlo. El motor del programa usa += precisamente por eso, y la clase 306 lo hace explícito. En PyTorch, olvidar zero_grad() es el mismo problema al revés: acumular cuando no se debe.

La verificación numérica es directa: componer las funciones, derivar la composición por diferencias finitas y comparar con la suma de productos. El laboratorio lo hace sobre una trayectoria circular, donde x = cos t e y = sin t.

Ejemplo trabajado

Derivar f(x(t), y(t)) sobre una circunferencia.

f(x,y) = x²y + 3xy² + 2
x(t) = cos t,  y(t) = sin t,   t = 1.5

∇f en (cos 1.5, sin 1.5) = (2.9787, 0.2318)
velocidad (dx/dt, dy/dt) = (−sin 1.5, cos 1.5) = (−0.9975, 0.0707)

Regla de la cadena:
  2.9787·(−0.9975) + 0.2318·0.0707 = −2.9548

Derivada numérica de h(t):  −2.9548           ✓

Estructura: producto punto entre gradiente y velocidad

Qué ejecuta el laboratorio

Regla de la cadena con variables intermedias.

GrupoSalidas
Resultados numéricos (3)t, ∂f/∂x·dx/dt + ∂f/∂y·dy/dt, dh/dt_numerica
Comprobaciones (1)coinciden
compmath run 167

Errores conceptuales frecuentes

  1. Sobrescribir el gradiente de un nodo reutilizado en lugar de acumularlo.
  2. Olvidar alguno de los caminos de dependencia.
  3. Evaluar el gradiente en el punto equivocado de la trayectoria.

Dónde se usa

Backpropagation con pesos compartidos, redes recurrentes, conexiones residuales y propagación de incertidumbre a través de varias etapas.

Bibliografía de la clase

168 · Jacobiano

Parte 08 · clase 8 de 20 · demostración jacobian

El Jacobiano es la derivada de una función vectorial; el modo reverso calcula vᵀJ sin construirlo.

J ∈ ℝ^(m×n) para F: ℝⁿ → ℝᵐ
fila i = ∇Fᵢ
VJP: vᵀJ · JVP: Jv

Fundamentos

Cuando la función devuelve un vector en lugar de un escalar, su derivada es una matriz: el Jacobiano. Su fila i es el gradiente de la componente i de la salida, y su columna j recoge cómo afecta la entrada j a todas las salidas.

Su tamaño es el problema. Para una capa que va de 1000 entradas a 1000 salidas, el Jacobiano tiene un millón de entradas; para un modelo completo, sería inmanejable. Por eso los frameworks nunca lo construyen.

Lo que sí calculan son productos con el Jacobiano. El VJP (vector-Jacobian product), vᵀJ, es lo que hace backward(): propaga un gradiente hacia atrás sin materializar la matriz. El JVP (Jacobian-vector product), Jv, es lo que hace el modo directo. Cada uno cuesta aproximadamente lo mismo que evaluar la función una vez.

La elección entre modos depende de la forma. Si hay muchas entradas y una sola salida —el caso de una función de pérdida, con millones de parámetros y un escalar— el modo reverso obtiene todos los gradientes con un solo barrido. Si hay pocas entradas y muchas salidas, el modo directo es más eficiente. El entrenamiento de redes es el primer caso, y por eso backpropagation es modo reverso.

Ejemplo trabajado

Jacobiano de una función de ℝ² en ℝ³.

F(x,y) = (x²+y,  sin(x)·y,  x−3y)   en (1,2)

J (shape 3×2):
  [[2x,        1     ]     [[2.0,     1.0   ]
   [cos(x)·y,  sin(x)]  =   [1.0806,  0.8415]
   [1,        −3     ]]     [1.0,    −3.0   ]]

fila 1 = ∇(x²+y) = (2x, 1) = (2, 1)          ✓

VJP (modo reverso): vᵀJ, coste ≈ 1 evaluación
JVP (modo directo): Jv,  coste ≈ 1 evaluación

Qué ejecuta el laboratorio

Jacobiano de una función vectorial.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (1)fila_i_es_el_gradiente_de_Fi
compmath run 168

Errores conceptuales frecuentes

  1. Construir el Jacobiano completo cuando basta un producto con él.
  2. Confundir filas con columnas al escribirlo.
  3. Elegir el modo directo cuando hay muchas entradas y una salida.

Dónde se usa

Autodiferenciación, cambio de variable en densidades, cinemática de robots y análisis de sensibilidad de sistemas con varias salidas.

Bibliografía de la clase

169 · Hessiano

Parte 08 · clase 9 de 20 · demostración hessian

El Hessiano describe la curvatura, y el signo de sus autovalores clasifica el punto crítico.

Hᵢⱼ = ∂²f/∂xᵢ∂xⱼ
definido positivo ⟹ mínimo; definido negativo ⟹ máximo; signos mixtos ⟹ silla

Fundamentos

El Hessiano recoge todas las segundas derivadas y describe cómo se curva la función en cada dirección. Es simétrico por el teorema de Schwarz (clase 163), y por tanto tiene autovalores reales y autovectores ortogonales (clase 126).

Los autovalores son las curvaturas principales. Todos positivos significa que la función se curva hacia arriba en todas las direcciones: mínimo local. Todos negativos: máximo. Signos mixtos: punto de silla, mínimo en unas direcciones y máximo en otras.

Ese último caso es el que domina en alta dimensión. En un espacio de un millón de dimensiones, que todos los autovalores tengan el mismo signo es extraordinariamente improbable; lo típico es que haya mezcla. Por eso el consenso actual es que el problema del entrenamiento de redes profundas no son los mínimos locales malos, son los puntos de silla y las mesetas que los rodean.

El Hessiano también determina la velocidad de convergencia. El cociente entre su mayor y su menor autovalor es el número de condición del problema, y controla lo lento que converge el descenso de gradiente (clase 244). Los métodos de segundo orden usan el Hessiano para corregir esa anisotropía, a costa de un coste O(n³) que los hace inviables con millones de parámetros.

Ejemplo trabajado

Hessiano de x² + 3y² en el origen.

f(x,y) = x² + 3y²

∇f(0,0) = (0, 0)                    → punto crítico

H = [[2, 0],
     [0, 6]]

autovalores: 2 y 6,  ambos positivos → definido positivo

Clasificación: MÍNIMO local          ✓

Número de condición: 6/2 = 3
  curvas de nivel: elipses con ejes 3:1

Qué ejecuta el laboratorio

Hessiano: curvatura y clasificación del punto crítico.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (2)definido_positivo, silla_si_hay_signos_mixtos
compmath run 169

Errores conceptuales frecuentes

  1. Clasificar un punto crítico sin calcular los autovalores del Hessiano.
  2. Suponer que los mínimos locales son el principal obstáculo en alta dimensión.
  3. Construir el Hessiano completo en problemas con muchos parámetros.

Dónde se usa

Clasificación de puntos críticos, método de Newton, análisis de convergencia, aproximación de Laplace en inferencia bayesiana y K-FAC.

Bibliografía de la clase

170 · Taylor multivariable

Parte 08 · clase 10 de 20 · demostración multivariable_taylor

Taylor de segundo orden usa el Hessiano y reduce el error de cuadrático a cúbico.

f(x+d) ≈ f(x) + ∇fᵀd + ½dᵀHd
error de orden 1: O(‖d‖²); de orden 2: O(‖d‖³)

Fundamentos

El desarrollo de Taylor multivariable tiene la misma estructura que el de una variable, con el gradiente en el término lineal y el Hessiano en el cuadrático. La expresión ½dᵀHd es una forma cuadrática (clase 128), y su valor depende de la dirección del desplazamiento.

La ganancia de precisión es sustancial: el término de orden 2 reduce el error de O(‖d‖²) a O(‖d‖³). Para un desplazamiento de 0.05, eso significa pasar de un error del orden de 0.0025 a uno del orden de 0.000125: veinte veces mejor.

Esa mejora es la que justifica los métodos de segundo orden. Newton aproxima la función por su Taylor cuadrático y salta directamente al mínimo de esa parábola, lo que converge cuadráticamente cerca del óptimo. El precio es calcular e invertir el Hessiano.

Todos los optimizadores adaptativos de la parte 12 —AdaGrad, RMSProp, Adam— son intentos de capturar información de segundo orden sin calcular el Hessiano, usando en su lugar estadísticas acumuladas del gradiente. Entender qué aproximan exige entender este desarrollo.

Ejemplo trabajado

Órdenes 0, 1 y 2 alrededor de (1,1).

f(x,y) = x²y + 3xy² + 2,  desplazamiento d = (0.05, −0.03)

valor exacto:  6.0296

orden 0:  6.0000     error 2.96e−02
orden 1:  6.0250     error 4.60e−03
orden 2:  6.0296     error 1.11e−04

Cada orden reduce el error en más de un factor 10.

Qué ejecuta el laboratorio

Taylor de segundo orden en dos variables.

GrupoSalidas
Resultados numéricos (6)valor_exacto, orden_0, orden_1, orden_2, error_orden_1, error_orden_2
Comprobaciones (0)
compmath run 170

Errores conceptuales frecuentes

  1. Olvidar el factor ½ en el término cuadrático.
  2. Usar el desarrollo lejos del punto base.
  3. Suponer que el Hessiano es constante fuera del caso cuadrático.

Dónde se usa

Método de Newton, análisis de convergencia, aproximación de Laplace y justificación de los optimizadores adaptativos.

Bibliografía de la clase

171 · Optimización sin restricciones

Parte 08 · clase 11 de 20 · demostración unconstrained_optimization

El descenso de gradiente converge en una cuadrática si el paso respeta el límite de estabilidad.

x ← x − α∇f(x)
estable si α < 2/λ_max
convergencia lenta si λ_max/λ_min es grande

Fundamentos

El descenso de gradiente aplica repetidamente la misma regla: moverse en dirección contraria al gradiente con un paso α. Sobre una función cuadrática se puede analizar exactamente, y ese análisis explica todo lo que se observa en la práctica.

La condición de estabilidad es α < 2/λ_max, donde λ_max es el mayor autovalor del Hessiano. Superarla hace que el algoritmo diverja, y por eso el learning rate es el hiperparámetro que más divergencias explica. La clase 244 lo comprueba con cuatro valores distintos.

La velocidad de convergencia la determina el cociente de autovalores. Si son parecidos, el descenso avanza directo al mínimo; si son muy dispares, el gradiente apunta casi perpendicular al eje largo del valle y el algoritmo zigzaguea. Con f = x² + 20y², la relación es 20 a 1 y el zigzagueo es visible.

Ese diagnóstico es el que motiva todo lo demás. Momentum (clase 246) amortigua la oscilación acumulando velocidad; los métodos adaptativos escalan cada coordenada por separado; los de segundo orden corrigen la anisotropía directamente. Todos atacan el mismo problema.

Ejemplo trabajado

Descenso sobre una cuadrática mal condicionada.

f(x,y) = (x−3)² + 5(y+1)²,  lr = 0.08
inicio (0,0),  mínimo teórico (3,−1)

paso    x                 f
  1     (0.48, −0.80)     6.55
  5     (1.72, −0.99)     1.63
 20     (2.90, −1.00)     0.0092
 60     (3.00, −1.00)     1.6e−09

gradiente final: 8.9e−05     → convergió       ✓

Límite de estabilidad: α < 2/10 = 0.2

Qué ejecuta el laboratorio

Descenso de gradiente sobre una cuadrática con historial.

GrupoSalidas
Resultados numéricos (1)learning_rate
Comprobaciones (1)convergio
compmath run 171

Errores conceptuales frecuentes

  1. Elegir el learning rate sin considerar la curvatura del problema.
  2. Detener por número de iteraciones sin comprobar la norma del gradiente.
  3. Suponer que la convergencia en una cuadrática predice la de un problema no convexo.

Dónde se usa

Entrenamiento de cualquier modelo por gradiente, ajuste del learning rate y diagnóstico de divergencias.

Bibliografía de la clase

172 · Multiplicadores de Lagrange

Parte 08 · clase 12 de 20 · demostración lagrange_multipliers

Lagrange convierte una restricción en un término del objetivo, y su multiplicador mide el precio de esa restricción.

L = f(x) − λ(g(x) − c)
∇f = λ∇g en el óptimo
λ = tasa de mejora del óptimo por unidad de relajación

Fundamentos

Optimizar con una restricción de igualdad no se puede hacer anulando el gradiente del objetivo: el óptimo restringido rara vez es un punto crítico libre. La condición correcta es que los gradientes del objetivo y de la restricción sean paralelos: ∇f = λ∇g.

La intuición geométrica es clara. Si el gradiente del objetivo tuviera una componente tangente a la curva de restricción, se podría mejorar moviéndose a lo largo de ella. En el óptimo, esa componente tangente debe anularse, y eso ocurre exactamente cuando ambos gradientes son colineales.

El multiplicador λ no es un artificio de cálculo: tiene interpretación económica directa. Es la tasa a la que mejora el óptimo si se relaja la restricción una unidad —el precio sombra en programación lineal—. En el ejemplo del laboratorio, maximizar xy con x+y=10 da λ = 5: cada unidad adicional de presupuesto añade 5 al óptimo.

La generalización a restricciones de desigualdad son las condiciones KKT (clase 257), que añaden dos requisitos: los multiplicadores deben ser no negativos y debe cumplirse la holgura complementaria —una restricción inactiva tiene multiplicador nulo—. Toda la optimización con restricciones se construye sobre esta clase.

Ejemplo trabajado

Maximizar xy sujeto a x + y = 10.

L = xy − λ(x + y − 10)

Condiciones:
  ∂L/∂x: y = λ
  ∂L/∂y: x = λ
  restricción: x + y = 10

Solución: x = y = 5,  λ = 5,  valor óptimo = 25

Verificación con alternativas:
  x=1 → 9    x=3 → 21   x=5 → 25   x=7 → 21   x=9 → 9
  el máximo está en x=5                        ✓

Interpretación de λ: si el presupuesto sube a 11,
el óptimo sube aproximadamente 5 unidades.

Qué ejecuta el laboratorio

Maximizar xy sujeto a x+y=10 con multiplicadores de Lagrange.

GrupoSalidas
Resultados numéricos (2)valor_optimo, multiplicador_lambda
Comprobaciones (1)es_el_maximo
compmath run 172

Errores conceptuales frecuentes

  1. Buscar el óptimo restringido anulando solo el gradiente del objetivo.
  2. Ignorar la interpretación de λ como precio sombra.
  3. Aplicar Lagrange a restricciones de desigualdad sin las condiciones KKT.

Dónde se usa

Optimización con restricciones, SVM con margen máximo, regularización vista como restricción, y precios sombra en asignación de recursos.

Bibliografía de la clase

173 · Integrales dobles

Parte 08 · clase 13 de 20 · demostración double_integrals

Fubini permite calcular una integral doble como dos integrales simples encadenadas.

∬f dA = ∫(∫f dx)dy
sobre un rectángulo: los límites son constantes

Fundamentos

Una integral doble acumula sobre una región del plano en lugar de sobre un intervalo. Su definición es un límite de sumas sobre una malla de rectángulos, análoga a la suma de Riemann de la clase 153.

El teorema de Fubini permite calcularla como dos integrales simples encadenadas, en cualquier orden, siempre que la función sea integrable. Esa reducción es lo que la hace calculable: en lugar de un límite bidimensional, dos aplicaciones del cálculo de una variable.

El coste computacional de la integración numérica en varias dimensiones crece exponencialmente: una malla con n puntos por dimensión requiere nᵈ evaluaciones. En dimensión 10 con 100 puntos por eje son 10²⁰ evaluaciones: imposible. Esa es la maldición de la dimensionalidad aplicada a la integración.

La salida es Monte Carlo (clase 198), cuyo error decae como 1/√n independientemente de la dimensión. Por eso toda expectativa de alta dimensión en machine learning se estima muestreando en lugar de integrando en malla: el ELBO de un VAE, la esperanza de una política en RL, cualquier integral sobre el espacio de parámetros.

Ejemplo trabajado

Integral doble de xy sobre un rectángulo.

∬ xy dA  sobre [0,2] × [0,3]

Por Fubini:
  ∫₀³ (∫₀² xy dx) dy = ∫₀³ (2y) dy = 9

Valor exacto: (2²/2)·(3²/2) = 2·4.5 = 9

Numérico con malla 200×200: 9.00000000
error: 1.1e−13                              ✓

Coste: 40 000 evaluaciones para 2 dimensiones.
En 10 dimensiones serían 100¹⁰.

Qué ejecuta el laboratorio

Integral doble sobre un rectángulo por suma de Riemann.

GrupoSalidas
Resultados numéricos (4)aproximacion, valor_exacto, error, subdivisiones
Comprobaciones (0)
compmath run 173

Errores conceptuales frecuentes

  1. Intercambiar el orden de integración sin comprobar las hipótesis de Fubini.
  2. Usar integración en malla en dimensión alta.
  3. Confundir los límites al cambiar el orden en regiones no rectangulares.

Dónde se usa

Probabilidades conjuntas, marginalización, cálculo de masas y centros de gravedad, y normalización de densidades multivariantes.

Bibliografía de la clase

174 · Integrales triples

Parte 08 · clase 14 de 20 · demostración triple_integrals

Una integral triple con densidad variable calcula masa; el volumen es el caso de densidad unitaria.

V = ∭ dV
m = ∭ ρ(x,y,z) dV

Fundamentos

La integral triple extiende la acumulación a tres dimensiones. Con integrando 1 da el volumen; con una función de densidad da la masa. Esa distinción —volumen como caso particular de masa con densidad constante— es la que se generaliza a la probabilidad: la masa total de una densidad debe ser 1.

El coste crece con el cubo del refinamiento: una malla de 60 puntos por eje son 216 000 celdas para un cubo unitario. Ya en tres dimensiones la integración en malla empieza a ser cara, y en más dimensiones deja de ser viable.

Los cambios de coordenadas —cilíndricas, esféricas— simplifican regiones con simetría, al precio de introducir el jacobiano como factor: r en cilíndricas, r²sin φ en esféricas. Ese factor es el determinante de la clase 117 corrigiendo el cambio de volumen, y olvidarlo es el error clásico.

En probabilidad, la integral triple aparece al marginalizar una densidad conjunta de tres variables, y la normalización de la gaussiana multivariante es una integral de este tipo resuelta con un cambio de variable que diagonaliza la covarianza.

Ejemplo trabajado

Volumen y masa de un cubo con densidad variable.

región: cubo unitario [0,1]³
densidad: ρ(x,y,z) = 1 + x

volumen numérico: 1.00000000     exacto 1     ✓

masa = ∭(1+x)dV = 1 + 1/2 = 1.5
masa numérica: 1.500000
error: 4.2e−07

malla: 60³ = 216 000 celdas

Qué ejecuta el laboratorio

Volumen y masa de un cubo con densidad variable.

GrupoSalidas
Resultados numéricos (5)volumen_aproximado, volumen_exacto, masa_aproximada, masa_exacta_3/2, error_masa
Comprobaciones (0)
compmath run 174

Errores conceptuales frecuentes

  1. Olvidar el jacobiano al cambiar a coordenadas cilíndricas o esféricas.
  2. Usar integración en malla en más de tres o cuatro dimensiones.
  3. Confundir volumen (densidad 1) con masa (densidad variable).

Dónde se usa

Masa y centro de gravedad, marginalización de densidades conjuntas, normalización de distribuciones multivariantes y cálculo de momentos.

Bibliografía de la clase

175 · Campos vectoriales

Parte 08 · clase 15 de 20 · demostración vector_fields

Un campo conservativo es el gradiente de un potencial; no todos los campos lo son.

campo: F(x,y) = (P, Q)
conservativo ⟺ F = ∇φ para algún potencial φ
condición necesaria: ∂P/∂y = ∂Q/∂x

Fundamentos

Un campo vectorial asigna un vector a cada punto: velocidad de un fluido, fuerza gravitatoria, dirección de descenso. La distinción fundamental es entre campos que derivan de un potencial y los que no.

Un campo conservativo es el gradiente de una función escalar. Su propiedad característica es que el trabajo entre dos puntos no depende del camino, solo de los extremos, y por tanto el trabajo en un circuito cerrado es cero. La gravedad es conservativa; el rozamiento no.

El campo F(x,y) = (−y, x) del laboratorio es puramente rotacional: en cada punto es perpendicular al radio, así que hace girar sin acercar ni alejar. No es conservativo, y su rotacional es no nulo (clase 176).

La conexión con optimización es exacta: el campo de gradientes de una función escalar es siempre conservativo por construcción, y esa es la razón por la que el descenso de gradiente no puede quedar atrapado en un ciclo. En cambio, en optimización de dos jugadores —los GAN de la clase 333— el campo de actualizaciones no es un gradiente de nada, puede tener componente rotacional, y de ahí que el entrenamiento pueda ciclar en lugar de converger.

Ejemplo trabajado

Un campo rotacional y uno conservativo.

Campo F(x,y) = (−y, x)      rotacional puro
  en (1,0): (0, 1)
  en (0,1): (−1, 0)
  en (1,1): (−1, 1)

  F·(x,y) = −xy + yx = 0     ✓ perpendicular al radio

Campo G = ∇(x²+y²) = (2x, 2y)   conservativo
  en (1,0): (2, 0)
  en (1,1): (2, 2)
  deriva del potencial φ = x²+y²

Qué ejecuta el laboratorio

Campo vectorial, líneas de flujo y campo conservativo.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (2)F_es_perpendicular_al_radio, G_deriva_de_un_potencial
compmath run 175

Errores conceptuales frecuentes

  1. Suponer que todo campo vectorial tiene potencial.
  2. Confundir un campo vectorial con una función escalar.
  3. Olvidar que la condición ∂P/∂y = ∂Q/∂x es necesaria pero no suficiente en dominios no simplemente conexos.

Dónde se usa

Campos de fuerzas en física, campos de gradientes en optimización, dinámica de entrenamiento adversarial y flujos en modelos generativos continuos.

Bibliografía de la clase

176 · Divergencia y rotacional

Parte 08 · clase 16 de 20 · demostración divergence_curl

La divergencia mide fuente o sumidero; el rotacional mide circulación local.

div F = ∂P/∂x + ∂Q/∂y
rot F = ∂Q/∂x − ∂P/∂y  (en 2D)
div(∇φ) = Δφ  (laplaciano)

Fundamentos

La divergencia y el rotacional son las dos formas de derivar un campo vectorial. La divergencia es un escalar que mide el flujo neto que sale de un entorno del punto: positiva indica fuente, negativa sumidero, nula indica que lo que entra sale. El rotacional mide la tendencia del campo a hacer girar un objeto colocado en ese punto.

Ambos aparecen en las ecuaciones de Maxwell y en la mecánica de fluidos, y su combinación da los teoremas integrales —Green, Gauss, Stokes— que relacionan lo que ocurre en el interior de una región con lo que ocurre en su frontera.

La divergencia del gradiente es el laplaciano, Δφ = div(∇φ), que es la traza del Hessiano. Ese operador aparece en la ecuación del calor, en la de ondas y —lo que importa aquí— en el Laplaciano de un grafo (clase 336), que es su análogo discreto y es la base del clustering espectral y de las GNN.

El teorema clave para esta parte es que el rotacional de un gradiente es siempre cero. Por tanto, un campo con rotacional no nulo no puede ser un campo de gradientes, y ese es el criterio para detectar dinámicas que no derivan de ninguna función objetivo.

Ejemplo trabajado

Divergencia y rotacional de F = (x², xy).

F(x,y) = (x², xy)   en el punto (1,2)

div F = ∂(x²)/∂x + ∂(xy)/∂y = 2x + x = 3x
  analítica en (1,2): 3
  numérica:           3.000000            ✓

rot F = ∂(xy)/∂x − ∂(x²)/∂y = y − 0 = y
  analítica en (1,2): 2
  numérica:           2.000000            ✓

rot ≠ 0  →  F NO es un campo de gradientes

Qué ejecuta el laboratorio

Divergencia y rotacional calculados numéricamente.

GrupoSalidas
Resultados numéricos (4)divergencia_numerica, divergencia_analitica_2x+x, rotacional_numerico, rotacional_analitico_y
Comprobaciones (0)
compmath run 176

Errores conceptuales frecuentes

  1. Confundir divergencia (escalar) con rotacional (vector en 3D, escalar en 2D).
  2. Suponer que un campo con divergencia nula es conservativo: son propiedades distintas.
  3. Calcular estas derivadas con h demasiado pequeño y amplificar el redondeo.

Dónde se usa

Mecánica de fluidos, electromagnetismo, laplaciano de grafos, difusión y detección de dinámicas no conservativas en entrenamiento adversarial.

Bibliografía de la clase

177 · Cálculo matricial

Parte 08 · clase 17 de 20 · demostración matrix_calculus

El cálculo matricial da fórmulas cerradas para gradientes respecto a vectores y matrices.

∂(aᵀx)/∂x = a
∂(xᵀAx)/∂x = (A + Aᵀ)x,  y 2Ax si A es simétrica
∂‖x‖²/∂x = 2x

Fundamentos

Derivar respecto a un vector o una matriz componente a componente es tedioso y propenso a error. El cálculo matricial ofrece fórmulas cerradas para los patrones que aparecen una y otra vez, y saberlas de memoria acelera cualquier deducción en machine learning.

Las dos más útiles son inmediatas: la derivada de una forma lineal aᵀx es a, y la de una forma cuadrática xᵀAx es (A + Aᵀ)x, que se reduce a 2Ax cuando A es simétrica —el caso habitual, porque toda forma cuadrática se puede escribir con matriz simétrica—.

El escollo práctico es la convención de layout. En la convención del denominador el gradiente es un vector columna; en la del numerador, una fila. Ambas son correctas y las fórmulas difieren en una transposición. Mezclarlas produce errores de shape que a veces no se detectan porque las dimensiones cuadran por casualidad.

La recomendación práctica es fijar una convención, declararla en el código y verificar siempre las fórmulas contra diferencias finitas. El laboratorio hace exactamente eso, y es lo mismo que hace torch.autograd.gradcheck.

Ejemplo trabajado

Dos identidades verificadas numéricamente.

x = (1, 2),  a = (4, −1),  A = [[2,1],[1,3]] (simétrica)

Forma lineal aᵀx:
  fórmula:  ∂/∂x = a = (4, −1)
  numérica: (4.000000, −1.000000)          ✓

Forma cuadrática xᵀAx:
  fórmula:  (A + Aᵀ)x = 2Ax = (8, 14)
  numérica: (8.00000, 14.00000)            ✓

Convención usada: denominador (gradiente como columna)

Qué ejecuta el laboratorio

Identidades básicas de cálculo matricial.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (0)
compmath run 177

Errores conceptuales frecuentes

  1. Mezclar convenciones de layout entre partes del mismo código.
  2. Aplicar la fórmula 2Ax a una matriz no simétrica.
  3. No verificar las fórmulas contra diferencias finitas.

Dónde se usa

Deducción de gradientes de funciones de pérdida, backpropagation analítica, métodos de segundo orden y cualquier derivación en un paper de machine learning.

Bibliografía de la clase

178 · Derivadas respecto de vectores y matrices

Parte 08 · clase 18 de 20 · demostración vector_matrix_derivatives

El gradiente de la pérdida cuadrática es 2Xᵀ(Xw − y)/n: esa expresión es el gradiente de una capa lineal.

L(w) = ‖Xw − y‖²/n
∇L = 2Xᵀ(Xw − y)/n

Fundamentos

Esta clase deduce la fórmula que más se usa en todo el machine learning. La pérdida cuadrática media de un modelo lineal es ‖Xw − y‖²/n, y su gradiente respecto a los pesos es 2Xᵀr/n, donde r = Xw − y es el vector de residuos.

La estructura de esa expresión merece leerse despacio, porque es la misma en modelos mucho más complejos. El residuo mide el error de cada observación; Xᵀ lo proyecta de vuelta al espacio de parámetros, atribuyendo a cada peso la parte del error que le corresponde según su feature; y la división por n promedia.

En una red neuronal ocurre exactamente lo mismo capa a capa: se calcula el error en la salida y se «retropropaga» multiplicando por la transpuesta de la matriz de pesos. La aparición de Wᵀ en backpropagation no es un truco: es esta fórmula.

Igualar el gradiente a cero da XᵀXw = Xᵀy, las ecuaciones normales de la clase 131. Optimización iterativa y solución cerrada llegan al mismo sitio; la primera escala a millones de parámetros y la segunda no.

Ejemplo trabajado

Gradiente de la pérdida cuadrática de un modelo lineal.

X = [[1,2],[2,1],[3,4]]   y = (5, 4, 11)   w = (1, 1)

predicciones: Xw = (3, 3, 7)
residuos r = Xw − y = (−2, −1, −4)

MSE = (4 + 1 + 16)/3 = 7.0

∇w = 2Xᵀr/n = 2·(−16, −21)/3 = (−10.6667, −14.0)
numérico:                       (−10.6667, −14.0)   ✓

Igualar a cero → ecuaciones normales XᵀXw = Xᵀy

Qué ejecuta el laboratorio

Gradiente de una pérdida cuadrática respecto de los pesos.

GrupoSalidas
Resultados numéricos (1)perdida_MSE
Comprobaciones (2)coinciden, esto_es_una_capa_lineal
compmath run 178

Errores conceptuales frecuentes

  1. Olvidar el factor 2 o la división por n.
  2. Transponer X en el lado equivocado y obtener un shape incorrecto.
  3. Confundir el residuo (predicción menos objetivo) con su opuesto: cambia el signo del gradiente.

Dónde se usa

Gradiente de una capa lineal, regresión por descenso de gradiente, deducción de backpropagation y toda función de pérdida cuadrática.

Bibliografía de la clase

179 · Automatic differentiation y computational graphs

Parte 08 · clase 19 de 20 · demostración autodiff

La autodiferenciación en modo reverso obtiene todos los gradientes con un barrido hacia adelante y uno hacia atrás.

coste del modo reverso: O(1) barridos, independiente del número de variables
coste de diferencias finitas: 2 evaluaciones por variable

Fundamentos

La autodiferenciación no es derivación simbólica ni numérica: es una tercera opción. Registra las operaciones elementales que se ejecutan formando un grafo de cómputo, y luego aplica la regla de la cadena sobre ese grafo. El resultado es exacto salvo redondeo, sin la explosión de expresiones del cálculo simbólico ni el error de truncamiento de las diferencias finitas.

El modo reverso es el que usan los frameworks de deep learning. Hace un barrido hacia adelante guardando valores intermedios y otro hacia atrás propagando derivadas, y obtiene todas las derivadas parciales en ese único par de barridos. Con un millón de parámetros, las diferencias finitas necesitarían dos millones de evaluaciones; el modo reverso necesita el equivalente a unas pocas.

El precio es la memoria: hay que guardar los valores intermedios del barrido hacia adelante para usarlos en el de vuelta. Esa es la razón por la que entrenar consume mucha más memoria que inferir, y por la que existe el gradient checkpointing, que recalcula partes en lugar de guardarlas.

La implementación del programa (Var en part08.py) tiene unas cien líneas y hace exactamente lo mismo que PyTorch en su núcleo: cada operación registra cómo propagar el gradiente, backward() construye el orden topológico y lo recorre al revés acumulando. Lo que añaden los frameworks reales es tensores, GPU, fusión de operaciones y compilación, no un mecanismo distinto.

Ejemplo trabajado

Autodiferenciación de una expresión con dos variables.

z = (x·y + sin x)·y²    en x = 2, y = 3

valor: 63.1852

dz/dx autodiff:  30.7482
dz/dx numérico:  30.7482                     ✓
dz/dy autodiff:  60.7902
dz/dy numérico:  60.7902                     ✓

Coste:
  autodiff:            1 barrido adelante + 1 atrás
  diferencias finitas: 2 evaluaciones por variable

Qué ejecuta el laboratorio

Autodiferenciación en modo reverso sobre el grafo de cómputo.

GrupoSalidas
Resultados numéricos (5)valor, dz/dx_autodiff, dz/dx_numerico, dz/dy_autodiff, dz/dy_numerico
Comprobaciones (1)coinciden
compmath run 179

Errores conceptuales frecuentes

  1. Confundir autodiferenciación con derivación simbólica o numérica.
  2. Olvidar acumular gradientes en nodos reutilizados.
  3. Usar el modo directo cuando hay muchas entradas y una salida.

Dónde se usa

Entrenamiento de cualquier red neuronal, optimización de hiperparámetros por gradiente, física diferenciable y gradientes de simuladores.

Bibliografía de la clase

180 · Capstone: backpropagation manual y automática

Parte 08 · clase 20 de 20 · demostración capstone_backpropagation

Backpropagation manual y autodiferenciación dan exactamente el mismo número: autograd no es magia.

cadena hacia atrás: dL/dw = dL/da · da/dz · dz/dw
tanh': 1 − tanh²

Fundamentos

El capstone cierra la parte comparando dos caminos hacia el mismo resultado. Se define una red mínima —dos capas con tanh y pérdida cuadrática—, se derivan sus gradientes a mano aplicando la regla de la cadena paso a paso, y se calculan también con el motor de autodiferenciación. Ambos deben coincidir hasta el último dígito.

La derivación manual hace explícito lo que autograd oculta. Se empieza por dL/da₂, se multiplica por la derivada de la activación para obtener dL/dz₂, y se distribuye a los parámetros de esa capa. Después se propaga hacia atrás multiplicando por el peso, se vuelve a multiplicar por la derivada de la activación, y se distribuye a la capa anterior. Ese patrón —error, derivada de activación, distribución, propagación— se repite capa a capa.

Que los dos caminos coincidan exactamente es la comprobación que convierte autograd de caja negra en herramienta comprendida. Un practicante que ha hecho este ejercicio una vez sabe qué está calculando loss.backward(), por qué hace falta zero_grad() y por qué el gradiente se desvanece en redes profundas.

Es también la técnica de depuración estándar: cuando un gradiente personalizado parece mal, se compara contra diferencias finitas. torch.autograd.gradcheck hace exactamente esa comparación, y es la primera herramienta que hay que usar al implementar una capa nueva.

Ejemplo trabajado

Comparar backpropagation manual y automática.

Red: x → tanh(w₁x + b₁) → tanh(w₂h + b₂) → MSE
x = 0.5, objetivo = 1.0
w₁ = 1.2, b₁ = −0.3, w₂ = 0.8, b₂ = 0.1

predicción: 0.5216
pérdida:    0.2288

parámetro   manual      autodiff     coinciden
w₁         −0.1495     −0.1495          ✓
b₁         −0.2990     −0.2990          ✓
w₂         −0.2016     −0.2016          ✓
b₂         −0.6970     −0.6970          ✓

Conclusión: autograd es la regla de la cadena
en orden topológico inverso.

Qué ejecuta el laboratorio

Capstone: backpropagation manual y automática sobre la misma red.

GrupoSalidas
Resultados numéricos (3)prediccion, objetivo, perdida
Comprobaciones (1)coinciden
compmath run 180

Errores conceptuales frecuentes

  1. Olvidar multiplicar por la derivada de la activación en cada capa.
  2. Confundir el orden de propagación: se va de la pérdida hacia las entradas.
  3. No verificar un gradiente personalizado contra diferencias finitas.

Dónde se usa

Depuración de gradientes, implementación de capas personalizadas, comprensión de loss.backward() y diagnóstico de gradientes que se desvanecen.

Bibliografía de la clase

Parte 09 — Probabilidad y procesos aleatorios

Nivel universitario · 20 clases · 80 horas · motor part09

Axiomas, probabilidad condicional, Bayes, variables aleatorias, esperanza, varianza, distribuciones clave, LGN, TCL, Monte Carlo y cadenas de Markov.

La probabilidad es el lenguaje con el que se habla de lo que no se sabe. No mide ignorancia vaga: la mide con la misma precisión con la que el álgebra lineal mide una rotación. Esta parte construye ese lenguaje desde los axiomas hasta las cadenas de Markov, y en el camino desarma tres o cuatro confusiones que arruinan más análisis de datos que cualquier error de programación.

Las clases 181 a 186 son los cimientos. Un experimento aleatorio produce resultados de un espacio muestral, un evento es un subconjunto de ese espacio, y una probabilidad es una función que asigna números a eventos cumpliendo tres axiomas de Kolmogorov. Todo lo demás —la regla de la suma, la del producto, la probabilidad condicional, la independencia y el teorema de Bayes— se deduce de ahí. No hay nada más que memorizar.

El punto de inflexión es la clase 184, y merece detenerse: condicionar es cambiar de espacio muestral. P(A|B) no es una probabilidad distinta de A, es la probabilidad de A dentro de un mundo donde B ya ocurrió. De esa lectura sale de forma natural que P(A|B) y P(B|A) no tienen por qué parecerse en nada, y la clase 186 lo muestra con el ejemplo más costoso de la vida real: un test con 99 % de sensibilidad y 99 % de especificidad, aplicado a una enfermedad que afecta a 1 de cada 1000 personas, produce un positivo que solo acierta el 9 % de las veces. Diez falsos positivos por cada verdadero. Confundir esas dos probabilidades se llama falacia del fiscal y ha mandado gente a la cárcel.

Las clases 187 a 195 introducen las variables aleatorias y sus resúmenes. Una variable aleatoria no es una variable ni es aleatoria: es una función del espacio muestral a los números. Ese cambio de perspectiva permite hablar de esperanza, varianza, covarianza y correlación, y trabajar con distribuciones concretas —Bernoulli, binomial, Poisson, exponencial y normal— en vez de con espacios muestrales explícitos. Dos hechos hay que grabar: la esperanza es lineal siempre, incluso con variables dependientes; la varianza solo se suma bajo independencia.

Las clases 196 y 197 son los dos teoremas límite que sostienen toda la estadística. La ley de los grandes números dice que la media muestral converge a la media real; el teorema central del límite dice a qué velocidad y con qué forma. El TCL es el que explica por qué la campana de Gauss aparece en fenómenos que no tienen nada de gaussiano: si un resultado es la suma de muchos efectos pequeños e independientes, su distribución tiende a la normal, venga de donde venga.

Las clases 198 y 199 pasan a la simulación. Monte Carlo estima integrales y probabilidades muestreando, con un error que cae como 1/√n: cuadruplicar el número de muestras solo duplica la precisión, y esa lentitud es el precio a cambio de que la velocidad no dependa de la dimensión. Las cadenas de Markov formalizan los procesos sin memoria y su distribución estacionaria, que es la base de MCMC, de PageRank y del proceso de difusión que genera imágenes.

El vínculo con la inteligencia artificial es directo y no metafórico. Un modelo de lenguaje es literalmente una distribución condicional P(token | contexto); la temperatura de muestreo modifica esa distribución; un modelo de difusión es un proceso estocástico cuyo reverso se aprende; y toda función de pérdida por máxima verosimilitud es un enunciado probabilístico. Sin esta parte, el resto del programa se lee pero no se entiende.

Ideas centrales

Por qué importa en IA

Un modelo de lenguaje es una distribución condicional sobre el siguiente token; la difusión es un proceso estocástico con reverso aprendido.

Errores frecuentes de la parte

Glosario de la parte (35 términos)

TérminoDefiniciónClase
Axiomas de KolmogorovP(A) ≥ 0, P(Ω) = 1 y aditividad para eventos disjuntos. Toda la teoría se deduce de estos tres.182
Cadena de MarkovProceso donde el siguiente estado depende solo del actual, no de la historia previa.199
ConjugaciónPrior y posterior de la misma familia. Beta es conjugada de la binomial y la actualización es sumar.200
Corrección de BesselDividir entre n−1 en vez de n para que la varianza muestral sea un estimador insesgado.190
Correlación de PearsonCovarianza normalizada por las desviaciones. Vive en [−1, 1] y solo detecta relación lineal.191
CovarianzaE[(X−μₓ)(Y−μᵧ)]. Mide variación conjunta; su valor depende de las unidades.191
Distribución binomialNúmero de éxitos en n ensayos independientes. Media np, varianza np(1−p).192
Distribución conjuntaProbabilidad de pares de valores. De ella se obtienen marginales sumando y condicionales dividiendo.195
Distribución de PoissonCuenta eventos raros en un intervalo. Su media y su varianza valen ambas λ.193
Distribución estacionariaVector π que cumple πP = π. Una cadena ergódica converge a él desde cualquier inicio.199
Distribución marginalDistribución de una variable obtenida sumando la conjunta sobre la otra.195
Distribución normalCampana simétrica definida por μ y σ. Regla 68-95-99,7 dentro de una, dos y tres desviaciones.194
Ensayo de BernoulliExperimento con dos resultados y probabilidad p de éxito. Ladrillo de la binomial.192
Error estándarσ/√n. Desviación estándar de la media muestral; cae como la raíz del tamaño.197
Espacio muestralConjunto Ω de todos los resultados posibles de un experimento. Se escribe antes que cualquier cálculo.181
EsperanzaE[X] = Σ x·P(X=x). Media ponderada por probabilidad; es lineal incluso sin independencia.189
EventoSubconjunto del espacio muestral. Ocurre si el resultado observado pertenece a él.181
Experimento aleatorioProcedimiento cuyo resultado no se puede predecir individualmente, pero sí describir en conjunto.181
Falacia del jugadorCreer que los resultados pasados compensan a los futuros. La moneda no tiene memoria.196
Falta de memoriaPropiedad de la exponencial y la geométrica: P(X > s+t | X > s) = P(X > t).193
Función de densidadpdf. Su integral sobre un intervalo da la probabilidad. Puede superar 1 sin contradicción.188
Función de distribucióncdf. F(x) = P(X ≤ x). Es no decreciente y va de 0 a 1.188
Función de masapmf. Asigna a cada valor discreto su probabilidad; todas suman 1.187
Inclusión-exclusiónP(A∪B) = P(A) + P(B) − P(A∩B). El término restado corrige el solapamiento contado dos veces.183
IndependenciaA y B son independientes si P(A∩B) = P(A)·P(B). Se comprueba, no se supone.185
Ley de los grandes númerosLa media muestral converge a la esperanza cuando n crece. No dice nada de una muestra concreta.196
Monte CarloEstimar cantidades por muestreo aleatorio. Su error cae como 1/√n en cualquier dimensión.198
Prior y posteriorCreencia antes y después de ver datos. Bayes es la regla que lleva de una a otra.200
Probabilidad basePrevalencia del evento antes de ver evidencia. Ignorarla es la falacia de la tasa base.186
Probabilidad condicionalP(A|B) = P(A∩B)/P(B). Es la probabilidad de A dentro del espacio reducido a B.184
Puntuación zz = (x − μ)/σ. Expresa un valor en desviaciones estándar y permite comparar escalas distintas.194
Teorema central del límiteLa media de n variables iid tiende a una normal de media μ y desviación σ/√n.197
Teorema de BayesP(H|E) = P(E|H)·P(H)/P(E). Invierte el condicionamiento y actualiza una creencia con evidencia.186
Variable aleatoriaFunción que asigna un número a cada resultado del espacio muestral. Ni es variable ni es aleatoria.187
VarianzaVar(X) = E[(X−μ)²] = E[X²] − E[X]². Mide dispersión en unidades al cuadrado.190

Bibliografía de la parte

181 · Experimentos, espacio muestral y eventos

Parte 09 · clase 1 de 20 · demostración sample_space

Antes de calcular ninguna probabilidad hay que escribir el espacio muestral.

Ω = conjunto de resultados posibles
A ⊆ Ω  es un evento
modelo equiprobable: P(A) = |A| / |Ω|

Fundamentos

Un experimento aleatorio es cualquier procedimiento cuyo resultado individual no se puede predecir pero cuyo comportamiento agregado sí se puede describir. Lanzar dos dados, medir el tiempo entre dos peticiones a un servidor o muestrear el siguiente token de un modelo de lenguaje son experimentos aleatorios en ese sentido técnico.

El espacio muestral Ω es el conjunto de todos los resultados posibles, y escribirlo explícitamente es el paso que más problemas resuelve. La mayoría de los errores clásicos de probabilidad —el problema de Monty Hall, la paradoja de los dos niños, la del cumpleaños— no son errores de cálculo: son espacios muestrales mal escritos.

Un evento es un subconjunto de Ω. «La suma es 7» no es un resultado, es el conjunto de los seis pares que suman 7. Esta identificación entre eventos y conjuntos es lo que permite usar unión, intersección y complemento como operaciones lógicas: «A o B» es A∪B, «A y B» es A∩B, «no A» es Aᶜ.

El modelo equiprobable —contar casos favorables entre casos posibles— es solo un caso particular, válido cuando hay simetría física que justifique que todos los resultados pesan igual. Con dos dados, Ω tiene 36 pares ordenados, no 21 sumas: las sumas no son equiprobables, y confundir «resultados» con «valores de interés» es el error que hace que la gente calcule P(suma=7) = 1/11.

Ejemplo trabajado

Dos dados equilibrados: el espacio muestral y dos eventos.

Ω = {(1,1), (1,2), ..., (6,6)}            |Ω| = 6 × 6 = 36

A = "la suma es 7"
  = {(1,6), (2,5), (3,4), (4,3), (5,2), (6,1)}     |A| = 6
  P(A) = 6/36 = 1/6 ≈ 0,1667

B = "ambos dados son pares"
  = {2,4,6} × {2,4,6}                              |B| = 9
  P(B) = 9/36 = 0,25

Error frecuente: tomar Ω = {2,3,...,12} y decir P(suma=7) = 1/11.
Esas 11 sumas NO son equiprobables: 7 sale de 6 formas, 2 sale de 1.

Qué ejecuta el laboratorio

Espacio muestral, eventos y su probabilidad en un modelo equiprobable.

GrupoSalidas
Resultados numéricos (7)|Ω|, evento_suma_7, P(suma=7), evento_ambos_pares, P(ambos_pares), P(complemento_suma_7), suma_mas_probable
Comprobaciones (0)
compmath run 181

Errores conceptuales frecuentes

  1. Calcular antes de escribir Ω.
  2. Suponer equiprobabilidad sobre valores agregados en vez de sobre resultados elementales.
  3. Confundir el evento con uno de sus resultados.

Dónde se usa

Diseño de experimentos, cálculo de tasas de colisión en tablas hash, análisis de casos en pruebas aleatorizadas y cualquier modelado que empiece por enumerar lo que puede pasar.

Bibliografía de la clase

182 · Axiomas de probabilidad

Parte 09 · clase 2 de 20 · demostración axioms

Tres axiomas de Kolmogorov generan toda la teoría de la probabilidad.

1. P(A) ≥ 0
2. P(Ω) = 1
3. A∩B = ∅ ⟹ P(A∪B) = P(A) + P(B)
consecuencias: P(∅) = 0,  P(Aᶜ) = 1 − P(A)

Fundamentos

En 1933 Kolmogorov redujo la probabilidad a tres reglas. La primera dice que no hay probabilidades negativas; la segunda, que algo tiene que pasar; la tercera, que si dos eventos no pueden ocurrir a la vez, la probabilidad de que ocurra alguno es la suma. Nada más. Todo teorema de probabilidad es una consecuencia de estos tres enunciados.

De ellos se deducen inmediatamente las propiedades que se usan a diario. Como Ω y son disjuntos y su unión es Ω, resulta P(∅) = 0. Como A y Aᶜ son disjuntos y su unión es Ω, resulta la regla del complemento P(Aᶜ) = 1 − P(A), que es la herramienta más rentable del cálculo elemental: casi siempre es más fácil contar lo que no pasa.

También se deduce la monotonía: si A ⊆ B entonces P(A) ≤ P(B), y por tanto ninguna probabilidad puede pasar de 1. Un cálculo que devuelva 1,3 no está mal redondeado: está mal planteado, casi siempre por sumar eventos que se solapan sin restar la intersección.

Los axiomas no dicen qué probabilidades asignar. Esa es una decisión de modelado —por simetría, por frecuencia observada o por creencia subjetiva— y los axiomas solo garantizan que la asignación sea coherente. Esa separación entre estructura y modelo es lo que permite que frecuentistas y bayesianos usen la misma matemática y discrepen en la interpretación.

Ejemplo trabajado

Comprobación de los axiomas sobre una distribución de tres resultados.

Ω = {a, b, c}      P(a)=0,5   P(b)=0,3   P(c)=0,2

Axioma 1  no negatividad:  0,5 ≥ 0, 0,3 ≥ 0, 0,2 ≥ 0        ✓
Axioma 2  normalización:   0,5 + 0,3 + 0,2 = 1,0            ✓
Axioma 3  aditividad:      P({a,b}) = 0,5 + 0,3 = 0,8       ✓

Consecuencias:
  P(∅)  = 0
  P(aᶜ) = 1 − 0,5 = 0,5 = P(b) + P(c)                       ✓
  A={a} ⊆ B={a,b}:  0,5 ≤ 0,8                               ✓

Qué ejecuta el laboratorio

Los tres axiomas de Kolmogorov verificados sobre un modelo.

GrupoSalidas
Resultados numéricos (2)P(∅), P(Aᶜ)
Comprobaciones (5)axioma_1_no_negatividad, axioma_2_P(Ω)=1, axioma_3_aditividad, monotonia, P_nunca_supera_1
compmath run 182

Errores conceptuales frecuentes

  1. Obtener probabilidades mayores que 1 y aceptarlas como redondeo.
  2. Aplicar el tercer axioma a eventos que sí se solapan.
  3. Creer que los axiomas dicen cómo asignar las probabilidades iniciales.

Dónde se usa

Validación de distribuciones en código —comprobar que una salida softmax suma 1—, verificación de modelos probabilísticos y depuración de simuladores.

Bibliografía de la clase

183 · Reglas de suma y producto

Parte 09 · clase 3 de 20 · demostración sum_product_rules

La regla de la suma resta la intersección; olvidarla infla la probabilidad.

P(A∪B) = P(A) + P(B) − P(A∩B)
si A y B son disjuntos: P(A∪B) = P(A) + P(B)
P(A∩B) = P(A)·P(B|A)   (regla del producto)

Fundamentos

La regla de la suma general es inclusión-exclusión, la misma idea que apareció en combinatoria en la parte 04: al sumar P(A) y P(B) se cuentan dos veces los resultados que están en ambos, y hay que restarlos una vez. El caso simple —sumar sin más— solo vale cuando los eventos son mutuamente excluyentes, es decir, cuando su intersección es vacía.

La distinción importa porque el error es silencioso. Si dos eventos se solapan poco, la suma sin corregir da un número plausible pero equivocado, y nada avisa. Solo cuando el solapamiento es grande la suma supera 1 y el fallo se hace visible. La costumbre correcta es preguntarse siempre si los eventos pueden ocurrir a la vez.

La regla del producto es la definición de probabilidad condicional despejada: P(A∩B) = P(A)·P(B|A). Se lee como una secuencia: primero ocurre A, y después B dado que A ocurrió. Encadenada, produce la regla de la cadena probabilística P(A₁∩…∩Aₙ) = P(A₁)·P(A₂|A₁)·…·P(Aₙ|A₁…Aₙ₋₁), que es exactamente cómo un modelo de lenguaje autorregresivo factoriza la probabilidad de una frase.

Solo cuando hay independencia el producto se simplifica a P(A)·P(B). Ese atajo es tan cómodo que se aplica por inercia, y la clase 185 insiste en que la independencia es una propiedad que se verifica, no una comodidad que se asume.

Ejemplo trabajado

Dos dados: A = "el primero es 1", B = "la suma es 7".

P(A) = 6/36  = 0,1667
P(B) = 6/36  = 0,1667

A∩B = {(1,6)}          P(A∩B) = 1/36 = 0,0278

inclusión-exclusión:
  P(A∪B) = 0,1667 + 0,1667 − 0,0278 = 0,3056

conteo directo: |A∪B| = 11 pares    11/36 = 0,3056      ✓

sumar sin restar daría 0,3333: un 9 % de más, sin ningún aviso.

Qué ejecuta el laboratorio

Regla de la suma con y sin exclusión mutua.

GrupoSalidas
Resultados numéricos (6)P(A)_primer_dado_1, P(B)_suma_7, P(A∩B), P(A∪B)_inclusion_exclusion, P(A∪B)_directo, P(A)·P(B)
Comprobaciones (2)son_mutuamente_excluyentes, son_independientes
compmath run 183

Errores conceptuales frecuentes

  1. Sumar probabilidades de eventos que se solapan.
  2. Llamar «excluyentes» a eventos que solo son poco probables a la vez.
  3. Usar P(A)·P(B) sin haber comprobado la independencia.

Dónde se usa

Cálculo de tasas de fallo en sistemas redundantes, unión de condiciones en filtros de datos y factorización autorregresiva de secuencias.

Bibliografía de la clase

184 · Probabilidad condicional

Parte 09 · clase 4 de 20 · demostración conditional

Condicionar es reducir el espacio muestral, no cambiar la realidad.

P(A|B) = P(A∩B) / P(B),  con P(B) > 0
P(A∩B) = P(B)·P(A|B)
en general P(A|B) ≠ P(B|A)

Fundamentos

La probabilidad condicional responde a: «sabiendo que ocurrió B, ¿cuál es ahora la probabilidad de A?». La fórmula P(A|B) = P(A∩B)/P(B) se entiende mejor leída como un cambio de universo: el denominador reemplaza a P(Ω) = 1 porque el nuevo espacio muestral es B, y el numerador cuenta la parte de A que sobrevive dentro de él.

Nada cambia en el mundo al condicionar. Los dados ya cayeron; lo que cambia es la información disponible, y con ella el reparto de probabilidad. Esta lectura evita la idea mágica de que observar algo «modifica» el resultado, y explica por qué la probabilidad condicional es la herramienta natural para razonar con evidencia parcial.

La consecuencia práctica es que P(A|B) y P(B|A) son cantidades distintas. P(positivo | enfermo) es una propiedad del test; P(enfermo | positivo) es lo que le importa al paciente, y depende además de cuánta gente está enferma. Intercambiarlas es la falacia del fiscal, y la clase 186 pone los números.

Condicionar es además una técnica de cálculo. La ley de probabilidad total parte el espacio en casos disjuntos y suma: P(A) = Σ P(A|Bᵢ)·P(Bᵢ). Casi todo problema difícil de probabilidad se vuelve fácil al condicionar sobre la primera cosa que ocurre.

Ejemplo trabajado

Dos dados: probabilidad de que la suma pase de 9, sabiendo que el primero salió 6.

A = "suma > 9"          |A| = 6      P(A) = 6/36 = 0,1667
B = "primer dado = 6"   |B| = 6      P(B) = 6/36 = 0,1667

A∩B = {(6,4), (6,5), (6,6)}         P(A∩B) = 3/36 = 0,0833

P(A|B) = 0,0833 / 0,1667 = 0,5

Lectura directa: el espacio se reduce de 36 a 6 pares,
y 3 de esos 6 cumplen la condición → 3/6 = 0,5           ✓

La información triplicó la probabilidad: de 0,1667 a 0,5.

Qué ejecuta el laboratorio

P(A|B) cambia el espacio muestral, no la realidad.

GrupoSalidas
Resultados numéricos (5)P(suma>9), P(primer_dado=6), P(suma>9 | primer=6), formula_P(A∩B)/P(B), espacio_reducido
Comprobaciones (1)la_informacion_cambia_la_probabilidad
compmath run 184

Errores conceptuales frecuentes

  1. Intercambiar P(A|B) con P(B|A).
  2. Condicionar sobre un evento de probabilidad cero.
  3. Creer que observar el condicionante altera físicamente el experimento.

Dónde se usa

Diagnóstico médico, filtros de spam, sistemas de recomendación y toda la factorización condicional que usan los modelos generativos.

Bibliografía de la clase

185 · Independencia

Parte 09 · clase 5 de 20 · demostración independence

La independencia es una igualdad que se verifica, no una suposición cómoda.

A ⫫ B  ⟺  P(A∩B) = P(A)·P(B)
equivalente: P(A|B) = P(A)
independencia mutua exige la factorización para todo subconjunto

Fundamentos

Dos eventos son independientes cuando saber que uno ocurrió no cambia la probabilidad del otro. La definición operativa es la factorización P(A∩B) = P(A)·P(B), y la forma equivalente P(A|B) = P(A) deja claro el contenido intuitivo: la información no aporta nada.

Independencia no es lo mismo que exclusión mutua; de hecho son casi opuestas. Si A y B son excluyentes y ambos tienen probabilidad positiva, saber que ocurrió A garantiza que B no ocurrió, lo cual es una dependencia máxima. Confundir ambos conceptos es el error más común de esta clase.

Con más de dos eventos, la independencia por pares no basta. Existen tríos donde cada par factoriza pero el trío no, y en esos casos las conclusiones extraídas de suponer independencia mutua son falsas. La independencia mutua exige que la factorización se cumpla para todos los subconjuntos, no solo para los pares.

En la práctica, la independencia casi nunca es exacta: es una aproximación de modelado. Naive Bayes supone que las palabras de un texto son condicionalmente independientes dadas las clases, lo cual es falso, y aun así funciona razonablemente. El pecado no es suponer independencia, es suponerla sin decirlo y luego interpretar los resultados como si fuera cierta.

Ejemplo trabajado

Tres eventos sobre dos lanzamientos de moneda.

Ω = {CC, CX, XC, XX}, equiprobables

A = "primera cara"       P(A) = 0,5
B = "segunda cara"       P(B) = 0,5
C = "ambas iguales"      P(C) = 0,5

A∩B = {CC}   P = 0,25 = 0,5 × 0,5     A ⫫ B    ✓
A∩C = {CC}   P = 0,25 = 0,5 × 0,5     A ⫫ C    ✓
B∩C = {CC}   P = 0,25 = 0,5 × 0,5     B ⫫ C    ✓

A∩B∩C = {CC}  P = 0,25
producto de los tres = 0,125          0,25 ≠ 0,125

Independientes por pares, NO mutuamente independientes.

Qué ejecuta el laboratorio

Independencia se comprueba, no se supone.

GrupoSalidas
Resultados numéricos (6)P(A), P(B), P(A∩B), P(C), P(A∩C), P(A∩B∩C)
Comprobaciones (3)A_y_B_independientes, A_y_C_independientes, independencia_por_pares_no_implica_conjunta
compmath run 185

Errores conceptuales frecuentes

  1. Confundir independencia con exclusión mutua.
  2. Deducir independencia mutua a partir de independencia por pares.
  3. Suponer independencia entre observaciones correlacionadas en el tiempo.

Dónde se usa

Naive Bayes, análisis de fiabilidad de componentes, validación cruzada con datos temporales y todo supuesto de muestras iid en aprendizaje automático.

Bibliografía de la clase

186 · Teorema de Bayes

Parte 09 · clase 6 de 20 · demostración bayes

Un test muy preciso sobre una enfermedad rara produce sobre todo falsos positivos.

P(H|E) = P(E|H)·P(H) / P(E)
P(E) = P(E|H)·P(H) + P(E|Hᶜ)·P(Hᶜ)
posterior ∝ verosimilitud × prior

Fundamentos

El teorema de Bayes invierte el condicionamiento: convierte P(E|H), que suele ser lo que se sabe del mecanismo, en P(H|E), que es lo que se quiere saber tras observar la evidencia. Su demostración cabe en una línea —basta escribir P(H∩E) de las dos maneras posibles— y su importancia es difícil de exagerar.

La lectura que hay que interiorizar es posterior ∝ verosimilitud × prior. La verosimilitud P(E|H) mide cuán bien la hipótesis explica lo observado; el prior P(H) mide cuán plausible era la hipótesis de entrada. Un test excelente no puede compensar un prior muy bajo, y esa es la fuente de la falacia de la tasa base.

El caso numérico canónico: enfermedad con prevalencia 0,1 %, test con 99 % de sensibilidad y 99 % de especificidad. Entre 100 000 personas hay 100 enfermas, de las que el test marca 99, y 99 900 sanas, de las que marca 999. Total de positivos: 1098, de los cuales solo 99 están enfermos. P(enfermo | positivo) ≈ 9 %. Diez falsos positivos por cada verdadero, y el test no tiene ningún defecto.

La misma estructura aparece en juicios —«la probabilidad de esta coincidencia por azar es 1 entre un millón» no es la probabilidad de inocencia—, en detección de fraude, en alertas de seguridad y en cualquier clasificador aplicado a una clase minoritaria. Por eso los sistemas de detección de eventos raros se evalúan con precisión y exhaustividad, no con exactitud.

Ejemplo trabajado

Prevalencia 0,1 %, sensibilidad 99 %, especificidad 99 %.

Sobre 100 000 personas:

                 enfermos (100)   sanos (99 900)   total
  test +              99               999          1 098
  test −               1            98 901         98 902

P(enfermo | +) = 99 / 1 098 = 0,0902  ≈  9 %

Por la fórmula:
  P(+) = 0,99 × 0,001 + 0,01 × 0,999 = 0,01098
  P(enfermo|+) = (0,99 × 0,001) / 0,01098 = 0,0902     ✓

falsos positivos por cada verdadero: 999 / 99 ≈ 10,1

Si la prevalencia sube al 10 %, P(enfermo|+) sube al 92 %.
Cambió el prior, no el test.

Qué ejecuta el laboratorio

Test médico: por qué un positivo no significa enfermedad.

GrupoSalidas
Resultados numéricos (7)prevalencia_previa, sensibilidad_P(+|enfermo), especificidad_P(-|sano), P(+), P(enfermo|+), falsos_positivos_por_verdadero, con_prevalencia_10%
Comprobaciones (0)
compmath run 186

Errores conceptuales frecuentes

  1. Leer la sensibilidad del test como probabilidad de estar enfermo.
  2. Ignorar la prevalencia al interpretar un positivo.
  3. Evaluar clasificadores de clases raras con exactitud global.

Dónde se usa

Cribado médico, detección de fraude, filtros antispam, pruebas forenses y evaluación de clasificadores con clases desbalanceadas.

Bibliografía de la clase

187 · Variables aleatorias discretas

Parte 09 · clase 7 de 20 · demostración discrete_rv

Una variable aleatoria discreta se describe por su masa de probabilidad y su acumulada.

pmf: p(x) = P(X = x),  Σ p(x) = 1
cdf: F(x) = P(X ≤ x)
P(a < X ≤ b) = F(b) − F(a)

Fundamentos

Una variable aleatoria es una función que asigna un número a cada resultado del espacio muestral. El nombre es histórico y engañoso: ni es una variable en el sentido del álgebra, ni es aleatoria —la función es perfectamente determinista; lo aleatorio es su argumento—. Verla como función es lo que permite sumarlas, componerlas y tomar esperanzas.

Cuando el conjunto de valores es finito o numerable, la variable es discreta y queda descrita por su función de masa p(x) = P(X = x). Las dos condiciones que debe cumplir son las heredadas de los axiomas: valores no negativos y suma total igual a 1. Cualquier vector de números que cumpla eso es una distribución discreta válida, y una salida softmax lo es por construcción.

La función de distribución acumulada F(x) = P(X ≤ x) recoge la misma información en otra forma. Es no decreciente, empieza en 0 y termina en 1, y sirve para calcular probabilidades de intervalos restando. En la práctica, la cdf es también el mecanismo para generar muestras: aplicar su inversa a un uniforme produce muestras de la distribución, técnica que la clase 198 usa.

El paso de un espacio muestral a una variable aleatoria es una simplificación deliberada: se pierde información sobre qué resultado ocurrió y se conserva solo el número de interés. Esa pérdida es justamente lo que hace manejable el modelado.

Ejemplo trabajado

Una variable con cinco valores: masa, acumulada y esperanza.

x        0     1     2     3     4
p(x)    0,1   0,2   0,4   0,2   0,1     suma = 1,0    ✓
F(x)    0,1   0,3   0,7   0,9   1,0     no decreciente ✓

P(X ≤ 2) = F(2) = 0,7
P(X > 2) = 1 − 0,7 = 0,3
P(1 < X ≤ 3) = F(3) − F(1) = 0,9 − 0,3 = 0,6

E[X] = 0(0,1) + 1(0,2) + 2(0,4) + 3(0,2) + 4(0,1) = 2,0

La distribución es simétrica en torno a 2, y la esperanza lo confirma.

Qué ejecuta el laboratorio

Variable aleatoria discreta: pmf, cdf y coherencia.

GrupoSalidas
Resultados numéricos (6)suma_pmf, P(X<=2), P(X>2), esperanza, moda, mediana
Comprobaciones (0)
compmath run 187

Errores conceptuales frecuentes

  1. Escribir una pmf cuyos valores no suman 1.
  2. Confundir p(x) con F(x) al calcular probabilidades de intervalos.
  3. Restar mal los extremos: P(a ≤ X ≤ b) incluye a, F(b) − F(a) no.

Dónde se usa

Distribuciones sobre vocabularios en modelos de lenguaje, conteos de eventos, modelado de clases en clasificación y muestreo por transformada inversa.

Bibliografía de la clase

188 · Variables aleatorias continuas

Parte 09 · clase 8 de 20 · demostración continuous_rv

En una variable continua la densidad no es probabilidad y puede superar 1.

P(a < X ≤ b) = ∫ₐᵇ f(x) dx
∫ f(x) dx = 1  sobre todo el soporte
P(X = c) = 0 para todo c

Fundamentos

Una variable continua toma valores en un intervalo, y ahí ocurre algo que sorprende: la probabilidad de cualquier valor concreto es cero. No porque sea imposible, sino porque hay infinitos valores y la probabilidad total es 1. Lo que tiene probabilidad positiva son los intervalos, y se obtiene integrando.

La función de densidad f(x) no es una probabilidad: es una probabilidad por unidad de x. Por eso puede valer más de 1 sin contradicción alguna, igual que una velocidad puede ser de 100 km/h sin que se recorran 100 km. La exponencial con λ = 2 tiene densidad 2 en el origen, y no hay nada roto.

La cdf sigue siendo F(x) = P(X ≤ x), ahora la integral de la densidad, y sigue siendo la forma cómoda de calcular: P(a < X ≤ b) = F(b) − F(a). Como los puntos no aportan probabilidad, en el caso continuo da igual usar < o , algo que en el discreto sí importa.

La consecuencia práctica más olvidada aparece al comparar modelos: la verosimilitud de datos continuos es una densidad, no una probabilidad, y por eso puede ser mayor que 1 y su logaritmo puede ser positivo. Ver un log-likelihood positivo en un modelo continuo no es un error; verlo en uno discreto sí lo es.

Ejemplo trabajado

Exponencial con λ = 2: densidad, probabilidad puntual e intervalos.

f(x) = 2·e^(−2x)   para x ≥ 0
F(x) = 1 − e^(−2x)

f(0) = 2,0            densidad > 1, perfectamente válido
P(X = 0,5) = 0        todo punto tiene probabilidad cero

P(X ≤ 0,5)      = 1 − e^(−1)   = 0,6321
P(0,5 < X ≤ 1)  = F(1) − F(0,5)
                = (1 − e^(−2)) − (1 − e^(−1))
                = 0,8647 − 0,6321 = 0,2325

Comprobación: el área total bajo f es 1.

Qué ejecuta el laboratorio

Variable continua: la densidad no es una probabilidad.

GrupoSalidas
Resultados numéricos (6)pdf(0), P(X=0.5), P(X<=0.5), P(0.5<X<=1), integral_total, media_1/λ
Comprobaciones (1)pdf_puede_superar_1
compmath run 188

Errores conceptuales frecuentes

  1. Interpretar f(x) como P(X = x).
  2. Alarmarse porque una densidad supera 1.
  3. Arrastrar la distinción entre < y ≤ del caso discreto al continuo.

Dónde se usa

Modelado de tiempos de espera, verosimilitudes gaussianas, modelos de difusión y todo estimador de densidad.

Bibliografía de la clase

189 · Esperanza matemática

Parte 09 · clase 9 de 20 · demostración expectation

La esperanza es lineal siempre, incluso cuando las variables son dependientes.

E[X] = Σ x·p(x)   ó   ∫ x·f(x) dx
E[aX + bY] = a·E[X] + b·E[Y]   sin exigir independencia
en general E[g(X)] ≠ g(E[X])

Fundamentos

La esperanza es la media ponderada por probabilidad: el valor alrededor del cual se equilibra la distribución. No tiene por qué ser un valor posible —la esperanza de un dado es 3,5— porque describe el comportamiento agregado, no un resultado individual.

Su propiedad más útil es la linealidad, y es más fuerte de lo que suele recordarse: E[X + Y] = E[X] + E[Y] vale siempre, sin ninguna hipótesis de independencia. Esa generosidad convierte problemas aparentemente imposibles en sumas triviales: el número esperado de puntos fijos de una permutación aleatoria es 1, y se obtiene sumando indicadores fuertemente dependientes.

Lo que no vale es intercambiar la esperanza con una función no lineal. E[X²] ≠ E[X]², y la diferencia entre ambas es exactamente la varianza. Para funciones convexas, la desigualdad de Jensen dice que E[g(X)] ≥ g(E[X]), y ese detalle es el que separa la media de los logaritmos del logaritmo de la media en toda derivación de ELBO o de verosimilitud.

En aprendizaje automático la esperanza está en la definición misma del objetivo: el riesgo es E[pérdida] sobre la distribución de datos, y como esa distribución es desconocida se estima con la media empírica. Toda la teoría del aprendizaje trata de cuánto se parece esa media a la esperanza que se quería minimizar.

Ejemplo trabajado

Uniforme en el intervalo unitario: teoría frente a simulación.

X ~ Uniforme(0,1)

teórico            simulado con 10⁶ muestras
  E[X]   = 0,5       0,499912
  E[X²]  = 1/3       0,333282

E[X]² = 0,25   ≠   E[X²] = 0,3333

diferencia = 0,3333 − 0,25 = 0,0833 = 1/12 = Var(X)     ✓

Linealidad sin independencia:
  E[X + X] = 2·E[X] = 1,0    aunque X no es independiente de sí misma

Qué ejecuta el laboratorio

Linealidad de la esperanza, incluso sin independencia.

GrupoSalidas
Resultados numéricos (7)E[X]_teorica_uniforme, E[X]_muestral, E[X²]_teorica, E[X²]_muestral, E[X]², E[2X+3Y], 2E[X]+3E[Y]
Comprobaciones (2)E[X²]≠E[X]², linealidad_sin_independencia
compmath run 189

Errores conceptuales frecuentes

  1. Exigir independencia para sumar esperanzas.
  2. Escribir E[g(X)] = g(E[X]) con g no lineal.
  3. Esperar que la esperanza sea un valor alcanzable.

Dónde se usa

Riesgo esperado en aprendizaje, valoración de apuestas y carteras, análisis del tiempo medio de ejecución y estimadores de gradiente por muestreo.

Bibliografía de la clase

190 · Varianza y desviación estándar

Parte 09 · clase 10 de 20 · demostración variance

La varianza mide dispersión al cuadrado; dividir entre n−1 la vuelve insesgada.

Var(X) = E[(X − μ)²] = E[X²] − E[X]²
σ = √Var(X)
muestral insesgada: s² = Σ(xᵢ − x̄)² / (n − 1)

Fundamentos

La varianza promedia el cuadrado de las desviaciones respecto de la media. Se eleva al cuadrado, y no se toma el valor absoluto, porque así la varianza de una suma de variables independientes es la suma de varianzas —una propiedad que el valor absoluto no tiene— y porque el resultado es derivable, lo cual importa al optimizar.

El precio es que la varianza vive en unidades al cuadrado: si los datos son euros, la varianza son euros al cuadrado, y no se puede comparar con la media. Por eso se define la desviación estándar como su raíz, que vuelve a las unidades originales y sí es comparable e interpretable.

La fórmula computacional Var(X) = E[X²] − E[X]² es cómoda pero numéricamente peligrosa: resta dos números grandes y parecidos, que es exactamente la cancelación catastrófica de la parte 01. Con datos alejados del origen puede devolver varianzas negativas. Las bibliotecas serias usan el algoritmo de Welford en una pasada, no esa fórmula.

La corrección de Bessel —dividir entre n−1— compensa que las desviaciones se calculan respecto de la media muestral, que está ajustada a los propios datos y por tanto los aproxima demasiado bien. Se han gastado un grado de libertad al estimar la media, y devolverlo hace que el estimador sea insesgado.

Ejemplo trabajado

Ocho observaciones: dos denominadores, dos resultados.

datos: 2, 4, 4, 4, 5, 5, 7, 9      n = 8
media: 40 / 8 = 5,0

desviaciones:  −3, −1, −1, −1, 0, 0, 2, 4
cuadrados:      9,  1,  1,  1, 0, 0, 4, 16      suma = 32

varianza poblacional  = 32 / 8 = 4,0        σ = 2,0
varianza muestral     = 32 / 7 = 4,5714     s = 2,1381

Con n grande la diferencia se desvanece; con n = 8 es del 14 %.

Qué ejecuta el laboratorio

Varianza, desviación estándar y el estimador insesgado.

GrupoSalidas
Resultados numéricos (7)media, varianza_poblacional_/n, varianza_muestral_/(n-1), desviacion_estandar, statistics.pstdev, statistics.stdev, Var(aX)=a²Var(X)
Comprobaciones (0)
compmath run 190

Errores conceptuales frecuentes

  1. Comparar una varianza con una media: las unidades no coinciden.
  2. Usar E[X²] − E[X]² con datos grandes y sufrir cancelación.
  3. Elegir n o n−1 sin saber si se describe una población o se estima.

Dónde se usa

Normalización de características, batch normalization, control de calidad, medición de riesgo financiero y análisis de estabilidad de entrenamientos.

Bibliografía de la clase

191 · Covarianza y correlación

Parte 09 · clase 11 de 20 · demostración covariance_correlation

La covarianza depende de las unidades; la correlación no, pero solo ve lo lineal.

Cov(X,Y) = E[(X − μₓ)(Y − μᵧ)]
ρ = Cov(X,Y) / (σₓ·σᵧ),   −1 ≤ ρ ≤ 1
Var(X+Y) = Var(X) + Var(Y) + 2·Cov(X,Y)

Fundamentos

La covarianza mide si dos variables se desvían de su media en el mismo sentido. Positiva significa que suelen subir juntas; negativa, que una sube cuando la otra baja; cero, que no hay tendencia lineal conjunta. Su defecto es que su magnitud depende de las escalas: medir en milímetros en vez de metros multiplica la covarianza por mil sin que la relación haya cambiado.

La correlación de Pearson arregla eso dividiendo por las desviaciones estándar. El resultado es adimensional y está acotado en [−1, 1], con los extremos alcanzados solo si la relación es exactamente lineal. Esa acotación es la desigualdad de Cauchy-Schwarz aplicada a variables centradas, y conecta con el ángulo entre vectores de la parte 05: la correlación es el coseno del ángulo entre los datos centrados.

La limitación crítica es que la correlación solo detecta relaciones lineales. Si Y = X² con X simétrica alrededor de cero, la correlación es exactamente 0 y la dependencia es total. Correlación cero no implica independencia; la implicación solo va en un sentido, y solo bajo normalidad conjunta se convierte en equivalencia.

La fórmula de la varianza de una suma muestra por qué la covarianza importa en la práctica: diversificar una cartera, promediar predictores en un ensemble o combinar estimadores reduce la varianza solo en la medida en que las covarianzas sean bajas. Modelos muy correlacionados no se ayudan al promediarse.

Ejemplo trabajado

Invariancia de escala: multiplicar una variable por mil.

x = 1, 2, 3, 4, 5 ...        y correlacionada con x
z = 1000·y                   misma relación, otras unidades

Cov(x, y) =    4,925
Cov(x, z) = 4 925,0          × 1000, como la escala

corr(x, y) = 0,998830
corr(x, z) = 0,998830        idéntica                     ✓

Dependencia no lineal invisible:
  x = −2, −1, 0, 1, 2      y = x² = 4, 1, 0, 1, 4
  corr(x, y) = 0    y sin embargo y está determinada por x

Qué ejecuta el laboratorio

Covarianza depende de la escala; la correlación no.

GrupoSalidas
Resultados numéricos (4)cov(x,y), cov(x,z)_escala_x1000, corr(x,y), corr(x,z)
Comprobaciones (1)la_correlacion_es_invariante_a_escala
compmath run 191

Errores conceptuales frecuentes

  1. Interpretar la magnitud de una covarianza sin mirar las unidades.
  2. Deducir independencia de una correlación cero.
  3. Leer correlación como causalidad.

Dónde se usa

Matrices de covarianza en PCA, selección de características, diversificación de carteras y diseño de ensembles con predictores poco correlacionados.

Bibliografía de la clase

192 · Bernoulli y binomial

Parte 09 · clase 12 de 20 · demostración bernoulli_binomial

La binomial cuenta éxitos en n ensayos de Bernoulli independientes.

Bernoulli: P(X=1) = p,  E[X] = p,  Var(X) = p(1−p)
Binomial: P(X=k) = C(n,k)·pᵏ·(1−p)ⁿ⁻ᵏ
E[X] = np,   Var(X) = np(1−p)

Fundamentos

Un ensayo de Bernoulli es el experimento más simple posible: éxito con probabilidad p, fracaso con 1−p. Su esperanza es p y su varianza p(1−p), que alcanza su máximo en p = 0,5: la máxima incertidumbre está en la moneda justa, y decae hacia cero cuando el resultado es casi seguro en cualquiera de los dos sentidos.

Repetir n ensayos independientes con la misma p y contar los éxitos da la binomial. Su fórmula tiene tres piezas que conviene leer por separado: pᵏ es la probabilidad de los k éxitos, (1−p)ⁿ⁻ᵏ la de los fracasos restantes, y C(n,k) cuenta de cuántas maneras distintas pueden ordenarse. Esa combinatoria es la de la parte 04.

La media np y la varianza np(1−p) salen sin esfuerzo de la linealidad de la esperanza y de la aditividad de la varianza bajo independencia: la binomial es una suma de n Bernoullis. Este es el ejemplo más limpio de por qué esas dos propiedades merecían clases propias.

Las condiciones importan. Si los ensayos no son independientes, o si p cambia entre ellos, la binomial no aplica: extraer cartas sin reposición da una hipergeométrica, no una binomial. En aprendizaje automático la Bernoulli aparece como salida de toda regresión logística, y su log-verosimilitud negativa es la entropía cruzada binaria.

Ejemplo trabajado

Diez ensayos con probabilidad de éxito 0,3.

n = 10,  p = 0,3

media teórica     = np       = 3,0
varianza teórica  = np(1−p)  = 2,1

P(X = 3) = C(10,3) · 0,3³ · 0,7⁷
         = 120 · 0,027 · 0,0823543
         = 0,266828

simulación con 10⁵ réplicas:  media 2,99145         ✓

Var máxima de un Bernoulli: p = 0,5 → 0,25
Var con p = 0,3            → 0,21
Var con p = 0,01           → 0,0099

Qué ejecuta el laboratorio

De un ensayo a n ensayos: Bernoulli y binomial.

GrupoSalidas
Resultados numéricos (9)p, n, media_teorica_np, varianza_teorica_np(1-p), media_simulada, pmf_k=3, frecuencia_simulada_k=3, suma_pmf, P(X<=3)
Comprobaciones (0)
compmath run 192

Errores conceptuales frecuentes

  1. Aplicar la binomial a ensayos dependientes o con p variable.
  2. Olvidar el coeficiente combinatorio y calcular solo pᵏ(1−p)ⁿ⁻ᵏ.
  3. Confundir el número de ensayos n con el número de éxitos k.

Dónde se usa

Tests A/B, tasas de conversión, control de calidad por muestreo, salida de regresión logística y entropía cruzada binaria.

Bibliografía de la clase

193 · Poisson y exponencial

Parte 09 · clase 13 de 20 · demostración poisson_exponential

Poisson cuenta eventos raros por intervalo; la exponencial mide el tiempo entre ellos.

Poisson: P(N=k) = e^(−λ)·λᵏ / k!,  E[N] = Var(N) = λ
Exponencial: f(t) = λ·e^(−λt),  E[T] = 1/λ
falta de memoria: P(T > s+t | T > s) = P(T > t)

Fundamentos

La distribución de Poisson describe el número de eventos que ocurren en un intervalo cuando esos eventos son independientes y suceden a una tasa media constante λ. Surge como límite de una binomial con n grande y p pequeño manteniendo np = λ: muchísimas oportunidades, cada una muy improbable.

Su firma es que media y varianza coinciden, ambas iguales a λ. Ese hecho sirve de diagnóstico: si en unos datos de conteo la varianza supera claramente a la media, hay sobredispersión y el modelo de Poisson es inadecuado, normalmente porque la tasa no es constante o los eventos se agrupan.

La exponencial es la otra cara del mismo proceso: si los conteos son Poisson con tasa λ, los tiempos entre eventos son exponenciales con media 1/λ. Tres eventos por hora implican una espera media de veinte minutos. Es la misma información contada desde el tiempo en vez de desde la cuenta.

La propiedad de falta de memoria es lo que hace la exponencial única entre las distribuciones continuas: haber esperado ya media hora no acorta la espera restante. Es realista para procesos sin desgaste —desintegración radiactiva, llegadas a un servidor— y claramente falso para procesos con envejecimiento, donde se usan Weibull o gamma.

Ejemplo trabajado

Tres eventos por hora: conteos y esperas.

λ = 3 eventos/hora

Poisson:
  P(N = 0) = e^(−3)              = 0,049787
  P(N = 3) = e^(−3)·3³ / 3!      = 0,224042
  E[N] = 3,0      Var(N) = 3,0      iguales      ✓

Exponencial:
  E[T] = 1/3 hora = 20 minutos
  P(T > 1 h) = e^(−3) = 0,049787

Coherencia: "ningún evento en 1 hora" es lo mismo que
"la primera espera supera 1 hora"   →  mismo 0,049787   ✓

Falta de memoria:
  P(T > 1,5 | T > 0,5) = e^(−3) = P(T > 1)              ✓

Qué ejecuta el laboratorio

Poisson cuenta eventos; la exponencial mide el tiempo entre ellos.

GrupoSalidas
Resultados numéricos (7)λ_eventos_por_hora, P(N=0), P(N=3), media_poisson, varianza_poisson, media_de_la_espera_1/λ, media_de_espera_simulada
Comprobaciones (0)
compmath run 193

Errores conceptuales frecuentes

  1. Modelar conteos sobredispersos con Poisson.
  2. Confundir la tasa λ con la media de la espera, que es 1/λ.
  3. Suponer falta de memoria en procesos con desgaste o envejecimiento.

Dónde se usa

Colas y capacidad de servidores, llegadas de peticiones, fiabilidad de componentes, conteos de defectos y modelos de supervivencia.

Bibliografía de la clase

194 · Distribución normal

Parte 09 · clase 14 de 20 · demostración normal_distribution

La normal queda fijada por media y desviación, y la puntuación z la vuelve universal.

f(x) = 1/(σ√(2π)) · e^(−(x−μ)²/(2σ²))
z = (x − μ) / σ  ⟹  Z ~ Normal(0,1)
68,27 % · 95,45 % · 99,73 % dentro de 1σ, 2σ y 3σ

Fundamentos

La distribución normal es simétrica, unimodal y queda completamente determinada por dos números: la media μ, que fija dónde está el centro, y la desviación σ, que fija cuán ancha es. Ninguna otra distribución tan simple aparece tan a menudo, y la razón no es estética: es el teorema central del límite de la clase 197.

La estandarización z = (x − μ)/σ convierte cualquier normal en la normal estándar. Eso permite tabular una sola distribución y responder cualquier pregunta sobre todas las demás. La puntuación z se lee directamente como «a cuántas desviaciones del centro está este valor», y es la forma correcta de comparar magnitudes medidas en escalas distintas.

La regla 68-95-99,7 conviene memorizarla porque da intuición inmediata: dentro de una desviación cae el 68 % de los datos, dentro de dos el 95 % y dentro de tres el 99,7 %. Un valor a más de tres sigmas ocurre menos de tres veces de cada mil, y por eso ese umbral se usa como criterio de anomalía.

La advertencia habitual: la normal tiene colas ligeras, que decaen exponencialmente al cuadrado. Muchos fenómenos reales —retornos financieros, tamaños de archivo, popularidad de contenidos— tienen colas mucho más pesadas, y modelarlos como normales subestima gravemente los eventos extremos. Suponer normalidad sin comprobarla es un error caro.

Ejemplo trabajado

Distribución de CI con media 100 y desviación 15.

μ = 100,  σ = 15

P(85  < X < 115) = 0,6827      1σ
P(70  < X < 130) = 0,9545      2σ
P(55  < X < 145) = 0,9973      3σ

z de 130 = (130 − 100) / 15 = 2,0
P(X > 130) = (1 − 0,9545) / 2 = 0,0228   ≈ 1 de cada 44

Comparación entre escalas:
  130 en CI  (z = 2,0)
  620 en una prueba de μ=500, σ=100  (z = 1,2)
  el primero es más extremo pese al número menor

Qué ejecuta el laboratorio

Normal: regla 68-95-99.7 y estandarización.

GrupoSalidas
Resultados numéricos (8)μ, σ, P(μ-σ < X < μ+σ), P(μ-2σ < X < μ+2σ), P(μ-3σ < X < μ+3σ), z_de_130, P(X>130), percentil_95_aprox
Comprobaciones (1)simetrica
compmath run 194

Errores conceptuales frecuentes

  1. Suponer normalidad sin comprobarla.
  2. Usar la normal para fenómenos con colas pesadas o soporte acotado.
  3. Confundir la puntuación z con una probabilidad.

Dónde se usa

Inicialización de pesos en redes, ruido gaussiano en modelos de difusión, control estadístico de procesos, intervalos de confianza y detección de anomalías.

Bibliografía de la clase

195 · Distribuciones conjuntas y marginales

Parte 09 · clase 15 de 20 · demostración joint_marginal

De la conjunta se obtienen las marginales sumando y las condicionales dividiendo.

conjunta: p(x,y) = P(X=x, Y=y),  Σ p(x,y) = 1
marginal: p(x) = Σᵧ p(x,y)
condicional: p(y|x) = p(x,y) / p(x)
independencia ⟺ p(x,y) = p(x)·p(y) para todo par

Fundamentos

Cuando dos variables se observan a la vez, la descripción completa es la distribución conjunta: una probabilidad por cada par de valores. Todo lo demás se deriva de ella, y esa es la razón de que la conjunta sea el objeto fundamental y las marginales solo resúmenes.

Marginalizar es sumar sobre la variable que no interesa. El nombre viene de las tablas de doble entrada, donde esas sumas se escribían literalmente en los márgenes. Marginalizar pierde información: dos conjuntas muy distintas pueden tener exactamente las mismas marginales, y por eso conocer cada variable por separado no basta para saber cómo se relacionan.

Condicionar es dividir por la marginal correspondiente, lo cual reescala una fila o columna para que vuelva a sumar 1. La comparación entre p(x,y) y p(x)·p(y) es el test de independencia: si coinciden para todos los pares, las variables son independientes; si difieren en alguno, no lo son.

Esta es la maquinaria de los modelos gráficos y de todo el modelado probabilístico moderno. Un modelo generativo aprende una conjunta sobre datos y etiquetas; la inferencia consiste en condicionar sobre lo observado y marginalizar lo latente. En el caso continuo las sumas se vuelven integrales, y esas integrales intratables son las que motivan la inferencia variacional y los métodos de la parte 17.

Ejemplo trabajado

Conjunta de dos variables binarias.

p(x,y)        y=0     y=1    | marginal X
x=0           0,20    0,30   |    0,50
x=1           0,10    0,40   |    0,50
------------------------------------------
marginal Y    0,30    0,70   |    1,00     ✓

Condicional:
  p(y=1 | x=1) = 0,40 / 0,50 = 0,80
  p(y=1 | x=0) = 0,30 / 0,50 = 0,60

Test de independencia en el par (1,1):
  p(1,1)        = 0,40
  p(1)·p(1)     = 0,50 × 0,70 = 0,35
  0,40 ≠ 0,35   →  X e Y NO son independientes

Qué ejecuta el laboratorio

Distribución conjunta, marginales y condicional.

GrupoSalidas
Resultados numéricos (3)suma, P(Y=1|X=1), producto_de_marginales_(1,1)
Comprobaciones (1)independientes
compmath run 195

Errores conceptuales frecuentes

  1. Reconstruir la conjunta a partir de las marginales.
  2. Dividir por la marginal equivocada al condicionar.
  3. Olvidar comprobar que la conjunta suma 1.

Dónde se usa

Modelos gráficos probabilísticos, inferencia bayesiana, tablas de contingencia y distribuciones latentes en modelos generativos.

Bibliografía de la clase

196 · Ley de los grandes números

Parte 09 · clase 16 de 20 · demostración law_large_numbers

La media muestral converge a la esperanza, pero a velocidad de raíz cuadrada.

x̄ₙ → μ  cuando n → ∞
error típico ≈ σ/√n
cuadruplicar n reduce el error a la mitad

Fundamentos

La ley de los grandes números es el puente entre probabilidad y realidad: garantiza que promediar muchas observaciones independientes acerca la media muestral a la esperanza teórica. Sin ella, la probabilidad sería un juego formal sin conexión con los datos, y ninguna simulación tendría sentido.

Lo que la ley no dice es igual de importante. No dice que las desviaciones se compensen: si han salido diez caras seguidas, la moneda no «debe» ahora cruces. La convergencia ocurre porque las primeras observaciones se diluyen al crecer el denominador, no porque algo las corrija. Creer lo contrario es la falacia del jugador.

Tampoco garantiza nada sobre una muestra concreta. Es un enunciado asintótico: para cualquier margen de error, existe un n a partir del cual la desviación es improbable. Ese n puede ser enorme si la varianza es grande, y para distribuciones sin media finita —como la Cauchy— la ley sencillamente no se cumple.

La velocidad es la parte que más cuesta aceptar en la práctica. El error típico cae como σ/√n, de modo que pasar de 1000 a 4000 muestras solo reduce el error a la mitad, y ganar un dígito decimal cuesta multiplicar por cien el trabajo. Esa raíz cuadrada es la que gobierna el coste de toda simulación Monte Carlo.

Ejemplo trabajado

Media muestral de una uniforme en el intervalo unitario.

distribución: Uniforme(0,1)     media real = 0,5

     n        media       error
    10       0,607062    0,107062
   100       0,509220    0,009220
 1 000       0,503115    0,003115
10 000       0,500987    0,000987

El error cae aproximadamente como 1/√n:
  de n=100 a n=10 000  →  n × 100  →  error / 10       ✓

Nada garantiza que una muestra concreta se comporte:
con n = 10 el error fue del 21 %.

Qué ejecuta el laboratorio

La media muestral converge, pero lentamente.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (2)cuadruplicar_n_reduce_el_error_a_la_mitad, no_garantiza_ninguna_muestra_concreta
compmath run 196

Errores conceptuales frecuentes

  1. Esperar que los desvíos pasados se compensen.
  2. Aplicar la ley a distribuciones sin media finita.
  3. Confiar en una única simulación corta como si fuera el valor exacto.

Dónde se usa

Justificación de la simulación, validación de estimadores, dimensionamiento de tests A/B y tamaño de lote en descenso estocástico.

Bibliografía de la clase

197 · Teorema central del límite

Parte 09 · clase 17 de 20 · demostración central_limit

La media de muchas variables tiende a una normal aunque el origen no lo sea.

x̄ₙ ≈ Normal(μ, σ²/n)  para n grande
(x̄ₙ − μ)/(σ/√n) → Normal(0,1)
error estándar = σ/√n

Fundamentos

El teorema central del límite es el resultado más sorprendente de la probabilidad elemental: la distribución de la media muestral tiende a una normal sin importar de qué distribución vengan los datos, siempre que tengan media y varianza finitas y sean independientes. La forma original se olvida; solo sobreviven su media y su varianza.

Mientras la ley de los grandes números dice hacia dónde converge la media, el TCL dice cómo se distribuye alrededor de ese límite. Esa información es lo que permite construir intervalos de confianza y contrastes de hipótesis: sin TCL no habría estadística inferencial práctica.

El error estándar σ/√n es la desviación de la media muestral, no de los datos. Confundir σ con σ/√n es el error más frecuente al reportar resultados: la primera describe cuánto varían las observaciones, la segunda cuánto varía la estimación. Sus valores difieren por un factor √n, que con n = 10 000 es cien.

La regla de «con n ≥ 30 basta» es una guía burda. La velocidad de convergencia depende de la asimetría de la distribución de origen: para una exponencial n = 30 ya es razonable, para una distribución muy sesgada o con valores extremos puede hacer falta mucho más. Y si la varianza es infinita, el TCL directamente no aplica.

Ejemplo trabajado

Medias de muestras de tamaño 30 de una exponencial claramente asimétrica.

población: Exponencial(1)      media 1,   varianza 1
           fuertemente asimétrica, nada normal

8 000 réplicas de muestras de tamaño n = 30:

  media de las medias    = 0,997036     teórico 1,0        ✓
  varianza de las medias = 0,032656     teórico 1/30 = 0,0333  ✓
  desviación             = 0,1807       teórico 1/√30 = 0,1826 ✓

La distribución de las medias es casi simétrica y acampanada
aunque la población de origen no tenga nada de normal.

error estándar frente a desviación de los datos:
  σ      = 1,0       cuánto varía una observación
  σ/√30  = 0,183     cuánto varía la media

Qué ejecuta el laboratorio

El TCL en acción sobre una distribución claramente no normal.

GrupoSalidas
Resultados numéricos (7)tamaño_de_muestra, replicas, media_de_las_medias, media_teorica, varianza_de_las_medias, varianza_teorica_σ²/n, error_estandar
Comprobaciones (1)la_distribucion_de_medias_es_casi_normal
compmath run 197

Errores conceptuales frecuentes

  1. Reportar σ donde corresponde σ/√n.
  2. Aplicar el TCL a datos dependientes o con varianza infinita.
  3. Creer que el TCL vuelve normales a los datos: normaliza las medias, no las observaciones.

Dónde se usa

Intervalos de confianza, contrastes de hipótesis, barras de error en experimentos y justificación del ruido gaussiano en modelos de medición.

Bibliografía de la clase

198 · Métodos Monte Carlo

Parte 09 · clase 18 de 20 · demostración monte_carlo

Monte Carlo estima integrales muestreando, con error 1/√n en cualquier dimensión.

E[g(X)] ≈ (1/n)·Σ g(xᵢ)
error estándar = s/√n
intervalo aproximado: estimación ± 1,96·s/√n

Fundamentos

El método de Monte Carlo resuelve un problema determinista —una integral, un área, una probabilidad— convirtiéndolo en un experimento aleatorio y promediando. Su justificación es la ley de los grandes números, y su control de error es el teorema central del límite: las dos clases anteriores existían para llegar aquí.

El ejemplo clásico estima π lanzando puntos uniformes en el cuadrado unitario y contando cuántos caen dentro del cuarto de círculo. La proporción tiende a π/4. Es un método malísimo para calcular π —hay algoritmos que dan miles de dígitos— pero perfecto para entender el mecanismo y su coste.

Ese coste es la convergencia O(1/√n), que es lenta: para un dígito decimal más hacen falta cien veces más muestras. La compensación es decisiva: esa velocidad no depende de la dimensión. Las reglas de cuadratura clásicas empeoran exponencialmente al crecer la dimensión, y por encima de unas pocas variables Monte Carlo es la única opción viable.

Dos exigencias de higiene, que la clase trata como obligatorias. Primera: fijar la semilla, porque un resultado no reproducible no es un resultado. Segunda: reportar el error estándar junto a la estimación; un número Monte Carlo sin su incertidumbre no permite saber si la diferencia observada frente a otro método es real o es ruido.

Ejemplo trabajado

Estimación de π por muestreo uniforme, con semilla fija.

semilla = 20260819

      n     estimación    error      error estándar
  1 000       3,156000    0,014407      0,0519
 10 000       3,145600    0,004007      0,0164
100 000       3,142880    0,001287      0,0052

π real = 3,141593

El error cae como 1/√n:
  n × 100  →  error estándar / 10                        ✓

Intervalo al 95 % con n = 100 000:
  3,142880 ± 1,96 × 0,0052 = [3,13268, 3,15308]
  contiene a π                                           ✓

Ganar un decimal más exigiría n ≈ 10 000 000.

Qué ejecuta el laboratorio

Estimar π por Monte Carlo con su error e intervalo.

GrupoSalidas
Resultados numéricos (2)semilla, pi_real
Comprobaciones (1)ventaja_en_alta_dimension
compmath run 198

Errores conceptuales frecuentes

  1. Publicar una estimación sin semilla ni error estándar.
  2. Esperar precisión alta de una simulación corta.
  3. Descartar Monte Carlo en alta dimensión, donde es lo único que escala.

Dónde se usa

Integración en alta dimensión, valoración de opciones, propagación de incertidumbre, dropout en inferencia y muestreo en modelos generativos.

Bibliografía de la clase

199 · Cadenas de Markov

Parte 09 · clase 19 de 20 · demostración markov_chains

Una cadena de Markov olvida su historia y, si es ergódica, olvida también su inicio.

P(Xₙ₊₁ | Xₙ, …, X₀) = P(Xₙ₊₁ | Xₙ)
distribución tras n pasos: v·Pⁿ
estacionaria: πP = π,  con Σπᵢ = 1

Fundamentos

Una cadena de Markov es un proceso en el que el futuro depende del presente pero no del pasado. Esa propiedad de Markov es una simplificación drástica y sorprendentemente útil: basta con la matriz de transición P, donde Pᵢⱼ es la probabilidad de pasar del estado i al j, y cada fila suma 1.

La evolución es álgebra lineal pura. Si v es la distribución actual sobre los estados, tras un paso es vP y tras n pasos es vPⁿ. Toda la parte 06 se vuelve relevante aquí: las potencias de la matriz se calculan con su diagonalización, y la velocidad de convergencia la marca el segundo autovalor en módulo.

La distribución estacionaria π cumple πP = π: es un autovector izquierdo con autovalor 1, y describe el régimen de equilibrio. Si la cadena es ergódica —se puede llegar de cualquier estado a cualquier otro y no hay ciclos rígidos— entonces la estacionaria es única y la cadena converge a ella desde cualquier inicio. La condición inicial se olvida.

Esa propiedad es la base de MCMC: si se quiere muestrear de una distribución imposible de muestrear directamente, se construye una cadena cuya estacionaria sea esa distribución y se la deja correr. PageRank es exactamente lo mismo aplicado al grafo de la web, y los modelos de difusión son un proceso estocástico cuyo reverso se aprende con una red.

Ejemplo trabajado

Cadena de dos estados y su equilibrio.

P = [[0,9   0,1]        filas suman 1        ✓
     [0,5   0,5]]

inicio v = [1,0   0,0]      seguro en el estado A

paso 1:  [0,9000   0,1000]
paso 2:  [0,8600   0,1400]
paso 5:  [0,8346   0,1654]
paso 20: [0,8333   0,1667]

Estacionaria exacta: resolver πP = π con π₀ + π₁ = 1
  0,9π₀ + 0,5π₁ = π₀   →   0,5π₁ = 0,1π₀   →   π₀ = 5π₁
  π = [5/6   1/6] = [0,833333   0,166667]              ✓

Desde v = [0,0  1,0] la cadena converge al mismo π.

Qué ejecuta el laboratorio

Cadena de Markov: matriz de transición y distribución estacionaria.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (3)filas_suman_1, converge, olvida_el_estado_inicial
compmath run 199

Errores conceptuales frecuentes

  1. Usar matrices de transición cuyas filas no suman 1.
  2. Confundir filas con columnas al multiplicar por la izquierda o la derecha.
  3. Suponer convergencia en cadenas periódicas o reducibles.

Dónde se usa

PageRank, MCMC, modelos ocultos de Markov, aprendizaje por refuerzo con procesos de decisión markovianos y procesos de difusión.

Bibliografía de la clase

200 · Capstone: simulador probabilístico y bayesiano

Parte 09 · clase 20 de 20 · demostración capstone_probabilistic_simulator

Con suficientes datos, el prior se diluye y bayesiano y frecuentista convergen.

posterior ∝ verosimilitud × prior
Beta(a,b) + k éxitos en n ⟹ Beta(a+k, b+n−k)
media posterior = (a+k) / (a+b+n)

Fundamentos

El capstone reúne toda la parte en un simulador: se fija un parámetro real desconocido para el observador, se generan datos, y se estima ese parámetro de dos maneras —contando frecuencias y actualizando una creencia con Bayes— para ver cómo se comportan a medida que llegan observaciones.

El prior Beta(2,2) expresa una creencia previa suave centrada en 0,5. Es conjugado de la binomial, lo que significa que el posterior pertenece a la misma familia y la actualización se reduce a sumar: Beta(a+k, b+n−k). Esa comodidad algebraica es la razón histórica de que los priores conjugados dominaran antes de que MCMC hiciera viable cualquier prior.

Lo que el experimento muestra es la dilución del prior. Con pocas observaciones la media posterior está tirada hacia 0,5 por la creencia previa; con cientos de datos se pega a la frecuencia observada, y las dos estimaciones se vuelven indistinguibles. El prior importa cuando hay poca evidencia, que es precisamente cuando hace falta que importe.

La diferencia de fondo entre ambos enfoques no es numérica sino de interpretación. El frecuentista da un punto y un intervalo con garantías de cobertura a largo plazo; el bayesiano da una distribución completa sobre el parámetro, de la que se leen media, incertidumbre e intervalo creíble. Esa distribución es lo que la parte 10 formaliza y lo que hace del enfoque bayesiano el lenguaje natural de la cuantificación de incertidumbre.

Ejemplo trabajado

Parámetro real 0,35, prior Beta(2,2), evidencia creciente.

  n obs   éxitos   media posterior   desv. posterior
      0        0        0,5000           0,2236
     10        3        0,3571           0,1247
     50        16       0,3333           0,0645
    200        58       0,2941           0,0313
  1 000      265        0,2669           0,0140

estimación frecuentista final (265/1000) = 0,2650
estimación bayesiana final                = 0,2696

diferencia = 0,0046  →  el prior ya casi no pesa

peso del prior:  a+b = 4 observaciones equivalentes
  frente a n = 10   pesa un 29 %
  frente a n = 1000 pesa un 0,4 %

Qué ejecuta el laboratorio

Capstone: simulador probabilístico con actualización bayesiana.

GrupoSalidas
Resultados numéricos (4)parametro_real, estimacion_frecuentista, estimacion_bayesiana_final, semilla
Comprobaciones (2)el_prior_se_diluye_con_datos, reproducible
compmath run 200

Errores conceptuales frecuentes

  1. Elegir un prior muy informativo y presentar el resultado como si viniera de los datos.
  2. Comparar un intervalo de confianza con uno creíble como si significaran lo mismo.
  3. Actualizar dos veces con la misma observación.

Dónde se usa

Tests A/B bayesianos, bandidos multibrazo con Thompson sampling, calibración de modelos y estimación de tasas con pocos datos.

Bibliografía de la clase

Parte 10 — Estadística e inferencia

Nivel universitario-avanzado · 20 clases · 80 horas · motor part10

Descriptiva, muestreo, estimadores, intervalos de confianza, pruebas de hipótesis, p-value, potencia, verosimilitud, MAP, inferencia bayesiana, bootstrap y A/B testing.

La probabilidad va de la causa al efecto: dado un modelo, ¿qué datos son plausibles? La estadística recorre el camino inverso: dados unos datos, ¿qué modelo los explica y con cuánta confianza? Esa inversión es más difícil, más frágil y más fácil de hacer mal, y es donde se pierde la mayor parte de la credibilidad de los resultados publicados.

Las clases 201 a 204 preparan el terreno. La estadística descriptiva resume; el muestreo condiciona todo lo que vendrá después. La lección más cara está en la clase 202: el sesgo de selección no se corrige con más datos. Una muestra sesgada de un millón de personas es peor que una muestra aleatoria de mil, porque el error sistemático no se diluye al crecer n, y encima la mayor precisión hace más convincente la conclusión equivocada.

Las clases 205 a 209 son el núcleo de la inferencia frecuentista y contienen los tres errores de interpretación más extendidos de toda la ciencia aplicada. Un intervalo de confianza del 95 % no dice que el parámetro esté ahí con probabilidad 0,95: describe un procedimiento que, repetido muchas veces, atrapa el parámetro el 95 % de las veces. Un p-value no es la probabilidad de que la hipótesis nula sea cierta: es la probabilidad de ver datos así de extremos si la nula fuera cierta. Y un resultado no significativo en un estudio sin potencia declarada no significa nada: no distingue entre «no hay efecto» y «no había datos suficientes para verlo».

Las clases 210 a 214 son las pruebas de trabajo: t-test para medias, chi-cuadrado para tablas de contingencia, ANOVA para varios grupos y regresión lineal con su lectura estadística. Cada una tiene supuestos, y aplicarlas sin comprobarlos es la forma habitual de producir p-values que no significan lo que parece. La clase 213 se dedica entera a la confusión más famosa: correlación no implica causalidad, y un confusor basta para fabricar una correlación fuerte entre dos variables que no se tocan.

Las clases 215 a 218 introducen el punto de vista de la verosimilitud y el bayesiano. La máxima verosimilitud es el principio que fundamenta casi toda función de pérdida en aprendizaje automático; MAP le añade un prior, y ese prior es la regularización. La inferencia bayesiana devuelve una distribución entera sobre el parámetro, y su intervalo creíble sí admite la lectura probabilística que el intervalo de confianza no admite. El bootstrap cierra el bloque con una idea casi tramposa por lo simple: remuestrear los propios datos para estimar la variabilidad, sin suponer ninguna distribución poblacional.

El cierre (219 y 220) baja a la práctica: A/B testing con tamaño muestral calculado de antemano, y un estudio completo, reproducible, con semilla fija, intervalos declarados y limitaciones explícitas. Esa disciplina —fijar el análisis antes de ver los datos, reportar la incertidumbre, corregir por comparaciones múltiples y declarar lo que el estudio no puede concluir— es lo que separa un resultado de una anécdota con números.

Para quien viene de la inteligencia artificial, esta parte es la que enseña a evaluar. Comparar dos modelos por su exactitud puntual sin intervalo de confianza, elegir la mejor configuración entre veinte y reportar su rendimiento sin corregir por selección, o medir sobre datos que participaron en el ajuste, son exactamente los errores que esta parte nombra y desarma.

Ideas centrales

Por qué importa en IA

Evaluar un modelo es inferencia estadística: métricas con intervalo, comparaciones múltiples corregidas y detección de leakage.

Errores frecuentes de la parte

Glosario de la parte (36 términos)

TérminoDefiniciónClase
AleatorizaciónAsignar el tratamiento al azar para romper la influencia de confusores conocidos y desconocidos.213
ANOVACompara varias medias descomponiendo la variabilidad entre grupos y dentro de ellos.212
AsimetríaSesgo de la distribución. Con cola derecha la media supera a la mediana.201
BootstrapRemuestrear con reposición los propios datos para estimar la variabilidad de un estadístico.218
Chi-cuadradoContraste que compara frecuencias observadas con esperadas en una tabla.211
Coeficiente de determinaciónR². Proporción de la variabilidad explicada por el modelo. Un R² alto no valida el modelo.214
Comparaciones múltiplesAl hacer k contrastes, la probabilidad de algún falso positivo crece; exige corrección.212
ConsistenciaEl estimador converge al parámetro cuando n crece. Es una garantía asintótica.204
Distribución muestralDistribución de un estadístico al repetir el muestreo. Es el objeto que hace posible inferir.203
Error estándarDesviación típica de un estimador. Para la media vale σ/√n.203
Error tipo IRechazar una H0 verdadera. Su tasa es α, elegida de antemano.208
Error tipo IINo rechazar una H0 falsa. Su tasa es β y depende del tamaño del efecto y de n.208
Estadístico de contrasteNúmero calculado de la muestra cuya distribución bajo H0 se conoce.206
Estimación MAPMáximo de la posterior: verosimilitud por prior. El prior actúa como regularización.216
Estimador insesgadoAquel cuya esperanza coincide con el parámetro. No implica que sea bueno.204
Grados de libertadNúmero de valores libres tras imponer las restricciones del modelo.210
Hipótesis nulaEnunciado de ausencia de efecto que se somete a prueba. Nunca se acepta, solo se rechaza o no.206
Intervalo creíbleRegión que contiene el parámetro con probabilidad dada bajo la posterior. Sí es una probabilidad del parámetro.217
Intervalo de confianzaProcedimiento que, repetido, contiene el parámetro en el 95 % de los casos. No es una probabilidad del parámetro.205
LiftMejora relativa de la variante frente al control en un experimento.219
Log-verosimilitudLogaritmo de la verosimilitud. Convierte productos en sumas y evita el subdesbordamiento.215
Media, mediana y modaTres medidas de centro. La mediana resiste valores extremos; la media no.201
Máxima verosimilitudElegir el parámetro que hace más probables los datos observados.215
p-hackingProbar variantes de análisis hasta obtener p < 0,05. Invalida el significado del p-value.207
p-valueP(estadístico tan o más extremo | H0 cierta). Nunca es P(H0 | datos).207
Potencia1 − β. Probabilidad de detectar un efecto real. Sin ella, un no significativo no informa.209
Preinscripción del análisisFijar hipótesis, métrica y tamaño muestral antes de recoger datos. Bloquea el p-hacking.220
Prior conjugadoPrior cuya posterior pertenece a la misma familia. Beta es conjugado de la binomial.217
Rango intercuartílicoQ3 − Q1. Dispersión robusta que ignora el 25 % de cada cola.201
ResiduoDiferencia entre valor observado y predicho. Su patrón revela los fallos del modelo.214
Sesgo de selecciónLa muestra no representa a la población. No se corrige aumentando el tamaño.202
Sesgo del supervivienteAnalizar solo los casos que llegaron al final, ignorando los que desaparecieron.202
t de StudentContraste de medias con varianza desconocida. Sus colas son más pesadas que las de la normal.210
Tabla de contingenciaRecuento cruzado de dos variables categóricas.211
Tamaño del efectoMagnitud de la diferencia en unidades de desviación, como la d de Cohen. Independiente de n.209
Variable de confusiónCausa común de dos variables que genera correlación sin relación causal directa.213

Bibliografía de la parte

201 · Estadística descriptiva

Parte 10 · clase 1 de 20 · demostración descriptive_statistics

Centro, dispersión y forma responden preguntas distintas y ninguna basta sola.

media = Σxᵢ / n;  mediana = valor central ordenado
IQR = Q3 − Q1;  σ = √(Σ(xᵢ − x̄)²/n)
con cola derecha: media > mediana

Fundamentos

Resumir un conjunto de datos exige responder tres preguntas independientes: dónde está el centro, cuánto se dispersan los valores y qué forma tiene la distribución. Dar solo la media es responder una de tres, y muchas veces la menos informativa.

Para el centro hay tres candidatos con propiedades distintas. La media usa todos los valores y por eso un solo dato extremo la arrastra. La mediana solo mira la posición central y es robusta: cambiar el máximo por uno diez veces mayor no la mueve. La moda es la única que sirve para variables categóricas. Que los salarios se reporten por mediana y no por media no es casualidad.

Para la dispersión, la desviación estándar es la medida clásica y el rango intercuartílico la robusta. El IQR ignora el 25 % de cada cola y es la base del criterio de valores atípicos por diagrama de caja: fuera de Q1 − 1,5·IQR y Q3 + 1,5·IQR.

La forma es lo que más se olvida. La relación entre media y mediana delata la asimetría: si la media supera a la mediana, hay cola a la derecha. Y distribuciones radicalmente distintas pueden compartir media y desviación: el cuarteto de Anscombe y el Datasaurus son la demostración visual de que resumir sin graficar es peligroso.

Ejemplo trabajado

Veinte mediciones: centro, dispersión y forma.

n = 20

media               = 12,6050
mediana             = 12,6500     media < mediana → ligera cola izquierda
desviación estándar =  0,8630
rango               =  3,2000
Q1                  = 11,9250
Q3                  = 13,2000
IQR                 =  1,2750

Límites de atípicos (criterio 1,5·IQR):
  inferior: 11,925 − 1,9125 = 10,0125
  superior: 13,200 + 1,9125 = 15,1125
  ningún dato queda fuera

Sensibilidad: si el máximo pasara de 14,2 a 30,0
  media   → 13,395   (sube un 6,3 %)
  mediana → 12,650   (no cambia)

Qué ejecuta el laboratorio

Centro, dispersión y forma: tres preguntas distintas.

GrupoSalidas
Resultados numéricos (10)n, media, mediana, desviacion_estandar, rango, Q1, Q3, IQR, coeficiente_de_variacion_%, asimetria_aprox
Comprobaciones (0)
compmath run 201

Errores conceptuales frecuentes

  1. Reportar la media de una distribución muy asimétrica sin la mediana.
  2. Confundir dispersión con error: son cosas distintas.
  3. Resumir sin graficar y perder la forma de los datos.

Dónde se usa

Exploración inicial de cualquier conjunto de datos, informes de latencia por percentiles, detección de atípicos y control de calidad.

Bibliografía de la clase

202 · Población, muestra y sesgo de selección

Parte 10 · clase 2 de 20 · demostración population_sample

El sesgo de selección no se corrige con más datos: solo se vuelve más convincente.

error total = sesgo + error aleatorio
el error aleatorio ~ 1/√n; el sesgo no depende de n
muestra aleatoria simple: toda unidad con igual probabilidad

Fundamentos

Toda inferencia se apoya en un supuesto que rara vez se enuncia: que la muestra representa a la población. Cuando ese supuesto falla, ninguna técnica posterior lo arregla. La estadística sofisticada aplicada a una muestra sesgada produce conclusiones sofisticadas y falsas.

La clave está en distinguir dos fuentes de error. El error aleatorio viene de que la muestra es finita y decae como 1/√n: más datos lo reducen. El sesgo viene de que el mecanismo de selección favorece a ciertos individuos, y es constante en n: más datos no lo tocan. Peor aún, reducen el error aleatorio y estrechan el intervalo, dando más confianza a un número equivocado.

Los ejemplos históricos son elocuentes. La encuesta del Literary Digest de 1936 recogió 2,4 millones de respuestas y predijo mal las elecciones, porque muestreó de listas de propietarios de teléfono y automóvil. Gallup acertó con 50 000 respuestas bien muestreadas. El sesgo del superviviente es la variante más traicionera: estudiar solo empresas que siguen existiendo, aviones que volvieron o usuarios que no abandonaron.

La defensa es de diseño, no de análisis: aleatorizar la selección. Cuando no es posible, hay que declarar el mecanismo de selección y razonar explícitamente sobre a qué población se puede extrapolar. En aprendizaje automático el mismo problema aparece como desplazamiento de distribución entre los datos de entrenamiento y los de producción.

Ejemplo trabajado

Misma población, dos mecanismos de muestreo.

población: 10 000 individuos,  media real = 50,02

muestra aleatoria (n = 500)
  media = 49,83        error = 0,20

muestra sesgada (n = 500, favorece valores altos)
  media = 61,36        error = 11,34        57 veces peor

Aumentar el sesgado a n = 5 000:
  error aleatorio ↓        el sesgo se mantiene en ≈ 11
  el intervalo se estrecha alrededor del valor equivocado

Conclusión: 500 datos bien muestreados baten a 5 000 mal muestreados.

Qué ejecuta el laboratorio

Sesgo de selección: la muestra no representa a la población.

GrupoSalidas
Resultados numéricos (5)media_poblacional, media_muestra_aleatoria, error_muestra_aleatoria, media_muestra_sesgada, error_muestra_sesgada
Comprobaciones (1)el_tamaño_no_corrige_el_sesgo
compmath run 202

Errores conceptuales frecuentes

  1. Creer que un n enorme compensa un muestreo defectuoso.
  2. Extrapolar de una muestra de conveniencia a la población general.
  3. Analizar solo los casos que sobrevivieron hasta el final del periodo.

Dónde se usa

Diseño de encuestas, construcción de conjuntos de entrenamiento, auditoría de sesgo en modelos y detección de desplazamiento de distribución en producción.

Bibliografía de la clase

203 · Muestreo y distribuciones muestrales

Parte 10 · clase 3 de 20 · demostración sampling_distributions

El estadístico también tiene distribución, y esa distribución es la que permite inferir.

x̄ ~ Normal(μ, σ²/n)  para n grande
SE = σ/√n
n × 4  ⟹  SE / 2

Fundamentos

La idea que abre la inferencia es un cambio de nivel: si se repitiera el muestreo muchas veces, cada muestra daría una media distinta, y esas medias tienen su propia distribución. Esa es la distribución muestral, y es el objeto sobre el que se construyen intervalos y contrastes.

Su desviación estándar recibe el nombre de error estándar para distinguirla de la desviación de los datos. Son cantidades distintas que se confunden constantemente: σ dice cuánto varía una observación individual, σ/√n cuánto varía la estimación de la media. Con n = 100 difieren por un factor 10.

La forma de esa distribución la garantiza el teorema central del límite de la clase 197: es aproximadamente normal aunque la población no lo sea. Por eso las mismas fórmulas funcionan para datos de origen muy variado, y por eso la normal aparece en todas partes en estadística sin que nadie suponga que los datos son normales.

La raíz cuadrada tiene consecuencias económicas directas. Reducir a la mitad el error exige cuadruplicar el tamaño muestral, y eso normalmente significa cuadruplicar el coste del experimento. Saber esto antes de diseñar un estudio evita descubrir a mitad de camino que el presupuesto no alcanza para la precisión prometida.

Ejemplo trabajado

Muestras de una población normal de media 50 y desviación 10.

población: Normal(50, 10)

   n     media de medias   SE observado   SE teórico σ/√n
   5         49,9483          4,4782          4,4721
  20         50,0142          2,2380          2,2361
  80         49,9911          1,1145          1,1180
 320         50,0037          0,5581          0,5590

La media de las medias acierta siempre; lo que cambia es la dispersión.

n de 5 a 20  → ×4  → SE de 4,47 a 2,24  → mitad         ✓
n de 20 a 80 → ×4  → SE de 2,24 a 1,11  → mitad         ✓

Qué ejecuta el laboratorio

La distribución de la media muestral y su error estándar.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (1)cuadruplicar_n_reduce_SE_a_la_mitad
compmath run 203

Errores conceptuales frecuentes

  1. Usar la desviación de los datos donde corresponde el error estándar.
  2. Suponer que un n mayor cambia la media esperada del estimador.
  3. Ignorar que reducir el error a la mitad cuadruplica el coste.

Dónde se usa

Dimensionado de experimentos, barras de error en gráficos, comparación de métricas entre modelos y control de precisión en simulaciones.

Bibliografía de la clase

204 · Estimadores y propiedades

Parte 10 · clase 4 de 20 · demostración estimators

Insesgado no significa bueno: hay que mirar también la varianza.

sesgo(θ̂) = E[θ̂] − θ
ECM = sesgo² + varianza
consistencia: θ̂ₙ → θ cuando n → ∞

Fundamentos

Un estimador es una receta para calcular un parámetro desconocido a partir de la muestra. Como depende de datos aleatorios, es él mismo una variable aleatoria, y se juzga por las propiedades de su distribución: sesgo, varianza y comportamiento asintótico.

El sesgo mide si el estimador acierta en promedio. Dividir entre n al calcular la varianza muestral produce un estimador sesgado a la baja, porque las desviaciones se miden respecto de una media ajustada a los propios datos; dividir entre n−1 corrige ese sesgo. Es la corrección de Bessel de la clase 190, vista ahora desde la teoría de estimación.

Pero insesgado no equivale a bueno. El error cuadrático medio se descompone en sesgo² + varianza, y hay estimadores sesgados con ECM mucho menor que el insesgado. Toda la regularización en aprendizaje automático se apoya en ese intercambio: introducir sesgo a cambio de reducir varianza. Es la misma descomposición sesgo-varianza que reaparecerá en la parte 14.

La consistencia es la garantía mínima que se le pide a un estimador: converger al parámetro cuando los datos crecen. Es una propiedad asintótica y no dice nada sobre el comportamiento con la muestra que realmente se tiene, que suele ser pequeña y es donde el sesgo y la varianza deciden.

Ejemplo trabajado

Dos estimadores de la varianza con muestras de tamaño 8.

varianza real = 25,0        n = 8      10 000 réplicas

estimador dividiendo entre n:
  E[σ̂²] = 21,7438        sesgo = −3,2562    (−13 %)

estimador dividiendo entre n−1:
  E[s²]  = 24,8501        sesgo = −0,1499    (−0,6 %)

Factor de corrección teórico: (n−1)/n = 7/8 = 0,875
  21,7438 / 0,875 = 24,85                              ✓

Con n = 100 el sesgo del primero baja al 1 %: ambos son
consistentes, pero solo el segundo es insesgado.

Qué ejecuta el laboratorio

Sesgo, varianza y consistencia de dos estimadores de la varianza.

GrupoSalidas
Resultados numéricos (7)varianza_real, tamaño_muestral, E[estimador_/n], sesgo_/n, E[estimador_/(n-1)], sesgo_/(n-1), factor_teorico_(n-1)/n
Comprobaciones (0)
compmath run 204

Errores conceptuales frecuentes

  1. Elegir un estimador solo por ser insesgado, sin mirar su varianza.
  2. Confiar en garantías asintóticas con muestras pequeñas.
  3. Confundir el estimador, que es aleatorio, con la estimación concreta obtenida.

Dónde se usa

Regularización como sesgo deliberado, estimación de varianza en normalización, evaluación de estimadores de gradiente y elección entre modelos simples y complejos.

Bibliografía de la clase

205 · Intervalos de confianza

Parte 10 · clase 5 de 20 · demostración confidence_intervals

El 95 % de un intervalo de confianza es una propiedad del procedimiento, no del parámetro.

IC 95 % ≈ x̄ ± 1,96·(s/√n)
cobertura: proporción de intervalos que contienen θ al repetir el estudio
amplitud ∝ 1/√n

Fundamentos

La frase «hay un 95 % de probabilidad de que el parámetro esté en el intervalo» es incorrecta en el marco frecuentista, y es probablemente la frase mal dicha con más frecuencia en toda la ciencia aplicada. El parámetro es un número fijo: o está en el intervalo o no está, y no hay probabilidad en ello.

Lo que es aleatorio es el intervalo, porque se calcula a partir de datos aleatorios. La afirmación correcta es sobre el procedimiento: si se repitiera el estudio muchas veces, alrededor del 95 % de los intervalos construidos así contendrían el parámetro. El 95 % es una tasa de acierto a largo plazo del método, no una creencia sobre este caso concreto.

La distinción no es pedantería. Cambia lo que se puede concluir, y explica por qué existe el intervalo creíble bayesiano de la clase 217, que sí admite la lectura probabilística directa porque parte de tratar el parámetro como variable aleatoria. Ambos son legítimos; lo ilegítimo es dar la interpretación de uno al otro.

La cobertura real puede quedarse por debajo de la nominal cuando los supuestos fallan: muestras pequeñas, poblaciones muy asimétricas o uso de la normal donde correspondía la t. Un intervalo del 95 % que en simulación cubre el 93 % está informando de que el modelo es aproximado, y conviene reportarlo en vez de esconderlo.

Ejemplo trabajado

Cobertura simulada de intervalos al 95 %.

3 000 réplicas del estudio completo

  intervalos que contienen el parámetro: 2 791
  cobertura observada: 93,03 %
  cobertura nominal:   95,00 %

Un intervalo concreto (n = 20):
  media  = 12,6050
  SE     =  0,1930
  IC 95% = (12,2268 , 12,9832)      amplitud 0,7564

Lectura correcta:
  "el procedimiento acierta el 95 % de las veces"
Lectura incorrecta:
  "hay un 95 % de probabilidad de que μ esté aquí"

Con n = 80 la amplitud bajaría a la mitad: 0,378.

Qué ejecuta el laboratorio

Un IC 95 % describe el procedimiento, no una probabilidad del parámetro.

GrupoSalidas
Resultados numéricos (5)cobertura_simulada_%, cobertura_nominal_%, replicas, muestra_de_ejemplo_media, amplitud
Comprobaciones (0)
compmath run 205

Errores conceptuales frecuentes

  1. Leer el 95 % como probabilidad sobre el parámetro.
  2. Concluir que no hay efecto porque el intervalo contiene el cero.
  3. Ignorar que la cobertura real depende de que se cumplan los supuestos.

Dónde se usa

Reporte de métricas de modelos, comparación de tratamientos, estimación de tasas de conversión y cualquier resultado que deba comunicarse con incertidumbre.

Bibliografía de la clase

206 · Pruebas de hipótesis

Parte 10 · clase 6 de 20 · demostración hypothesis_testing

Una prueba de hipótesis nunca acepta la nula: solo la rechaza o se queda sin evidencia.

H0: μ = μ₀   frente a   H1: μ ≠ μ₀
z = (x̄ − μ₀) / (s/√n)
rechazar si |z| > z_{α/2}  ó  p < α

Fundamentos

Una prueba de hipótesis es un procedimiento de decisión con una estructura fija que conviene ejecutar siempre en el mismo orden: enunciar H0 y H1, fijar α, elegir el estadístico, calcular su valor y su p-value, y decidir. Fijar α antes de ver los datos no es un formalismo: es lo único que impide ajustar el umbral al resultado.

La lógica es la de la reducción al absurdo probabilística. Se supone H0 cierta, se calcula cuán raros serían los datos observados bajo ese supuesto, y si son suficientemente raros se rechaza H0. Lo que no se puede hacer es el paso simétrico: no rechazar no demuestra que H0 sea cierta, igual que no encontrar pruebas no demuestra inocencia.

Por eso el vocabulario correcto es «no se rechaza H0», nunca «se acepta H0». Un resultado no significativo es compatible con dos escenarios muy distintos: que no haya efecto, o que el estudio no tuviera potencia para detectarlo. Distinguirlos exige la clase 209.

La decisión también depende de si el contraste es de una o dos colas. La versión de dos colas contrasta «distinto de», la de una cola «mayor que» y reparte todo α en un lado. Cambiar a una cola después de ver la dirección del efecto duplica de hecho la tasa de falsos positivos, y es una de las formas más comunes de p-hacking.

Ejemplo trabajado

Contraste bilateral sobre una media con n = 20.

H0: μ = 12,0        H1: μ ≠ 12,0        α = 0,05

media muestral  = 12,6050
error estándar  =  0,1930
z = (12,6050 − 12,0) / 0,1930 = 3,1353

valor crítico bilateral: ±1,96
|3,1353| > 1,96   →  se rechaza H0

p-value = 2·P(Z > 3,1353) = 0,00172

Redacción correcta:
  "se rechaza H0 al 5 %; la media difiere de 12,0"
Redacción incorrecta:
  "queda demostrado que μ = 12,605"

Qué ejecuta el laboratorio

Estructura completa de una prueba de hipótesis.

GrupoSalidas
Resultados numéricos (5)alfa, media_muestral, error_estandar, estadistico_z, p_value
Comprobaciones (1)no_rechazar_no_es_aceptar
compmath run 206

Errores conceptuales frecuentes

  1. Escribir «se acepta H0» ante un resultado no significativo.
  2. Elegir α después de ver el p-value.
  3. Pasar a una cola tras conocer la dirección del efecto.

Dónde se usa

Comparación de modelos, validación de cambios en producción, control de calidad y ensayos clínicos.

Bibliografía de la clase

207 · p-value correctamente interpretado

Parte 10 · clase 7 de 20 · demostración p_value

El p-value mide la rareza de los datos bajo H0, no la probabilidad de que H0 sea cierta.

p = P(estadístico tan o más extremo | H0 cierta)
p ≠ P(H0 | datos)
bajo H0, el p-value se distribuye Uniforme(0,1)

Fundamentos

El p-value responde a una pregunta muy concreta: si la hipótesis nula fuera cierta, ¿con qué frecuencia se verían datos al menos tan extremos como los observados? Es una probabilidad condicionada a H0, no una probabilidad de H0. Esa inversión ilegítima es la misma falacia del fiscal de la clase 186, aplicada a la práctica científica.

Hay un hecho que aclara todo lo demás: bajo H0, el p-value es uniforme en el intervalo unitario. Cualquier valor es igual de probable. Por eso rechazar con p < 0,05 produce exactamente un 5 % de falsos positivos cuando no hay ningún efecto; el umbral no es mágico, es simplemente la fracción de la uniforme que se decide sacrificar.

De la uniformidad se deduce el mecanismo del p-hacking. Si se prueban 20 análisis distintos sobre datos sin efecto, la probabilidad de que alguno baje de 0,05 es 1 − 0,95²⁰ ≈ 64 %. Probar variantes, subgrupos, transformaciones o momentos de parada hasta obtener significancia no es análisis exploratorio: es fabricar resultados. La defensa es preinscribir el análisis y corregir por comparaciones múltiples.

Y hay una última confusión, independiente de las anteriores: significancia no es relevancia. Con n suficientemente grande, cualquier diferencia por minúscula que sea resulta significativa. Un p-value pequeño dice que el efecto probablemente no es cero; no dice que importe. Por eso hay que reportar siempre el tamaño del efecto y su intervalo.

Ejemplo trabajado

Distribución del p-value cuando no hay efecto alguno.

100 000 experimentos simulados con H0 cierta

  media de los p-values          = 0,49789    ≈ 0,5 (uniforme)
  proporción con p < 0,05        = 0,05750    ≈ 5 %
  proporción con p < 0,01        = 0,01417    ≈ 1 %

El 5 % de los estudios "encuentra" un efecto inexistente.

Comparaciones múltiples sin corrección:
  k = 1    P(algún falso positivo) = 5 %
  k = 5                            = 23 %
  k = 20                           = 64 %
  k = 100                          = 99,4 %

Corrección de Bonferroni: usar α/k en cada contraste.

Qué ejecuta el laboratorio

Qué mide y qué no mide un p-value.

GrupoSalidas
Resultados numéricos (5)proporcion_p<0.05, proporcion_p<0.01, media_de_los_p, riesgo_de_20_pruebas, correccion_de_Bonferroni_alfa
Comprobaciones (1)bajo_H0_es_uniforme
compmath run 207

Errores conceptuales frecuentes

  1. Leer p = 0,03 como «hay un 3 % de probabilidad de que H0 sea cierta».
  2. Probar múltiples análisis y reportar solo el significativo.
  3. Confundir significancia estadística con importancia práctica.

Dónde se usa

Interpretación de literatura científica, evaluación de experimentos A/B, comparación de modelos y auditoría de resultados publicados.

Bibliografía de la clase

208 · Errores tipo I y II

Parte 10 · clase 8 de 20 · demostración type_errors

Bajar la tasa de falsos positivos sube la de falsos negativos: el compromiso es inevitable.

α = P(rechazar H0 | H0 cierta)   error tipo I
β = P(no rechazar H0 | H0 falsa)  error tipo II
potencia = 1 − β

Fundamentos

Toda prueba puede fallar de dos maneras. El error tipo I es una falsa alarma: rechazar una nula que era cierta. El error tipo II es un fallo de detección: no rechazar una nula que era falsa. Sus tasas se llaman α y β, y no se pueden minimizar ambas a la vez con una muestra fija.

La razón es geométrica. Mover el umbral de decisión hacia la derecha reduce las falsas alarmas y aumenta los fallos de detección; moverlo hacia la izquierda hace lo contrario. Es exactamente el mismo compromiso que en clasificación entre precisión y exhaustividad, y la curva ROC es su representación gráfica.

Cuál de los dos errores duele más es una decisión del dominio, no de la estadística. En un cribado de cáncer un falso negativo es mucho peor que un falso positivo, y conviene un α alto. En un juicio penal la asimetría es la opuesta. El convenio de α = 0,05 es una herencia histórica de Fisher, no un resultado matemático, y en física de partículas se usa un umbral equivalente a cinco sigmas.

La única forma de reducir ambos errores simultáneamente es aumentar el tamaño muestral, porque estrecha las distribuciones y reduce su solapamiento. Ese es el contenido de la clase siguiente y la razón por la que el cálculo de potencia debe hacerse antes de recoger datos.

Ejemplo trabajado

Tasas observadas con α nominal 0,05 y un efecto real de media desviación.

Bajo H0 cierta (efecto nulo):
  tasa de error tipo I observada = 0,0683      ≈ α

Bajo H1 cierta (efecto d = 0,5):
  tasa de error tipo II (β)      = 0,2083
  potencia (1 − β)               = 0,7917

Compromiso al mover el umbral:
     α        β       potencia
  0,100    0,133      0,867
  0,050    0,208      0,792
  0,010    0,392      0,608
  0,001    0,616      0,384

Bajar α diez veces casi duplica β. Solo subir n mejora ambos.

Qué ejecuta el laboratorio

Errores tipo I y II: el compromiso es inevitable.

GrupoSalidas
Resultados numéricos (5)alfa_nominal, tasa_error_tipo_I_observada, efecto_real, tasa_error_tipo_II_(beta), potencia_1-beta
Comprobaciones (1)bajar_alfa_sube_beta
compmath run 208

Errores conceptuales frecuentes

  1. Bajar α sin comprobar qué le pasa a la potencia.
  2. Tratar α = 0,05 como una constante universal.
  3. Ignorar cuál de los dos errores es más costoso en el dominio concreto.

Dónde se usa

Umbrales de clasificadores, sistemas de alerta, cribado médico, detección de fraude y criterios de parada en monitorización.

Bibliografía de la clase

209 · Potencia estadística

Parte 10 · clase 9 de 20 · demostración statistical_power

Sin potencia declarada, un resultado no significativo no distingue entre no hay efecto y no hay datos.

potencia = 1 − β = P(rechazar H0 | H1 cierta)
d de Cohen = (μ₁ − μ₀) / σ
n ≈ 16/d²  para 80 % de potencia con α = 0,05

Fundamentos

La potencia es la probabilidad de detectar un efecto que realmente existe. Depende de tres cosas: el tamaño del efecto, el nivel α y el tamaño muestral. Fijadas las dos primeras, es el n el que decide, y por eso el cálculo de potencia es un paso de diseño, no de análisis.

Un estudio con potencia baja tiene un problema doble, y el segundo es el que casi nadie menciona. El primero es obvio: probablemente no detectará el efecto. El segundo es más grave: si lo detecta, la magnitud estimada estará inflada, porque solo las muestras con desviación favorable superan el umbral. Es el fenómeno de la maldición del ganador, y explica buena parte de la crisis de replicación.

El tamaño del efecto —la d de Cohen, la diferencia en unidades de desviación— es la pieza que hay que estimar antes de empezar, a partir de literatura previa o de un estudio piloto. Es independiente de n, a diferencia del p-value, y es lo que debe reportarse junto a la significancia.

La regla práctica n ≈ 16/d² da el orden de magnitud para un 80 % de potencia. Detectar un efecto mediano necesita unas 64 observaciones por grupo; detectar uno pequeño de d = 0,2 necesita unas 400. Descubrir eso al terminar el experimento, y no al planificarlo, es descubrir que el estudio nunca pudo concluir nada.

Ejemplo trabajado

Potencia frente a tamaño muestral con efecto d = 0,5 y α = 0,05.

d = 0,5      α = 0,05

     n      potencia
    10       0,3526
    30       0,7819
    64       0,9666
   100       0,9963

n necesario para 80 % de potencia: 32 por grupo
regla práctica 16/d² = 16/0,25 = 64 (conservadora, dos grupos)

Con n = 10 y resultado no significativo:
  la probabilidad de detectar el efecto era del 35 %
  no rechazar no informa casi nada

Efectos pequeños (d = 0,2) exigen n ≈ 400 por grupo.

Qué ejecuta el laboratorio

Potencia en función del tamaño muestral.

GrupoSalidas
Resultados numéricos (3)tamaño_del_efecto_d, alfa, n_para_potencia_80%
Comprobaciones (0)
compmath run 209

Errores conceptuales frecuentes

  1. Calcular la potencia después del experimento en vez de antes.
  2. Interpretar un no significativo de un estudio pequeño como ausencia de efecto.
  3. Confiar en la magnitud estimada de un efecto detectado con potencia baja.

Dónde se usa

Planificación de experimentos A/B, dimensionado de ensayos clínicos, diseño de estudios de usabilidad y evaluación de si una comparación de modelos puede concluir algo.

Bibliografía de la clase

210 · t-test y comparación de medias

Parte 10 · clase 10 de 20 · demostración t_test

La t de Student compara medias cuando la varianza poblacional es desconocida.

t = (x̄₁ − x̄₂) / (s_p·√(1/n₁ + 1/n₂))
s_p² = ((n₁−1)s₁² + (n₂−1)s₂²) / (n₁+n₂−2)
gl = n₁ + n₂ − 2

Fundamentos

Cuando se compara la media de dos grupos y no se conoce la varianza poblacional, sustituir σ por su estimación introduce incertidumbre adicional. La distribución t la absorbe con colas más pesadas que la normal: para el mismo nivel de confianza exige valores más extremos, y esa penalización se relaja al crecer los grados de libertad.

El estadístico tiene una lectura directa: es la diferencia observada dividida entre el ruido esperado de esa diferencia. Un t de 2,7 significa que los grupos están separados por 2,7 veces la incertidumbre de la medición, lo cual es difícil de explicar por azar.

La versión clásica supone normalidad aproximada, independencia y varianzas similares. La normalidad es la menos crítica gracias al TCL; la independencia es la más crítica y la más violada, típicamente con medidas repetidas del mismo sujeto, que exigen la versión pareada. Con varianzas muy distintas se usa la corrección de Welch, que es hoy el valor por defecto en la mayoría de bibliotecas.

El t-test da un p-value, pero lo que hay que reportar es la diferencia con su intervalo de confianza. «Los grupos difieren en 11,3 puntos, IC 95 % [2,9 , 19,6]» comunica magnitud y precisión; «p = 0,009» solo comunica que la diferencia no es cero.

Ejemplo trabajado

Dos grupos independientes de 25 observaciones cada uno.

grupo A: media  94,2816
grupo B: media 105,5441
diferencia      11,2626

desviación combinada s_p = 14,6574
SE de la diferencia = 14,6574·√(1/25 + 1/25) = 4,1457

t = 11,2626 / 4,1457 = 2,7167       gl = 48

valor crítico bilateral al 5 %: ±2,011
|2,7167| > 2,011  →  se rechaza H0
p ≈ 0,0091

IC 95 % de la diferencia:
  11,2626 ± 2,011 × 4,1457 = (2,926 , 19,600)

Reportar el intervalo, no solo el p-value.

Qué ejecuta el laboratorio

t-test de dos muestras independientes.

GrupoSalidas
Resultados numéricos (8)grupo_A_media, grupo_B_media, diferencia, desviacion_combinada, estadistico_t, grados_de_libertad, valor_critico_aprox_2.01, d_de_Cohen
Comprobaciones (1)significativo_al_5%
compmath run 210

Errores conceptuales frecuentes

  1. Aplicar el test independiente a medidas pareadas.
  2. Ignorar varianzas muy dispares en vez de usar Welch.
  3. Reportar solo el p-value y omitir la diferencia y su intervalo.

Dónde se usa

Comparación de dos variantes en A/B testing, contraste de métricas entre dos modelos, ensayos clínicos de dos brazos y estudios de rendimiento antes y después.

Bibliografía de la clase

211 · Chi-cuadrado y tablas de contingencia

Parte 10 · clase 11 de 20 · demostración chi_square

Chi-cuadrado compara frecuencias observadas con las esperadas bajo independencia.

χ² = Σ (O − E)² / E
E_ij = (total fila i × total columna j) / n
gl = (filas − 1)·(columnas − 1)

Fundamentos

Cuando las dos variables son categóricas, la comparación de medias no aplica y el instrumento natural es la tabla de contingencia: el recuento cruzado de categorías. La pregunta es si la distribución de una variable cambia según el valor de la otra, es decir, si son independientes.

La tabla esperada bajo independencia se construye con la regla del producto de la clase 185: si las variables fueran independientes, la proporción conjunta sería el producto de las marginales, y multiplicando por n se obtiene la frecuencia esperada de cada celda. El estadístico suma las discrepancias al cuadrado normalizadas por lo esperado.

Normalizar por E es esencial: una diferencia de 5 en una celda donde se esperaban 10 es enorme, y en una donde se esperaban 1000 es ruido. Los grados de libertad, (f−1)·(c−1), cuentan cuántas celdas quedan libres una vez fijados los totales marginales.

El test tiene dos condiciones prácticas. Trabaja con frecuencias absolutas, nunca con porcentajes: aplicarlo a porcentajes convierte cualquier tabla en una de n = 100 y falsea el resultado. Y exige frecuencias esperadas razonables —la regla habitual es al menos 5 por celda—; con celdas pequeñas corresponde el test exacto de Fisher.

Ejemplo trabajado

Tabla 2×2 con 100 observaciones.

observado          C1    C2   | total
  F1               30    20   |  50
  F2               15    35   |  50
-----------------------------------
  total            45    55   | 100

esperado bajo independencia  E = fila × columna / n
  F1: 50·45/100 = 22,5     50·55/100 = 27,5
  F2: 22,5                 27,5

χ² = (30−22,5)²/22,5 + (20−27,5)²/27,5
   + (15−22,5)²/22,5 + (35−27,5)²/27,5
   = 2,5 + 2,045 + 2,5 + 2,045 = 9,0909

gl = (2−1)(2−1) = 1        valor crítico al 5 % = 3,841
9,0909 > 3,841  →  se rechaza la independencia
p ≈ 0,0026

Qué ejecuta el laboratorio

Chi-cuadrado de independencia sobre una tabla de contingencia.

GrupoSalidas
Resultados numéricos (3)chi_cuadrado, grados_de_libertad, valor_critico_5%
Comprobaciones (1)rechaza_independencia
compmath run 211

Errores conceptuales frecuentes

  1. Aplicar el test a porcentajes en vez de a recuentos.
  2. Usarlo con frecuencias esperadas menores que 5.
  3. Concluir causalidad a partir de una asociación significativa.

Dónde se usa

Análisis de encuestas, matrices de confusión, comparación de tasas por segmento y detección de asociación entre variables categóricas.

Bibliografía de la clase

212 · ANOVA

Parte 10 · clase 12 de 20 · demostración anova

ANOVA compara varias medias a la vez sin inflar la tasa de falsos positivos.

SS_total = SS_entre + SS_dentro
F = (SS_entre/gl_entre) / (SS_dentro/gl_dentro)
k grupos ⟹ C(k,2) comparaciones por pares

Fundamentos

Con tres o más grupos, hacer todos los t-tests por pares infla la tasa de falsos positivos: con 3 grupos son 3 comparaciones y la probabilidad de alguna falsa alarma sube del 5 % al 14 %; con 5 grupos son 10 comparaciones y sube al 40 %. ANOVA resuelve el problema con un único contraste global.

Su mecanismo es una descomposición de la variabilidad, y es la misma idea del teorema de Pitágoras aplicada a sumas de cuadrados. La variación total de los datos respecto de la gran media se parte exactamente en dos: la variación entre grupos, que refleja las diferencias de medias, y la variación dentro de cada grupo, que es ruido.

El estadístico F es el cociente entre ambas, cada una dividida por sus grados de libertad. Si los grupos no difieren, ambas estiman la misma varianza y F ronda 1. Si difieren, la variación entre grupos crece y F se dispara. El nombre honra a Fisher, que lo desarrolló para experimentos agrícolas.

ANOVA solo dice si hay alguna diferencia, no cuál. Para localizarla hacen falta contrastes posteriores con corrección —Tukey, Bonferroni o Holm—, y hacerlos sin corregir devuelve el problema al punto de partida. Los supuestos son los del t-test extendidos: independencia, normalidad aproximada y homogeneidad de varianzas.

Ejemplo trabajado

Tres grupos, descomposición completa de la variabilidad.

medias de los grupos: 51,0576   54,4184   56,2285
gran media: 53,9015

SS_entre  =   275,3983      gl = k − 1  = 2
SS_dentro = 1 610,7534      gl = n − k  = 57
SS_total  = 1 886,1516      comprobación: 275,40 + 1610,75 ✓

MS_entre  = 275,3983 / 2  = 137,699
MS_dentro = 1610,7534 / 57 =  28,259

F = 137,699 / 28,259 = 4,873
valor crítico F(2,57) al 5 % ≈ 3,16
4,873 > 3,16  →  al menos un grupo difiere      p ≈ 0,011

Inflación sin ANOVA:
  3 t-tests sin corregir → P(falso positivo) ≈ 14 %

Qué ejecuta el laboratorio

ANOVA de un factor: descomposición de la variabilidad.

GrupoSalidas
Resultados numéricos (8)grupos, gran_media, SS_entre, SS_dentro, SS_total, estadistico_F, valor_critico_aprox_3.16, eta_cuadrado
Comprobaciones (1)significativo
compmath run 212

Errores conceptuales frecuentes

  1. Encadenar t-tests por pares sin corregir el nivel.
  2. Concluir qué grupo difiere a partir del F global.
  3. Aplicar ANOVA con varianzas muy dispares entre grupos.

Dónde se usa

Comparación de más de dos variantes en un experimento, evaluación de varias configuraciones de modelo, diseño factorial y estudios multicentro.

Bibliografía de la clase

213 · Correlación frente a causalidad

Parte 10 · clase 13 de 20 · demostración correlation_causation

Un confusor basta para fabricar correlación fuerte entre variables que no se tocan.

corr(X,Y) alta ⇏ X → Y
confusor Z: Z → X y Z → Y
aleatorizar la asignación rompe todas las flechas hacia el tratamiento

Fundamentos

Que dos variables se muevan juntas admite al menos cuatro explicaciones distintas: X causa Y, Y causa X, una tercera variable Z causa ambas, o es coincidencia en una muestra pequeña. La correlación no distingue entre ellas, y elegir la primera por defecto es el error de interpretación más caro de la estadística aplicada.

El caso escolar —venta de helados y ahogamientos— tiene la estructura completa. Ambas variables suben con la temperatura, y por eso correlacionan entre sí sin que ninguna cause la otra. La variable de confusión es la temperatura, y basta condicionar sobre ella para que la asociación se desvanezca.

Hay dos formas de romper el problema. La primera es aleatorizar: si el tratamiento se asigna al azar, ninguna variable previa —ni las conocidas ni las que se ignoran— puede influir en quién lo recibe, y la diferencia observada sí admite lectura causal. Es la razón de ser del ensayo controlado aleatorizado. La segunda es controlar los confusores conocidos mediante estratificación o regresión, con la limitación evidente de que solo funciona con los que se han identificado.

La inferencia causal moderna —grafos causales, criterio de puerta trasera, contrafactuales— formaliza cuándo un ajuste es válido y cuándo introduce sesgo nuevo. Un resultado contraintuitivo: controlar por una variable equivocada, como un colisionador, crea asociación espuria en vez de eliminarla. Ajustar por todo lo disponible no es una estrategia segura.

Ejemplo trabajado

Helados, ahogamientos y temperatura.

corr(helados, ahogamientos)   = 0,5759
corr(temperatura, helados)    = 0,9205
corr(temperatura, ahogamientos) = 0,6306

Estructura causal real:
  temperatura → helados
  temperatura → ahogamientos
  helados     ↛ ahogamientos

Al condicionar sobre temperatura, la correlación
entre helados y ahogamientos se desvanece.

Prohibir el helado no reduciría ni un ahogamiento.

Detección:
  aleatorizar la asignación, o
  controlar explícitamente el confusor.

Qué ejecuta el laboratorio

Una variable de confusión genera correlación sin causalidad.

GrupoSalidas
Resultados numéricos (3)corr(helados, ahogamientos), corr(temperatura, helados), corr(temperatura, ahogamientos)
Comprobaciones (1)hay_flecha_causal_helados→ahogamientos
compmath run 213

Errores conceptuales frecuentes

  1. Leer una correlación fuerte como evidencia causal.
  2. Controlar por todas las variables disponibles sin criterio.
  3. Olvidar que la causalidad inversa explica igual de bien los datos observacionales.

Dónde se usa

Evaluación de campañas y políticas, atribución de conversiones, análisis de sesgo en modelos y diseño de experimentos controlados.

Bibliografía de la clase

214 · Regresión lineal estadística

Parte 10 · clase 14 de 20 · demostración linear_regression_stats

Un R² alto no valida el modelo: los residuos son los que lo hacen.

ŷ = b₀ + b₁x,   b₁ = Σ(x−x̄)(y−ȳ) / Σ(x−x̄)²
R² = 1 − SS_res / SS_tot
t = b₁ / SE(b₁),  gl = n − 2

Fundamentos

La regresión lineal ajusta la recta que minimiza la suma de residuos al cuadrado. Vista desde el álgebra lineal es la proyección de la parte 05; vista desde la estadística, cada coeficiente es un estimador con su error estándar, su intervalo de confianza y su contraste de significancia.

El coeficiente de determinación mide qué fracción de la variabilidad de y explica el modelo. Es útil pero se sobreinterpreta: un alto no garantiza que el modelo sea correcto, ni que la relación sea causal, ni que sirva para predecir fuera del rango observado. Añadir variables sin sentido siempre sube el , y por eso existe el ajustado.

Lo que sí valida el modelo son los residuos. Deben aparecer sin estructura: sin curvatura —que indicaría relación no lineal—, sin embudo —que indicaría varianza no constante— y sin patrón temporal —que indicaría dependencia—. El cuarteto de Anscombe construye cuatro conjuntos con idénticos coeficientes y de los que solo uno merece una recta.

La significancia de la pendiente contrasta H0: b₁ = 0, es decir, que x no aporta nada. Como en toda la parte, lo que hay que reportar es la pendiente con su intervalo: dice cuánto cambia y por unidad de x y con qué precisión, que es la información útil para decidir.

Ejemplo trabajado

Ocho puntos con relación casi perfectamente lineal.

n = 8

intercepto b₀ = 0,1750
pendiente  b₁ = 1,9917

R² = 0,998227           SS_residual = 0,295833
SE(b₁) = 0,034263

t = 1,9917 / 0,034263 = 58,13     gl = 6
p < 0,0001   →  la pendiente es claramente distinta de cero

IC 95 % de la pendiente:
  1,9917 ± 2,447 × 0,034263 = (1,9078 , 2,0755)

Lectura: cada unidad de x aumenta y en ≈ 1,99, con
una precisión de ±0,08. Eso es lo que hay que reportar.

Qué ejecuta el laboratorio

Regresión lineal con R², error estándar y significancia.

GrupoSalidas
Resultados numéricos (7)n, intercepto, pendiente, , SS_residual, error_estandar_pendiente, t_de_la_pendiente
Comprobaciones (1)significativa
compmath run 214

Errores conceptuales frecuentes

  1. Validar el modelo solo por el R² sin mirar los residuos.
  2. Extrapolar fuera del rango de los datos observados.
  3. Leer la pendiente como efecto causal en datos observacionales.

Dónde se usa

Modelos base en aprendizaje automático, análisis de tendencias, calibración de instrumentos y estimación de elasticidades.

Bibliografía de la clase

215 · Máxima verosimilitud

Parte 10 · clase 15 de 20 · demostración maximum_likelihood

La máxima verosimilitud elige el parámetro que hace más probables los datos observados.

L(θ) = Π f(xᵢ | θ)
ℓ(θ) = Σ log f(xᵢ | θ)
para la normal: μ̂ = x̄,  σ̂² = Σ(xᵢ − x̄)²/n

Fundamentos

La máxima verosimilitud invierte la pregunta habitual. En vez de fijar el parámetro y preguntar qué datos son probables, fija los datos observados y pregunta qué valor del parámetro los habría hecho más probables. Ese valor es el estimador MLE.

Se trabaja siempre con el logaritmo de la verosimilitud, por dos razones. La primera es algebraica: convierte productos en sumas y las derivadas se vuelven manejables. La segunda es numérica y decisiva: multiplicar mil densidades menores que 1 produce subdesbordamiento a cero en punto flotante, mientras que sumar mil logaritmos no tiene ese problema. Es la misma lección de la parte 01.

Para la normal el resultado es especialmente limpio: el MLE de la media es la media muestral, y el de la varianza es la versión que divide entre n, que es sesgada. Eso ya dice algo importante: el MLE no tiene por qué ser insesgado, aunque sí es consistente y asintóticamente eficiente bajo condiciones de regularidad.

El vínculo con el aprendizaje automático es de identidad, no de analogía. Minimizar el error cuadrático medio es maximizar la verosimilitud bajo ruido gaussiano; minimizar la entropía cruzada es maximizar la verosimilitud bajo un modelo categórico. Las funciones de pérdida no se inventan: se derivan del modelo probabilístico que se supone para los datos.

Ejemplo trabajado

Ajuste normal por máxima verosimilitud sobre 20 observaciones.

n = 20

μ̂ (MLE) = 12,6050        coincide con la media muestral
σ̂ (MLE) =  0,8411        divide entre n, no entre n−1

log-verosimilitud máxima = −24,9182

Barrido en μ manteniendo σ̂:
  μ = 11,61   →  ℓ = −39,0530
  μ = 12,11   →  ℓ = −28,4519
  μ = 12,61   →  ℓ = −24,9182     ← máximo
  μ = 13,11   →  ℓ = −28,4519
  μ = 13,61   →  ℓ = −39,0530

La curva es simétrica y su máximo cae en la media muestral.
Su curvatura en el máximo determina la precisión del estimador.

Qué ejecuta el laboratorio

MLE para la normal: la media muestral maximiza la verosimilitud.

GrupoSalidas
Resultados numéricos (4)n, mu_MLE, sigma_MLE, log_verosimilitud_maxima
Comprobaciones (1)el_maximo_esta_en_la_media
compmath run 215

Errores conceptuales frecuentes

  1. Multiplicar verosimilitudes en vez de sumar logaritmos.
  2. Suponer que el MLE es insesgado.
  3. Comparar verosimilitudes de modelos con distinto número de parámetros sin penalizar.

Dónde se usa

Derivación de funciones de pérdida, ajuste de modelos paramétricos, criterios AIC y BIC y entrenamiento de modelos generativos.

Bibliografía de la clase

216 · Estimación MAP

Parte 10 · clase 16 de 20 · demostración map_estimation

MAP es verosimilitud más prior, y ese prior es exactamente la regularización.

θ_MAP = argmax [ log L(θ) + log p(θ) ]
prior uniforme ⟹ MAP = MLE
prior gaussiano ⟹ penalización L2;  prior Laplace ⟹ L1

Fundamentos

La estimación MAP añade a la verosimilitud una creencia previa sobre el parámetro y maximiza la posterior. Formalmente es un cambio pequeño —sumar log p(θ) al objetivo— pero cambia el comportamiento del estimador cuando hay pocos datos, que es justo cuando hace falta ayuda.

La equivalencia con la regularización es exacta y merece verse una vez con detalle. Un prior gaussiano centrado en cero aporta un término −λ‖θ‖² al objetivo, que es la penalización L2 o weight decay. Un prior de Laplace aporta −λ‖θ‖₁, que es Lasso y produce soluciones dispersas. Regularizar no es un truco de ingeniería: es declarar una creencia previa.

El comportamiento asintótico es el esperado: al crecer n, la verosimilitud domina y el MAP converge al MLE. El prior importa cuando la evidencia es escasa, se diluye cuando abunda, y desaparece por completo si es uniforme. Esa es la respuesta a la objeción de que el prior contamina el resultado.

La diferencia con la inferencia bayesiana completa de la clase siguiente es que MAP se queda con un punto: el máximo de la posterior. Es rápido y encaja con cualquier optimizador, pero descarta toda la información sobre incertidumbre. Y en dimensión alta el máximo puede estar en una región de probabilidad casi nula, lo que hace de MAP un resumen engañoso de la posterior.

Ejemplo trabajado

Prior sesgado hacia 0,8 frente a un parámetro real de 0,4.

parámetro real = 0,40      prior = Beta(8,2), centrado en 0,8

     n     MLE      MAP     distancia MAP al real
     5   0,6000   0,7692        0,3692
    20   0,4500   0,5357        0,1357
   100   0,4100   0,4340        0,0340
  1000   0,4030   0,4055        0,0055

Con n = 5 el prior domina y empeora la estimación.
Con n = 1000 el prior es irrelevante: MAP → MLE.

Equivalencias:
  prior uniforme   →  MAP = MLE
  prior gaussiano  →  regularización L2
  prior Laplace    →  regularización L1

Qué ejecuta el laboratorio

MAP: verosimilitud más prior, y su límite con muchos datos.

GrupoSalidas
Resultados numéricos (1)parametro_real
Comprobaciones (3)MAP_converge_al_MLE, el_prior_domina_con_pocos_datos, MAP_con_prior_uniforme_es_MLE
compmath run 216

Errores conceptuales frecuentes

  1. Usar un prior fuerte con pocos datos y presentar el resultado como empírico.
  2. Creer que MAP resume bien la posterior en dimensión alta.
  3. No declarar el prior elegido al reportar una estimación MAP.

Dónde se usa

Weight decay y Lasso, suavizado de Laplace en modelos de lenguaje, estimación con datos escasos y calibración con conocimiento del dominio.

Bibliografía de la clase

217 · Inferencia bayesiana

Parte 10 · clase 17 de 20 · demostración bayesian_inference

El intervalo creíble sí admite la lectura probabilística que el de confianza no admite.

p(θ | datos) ∝ p(datos | θ)·p(θ)
Beta(a,b) + k éxitos en n ⟹ Beta(a+k, b+n−k)
intervalo creíble al 95 %: región con masa posterior 0,95

Fundamentos

La inferencia bayesiana trata el parámetro como una variable aleatoria y devuelve su distribución completa dada la evidencia. No un punto con una barra de error, sino una función que asigna plausibilidad a cada valor posible. De ella se leen la media, la moda, la desviación y cualquier intervalo que interese.

Esa diferencia de objeto produce una diferencia de interpretación. El intervalo creíble al 95 % contiene el parámetro con probabilidad 0,95 según la posterior, y esa es exactamente la frase que no se podía decir del intervalo de confianza en la clase 205. La lectura intuitiva que todo el mundo quiere hacer es correcta aquí, y solo aquí.

La conjugación hace el cálculo trivial en casos favorables. Con prior Beta y verosimilitud binomial, la posterior es Beta con parámetros actualizados: sumar los éxitos a a y los fracasos a b. Un prior Beta(1,1) es uniforme y representa ignorancia previa; con él, la media posterior es (k+1)/(n+2), la regla de sucesión de Laplace.

Lo que el enfoque exige a cambio es declarar el prior. Esa exigencia se presenta a veces como debilidad, pero es transparencia: todo análisis incorpora supuestos, y el bayesiano obliga a escribirlos. La crítica seria no es filosófica sino computacional: fuera de los casos conjugados la posterior no tiene forma cerrada y hay que recurrir a MCMC o a inferencia variacional, que es adonde llega la parte 17.

Ejemplo trabajado

Prior uniforme y evidencia creciente sobre un parámetro real de 0,62.

parámetro real = 0,62      prior = Beta(1,1) = uniforme

   n    posterior        media     desv.
   0    Beta(1,1)       0,5000    0,2887
  10    Beta(7,5)       0,5833    0,1370
  50    Beta(32,20)     0,6154    0,0669
 200    Beta(125,77)    0,6188    0,0340
1000    Beta(621,381)   0,6198    0,0153

La media se acerca al valor real y la desviación cae como 1/√n.

Intervalo creíble al 95 % con n = 1000:
  aproximadamente (0,590 , 0,650)

Lectura legítima:
  "hay un 95 % de probabilidad de que θ esté ahí"
Esa frase sería incorrecta para un intervalo de confianza.

Qué ejecuta el laboratorio

Actualización bayesiana conjugada Beta-Binomial.

GrupoSalidas
Resultados numéricos (1)parametro_real
Comprobaciones (1)la_incertidumbre_se_reduce
compmath run 217

Errores conceptuales frecuentes

  1. No declarar el prior utilizado.
  2. Tratar intervalo creíble e intervalo de confianza como sinónimos.
  3. Actualizar dos veces con la misma evidencia.

Dónde se usa

Tests A/B bayesianos, bandidos multibrazo, cuantificación de incertidumbre en modelos y estimación con datos escasos.

Bibliografía de la clase

218 · Bootstrap y remuestreo

Parte 10 · clase 18 de 20 · demostración bootstrap

El bootstrap estima la variabilidad remuestreando los datos, sin suponer distribución.

remuestrear n observaciones con reposición, B veces
SE_bootstrap = desviación estándar de las B réplicas
IC percentil: cuantiles 2,5 % y 97,5 % de las réplicas

Fundamentos

El bootstrap parte de una idea que suena a trampa: usar la muestra como si fuera la población. Se extraen B muestras del mismo tamaño con reposición de los datos originales, se calcula el estadístico en cada una, y la dispersión de esas B réplicas estima la variabilidad del estadístico.

Su valor está en que funciona para estadísticos sin fórmula cerrada. Para la media existe σ/√n, pero para la mediana, el percentil 95, la razón de dos medias, el coeficiente de correlación o una métrica de evaluación de un modelo, deducir el error estándar analíticamente es difícil o imposible. El bootstrap lo obtiene igual en todos los casos, cambiando análisis por cómputo.

El intervalo percentil se lee directamente de los cuantiles de las réplicas, sin suponer normalidad ni simetría. Con distribuciones asimétricas produce intervalos asimétricos, que es lo correcto, mientras que el intervalo ±1,96·SE fuerza simetría aunque los datos no la tengan.

No es magia y tiene límites claros. Sigue exigiendo que la muestra sea representativa —el bootstrap no arregla el sesgo de selección de la clase 202— y falla con estadísticos de valores extremos, como el máximo, porque el remuestreo no puede generar valores que no estaban. Con datos dependientes hay que usar variantes por bloques.

Ejemplo trabajado

Bootstrap de la media con 20 observaciones y 10 000 réplicas.

n = 20        B = 10 000
media observada = 12,6050

SE bootstrap = 0,188371
SE teórico   = 0,192965        coinciden al 2 %      ✓

IC 95 % percentil: (12,235 , 12,980)
IC 95 % paramétrico: (12,227 , 12,983)

Ventaja real: la mediana no tiene fórmula sencilla de SE,
y el bootstrap la da con el mismo procedimiento.

Límite: para el máximo el bootstrap subestima gravemente
la variabilidad, porque nunca genera valores nuevos.

Qué ejecuta el laboratorio

Bootstrap: estimar la variabilidad sin suponer la distribución.

GrupoSalidas
Resultados numéricos (6)n, replicas, media_observada, SE_bootstrap_de_la_media, SE_teorico, SE_bootstrap_de_la_mediana
Comprobaciones (0)
compmath run 218

Errores conceptuales frecuentes

  1. Remuestrear sin reposición: se recupera siempre la muestra original.
  2. Usarlo con estadísticos de extremos como máximos o mínimos.
  3. Creer que corrige un muestreo sesgado.

Dónde se usa

Intervalos de confianza para métricas de modelos, comparación de algoritmos, estimación de incertidumbre en estadísticos complejos y bagging.

Bibliografía de la clase

219 · A/B testing y diseño experimental

Parte 10 · clase 19 de 20 · demostración ab_testing

Un A/B test se diseña antes de recogerlo: tamaño muestral, métrica y criterio de parada.

z = (p̂_B − p̂_A) / √(p̂(1−p̂)(1/n_A + 1/n_B))
lift relativo = (p_B − p_A) / p_A
n por grupo ≈ 16·p(1−p) / Δ²  para 80 % de potencia

Fundamentos

Un A/B test es un ensayo controlado aleatorizado aplicado a producto. La aleatorización es lo que le da valor causal: si la asignación al grupo es al azar, las diferencias observadas se atribuyen al cambio y no a características previas de los usuarios. Sin aleatorización es un estudio observacional con todos los confusores de la clase 213.

Tres decisiones deben tomarse antes de recoger datos: la métrica principal, el tamaño del efecto mínimo relevante, y el tamaño muestral que da potencia suficiente para detectarlo. Sin esas tres, el experimento no puede concluir nada aunque se ejecute perfectamente.

El error operativo más destructivo es el peeking: mirar el resultado a diario y parar cuando aparece p < 0,05. Ese procedimiento multiplica la tasa de falsos positivos por tres o más, porque da múltiples oportunidades de cruzar el umbral por azar. Las soluciones son fijar la duración de antemano o usar métodos de parada secuencial diseñados para ello.

Y hay que separar significancia de relevancia. Un lift del 17 % con p = 0,0098 es un resultado sólido; el mismo p con un lift del 0,3 % puede no justificar el coste del cambio. Lo que se decide no es si el efecto es distinto de cero, sino si merece la pena, y para eso hace falta el intervalo del efecto, no el p-value.

Ejemplo trabajado

Experimento de conversión con 4 000 usuarios por grupo.

grupo A (control):    conversión 0,10350
grupo B (variante):   conversión 0,12175
diferencia absoluta:  0,01825
lift relativo:        17,63 %

n por grupo = 4 000
proporción combinada p̂ = 0,112625
SE = √(0,112625 · 0,887375 · (1/4000 + 1/4000)) = 0,007070

z = 0,01825 / 0,007070 = 2,5817
p = 0,00983     →  significativo al 5 %

IC 95 % de la diferencia:
  0,01825 ± 1,96 × 0,007070 = (0,00439 , 0,03211)
  lift entre 4,2 % y 31,0 %

Peeking diario durante 14 días sin corrección:
  tasa real de falsos positivos ≈ 20 %, no 5 %.

Qué ejecuta el laboratorio

A/B test de proporciones con tamaño muestral y significancia.

GrupoSalidas
Resultados numéricos (7)conversion_A, conversion_B, lift_relativo_%, n_por_grupo, estadistico_z, p_value, n_requerido_para_80%_de_potencia
Comprobaciones (1)significativo_al_5%
compmath run 219

Errores conceptuales frecuentes

  1. Parar el experimento en cuanto el p-value baja de 0,05.
  2. Cambiar la métrica principal después de ver los resultados.
  3. Confundir significancia con impacto suficiente para justificar el cambio.

Dónde se usa

Experimentación de producto, comparación de modelos en producción, optimización de conversión y despliegues progresivos.

Bibliografía de la clase

220 · Capstone: estudio estadístico reproducible

Parte 10 · clase 20 de 20 · demostración capstone_reproducible_study

Un estudio creíble declara su semilla, su intervalo y lo que no puede concluir.

reportar: efecto, IC, n, α, potencia y semilla
IC paramétrico frente a IC bootstrap como comprobación cruzada
d de Cohen = diferencia / desviación combinada

Fundamentos

El capstone ejecuta un estudio completo con la disciplina de la parte entera: diseño de dos grupos independientes, semilla fija, análisis decidido de antemano, y reporte que incluye tanto lo que se concluye como lo que no. El objetivo no es obtener un resultado llamativo sino uno defendible.

La reproducibilidad empieza por la semilla. Un análisis que no se puede reejecutar y obtener los mismos números no es verificable, y no serlo es un defecto tan grave como un error de cálculo. Fijar la semilla, versionar los datos y dejar el código ejecutable es lo mínimo exigible.

El reporte debe llevar el efecto con su intervalo, no solo el p-value. Y conviene calcular el intervalo por dos vías —paramétrica y bootstrap— porque su coincidencia es evidencia de que los supuestos se sostienen, y su discrepancia es una señal de alarma que merece investigarse antes de publicar.

Por último, un estudio honesto declara sus límites: la población a la que se puede extrapolar, los supuestos que se han hecho, las comparaciones que se han realizado y las preguntas que este diseño no puede responder. Escribir esa sección obliga a mirar las debilidades, y esa mirada es lo que separa el análisis del marketing con números.

Ejemplo trabajado

Estudio de dos grupos con n = 60 por brazo, semilla fija.

semilla = 20260827
diseño: dos grupos independientes, n = 60 cada uno

media control      = 73,1961
media tratamiento  = 75,2439
diferencia         =  2,0478

IC 95 % paramétrico: (−0,9648 , 5,0604)
IC 95 % bootstrap:   (−0,9531 , 5,0442)      coinciden   ✓

El intervalo contiene el cero → no se rechaza H0.
p ≈ 0,18       d de Cohen ≈ 0,25 (efecto pequeño)

Potencia para d = 0,25 con n = 60 por grupo: ≈ 30 %
→ el estudio no tenía potencia para detectarlo

Conclusión honesta: no hay evidencia suficiente; el diseño
no permite descartar un efecto de hasta 5 puntos.

Qué ejecuta el laboratorio

Capstone: estudio completo, reproducible y con límites declarados.

GrupoSalidas
Resultados numéricos (7)semilla, media_control, media_tratamiento, diferencia, estadistico_t, d_de_Cohen, potencia_aproximada
Comprobaciones (2)significativo, reproducible
compmath run 220

Errores conceptuales frecuentes

  1. Publicar sin semilla ni código ejecutable.
  2. Reportar el p-value sin el tamaño del efecto ni su intervalo.
  3. Omitir la sección de limitaciones y las comparaciones realizadas.

Dónde se usa

Informes técnicos, tarjetas de modelo, publicaciones científicas, auditorías internas y documentación de experimentos de producto.

Bibliografía de la clase

Parte 11 — Métodos numéricos y computación científica

Nivel cientifico · 20 clases · 80 horas · motor part11

Raíces, interpolación, splines, diferenciación y cuadratura numérica, sistemas lineales iterativos, mínimos cuadrados y ecuaciones diferenciales.

Casi ninguna ecuación interesante tiene solución en forma cerrada. No hay fórmula para las raíces de un polinomio de grado cinco, ni para la integral de e^(−x²), ni para la mayoría de las ecuaciones diferenciales que describen el mundo físico. Los métodos numéricos son la respuesta a ese hecho: aproximar con error controlado en vez de resolver exactamente.

La palabra clave es controlado. Un método numérico sin estimación de error es un generador de números plausibles, y la diferencia entre un resultado y un número plausible es exactamente lo que esta parte enseña a establecer. Por eso la clase 221 abre con la tensión que gobierna todo lo demás: el error de truncamiento baja al reducir el paso h, pero el error de redondeo sube, y existe un h óptimo por debajo del cual afinar más empeora el resultado. Es la parte 01 reapareciendo con consecuencias prácticas.

Las clases 222 a 224 buscan raíces. Bisección es lenta pero garantizada: si hay cambio de signo, converge siempre. Newton es cuadrático —duplica los dígitos correctos en cada paso— pero solo cerca de la raíz, necesita la derivada y puede divergir espectacularmente desde un mal punto inicial. La secante renuncia a la derivada a cambio de un orden 1,618, el número áureo, y suele ser el mejor compromiso práctico.

Las clases 225 a 230 tratan de reconstruir funciones y de integrarlas. El fenómeno de Runge es la lección central: subir el grado del polinomio interpolador no mejora la aproximación, la empeora, con oscilaciones cada vez más violentas cerca de los extremos. La solución no es más grado sino trozos pequeños, y de ahí salen los splines. En integración aparece el concepto de orden: el trapecio es O(h²) y duplicar los subintervalos divide el error por 4; Simpson es O(h⁴) y lo divide por 16; la cuadratura gaussiana consigue con tres nodos lo que al trapecio le cuesta cientos.

Las clases 231 a 234 vuelven al álgebra lineal, ahora desde el punto de vista computacional. Los métodos directos como LU resuelven en un número fijo de operaciones; los iterativos como Jacobi y Gauss-Seidel se acercan progresivamente y son los únicos viables en sistemas enormes y dispersos. Aquí aparece la disciplina de los criterios de parada: tolerancia relativa, residuo y tope de iteraciones, los tres a la vez, siempre declarados.

Las clases 235 a 238 resuelven ecuaciones diferenciales. Euler es el método más simple y el peor: orden 1, error que solo se reduce a la mitad al duplicar el trabajo. RK4 cuesta cuatro evaluaciones por paso y es de orden 4, lo que en la práctica significa que RK4 con 5 pasos supera a Euler con 80. La estabilidad aparece como restricción independiente de la precisión, y con problemas rígidos o con ecuaciones en derivadas parciales se vuelve el factor decisivo: la condición de Courant no es una recomendación, es la frontera entre una simulación y una explosión numérica.

El cierre conecta con la práctica: qué aporta SciPy sobre una implementación propia, y por qué merece la pena haber escrito ambas. Se implementa a mano para saber cuándo la biblioteca falla o miente; se usa la biblioteca porque su estabilidad, su control de error y su rendimiento están probados. En inteligencia artificial estos métodos no son historia: los Neural ODE integran con RK4, los samplers de difusión son integradores de ecuaciones estocásticas, y los optimizadores de segundo orden son Newton con la derivada aproximada.

Ideas centrales

Por qué importa en IA

Los Neural ODE, los samplers de difusión y los optimizadores de segundo orden son métodos numéricos con parámetros aprendidos.

Errores frecuentes de la parte

Glosario de la parte (32 términos)

TérminoDefiniciónClase
BisecciónPartir por la mitad un intervalo con cambio de signo. Lenta pero convergencia garantizada.222
Condición de CourantRestricción entre paso temporal y espacial. Violarla hace divergir el esquema explícito.238
Convergencia cuadráticaEl número de dígitos correctos se duplica en cada iteración.223
CuadraturaAproximación de una integral por suma ponderada de valores de la función.228
Cuadratura gaussianaNodos y pesos elegidos para ser exactos con polinomios de grado 2n−1.228
Diagonalmente dominanteCada elemento diagonal supera en módulo a la suma de su fila. Garantiza convergencia iterativa.232
Diferencia central(f(x+h) − f(x−h)) / 2h. Error O(h²) frente al O(h) de la diferencia adelantada.227
Diferencias finitasSustituir derivadas por cocientes sobre una malla para discretizar una PDE.238
Ecuaciones normalesAᵀAx = Aᵀb. Resuelven mínimos cuadrados pero elevan al cuadrado el número de condición.234
Error de redondeoEl que introduce la aritmética finita. Aumenta al reducir h por cancelación.221
Error de truncamientoEl que introduce el método al aproximar. Disminuye al reducir el paso h.221
Fenómeno de RungeOscilaciones crecientes al interpolar con grado alto en nodos equiespaciados.225
Gauss-SeidelComo Jacobi pero reutilizando los valores ya actualizados. Suele converger el doble de rápido.232
Interpolación de LagrangePolinomio único de grado n−1 que pasa por n puntos dados.225
Método de EulerAvanzar por la tangente. Orden 1 y una sola evaluación por paso.236
Método de la secanteNewton con la derivada aproximada por diferencias. Orden 1,618.224
Método directoResuelve en un número fijo de operaciones, como LU. Coste O(n³).231
Newton-RaphsonIteración x − f(x)/f'(x). Convergencia cuadrática cerca de la raíz.223
Nodos de ChebyshevNodos concentrados en los extremos que controlan el error de interpolación.225
Orden de convergenciaExponente p tal que el error se comporta como O(hᵖ). Predice la ganancia al refinar.221
Paso óptimoValor de h que minimiza el error total. Por debajo, afinar empeora el resultado.221
Pivoteo parcialIntercambiar filas para usar el pivote de mayor módulo y ganar estabilidad.231
Problema de valor inicialEDO más condición inicial. Determina una única trayectoria.235
Problema rígidoEl que tiene escalas de tiempo muy dispares. Exige métodos implícitos.237
Región de estabilidadValores del paso para los que el método no amplifica el error. Independiente de la precisión.236
Regla de SimpsonAproxima por parábolas. Error O(h⁴) y exacta hasta grado 3.230
Regla del trapecioAproxima por trapecios. Error O(h²): duplicar n divide el error por 4.229
Residuo‖Ax − b‖. Mide cuánto incumple la ecuación la solución aproximada.233
Runge-Kutta 4Cuatro evaluaciones por paso y error O(h⁴). Estándar de facto para EDO no rígidas.237
SplineInterpolación por tramos de grado bajo. Evita las oscilaciones del grado alto.226
Teorema de BolzanoSi f es continua y cambia de signo en un intervalo, hay una raíz dentro.222
Tolerancia relativaCriterio de parada escalado por la magnitud de la solución. Robusto ante cambios de escala.233

Bibliografía de la parte

221 · Errores numéricos y convergencia

Parte 11 · clase 1 de 20 · demostración numerical_errors

Reducir el paso mejora hasta que el redondeo toma el control y empeora.

error total ≈ C₁·hᵖ + C₂·ε/h
diferencia adelantada: O(h);  central: O(h²)
h óptimo de la central ≈ ε^(1/3) ≈ 6·10⁻⁶

Fundamentos

Todo método numérico arrastra dos errores de naturaleza opuesta. El error de truncamiento proviene de la aproximación matemática —cortar una serie de Taylor, sustituir una curva por una recta— y se reduce al hacer el paso más pequeño. El error de redondeo proviene de la aritmética de precisión finita y crece al reducir el paso, porque restar dos números casi iguales y dividir por algo diminuto amplifica el ruido.

La suma de ambos tiene un mínimo. Existe un h óptimo, y por debajo de él afinar más empeora el resultado. Esto contradice la intuición de que «más pequeño es más preciso», y es la razón de que una derivada numérica con h = 10⁻¹⁵ sea basura mientras que con h = 10⁻⁶ sea buena.

El orden de un método es la potencia de h en el término de truncamiento, y es la cifra que permite predecir el comportamiento sin ejecutar nada. Un método de orden 1 divide el error por 2 al duplicar el trabajo; uno de orden 2 lo divide por 4; uno de orden 4, por 16. Esa diferencia es lo que decide entre segundos y horas de cómputo.

La consecuencia metodológica es que hay que medir el orden empíricamente. Ejecutar con h y con h/2, calcular el cociente de errores y comprobar que sale lo que la teoría predice, es la prueba más eficaz de que una implementación es correcta: un método de orden 4 cuyo error solo se divide por 2 tiene un error de programación.

Ejemplo trabajado

Derivada numérica de sen en x = 1, con distintos pasos.

valor exacto: cos(1) = 0,5403023058681398

      h        error adelantada    error central
  1e-01          4,294e-02          9,00e-04
  1e-03          4,207e-04          9,00e-08
  1e-05          4,207e-06          9,04e-12
  1e-07          4,361e-08          6,07e-10   ← empeora
  1e-09          2,721e-08          2,72e-08   ← ruido
  1e-11          6,004e-06          6,00e-06   ← basura

La central es O(h²): h × 0,01 → error × 0,0001            ✓
hasta que el redondeo domina cerca de h ≈ 1e-6.

h óptimo aproximado para la central: ε^(1/3) ≈ 6e-6

Qué ejecuta el laboratorio

Error de truncamiento frente a error de redondeo.

GrupoSalidas
Resultados numéricos (2)derivada_exacta, h_optimo_aprox
Comprobaciones (0)
compmath run 221

Errores conceptuales frecuentes

  1. Reducir h indefinidamente creyendo que siempre mejora.
  2. Publicar un método sin haber medido su orden empírico.
  3. Confundir precisión de la máquina con precisión del resultado.

Dónde se usa

Comprobación de gradientes numéricos frente a autodiferenciación, validación de integradores y elección de pasos en simulación.

Bibliografía de la clase

222 · Bisección

Parte 11 · clase 2 de 20 · demostración bisection

Bisección es la única que nunca falla si hay cambio de signo, y por eso es la red de seguridad.

si f(a)·f(b) < 0, hay raíz en (a,b)
amplitud tras n pasos: (b−a)/2ⁿ
n ≈ log₂((b−a)/tol) iteraciones

Fundamentos

La bisección se apoya en el teorema de Bolzano: si una función continua cambia de signo entre dos puntos, hay al menos una raíz entre ellos. El método evalúa el punto medio, mira el signo, y se queda con la mitad que sigue conteniendo el cambio. Cada paso reduce exactamente a la mitad la incertidumbre.

Su virtud es la garantía. No hay condiciones adicionales, no hay puntos iniciales malos, no diverge nunca. El número de iteraciones se conoce de antemano: log₂((b−a)/tol), unas 41 para pasar de un intervalo de amplitud 2 a la precisión de la máquina. Esa previsibilidad es lo que la hace insustituible como respaldo.

Su defecto es la lentitud. Cada iteración gana un solo bit de precisión, mientras que Newton duplica los dígitos correctos. Para el mismo problema, bisección necesita 41 evaluaciones donde Newton necesita 6. Cuando la evaluación de la función es cara, la diferencia es determinante.

La limitación menos obvia es que necesita un cambio de signo, y por tanto no encuentra raíces dobles como la de , donde la función toca el eje sin cruzarlo. Los métodos robustos de producción, como Brent, combinan bisección con interpolación: usan la rápida cuando funciona y caen a la garantizada cuando no.

Ejemplo trabajado

Raíz de x³ − 2x − 4 en el intervalo de 1 a 3.

f(1) = −5 < 0        f(3) = 17 > 0        hay cambio de signo

iter    x        f(x)         amplitud
  1   2,0000    0,000000        1,000
  5   1,9375   −0,603760        0,0625
 10   2,0020    0,020000        0,00195
 20   2,0000    1,9e-05         1,9e-06
 41   2,0000   −4,55e-12        9,1e-13

raíz = 2,0        41 iteraciones para 12 dígitos

Predicción teórica: log₂(2 / 1e-12) ≈ 41                 ✓

Newton alcanza la misma precisión en 6 iteraciones,
pero necesita la derivada y un buen punto inicial.

Qué ejecuta el laboratorio

Bisección: lenta pero garantizada si hay cambio de signo.

GrupoSalidas
Resultados numéricos (3)raiz, residuo, iteraciones_totales
Comprobaciones (1)cambio_de_signo
compmath run 222

Errores conceptuales frecuentes

  1. Aplicarla sin comprobar el cambio de signo en el intervalo.
  2. Esperar que encuentre raíces de multiplicidad par.
  3. Usarla sin tope de iteraciones aunque su convergencia esté acotada.

Dónde se usa

Búsqueda robusta de raíces, calibración de umbrales, respaldo dentro de métodos híbridos y búsqueda de puntos de cruce en curvas monótonas.

Bibliografía de la clase

223 · Newton-Raphson

Parte 11 · clase 3 de 20 · demostración newton_raphson

Newton duplica los dígitos correctos en cada paso, pero solo si empieza cerca.

xₙ₊₁ = xₙ − f(xₙ)/f'(xₙ)
error: eₙ₊₁ ≈ C·eₙ²  (convergencia cuadrática)
falla si f'(xₙ) ≈ 0

Fundamentos

Newton-Raphson aproxima la función por su recta tangente en el punto actual y toma como siguiente candidato el corte de esa recta con el eje. Es el método de la derivada aplicado a la búsqueda de raíces, y su deducción cabe en dos líneas a partir del desarrollo de Taylor de primer orden.

Su convergencia cuadrática es espectacular cuando funciona: si en un paso hay 3 dígitos correctos, en el siguiente hay 6, y en el siguiente 12. Por eso 6 iteraciones bastan donde bisección necesita 41. La cuadraticidad se pierde en raíces múltiples, donde degenera a convergencia lineal.

Los modos de fallo son reales y variados. Si la derivada se anula cerca del iterado, el paso se dispara a infinito. Si el punto inicial está lejos, la iteración puede alejarse, oscilar en un ciclo o converger a una raíz distinta de la buscada. Los fractales de Newton son la representación gráfica de esa sensibilidad extrema al punto de partida.

Su generalización a varias dimensiones sustituye la derivada por el Jacobiano y la división por la resolución de un sistema lineal. Esa versión es la que subyace a los métodos de segundo orden en optimización: minimizar es buscar la raíz del gradiente, y Newton aplicado al gradiente usa el Hessiano. La parte 12 desarrolla esa línea.

Ejemplo trabajado

Raíz de x³ − 2x − 4 desde x₀ = 3.

f(x) = x³ − 2x − 4        f'(x) = 3x² − 2

iter      x           error
  1    2,320000     3,20e-01
  2    2,059716     5,97e-02
  3    2,003100     3,10e-03
  4    2,000009     9,58e-06
  5    2,000000     9,17e-11
  6    2,000000     0,00e+00

Los dígitos correctos se duplican: 1 → 2 → 3 → 5 → 10 → 16

6 iteraciones frente a las 41 de bisección.

Modo de fallo: desde x₀ = 0,8 se tiene f'(0,8) = −0,08,
el paso salta a x ≈ −65 y la iteración se descontrola.

Qué ejecuta el laboratorio

Newton: convergencia cuadrática cerca de la raíz.

GrupoSalidas
Resultados numéricos (4)punto_inicial, raiz, iteraciones, residuo
Comprobaciones (1)duplica_digitos_por_iteracion
compmath run 223

Errores conceptuales frecuentes

  1. Usarlo sin salvaguarda cuando la derivada puede anularse.
  2. Esperar convergencia cuadrática en raíces múltiples.
  3. Omitir el tope de iteraciones y colgar el proceso en un ciclo.

Dónde se usa

Optimización de segundo orden, resolución de sistemas no lineales, cálculo de funciones inversas y calibración de modelos.

Bibliografía de la clase

224 · Método de la secante

Parte 11 · clase 4 de 20 · demostración secant

La secante alcanza orden 1,618 sin necesitar la derivada.

xₙ₊₁ = xₙ − f(xₙ)·(xₙ − xₙ₋₁) / (f(xₙ) − f(xₙ₋₁))
orden de convergencia φ = (1+√5)/2 ≈ 1,618
una sola evaluación de f por iteración

Fundamentos

La secante sustituye la derivada de Newton por su aproximación mediante los dos últimos iterados. Geométricamente, en vez de la tangente usa la recta que pasa por los dos últimos puntos, y toma su corte con el eje. La fórmula es la de Newton con f' reemplazado por un cociente de diferencias.

El precio es un orden de convergencia menor, exactamente el número áureo φ ≈ 1,618. Que aparezca φ no es casualidad decorativa: la recurrencia que gobierna los exponentes del error es la de Fibonacci, y su razón límite es φ. Es uno de los sitios donde ese número surge por necesidad matemática y no por misticismo.

A cambio, cada iteración cuesta una sola evaluación de f, frente a las dos de Newton —función y derivada—. Cuando evaluar la derivada cuesta lo mismo que evaluar la función, la secante es más eficiente por unidad de trabajo: φ² ≈ 2,6 > 2. Y cuando la derivada no existe en forma cerrada, es directamente la única opción de las dos.

Sus debilidades son parientes de las de Newton: puede diverger desde puntos malos, y falla si los dos últimos valores de la función son casi iguales, porque el denominador se anula. La familia de los métodos cuasi-Newton —BFGS y L-BFGS en optimización— es esta misma idea llevada a varias dimensiones: aproximar la información de segundo orden a partir de la historia de evaluaciones.

Ejemplo trabajado

Misma raíz que Newton, ahora sin derivada.

f(x) = x³ − 2x − 4       puntos iniciales: 1,0 y 3,0

iter        x            error
  1     1,454545      5,45e-01
  3     1,876254      1,24e-01
  5     1,996327      3,67e-03
  7     1,999999      6,32e-07
  9     2,000000      0,00e+00

9 iteraciones frente a las 6 de Newton
pero sin necesitar f' y con una evaluación por paso.

Eficiencia por evaluación:
  Newton:  orden 2 con 2 evaluaciones  →  √2 ≈ 1,414
  Secante: orden 1,618 con 1 evaluación →  1,618        mejor

Qué ejecuta el laboratorio

Secante: casi tan rápida como Newton sin necesitar la derivada.

GrupoSalidas
Resultados numéricos (3)raiz, iteraciones, orden_de_convergencia
Comprobaciones (1)no_requiere_derivada
compmath run 224

Errores conceptuales frecuentes

  1. Elegir dos puntos iniciales donde f toma valores casi idénticos.
  2. Usarla sin control del denominador y provocar división por casi cero.
  3. Suponer que hereda la garantía de convergencia de la bisección.

Dónde se usa

Búsqueda de raíces sin derivada analítica, métodos cuasi-Newton, calibración de parámetros y ajuste de umbrales en funciones costosas de evaluar.

Bibliografía de la clase

225 · Interpolación de Lagrange

Parte 11 · clase 5 de 20 · demostración lagrange_interpolation

Subir el grado del polinomio interpolador empeora la aproximación en vez de mejorarla.

P(x) = Σ yᵢ · Πⱼ≠ᵢ (x − xⱼ)/(xᵢ − xⱼ)
n puntos determinan un único polinomio de grado ≤ n−1
nodos de Chebyshev: xₖ = cos((2k+1)π / 2n)

Fundamentos

Por n puntos con abscisas distintas pasa un único polinomio de grado a lo sumo n−1. La forma de Lagrange lo construye explícitamente como combinación de bases que valen 1 en su nodo y 0 en los demás. Es elegante para demostrar la existencia y unicidad, y mala para calcular: las formas de Newton o baricéntrica son numéricamente preferibles.

El resultado que hay que retener es negativo y contraintuitivo. Al aumentar el número de nodos equiespaciados, el polinomio no converge a la función: oscila cada vez más violentamente cerca de los extremos del intervalo. Es el fenómeno de Runge, y su ejemplo canónico es 1/(1+25x²), donde el error máximo crece con el grado.

La causa no es el redondeo sino la propia teoría: el término de error de interpolación contiene el producto de las distancias a todos los nodos, y con nodos equiespaciados ese producto se dispara cerca de los bordes. La consecuencia práctica es que interpolación de grado alto y nodos uniformes no se deben combinar nunca.

Hay dos salidas. La primera es cambiar los nodos: los de Chebyshev se concentran cerca de los extremos y controlan el producto, haciendo que el error sí decrezca con el grado. La segunda, más usada en la práctica, es renunciar al grado alto y usar trozos de grado bajo, que es exactamente lo que hacen los splines de la clase siguiente.

Ejemplo trabajado

Runge sobre 1/(1+25x²): el error crece con el grado.

Interpolación por 3 puntos (1,1), (2,3), (4,7):
  el polinomio evaluado da [1,75 ; 4,75] en x = 1,5 y 3
  pasa exactamente por los nodos: 1, 3, 7                ✓

Función de Runge con nodos equiespaciados:

  grado    error máximo
    5        0,438177
    9        1,045174
   13        3,656710

El error se multiplica por 8 al pasar de grado 5 a 13.
Más grado, peor aproximación.

Con nodos de Chebyshev el error sí decrece con el grado.

Qué ejecuta el laboratorio

Interpolación de Lagrange y el fenómeno de Runge.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (1)el_error_crece_con_el_grado
compmath run 225

Errores conceptuales frecuentes

  1. Interpolar muchos puntos con un solo polinomio de grado alto.
  2. Usar la forma de Lagrange para evaluar en vez de la baricéntrica.
  3. Extrapolar fuera del intervalo de los nodos.

Dónde se usa

Reconstrucción de curvas a partir de muestras, diseño de esquemas de cuadratura, aproximación de funciones costosas y remuestreo de señales.

Bibliografía de la clase

226 · Splines

Parte 11 · clase 6 de 20 · demostración splines

Muchos trozos de grado bajo baten a un único polinomio de grado alto.

spline lineal: recta entre cada par de nodos consecutivos
spline cúbico: continuidad de valor, primera y segunda derivada
n nodos ⟹ n−1 tramos

Fundamentos

Un spline es una función definida a trozos, con un polinomio de grado bajo en cada intervalo entre nodos consecutivos, empalmados con condiciones de continuidad. La idea resuelve el problema de Runge por la vía directa: si el grado alto oscila, no se usa grado alto.

El spline lineal simplemente une los puntos con segmentos. Es continuo, no oscila nunca, y su error es O(h²) en cada tramo. Su defecto es visible: tiene esquinas en los nodos, la derivada salta, y para animación o diseño gráfico eso se nota.

El spline cúbico usa polinomios de grado 3 e impone continuidad del valor, de la primera derivada y de la segunda. El resultado es visualmente suave y matemáticamente notable: entre todas las funciones que pasan por los puntos, el spline cúbico natural es la que minimiza la curvatura total, que es la formalización de «la curva más suave posible». El nombre viene de las varillas flexibles que usaban los constructores navales.

Los splines están en todas partes: en las curvas de las herramientas de diseño gráfico, en la interpolación de datos científicos, en las trayectorias de robots y en los modelos aditivos generalizados. Su ventaja decisiva es la localidad: mover un punto solo afecta a los tramos vecinos, mientras que en un polinomio global un cambio en un extremo altera toda la curva.

Ejemplo trabajado

Spline lineal sobre datos que oscilan entre 0 y 1.

nodos:   0    1    2    3    4
valores: 0    1    0    1    0

Evaluaciones del spline lineal:
  s(0,50) = 0,50      dentro del tramo [0,1]
  s(1,50) = 0,50      dentro del tramo [1,2]
  s(2,25) = 0,25      dentro del tramo [2,3]

Pasa por todos los nodos                                 ✓
Nunca sale del rango [0,1] de los datos                  ✓

Un polinomio único de grado 4 por estos 5 puntos
llega a valores por debajo de −0,3 entre los nodos.

Localidad: cambiar el valor en x = 4 no altera
el spline en el tramo [0,1].

Qué ejecuta el laboratorio

Spline lineal por tramos frente a un polinomio único.

GrupoSalidas
Resultados numéricos (3)spline_en_0.5, spline_en_1.5, spline_en_2.25
Comprobaciones (2)pasa_por_todos_los_nodos, acotado_entre_min_y_max
compmath run 226

Errores conceptuales frecuentes

  1. Esperar derivada continua de un spline lineal.
  2. Usar splines para extrapolar más allá del último nodo.
  3. Olvidar declarar las condiciones de contorno del spline cúbico.

Dónde se usa

Curvas en diseño gráfico y CAD, interpolación de series temporales, trayectorias suaves en robótica y modelos aditivos generalizados.

Bibliografía de la clase

227 · Diferenciación numérica

Parte 11 · clase 7 de 20 · demostración numerical_differentiation

La diferencia central cuesta lo mismo que la adelantada y tiene un orden más.

adelantada: (f(x+h) − f(x)) / h,  error O(h)
central: (f(x+h) − f(x−h)) / 2h,  error O(h²)
segunda derivada: (f(x+h) − 2f(x) + f(x−h)) / h²

Fundamentos

Aproximar derivadas por cocientes de diferencias es la traducción literal de la definición de derivada a aritmética finita. Las tres fórmulas básicas se obtienen combinando desarrollos de Taylor y eligiendo los coeficientes que cancelan los términos de orden bajo.

La diferencia central es estrictamente mejor que la adelantada: mismo número de evaluaciones, un orden más de precisión. La razón es la simetría, que hace que el término de orden h se cancele entre los desarrollos de f(x+h) y f(x−h). Cuando se puede evaluar a ambos lados, no hay motivo para usar la adelantada.

La segunda derivada por diferencias es la fórmula que discretiza el laplaciano y está en el corazón de casi todo esquema para ecuaciones en derivadas parciales. Su error también es O(h²), pero su sensibilidad al redondeo es peor porque divide entre : el paso óptimo es mayor que para la primera derivada.

La aplicación más útil en aprendizaje automático es la verificación de gradientes: comparar el gradiente calculado por autodiferenciación con el obtenido por diferencia central detecta errores de implementación en las derivadas manuales. Es lento y no sirve para entrenar, pero como prueba unitaria es insustituible.

Ejemplo trabajado

Derivada de e^x en x = 0,5 con h = 1e-4.

valor exacto: e^0,5 = 1,6487212707001282

adelantada: (f(x+h) − f(x))/h     = 1,6488037095
  error = 8,24e-05

atrás:      (f(x) − f(x−h))/h     = 1,6486388374
  error = 8,24e-05

central:    (f(x+h) − f(x−h))/2h  = 1,6487212735
  error = 2,75e-09          30 000 veces menor

Mismo coste en evaluaciones, tres órdenes de magnitud de ganancia.

Segunda derivada: (f(x+h) − 2f(x) + f(x−h))/h² = 1,64872132
  error = 5,4e-08, mayor por dividir entre h².

Qué ejecuta el laboratorio

Fórmulas de diferencias y su orden de error.

GrupoSalidas
Resultados numéricos (9)x, h, exacta, adelante, atras, central, error_adelante, error_central, segunda_derivada
Comprobaciones (1)central_es_2_ordenes_mejor
compmath run 227

Errores conceptuales frecuentes

  1. Usar la diferencia adelantada cuando se puede evaluar a ambos lados.
  2. Elegir h demasiado pequeño y caer en la zona dominada por el redondeo.
  3. Usar diferencias finitas para entrenar en vez de autodiferenciación.

Dónde se usa

Verificación de gradientes, discretización de PDE, sensibilidad de modelos y optimización sin derivadas analíticas.

Bibliografía de la clase

228 · Cuadratura numérica

Parte 11 · clase 8 de 20 · demostración quadrature

Elegir bien los nodos vale más que multiplicarlos: Gauss lo demuestra con tres.

∫f ≈ Σ wᵢ·f(xᵢ)
Gauss con n nodos: exacta para polinomios de grado 2n−1
cambio de variable de [a,b] a [−1,1]

Fundamentos

Toda regla de cuadratura tiene la misma forma: una suma ponderada de valores de la función. Lo que distingue a unas de otras es dónde se colocan los nodos y qué pesos se les asigna. Las reglas de Newton-Cotes —trapecio, Simpson— fijan nodos equiespaciados y calculan los pesos.

La cuadratura gaussiana hace algo más ambicioso: trata también las posiciones de los nodos como incógnitas. Con n nodos hay 2n grados de libertad, y se eligen para que la regla sea exacta con polinomios de grado hasta 2n−1. Con tres nodos se integra exactamente cualquier polinomio de grado 5, lo cual es notable.

Los nodos resultantes son las raíces de los polinomios de Legendre y no son equiespaciados: se concentran hacia el centro y evitan los extremos. Los pesos se calculan una vez y se tabulan. El cambio de variable lleva cualquier intervalo [a,b] al [−1,1] donde están tabulados.

La comparación con el trapecio es demoledora y explica por qué las bibliotecas serias usan variantes de Gauss: con el mismo número de evaluaciones, el error es varios órdenes de magnitud menor. Su límite es que necesita evaluar en puntos concretos, así que no sirve cuando solo se dispone de datos tabulados en una malla fija.

Ejemplo trabajado

Integral de e^(−x²) entre 0 y 1, sin primitiva elemental.

valor de referencia: 0,746824132812

Gauss con 3 nodos:
  estimación = 0,746814584191
  error      = 9,55e-06

Trapecio con 3 subintervalos (4 evaluaciones):
  estimación = 0,739986475277
  error      = 6,84e-03

Gauss es 716 veces más preciso con menos evaluaciones.

Para igualar a Gauss-3, el trapecio necesitaría
unos 27 subintervalos.

Qué ejecuta el laboratorio

Cuadratura gaussiana: máxima exactitud con mínimos nodos.

GrupoSalidas
Resultados numéricos (7)referencia, gauss_3_nodos, error_gauss, trapecio_3_subintervalos, error_trapecio, gauss_n_puntos_es_exacta_hasta_grado, evaluaciones_usadas
Comprobaciones (0)
compmath run 228

Errores conceptuales frecuentes

  1. Aplicar los nodos tabulados sin el cambio de variable al intervalo real.
  2. Usar cuadratura gaussiana con datos tabulados en una malla fija.
  3. Aplicarla a integrandos con singularidades sin transformación previa.

Dónde se usa

Integración en métodos de elementos finitos, cálculo de esperanzas en modelos probabilísticos, evaluación de funciones especiales y física computacional.

Bibliografía de la clase

229 · Regla del trapecio

Parte 11 · clase 9 de 20 · demostración trapezoid_rule

El trapecio es de orden 2: duplicar los subintervalos divide el error por cuatro.

∫ₐᵇ f ≈ (h/2)·[f(x₀) + 2f(x₁) + … + 2f(xₙ₋₁) + f(xₙ)]
error total O(h²)
n × 2  ⟹  error / 4

Fundamentos

La regla del trapecio aproxima la función por segmentos rectos entre nodos consecutivos y suma las áreas de los trapecios resultantes. Es la regla más simple que va más allá de los rectángulos, y su fórmula compuesta tiene la estructura característica: los extremos pesan la mitad que los puntos interiores.

Su error es O(h²), lo que da la regla práctica más útil para verificar una implementación: duplicar el número de subintervalos divide el error por cuatro. Si al duplicar n el error solo se divide por dos, hay un error de programación o la función no es suficientemente suave.

El signo del error es predecible: el trapecio sobreestima para funciones convexas y subestima para cóncavas, porque la cuerda queda por encima o por debajo de la curva. Esa previsibilidad permite corregir, y de ahí sale la extrapolación de Richardson y el método de Romberg, que combinan estimaciones con distintos h para cancelar términos de error.

Tiene además una propiedad que lo hace insustituible en un caso concreto: para funciones periódicas integradas sobre un periodo completo, el trapecio converge exponencialmente, mucho más rápido que Simpson. Es el fundamento de los métodos espectrales y de la precisión de la transformada discreta de Fourier.

Ejemplo trabajado

Integral de 1/(1+x²) entre 0 y 1, que vale exactamente π/4.

valor exacto: 0,785398163397

   n      valor            error       razón
   2   0,775000000    1,0398e-02        —
   4   0,782794010    2,6042e-03      3,993
   8   0,784747124    6,5104e-04      4,000
  16   0,785235400    1,6276e-04      4,000
  32   0,785357472    4,0690e-05      4,000

La razón se estabiliza en 4 → orden 2 confirmado    ✓

El trapecio subestima aquí porque el integrando es cóncavo
en la mayor parte del intervalo.

Qué ejecuta el laboratorio

Regla del trapecio y su convergencia O(h²).

GrupoSalidas
Resultados numéricos (1)valor_exacto_pi/4
Comprobaciones (1)duplicar_n_divide_el_error_por_4
compmath run 229

Errores conceptuales frecuentes

  1. No verificar el orden empírico al implementarlo.
  2. Aplicarlo a integrandos con discontinuidades sin partir el intervalo.
  3. Olvidar que los extremos llevan peso mitad en la fórmula compuesta.

Dónde se usa

Integración de datos experimentales muestreados, cálculo de áreas bajo curvas ROC, métodos espectrales con funciones periódicas y base del método de Romberg.

Bibliografía de la clase

230 · Simpson

Parte 11 · clase 10 de 20 · demostración simpson_rule

Simpson usa parábolas y gana dos órdenes por el mismo precio.

∫ ≈ (h/3)·[f₀ + 4f₁ + 2f₂ + 4f₃ + … + fₙ]
error O(h⁴):  n × 2 ⟹ error / 16
requiere n par; exacta hasta grado 3

Fundamentos

Simpson ajusta una parábola por cada par de subintervalos en vez de una recta por cada uno. El patrón de pesos 1, 4, 2, 4, …, 4, 1 sale de integrar exactamente esas parábolas, y exige que el número de subintervalos sea par.

Su error es O(h⁴), dos órdenes por encima del trapecio con esencialmente el mismo coste de evaluaciones. La regla de verificación correspondiente es que duplicar n divide el error por 16, y comprobarla es la forma estándar de validar la implementación.

Hay una sorpresa agradable: aunque se construye con parábolas, Simpson es exacto para polinomios de grado 3. El término cúbico se cancela por simetría, y ese grado extra gratuito es la razón de su excelente relación precisión-coste. Es el método por defecto cuando hay que integrar a mano y con pocos recursos.

El orden alto tiene una condición que se olvida: exige que la función tenga cuarta derivada acotada. Con integrandos poco suaves, con esquinas o con oscilaciones rápidas, Simpson pierde su ventaja y puede comportarse peor que el trapecio. Con funciones de suavidad dudosa conviene un método adaptativo que subdivida donde haga falta.

Ejemplo trabajado

Misma integral que el trapecio, para comparar órdenes.

valor exacto: 0,785398163397

   n      valor            error        razón
   2   0,783333333    2,0648e-03         —
   4   0,785259259    1,3890e-04      14,87
   8   0,785388765    9,3984e-06      14,78
  16   0,785397555    6,0812e-07      15,46

La razón tiende a 16 → orden 4 confirmado           ✓

Comparación con n = 16:
  trapecio: error 1,63e-04
  Simpson:  error 6,08e-07        268 veces mejor

Verificación del grado 3: sobre x³ en [0,1]
  Simpson con n = 2 da exactamente 0,25             ✓

Qué ejecuta el laboratorio

Simpson y su convergencia O(h⁴).

GrupoSalidas
Resultados numéricos (1)valor_exacto
Comprobaciones (3)requiere_n_par, duplicar_n_divide_el_error_por_16, exacta_para_polinomios_de_grado_3
compmath run 230

Errores conceptuales frecuentes

  1. Usar un número impar de subintervalos.
  2. Aplicarlo a funciones con esquinas o discontinuidades.
  3. Confundir el patrón de pesos y usar 1,4,4,1 en vez de 1,4,2,4,1.

Dónde se usa

Integración numérica de propósito general, cálculo de momentos de distribuciones, procesamiento de señales muestreadas y base de los métodos adaptativos.

Bibliografía de la clase

231 · Sistemas lineales directos

Parte 11 · clase 11 de 20 · demostración direct_linear_solvers

Factorizar una vez y sustituir muchas: LU convierte O(n³) en O(n²) por sistema.

A = LU  con pivoteo parcial:  PA = LU
resolver Ly = Pb, luego Ux = y
coste: LU ≈ (2/3)n³;  cada sustitución ≈ n²

Fundamentos

Un método directo resuelve el sistema en un número predeterminado de operaciones, sin iterar. La eliminación gaussiana es el prototipo, y su versión organizada como factorización LU separa el trabajo en dos fases: descomponer la matriz, que cuesta O(n³), y resolver por sustitución, que cuesta O(n²).

Esa separación es lo que hace valiosa la factorización. Si hay que resolver el mismo sistema con veinte lados derechos distintos —algo habitual en simulación, en control y en métodos implícitos para EDO— se factoriza una vez y se sustituye veinte, en vez de repetir la eliminación completa veinte veces.

El pivoteo parcial es obligatorio, no opcional. Intercambiar filas para que el pivote sea el elemento de mayor módulo evita dividir por números diminutos, y con ello evita la amplificación de errores que puede destruir la solución. Sin pivoteo, sistemas perfectamente resolubles dan resultados sin ningún dígito correcto.

Verificar la solución es barato y obligatorio: calcular el residuo Ax − b. Un residuo pequeño no garantiza que la solución sea precisa —en sistemas mal condicionados puede ser minúsculo con una solución muy alejada de la real— pero un residuo grande sí garantiza que algo va mal. Combinar residuo y número de condición da el diagnóstico completo.

Ejemplo trabajado

Sistema 3×3 simétrico definido positivo, resuelto por LU.

A = [[ 4  −2   1]        b = [ 11]
     [−2   4  −2]            [−16]
     [ 1  −2   4]]           [ 17]

L = [[ 1,00   0,00   0,00]
     [−0,50   1,00   0,00]
     [ 0,25  −0,50   1,00]]

intercambios de fila: 0     (ya es dominante)

solución x = [1, −2, 3]
residuo Ax − b = [0, 0, 0]                          ✓

Coste con n = 3:  LU ≈ 18 operaciones
Cada nuevo lado derecho: ≈ 9 operaciones, sin refactorizar.

Qué ejecuta el laboratorio

Solvers directos: LU y sustitución, con conteo de operaciones.

GrupoSalidas
Resultados numéricos (2)intercambios, determinante
Comprobaciones (0)
compmath run 231

Errores conceptuales frecuentes

  1. Implementar eliminación sin pivoteo parcial.
  2. Calcular la inversa explícita para resolver un sistema.
  3. Aceptar la solución sin comprobar el residuo.

Dónde se usa

Resolución de sistemas en simulación, mínimos cuadrados, métodos implícitos para EDO y cualquier problema con múltiples lados derechos.

Bibliografía de la clase

232 · Jacobi y Gauss-Seidel

Parte 11 · clase 12 de 20 · demostración jacobi_gauss_seidel

Gauss-Seidel usa los valores recién calculados y converge en la mitad de iteraciones.

Jacobi: xᵢ⁽ᵏ⁺¹⁾ = (bᵢ − Σⱼ≠ᵢ aᵢⱼ·xⱼ⁽ᵏ⁾) / aᵢᵢ
Gauss-Seidel: usa xⱼ⁽ᵏ⁺¹⁾ para j < i
convergencia garantizada si A es diagonalmente dominante

Fundamentos

Los métodos iterativos parten de una solución aproximada y la refinan hasta que deja de cambiar. Su interés no es competir con LU en sistemas pequeños, sino resolver los que LU no puede: matrices de millones de incógnitas y muy dispersas, donde una factorización llenaría de ceros la memoria disponible.

Jacobi despeja cada incógnita de su ecuación usando exclusivamente los valores de la iteración anterior. Eso lo hace trivialmente paralelizable, porque todas las componentes se actualizan de forma independiente. Gauss-Seidel usa los valores ya actualizados dentro de la misma pasada, lo que suele reducir a la mitad el número de iteraciones a costa de volverse secuencial.

La condición suficiente clásica de convergencia es la dominancia diagonal: que cada elemento de la diagonal supere en módulo a la suma de los demás de su fila. Es suficiente, no necesaria, y hay sistemas no dominantes donde ambos métodos convergen igualmente. Sin alguna condición de este tipo, la iteración puede divergir.

Estos dos métodos son el punto de entrada a una familia mucho mayor —SOR, gradiente conjugado, GMRES, multigrid— que es la que realmente se usa en producción. Conviene entenderlos porque la estructura es la misma: una iteración barata, un criterio de parada y un análisis de convergencia.

Ejemplo trabajado

Sistema 3×3 diagonalmente dominante, ambos métodos.

A = [[10  −1   2]      diagonalmente dominante:
     [−1  11  −1]        10 > 3,  11 > 2,  10 > 3      ✓
     [ 2  −1  10]]

solución:  [1,04327 ; 2,26923 ; −1,08173]

Jacobi:        22 iteraciones hasta tolerancia 1e-10
Gauss-Seidel:  11 iteraciones hasta la misma tolerancia

Gauss-Seidel converge en la mitad de pasos.

Contrapartida: Jacobi actualiza las tres componentes
en paralelo; Gauss-Seidel debe hacerlo en orden.

Qué ejecuta el laboratorio

Métodos iterativos sobre una matriz diagonalmente dominante.

GrupoSalidas
Resultados numéricos (2)jacobi_iteraciones, gauss_seidel_iteraciones
Comprobaciones (3)diagonalmente_dominante, gauss_seidel_es_mas_rapido, jacobi_es_paralelizable
compmath run 232

Errores conceptuales frecuentes

  1. Aplicarlos sin comprobar dominancia diagonal ni otra condición de convergencia.
  2. Iterar sin tope máximo y bloquear el proceso.
  3. Usar iterativos en sistemas pequeños y densos donde LU es más rápido.

Dónde se usa

Resolución de sistemas dispersos enormes, discretización de PDE, PageRank y precondicionado dentro de métodos de Krylov.

Bibliografía de la clase

233 · Métodos iterativos y tolerancias

Parte 11 · clase 13 de 20 · demostración iterative_tolerances

Todo bucle iterativo necesita tres frenos: tolerancia relativa, residuo y tope de pasos.

criterio absoluto: ‖xₖ₊₁ − xₖ‖ < tol
criterio relativo: ‖xₖ₊₁ − xₖ‖ / ‖xₖ₊₁‖ < tol
criterio de residuo: ‖Axₖ − b‖ / ‖b‖ < tol

Fundamentos

El criterio de parada no es un detalle de implementación: determina qué significa el resultado. Un método iterativo sin criterio declarado devuelve un número cuyo error nadie conoce, y eso lo invalida como resultado científico.

El criterio absoluto falla al cambiar de escala. Una tolerancia de 10⁻⁶ es exigente si la solución vale 1 y absurda si vale 10¹², donde ni siquiera es representable en doble precisión. El criterio relativo escala con la magnitud de la solución y es el que hay que usar por defecto, con la precaución de manejar el caso de solución próxima a cero.

El criterio de residuo mide algo distinto: cuánto incumple la ecuación la solución actual. Es complementario, no equivalente. En un sistema mal condicionado el cambio entre iterados puede ser minúsculo mientras el residuo sigue siendo grande, y al revés. Por eso lo prudente es combinar ambos.

Y siempre, sin excepción, un tope de iteraciones. No es una tolerancia sino una salvaguarda: si el método no converge —porque el problema es singular, porque la condición falla o porque hay un error de programación— el bucle debe terminar e informar de que no convergió, en vez de girar indefinidamente. Un solver que devuelve «no convergí» es infinitamente más útil que uno que se cuelga.

Ejemplo trabajado

Evolución de los tres criterios en una iteración convergente.

iter   cambio abs.   cambio rel.   norma residuo
  1     0,990000      1,000000       1,40e+00
  3     0,090000      0,090909       1,27e-01
  5     0,009000      0,009009       1,27e-02
  7     0,000900      0,000900       1,27e-03
  9     1,00e-14      1,00e-14       1,41e-14

solución = [1, 1]      9 iteraciones hasta 1e-14

Criterio recomendado:
  parar si (cambio relativo < tol) Y (residuo relativo < tol)
  o si iter alcanza max_iter, informando de no convergencia.

Peligro del criterio solo absoluto: si la solución fuera
del orden de 1e12, tol = 1e-6 nunca se alcanzaría.

Qué ejecuta el laboratorio

Criterio de parada: absoluto, relativo y residuo.

GrupoSalidas
Resultados numéricos (1)iteraciones_hasta_1e-14
Comprobaciones (1)siempre_declarar_max_iter
compmath run 233

Errores conceptuales frecuentes

  1. Usar tolerancia absoluta con soluciones de magnitud desconocida.
  2. Omitir el tope de iteraciones.
  3. Dar por convergido por cambio pequeño sin mirar el residuo.

Dónde se usa

Cualquier solver iterativo, criterios de parada en entrenamiento de modelos, bucles de punto fijo y control de convergencia en simulación.

Bibliografía de la clase

234 · Mínimos cuadrados numéricos

Parte 11 · clase 14 de 20 · demostración numerical_least_squares

Las ecuaciones normales elevan al cuadrado el número de condición; QR no.

ecuaciones normales: AᵀAx = Aᵀb
cond(AᵀA) = cond(A)²
vía QR: A = QR ⟹ Rx = Qᵀb

Fundamentos

El problema de mínimos cuadrados busca el x que minimiza ‖Ax − b‖ cuando el sistema tiene más ecuaciones que incógnitas. Geométricamente es la proyección de b sobre el espacio columna de A, y anular la derivada conduce a las ecuaciones normales AᵀAx = Aᵀb.

Esas ecuaciones son correctas en teoría y peligrosas en práctica. Formar AᵀA eleva al cuadrado el número de condición: una matriz con condición 10⁶, que en doble precisión es manejable, produce una AᵀA con condición 10¹², que se lleva por delante la mitad de los dígitos disponibles. El daño se hace al construir la matriz, antes de resolver nada.

La vía QR evita el problema. Descomponiendo A = QR con Q ortogonal, el sistema se reduce a Rx = Qᵀb, triangular y con la condición original de A sin elevar. Cuesta aproximadamente el doble de operaciones, y ese factor 2 es un precio muy pequeño por conservar la mitad de los dígitos.

Cuando A es además deficiente de rango o casi singular, ni siquiera QR basta y hay que recurrir a la SVD con truncamiento de valores singulares pequeños, que es la pseudoinversa de la parte 06. La regla práctica: ecuaciones normales solo para problemas pequeños y bien condicionados; QR por defecto; SVD cuando hay dudas sobre el rango.

Ejemplo trabajado

Ajuste lineal por dos vías sobre los mismos seis puntos.

6 observaciones, modelo de 2 parámetros

ecuaciones normales: [1,03809524 ; 0,99142857]
vía QR:              [1,03809524 ; 0,99142857]
coinciden a 8 dígitos                                    ✓

cond(AᵀA) = 33,41        cond(A) = 5,78
relación: 5,78² = 33,41                                  ✓

Aquí el problema está bien condicionado y ambas sirven.

Si cond(A) fuera 1e6:
  cond(AᵀA) = 1e12  →  se pierden 12 de los 16 dígitos
  QR mantendría la pérdida en 6.

Qué ejecuta el laboratorio

Mínimos cuadrados: ecuaciones normales frente a QR.

GrupoSalidas
Resultados numéricos (3)datos, condicion_de_AᵀA, SSE
Comprobaciones (2)coinciden, las_normales_elevan_al_cuadrado_la_condicion
compmath run 234

Errores conceptuales frecuentes

  1. Formar AᵀA sin mirar el condicionamiento de A.
  2. Invertir AᵀA explícitamente en vez de resolver el sistema.
  3. Ignorar la deficiencia de rango en vez de usar SVD.

Dónde se usa

Regresión lineal, ajuste de curvas, calibración de sensores y capas lineales resueltas en forma cerrada.

Bibliografía de la clase

235 · Ecuaciones diferenciales ordinarias

Parte 11 · clase 15 de 20 · demostración odes

Un problema de valor inicial fija una única trayectoria, y conocerla permite medir el error.

y' = f(t, y),   y(t₀) = y₀
ejemplo: y' = −2y + t,  y(0) = 1
solución: y(t) = 0,25(2t − 1) + 1,25·e^(−2t)

Fundamentos

Una ecuación diferencial ordinaria relaciona una función desconocida con sus derivadas. El problema de valor inicial añade el valor en un punto, y bajo condiciones suaves de f eso determina una única trayectoria: el teorema de Picard-Lindelöf garantiza existencia y unicidad local.

Las EDO son el lenguaje de casi toda la modelización dinámica: mecánica, circuitos, cinética química, poblaciones, epidemias y control. Que la mayoría no tenga solución analítica es lo que motiva las clases siguientes, y es la norma más que la excepción.

Para desarrollar y validar métodos numéricos conviene partir de un problema con solución conocida. El ejemplo de esta parte, y' = −2y + t, es lineal de primer orden y se resuelve con factor integrante. Tener la solución exacta permite medir el error real de cada método y verificar empíricamente su orden.

La estructura de la ecuación anticipa un problema que aparecerá luego. El coeficiente −2 del término lineal determina la escala de tiempo del decaimiento, y con ella el paso máximo que un método explícito puede dar sin volverse inestable. Cuando en un sistema conviven coeficientes muy dispares —−2 y −2000— aparece la rigidez, y los métodos explícitos dejan de ser viables.

Ejemplo trabajado

El problema de referencia de esta parte.

EDO:  y' = −2y + t          y(0) = 1

Solución analítica por factor integrante:
  y(t) = 0,25·(2t − 1) + 1,25·e^(−2t)

Comprobación en t = 0:
  0,25·(−1) + 1,25·1 = −0,25 + 1,25 = 1,0             ✓

Valores de referencia:
  y(0)   = 1,000000000000
  y(0,5) = 0,459849979076
  y(1)   = 0,419169104046

Pendiente inicial: f(0, 1) = −2·1 + 0 = −2,0

Toda la parte mide los métodos contra y(1) = 0,419169104046.

Qué ejecuta el laboratorio

EDO con solución analítica para medir el error de cada método.

GrupoSalidas
Resultados numéricos (4)y(0), y(1)_exacta, condicion_inicial, f(0,1)
Comprobaciones (2)es_lineal_de_primer_orden, estable
compmath run 235

Errores conceptuales frecuentes

  1. Resolver numéricamente sin comprobar antes si hay solución analítica.
  2. Olvidar la condición inicial y quedarse con una familia de soluciones.
  3. Ignorar la escala de tiempo del problema al elegir el paso.

Dónde se usa

Modelos dinámicos en física e ingeniería, farmacocinética, modelos epidemiológicos, sistemas de control y Neural ODE.

Bibliografía de la clase

236 · Método de Euler

Parte 11 · clase 16 de 20 · demostración euler_method

Euler es el método más barato por paso y el más caro por dígito de precisión.

yₙ₊₁ = yₙ + h·f(tₙ, yₙ)
error global O(h): duplicar pasos divide el error por 2
estabilidad para y' = λy:  h < 2/|λ|

Fundamentos

El método de Euler avanza siguiendo la tangente: evalúa la pendiente en el punto actual y da un paso recto en esa dirección. Es la traducción directa de la definición de derivada, y su valor es pedagógico: todo método más sofisticado se entiende como una mejora sobre esta idea.

Su error local por paso es O(h²), pero al acumularse sobre 1/h pasos el error global resulta O(h). Eso significa que duplicar el trabajo solo divide el error por dos, una relación pésima. Para diez veces más precisión hacen falta diez veces más pasos, y para precisión de ingeniería el coste se vuelve prohibitivo.

La estabilidad es un problema distinto y suele confundirse con la precisión. Para y' = λy con λ negativo, la solución decae, pero Euler solo reproduce ese decaimiento si h < 2/|λ|. Con un paso mayor, la solución numérica oscila y crece sin límite aunque la real tienda a cero. No es imprecisión: es divergencia.

Existe la variante implícita, yₙ₊₁ = yₙ + h·f(tₙ₊₁, yₙ₊₁), que exige resolver una ecuación en cada paso pero es incondicionalmente estable. Ese intercambio —más trabajo por paso a cambio de pasos mucho mayores— es exactamente la razón de ser de los métodos implícitos en problemas rígidos.

Ejemplo trabajado

Euler sobre el problema de referencia, hacia y(1) = 0,419169.

pasos     h        y(1)         error      razón
   5    0,200    0,347200     7,197e-02      —
  10    0,100    0,384218     3,495e-02     2,06
  20    0,050    0,401953     1,722e-02     2,03
  40    0,025    0,410620     8,549e-03     2,01
  80    0,0125   0,414909     4,260e-03     2,01

La razón se estabiliza en 2 → orden 1 confirmado     ✓

Con 80 pasos el error sigue siendo 4,3e-03.
RK4 con 5 pasos alcanza 1,0e-04: 40 veces mejor
con 16 veces menos trabajo.

Estabilidad: para λ = −2 se exige h < 1,0.
Con h = 1,1 la solución numérica oscila y diverge.

Qué ejecuta el laboratorio

Euler explícito: orden 1 y coste mínimo.

GrupoSalidas
Resultados numéricos (1)orden
Comprobaciones (1)duplicar_pasos_divide_el_error_por_2
compmath run 236

Errores conceptuales frecuentes

  1. Usar Euler explícito en problemas rígidos.
  2. Confundir inestabilidad con falta de precisión.
  3. Reducir h para ganar precisión sin comprobar el coste acumulado.

Dónde se usa

Prototipado rápido de simulaciones, comprensión conceptual de integradores, esquemas de difusión discretizados y base del descenso por gradiente visto como flujo.

Bibliografía de la clase

237 · Runge-Kutta

Parte 11 · clase 17 de 20 · demostración runge_kutta

RK4 cuesta cuatro evaluaciones por paso y las devuelve multiplicadas.

k₁ = f(tₙ, yₙ);  k₂ = f(tₙ+h/2, yₙ+h·k₁/2)
k₃ = f(tₙ+h/2, yₙ+h·k₂/2);  k₄ = f(tₙ+h, yₙ+h·k₃)
yₙ₊₁ = yₙ + (h/6)(k₁ + 2k₂ + 2k₃ + k₄)

Fundamentos

Runge-Kutta de cuarto orden promedia cuatro estimaciones de la pendiente dentro del intervalo: una al inicio, dos en el punto medio y una al final, con pesos 1, 2, 2, 1. Ese promedio ponderado cancela los términos de error hasta orden 4 del desarrollo de Taylor.

El resultado es una relación coste-beneficio excelente. Cuatro evaluaciones por paso, pero error O(h⁴): duplicar los pasos divide el error por 16. La comparación con Euler es contundente y merece verse en números: RK4 con 5 pasos —20 evaluaciones— supera a Euler con 80 pasos —80 evaluaciones— por un factor de 40 en precisión.

RK4 es el estándar de facto para problemas no rígidos, y su variante adaptativa —Dormand-Prince, el RK45 de las bibliotecas— añade una estimación del error por paso que permite ajustar h automáticamente: pasos grandes donde la solución es suave y pequeños donde cambia rápido. Es lo que se usa en producción.

Su límite es el mismo que el de Euler, solo que desplazado: sigue siendo explícito y su región de estabilidad, aunque mayor, es finita. Con problemas rígidos —donde conviven escalas de tiempo que difieren en órdenes de magnitud— el paso queda limitado por la escala más rápida aunque la solución de interés sea lenta, y hay que pasar a métodos implícitos como BDF.

Ejemplo trabajado

RK4 sobre el mismo problema de referencia.

pasos     y(1)              error        razón
   5   0,419270018     1,0091e-04         —
  10   0,419175447     6,3430e-06       15,91
  20   0,419169501     3,9700e-07       15,98
  40   0,419169129     2,4820e-08       16,00

La razón tiende a 16 → orden 4 confirmado            ✓

Comparación por evaluaciones de f:
  Euler,  80 pasos =  80 evaluaciones → error 4,26e-03
  RK4,     5 pasos =  20 evaluaciones → error 1,01e-04

RK4 gana por 42 veces con la cuarta parte del trabajo.

Qué ejecuta el laboratorio

RK4: cuatro evaluaciones por paso, error O(h⁴).

GrupoSalidas
Resultados numéricos (1)orden
Comprobaciones (1)duplicar_pasos_divide_el_error_por_16
compmath run 237

Errores conceptuales frecuentes

  1. Aplicar RK4 con paso fijo a un sistema rígido.
  2. Comparar métodos por número de pasos en vez de por evaluaciones de f.
  3. Usar paso fijo cuando la solución tiene regiones de cambio rápido.

Dónde se usa

Simulación de sistemas dinámicos, mecánica orbital, Neural ODE, samplers de modelos de difusión y motores físicos.

Bibliografía de la clase

238 · Introducción a PDE y discretización

Parte 11 · clase 18 de 20 · demostración pde_discretization

La condición de estabilidad no es una recomendación: violarla hace explotar la simulación.

ecuación del calor: u_t = u_xx
esquema explícito: u_i^(n+1) = u_i^n + α(u_{i+1}^n − 2u_i^n + u_{i−1}^n)
α = Δt/Δx² ≤ 0,5 para estabilidad

Fundamentos

Una ecuación en derivadas parciales involucra derivadas respecto de varias variables, y describe fenómenos distribuidos en espacio y tiempo: calor, ondas, fluidos, difusión. El método de diferencias finitas las discretiza sustituyendo cada derivada por un cociente de diferencias sobre una malla.

Para la ecuación del calor en una dimensión, la derivada temporal se aproxima con diferencia adelantada y la espacial de segundo orden con la fórmula central de la clase 227. El resultado es un esquema explícito donde cada valor nuevo se calcula directamente a partir de tres valores viejos, sin resolver ningún sistema.

La sorpresa está en la restricción. El parámetro α = Δt/Δx² debe cumplir α ≤ 0,5, y esa condición de tipo Courant tiene una consecuencia brutal: refinar la malla espacial a la mitad obliga a dividir el paso temporal por cuatro. El coste total se multiplica por ocho, y por eso las simulaciones explícitas de difusión se vuelven caras muy deprisa.

Violar la condición no produce imprecisión sino divergencia: la solución numérica oscila con amplitud creciente hasta desbordar, y lo hace en pocos pasos. Los esquemas implícitos como Crank-Nicolson son incondicionalmente estables y permiten pasos temporales mucho mayores a cambio de resolver un sistema tridiagonal en cada paso, que es barato.

Ejemplo trabajado

Calor en una barra con extremos fríos, esquema explícito.

u_t = u_xx      u(0,t) = u(1,t) = 0

nodos = 21      Δx = 0,05      Δt = 0,001
α = Δt / Δx² = 0,001 / 0,0025 = 0,4

α = 0,4 ≤ 0,5   →   esquema estable                  ✓
La solución decae suavemente hacia cero, como debe.

Si se subiera a Δt = 0,002:
  α = 0,8 > 0,5  →  oscilaciones que crecen
  en 20 pasos los valores desbordan.

Coste de refinar: Δx a la mitad (41 nodos)
  exige Δt / 4  →  4× más pasos × 2× más nodos = 8× coste.

Qué ejecuta el laboratorio

Discretización de la ecuación del calor en 1D (esquema explícito).

GrupoSalidas
Resultados numéricos (8)nodos, dx, dt, numero_de_courant_alpha, pico_inicial, pico_final_numerico, pico_final_analitico, error_maximo
Comprobaciones (1)estable_si_alpha<=0.5
compmath run 238

Errores conceptuales frecuentes

  1. Refinar la malla espacial sin ajustar el paso temporal.
  2. Interpretar las oscilaciones crecientes como un fenómeno físico.
  3. Usar esquemas explícitos donde el implícito sería mucho más barato.

Dónde se usa

Simulación térmica, dinámica de fluidos, propagación de ondas, modelos financieros de tipo Black-Scholes y difusión en visión por computador.

Bibliografía de la clase

239 · Computación científica con SciPy

Parte 11 · clase 19 de 20 · demostración scientific_computing

Se implementa a mano para saber cuándo la biblioteca falla, y se usa la biblioteca para producción.

bisección → scipy.optimize.brentq
RK4 → scipy.integrate.solve_ivp
cuadratura → scipy.integrate.quad

Fundamentos

SciPy implementa versiones de todos los métodos de esta parte, y con mejor calidad de la que se puede alcanzar en un curso: control adaptativo del paso, detección de rigidez, selección automática de algoritmo, estimación de error y décadas de código Fortran probado debajo.

La pregunta legítima es entonces por qué implementarlos a mano. La respuesta es que usar un método sin entenderlo impide saber cuándo falla. solve_ivp con opciones por defecto puede devolver resultados sin sentido en un problema rígido, y solo quien sabe qué es la rigidez interpretará el aviso y cambiará a method='BDF'. La biblioteca no protege de la ignorancia del usuario.

Hay además una razón de diagnóstico. Cuando un cálculo produce números extraños, saber distinguir entre un error de modelado, un problema mal condicionado, una tolerancia mal puesta y un fallo real de la biblioteca exige entender el algoritmo. Sin ese conocimiento, el único recurso es probar opciones al azar.

La regla práctica es clara: implementar para aprender, usar la biblioteca para producir. Reescribir un integrador en código de producción es reintroducir errores que SciPy resolvió hace veinte años. El motor de esta parte no depende de SciPy precisamente para que las implementaciones didácticas sean legibles y ejecutables en cualquier entorno.

Ejemplo trabajado

Correspondencia entre lo implementado y su equivalente en SciPy.

SciPy 1.17.1 disponible en este entorno

implementación propia        equivalente en SciPy
---------------------------------------------------------
bisection                    scipy.optimize.brentq
newton_raphson               scipy.optimize.newton
lagrange_interpolation       scipy.interpolate.lagrange
splines                      scipy.interpolate.CubicSpline
trapezoid_rule               scipy.integrate.trapezoid
simpson_rule                 scipy.integrate.simpson
quadrature                   scipy.integrate.quad
direct_linear_solvers        scipy.linalg.lu_solve
jacobi_gauss_seidel          scipy.sparse.linalg.cg
numerical_least_squares      scipy.linalg.lstsq
euler_method / runge_kutta   scipy.integrate.solve_ivp

Este motor no requiere SciPy: todas las implementaciones
son de biblioteca estándar y ejecutables sin dependencias.

Qué ejecuta el laboratorio

Qué aporta SciPy sobre una implementación propia.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (2)scipy_instalado, este_motor_no_requiere_scipy
compmath run 239

Errores conceptuales frecuentes

  1. Reescribir integradores propios en código de producción.
  2. Usar solve_ivp con opciones por defecto en problemas rígidos.
  3. Confiar en la salida de una biblioteca sin comprobar su diagnóstico de convergencia.

Dónde se usa

Elección de herramientas en proyectos científicos, depuración de cálculos numéricos, validación cruzada entre implementaciones y decisiones de rendimiento.

Bibliografía de la clase

240 · Capstone: solver numérico con informe de error

Parte 11 · clase 20 de 20 · demostración capstone_numerical_solver

Un solver serio reporta su método, su tolerancia, su coste y su error estimado.

comparar métodos por evaluaciones de f, no por número de pasos
orden empírico: log₂(errorₕ / error_{h/2})
reportar: método, tolerancia, iteraciones, residuo

Fundamentos

El capstone integra la parte entera resolviendo dos problemas —una EDO y una raíz— con varios métodos, y produciendo un informe comparativo. El objetivo no es encontrar el resultado sino justificarlo: qué método, con qué tolerancia, a qué coste y con qué error estimado.

La métrica de comparación correcta es el número de evaluaciones de la función, no el número de pasos. RK4 da un paso por cada cuatro evaluaciones, y comparar «5 pasos de RK4» con «5 pasos de Euler» es comparar cuatro unidades de trabajo con una. Con la métrica correcta, RK4 sigue ganando por un margen enorme, y esa es la conclusión defendible.

El orden empírico se mide ejecutando con h y h/2 y tomando el logaritmo en base 2 del cociente de errores. Si sale 1 para Euler y 4 para RK4, la implementación es correcta; si sale otra cosa, hay un error o el problema no cumple las hipótesis de suavidad. Es la prueba unitaria natural de un integrador.

El informe final debe declarar lo mismo que declararía un artículo: método usado, tolerancia, número de iteraciones o pasos, residuo o error estimado, y las limitaciones conocidas. Un solver que devuelve un número desnudo obliga al lector a confiar; uno que devuelve el número con su diagnóstico permite verificar. Esa es toda la diferencia.

Ejemplo trabajado

Informe comparativo de los dos problemas del capstone.

Problema 1:  y' = −2y + t,  y(0) = 1,  objetivo y(1)
exacto: 0,419169104046

método   pasos  evaluaciones    y(1)          error
euler      10        10       0,384218      3,49e-02
euler      40        40       0,410620      8,55e-03
rk4         5        20       0,419270      1,01e-04
rk4        10        40       0,419175      6,34e-06

Con 40 evaluaciones:
  euler → 8,55e-03        rk4 → 6,34e-06
  rk4 es 1 349 veces más preciso al mismo coste.

Problema 2:  raíz de x³ − 2x − 4
  bisección: raíz 1,999999999999   41 iteraciones
  newton:    raíz 2,000000000000    6 iteraciones

Recomendación: rk4 para la EDO, newton con respaldo
de bisección para la raíz, tolerancia relativa 1e-10
y tope de 100 iteraciones.

Qué ejecuta el laboratorio

Capstone: solver con informe de error y criterio de parada declarado.

GrupoSalidas
Resultados numéricos (2)tolerancia_declarada, max_iteraciones_declarado
Comprobaciones (0)
compmath run 240

Errores conceptuales frecuentes

  1. Comparar métodos por pasos en vez de por evaluaciones.
  2. Reportar un resultado sin la tolerancia ni el método usado.
  3. Omitir el orden empírico como verificación de la implementación.

Dónde se usa

Informes de simulación, selección de solvers en proyectos científicos, benchmarking de integradores y documentación de resultados numéricos.

Bibliografía de la clase

Parte 12 — Optimización matemática y computacional

Nivel avanzado · 20 clases · 80 horas · motor part12

Función objetivo, convexidad, descenso de gradiente y su familia completa de optimizadores, métodos de segundo orden, restricciones, KKT y optimización evolutiva.

Entrenar un modelo es resolver un problema de optimización. No es una analogía: es literalmente lo que ocurre. Se define una función objetivo que mide el error, se calcula su gradiente y se desciende. Todo lo demás —arquitecturas, regularización, planificación del learning rate— son decisiones sobre ese problema. Esta parte trata la optimización como lo que es: el motor de la inteligencia artificial moderna.

Las clases 241 a 243 fijan el vocabulario y el concepto que decide la dificultad del problema. En un problema convexo todo mínimo local es global, y eso convierte la optimización en una tarea con garantías. Fuera de la convexidad no hay ninguna: las redes neuronales son masivamente no convexas y aun así se entrenan bien, un hecho que la teoría todavía no explica del todo. Lo que sí se puede afirmar es que cualquier dirección con dᵀ∇f < 0 hace descender la función, y que el gradiente negativo es la más empinada localmente, pero no siempre la mejor globalmente.

Las clases 244 a 251 recorren la familia completa de optimizadores de primer orden, en el orden histórico en que se resolvieron sus problemas. Descenso de gradiente y su tensión con el learning rate: demasiado pequeño no avanza, demasiado grande diverge, y el umbral es 2/L con L el mayor autovalor del Hessiano. SGD cambia exactitud por coste. Momentum amortigua la oscilación en valles estrechos. Nesterov mira adelante antes de decidir. AdaGrad adapta el paso por coordenada, pero su acumulador solo crece y el aprendizaje acaba apagándose; RMSProp lo arregla con olvido exponencial; Adam combina ambos momentos con corrección de sesgo; y AdamW corrige un error sutil de Adam que tardó años en detectarse: el weight decay debe aplicarse desacoplado del gradiente adaptativo, no sumado a él.

Las clases 252 a 254 suben a segundo orden. Newton usa la curvatura y converge en un solo paso en problemas cuadráticos, pero invertir el Hessiano cuesta O(n³) y es impensable con millones de parámetros. BFGS aproxima el Hessiano inverso usando solo gradientes, y la búsqueda de línea con la condición de Armijo elimina la necesidad de fijar el paso a mano.

Las clases 255 a 258 tratan las restricciones. Regularizar es cambiar el objetivo, no añadir un truco: sumar λ‖w‖² es tan parte del problema como el término de error. Los multiplicadores de Lagrange manejan igualdades, las condiciones KKT los generalizan a desigualdades, y la holgura complementaria formaliza la intuición de que una restricción inactiva no influye en la solución.

El cierre incorpora lo que no usa gradiente —optimización evolutiva sobre funciones multimodales— y un banco comparativo con presupuesto idéntico. Ese capstone deja una lección incómoda y verdadera: el mismo learning rate que funciona en una cuadrática hace divergir en Rosenbrock, y comparar optimizadores sin fijar semilla, punto inicial y presupuesto de iteraciones no compara nada.

Ideas centrales

Por qué importa en IA

AdamW es el optimizador por defecto del entrenamiento moderno; entender su actualización explica el weight decay, el warmup y el gradient clipping.

Errores frecuentes de la parte

Glosario de la parte (33 términos)

TérminoDefiniciónClase
AdaGradPaso adaptativo por coordenada usando la suma acumulada de gradientes al cuadrado.248
AdamMomentum de primer y segundo orden con corrección de sesgo inicial.250
AdamWAdam con weight decay desacoplado, aplicado al peso y no al gradiente.251
Algoritmo evolutivoBúsqueda por población con selección, cruce y mutación. No necesita gradiente.259
BFGSCuasi-Newton que aproxima el Hessiano inverso solo con gradientes sucesivos.253
Búsqueda por retrocesoProbar α, reducirlo a la mitad y repetir hasta cumplir Armijo.254
Condiciones KKTEstacionariedad, factibilidad, no negatividad y holgura complementaria.257
Condición de ArmijoExige que el paso reduzca la función al menos una fracción de lo que predice el gradiente.254
Convexidad y óptimosEn un problema convexo todo mínimo local es global. Fuera de él no hay garantía.242
Corrección de sesgoDivisión por 1 − βᵗ que compensa que los acumuladores empiezan en cero.250
Dirección de descensoCualquier d con dᵀ∇f < 0. El gradiente negativo es la más empinada localmente.243
ElitismoConservar los mejores individuos entre generaciones para no perder el óptimo hallado.259
Función convexaLa que queda por debajo de cualquier cuerda entre dos de sus puntos.242
Función objetivoCantidad que se minimiza o maximiza. Define qué significa mejor en el problema.241
Hessiano definido positivoCriterio de convexidad estricta: todos los autovalores positivos.242
Holgura complementariaμᵢ·gᵢ(x) = 0. Una restricción inactiva tiene multiplicador cero.257
L-BFGSVariante de memoria limitada que guarda solo los últimos pares de vectores.253
LagrangianoL = f − Σλᵢgᵢ. Convierte un problema con restricciones de igualdad en uno irrestricto.256
Learning rateTamaño del paso. El hiperparámetro que más veces explica una divergencia.244
Límite de estabilidadlr < 2/L con L el mayor autovalor del Hessiano. Por encima, el descenso diverge.244
Mini-batchLote de muestras para estimar el gradiente. Compromiso entre ruido y coste.245
MomentumMedia móvil de los gradientes. Acelera en direcciones consistentes y amortigua la oscilación.246
Multiplicador de Lagrangeλ. Mide cuánto mejoraría el óptimo al relajar la restricción una unidad.256
Método de NewtonUsa el Hessiano para elegir dirección y paso. Converge en un paso en cuadráticas.252
NesterovMomentum que evalúa el gradiente en el punto adelantado x + βv.247
Presupuesto de iteracionesNúmero fijo de pasos concedido a cada método para que la comparación sea justa.260
Problema irrestrictoAquel sin restricciones sobre las variables. El caso de casi todo entrenamiento de redes.241
Programa cuadráticoObjetivo cuadrático con restricciones lineales. Convexo si Q es definida positiva.258
Regularización L1Sumar λ‖w‖₁. Produce soluciones dispersas anulando coeficientes.255
Regularización L2Sumar λ‖w‖² al objetivo. Encoge todos los pesos sin anular ninguno.255
RMSPropAdaGrad con media móvil exponencial en vez de suma. Evita que el paso se apague.249
SGDGradiente estimado sobre un subconjunto de datos. Más barato y más ruidoso.245
Variables de decisiónParámetros libres sobre los que se optimiza.241

Bibliografía de la parte

241 · Problemas de optimización y función objetivo

Parte 12 · clase 1 de 20 · demostración objective_function

Un problema de optimización se define por variables, objetivo, sentido y restricciones.

min f(x)  sujeto a  gᵢ(x) ≤ 0,  hⱼ(x) = 0
maximizar f  ⟺  minimizar −f
óptimo local: f(x*) ≤ f(x) en un entorno

Fundamentos

Todo problema de optimización tiene cuatro componentes que conviene nombrar antes de tocar nada: las variables de decisión sobre las que se puede actuar, la función objetivo que se quiere mejorar, el sentido —minimizar o maximizar— y las restricciones que delimitan qué soluciones son admisibles.

Maximizar y minimizar son el mismo problema: maximizar f es minimizar −f. Por convenio la literatura se escribe siempre en forma de minimización, y por eso en aprendizaje automático se habla de minimizar la pérdida en vez de maximizar la verosimilitud, aunque sean lo mismo con signo cambiado.

Un problema sin restricciones se llama irrestricto, y es el caso de casi todo el entrenamiento de redes neuronales: los pesos pueden tomar cualquier valor real. Cuando hay restricciones el problema se complica sustancialmente, y las clases 256 a 258 desarrollan la maquinaria correspondiente.

La distinción entre óptimo local y global es la que decide la dificultad. Un óptimo local es mejor que todos sus vecinos; uno global es mejor que todos los puntos. Sin convexidad, ningún algoritmo basado en información local puede distinguir uno del otro, y esa es la razón de que la clase siguiente sea la más importante de la parte.

Ejemplo trabajado

Anatomía de un problema irrestricto de dos variables.

variables de decisión: x, y
función objetivo:      f(x,y) = x² + 20y²
sentido:               minimizar
restricciones:         ninguna

punto inicial X₀ = (−2, 3)
  f(X₀) = 4 + 180 = 184,0
  ∇f(X₀) = (2x, 40y) = (−4, 120)

El gradiente es 30 veces mayor en y que en x:
la función es muchísimo más sensible en esa dirección.

Óptimo: (0, 0) con f = 0.
Al ser convexo, ese mínimo local es también global.

Qué ejecuta el laboratorio

Anatomía de un problema de optimización.

GrupoSalidas
Resultados numéricos (2)f(X0), valor_minimo
Comprobaciones (0)
compmath run 241

Errores conceptuales frecuentes

  1. Optimizar sin haber escrito explícitamente la función objetivo.
  2. Olvidar las restricciones implícitas del dominio del problema.
  3. Confundir un óptimo local con la solución del problema.

Dónde se usa

Formulación de problemas de entrenamiento, diseño de ingeniería, asignación de recursos y planificación logística.

Bibliografía de la clase

242 · Convexidad

Parte 12 · clase 2 de 20 · demostración convexity

La convexidad es la frontera entre optimizar con garantías y optimizar con esperanza.

f(λa + (1−λ)b) ≤ λf(a) + (1−λ)f(b)
convexa ⟺ Hessiano semidefinido positivo
convexa ⟹ todo mínimo local es global

Fundamentos

Una función es convexa si el segmento que une dos puntos cualesquiera de su gráfica queda por encima de la curva. Esa definición geométrica se traduce en la desigualdad de la cuerda, y en el caso diferenciable equivale a que el Hessiano sea semidefinido positivo: curvatura no negativa en todas las direcciones.

La consecuencia es la que justifica toda la atención al concepto: en un problema convexo todo mínimo local es global. Un algoritmo que solo mira información local —que es lo único que hace el descenso de gradiente— tiene garantía de encontrar la solución óptima. Sin convexidad esa garantía desaparece por completo.

Hay una jerarquía útil de problemas por dificultad, y no es lineal-versus-no-lineal como suele creerse, sino convexo-versus-no-convexo. Un problema convexo de un millón de variables es tratable; uno no convexo de veinte puede ser imposible de resolver con garantías. Programación lineal, mínimos cuadrados, regresión logística y SVM son convexos, y por eso se resuelven de forma fiable.

Las redes neuronales no son convexas, y masivamente. Sin embargo se entrenan bien, y la explicación que va emergiendo es que en dimensión muy alta los mínimos locales malos son raros: lo abundante son puntos de silla, de los que el ruido de SGD escapa con facilidad. No es un teorema cerrado, y conviene decirlo así.

Ejemplo trabajado

Test de la cuerda y criterio del Hessiano.

f(x) = x²  con a = 0,5,  b = 2,0,  λ = 0,7

  f(λa + (1−λ)b) = f(0,95)  = 0,9025
  λf(a) + (1−λ)f(b)         = 2,9500
  0,9025 ≤ 2,9500   →   convexa                       ✓

f(x,y) = x² + 20y²

  Hessiano = [[2,  0],
              [0, 40]]
  autovalores: 40 y 2, ambos positivos
  → definido positivo → estrictamente convexa         ✓

Consecuencia: el mínimo (0,0) es global.
Cualquier método de descenso lo encontrará.

Qué ejecuta el laboratorio

Convexidad: la propiedad que convierte un mínimo local en global.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (1)definido_positivo
compmath run 242

Errores conceptuales frecuentes

  1. Suponer convexidad sin comprobar el Hessiano.
  2. Aplicar garantías de la teoría convexa a redes neuronales.
  3. Confundir función convexa con función con forma de cuenco en una sola dirección.

Dónde se usa

Diseño de funciones de pérdida, elección de algoritmos con garantías, SVM y regresión regularizada, y análisis de por qué el entrenamiento profundo es difícil.

Bibliografía de la clase

243 · Gradiente y direcciones de descenso

Parte 12 · clase 3 de 20 · demostración descent_directions

El gradiente negativo es la dirección más empinada, pero no la única que sirve.

d es de descenso ⟺ dᵀ∇f < 0
la más empinada: d = −∇f
Newton: d = −H⁻¹∇f  (también de descenso si H es definida positiva)

Fundamentos

El criterio para que una dirección sirva es sencillo: su producto escalar con el gradiente debe ser negativo. Eso significa que forma un ángulo mayor de 90 grados con el gradiente, y que moverse un poco en esa dirección reduce la función. Hay infinitas direcciones que lo cumplen, no solo una.

El gradiente negativo es la de máximo descenso local, en el sentido de que maximiza la reducción por unidad de longitud del paso. Pero «localmente óptima» no significa «globalmente eficiente»: en un valle alargado el gradiente apunta hacia las paredes en vez de a lo largo del valle, y el descenso zigzaguea desperdiciando la mayor parte del movimiento.

Ese defecto es exactamente lo que corrigen los métodos posteriores. Momentum promedia gradientes sucesivos y el zigzag se cancela. Newton usa la curvatura para reescalar cada dirección y apunta directamente al mínimo de la aproximación cuadrática. Los métodos adaptativos escalan por coordenada. Todos siguen siendo direcciones de descenso, solo que mejor elegidas.

Conviene retener que cualquier dirección con producto escalar negativo funciona, incluso una aleatoria. Los métodos de optimización sin gradiente explotan esa libertad probando direcciones al azar y quedándose con las que reducen el objetivo. Son lentos pero aplicables donde no hay derivada, y la clase 259 los desarrolla.

Ejemplo trabajado

Cuatro direcciones evaluadas desde el mismo punto.

f(x,y) = x² + 20y²      punto (−2, 3)      f = 184,0
∇f = (−4, 120)

dirección           dᵀ∇f      ¿descenso?   f tras un paso
−gradiente        −14 416         sí         183,8800
aleatoria válida     −116         sí         183,9180
eje x                 + 4         no         184,0040
+gradiente        +14 416         no         184,1201

La más empinada es −∇f, pero la aleatoria también sirve.

Nota: el gradiente vale 120 en y y −4 en x. El descenso
corregirá sobre todo y, y avanzará muy poco en x: ese
desequilibrio es el que produce el zigzag.

Qué ejecuta el laboratorio

Cualquier dirección con dᵀ∇f < 0 hace descender la función.

GrupoSalidas
Resultados numéricos (1)f_inicial
Comprobaciones (0)
compmath run 243

Errores conceptuales frecuentes

  1. Creer que solo el gradiente negativo es dirección válida.
  2. Usar la dirección más empinada en problemas mal escalados sin corregir.
  3. Olvidar normalizar la dirección al comparar tamaños de paso.

Dónde se usa

Diseño de optimizadores, métodos de región de confianza, optimización sin derivadas y análisis de convergencia.

Bibliografía de la clase

244 · Gradient descent

Parte 12 · clase 4 de 20 · demostración gradient_descent

El learning rate tiene un umbral duro: por encima de 2/L el descenso diverge.

xₖ₊₁ = xₖ − lr·∇f(xₖ)
estabilidad: lr < 2/L,  L = mayor autovalor del Hessiano
velocidad limitada por el número de condición L/μ

Fundamentos

El descenso de gradiente repite un paso elemental: calcular el gradiente y moverse en dirección contraria una cantidad proporcional al learning rate. Es el algoritmo más simple de la optimización continua y la base de todo el entrenamiento moderno.

Su comportamiento está enteramente gobernado por el learning rate, y el umbral no es difuso. Para una función cuadrática con mayor autovalor L, el descenso converge si y solo si lr < 2/L. Por debajo converge, por encima diverge con oscilaciones que crecen geométricamente. No hay zona gris: es una frontera exacta.

Dentro de la zona estable hay un segundo compromiso. Un lr demasiado pequeño converge con seguridad pero necesita un número de iteraciones prohibitivo; uno cercano al umbral es rápido pero frágil. Y la velocidad máxima alcanzable está limitada por el número de condición L/μ: cuanto más alargado sea el valle, más lento el descenso, por bien elegido que esté el paso.

En la práctica del aprendizaje profundo, L no se conoce y además cambia durante el entrenamiento. De ahí las técnicas habituales: warmup para no divergir al principio, planificadores que reducen el lr progresivamente, y gradient clipping como salvaguarda ante gradientes anómalos. Todas son maneras de mantenerse del lado bueno de un umbral que no se puede calcular.

Ejemplo trabajado

Doscientas iteraciones sobre x² + 20y² desde (−2, 3).

Hessiano = diag(2, 40)   →  L = 40  →  lr máximo = 2/40 = 0,05

     lr        f final        comportamiento
  0,001     1,795891        demasiado lento, no llega
  0,010     1,7e-09         converge bien
  0,040     3,4e-31         muy rápido, cerca del umbral
  0,050        —            oscila sin converger
  0,060        —            diverge, desborda

Con lr = 0,001 y 200 iteraciones, x sigue en −1,34:
la coordenada lenta apenas se ha movido.

Número de condición: 40/2 = 20. Ese 20 es el que
obliga al zigzag y motiva momentum.

Qué ejecuta el laboratorio

Descenso de gradiente y el efecto del learning rate.

GrupoSalidas
Resultados numéricos (2)iteraciones, lr_maximo_estable
Comprobaciones (0)
compmath run 244

Errores conceptuales frecuentes

  1. Elegir el learning rate por prueba y error sin entender el umbral.
  2. Atribuir a la arquitectura una divergencia causada por el paso.
  3. Usar un learning rate fijo durante todo el entrenamiento.

Dónde se usa

Entrenamiento de cualquier modelo, ajuste de hiperparámetros, planificadores de learning rate y diagnóstico de divergencias.

Bibliografía de la clase

245 · Stochastic gradient descent

Parte 12 · clase 5 de 20 · demostración sgd

SGD cambia exactitud del gradiente por número de actualizaciones, y suele salir ganando.

∇f ≈ (1/|B|)·Σ_{i∈B} ∇fᵢ
E[gradiente de lote] = gradiente completo
varianza del estimador ∝ 1/|B|

Fundamentos

El gradiente exacto de una función de pérdida sobre un millón de ejemplos requiere recorrer el millón. El descenso estocástico observa que un subconjunto pequeño ya da una estimación insesgada del gradiente, y que con el mismo presupuesto de cómputo se pueden dar muchísimas más actualizaciones aunque cada una sea ruidosa.

El intercambio es favorable en la práctica. Mil actualizaciones aproximadas avanzan más que una exacta, porque el error de la estimación se promedia a lo largo de las iteraciones mientras que el progreso se acumula. Ese es el resultado empírico que hizo viable el aprendizaje profundo a escala.

El ruido tiene además un efecto beneficioso que no es un accidente. Las fluctuaciones del gradiente estocástico permiten escapar de puntos de silla y de mínimos locales estrechos, y hay evidencia de que sesgan la solución hacia mínimos anchos, que generalizan mejor. Un gradiente perfecto no siempre es lo deseable.

El tamaño de lote es el mando que regula el compromiso. Lotes grandes dan gradientes precisos, aprovechan mejor la GPU y permiten más paralelismo, pero pierden el efecto regularizador del ruido y suelen necesitar ajustar el learning rate al alza. Lotes pequeños son ruidosos y lentos por muestra, pero exploran más. No hay valor universal.

Ejemplo trabajado

Ajuste de dos parámetros con 100 datos, mismo presupuesto.

parámetros reales: [2,0 ; 3,0]

lote completo (200 épocas):
  estimación = [2,038924 ; 2,996817]
  MSE = 0,094537
  gradientes evaluados: 20 000

SGD con 1 muestra (200 épocas):
  estimación = [2,142997 ; 2,967811]
  gradientes evaluados: 20 000

Con el mismo número de evaluaciones, el lote completo
da 200 actualizaciones y SGD da 20 000.

SGD llega a una solución comparable con actualizaciones
mucho más baratas, y su trayectoria es visiblemente ruidosa.

Qué ejecuta el laboratorio

SGD: gradiente ruidoso, progreso más barato.

GrupoSalidas
Resultados numéricos (6)datos, MSE_batch, gradientes_evaluados_batch, MSE_sgd, gradientes_evaluados_sgd, ahorro_de_computo
Comprobaciones (0)
compmath run 245

Errores conceptuales frecuentes

  1. Comparar SGD y lote completo por épocas en vez de por coste de cómputo.
  2. Subir el tamaño de lote sin reajustar el learning rate.
  3. Interpretar el ruido de la curva de pérdida como fallo del entrenamiento.

Dónde se usa

Entrenamiento de redes profundas, aprendizaje en línea, sistemas de recomendación y cualquier ajuste con conjuntos de datos grandes.

Bibliografía de la clase

246 · Momentum

Parte 12 · clase 6 de 20 · demostración momentum

Momentum promedia gradientes: el zigzag se cancela y la componente útil se acumula.

vₖ₊₁ = β·vₖ − lr·∇f(xₖ)
xₖ₊₁ = xₖ + vₖ₊₁
paso efectivo ≈ lr/(1−β):  β = 0,9 multiplica por 10

Fundamentos

Momentum añade memoria al descenso. En vez de moverse según el gradiente actual, mantiene una velocidad que es una media móvil exponencial de los gradientes pasados. La analogía física es exacta: una bola que rueda por la superficie acumula inercia en vez de reaccionar solo a la pendiente instantánea.

El efecto en valles alargados es el que justifica el método. Las componentes del gradiente que apuntan a las paredes cambian de signo en cada iteración y se cancelan al promediarse; las que apuntan a lo largo del valle son consistentes y se acumulan. El zigzag desaparece y el avance en la dirección útil se multiplica.

El paso efectivo en una dirección de gradiente constante es lr/(1−β), de modo que β=0,9 equivale a multiplicar el learning rate por 10 en esas direcciones. Ese factor explica por qué al activar momentum suele haber que bajar el learning rate: si no, se cruza el umbral de estabilidad.

El coste es mínimo: un vector de estado del tamaño de los parámetros y una operación por paso. Con esa inversión, momentum acelera prácticamente siempre en problemas mal condicionados, que son la norma. Por eso el SGD con momentum siguió siendo competitivo con Adam en visión por computador durante años.

Ejemplo trabajado

Mismo problema y mismo learning rate, con y sin momentum.

f(x,y) = x² + 20y²      lr = 0,02      β = 0,9

sin momentum:
  x final = (−0,00056922 ; 0,0)
  f final = 3,24e-07

con momentum:
  x final = (1,741e-05 ; −6,475e-05)
  f final = 8,42e-08

factor de mejora en f: 3,85×

La diferencia crece con el número de condición:
con condición 20 la mejora es de 4×; con condición 1000
momentum es la diferencia entre converger y no converger.

Paso efectivo: lr/(1−β) = 0,02/0,1 = 0,2, diez veces mayor.

Qué ejecuta el laboratorio

Momentum acumula velocidad y amortigua la oscilación.

GrupoSalidas
Resultados numéricos (3)learning_rate, beta, factor_de_mejora
Comprobaciones (1)momentum_llega_mas_bajo
compmath run 246

Errores conceptuales frecuentes

  1. Mantener el mismo learning rate al activar momentum.
  2. Usar β muy cercano a 1 sin controlar la estabilidad.
  3. Olvidar reiniciar la velocidad al cambiar de fase de entrenamiento.

Dónde se usa

SGD con momentum en visión, aceleración de convergencia en problemas mal condicionados y base de Adam y sus variantes.

Bibliografía de la clase

247 · Nesterov accelerated gradient

Parte 12 · clase 7 de 20 · demostración nesterov

Nesterov calcula el gradiente donde va a estar, no donde está.

punto adelantado: x̃ = xₖ + β·vₖ
vₖ₊₁ = β·vₖ − lr·∇f(x̃)
cota O(1/k²) frente a O(1/k) del descenso simple

Fundamentos

El gradiente acelerado de Nesterov introduce un cambio que parece menor y no lo es: evalúa el gradiente en el punto al que el momentum va a llevar, no en el punto actual. Primero se mira hacia dónde empuja la inercia, y allí se calcula la corrección.

La intuición es la de un conductor que frena antes de la curva en vez de al llegar a ella. Si el punto adelantado ya ha pasado el mínimo, el gradiente en él apunta hacia atrás y frena la velocidad antes de que el sobrepaso ocurra. Momentum clásico solo se entera del sobrepaso después de haberlo cometido.

El resultado no es solo empírico. Para funciones convexas suaves, Nesterov alcanza una tasa de convergencia O(1/k²) frente al O(1/k) del descenso simple, y esa tasa es óptima: ningún método de primer orden puede hacerlo mejor en esa clase de problemas. Es uno de los resultados más elegantes de la optimización convexa.

En aprendizaje profundo la ventaja es más modesta que en el caso convexo, pero real y gratuita: el coste computacional es idéntico al de momentum. Está disponible como opción en prácticamente todas las bibliotecas —nesterov=True— y activarla rara vez perjudica.

Ejemplo trabajado

Momentum clásico frente a Nesterov, condiciones idénticas.

f(x,y) = x² + 20y²      lr = 0,02      β = 0,9

momentum clásico:
  x final = (1,741e-05 ; −6,475e-05)
  f final = 8,4165e-08

Nesterov:
  x final = (−5,6e-07 ; 0,0)
  f final = 0,0            (por debajo de la precisión)

Diferencia de implementación:
  clásico:  ∇f evaluado en x
  Nesterov: ∇f evaluado en x + β·v

Ventaja teórica en convexas suaves:
  descenso simple  O(1/k)
  Nesterov         O(1/k²)   y es óptimo

Qué ejecuta el laboratorio

NAG mira adelante antes de calcular el gradiente.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (1)nesterov_mejor
compmath run 247

Errores conceptuales frecuentes

  1. Implementar la fórmula evaluando el gradiente en x en vez del punto adelantado.
  2. Esperar la ganancia teórica del caso convexo en redes profundas.
  3. Confundir las dos formulaciones equivalentes de NAG al portar código.

Dónde se usa

SGD con Nesterov en entrenamiento de redes, optimización convexa acelerada y métodos proximales acelerados.

Bibliografía de la clase

248 · AdaGrad

Parte 12 · clase 8 de 20 · demostración adagrad

AdaGrad da pasos grandes a coordenadas poco vistas, pero su acumulador nunca olvida.

Gₖ = Gₖ₋₁ + ∇f(xₖ)²   (por coordenada)
xₖ₊₁ = xₖ − lr·∇f(xₖ) / (√Gₖ + ε)
el paso decrece monótonamente

Fundamentos

AdaGrad abandona la idea de un learning rate único para todas las coordenadas. Acumula para cada una la suma de sus gradientes al cuadrado y divide el paso por su raíz. Las coordenadas con gradientes históricamente grandes reciben pasos pequeños; las que apenas se han movido reciben pasos grandes.

Esto resuelve un problema real en datos dispersos. En procesamiento de lenguaje, unas pocas palabras aparecen constantemente y la mayoría casi nunca. Con learning rate único, los embeddings de las palabras raras apenas se actualizan. AdaGrad les da pasos grandes precisamente porque han acumulado poco, y por eso funcionó tan bien en su momento.

El defecto es estructural y no tiene arreglo dentro del método: el acumulador es una suma de términos no negativos y por tanto solo crece. El paso efectivo decrece monótonamente hacia cero, y en entrenamientos largos el aprendizaje se detiene aunque el modelo esté lejos del óptimo. No es un problema de ajuste; es una consecuencia de la fórmula.

El diagnóstico de ese defecto llevó directamente a RMSProp, que sustituye la suma por una media móvil exponencial y por tanto olvida el pasado lejano. AdaGrad conserva interés histórico y sigue siendo razonable en problemas convexos dispersos con horizontes cortos.

Ejemplo trabajado

Evolución del tamaño de paso a lo largo de las iteraciones.

lr base = 0,5

iteración    tamaño de paso efectivo
     1            0,7071
    50            0,1004
   100            0,0710
   200            0,0502

El paso cae como 1/√k y no vuelve a subir nunca.

Resultado sobre x² + 20y²:
  x final = (−0,0 ; 2,2e-07)     f final = 1e-12

Aquí converge porque el problema es fácil y corto.
En un entrenamiento de 100 000 pasos, el paso efectivo
caería a menos del 1 % del inicial.

Qué ejecuta el laboratorio

AdaGrad adapta el paso por coordenada, pero se apaga.

GrupoSalidas
Resultados numéricos (1)learning_rate_base
Comprobaciones (1)el_paso_decrece_monotonamente
compmath run 248

Errores conceptuales frecuentes

  1. Usar AdaGrad en entrenamientos largos de redes profundas.
  2. Aumentar el learning rate base para compensar el decaimiento, sin resolver la causa.
  3. Omitir ε y provocar división por cero en coordenadas nunca actualizadas.

Dónde se usa

Modelos con datos dispersos, embeddings de vocabularios grandes, sistemas de recomendación y problemas convexos con horizonte corto.

Bibliografía de la clase

249 · RMSProp

Parte 12 · clase 9 de 20 · demostración rmsprop

RMSProp sustituye la suma de AdaGrad por una media móvil, y el paso deja de apagarse.

Eₖ = ρ·Eₖ₋₁ + (1−ρ)·∇f(xₖ)²
xₖ₊₁ = xₖ − lr·∇f(xₖ) / (√Eₖ + ε)
ρ = 0,9 equivale a recordar unos 10 pasos

Fundamentos

RMSProp aplica una corrección mínima a AdaGrad con consecuencias grandes: en vez de sumar todos los gradientes al cuadrado, mantiene una media móvil exponencial. Los gradientes antiguos se descuentan geométricamente y el acumulador puede bajar además de subir.

Eso resuelve el apagado. Si una coordenada tuvo gradientes grandes al principio y luego se calmó, AdaGrad la mantiene penalizada para siempre mientras que RMSProp la libera. El método se adapta al régimen actual del entrenamiento en vez de a toda su historia, que es lo apropiado en problemas no estacionarios como el aprendizaje profundo.

El parámetro ρ fija la longitud de la memoria: con ρ = 0,9 la ventana efectiva es de unos 10 pasos, con 0,99 de unos 100. El valor por defecto funciona en la mayoría de los casos y rara vez merece ajustarse. El ε en el denominador evita divisiones por cero y típicamente vale 10⁻⁸.

RMSProp tiene una peculiaridad histórica: nunca se publicó como artículo. Apareció en una diapositiva del curso de Hinton en Coursera en 2012 y se citó así durante años. Su combinación con momentum es lo que da Adam, que es la clase siguiente.

Ejemplo trabajado

RMSProp y AdaGrad con el mismo learning rate.

ρ = 0,9      ε = 1e-8      mismo lr para ambos

RMSProp:
  x final = (0,02310943 ; 0,01786889)
  f final = 0,00692

AdaGrad con el mismo lr:
  x final = (−0,85543159 ; 1,78114968)
  f final = 64,18

AdaGrad se quedó atascado: su paso se apagó antes
de llegar al mínimo.

Diferencia única entre ambos:
  AdaGrad: G += g²             suma que solo crece
  RMSProp: E = ρE + (1−ρ)g²    media que puede bajar

Qué ejecuta el laboratorio

RMSProp: media móvil del gradiente al cuadrado.

GrupoSalidas
Resultados numéricos (2)rho, epsilon
Comprobaciones (2)rmsprop_mejor, el_paso_no_se_apaga
compmath run 249

Errores conceptuales frecuentes

  1. Ajustar ρ sin necesidad en vez de dejar el valor por defecto.
  2. Omitir ε y provocar inestabilidad numérica.
  3. Esperar que RMSProp resuelva un learning rate base mal elegido.

Dónde se usa

Entrenamiento de redes recurrentes, aprendizaje por refuerzo, objetivos no estacionarios y componente de segundo momento en Adam.

Bibliografía de la clase

250 · Adam

Parte 12 · clase 10 de 20 · demostración adam

Adam combina momentum y escalado adaptativo, y corrige el sesgo del arranque.

mₖ = β₁·mₖ₋₁ + (1−β₁)·g;   vₖ = β₂·vₖ₋₁ + (1−β₂)·g²
m̂ = mₖ/(1−β₁ᵏ);   v̂ = vₖ/(1−β₂ᵏ)
xₖ₊₁ = xₖ − lr·m̂ / (√v̂ + ε)

Fundamentos

Adam junta las dos ideas que funcionaban por separado: el primer momento m es la media móvil del gradiente, que es momentum, y el segundo momento v es la media móvil del gradiente al cuadrado, que es RMSProp. La actualización divide uno por la raíz del otro.

La aportación propia es la corrección de sesgo, y merece entenderse porque es la parte que más se copia sin comprender. Ambos acumuladores se inicializan a cero, así que en los primeros pasos están fuertemente sesgados hacia cero: con β₂ = 0,999, tras un paso v vale solo el 0,1 % del valor correcto. Dividir por 1 − βᵏ compensa exactamente ese arranque, y sin esa corrección los primeros pasos serían enormes.

Los valores por defecto —β₁ = 0,9, β₂ = 0,999, ε = 10⁻⁸— funcionan sorprendentemente bien en una variedad enorme de problemas, y esa robustez es la razón real de su dominio: se puede empezar a entrenar sin ajustar nada. Es el optimizador por defecto del aprendizaje profundo desde 2015.

No está libre de críticas. Hay problemas convexos donde Adam no converge, señalados por Reddi y otros en 2018, lo que motivó AMSGrad. Y en visión por computador el SGD con momentum bien ajustado suele generalizar mejor. Adam es el mejor punto de partida, no la respuesta final.

Ejemplo trabajado

Adam sobre el problema de referencia y la corrección de sesgo.

β₁ = 0,9    β₂ = 0,999    lr = 0,1    ε = 1e-8

resultado:
  x final = (−5,69e-05 ; −5,303e-05)
  f final = 5,95e-08

Por qué hace falta la corrección de sesgo:

  paso k    1 − β₂ᵏ      v subestima por factor
     1      0,001              1000×
    10      0,00995             100×
   100      0,0952               10×
  1000      0,632                1,6×

Sin corregir, los primeros pasos dividirían por una raíz
demasiado pequeña y el paso efectivo sería desmesurado.

Qué ejecuta el laboratorio

Adam: momentum de primer y segundo orden con corrección de sesgo.

GrupoSalidas
Resultados numéricos (6)beta1, beta2, lr, eps, paso_1_sin_corregir, factor_de_correccion_en_t=1
Comprobaciones (1)es_el_optimizador_por_defecto
compmath run 250

Errores conceptuales frecuentes

  1. Implementar Adam sin la corrección de sesgo.
  2. Usar el weight decay como término L2 dentro del gradiente en vez de AdamW.
  3. Suponer que Adam siempre generaliza mejor que SGD con momentum.

Dónde se usa

Entrenamiento por defecto de redes profundas, ajuste fino de modelos de lenguaje, transformers y prácticamente todo el aprendizaje profundo actual.

Bibliografía de la clase

251 · AdamW

Parte 12 · clase 11 de 20 · demostración adamw

En Adam, sumar L2 al gradiente no es lo mismo que decaer el peso: AdamW los separa.

Adam + L2:  g ← g + λ·w,  luego se divide por √v̂
AdamW:  xₖ₊₁ = xₖ − lr·m̂/(√v̂+ε) − lr·λ·xₖ
en SGD ambas formas coinciden; en Adam no

Fundamentos

En el descenso de gradiente clásico, añadir λ‖w‖² al objetivo y decaer los pesos multiplicándolos por (1 − lr·λ) son operaciones idénticas. Esa equivalencia es tan familiar que se dio por válida también en Adam durante años, y era falsa.

La razón es el escalado adaptativo. En Adam, el término λ·w que se suma al gradiente pasa por la división entre √v̂, igual que el resto del gradiente. El resultado es que los pesos con gradientes históricamente grandes reciben menos regularización, exactamente al revés de lo que se pretendía. La intensidad de la regularización pasa a depender del historial de gradientes de cada coordenada.

AdamW aplica el decaimiento directamente sobre el peso, fuera del mecanismo adaptativo. Cada parámetro recibe la misma proporción de decaimiento independientemente de su gradiente, que es lo que se quería desde el principio. El cambio en el código es de una línea; el efecto en el rendimiento fue lo bastante grande como para convertirlo en el estándar.

Hoy AdamW es el optimizador por defecto para transformers y modelos de lenguaje. La lección metodológica va más allá del caso: una equivalencia válida en un algoritmo puede romperse en otro, y trasladar intuiciones sin verificarlas cuesta caro. Este error concreto estuvo en producción desde 2015 hasta 2019.

Ejemplo trabajado

Mismo objetivo y mismo weight decay, dos implementaciones.

objetivo: (x−3)² + (y−4)²        óptimo sin regularizar: (3, 4)
weight decay λ = 0,05

Adam con L2 dentro del gradiente:
  solución = (2,926829 ; 3,902440)      norma = 4,87805

AdamW con decay desacoplado:
  solución = (2,918662 ; 3,830002)      norma = 4,80800

AdamW regulariza más y de forma uniforme.

La diferencia crece con la dispersión de los gradientes:
aquí es del 1,4 %, en un transformer real es suficiente
para cambiar la calidad del modelo de forma medible.

Qué ejecuta el laboratorio

AdamW desacopla el weight decay del gradiente adaptativo.

GrupoSalidas
Resultados numéricos (3)weight_decay, norma_adam_L2, norma_adamw
Comprobaciones (0)
compmath run 251

Errores conceptuales frecuentes

  1. Usar el argumento weight_decay de Adam creyendo que equivale a AdamW.
  2. Aplicar decaimiento a los parámetros de normalización y a los sesgos.
  3. Trasladar equivalencias de SGD a optimizadores adaptativos sin comprobarlas.

Dónde se usa

Entrenamiento de transformers, ajuste fino de modelos de lenguaje, recetas de regularización moderna y reproducción de resultados publicados.

Bibliografía de la clase

252 · Método de Newton

Parte 12 · clase 12 de 20 · demostración newton_method

Newton resuelve una cuadrática en un solo paso, y por eso no escala.

xₖ₊₁ = xₖ − H⁻¹·∇f(xₖ)
convergencia cuadrática cerca del óptimo
coste O(n³) por iteración, memoria O(n²)

Fundamentos

El método de Newton aplicado a optimización aproxima la función por su desarrollo de Taylor de segundo orden y salta al mínimo de esa parábola. Usa por tanto la curvatura, no solo la pendiente, y eso le permite elegir simultáneamente dirección y tamaño de paso sin learning rate.

En una función cuadrática, la aproximación de segundo orden es la función, y Newton alcanza el mínimo exacto en una única iteración desde cualquier punto de partida. En funciones generales conserva convergencia cuadrática cerca del óptimo: el número de dígitos correctos se duplica en cada paso, igual que en la búsqueda de raíces de la clase 223.

El obstáculo es el coste. El Hessiano tiene entradas e invertirlo cuesta O(n³). Con un modelo de mil millones de parámetros, el Hessiano tendría 10¹⁸ entradas: no cabe en ninguna memoria existente. Por eso los métodos de segundo orden puros son inviables en aprendizaje profundo, por muy atractiva que sea su tasa de convergencia.

Hay un segundo problema, cualitativo: si el Hessiano no es definido positivo —lo cual ocurre en puntos de silla, abundantes en dimensión alta— la dirección de Newton puede apuntar cuesta arriba. Las variantes prácticas añaden regularización al Hessiano o usan regiones de confianza para evitarlo.

Ejemplo trabajado

Newton sobre una cuadrática: un paso y termina.

f(x,y) = x² + 20y²        punto inicial (−2, 3)

Hessiano = [[2,  0],        H⁻¹ = [[0,5,   0   ],
            [0, 40]]                [0  ,  0,025]]

Paso 1:  x = (−2,3) − H⁻¹·(−4,120) = (0, 0)
  f = 0,0                                            ✓

Paso 2:  ya está en el óptimo, no se mueve.

Un paso frente a las 200 iteraciones del descenso.

Coste: invertir H es O(n³). Con n = 10⁹ el Hessiano
tendría 10¹⁸ entradas: imposible de almacenar.

Qué ejecuta el laboratorio

Newton en optimización: usa curvatura, converge en un paso si es cuadrática.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (1)converge_en_1_paso
compmath run 252

Errores conceptuales frecuentes

  1. Aplicar Newton sin comprobar que el Hessiano es definido positivo.
  2. Formar e invertir el Hessiano explícitamente en vez de resolver el sistema.
  3. Considerarlo viable en modelos con millones de parámetros.

Dónde se usa

Optimización de pocos parámetros, ajuste de modelos estadísticos, IRLS en regresión logística y base conceptual de los métodos cuasi-Newton.

Bibliografía de la clase

253 · Quasi-Newton y BFGS

Parte 12 · clase 13 de 20 · demostración quasi_newton

BFGS construye una aproximación del Hessiano inverso usando solo gradientes.

sₖ = xₖ₊₁ − xₖ;   yₖ = ∇f(xₖ₊₁) − ∇f(xₖ)
condición secante: Bₖ₊₁·yₖ = sₖ
coste O(n²) frente al O(n³) de Newton

Fundamentos

Los métodos cuasi-Newton buscan la velocidad de Newton sin su coste. La idea es que la diferencia entre dos gradientes consecutivos ya contiene información sobre la curvatura en la dirección recorrida, y acumulando esa información a lo largo de las iteraciones se puede construir una aproximación del Hessiano inverso.

La condición secante B·y = s es la formalización: la aproximación debe reproducir la relación observada entre el desplazamiento y el cambio de gradiente. Es la generalización multidimensional exacta del método de la secante de la clase 224, donde la derivada se aproximaba con dos evaluaciones.

BFGS es la fórmula de actualización que mejor funciona en la práctica, y tiene la propiedad valiosa de preservar la definición positiva de la aproximación, con lo que la dirección resultante siempre es de descenso. El coste baja a O(n²) y no hace falta calcular ninguna segunda derivada.

Para dimensiones grandes existe L-BFGS, que no almacena la matriz sino los últimos m pares (s, y) —típicamente 10 o 20— y reconstruye el producto con el gradiente sobre la marcha. Su coste es O(mn) y es el algoritmo de referencia para optimización suave a gran escala fuera del aprendizaje profundo. En redes neuronales rinde menos porque el gradiente estocástico rompe las hipótesis de suavidad que necesita.

Ejemplo trabajado

BFGS reconstruye el Hessiano inverso sin calcularlo.

f(x,y) = x² + 20y²      BFGS con línea de retroceso

iter      f          |∇f|
  1   14,765625    30,2335
  5    1,3e-03      0,2189
 10    2,1e-09      9,1e-05

x final = (−0,0 ; −0,0)                              ✓

Aproximación construida:      Hessiano inverso real:
  [[0,501698  0,000276]         [[0,5    0   ]
   [0,000276  0,025045]]         [0     0,025]]

Coincide a tres decimales sin haber evaluado
ni una sola segunda derivada.

Qué ejecuta el laboratorio

BFGS: aproxima el Hessiano inverso solo con gradientes.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (1)no_calcula_el_hessiano
compmath run 253

Errores conceptuales frecuentes

  1. Usar BFGS con gradientes estocásticos ruidosos.
  2. Almacenar la matriz completa cuando L-BFGS resolvería el problema.
  3. Omitir la búsqueda de línea, necesaria para que la aproximación se mantenga válida.

Dónde se usa

Ajuste de modelos estadísticos, optimización en ingeniería, problemas inversos y minimización de energía en química computacional.

Bibliografía de la clase

254 · Line search

Parte 12 · clase 14 de 20 · demostración line_search

Armijo pide una reducción proporcional a lo que el gradiente prometía, no cualquier reducción.

condición de Armijo: f(x + αd) ≤ f(x) + c₁·α·∇fᵀd
retroceso: empezar en α = 1 y multiplicar por 0,5 hasta cumplirla
c₁ típico: 10⁻⁴

Fundamentos

Elegir el tamaño de paso a mano es frágil: demasiado grande diverge, demasiado pequeño malgasta iteraciones. La búsqueda de línea automatiza esa elección probando valores y quedándose con uno que garantice progreso suficiente.

El criterio ingenuo —aceptar cualquier α que reduzca f— no basta. Se pueden construir sucesiones de pasos que reducen la función cada vez y aun así no convergen al mínimo, porque la reducción se hace arbitrariamente pequeña. Hace falta exigir un progreso proporcional al prometido por el gradiente.

Esa exigencia es la condición de Armijo: la reducción debe ser al menos una fracción c₁ de la que predice la aproximación lineal. Con c₁ = 10⁻⁴ la exigencia es muy laxa —se pide capturar la diezmilésima parte del descenso prometido— y aun así basta para garantizar convergencia.

La implementación estándar es el retroceso: empezar con α = 1, y mientras no se cumpla Armijo multiplicar por 0,5. Termina en pocas iteraciones y solo requiere evaluar la función. Las condiciones de Wolfe añaden una segunda desigualdad sobre la curvatura para evitar pasos demasiado cortos, y son las que necesita BFGS para mantener válida su aproximación.

Ejemplo trabajado

Retroceso desde un punto con gradiente muy desequilibrado.

punto (−2, 3)      f = 184,0
dirección d = −∇f = (4, −120)      c₁ = 1e-4

α        f(x + αd)      ¿Armijo?
1,000    273 784,0         no
0,500     64 900,0         no
0,250     15 016,0         no
0,125      3 271,0         no
0,0625       634,0         no
0,03125      146,3         sí   ← aceptado

6 evaluaciones de f y ningún hiperparámetro que ajustar.

Sin línea de búsqueda, α = 1 habría multiplicado
la función por 1 488.

Qué ejecuta el laboratorio

Búsqueda de línea con la condición de Armijo.

GrupoSalidas
Resultados numéricos (3)f(x), c1, alpha_aceptado
Comprobaciones (0)
compmath run 254

Errores conceptuales frecuentes

  1. Aceptar cualquier α que reduzca f, sin condición de progreso suficiente.
  2. Empezar el retroceso desde un α inicial demasiado pequeño.
  3. Usar solo Armijo con BFGS, donde hacen falta las condiciones de Wolfe.

Dónde se usa

Métodos cuasi-Newton, optimización sin ajuste manual de paso, entrenamiento con paso adaptativo y solvers de propósito general.

Bibliografía de la clase

255 · Regularización como optimización

Parte 12 · clase 15 de 20 · demostración regularization_as_optimization

Regularizar es cambiar la función objetivo, no modificar el algoritmo.

objetivo regularizado: J(w) = L(w) + λ·R(w)
L2: R(w) = ‖w‖²  → encoge todos los pesos
L1: R(w) = ‖w‖₁  → anula coeficientes

Fundamentos

La regularización se presenta a menudo como un truco para evitar el sobreajuste, y esa descripción oscurece lo que realmente es: una modificación explícita de la función objetivo. Se está optimizando un problema distinto, con un término adicional que penaliza la complejidad, y todo el análisis de optimización sigue aplicándose sin cambios.

El parámetro λ fija el precio de la complejidad. Con λ = 0 se minimiza solo el error de ajuste y los pesos crecen sin límite si eso ayuda. Con λ grande domina la penalización y los pesos se encogen hacia cero a costa de un ajuste peor. Es una frontera de Pareto entre dos objetivos en conflicto, y elegir λ es elegir un punto sobre ella.

La elección de norma cambia cualitativamente la solución. L2 encoge todos los coeficientes de forma proporcional pero no anula ninguno, porque su gradiente se hace pequeño cerca de cero. L1 tiene gradiente constante y empuja los coeficientes exactamente a cero, produciendo soluciones dispersas que sirven como selección automática de variables.

La conexión con la parte 10 es directa y merece recordarse: L2 equivale a un prior gaussiano sobre los pesos y L1 a un prior de Laplace, y minimizar el objetivo regularizado es exactamente la estimación MAP. Regularizar no es un truco de ingeniería sino la formulación de una creencia previa.

Ejemplo trabajado

Mismo problema con tres valores de λ.

  λ        pesos              MSE       ‖w‖₂
0,00   [1,010977 ; 9,927716]  0,0151    9,979
0,01   [1,634097 ; 5,663765]  0,2503    5,895
0,50   [1,618590 ; 0,480769]  1,8027    1,688

Al subir λ:
  la norma de w baja de 9,98 a 1,69
  el error de ajuste sube de 0,015 a 1,803

Es un intercambio explícito, no un efecto secundario.

El segundo peso, que valía 9,93 sin regularizar,
queda reducido a 0,48: el modelo decide que no
merece la pena pagarlo.

Qué ejecuta el laboratorio

Regularizar es cambiar el objetivo, no el algoritmo.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (0)
compmath run 255

Errores conceptuales frecuentes

  1. Tratar la regularización como un ajuste del algoritmo y no del objetivo.
  2. Elegir λ sin validación, por costumbre.
  3. Regularizar los sesgos y los parámetros de normalización junto con los pesos.

Dónde se usa

Ridge y Lasso, weight decay en redes, selección de variables, compressed sensing y control del sobreajuste.

Bibliografía de la clase

256 · Restricciones y Lagrangianos

Parte 12 · clase 16 de 20 · demostración constraints_lagrangian

El multiplicador de Lagrange mide cuánto vale relajar la restricción una unidad.

L(x,λ) = f(x) − λ·(g(x) − c)
en el óptimo: ∇f = λ·∇g
λ = ∂f*/∂c  (precio sombra)

Fundamentos

Con una restricción de igualdad, el mínimo ya no está donde el gradiente se anula sino donde el gradiente del objetivo es paralelo al de la restricción. La razón geométrica es clara: si tuvieran una componente distinta, se podría avanzar a lo largo de la restricción reduciendo el objetivo.

El Lagrangiano convierte esa condición en un sistema de ecuaciones. Se construye restando la restricción multiplicada por una incógnita nueva λ, y se anulan todas las derivadas parciales, incluida la de λ, que reproduce la restricción original. El problema restringido se transforma en uno irrestricto con una variable más.

El multiplicador tiene un significado económico preciso y muy útil: es el precio sombra de la restricción, la derivada del óptimo respecto del nivel c. Si λ = 3, relajar la restricción una unidad mejora el óptimo en 3 unidades. Eso convierte a λ en la respuesta cuantitativa a «¿cuánto pagaría por más presupuesto?».

En aprendizaje automático el Lagrangiano aparece en la formulación dual de las SVM, en la derivación de la distribución de máxima entropía —de donde sale softmax—, y en el entrenamiento con restricciones de equidad o de presupuesto. La versión con desigualdades es la clase siguiente.

Ejemplo trabajado

Punto de la recta x + y = 4 más cercano al origen.

minimizar   f(x,y) = x² + y²
sujeto a    x + y = 4

L = x² + y² − λ(x + y − 4)

∂L/∂x = 2x − λ = 0    →   2x = λ
∂L/∂y = 2y − λ = 0    →   2y = λ
∂L/∂λ = x + y − 4 = 0

De las dos primeras: x = y.  Sustituyendo: 2x = 4, x = 2.

solución = (2, 2)      valor óptimo = 8,0
λ = 4

Interpretación de λ: si la restricción pasara a x+y = 5,
el óptimo subiría aproximadamente en 4 unidades.

Qué ejecuta el laboratorio

Restricción de igualdad resuelta con el Lagrangiano.

GrupoSalidas
Resultados numéricos (2)valor_optimo, lambda
Comprobaciones (1)es_el_minimo
compmath run 256

Errores conceptuales frecuentes

  1. Olvidar derivar respecto de λ y perder la restricción.
  2. Confundir el signo del multiplicador según la convención adoptada.
  3. Aplicar Lagrange directamente a restricciones de desigualdad.

Dónde se usa

SVM en su forma dual, distribución de máxima entropía, asignación óptima de recursos y entrenamiento con restricciones.

Bibliografía de la clase

257 · Condiciones KKT

Parte 12 · clase 17 de 20 · demostración kkt_conditions

La holgura complementaria formaliza que una restricción inactiva no influye.

estacionariedad: ∇f + Σμᵢ·∇gᵢ = 0
factibilidad: gᵢ(x) ≤ 0;   no negatividad: μᵢ ≥ 0
holgura complementaria: μᵢ·gᵢ(x) = 0

Fundamentos

Las condiciones de Karush-Kuhn-Tucker extienden Lagrange a restricciones de desigualdad, y son las condiciones necesarias de optimalidad que fundamentan toda la optimización con restricciones. En problemas convexos con cualificación de restricciones son además suficientes.

La novedad conceptual es que una desigualdad puede estar activa —el óptimo está justo sobre la frontera— o inactiva —el óptimo cae en el interior y la restricción no estorba—. La holgura complementaria μᵢ·gᵢ(x) = 0 codifica exactamente esa alternativa: o la restricción se cumple con igualdad, o su multiplicador es cero.

La lectura es directa e intuitiva: una restricción que no aprieta no tiene precio. Si el presupuesto sobra, un euro más no vale nada; si está agotado, su precio sombra es positivo. Esa dicotomía es lo que hace de KKT una herramienta de análisis y no solo de cálculo.

La condición de no negatividad de los multiplicadores es la que distingue las desigualdades de las igualdades: la restricción solo puede empujar en un sentido. Cuando todas las restricciones son de igualdad, KKT se reduce exactamente a Lagrange, y esa reducción confirma que es la generalización correcta.

Ejemplo trabajado

La misma función con dos restricciones distintas.

objetivo: minimizar (x − 3)²

Caso A — restricción activa:   x ≤ 1
  óptimo sin restricción: x = 3, no factible
  x* = 1                (sobre la frontera)
  gradiente del objetivo en x*: −4
  μ = 4 > 0
  holgura: μ·g(x*) = 4·(1−1) = 0                     ✓

Caso B — restricción inactiva: x ≤ 5
  óptimo sin restricción: x = 3, factible
  x* = 3                (en el interior)
  gradiente del objetivo en x*: 0
  μ = 0
  holgura: μ·g(x*) = 0·(3−5) = 0                     ✓

En ambos casos la holgura complementaria se cumple,
pero por motivos opuestos.

Qué ejecuta el laboratorio

KKT: restricciones de desigualdad activas e inactivas.

GrupoSalidas
Resultados numéricos (2)holgura_complementaria_activo, holgura_complementaria_inactivo
Comprobaciones (0)
compmath run 257

Errores conceptuales frecuentes

  1. Permitir multiplicadores negativos en restricciones de desigualdad.
  2. Olvidar comprobar la holgura complementaria al validar una solución.
  3. Aplicar KKT como condición suficiente en problemas no convexos.

Dónde se usa

SVM con margen blando, programación no lineal, optimización de carteras con límites y diseño de ingeniería con especificaciones.

Bibliografía de la clase

258 · Optimización cuadrática

Parte 12 · clase 18 de 20 · demostración quadratic_programming

Un programa cuadrático con Q definida positiva se resuelve por un solo sistema lineal.

min (1/2)xᵀQx + cᵀx  sujeto a  Ax = b
sistema KKT: [[Q, Aᵀ], [A, 0]]·[x; λ] = [−c; b]
convexo si Q es semidefinida positiva

Fundamentos

La programación cuadrática es la clase de problemas con objetivo cuadrático y restricciones lineales. Es la siguiente en complejidad después de la lineal, y sigue siendo tratable: si Q es semidefinida positiva el problema es convexo y tiene solución global.

Con restricciones de igualdad, las condiciones KKT son lineales en las incógnitas, y el problema entero se reduce a resolver un único sistema que agrupa variables y multiplicadores. No hace falta iterar: se plantea el sistema aumentado y se resuelve con los métodos de la parte 11.

Con restricciones de desigualdad aparece la dificultad combinatoria de decidir qué restricciones están activas en el óptimo. Los algoritmos de conjunto activo prueban combinaciones sistemáticamente; los de punto interior siguen una trayectoria por el interior de la región factible y son los que mejor escalan.

Los programas cuadráticos aparecen en sitios importantes: la formulación dual de las SVM es exactamente uno, la optimización de carteras de Markowitz es otro, y el control predictivo por modelo resuelve uno en cada instante de muestreo. Reconocer que un problema es un QP es reconocer que se puede resolver de forma fiable y rápida.

Ejemplo trabajado

QP de dos variables con una restricción de igualdad.

minimizar  x² + y² − 2x − 5y
sujeto a   x + y = 3

Q = [[2, 0]      c = (−2, −5)      A = [1  1]     b = 3
     [0, 2]]

Q definida positiva → problema convexo                ✓

Sistema KKT:
  [[2  0  1]   [x]     [ 2]
   [0  2  1] · [y]  =  [ 5]
   [1  1  0]]  [λ]     [ 3]

solución: x = 1,25   y = 1,75   λ = −0,5

Comprobación: 1,25 + 1,75 = 3                         ✓
El óptimo sin restricción sería (1 ; 2,5), que suma 3,5:
la restricción sí aprieta.

Qué ejecuta el laboratorio

Programa cuadrático resuelto por su sistema KKT.

GrupoSalidas
Resultados numéricos (3)multiplicador_lambda, restriccion_satisfecha, valor_objetivo
Comprobaciones (2)Q_definida_positiva, problema_convexo
compmath run 258

Errores conceptuales frecuentes

  1. Aplicar la solución directa cuando hay restricciones de desigualdad.
  2. No comprobar que Q es semidefinida positiva antes de suponer convexidad.
  3. Formar el sistema KKT con los signos cambiados.

Dónde se usa

SVM, optimización de carteras, control predictivo por modelo, ajuste con restricciones y problemas de mínimos cuadrados restringidos.

Bibliografía de la clase

259 · Optimización evolutiva

Parte 12 · clase 19 de 20 · demostración evolutionary_optimization

Sin gradiente y sobre funciones con muchos mínimos, una población busca mejor que un punto.

población → selección → cruce → mutación → nueva población
elitismo: conservar los k mejores intactos
coste: sin gradiente, muchas evaluaciones de f

Fundamentos

Los algoritmos evolutivos mantienen una población de soluciones candidatas y la hacen evolucionar por selección, recombinación y mutación. No necesitan gradiente ni continuidad, solo poder evaluar la función objetivo, y eso los hace aplicables donde los métodos basados en derivadas no llegan.

Su ventaja aparece en funciones multimodales, con muchos mínimos locales. La función de Rastrigin, con su rejilla de mínimos, atrapa al descenso de gradiente en el primer valle que encuentre. Una población dispersa explora simultáneamente muchas regiones y la selección concentra el esfuerzo donde hay señal.

El elitismo es un detalle de implementación con efecto grande: conservar intactos los mejores individuos garantiza que el óptimo encontrado no se pierda por azar en la siguiente generación. Sin él, el algoritmo puede empeorar entre generaciones y la convergencia deja de ser monótona.

El precio es el número de evaluaciones. Donde el descenso de gradiente necesita cientos, un evolutivo necesita decenas de miles, porque cada generación evalúa la población entera. La regla práctica es clara: si hay gradiente fiable, usarlo. Los evolutivos son para cuando no lo hay —búsqueda de arquitecturas, hiperparámetros discretos, simuladores como caja negra— o cuando la multimodalidad es severa.

Ejemplo trabajado

Algoritmo evolutivo sobre Rastrigin en dos dimensiones.

función: Rastrigin 2D, mínimo global en (0,0) con f = 0
población 60, generaciones 120, elitismo 12

generación    mejor f
     1        2,468792
    20        0,183441
    60        0,004127
   120        0,000062

mejor solución: (0,001375 ; 0,005583)

Rastrigin tiene un mínimo local aproximadamente en cada
punto de coordenadas enteras. El descenso de gradiente
desde un punto aleatorio se queda en el más cercano.

Coste: 60 × 120 = 7 200 evaluaciones de f
para un problema de 2 variables.

Qué ejecuta el laboratorio

Optimización evolutiva: sin gradiente, sobre una función multimodal.

GrupoSalidas
Resultados numéricos (4)poblacion, generaciones, elitismo, mejor_valor
Comprobaciones (1)sin_gradiente
compmath run 259

Errores conceptuales frecuentes

  1. Usar un evolutivo donde hay gradiente disponible y fiable.
  2. Prescindir del elitismo y perder el mejor individuo.
  3. Comparar con métodos de gradiente sin igualar el número de evaluaciones.

Dónde se usa

Búsqueda de arquitecturas neuronales, ajuste de hiperparámetros discretos, diseño de ingeniería con simuladores y optimización de funciones no derivables.

Bibliografía de la clase

260 · Capstone: banco de optimizadores comparables

Parte 12 · clase 20 de 20 · demostración capstone_optimizer_bench

El mismo learning rate que converge en una cuadrática diverge en Rosenbrock.

protocolo: mismo punto inicial, mismo lr, mismas iteraciones
reportar f final, ‖∇f‖ y si divergió
no existe un optimizador uniformemente mejor

Fundamentos

El capstone somete a siete optimizadores al mismo presupuesto —300 iteraciones, lr común, punto inicial idéntico— sobre dos problemas de dificultad muy distinta: una cuadrática bien condicionada y la función de Rosenbrock, con su valle curvo y estrecho.

El resultado principal es incómodo y verdadero: ningún optimizador gana en ambos. Momentum es el mejor en la cuadrática y diverge en Rosenbrock con el mismo paso. RMSProp gana en Rosenbrock precisamente porque su escalado adaptativo reduce el paso efectivo en las direcciones de gradiente grande. El descenso simple también diverge.

Que la divergencia aparezca en el banco no es un defecto del experimento: es su hallazgo más útil. Un lr = 0,02 perfectamente razonable en una cuadrática con L = 40 es suicida en un valle donde la curvatura local supera con creces ese valor. Esa es exactamente la situación de una red neuronal real, donde L cambia durante el entrenamiento.

La lección metodológica es que comparar optimizadores exige un protocolo: misma semilla, mismo punto inicial, mismo presupuesto de iteraciones y reporte explícito de los que divergieron. Un banco que oculta las divergencias, o que ajusta el lr de cada método por separado sin decirlo, produce rankings que no significan nada.

Ejemplo trabajado

Banco con presupuesto idéntico sobre dos problemas.

protocolo: 300 iteraciones, lr = 0,02, punto inicial fijo

método      cuadrática f      Rosenbrock
gd            9,2e-11          divergió
momentum      ~1e-14           divergió
nesterov      ~1e-14           convergió
adagrad       2,3e-04          convergió
rmsprop       6,9e-03          mejor
adam          5,9e-08          convergió
adamw         6,1e-08          convergió

mejor en cuadrática:  momentum
mejor en Rosenbrock:  rmsprop
divergieron en Rosenbrock: gd, momentum

El mismo lr no sirve para ambos problemas.
Reportar las divergencias es parte del resultado.

Qué ejecuta el laboratorio

Capstone: banco comparable de optimizadores con presupuesto idéntico.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (2)el_mismo_lr_no_sirve_para_ambos_problemas, ningun_optimizador_gana_siempre
compmath run 260

Errores conceptuales frecuentes

  1. Comparar optimizadores ajustando el lr de cada uno sin declararlo.
  2. Omitir del informe los métodos que divergieron.
  3. Generalizar el ganador de un banco a todos los problemas.

Dónde se usa

Selección de optimizador para un proyecto, benchmarking reproducible, diagnóstico de divergencias en entrenamiento y diseño de experimentos de ablación.

Bibliografía de la clase

Parte 13 — Teoría de la información, señales y series

Nivel avanzado · 20 clases · 80 horas · motor part13

Entropía, entropía cruzada, divergencias, información mutua, codificación, muestreo, convolución, Fourier, FFT, filtros y series temporales.

Esta parte contesta dos preguntas que parecen inconexas y resultan ser la misma. La primera: ¿cuánta información hay en un mensaje, y cuánto se puede comprimir sin perder nada? La segunda: ¿qué hay dentro de una señal, y cómo se extrae? Shannon respondió la primera en 1948 y Fourier la segunda en 1822, y ambas convergen en el aprendizaje automático moderno, donde la función de pérdida es una divergencia entre distribuciones y las capas son convoluciones.

Las clases 261 a 268 construyen la teoría de la información desde su ladrillo: la sorpresa −log p. Un evento seguro no sorprende, uno improbable sorprende mucho, y el logaritmo garantiza que la sorpresa de dos eventos independientes sea la suma de las suyas. La entropía es la sorpresa esperada, y el teorema de codificación de Shannon le da un significado operativo que no es metafórico: es el límite inferior exacto de bits por símbolo de cualquier compresión sin pérdida.

De ahí salen las medidas que usa el aprendizaje automático a diario. La entropía cruzada es el coste de codificar la distribución real con un código diseñado para otra, y minimizarla es exactamente maximizar la verosimilitud: la función de pérdida de casi todo clasificador no es una elección de diseño, es una consecuencia. La divergencia KL mide el exceso sobre el óptimo, y su asimetría no es un defecto sino información: KL(p‖q) y KL(q‖p) penalizan errores distintos, y esa diferencia decide el comportamiento de un VAE frente a una GAN. La información mutua cuantifica cuánto dice una variable sobre otra, y vale cero si y solo si son independientes, que es más de lo que la correlación puede garantizar.

Las clases 269 a 275 pasan a las señales. El teorema de Nyquist impone una frontera dura: hay que muestrear a más del doble de la frecuencia máxima presente, y por debajo de ese límite el aliasing es irreversible —no hay procesamiento posterior que recupere lo que se perdió—. La convolución aparece como el operador central, primero como filtrado y luego como el núcleo de las CNN, y Fourier revela que toda señal es una suma de sinusoides y que convolucionar en el tiempo es multiplicar en frecuencia. La FFT hace ese cambio de dominio computable: O(n log n) en vez de O(n²), lo que para un millón de muestras es la diferencia entre milisegundos y semanas.

El cierre (276 a 280) trata las series temporales: estacionariedad como supuesto que casi todo el análisis clásico necesita, autocorrelación para descubrir periodicidad oculta, ventaneo y la fuga espectral que provoca analizar un trozo finito, y densidad espectral. El capstone recorre el camino completo: de una señal cruda a un vector de características temporales y espectrales listo para alimentar un modelo.

El puente con la inteligencia artificial es explícito en cada bloque. La entropía cruzada es la pérdida de todo clasificador; el VAE optimiza un ELBO con un término KL; las GAN se analizaron originalmente en términos de divergencia de Jensen-Shannon; las CNN son convoluciones con núcleos aprendidos; la atención es una correlación normalizada; y la codificación posicional de un Transformer son senos y cosenos de frecuencias distintas.

Ideas centrales

Por qué importa en IA

La función de pérdida de casi todo clasificador es entropía cruzada; el VAE optimiza un ELBO con un término KL; las CNN son convoluciones aprendidas.

Errores frecuentes de la parte

Glosario de la parte (34 términos)

TérminoDefiniciónClase
AliasingFrecuencias altas que aparecen como bajas al muestrear demasiado lento. Es irreversible.270
Asimetría de KLKL(p‖q) ≠ KL(q‖p). Cada dirección penaliza un tipo distinto de error.264
AutocorrelaciónCorrelación de la serie consigo misma desplazada. Revela periodicidad oculta.277
Bit y natUnidades de información según se use log₂ o logaritmo natural. 1 nat ≈ 1,4427 bits.261
Centroide espectralFrecuencia media ponderada por potencia. Descriptor del brillo de una señal.280
ConvoluciónDeslizar un núcleo invertido sobre una señal y sumar productos. Base del filtrado y de las CNN.271
Correlación cruzadaComo la convolución pero sin invertir el núcleo. Es lo que implementan las CNN.272
Código de HuffmanCódigo de longitud variable óptimo entre los de prefijo, con símbolos frecuentes más cortos.268
Código de prefijoNingún código es prefijo de otro, lo que permite decodificar sin separadores.268
Densidad espectral de potenciaReparto de la energía de la señal entre sus frecuencias.279
DiferenciaciónRestar el valor anterior a cada término. Elimina tendencias polinómicas.276
Distribución uniforme y entropíaEntre distribuciones sobre n símbolos, la uniforme es la de máxima entropía: log n.262
Divergencia de Jensen-ShannonMedia de las KL a la mezcla. Simétrica, acotada y su raíz es una métrica.265
Divergencia KLKL(p‖q) = H(p,q) − H(p). No negativa, cero solo si p = q, y no simétrica.264
Entropía cruzadaH(p,q) = −Σ p·log q. Coste de codificar p con un código óptimo para q.263
Entropía de ShannonH(p) = −Σ p·log p. Sorpresa esperada y límite inferior de compresión sin pérdida.262
Epsilon de estabilidadConstante minúscula que evita log(0) al calcular pérdidas logarítmicas.263
EstacionariedadMedia, varianza y autocovarianza que no cambian con el tiempo.276
FFTAlgoritmo que calcula la DFT en O(n log n) en vez de O(n²).274
Filtro paso-bajoAtenúa las frecuencias altas y conserva las bajas. Una media móvil es el caso más simple.275
Frecuencia de muestreoNúmero de muestras por segundo tomadas de una señal continua.269
Fuga espectralEnergía que se dispersa a frecuencias vecinas al analizar un trozo finito de señal.278
Independencia e informaciónI(X;Y) = 0 si y solo si X e Y son independientes. Detecta relaciones no lineales.266
Información mutuaI(X;Y) = H(X) − H(X|Y). Reducción de incertidumbre sobre X al conocer Y.266
Núcleo o kernelVector o matriz pequeña que define la operación local de una convolución.271
Principio de máxima entropíaEntre las distribuciones compatibles con lo conocido, elegir la de mayor entropía.267
Respuesta en frecuenciaCuánto atenúa o amplifica un filtro cada frecuencia.275
Retardo o lagDesplazamiento temporal aplicado a la serie al calcular la autocorrelación.277
Sorpresa−log p(x). Información que aporta observar un evento. Cero si era seguro.261
Teorema de convoluciónConvolucionar en el tiempo equivale a multiplicar en frecuencia.274
Teorema de NyquistHay que muestrear a más del doble de la frecuencia máxima presente en la señal.270
Teorema de ParsevalLa energía en el dominio del tiempo es igual a la energía en el dominio de la frecuencia.273
Transformada de FourierDescompone una señal en sus componentes de frecuencia. Cambio de base a senos y cosenos.273
VentaneoMultiplicar por una función que decae en los bordes antes de transformar.278

Bibliografía de la parte

261 · Información y sorpresa

Parte 13 · clase 1 de 20 · demostración surprise

La información de un evento es su sorpresa, y el logaritmo la hace aditiva.

I(x) = −log₂ p(x)   en bits
p = 1  ⟹  I = 0;   p → 0  ⟹  I → ∞
eventos independientes: I(x,y) = I(x) + I(y)

Fundamentos

Antes de definir entropía hay que definir cuánta información aporta un solo evento. La respuesta de Shannon es que la información es sorpresa: enterarse de algo que ya se daba por seguro no aporta nada, y enterarse de algo improbable aporta mucho.

La función que cumple eso es −log p. Vale cero cuando p = 1 y tiende a infinito cuando p tiende a cero, con la forma correcta. Y no es una elección arbitraria: es la única función continua que satisface la propiedad de aditividad, salvo un factor de escala.

La aditividad es la exigencia clave. Si dos eventos son independientes, la información de observar ambos debe ser la suma de las informaciones individuales. Como las probabilidades se multiplican y los logaritmos convierten productos en sumas, el logaritmo es la única vía. Es la misma razón por la que se trabaja con log-verosimilitud.

La base del logaritmo fija la unidad. Con base 2 la información se mide en bits, y un bit es exactamente la información de un lanzamiento de moneda justa. Con logaritmo natural se mide en nats, y es lo habitual en aprendizaje automático porque su derivada es más limpia. Comparar entropías calculadas en bases distintas sin convertir es un error frecuente: el factor es 1,4427.

Ejemplo trabajado

Sorpresa de cuatro eventos con probabilidades muy distintas.

evento          p          I = −log₂ p
casi seguro    0,99          0,0145 bits
frecuente      0,50          1,0000 bits
raro           0,01          6,6439 bits
rarísimo       0,001         9,9658 bits

Un evento de p = 1 aporta exactamente 0 bits.

Aditividad: dos lanzamientos independientes de moneda
  I(cara, cara) = −log₂(0,25) = 2,0 bits
  I(cara) + I(cara) = 1,0 + 1,0 = 2,0 bits            ✓

Conversión de unidades:
  1 nat = 1,4427 bits        1 bit = 0,6931 nats

Qué ejecuta el laboratorio

La sorpresa de un evento es -log de su probabilidad.

GrupoSalidas
Resultados numéricos (3)un_evento_de_p=1_no_sorprende, aditiva_para_independientes, suma_de_sorpresas
Comprobaciones (0)
compmath run 261

Errores conceptuales frecuentes

  1. Comparar informaciones calculadas en bases logarítmicas distintas.
  2. Calcular −log p con p = 0 sin epsilon de estabilidad.
  3. Confundir información con utilidad o relevancia del evento.

Dónde se usa

Diseño de códigos, medida de sorpresa de un modelo ante datos nuevos, detección de anomalías y cuantificación de la incertidumbre de una predicción.

Bibliografía de la clase

262 · Entropía de Shannon

Parte 13 · clase 2 de 20 · demostración shannon_entropy

La entropía es el número mínimo de bits por símbolo que cualquier compresor puede lograr.

H(p) = −Σ p(x)·log₂ p(x)
0 ≤ H(p) ≤ log₂ n
H = 0 si es determinista;  H = log₂ n si es uniforme

Fundamentos

La entropía es la sorpresa esperada: la media de −log p ponderada por las propias probabilidades. Mide la incertidumbre media de una fuente antes de observar su salida, y es el concepto central de toda la teoría.

Su interpretación operativa es la que le da fuerza. El teorema de codificación de fuente de Shannon dice que ningún código sin pérdida puede usar menos de H bits por símbolo en promedio, y que existen códigos que se acercan arbitrariamente a ese límite. No es una cota heurística: es una imposibilidad demostrada.

Los dos extremos son informativos. Una fuente determinista tiene entropía cero: no hace falta transmitir nada porque el receptor ya sabe qué viene. Una fuente uniforme sobre n símbolos tiene entropía log₂ n, la máxima posible: no hay estructura que explotar y no se puede comprimir por debajo de la codificación de longitud fija.

Toda compresión vive entre esos extremos, y explota que las distribuciones reales no son uniformes. En aprendizaje automático la entropía aparece además como medida de incertidumbre de una predicción: una salida softmax casi uniforme tiene entropía alta y el modelo está dudando, lo que sirve como señal para aprendizaje activo o para rechazar la predicción.

Ejemplo trabajado

Entropía de cuatro distribuciones sobre el mismo alfabeto.

distribución                        H (bits)
uniforme sobre 4 símbolos            2,0000    ← máxima
sesgada [0,7 ; 0,15 ; 0,1 ; 0,05]    1,2568
moneda justa (2 símbolos)            1,0000
determinista                         0,0000    ← mínima

Máximo teórico para 4 símbolos: log₂ 4 = 2,0     ✓

La misma uniforme en nats: ln 4 = 1,3863 nats
Conversión: 1,3863 × 1,4427 = 2,0 bits           ✓

Lectura: la fuente sesgada necesita 1,26 bits por símbolo
en el mejor código posible, frente a los 2 de la uniforme.

Qué ejecuta el laboratorio

La entropía es la sorpresa esperada y el límite de compresión.

GrupoSalidas
Resultados numéricos (2)maxima_para_4_simbolos, entropia_en_nats_uniforme
Comprobaciones (2)la_uniforme_maximiza, la_determinista_es_0
compmath run 262

Errores conceptuales frecuentes

  1. Interpretar la entropía como cantidad de datos y no como bits por símbolo.
  2. Comparar entropías de alfabetos de tamaños distintos sin normalizar.
  3. Olvidar que el límite de Shannon supone símbolos independientes.

Dónde se usa

Compresión de datos, medida de incertidumbre en predicciones, criterio de división en árboles de decisión y aprendizaje activo.

Bibliografía de la clase

263 · Entropía cruzada

Parte 13 · clase 3 de 20 · demostración cross_entropy

Minimizar entropía cruzada es exactamente maximizar la verosimilitud.

H(p,q) = −Σ p(x)·log q(x)
H(p,q) = H(p) + KL(p‖q) ≥ H(p)
con p one-hot: H(p,q) = −log q(clase correcta)

Fundamentos

La entropía cruzada mide el coste medio de codificar mensajes que vienen de p usando un código diseñado para q. Si q = p el coste es el óptimo H(p); si q se aleja, el coste sube. Nunca puede bajar del óptimo, y esa desigualdad es la que garantiza que minimizarla lleve en la dirección correcta.

Su descomposición H(p,q) = H(p) + KL(p‖q) es la clave para entender qué se está optimizando. La entropía H(p) es una propiedad de los datos y no depende del modelo, así que minimizar entropía cruzada es minimizar la divergencia KL entre la distribución real y la predicha. Son el mismo problema.

En clasificación, la distribución real es one-hot —toda la masa en la clase correcta— y la fórmula colapsa a −log q(clase correcta). La pérdida solo depende de la probabilidad asignada a la respuesta correcta, y crece sin límite cuando esa probabilidad tiende a cero. De ahí que un modelo muy seguro y equivocado reciba un castigo enorme.

La consecuencia teórica es que la pérdida de casi todo clasificador no se elige: se deduce. Suponer un modelo categórico y maximizar verosimilitud da entropía cruzada; suponer ruido gaussiano da error cuadrático medio. Y la consecuencia práctica es el epsilon: sin él un log(0) produce infinito y destruye el entrenamiento en un paso.

Ejemplo trabajado

Pérdida de tres predicciones ante la misma etiqueta real.

etiqueta real: [1, 0, 0]        H(p) = 0

predicción              pérdida
[0,90 ; 0,05 ; 0,05]    0,105361     muy buena
[0,50 ; 0,30 ; 0,20]    0,693147     mediocre
[0,05 ; 0,60 ; 0,35]    2,995732     mala y segura

predicción perfecta [1,0,0]: pérdida = 0,0

Como H(p) = 0, aquí la entropía cruzada ES la KL.

Sin epsilon:
  predicción 0,0 para la clase correcta → log(0) = −∞
  el gradiente se vuelve NaN y el entrenamiento muere.

Qué ejecuta el laboratorio

Entropía cruzada: el coste de codificar p con un código para q.

GrupoSalidas
Resultados numéricos (2)prediccion_perfecta, H(p)
Comprobaciones (2)CE = H(p) + KL(p||q), es_la_perdida_de_todo_clasificador
compmath run 263

Errores conceptuales frecuentes

  1. Calcular log(0) sin epsilon de estabilidad.
  2. Aplicar entropía cruzada a salidas que no suman 1.
  3. Duplicar el softmax cuando la función de pérdida ya lo incluye.

Dónde se usa

Pérdida de clasificación en cualquier red, modelos de lenguaje, calibración de probabilidades y evaluación de modelos probabilísticos.

Bibliografía de la clase

264 · Divergencia KL

Parte 13 · clase 4 de 20 · demostración kl_divergence

KL no es simétrica, y cada dirección castiga un error distinto.

KL(p‖q) = Σ p·log(p/q) ≥ 0
KL(p‖q) = 0 ⟺ p = q
KL(p‖q) ≠ KL(q‖p);  no cumple la desigualdad triangular

Fundamentos

La divergencia de Kullback-Leibler mide cuánta información se pierde al usar q en lugar de p. Es el exceso de entropía cruzada sobre la entropía: los bits desperdiciados por usar el código equivocado. Es no negativa y vale cero solo si las distribuciones coinciden.

Pese a llamarse divergencia y comportarse en parte como una distancia, no lo es. Le fallan dos propiedades: no es simétrica y no cumple la desigualdad triangular. Escribir «la distancia KL» es un error de vocabulario que arrastra errores de razonamiento.

La asimetría no es un defecto: es información. KL(p‖q) penaliza mucho que q asigne casi cero donde p tiene masa, así que fuerza a q a cubrir todo el soporte de p. Al revés, KL(q‖p) penaliza que q ponga masa donde p no la tiene, y produce soluciones que se concentran en un modo. Se conocen como comportamiento de cobertura y de búsqueda de modo.

Esa diferencia tiene consecuencias visibles. La inferencia variacional minimiza KL(q‖p) y por eso los VAE tienden a producir muestras borrosas concentradas en el modo dominante. Elegir la dirección de la KL no es un detalle técnico: determina el comportamiento cualitativo del modelo resultante.

Ejemplo trabajado

Las dos direcciones sobre las mismas distribuciones.

p = [0,5 ; 0,3 ; 0,2]
q = [0,3 ; 0,4 ; 0,3]

KL(p‖q) = 0,08801517
KL(q‖p) = 0,08346467

No coinciden → no es simétrica                       ✓
KL(p‖p) = 0,0                                        ✓

Asimetría extrema: si q asignara 0,001 donde p tiene 0,5,
  KL(p‖q) se dispara      (castiga no cubrir)
  KL(q‖p) apenas cambia   (no le importa)

Por eso KL(p‖q) fuerza cobertura y KL(q‖p) busca modo.

Qué ejecuta el laboratorio

KL: no simétrica y no es una distancia.

GrupoSalidas
Resultados numéricos (3)KL(p||q), KL(q||p), KL(p||p)
Comprobaciones (3)simetrica, siempre_no_negativa, no_cumple_desigualdad_triangular
compmath run 264

Errores conceptuales frecuentes

  1. Llamarla distancia y aplicarle propiedades métricas.
  2. Elegir la dirección de la KL sin pensar en qué error se quiere penalizar.
  3. Calcularla con q nula en algún punto donde p es positiva.

Dónde se usa

Regularización de VAE, inferencia variacional, destilación de conocimiento, detección de desplazamiento de distribución y PPO en aprendizaje por refuerzo.

Bibliografía de la clase

265 · Jensen-Shannon divergence

Parte 13 · clase 5 de 20 · demostración js_divergence

Jensen-Shannon simetriza la KL midiendo ambas contra la mezcla.

M = (p + q)/2
JS(p,q) = ½·KL(p‖M) + ½·KL(q‖M)
0 ≤ JS ≤ 1 bit;  √JS es una métrica

Fundamentos

La divergencia de Jensen-Shannon arregla los dos defectos de la KL con una idea simple: construir la mezcla de ambas distribuciones y medir la divergencia de cada una a esa mezcla, promediando. El resultado es simétrico por construcción.

Además está acotada: nunca supera 1 bit, sea cual sea el par de distribuciones. La KL puede ser infinita cuando q asigna cero donde p no lo hace; JS no tiene ese problema porque la mezcla siempre cubre el soporte de ambas. Eso la hace numéricamente mucho más estable como medida de comparación.

Y su raíz cuadrada sí es una métrica: cumple simetría, desigualdad triangular y se anula solo en la identidad. Eso permite usarla como distancia genuina para agrupar, indexar o comparar distribuciones, cosa que con KL no es legítima.

Su papel histórico en aprendizaje automático es notable: el artículo original de las GAN demostró que el discriminador óptimo hace que el generador minimice la divergencia JS entre la distribución real y la generada. Que esa divergencia sature cuando los soportes no se solapan es parte de la explicación de la inestabilidad de las GAN, y la razón de que WGAN cambiara a la distancia de Wasserstein.

Ejemplo trabajado

JS sobre el mismo par que la clase anterior.

p = [0,5 ; 0,3 ; 0,2]
q = [0,3 ; 0,4 ; 0,3]

mezcla M = [0,4 ; 0,35 ; 0,25]

JS(p,q) = 0,0306589 bits
JS(q,p) = 0,0306589 bits
simétrica                                            ✓

Comparación con KL:
  KL(p‖q) = 0,0880      KL(q‖p) = 0,0835
  JS      = 0,0307      menor y única

Cota: JS ≤ 1 bit siempre.
Para distribuciones con soportes disjuntos, JS = 1 exacto,
mientras que KL sería infinita.

Qué ejecuta el laboratorio

Jensen-Shannon: simétrica y acotada.

GrupoSalidas
Resultados numéricos (4)JS(p,q)_bits, JS(q,p)_bits, distribuciones_disjuntas, cota_superior_en_bits
Comprobaciones (2)simetrica, sqrt(JS)_es_una_metrica
compmath run 265

Errores conceptuales frecuentes

  1. Usar JS donde la asimetría de KL era justamente lo que se quería.
  2. Confundir JS con su raíz cuadrada al hablar de métrica.
  3. Olvidar que JS satura cuando los soportes no se solapan.

Dónde se usa

Análisis de GAN, comparación de distribuciones de datos, agrupamiento de documentos y medida de similitud entre modelos.

Bibliografía de la clase

266 · Información mutua

Parte 13 · clase 6 de 20 · demostración mutual_information

La información mutua vale cero solo si hay independencia, y detecta lo que la correlación no ve.

I(X;Y) = H(X) − H(X|Y) = H(Y) − H(Y|X)
I(X;Y) = KL(p(x,y) ‖ p(x)·p(y))
I(X;Y) = 0  ⟺  X ⫫ Y

Fundamentos

La información mutua mide cuánto se reduce la incertidumbre sobre una variable al conocer la otra. Es simétrica —saber Y informa sobre X tanto como al revés— y se expresa como la diferencia entre la entropía y la entropía condicional.

Su lectura más profunda es la tercera fórmula: es la divergencia KL entre la distribución conjunta y el producto de las marginales. Como la KL vale cero solo si las distribuciones coinciden, y coincidir con el producto de marginales es la definición de independencia, la información mutua es cero si y solo si las variables son independientes.

Esa equivalencia es lo que la hace superior a la correlación como medida de dependencia. La correlación de la clase 191 solo detecta relaciones lineales, y vale cero para una dependencia cuadrática perfecta. La información mutua detecta cualquier dependencia, lineal o no, monótona o no.

El precio es la estimación. Con variables discretas y datos suficientes se calcula directamente contando; con variables continuas hay que estimar densidades, y eso es difícil en dimensión alta. Los estimadores neuronales como MINE son un área activa, precisamente porque la información mutua aparece en el objetivo del aprendizaje autosupervisado contrastivo.

Ejemplo trabajado

Dos conjuntas con las mismas marginales y dependencia distinta.

Caso dependiente:
  p(0,0)=0,4   p(0,1)=0,1
  p(1,0)=0,1   p(1,1)=0,4

  H(X) = 1,0 bits      H(Y) = 1,0 bits
  I(X;Y) = 0,278072 bits

Caso independiente (mismas marginales):
  p(x,y) = p(x)·p(y) = 0,25 en las cuatro celdas
  I(X;Y) = 0,0                                       ✓

Ventaja sobre la correlación:
  con Y = X² y X simétrica, corr = 0 pero I > 0.
  La información mutua ve la dependencia; la correlación no.

Qué ejecuta el laboratorio

Información mutua: cuánto reduce Y la incertidumbre de X.

GrupoSalidas
Resultados numéricos (4)H(X), H(Y), I(X;Y), I_en_el_caso_independiente
Comprobaciones (2)I=0_sii_independientes, I(X;Y)=H(X)-H(X|Y)
compmath run 266

Errores conceptuales frecuentes

  1. Estimarla en variables continuas sin cuidar la discretización.
  2. Interpretarla como medida de causalidad.
  3. Compararla entre problemas con alfabetos de tamaños distintos sin normalizar.

Dónde se usa

Selección de características, aprendizaje autosupervisado contrastivo, análisis del cuello de botella de información y registro de imágenes médicas.

Bibliografía de la clase

267 · Principio de máxima entropía

Parte 13 · clase 7 de 20 · demostración max_entropy

Entre todas las distribuciones compatibles con lo que se sabe, elegir la que menos añade.

maximizar H(p) sujeto a las restricciones conocidas
sin restricciones ⟹ uniforme
media y varianza fijadas ⟹ normal

Fundamentos

El principio de máxima entropía responde a una pregunta de modelado: si solo se conocen algunas propiedades de una distribución, ¿cuál elegir entre todas las compatibles? La respuesta es la de máxima entropía, porque es la que menos supuestos añade a lo que realmente se sabe.

Cualquier otra elección introduce estructura que los datos no respaldan. Elegir una distribución de entropía menor equivale a afirmar que se sabe más de lo que se sabe, y esa información inventada puede sesgar todas las conclusiones posteriores. Es el principio de honestidad epistémica traducido a matemáticas.

Las soluciones bajo distintas restricciones son notablemente reconocibles, y no por casualidad. Sin restricciones sale la uniforme. Fijando media y varianza sale la normal. Fijando solo la media en el semieje positivo sale la exponencial. Las distribuciones «naturales» de la estadística son las de máxima entropía bajo las restricciones más simples.

El resultado más relevante para la inteligencia artificial es que la distribución de máxima entropía sujeta a restricciones lineales tiene forma exponencial, y de ahí sale softmax. La capa de salida de todo clasificador es la distribución de máxima entropía compatible con los logits. Softmax no es una normalización conveniente: es la respuesta a un problema de optimización con restricciones.

Ejemplo trabajado

Tres distribuciones sobre un dado y sus entropías.

candidata               H (bits)     media
uniforme                 2,584963     3,5
sesgada al 6             2,160964     4,5
casi determinista        0,xxx        1,3

Máximo teórico para 6 símbolos: log₂ 6 = 2,584963      ✓

Sin restricciones, gana la uniforme.

Si se supiera que la media es 4,5, la uniforme dejaría de
ser admisible y la de máxima entropía sería una exponencial
truncada, no la sesgada arbitraria.

Con media y varianza fijadas sobre la recta real:
  la distribución de máxima entropía es la normal.

Qué ejecuta el laboratorio

Principio de máxima entropía: la distribución menos comprometida.

GrupoSalidas
Resultados numéricos (1)entropia_maxima_teorica
Comprobaciones (1)sin_restricciones_gana_la_uniforme
compmath run 267

Errores conceptuales frecuentes

  1. Elegir una distribución cómoda en vez de la de máxima entropía compatible.
  2. Imponer restricciones que los datos no respaldan.
  3. Confundir máxima entropía con ausencia total de supuestos.

Dónde se usa

Justificación de softmax, modelos de máxima entropía en procesamiento de lenguaje, elección de priores no informativos y física estadística.

Bibliografía de la clase

268 · Codificación y compresión

Parte 13 · clase 8 de 20 · demostración coding_compression

Huffman da códigos cortos a lo frecuente y se acerca al límite de Shannon.

longitud media = Σ p(x)·len(código(x))
H(p) ≤ longitud media < H(p) + 1
código de prefijo: ninguno es prefijo de otro

Fundamentos

La compresión sin pérdida explota que los símbolos no son equiprobables. Un código de longitud fija gasta ⌈log₂ n⌉ bits por símbolo sea cual sea su frecuencia; uno de longitud variable puede gastar menos en los frecuentes y más en los raros, reduciendo el promedio.

La condición para que eso funcione sin separadores es que sea un código de prefijo: ningún código puede ser el comienzo de otro. Así el decodificador sabe dónde termina cada símbolo sin marcadores adicionales. La construcción de Huffman garantiza esa propiedad por diseño, fusionando repetidamente los dos símbolos menos probables en un árbol binario.

Huffman es óptimo entre los códigos de prefijo de símbolo a símbolo, y su longitud media queda siempre a menos de un bit por encima de la entropía. Esa cota es ajustada: la pérdida viene de que las longitudes deben ser enteras, y las probabilidades rara vez son potencias de dos.

Para acercarse más al límite hay que codificar bloques de símbolos o abandonar la restricción de longitudes enteras, que es lo que hace la codificación aritmética. Los compresores modernos combinan modelado estadístico con codificación aritmética, y los modelos de lenguaje son, vistos desde aquí, modelos de compresión: minimizar la pérdida es minimizar los bits necesarios para transmitir el texto.

Ejemplo trabajado

Código de Huffman para cinco símbolos con frecuencias dispares.

símbolo   p        código Huffman   longitud
  a      0,45          0                1
  b      0,25          10               2
  c      0,15          110              3
  d      0,10          1111             4
  e      0,05          1110             4

longitud media = 0,45·1 + 0,25·2 + 0,15·3 + 0,10·4 + 0,05·4
               = 2,0 bits/símbolo

entropía = 1,977235 bits/símbolo
cota: 1,9772 ≤ 2,0 < 2,9772                          ✓

longitud fija necesaria: ⌈log₂ 5⌉ = 3 bits
ahorro: 33,3 %

Prefijo: ningún código empieza por otro → decodificable.

Qué ejecuta el laboratorio

Código de Huffman frente a codificación de longitud fija.

GrupoSalidas
Resultados numéricos (4)longitud_media_bits, entropia_bits, longitud_fija_necesaria, ahorro_vs_longitud_fija_%
Comprobaciones (2)cumple_la_cota_de_Shannon, codigo_libre_de_prefijos
compmath run 268

Errores conceptuales frecuentes

  1. Construir un código de longitud variable que no sea de prefijo.
  2. Esperar alcanzar exactamente la entropía con longitudes enteras.
  3. Aplicar Huffman a fuentes con fuerte dependencia entre símbolos sin modelarla.

Dónde se usa

Compresión de archivos y de imágenes, tokenización BPE, codificación de entropía en vídeo y evaluación de modelos de lenguaje por bits por carácter.

Bibliografía de la clase

269 · Señales discretas y continuas

Parte 13 · clase 9 de 20 · demostración signals

Muestrear convierte una función continua en una lista de números con la que se puede calcular.

x(t) = A·sin(2πft + φ)
x[n] = x(n/fs),  n = 0,1,…,N−1
duración = N / fs

Fundamentos

Una señal es una magnitud que varía con el tiempo o el espacio. En el mundo físico es continua: definida para todo instante y con precisión infinita. Un ordenador solo puede manejar señales discretas: una secuencia finita de números.

El paso de una a otra tiene dos etapas independientes. El muestreo discretiza el tiempo, tomando valores a intervalos regulares. La cuantización discretiza la amplitud, redondeando cada valor a un número finito de niveles. El muestreo tiene una teoría exacta —Nyquist—; la cuantización introduce un ruido que se caracteriza estadísticamente.

Tres parámetros describen una sinusoide y merecen distinguirse bien. La amplitud es la altura del pico, la frecuencia es cuántos ciclos ocurren por segundo, y la fase es el desplazamiento horizontal. La transformada de Fourier de la clase 273 devuelve amplitud y fase para cada frecuencia, y la fase es la parte que casi siempre se ignora al graficar y que resulta ser esencial para reconstruir la señal.

La frecuencia de muestreo es la decisión de diseño más importante y la que no se puede corregir después. Muestrear de más gasta memoria y cómputo; muestrear de menos destruye información de forma irreversible, y la clase siguiente explica por qué.

Ejemplo trabajado

Una sinusoide muestreada durante un segundo.

señal:  x(t) = 2,0 · sin(2π · 5,0 · t + 0,785398)

  amplitud   A = 2,0
  frecuencia f = 5,0 Hz    → 5 ciclos en 1 segundo
  fase       φ = 0,785398 rad = π/4 = 45°

muestreo:
  fs = 100,0 Hz        duración = 1,0 s
  muestras = 100

muestras por ciclo: 100 / 5 = 20        holgado

Frecuencia de Nyquist: 100/2 = 50 Hz
La señal de 5 Hz está muy por debajo: sin aliasing.

Qué ejecuta el laboratorio

Señal continua muestreada: amplitud, frecuencia y fase.

GrupoSalidas
Resultados numéricos (9)frecuencia_de_muestreo_Hz, duracion_s, muestras, frecuencia_de_la_señal_Hz, amplitud, fase_rad, maximo_observado, energia, periodo_en_muestras
Comprobaciones (0)
compmath run 269

Errores conceptuales frecuentes

  1. Confundir frecuencia de la señal con frecuencia de muestreo.
  2. Ignorar la fase al analizar o reconstruir una señal.
  3. Fijar la frecuencia de muestreo sin conocer el contenido espectral esperado.

Dónde se usa

Audio digital, sensores e IoT, adquisición de datos biomédicos y preprocesamiento de series para modelos.

Bibliografía de la clase

270 · Muestreo y aliasing

Parte 13 · clase 10 de 20 · demostración sampling_aliasing

Por debajo de Nyquist la información se pierde y ningún procesamiento la recupera.

fs > 2·f_max   (criterio de Nyquist)
frecuencia de Nyquist = fs / 2
f aparente = |f − k·fs| para el k que la lleve bajo fs/2

Fundamentos

El teorema de muestreo de Nyquist-Shannon establece que una señal cuyo contenido no supera f_max puede reconstruirse exactamente a partir de muestras tomadas a más de 2·f_max por segundo. Es un resultado sorprendentemente fuerte: no una aproximación, sino reconstrucción perfecta desde datos discretos.

Por debajo de ese umbral aparece el aliasing: las frecuencias altas se hacen pasar por bajas. Una señal de 11 Hz muestreada a 20 Hz produce exactamente las mismas muestras que una de 9 Hz, y ninguna operación posterior puede distinguirlas porque los datos son idénticos. La información no está degradada: está ausente.

El efecto es visible en la vida cotidiana. Las ruedas que parecen girar hacia atrás en el cine son aliasing temporal a 24 fotogramas por segundo. Los patrones de muaré en fotos de tejidos o pantallas son aliasing espacial. En todos los casos el sistema muestrea más lento que la frecuencia del patrón observado.

La única defensa es un filtro antialiasing analógico antes de muestrear, que elimine físicamente las frecuencias por encima de fs/2. Es imprescindible que sea antes: una vez tomadas las muestras, el daño está hecho. En redes convolucionales, hacer submuestreo sin suavizado previo produce exactamente el mismo problema, y es una de las causas conocidas de falta de invariancia a traslaciones.

Ejemplo trabajado

Muestreo a 20 Hz de señales de distintas frecuencias.

fs = 20 Hz      frecuencia de Nyquist = 10 Hz

señal      ¿cumple Nyquist?    frecuencia aparente
3 Hz             sí                  3 Hz
9 Hz             sí                  9 Hz
11 Hz            no                  9 Hz    ← alias
19 Hz            no                  1 Hz    ← alias
21 Hz            no                  1 Hz    ← alias

11 Hz y 9 Hz producen muestras idénticas: son
indistinguibles a partir de los datos.

El aliasing es irreversible.
Solución: filtro paso-bajo analógico antes del conversor.

Qué ejecuta el laboratorio

Nyquist: muestrear por debajo del límite crea una señal falsa.

GrupoSalidas
Resultados numéricos (2)frecuencia_de_muestreo_Hz, frecuencia_de_nyquist_Hz
Comprobaciones (2)11Hz_se_ve_como_9Hz, el_aliasing_es_irreversible
compmath run 270

Errores conceptuales frecuentes

  1. Muestrear por debajo de Nyquist y culpar al modelo del ruido resultante.
  2. Aplicar el filtro antialiasing después del muestreo.
  3. Submuestrear en una CNN sin suavizado previo.

Dónde se usa

Diseño de sistemas de adquisición, audio y vídeo digital, submuestreo en redes convolucionales y remuestreo de series temporales.

Bibliografía de la clase

271 · Convolución

Parte 13 · clase 11 de 20 · demostración convolution

Convolucionar es deslizar un núcleo y sumar productos: filtrar y detectar son lo mismo.

(f * g)[n] = Σₖ f[k]·g[n−k]
media móvil: núcleo [1/3, 1/3, 1/3]
detector de bordes: núcleo [−1, 0, 1]

Fundamentos

La convolución desliza un núcleo sobre una señal y en cada posición calcula una suma ponderada de los valores vecinos. Es la operación fundamental del procesamiento de señales y, desde 2012, la operación fundamental de la visión por computador.

Lo notable es cuánto cambia el comportamiento con el núcleo, siendo la operación idéntica. Un núcleo de valores iguales y positivos promedia y por tanto suaviza, eliminando ruido de alta frecuencia. Un núcleo antisimétrico como [−1, 0, 1] resta vecinos y por tanto detecta cambios: es una derivada discreta y responde a los bordes.

La diferencia entre convolución y correlación cruzada es que la primera invierte el núcleo antes de deslizarlo. Esa inversión importa en teoría de sistemas, donde garantiza propiedades como la conmutatividad. En aprendizaje profundo no importa: como el núcleo se aprende, aprender el invertido es equivalente, y por eso lo que las bibliotecas llaman convolución es técnicamente correlación cruzada.

La razón de que las CNN funcionen está en dos propiedades de la convolución. Los parámetros se comparten: el mismo núcleo se aplica en toda la señal, así que un detector de bordes aprendido sirve en cualquier posición. Y la conectividad es local: cada salida depende solo de un vecindario. Ambas cosas reducen drásticamente el número de parámetros e incorporan la invariancia a traslaciones como sesgo inductivo.

Ejemplo trabajado

Dos núcleos sobre la misma señal triangular.

señal: [0, 1, 2, 3, 2, 1, 0]

núcleo media móvil [1/3, 1/3, 1/3]:
  resultado: [1,0 ; 2,0 ; 2,333 ; 2,0 ; 1,0]
  la señal se suaviza, los picos se rebajan

núcleo detector de bordes [−1, 0, 1]:
  resultado: [−2, −2, 0, 2, 2]
  responde donde la señal cambia, y cero en el pico

longitud de salida en modo válido: 7 − 3 + 1 = 5

Misma operación, comportamientos opuestos:
todo depende de los coeficientes del núcleo.

Qué ejecuta el laboratorio

Convolución discreta: el operador de las CNN.

GrupoSalidas
Resultados numéricos (2)longitud_valida, longitud_completa
Comprobaciones (2)es_conmutativa, en_frecuencia_es_multiplicacion
compmath run 271

Errores conceptuales frecuentes

  1. Confundir convolución con correlación cruzada al portar fórmulas.
  2. Ignorar el tratamiento de los bordes y su efecto en la longitud de salida.
  3. Usar un núcleo que no suma 1 cuando se pretendía promediar.

Dónde se usa

Redes convolucionales, filtrado de imágenes, procesamiento de audio, suavizado de series y detección de patrones.

Bibliografía de la clase

272 · Correlación de señales

Parte 13 · clase 12 de 20 · demostración cross_correlation

La correlación cruzada localiza dónde aparece un patrón dentro de una señal.

(f ⋆ g)[n] = Σₖ f[k]·g[n+k]
sin inversión del núcleo
el máximo indica la posición de mejor coincidencia

Fundamentos

La correlación cruzada mide el parecido entre una señal y un patrón desplazado. Es idéntica a la convolución salvo que no invierte el núcleo, y su interpretación es directa: en cada posición calcula el producto escalar entre el patrón y el trozo de señal que hay allí.

Ese producto escalar es exactamente la medida de alineación de la parte 05: grande cuando los vectores apuntan en la misma dirección. Por eso el máximo de la correlación indica dónde está el patrón, y su valor mide cuán buena es la coincidencia. Es la base del emparejamiento de plantillas.

Hay una precaución importante: la correlación sin normalizar favorece las zonas de mayor energía. Un tramo de señal con valores grandes puede dar más correlación que una coincidencia perfecta con valores pequeños. Por eso en la práctica se usa la correlación normalizada, que divide por las normas y es invariante a la escala.

La conexión con la inteligencia artificial actual es directa: el mecanismo de atención calcula productos escalares entre consultas y claves, los normaliza y los pasa por softmax. Es una correlación entre representaciones, con el mismo principio de que el producto escalar mide alineación. Reconocerlo hace mucho más legible la fórmula de la atención.

Ejemplo trabajado

Localización de un patrón dentro de una señal más larga.

patrón buscado: [1, 2, 1]
señal: [0, 0, 1, 2, 1, 0, 0,5, 1, 0,5, 0]

correlación: [1,0 ; 4,0 ; 6,0 ; 4,0 ; 1,5 ; 2,0 ; 3,0 ; 2,0]

pico en la posición 2, con valor 6,0

Comprobación: en la posición 2 la señal vale [1,2,1],
exactamente el patrón. Producto escalar = 1+4+1 = 6.     ✓

En la posición 6 hay el mismo patrón a mitad de escala:
correlación 3,0, la mitad. Sin normalizar, una copia
atenuada puntúa menos que la original.

Qué ejecuta el laboratorio

Correlación cruzada: convolución sin invertir el kernel.

GrupoSalidas
Resultados numéricos (3)posicion_del_pico, valor_del_pico, coincidencia_exacta_en
Comprobaciones (1)convolucion_invierte_el_kernel
compmath run 272

Errores conceptuales frecuentes

  1. Usar correlación sin normalizar y dejar que gane la zona de más energía.
  2. Confundir el signo del desplazamiento al interpretar la posición del pico.
  3. Aplicarla a señales de escalas muy distintas sin estandarizar.

Dónde se usa

Emparejamiento de plantillas, sincronización de señales, radar y sonar, alineación de series y mecanismo de atención.

Bibliografía de la clase

273 · Series y transformada de Fourier

Parte 13 · clase 13 de 20 · demostración fourier_series

Toda señal es una suma de sinusoides, y Fourier dice cuáles y con qué peso.

X[k] = Σₙ x[n]·e^(−2πikn/N)
magnitud = |X[k]|,  fase = arg(X[k])
Parseval: Σ|x[n]|² = (1/N)·Σ|X[k]|²

Fundamentos

La transformada de Fourier descompone una señal en sinusoides de distintas frecuencias, cada una con su amplitud y su fase. Es un cambio de base en el sentido exacto de la parte 06: la señal no cambia, cambia el sistema de coordenadas desde el que se describe.

Ese cambio de perspectiva es útil porque muchas propiedades que están escondidas en el dominio del tiempo son evidentes en el de la frecuencia. Una señal que parece ruido puede revelar dos picos limpios; el ruido de red eléctrica aparece como una línea en 50 o 60 Hz; y un filtro que en el tiempo es una convolución compleja se convierte en una simple multiplicación.

El teorema de Parseval garantiza que la energía se conserva: la suma de los cuadrados en el tiempo es igual a la suma en frecuencia, salvo normalización. Comprobarlo numéricamente es la mejor prueba unitaria de una implementación de la transformada.

La fase es la parte que sistemáticamente se ignora. Casi todas las visualizaciones muestran solo la magnitud, pero la fase contiene la información sobre dónde ocurren las cosas. Un experimento clásico: intercambiar las magnitudes de dos imágenes conservando sus fases produce imágenes reconocibles como las originales de la fase. La estructura está en la fase.

Ejemplo trabajado

Señal con dos componentes conocidas, analizada por Fourier.

64 muestras, señal construida con:
  componente de 4 Hz con amplitud 3,0
  componente de 9 Hz con amplitud 1,5

picos detectados: 4 Hz y 9 Hz                        ✓
magnitudes:       3,0  y  1,5                        ✓

Parseval:
  energía en el tiempo      = 360,0
  energía en frecuencia     = 360,0                  ✓

La transformada recuperó exactamente las amplitudes
y las frecuencias que se usaron para construir la señal.

Qué ejecuta el laboratorio

Descomponer una señal en senos y cosenos.

GrupoSalidas
Resultados numéricos (3)muestras, energia_en_el_tiempo, energia_en_frecuencia
Comprobaciones (2)teorema_de_Parseval, cualquier_periodica_es_suma_de_senoidales
compmath run 273

Errores conceptuales frecuentes

  1. Analizar solo la magnitud y descartar la fase.
  2. Olvidar que el espectro de una señal real es simétrico y contar los picos dos veces.
  3. Aplicar la transformada a una señal no estacionaria sin ventanear.

Dónde se usa

Análisis de audio y vibraciones, compresión JPEG y MP3, filtrado en frecuencia y codificación posicional en Transformers.

Bibliografía de la clase

274 · FFT

Parte 13 · clase 14 de 20 · demostración fft

La FFT da el mismo resultado que la DFT y convierte n² en n log n.

coste DFT: O(n²)   coste FFT: O(n log n)
n = 10⁶:  10¹² frente a 2·10⁷ operaciones
teorema de convolución: f * g = IFFT(FFT(f)·FFT(g))

Fundamentos

La transformada discreta de Fourier calculada de forma directa necesita operaciones complejas. Para un millón de muestras eso son 10¹² operaciones: horas o días. La FFT obtiene exactamente el mismo resultado en O(n log n), unas 2·10⁷ operaciones: una fracción de segundo.

El algoritmo, publicado por Cooley y Tukey en 1965 —aunque Gauss ya lo conocía en 1805—, explota que la transformada de una señal se puede construir a partir de las transformadas de sus muestras pares e impares. Aplicar esa descomposición recursivamente da el logaritmo. Es un divide y vencerás de manual.

Su impacto es difícil de exagerar. La FFT es lo que hace posible el audio digital, las telecomunicaciones modernas, la resonancia magnética, el análisis sísmico y la multiplicación rápida de polinomios y de enteros grandes. Está en la lista habitual de algoritmos más influyentes del siglo XX.

El teorema de convolución convierte esa velocidad en una herramienta general: convolucionar en el tiempo es multiplicar en frecuencia, así que para núcleos grandes es más rápido transformar, multiplicar punto a punto y volver, que convolucionar directamente. El punto de cruce está alrededor de núcleos de 50 a 100 elementos, y por eso las CNN con núcleos de 3×3 no usan FFT.

Ejemplo trabajado

FFT y DFT sobre la misma señal de 256 muestras.

256 muestras con componentes en 10 Hz y 40 Hz

picos detectados:  [10, 40]
frecuencias reales: [10, 40]        coinciden        ✓
FFT y DFT dan resultados idénticos                   ✓

Coste:
  DFT: 256² = 65 536 operaciones
  FFT: 256 · log₂ 256 = 256 · 8 = 2 048 operaciones
  ganancia: 32×

Para n = 10⁶ la ganancia sería de 50 000×:
la diferencia entre imposible y instantáneo.

Qué ejecuta el laboratorio

FFT frente a DFT: mismo resultado, coste muy distinto.

GrupoSalidas
Resultados numéricos (4)muestras, operaciones_DFT, operaciones_FFT, factor_de_ahorro
Comprobaciones (2)coinciden, fft_y_dft_coinciden
compmath run 274

Errores conceptuales frecuentes

  1. Implementar la DFT directa cuando existe FFT.
  2. Usar FFT para convolucionar con núcleos pequeños, donde es más lenta.
  3. Olvidar que la FFT clásica es más eficiente con longitudes potencia de dos.

Dónde se usa

Procesamiento de audio en tiempo real, telecomunicaciones, imagen médica, convoluciones rápidas y multiplicación de enteros grandes.

Bibliografía de la clase

275 · Filtros y respuesta en frecuencia

Parte 13 · clase 15 de 20 · demostración filters

Filtrar es decidir qué frecuencias sobreviven, y una media móvil ya es un filtro.

media móvil de ventana k: núcleo de k valores 1/k
paso-bajo conserva bajas, paso-alto conserva altas
compromiso: más suavizado, menos detalle

Fundamentos

Un filtro atenúa unas frecuencias y deja pasar otras. Su descripción completa es la respuesta en frecuencia: qué factor aplica a cada componente. Diseñar un filtro es elegir esa curva y encontrar los coeficientes que la producen.

Los tipos básicos se nombran por lo que dejan pasar. Paso-bajo conserva las frecuencias bajas y elimina las altas, que es lo que se necesita para quitar ruido. Paso-alto hace lo contrario y sirve para eliminar tendencias o el nivel continuo. Paso-banda conserva una franja, y es lo que hace un ecualizador.

La media móvil es el filtro paso-bajo más simple, y ya ilustra el compromiso central: una ventana más ancha suaviza más ruido pero también borra más detalle real. No hay ajuste óptimo universal; depende de qué frecuencias son señal y cuáles son ruido en el problema concreto.

Hay una tensión inevitable entre el dominio del tiempo y el de la frecuencia. Un filtro con corte muy abrupto en frecuencia necesita una respuesta muy larga en el tiempo, lo que introduce retardo y oscilaciones en los bordes. Es una manifestación del principio de incertidumbre aplicado al análisis de señales, y explica por qué los filtros reales siempre son un compromiso.

Ejemplo trabajado

Media móvil sobre una señal con ruido de alta frecuencia.

128 muestras, ventana del filtro = 7

RMSE antes del filtro:  0,282735
RMSE después:           0,066077
mejora: 76,6 %

El ruido de alta frecuencia se promedia a casi cero;
la señal de baja frecuencia sobrevive casi intacta.

Compromiso de la ventana:
  ventana 3   → poco suavizado, poco retardo
  ventana 7   → buen equilibrio aquí
  ventana 31  → suaviza mucho, borra los picos reales

Una media móvil es un filtro FIR paso-bajo con
todos los coeficientes iguales.

Qué ejecuta el laboratorio

Filtro paso-bajo aplicado a una señal con ruido de alta frecuencia.

GrupoSalidas
Resultados numéricos (5)muestras, ventana_del_filtro, RMSE_antes_del_filtro, RMSE_despues_del_filtro, mejora_%
Comprobaciones (0)
compmath run 275

Errores conceptuales frecuentes

  1. Elegir la ventana sin conocer qué frecuencias son señal y cuáles ruido.
  2. Ignorar el retardo que introduce un filtro causal.
  3. Filtrar antes de comprobar si el problema real era aliasing.

Dónde se usa

Eliminación de ruido en sensores, ecualización de audio, suavizado de series financieras y preprocesamiento de señales biomédicas.

Bibliografía de la clase

276 · Procesos estacionarios

Parte 13 · clase 16 de 20 · demostración stationarity

Casi todo el análisis clásico de series supone estacionariedad, y diferenciar la consigue.

estacionaria: media, varianza y autocovarianza constantes en el tiempo
diferenciación: y[t] = x[t] − x[t−1]
una diferencia elimina tendencia lineal; dos, cuadrática

Fundamentos

Una serie es estacionaria cuando sus propiedades estadísticas no cambian con el tiempo: la media, la varianza y la relación entre valores separados por un retardo dado son las mismas al principio y al final. Intuitivamente, la serie no va a ninguna parte.

El supuesto importa porque casi toda la teoría clásica lo necesita. Ajustar un modelo ARMA, interpretar una autocorrelación o estimar un espectro presuponen que hay algo estable que estimar. Aplicar esas herramientas a una serie con tendencia produce resultados que parecen significativos y no lo son: la regresión espuria entre dos series con tendencia da correlaciones altísimas sin ninguna relación real.

El diagnóstico más simple es partir la serie en dos y comparar medias y varianzas. Si difieren claramente, hay no estacionariedad. Las pruebas formales —Dickey-Fuller aumentada, KPSS— formalizan ese contraste.

El remedio habitual es diferenciar: sustituir cada valor por su diferencia con el anterior. Una diferencia elimina una tendencia lineal, dos eliminan una cuadrática. Es la «I» de ARIMA. Para varianza no constante se aplica antes una transformación logarítmica o de Box-Cox. Diferenciar de más introduce estructura artificial, así que conviene quedarse con el mínimo necesario.

Ejemplo trabajado

Tres series: estacionaria, con tendencia, y diferenciada.

serie estacionaria:
  media 1ª mitad = 0,0574    varianza 1ª = 1,12
  media 2ª mitad = 0,0223    varianza 2ª ≈ 1,10
  estables → estacionaria                            ✓

serie con tendencia:
  media 1ª mitad = 1,9728    varianza 1ª = 2,40
  media 2ª mitad = 5,9658    varianza 2ª ≈ 2,45
  la media se triplica → no estacionaria             ✗

tras diferenciar la serie con tendencia:
  media 1ª mitad = 0,0204    varianza 1ª = 2,05
  media 2ª mitad = 0,0140    varianza 2ª ≈ 2,03
  estable de nuevo                                   ✓

Una sola diferencia bastó para una tendencia lineal.

Qué ejecuta el laboratorio

Serie estacionaria frente a serie con tendencia.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (1)diferenciar_elimina_la_tendencia_lineal
compmath run 276

Errores conceptuales frecuentes

  1. Ajustar modelos clásicos sin comprobar estacionariedad.
  2. Diferenciar más veces de las necesarias.
  3. Interpretar una correlación entre dos series con tendencia como relación real.

Dónde se usa

Modelos ARIMA, predicción de demanda, análisis financiero y preprocesamiento de series para modelos de aprendizaje automático.

Bibliografía de la clase

277 · Autocorrelación

Parte 13 · clase 17 de 20 · demostración autocorrelation

Un pico en la autocorrelación en el retardo k delata un periodo de k muestras.

ACF(k) = corr(x[t], x[t−k])
ACF(0) = 1 siempre
pico positivo en k ⟹ periodicidad de periodo k

Fundamentos

La autocorrelación es la correlación de una serie consigo misma desplazada un retardo k. Responde a la pregunta de cuánto se parece la serie a su propio pasado, y su gráfico —el correlograma— es la herramienta de diagnóstico más informativa de las series temporales.

Su lectura es sistemática. En el retardo 0 vale siempre 1, porque toda serie es idéntica a sí misma. Un decaimiento rápido indica poca memoria. Un decaimiento lento indica tendencia o no estacionariedad. Y un pico en un retardo concreto indica periodicidad con ese periodo, que es lo que la hace tan útil.

La periodicidad detectada así puede ser invisible a simple vista. Con ruido fuerte, una señal periódica se pierde en el gráfico temporal, pero el ruido se descorrelaciona a cualquier retardo mientras que la componente periódica no. La autocorrelación separa una de otra sin necesidad de transformar al dominio de la frecuencia.

Es también el instrumento estándar para elegir el orden de un modelo autorregresivo, junto con la autocorrelación parcial, y para validarlo: si los residuos de un modelo ajustado conservan autocorrelación significativa, queda estructura sin explicar y el modelo es mejorable.

Ejemplo trabajado

Serie con periodo 20 oculto bajo ruido.

200 muestras, periodo real = 20

retardo    ACF
   0      1,000000     siempre 1
   5      0,014817     casi nula (cuarto de ciclo)
  10     −0,879342     fuerte negativa (medio ciclo)
  20      0,835547     fuerte positiva (ciclo completo)

Lectura:
  pico positivo en 20 → periodo de 20 muestras       ✓
  pico negativo en 10 → medio periodo, en antifase   ✓
  nula en 5           → cuadratura, sin correlación  ✓

El periodo se detecta sin haber transformado a frecuencia.

Qué ejecuta el laboratorio

Autocorrelación revela la periodicidad oculta.

GrupoSalidas
Resultados numéricos (7)muestras, periodo_real, acf_lag_0, acf_lag_5, acf_lag_10, acf_lag_20, primer_pico_positivo_en_lag
Comprobaciones (2)detecta_el_periodo, acf_en_lag_0_siempre_es_1
compmath run 277

Errores conceptuales frecuentes

  1. Calcular la ACF sobre una serie no estacionaria y leerla como periodicidad.
  2. Interpretar picos en retardos grandes con pocos datos de apoyo.
  3. Olvidar comprobar la autocorrelación de los residuos del modelo.

Dónde se usa

Detección de estacionalidad, selección de orden en modelos ARIMA, validación de residuos y análisis de señales biomédicas.

Bibliografía de la clase

278 · Series temporales y ventanas

Parte 13 · clase 18 de 20 · demostración windowing

Analizar un trozo finito de señal esparce su energía a frecuencias vecinas.

ventana rectangular: cortar sin más
ventana de Hann: w[n] = 0,5·(1 − cos(2πn/N))
compromiso: menos fuga, peor resolución

Fundamentos

La transformada de Fourier supone señales infinitas. En la práctica solo se dispone de un trozo, y cortarlo equivale a multiplicar la señal por una ventana rectangular. Esa multiplicación en el tiempo se convierte en convolución en frecuencia, y ahí está el problema.

El resultado es la fuga espectral: la energía de una componente se dispersa hacia las frecuencias vecinas. El efecto es máximo cuando la frecuencia real no cae exactamente en uno de los bins del análisis, porque entonces el corte introduce discontinuidades en los extremos que la transformada interpreta como contenido de alta frecuencia.

Las ventanas suaves —Hann, Hamming, Blackman— multiplican la señal por una función que decae a cero en los bordes, eliminando la discontinuidad. La fuga se reduce sustancialmente, y el pico principal queda mucho más limpio.

El precio es la resolución. Suavizar los bordes ensancha el pico principal, así que dos frecuencias muy próximas pueden dejar de distinguirse. La elección de ventana es un compromiso entre resolución —distinguir frecuencias cercanas— y rango dinámico —ver componentes débiles junto a fuertes—. Hann es el compromiso razonable por defecto.

Ejemplo trabajado

Señal de 8,5 Hz analizada con 64 muestras: el peor caso.

frecuencia real: 8,5 Hz, justo entre dos bins

ventana rectangular:
  pico detectado en el bin 8
  fuga espectral: 50,02 %

ventana de Hann:
  pico detectado en el bin 9
  fuga espectral: 12,45 %

La fuga se reduce a la cuarta parte.

Ninguna de las dos acierta exactamente 8,5:
la resolución del análisis es de 1 bin, y la frecuencia
real cae en medio. Para resolverla haría falta
más duración de señal, no más muestras por segundo.

Qué ejecuta el laboratorio

Ventaneo: el precio de analizar un trozo finito de señal.

GrupoSalidas
Resultados numéricos (6)muestras, frecuencia_real, pico_con_ventana_rectangular, pico_con_ventana_de_Hann, fuga_espectral_rectangular_%, fuga_espectral_hann_%
Comprobaciones (1)hann_reduce_la_fuga
compmath run 278

Errores conceptuales frecuentes

  1. Analizar sin ventanear y atribuir la fuga a contenido real de la señal.
  2. Elegir una ventana muy suave y perder resolución necesaria.
  3. Confundir resolución en frecuencia con frecuencia de muestreo.

Dónde se usa

Espectrogramas de audio, análisis de vibraciones, detección de tonos y preprocesamiento para modelos de reconocimiento de voz.

Bibliografía de la clase

279 · Espectro y densidad espectral

Parte 13 · clase 19 de 20 · demostración power_spectrum

La potencia va con el cuadrado de la amplitud: doble amplitud es cuádruple potencia.

PSD[k] = |X[k]|² / N
potencia relativa = PSD[k] / Σ PSD
amplitud ×2  ⟹  potencia ×4

Fundamentos

La densidad espectral de potencia describe cómo se reparte la energía de una señal entre sus frecuencias. Se obtiene del cuadrado de la magnitud de la transformada, y a diferencia del espectro de amplitud descarta la fase, quedándose solo con cuánta energía hay en cada banda.

La relación cuadrática entre amplitud y potencia tiene consecuencias que sorprenden al leer un espectro. Una componente con el doble de amplitud aporta cuatro veces más potencia, y por tanto domina el reparto mucho más de lo que sugiere el espectro de amplitud. Las componentes pequeñas quedan aplastadas, y por eso la PSD suele graficarse en decibelios, que es escala logarítmica.

La PSD es la herramienta habitual para caracterizar ruido y para diagnosticar sistemas. El ruido blanco tiene potencia uniforme en todas las frecuencias, el ruido rosa decae como 1/f, y muchos procesos naturales exhiben ese comportamiento. Comparar la PSD medida con la esperada revela componentes anómalas: un pico a 50 Hz delata acoplamiento con la red eléctrica.

En aprendizaje automático, la PSD por bandas es un descriptor clásico. En señales biomédicas las bandas alfa, beta y theta del EEG se definen así; en audio, el reparto de potencia por bandas es la base de los coeficientes MFCC que alimentaron el reconocimiento de voz durante décadas.

Ejemplo trabajado

Dos componentes con amplitudes 2 y 1, y su reparto de potencia.

128 muestras
  componente de 5 Hz  con amplitud 2,0
  componente de 20 Hz con amplitud 1,0

bins dominantes: [5, 20]                             ✓

potencia relativa 5 Hz:   80,0 %
potencia relativa 20 Hz:  20,0 %
razón de potencias: 4,0

Las amplitudes están en razón 2:1
Las potencias están en razón 4:1                     ✓

Aunque la segunda componente tiene la mitad de amplitud,
solo aporta la cuarta parte de la energía.

Qué ejecuta el laboratorio

Densidad espectral de potencia y reparto de la energía.

GrupoSalidas
Resultados numéricos (7)muestras, potencia_relativa_5Hz_%, potencia_relativa_20Hz_%, razon_de_potencias, razon_teorica_amplitudes², energia_total_tiempo, energia_total_frecuencia
Comprobaciones (0)
compmath run 279

Errores conceptuales frecuentes

  1. Interpretar la PSD como si fuera espectro de amplitud.
  2. Graficar en escala lineal y no ver las componentes débiles.
  3. Comparar PSD de señales de distinta duración sin normalizar.

Dónde se usa

Caracterización de ruido, análisis de EEG por bandas, MFCC en reconocimiento de voz y diagnóstico de maquinaria por vibraciones.

Bibliografía de la clase

280 · Capstone: analizar señal y construir features

Parte 13 · clase 20 de 20 · demostración capstone_signal_features

Un vector de características resume la señal en números que un modelo puede usar.

temporales: media, varianza, RMS, cruces por cero
espectrales: frecuencia dominante, centroide, entropía espectral
centroide = Σ f·P(f) / Σ P(f)

Fundamentos

Alimentar un modelo con una señal cruda de miles de muestras rara vez es la mejor opción: la dimensión es enorme, la información está diluida y el modelo tiene que aprender de cero lo que el procesamiento de señales ya sabe. La extracción de características condensa la señal en pocos números interpretables.

Las características temporales son baratas y describen la forma de la onda. La media detecta desplazamientos del nivel base, la varianza y el RMS miden la energía, y los cruces por cero son un estimador rudimentario pero muy usado del contenido de frecuencia: cuantos más cruces, más rápida es la señal.

Las características espectrales describen el contenido de frecuencia. La frecuencia dominante identifica la componente principal; el centroide espectral es la frecuencia media ponderada por potencia y se corresponde con la percepción de brillo en audio; la entropía espectral distingue una señal tonal —energía concentrada, entropía baja— de una ruidosa —energía repartida, entropía alta—. Esa última reutiliza la entropía de la clase 262 aplicada al espectro normalizado.

La disyuntiva frente al aprendizaje profundo es real y no tiene respuesta única. Las características diseñadas a mano son interpretables, baratas y funcionan con pocos datos; las aprendidas por una red superan a las manuales cuando hay datos abundantes. En la práctica se combinan, y entender las manuales sigue siendo necesario para diagnosticar qué está capturando el modelo.

Ejemplo trabajado

Vector de características extraído de una señal de 256 muestras.

256 muestras a 256 Hz, componentes reales en 7 Hz y 23 Hz

características temporales:
  media           = −0,000308
  varianza        =  1,316705
  RMS             =  1,147478
  cruces por cero =  (proporcional al contenido rápido)

características espectrales:
  frecuencia dominante = 7 Hz          ✓ correcta
  centroide espectral  = 10,287014
  entropía espectral   = (concentración de la energía)

El centroide cae entre 7 y 23, más cerca de 7 porque
esa componente aporta más potencia.

De 256 números a un vector de 7: eso es lo que
recibe el modelo.

Qué ejecuta el laboratorio

Capstone: de una señal cruda a un vector de características.

GrupoSalidas
Resultados numéricos (3)muestras, frecuencia_de_muestreo_Hz, vector_de_features
Comprobaciones (1)dominante_detectada_correctamente
compmath run 280

Errores conceptuales frecuentes

  1. Extraer características sin normalizar entre señales de escalas distintas.
  2. Calcular características espectrales sobre señales no estacionarias sin segmentar.
  3. Descartar el aprendizaje de representaciones cuando hay datos abundantes.

Dónde se usa

Clasificación de audio, reconocimiento de actividad con acelerómetros, diagnóstico de maquinaria, análisis de EEG y detección de anomalías en sensores.

Bibliografía de la clase

Parte 14 — Matemática de Machine Learning

Nivel ml-avanzado · 20 clases · 80 horas · motor part14

Derivación matemática de los algoritmos clásicos: regresión, regularización, clasificación, kernels, árboles, ensambles, clustering, EM y compromiso sesgo-varianza.

Los algoritmos clásicos de aprendizaje automático se suelen presentar como una colección de recetas con nombres propios. No lo son. Cada uno es una función objetivo más un método de optimización, y una vez visto así el catálogo deja de ser una lista que memorizar y pasa a ser un conjunto de decisiones de diseño comparables entre sí. Esta parte deriva esos algoritmos desde sus objetivos, usando exactamente la matemática de las partes anteriores.

Las clases 281 a 284 empiezan por la regresión y su regularización. Regresión lineal es mínimos cuadrados, que ya se resolvió en la parte 05 como proyección y en la parte 11 como problema numérico. Ridge y Lasso resuelven el mismo problema con normas distintas, y la diferencia no es cosmética: la bola L2 es redonda y encoge todos los coeficientes sin anularlos; la bola L1 tiene vértices sobre los ejes y por eso el óptimo cae en ellos, produciendo ceros exactos. Esa geometría explica por qué Lasso selecciona variables y Ridge no, y es una de las conexiones más limpias entre álgebra y estadística de todo el programa.

Las clases 285 a 290 tratan la clasificación. La regresión logística se deriva de la log-verosimilitud, y su gradiente resulta ser (p − y)·x: idéntico en forma al de la regresión lineal, que es lo que permite tratar ambos casos con el mismo código. La entropía cruzada penaliza sin cota la confianza equivocada, a diferencia del error cuadrático, y eso es exactamente lo que se quiere. Naive Bayes declara un supuesto de independencia que casi siempre es falso y funciona igual, porque la decisión solo necesita el orden de las probabilidades y no su valor. k-NN no tiene entrenamiento pero depende críticamente de la métrica y del escalado. Y SVM introduce el margen máximo y el kernel trick: calcular productos escalares en un espacio de dimensión enorme sin construirlo jamás.

Las clases 291 a 293 recorren los métodos basados en árboles, que siguen siendo el estado del arte en datos tabulares. Un árbol elige cortes minimizando impureza; el bagging promedia modelos decorrelacionados y reduce la varianza según una fórmula explícita que muestra por qué la decorrelación importa más que el número de árboles; y el boosting es descenso de gradiente en el espacio de funciones, donde cada modelo nuevo corrige el residuo del conjunto anterior.

Las clases 294 a 297 pasan al aprendizaje no supervisado. k-means es minimización de inercia con asignación dura; las mezclas de gaussianas la hacen blanda y probabilística; y EM es el algoritmo general que las entrena, alternando expectativa y maximización con la garantía de que la verosimilitud nunca baja. PCA cierra el bloque como preprocesamiento y como aplicación directa de la SVD de la parte 06.

Las dos últimas clases antes del capstone son las que más determinan si un proyecto real funciona. La descomposición sesgo-varianza explica por qué un modelo más complejo no es mejor, y se mide aquí por simulación en vez de enunciarse. Y el leakage es el error que produce métricas excelentes y modelos inútiles: la demostración usa datos donde X e y no guardan ninguna relación y aun así se obtiene un 70 % de acierto si se evalúa mal. Ese 70 % sobre ruido puro es la advertencia más útil de la parte.

Ideas centrales

Por qué importa en IA

Estos algoritmos siguen siendo la línea base honesta contra la que se debe comparar cualquier modelo profundo.

Errores frecuentes de la parte

Glosario de la parte (38 términos)

TérminoDefiniciónClase
Algoritmo de LloydAlternar asignación de puntos y recálculo de centroides hasta converger.294
Algoritmo EMAlternar expectativa de las latentes y maximización de los parámetros. La verosimilitud nunca baja.296
Aprendiz débilModelo apenas mejor que el azar. Un tocón de decisión es el ejemplo típico.293
Aprendizaje supervisadoAprender una función de entrada a salida a partir de pares etiquetados.281
BaggingEntrenar modelos sobre remuestras bootstrap y promediar. Reduce la varianza.292
BoostingAñadir modelos secuencialmente, cada uno ajustando el residuo del conjunto anterior.293
CalibraciónGrado en que las probabilidades predichas coinciden con las frecuencias observadas.286
DecorrelaciónHacer que los modelos del ensemble se equivoquen de formas distintas. Es lo que da la ganancia.292
Dirección discriminanteDirección que mejor separa los centroides de las clases.281
DispersiónSolución con muchos coeficientes nulos. Equivale a selección automática de variables.284
Ecuación normalw = (XᵀX)⁻¹Xᵀy. Solución cerrada de la regresión lineal.282
Error irreducibleRuido de los datos que ningún modelo puede eliminar.298
Frontera de decisiónSuperficie que separa las regiones asignadas a cada clase.281
Función kernelK(a,b) que equivale a φ(a)ᵀφ(b) para alguna transformación φ.290
Función sigmoideσ(z) = 1/(1+e⁻ᶻ). Convierte un número real en una probabilidad.285
Ganancia de informaciónReducción de impureza que produce un corte. Criterio de división del árbol.291
ImpurezaMedida de mezcla de clases en un nodo. Entropía y Gini son las habituales.291
Independencia condicionalP(x₁,x₂|c) = P(x₁|c)·P(x₂|c). Supuesto falso en la práctica y útil igualmente.287
InerciaSuma de distancias al cuadrado de cada punto a su centroide. Objetivo de k-means.294
k-Nearest NeighborsClasificar por mayoría entre los k vecinos más cercanos. Sin entrenamiento.288
Kernel trickCalcular productos escalares en un espacio expandido sin construirlo explícitamente.290
LassoRegresión con penalización L1. Produce coeficientes exactamente cero.284
LeakageInformación del test que se filtra al entrenamiento. Produce métricas excelentes y modelos inútiles.299
LogitLogaritmo de la razón de probabilidades. Es la inversa de la sigmoide.285
Maldición de la dimensionalidadEn dimensión alta todas las distancias se parecen y el concepto de vecino pierde sentido.288
MargenDistancia entre la frontera y los puntos más cercanos. SVM lo maximiza.289
Mezcla de gaussianasModelo generativo con varias componentes normales y asignación blanda.295
Mínimos cuadrados ordinariosMinimizar la suma de residuos al cuadrado. Tiene solución cerrada.282
Naive BayesClasificador que supone independencia condicional de las variables dada la clase.287
Pérdida logarítmicaEntropía cruzada aplicada a clasificación. Penaliza sin cota la confianza equivocada.286
ResponsabilidadProbabilidad de que una componente haya generado un punto concreto.295
RidgeRegresión con penalización L2. Encoge los coeficientes y estabiliza el mal condicionamiento.283
Sesgo del modeloError por suponer una forma demasiado simple. Un modelo rígido tiene sesgo alto.298
Validación cruzada anidadaBucle interno para elegir hiperparámetros y externo para estimar el rendimiento.299
Variable latenteVariable no observada que explica la estructura de los datos.296
Varianza del modeloSensibilidad de la predicción a la muestra concreta de entrenamiento.298
Varianza explicadaFracción de la varianza total que capturan las componentes retenidas.297
Vector de soportePunto que toca el margen y determina la frontera. Los demás no influyen.289

Bibliografía de la parte

281 · Geometría del aprendizaje supervisado

Parte 14 · clase 1 de 20 · demostración supervised_geometry

Aprender de forma supervisada es encontrar una frontera en el espacio de características.

cada observación es un punto de ℝᵈ
dirección discriminante ∝ μ₁ − μ₀
frontera lineal: wᵀx + b = 0

Fundamentos

Todo conjunto de datos supervisado admite la misma lectura geométrica: cada observación es un punto en un espacio de tantas dimensiones como características, y la etiqueta es un color. Aprender es encontrar una superficie que separe los colores, o una función que los prediga.

Esa visión unifica algoritmos que parecen ajenos entre sí. Regresión logística busca un hiperplano; SVM busca el hiperplano de margen máximo; k-NN construye una frontera irregular a partir de los vecinos; un árbol construye una frontera de escalones paralelos a los ejes; y una red neuronal construye una frontera curva arbitraria. Todos resuelven el mismo problema geométrico con distintas restricciones sobre la forma de la frontera.

El punto de partida más simple es el clasificador por centroides: calcular la media de cada clase y asignar cada punto al centroide más cercano. La frontera resultante es el hiperplano perpendicular al segmento que une los centroides, y la dirección de ese segmento es la dirección discriminante. Es lo mínimo que se puede hacer, y sirve de línea base honesta.

Lo que hace difícil el problema en la práctica no es la forma de la frontera sino la dimensión. Con dos características se puede dibujar y la intuición funciona; con quinientas, todas las distancias se parecen, el volumen se concentra en los bordes, y la intuición geométrica de dos dimensiones deja de ser fiable. Esa es la maldición de la dimensionalidad, que reaparece en la clase 288.

Ejemplo trabajado

Dos clases separables y su dirección discriminante.

80 observaciones en 2 dimensiones

centroide clase 1: ( 2,1592 ;  1,8087)
centroide clase 0: (−1,1503 ; −1,0020)

diferencia = (3,3095 ; 2,8107)
distancia entre centroides = 4,342

dirección discriminante normalizada:
  (0,7622 ; 0,6473)

La frontera del clasificador por centroides es el
hiperplano perpendicular a esa dirección, situado
en el punto medio: (0,5045 ; 0,4034).

Es la línea base contra la que comparar todo lo demás.

Qué ejecuta el laboratorio

Aprendizaje supervisado como búsqueda de una frontera en el espacio.

GrupoSalidas
Resultados numéricos (4)observaciones, dimension, distancia_entre_centroides, accuracy_del_clasificador_de_centroides
Comprobaciones (0)
compmath run 281

Errores conceptuales frecuentes

  1. Confiar en la intuición geométrica bidimensional en dimensión alta.
  2. Comparar distancias entre características de escalas distintas.
  3. Omitir la línea base trivial al evaluar un modelo complejo.

Dónde se usa

Comprensión unificada de clasificadores, análisis discriminante lineal, diagnóstico visual de separabilidad y elección de la familia de modelos.

Bibliografía de la clase

282 · Regresión lineal desde mínimos cuadrados

Parte 14 · clase 2 de 20 · demostración linear_regression

Regresión lineal tiene solución cerrada, y el descenso de gradiente llega al mismo sitio.

ŷ = Xw;   J(w) = ‖Xw − y‖²
solución cerrada: w = (XᵀX)⁻¹Xᵀy
gradiente: ∇J = 2Xᵀ(Xw − y)

Fundamentos

La regresión lineal minimiza la suma de residuos al cuadrado. Es el algoritmo más antiguo del catálogo —Gauss y Legendre, principios del siglo XIX— y sigue siendo la línea base obligada porque es interpretable, rápido y difícil de superar cuando la relación es realmente lineal.

Tiene la propiedad rara de admitir solución cerrada. Anular el gradiente da las ecuaciones normales, y su solución es la fórmula de la proyección de la parte 05. Casi ningún otro modelo permite eso: la regresión logística, sin ir más lejos, ya requiere iterar.

Aun así, en la práctica se usa el descenso de gradiente cuando hay muchas observaciones o muchas características, porque invertir XᵀX cuesta O(d³) y la matriz puede estar mal condicionada. Que ambos caminos converjan al mismo punto es la comprobación numérica que valida las dos implementaciones a la vez.

Elegir el error cuadrático no es arbitrario: equivale a suponer ruido gaussiano y maximizar la verosimilitud, como se vio en la clase 215. Sus consecuencias son conocidas: penaliza los errores grandes de forma desproporcionada y por tanto es muy sensible a valores atípicos. Si esa sensibilidad molesta, la respuesta correcta es cambiar el modelo de ruido —pérdida de Huber, regresión cuantílica— y no parchear el algoritmo.

Ejemplo trabajado

Sesenta observaciones, tres características, dos métodos.

parámetros reales: [2,0 ; 1,5 ; −0,4]

solución cerrada:      [2,032145 ; 1,488677 ; −0,353039]
descenso de gradiente: [2,031712 ; 1,489061 ; −0,353651]

coinciden a 3 decimales                              ✓
MSE de la solución cerrada: 0,0757

La diferencia con los parámetros reales viene del ruido
de las 60 observaciones, no del método.

Coste: cerrada O(d³) por la inversión;
       gradiente O(n·d) por iteración.

Qué ejecuta el laboratorio

Regresión lineal: solución cerrada y descenso de gradiente.

GrupoSalidas
Resultados numéricos (4)observaciones, features, MSE_cerrada, MSE_gradiente
Comprobaciones (1)coinciden
compmath run 282

Errores conceptuales frecuentes

  1. Invertir XᵀX explícitamente en vez de resolver el sistema o usar QR.
  2. Aplicar mínimos cuadrados con valores atípicos sin considerar pérdidas robustas.
  3. Interpretar coeficientes con características fuertemente correlacionadas.

Dónde se usa

Línea base en cualquier problema de regresión, análisis de tendencias, calibración de instrumentos y capa final de muchos modelos.

Bibliografía de la clase

283 · Ridge y regularización L2

Parte 14 · clase 3 de 20 · demostración ridge

Ridge encoge los coeficientes y con ello arregla el mal condicionamiento.

J(w) = ‖Xw − y‖² + λ‖w‖²
solución: w = (XᵀX + λI)⁻¹Xᵀy
sumar λI mejora el número de condición

Fundamentos

Ridge añade a la regresión una penalización proporcional a la suma de los cuadrados de los coeficientes. El efecto es encoger todos los coeficientes hacia cero, con más intensidad cuanto mayor sea λ, sin anular ninguno.

La solución cerrada revela algo elegante: el término de regularización aparece como λI sumado a XᵀX. Eso desplaza todos los autovalores hacia arriba en λ, lo que mejora el número de condición y garantiza que la matriz sea invertible aunque XᵀX fuera singular. Ridge resuelve un problema numérico y un problema estadístico con la misma operación.

El problema estadístico es la colinealidad. Cuando dos características están muy correlacionadas, sus coeficientes individuales quedan mal determinados: pueden compensarse con valores enormes y de signo opuesto sin que el ajuste empeore. Ridge penaliza esa magnitud y reparte el peso entre ambas de forma estable.

Dos precauciones que importan. Primera: hay que estandarizar antes, porque la penalización depende de la escala y una característica medida en milímetros recibiría un trato distinto que la misma en metros. Segunda: el término independiente no se regulariza, porque encogerlo no tiene sentido —solo desplaza el nivel— y sesgaría las predicciones.

Ejemplo trabajado

Efecto de λ sobre coeficientes, error y condicionamiento.

  λ         pesos                        ‖w‖₂
 0,0   [2,032145 ; 1,488677 ; −0,353039]  2,5437
 0,1   [2,022454 ; 1,490112 ; −0,351255]  2,5366
 1,0   [1,944037 ; 1,497998 ; −0,328931]  2,4762
10,0   [1,473261 ; 1,486815 ; −0,080571]  2,0947

Ningún coeficiente llega a ser exactamente cero.

Número de condición:
  sin regularizar: 364,65
  con λ = 1:       258,72

La regularización estabiliza el problema numérico
además de controlar el sobreajuste.

Qué ejecuta el laboratorio

Ridge: L2 encoge los coeficientes y estabiliza el mal condicionamiento.

GrupoSalidas
Resultados numéricos (2)condicion_sin_regularizar, condicion_con_λ=1
Comprobaciones (1)ridge_nunca_anula_coeficientes
compmath run 283

Errores conceptuales frecuentes

  1. Aplicar Ridge sin estandarizar las características.
  2. Regularizar también el término independiente.
  3. Esperar que Ridge produzca coeficientes nulos.

Dónde se usa

Regresión con características correlacionadas, weight decay en redes, estabilización de problemas mal condicionados y regularización por defecto.

Bibliografía de la clase

284 · Lasso y regularización L1

Parte 14 · clase 4 de 20 · demostración lasso

La bola L1 tiene vértices sobre los ejes, y por eso Lasso produce ceros exactos.

J(w) = ‖Xw − y‖² + λ‖w‖₁
sin solución cerrada: descenso por coordenadas o subgradiente
λ mayor ⟹ más coeficientes exactamente cero

Fundamentos

Lasso penaliza la suma de valores absolutos en vez de la de cuadrados. El cambio parece menor y produce un comportamiento cualitativamente distinto: los coeficientes no solo se encogen, sino que llegan a valer exactamente cero, lo que convierte a Lasso en un selector automático de variables.

La explicación es geométrica y merece verse. La restricción ‖w‖₂ ≤ t es una bola redonda; la restricción ‖w‖₁ ≤ t es un rombo con vértices sobre los ejes. La solución es el punto donde las curvas de nivel del error tocan por primera vez la región admisible, y una curva de nivel elíptica toca un rombo con muchísima más probabilidad en un vértice que en una arista. Un vértice del rombo tiene coordenadas nulas.

El precio es que el valor absoluto no es derivable en cero, así que no hay solución cerrada y hay que recurrir al descenso por coordenadas o a métodos de subgradiente. Es un coste computacional asumible y ampliamente resuelto en las bibliotecas.

La elección entre Ridge y Lasso depende de lo que se crea del problema. Si se sospecha que solo unas pocas variables importan, Lasso las encuentra. Si se cree que todas contribuyen un poco, Ridge es mejor. Con variables muy correlacionadas Lasso elige una arbitrariamente y descarta el resto, lo que puede ser inestable, y por eso existe elastic net, que combina ambas penalizaciones.

Ejemplo trabajado

Cuatro valores de λ y el número de ceros exactos.

  λ         pesos                          ceros
0,00   [2,031169 ; 1,489542 ; −0,354419]     0
0,05   [2,155953 ; 1,300580 ; −0,006201]     0
0,30   [1,795790 ; 1,377911 ;  0,000000]     1
1,00   [0,774479 ; 1,605474 ;  0,000000]     1

Con λ = 0,30 el tercer coeficiente es exactamente 0,
no un número pequeño: la variable queda eliminada.

Ridge con el mismo λ dejaría −0,0806: pequeño pero no nulo.

Geometría: la bola L1 tiene vértices en los ejes,
y el óptimo cae sobre ellos con alta probabilidad.

Qué ejecuta el laboratorio

Lasso: L1 produce ceros exactos gracias a su geometría.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (2)L2_produce_ceros, L1_selecciona_features
compmath run 284

Errores conceptuales frecuentes

  1. Aplicar Lasso sin estandarizar las características.
  2. Interpretar la selección de Lasso como causalidad.
  3. Usar Lasso con variables muy correlacionadas esperando estabilidad.

Dónde se usa

Selección automática de variables, modelos dispersos, compressed sensing y análisis con muchas más características que observaciones.

Bibliografía de la clase

285 · Regresión logística y sigmoid

Parte 14 · clase 5 de 20 · demostración logistic_regression

El gradiente de la regresión logística es (p − y)·x, idéntico en forma al de la lineal.

σ(z) = 1/(1 + e⁻ᶻ)
P(y=1|x) = σ(wᵀx + b)
∇ = (σ(wᵀx) − y)·x

Fundamentos

La regresión logística resuelve el problema de que una salida lineal puede valer cualquier número real mientras que una probabilidad debe estar entre 0 y 1. La sigmoide hace esa conversión de forma suave y monótona, y su inversa —el logit— tiene una interpretación limpia: el logaritmo de la razón de probabilidades es lineal en las características.

Los parámetros se estiman por máxima verosimilitud. Bajo un modelo Bernoulli, la log-verosimilitud negativa es exactamente la entropía cruzada de la clase 263, así que la pérdida no se elige: se deduce del modelo probabilístico. A diferencia de la regresión lineal, no hay solución cerrada y hay que iterar.

El resultado más útil de la derivación es la forma del gradiente: (p − y)·x, donde p es la probabilidad predicha. Es idéntico en forma al de la regresión lineal con error cuadrático, sustituyendo la predicción por la probabilidad. Esa coincidencia no es casualidad —ambos son modelos lineales generalizados— y permite implementar los dos casos con el mismo bucle.

Pese al nombre, es un clasificador y no un regresor. Y pese a su simplicidad sigue siendo una línea base extraordinariamente competitiva: es interpretable, entrena en segundos, da probabilidades bien calibradas y en muchos problemas tabulares queda a pocos puntos del mejor modelo complejo. Empezar por otra cosa suele ser un error.

Ejemplo trabajado

Ochenta observaciones separables en dos dimensiones.

pesos aprendidos: [−3,354299 ; 4,597644 ; 5,088564]
                   (sesgo, w₁, w₂)

accuracy = 1,0
log loss = 0,006853

σ(0) = 0,5   →  la frontera está en wᵀx + b = 0

Gradiente: (σ(wᵀx) − y)·x
  si p = 0,99 y y = 1  →  factor 0,01, corrección mínima
  si p = 0,01 y y = 1  →  factor −0,99, corrección máxima

La misma forma que el gradiente de la regresión lineal,
con p en lugar de ŷ.

Qué ejecuta el laboratorio

Regresión logística derivada desde la log-verosimilitud.

GrupoSalidas
Resultados numéricos (4)observaciones, accuracy, log_loss, sigmoid(0)
Comprobaciones (1)modelo_lineal_en_el_log_odds
compmath run 285

Errores conceptuales frecuentes

  1. Tratarla como un modelo de regresión por su nombre.
  2. Aplicarla a datos perfectamente separables sin regularizar: los pesos divergen.
  3. Interpretar los coeficientes como probabilidades en vez de como logits.

Dónde se usa

Clasificación binaria, scoring crediticio, línea base en cualquier problema tabular y capa de salida de redes neuronales.

Bibliografía de la clase

286 · Cross-entropy en clasificación

Parte 14 · clase 6 de 20 · demostración classification_loss

Estar seguro y equivocado cuesta sin límite con entropía cruzada, y poco con error cuadrático.

CE = −log p(clase correcta)
MSE = (p − y)²  ≤ 1  siempre
CE → ∞ cuando p → 0

Fundamentos

Comparar entropía cruzada con error cuadrático en clasificación revela por qué la primera es la elección correcta, y la razón es cuantitativa antes que teórica: cómo penalizan la confianza equivocada.

El error cuadrático está acotado. Con probabilidades entre 0 y 1, el error máximo posible es 1, así que un modelo completamente seguro y completamente equivocado recibe una penalización finita y modesta. La entropía cruzada, en cambio, crece sin límite: si la probabilidad asignada a la respuesta correcta tiende a cero, la pérdida tiende a infinito.

Ese comportamiento es exactamente el deseable. Un modelo que dice «99 % seguro» y falla merece un castigo mucho mayor que uno que dice «55 % seguro» y falla, porque la afirmación era mucho más fuerte. La entropía cruzada codifica esa asimetría y el error cuadrático la aplana.

Hay además una razón de optimización. Con sigmoide y error cuadrático, el gradiente contiene la derivada de la sigmoide, que se satura y se hace casi nula cuando la predicción es extrema: el modelo equivocado y seguro deja de aprender. Con entropía cruzada esa derivada se cancela algebraicamente y el gradiente queda (p − y), proporcional al error. La elección de pérdida arregla un problema de gradientes, no solo de interpretación.

Ejemplo trabajado

Cuatro situaciones, dos funciones de pérdida.

caso                    p predicha    CE        MSE
correcto y seguro          0,99     0,01005   0,0001
correcto y dudoso          0,55     0,59784   0,2025
incorrecto y dudoso        0,45     0,79851   0,2025
incorrecto y seguro        0,01     4,60517   0,9801

Razón entre incorrecto-seguro e incorrecto-dudoso:
  entropía cruzada: 5,77×
  error cuadrático: 3,24×

La entropía cruzada castiga mucho más la seguridad
equivocada, que es exactamente lo que se busca.

Y su gradiente no se satura: (p − y), sin factor σ'.

Qué ejecuta el laboratorio

Cross-entropy penaliza la confianza equivocada de forma no acotada.

GrupoSalidas
Resultados numéricos (2)razon_CE_seguro_vs_dudoso, razon_MSE_seguro_vs_dudoso
Comprobaciones (1)CE_castiga_mucho_mas
compmath run 286

Errores conceptuales frecuentes

  1. Usar error cuadrático con salidas sigmoides y sufrir gradientes saturados.
  2. Aplicar softmax dos veces cuando la pérdida ya lo incluye.
  3. Confundir accuracy con calidad de las probabilidades predichas.

Dónde se usa

Función de pérdida de todo clasificador, calibración de modelos, entrenamiento de modelos de lenguaje y evaluación probabilística.

Bibliografía de la clase

287 · Naive Bayes

Parte 14 · clase 7 de 20 · demostración naive_bayes

Naive Bayes supone algo falso y clasifica bien, porque solo necesita el orden.

P(c|x) ∝ P(c)·Π P(xᵢ|c)
supuesto: independencia condicional dada la clase
se trabaja en logaritmos para evitar subdesbordamiento

Fundamentos

Naive Bayes aplica el teorema de Bayes de la clase 186 a la clasificación, y para hacer el cálculo tratable supone que las características son independientes dada la clase. Ese supuesto permite factorizar la verosimilitud conjunta en un producto de términos unidimensionales, que sí se pueden estimar con pocos datos.

El supuesto casi nunca es cierto. En un texto, la aparición de una palabra está claramente correlacionada con la de otras; en datos médicos, los síntomas se agrupan. Y sin embargo el clasificador funciona sorprendentemente bien, hecho comprobado durante décadas en filtrado de spam.

La explicación es que la clasificación solo necesita el orden, no el valor. Aunque las probabilidades estimadas estén mal calibradas —y con el supuesto ingenuo lo están, tienden a valores extremos—, la clase con mayor probabilidad suele seguir siendo la correcta. Naive Bayes es mal estimador de probabilidad y buen clasificador, y conviene no usarlo cuando lo que se necesita es el valor de la probabilidad.

Dos detalles de implementación son obligatorios. Trabajar en logaritmos, porque multiplicar cientos de densidades produce subdesbordamiento a cero. Y aplicar suavizado de Laplace, sumando un pseudo-conteo, para que una categoría nunca vista no anule toda la probabilidad de la clase con un cero multiplicativo.

Ejemplo trabajado

Naive Bayes gaussiano sobre dos clases y dos características.

clase 0: prior 0,5   medias (−1,1503 ; −1,0020)
                      varianzas (0,5396 ; …)
clase 1: prior 0,5   medias ( 2,1592 ;  1,8087)

accuracy = 1,0

Supuesto: P(x₁,x₂|c) = P(x₁|c)·P(x₂|c)
Aquí se cumple aproximadamente porque las características
se generaron independientes.

Cálculo en logaritmos:
  log P(c|x) = log P(c) + Σ log P(xᵢ|c) + constante
Sin logaritmos, con 100 características el producto
sería del orden de 1e-200 y se redondearía a cero.

Qué ejecuta el laboratorio

Naive Bayes gaussiano: independencia condicional como supuesto explícito.

GrupoSalidas
Resultados numéricos (1)accuracy
Comprobaciones (0)
compmath run 287

Errores conceptuales frecuentes

  1. Multiplicar probabilidades en vez de sumar logaritmos.
  2. Omitir el suavizado y dejar que un conteo cero anule la clase.
  3. Usar sus probabilidades como estimaciones calibradas.

Dónde se usa

Filtrado de spam, clasificación de texto, diagnóstico rápido con muchas variables y línea base con pocos datos.

Bibliografía de la clase

288 · k-Nearest Neighbors y métricas

Parte 14 · clase 8 de 20 · demostración knn

k-NN no entrena nada, y por eso la métrica y el escalado lo deciden todo.

predicción = mayoría entre los k vecinos más cercanos
distancia euclídea: √Σ(aᵢ − bᵢ)²
sin escalar, la característica de mayor rango domina

Fundamentos

k-NN es el algoritmo más simple posible: guardar todos los datos y, ante una consulta, buscar los k puntos más parecidos y votar. No hay entrenamiento, no hay parámetros aprendidos, y toda la complejidad se traslada al momento de la predicción.

Como la única operación es medir distancias, la elección de la métrica es el modelo. Y la consecuencia más importante es que hay que estandarizar: si una característica va de 0 a 1 y otra de 0 a 10 000, la segunda domina completamente la distancia y la primera se vuelve irrelevante. No es un ajuste opcional; sin estandarizar se está usando una métrica arbitraria dictada por las unidades de medida.

El parámetro k controla el compromiso sesgo-varianza de forma muy visible. Con k = 1 la frontera es irregular y se ajusta a cada punto, incluido el ruido: varianza alta. Con k grande la frontera se suaviza y puede ignorar estructura real: sesgo alto. Se elige por validación, y conviene que sea impar en problemas binarios para evitar empates.

Su límite duro es la maldición de la dimensionalidad. En dimensión alta, las distancias entre puntos aleatorios convergen a un valor común, con lo que «el vecino más cercano» deja de ser distinguible del más lejano y el método pierde sentido. Es el ejemplo más claro de que la intuición geométrica de dos dimensiones no escala.

Ejemplo trabajado

Predicción para el punto (1, 1) con distintos valores de k.

consulta: (1,0 ; 1,0)

k = 1    →  clase 1
k = 5    →  clase 1
k = 21   →  clase 1

Los datos están bien separados: k no cambia la respuesta.

Efecto del escalado:
  con la segunda característica multiplicada por 100,
  la predicción sigue siendo clase 1 en este caso,
  pero la distancia pasa a estar dominada por x₂:
  la contribución de x₁ cae al 0,01 % del total.

Con clases menos separadas, ese desequilibrio
cambiaría la respuesta.

Qué ejecuta el laboratorio

k-NN: la métrica y el escalado deciden el resultado.

GrupoSalidas
Resultados numéricos (4)prediccion_k=1, prediccion_k=5, prediccion_k=21, prediccion_con_x2_escalada_x100
Comprobaciones (2)el_escalado_cambia_la_respuesta, k_par_puede_empatar
compmath run 288

Errores conceptuales frecuentes

  1. Aplicar k-NN sin estandarizar las características.
  2. Usar k par en clasificación binaria.
  3. Aplicarlo en dimensión alta sin reducción previa.

Dónde se usa

Sistemas de recomendación, búsqueda por similitud, imputación de valores faltantes y recuperación de vecinos en bases vectoriales.

Bibliografía de la clase

289 · SVM y margen máximo

Parte 14 · clase 9 de 20 · demostración svm_margin

Maximizar el margen equivale a minimizar la norma de w, y solo unos pocos puntos deciden.

frontera: wᵀx + b = 0
ancho del margen = 2/‖w‖
minimizar ‖w‖²  sujeto a  yᵢ(wᵀxᵢ + b) ≥ 1

Fundamentos

Cuando dos clases son separables hay infinitos hiperplanos que las separan. SVM elige uno con un criterio concreto: el que deja el margen más ancho a ambos lados. La intuición es que un margen amplio es más robusto ante datos nuevos ligeramente desplazados.

La formalización es bonita. Si se normaliza para que los puntos más cercanos cumplan |wᵀx + b| = 1, el ancho del margen resulta ser 2/‖w‖. Maximizar el margen es por tanto minimizar ‖w‖, y el problema completo es un programa cuadrático con restricciones lineales: exactamente la clase 258.

La propiedad más característica es que la solución depende únicamente de los vectores de soporte, los puntos que tocan el margen. Todos los demás podrían eliminarse del conjunto de entrenamiento sin que la frontera cambiara. Eso hace el modelo compacto y explica su buen comportamiento con conjuntos pequeños.

Con clases no separables se introduce el margen blando: variables de holgura que permiten violaciones penalizadas, con un parámetro C que regula el compromiso entre margen ancho y errores tolerados. Combinado con el kernel de la clase siguiente, SVM fue el método dominante en clasificación entre 1995 y 2012.

Ejemplo trabajado

SVM lineal sobre dos clases separables.

w = (1,151743 ; 1,007988)      b = −0,82

‖w‖ = 1,53054
ancho del margen = 2/‖w‖ = 1,306729

vectores de soporte: 3
accuracy = 1,0

Solo 3 de las 80 observaciones determinan la frontera.
Las otras 77 podrían borrarse sin cambiar nada.

Si se quisiera un margen más ancho habría que reducir ‖w‖,
pero entonces las restricciones yᵢ(wᵀxᵢ+b) ≥ 1 dejarían
de cumplirse: el óptimo es el equilibrio exacto.

Qué ejecuta el laboratorio

SVM: maximizar el margen equivale a minimizar ‖w‖.

GrupoSalidas
Resultados numéricos (6)b, norma_de_w, ancho_del_margen_2/|w|, vectores_de_soporte, accuracy, hinge_loss
Comprobaciones (1)solo_los_vectores_de_soporte_definen_la_frontera
compmath run 289

Errores conceptuales frecuentes

  1. Aplicar SVM sin estandarizar, ya que el margen depende de la escala.
  2. Usar margen duro con datos ruidosos o no separables.
  3. Elegir C sin validación cruzada.

Dónde se usa

Clasificación con pocos datos y muchas características, bioinformática, clasificación de texto y detección de anomalías con SVM de una clase.

Bibliografía de la clase

290 · Kernel trick

Parte 14 · clase 10 de 20 · demostración kernel_trick

El kernel calcula el producto escalar en el espacio expandido sin construirlo nunca.

K(a,b) = φ(a)ᵀφ(b)
kernel polinómico: K(a,b) = (aᵀb + c)^d
kernel RBF: K(a,b) = exp(−γ‖a−b‖²)

Fundamentos

Cuando los datos no son linealmente separables, una salida es transformarlos a un espacio de mayor dimensión donde sí lo sean. El problema es que ese espacio crece muy rápido: un polinomio de grado 3 sobre 100 características genera del orden de 170 000 términos, y calcularlos explícitamente es inviable.

El kernel trick observa que muchos algoritmos —SVM, PCA, regresión ridge— solo usan los datos a través de productos escalares. Si existe una función K(a,b) que devuelve directamente el producto escalar en el espacio expandido, nunca hace falta construir ese espacio. Se sustituyen los productos escalares por llamadas al kernel y todo funciona.

El ejemplo mínimo lo hace evidente: para el kernel polinómico de grado 2, calcular (aᵀb)² cuesta una multiplicación y una potencia, mientras que expandir a φ y hacer el producto en el espacio expandido cuesta bastante más y da exactamente el mismo número.

El caso extremo es el kernel RBF, que corresponde a un espacio de características de dimensión infinita y aun así se evalúa con una exponencial. El teorema de Mercer caracteriza qué funciones son kernels válidos: aquellas cuya matriz de Gram es siempre semidefinida positiva. Toda la maquinaria de los procesos gaussianos se apoya en esta misma idea.

Ejemplo trabajado

Kernel polinómico de grado 2 frente al espacio expandido.

a = (1, 2)       b = (3, 4)

Expansión explícita:
  φ(x) = (x₁², √2·x₁x₂, x₂²)
  φ(a) = (1,0 ; 2,828427 ; 4,0)
  φ(b) = (9,0 ; 16,970563 ; 16,0)

producto en el espacio expandido:
  1·9 + 2,828427·16,970563 + 4·16 = 121,0

Kernel directo:
  (aᵀb)² = (1·3 + 2·4)² = 11² = 121,0

Coinciden                                            ✓

Con d = 3 y 100 características, la expansión tendría
unos 170 000 términos; el kernel sigue costando lo mismo.

Qué ejecuta el laboratorio

El kernel calcula el producto punto sin construir el espacio.

GrupoSalidas
Resultados numéricos (5)producto_en_el_espacio_expandido, kernel_polinomico_(aᵀb)², dimension_explicita, operaciones_kernel, kernel_RBF
Comprobaciones (1)coinciden
compmath run 290

Errores conceptuales frecuentes

  1. Construir explícitamente el espacio de características cuando hay kernel.
  2. Usar RBF sin estandarizar ni ajustar γ.
  3. Aplicar como kernel una función que no es semidefinida positiva.

Dónde se usa

SVM no lineales, procesos gaussianos, PCA con kernel, métodos espectrales y análisis de similitud entre estructuras complejas.

Bibliografía de la clase

291 · Árboles: entropía y Gini

Parte 14 · clase 11 de 20 · demostración tree_impurity

Un árbol elige el corte que más reduce la impureza, y Gini y entropía casi siempre coinciden.

entropía = −Σ p·log₂ p
Gini = 1 − Σ p²
ganancia = impureza(padre) − Σ (nᵢ/n)·impureza(hijoᵢ)

Fundamentos

Un árbol de decisión parte el espacio con cortes paralelos a los ejes, eligiendo en cada nodo la característica y el umbral que producen hijos lo más puros posible. La construcción es voraz: se elige el mejor corte local sin garantía de optimalidad global, porque encontrar el árbol óptimo es un problema NP-completo.

Hay dos medidas habituales de impureza. La entropía es la de la clase 262 aplicada a la distribución de clases del nodo. El índice de Gini es la probabilidad de clasificar mal si se etiquetase al azar según la distribución del nodo. Ambas valen cero en un nodo puro y son máximas cuando las clases están equilibradas.

En la práctica rara vez producen árboles distintos. Gini es ligeramente más rápido porque evita el logaritmo, y por eso suele ser el valor por defecto. Elegir entre uno y otro es una de las decisiones menos importantes del modelado, pese a la atención que recibe.

La virtud del árbol es la interpretabilidad: la secuencia de decisiones se lee como reglas y se explica a cualquiera. Su defecto es la inestabilidad: cambiar unos pocos datos puede alterar el corte raíz y con él todo el árbol. Esa varianza alta es exactamente lo que el bagging de la clase siguiente ataca, y lo que hizo de los bosques aleatorios un método tan superior al árbol individual.

Ejemplo trabajado

Elección del mejor corte en el nodo raíz.

nodo raíz con clases equilibradas:
  entropía = 1,0 bits        Gini = 0,5

cortes evaluados: 28

mejor corte: característica 0, umbral 0,5
  ganancia de información = 0,915219 bits
  Gini tras el corte      = 0,02439

La impureza cae de 0,5 a 0,024: los hijos son
casi puros con un solo corte.

Entropía y Gini eligieron el mismo corte,
como ocurre en la inmensa mayoría de los casos.

Qué ejecuta el laboratorio

Entropía y Gini: dos medidas de impureza para elegir el corte.

GrupoSalidas
Resultados numéricos (5)entropia_del_nodo_raiz, gini_del_nodo_raiz, ganancia_de_informacion, gini_tras_el_corte, cortes_evaluados
Comprobaciones (1)ambos_criterios_suelen_coincidir
compmath run 291

Errores conceptuales frecuentes

  1. Dejar crecer el árbol sin límite y sobreajustar.
  2. Interpretar la importancia de variables sin considerar su correlación.
  3. Debatir entre Gini y entropía en vez de controlar la profundidad.

Dónde se usa

Modelos interpretables, segmentación de clientes, sistemas de reglas y componente base de Random Forest y gradient boosting.

Bibliografía de la clase

292 · Random Forest desde probabilidad

Parte 14 · clase 12 de 20 · demostración random_forest

Promediar modelos solo reduce la varianza en la medida en que estén decorrelacionados.

Var(media de k modelos) = ρσ² + (1−ρ)σ²/k
ρ = 0  ⟹  varianza / k
ρ = 1  ⟹  no hay ganancia

Fundamentos

El bagging entrena varios modelos sobre remuestras bootstrap de los datos y promedia sus predicciones. La idea es que los errores independientes se cancelan al promediarse, igual que el error de la media muestral decae en la clase 203.

La fórmula de la varianza del promedio dice exactamente cuánta ganancia hay, y su lectura es la lección de la clase. El segundo término se divide por k y desaparece con muchos modelos; el primero, ρσ², no depende de k y no se puede reducir añadiendo árboles. Si los modelos están muy correlacionados, promediar mil no sirve de mucho más que promediar diez.

De ahí viene la aportación específica de Random Forest sobre el bagging simple: además de remuestrear las observaciones, en cada corte considera solo un subconjunto aleatorio de características. Eso fuerza a los árboles a usar variables distintas y reduce ρ, que es el término que limita la ganancia. La aleatoriedad extra empeora cada árbol individual y mejora el conjunto.

El bagging ataca la varianza, no el sesgo. Promediar cien modelos igualmente sesgados da un modelo igual de sesgado. Por eso funciona tan bien con árboles profundos, que tienen sesgo bajo y varianza alta, y apenas aporta con modelos rígidos como la regresión lineal.

Ejemplo trabajado

Bosque de tocones frente a un tocón único.

25 árboles de profundidad 1 (tocones)
muestreo: bootstrap con reemplazo

accuracy de un árbol único: 0,9875
accuracy del bosque:        0,9875

Aquí no hay ganancia porque el problema es tan fácil
que el tocón único ya acierta casi todo: no queda
varianza que reducir.

Fórmula: Var = ρσ² + (1−ρ)σ²/k
  ρ = 0,0  →  varianza / 25
  ρ = 0,5  →  varianza × 0,52, no × 0,04
  ρ = 1,0  →  sin ganancia

Por eso Random Forest muestrea también características:
para bajar ρ, no para subir k.

Qué ejecuta el laboratorio

Bagging: promediar modelos decorrelacionados reduce la varianza.

GrupoSalidas
Resultados numéricos (5)arboles, profundidad, accuracy_arbol_unico, accuracy_del_bosque, semilla
Comprobaciones (1)reduce_varianza_no_sesgo
compmath run 292

Errores conceptuales frecuentes

  1. Añadir árboles esperando ganancia cuando están muy correlacionados.
  2. Aplicar bagging a modelos de sesgo alto y varianza baja.
  3. Olvidar que el error out-of-bag es una estimación gratuita de validación.

Dónde se usa

Random Forest en datos tabulares, estimación de importancia de variables, ensembles de modelos y reducción de varianza en predicciones.

Bibliografía de la clase

293 · Boosting y descenso funcional

Parte 14 · clase 13 de 20 · demostración boosting

Boosting es descenso de gradiente en el espacio de funciones: cada modelo ajusta el residuo.

F_m(x) = F_{m−1}(x) + ν·h_m(x)
h_m ajusta el residuo: y − F_{m−1}(x)
ν = learning rate, típicamente 0,01 a 0,3

Fundamentos

El boosting construye el modelo por acumulación secuencial: se empieza con una predicción constante y en cada ronda se entrena un aprendiz débil sobre lo que el conjunto actual todavía no explica. El resultado final es la suma de todos ellos.

La interpretación moderna, debida a Friedman, es que se trata de descenso de gradiente en el espacio de funciones. El residuo y − F(x) es, para la pérdida cuadrática, el gradiente negativo respecto de la predicción, y cada nuevo modelo da un paso en esa dirección. Esa lectura permite sustituir el residuo por el gradiente de cualquier pérdida diferenciable, que es lo que hace general al método.

La diferencia con el bagging es de objetivo. Bagging reduce varianza promediando modelos independientes; boosting reduce sesgo encadenando modelos dependientes. Por eso bagging usa árboles profundos y boosting usa árboles muy superficiales, a menudo de profundidad 3 o menos.

El learning rate ν controla cuánto se incorpora de cada modelo nuevo. Valores pequeños necesitan más rondas pero generalizan mejor, y la práctica establecida es usar ν bajo con muchas rondas y parada temprana. XGBoost, LightGBM y CatBoost son implementaciones de esta idea y siguen siendo lo mejor disponible en datos tabulares, por encima de las redes profundas.

Ejemplo trabajado

Cuarenta observaciones ajustadas por tocones sucesivos.

aprendiz débil: tocón de decisión (un solo corte)
learning rate: 0,3

MSE inicial (predicción constante): 2,46596

ronda    MSE
  1     1,53420
  5     0,35558
 10     0,12xxx
 20     0,05xxx

El error baja monótonamente ronda tras ronda.

Cada tocón por separado es apenas mejor que el azar;
la suma de veinte ajusta bien la función.

Con ν = 0,3, cada modelo aporta solo el 30 % de su
corrección: más rondas, mejor generalización.

Qué ejecuta el laboratorio

Boosting: cada modelo corrige el residuo del anterior (descenso funcional).

GrupoSalidas
Resultados numéricos (3)observaciones, learning_rate, MSE_inicial
Comprobaciones (1)el_error_baja_monotonamente
compmath run 293

Errores conceptuales frecuentes

  1. Usar aprendices profundos y sobreajustar rápidamente.
  2. Fijar el número de rondas sin parada temprana.
  3. Entrenar boosting sobre datos con ruido de etiqueta sin regularizar.

Dónde se usa

XGBoost y LightGBM en competiciones y producción, modelos de riesgo, ranking de búsqueda y predicción sobre datos tabulares.

Bibliografía de la clase

294 · k-means como optimización

Parte 14 · clase 14 de 20 · demostración kmeans

k-means minimiza la inercia alternando asignación y recálculo, y nunca empeora.

objetivo: min Σ‖xᵢ − μ_{c(i)}‖²
paso 1: asignar cada punto a su centroide más cercano
paso 2: recalcular cada centroide como la media de los suyos

Fundamentos

k-means agrupa datos minimizando la inercia: la suma de distancias al cuadrado de cada punto a su centroide. El algoritmo de Lloyd alterna dos pasos, y cada uno reduce esa cantidad, lo que garantiza convergencia monótona a un óptimo local.

La garantía es solo local. El resultado depende de la inicialización, y con centroides iniciales malos puede converger a una solución claramente peor. La inicialización k-means++ elige puntos iniciales dispersos con una regla probabilística y reduce mucho ese riesgo; ejecutar varias veces y quedarse con la de menor inercia es la práctica complementaria.

El método impone supuestos que conviene tener presentes porque no siempre se dicen: usar distancia euclídea equivale a suponer agrupamientos esféricos y de tamaño similar. Con grupos alargados, con densidades muy distintas o con formas no convexas, k-means falla de forma sistemática, y ahí corresponden DBSCAN o agrupamiento espectral.

Elegir k es el problema abierto. La inercia siempre baja al aumentar k —con k = n vale cero— así que no sirve como criterio directo. Las heurísticas habituales son el método del codo, el coeficiente de silueta o el gap statistic, y ninguna es definitiva: k suele decidirse por conocimiento del dominio.

Ejemplo trabajado

Dos grupos, convergencia en tres iteraciones.

k = 2

iteración    inercia
    1       92,527761
    3       89,596534

centroides finales:
  ( 2,1592 ;  1,8087)
  (−1,1503 ; −1,0020)

La inercia nunca sube: cada paso la reduce o la deja igual. ✓
Convergió en 3 iteraciones.

Los centroides coinciden con las medias reales de las
clases, aunque el algoritmo no vio ninguna etiqueta.

Qué ejecuta el laboratorio

k-means como minimización de la inercia (Lloyd).

GrupoSalidas
Resultados numéricos (3)k, iteraciones_hasta_converger, semilla
Comprobaciones (2)la_inercia_nunca_sube, converge_a_un_optimo_local
compmath run 294

Errores conceptuales frecuentes

  1. Ejecutarlo una sola vez con inicialización aleatoria.
  2. Aplicarlo a grupos alargados o de densidades muy distintas.
  3. Elegir k minimizando la inercia, que siempre baja con k.

Dónde se usa

Segmentación de clientes, cuantización de color, compresión vectorial, inicialización de GMM y agrupamiento de embeddings.

Bibliografía de la clase

295 · Gaussian Mixture Models

Parte 14 · clase 15 de 20 · demostración gmm

Una mezcla de gaussianas asigna probabilidades en vez de etiquetas, y modela grupos de formas distintas.

p(x) = Σ πₖ·N(x | μₖ, σₖ²)
responsabilidad: γₖ(x) = πₖN(x|μₖ,σₖ²) / p(x)
Σ πₖ = 1

Fundamentos

Una mezcla de gaussianas es un modelo generativo: supone que cada punto se generó eligiendo primero una componente según los pesos π y muestreando después de su normal. Ajustar el modelo es estimar los pesos, las medias y las varianzas que mejor explican los datos observados.

Su diferencia con k-means es la asignación blanda. En vez de decidir a qué grupo pertenece cada punto, calcula la probabilidad de pertenecer a cada uno —la responsabilidad—. Un punto entre dos grupos recibe 0,5 y 0,5 en vez de una asignación arbitraria, y esa información es valiosa: identifica los casos ambiguos.

La segunda diferencia es la flexibilidad de forma. k-means impone grupos esféricos del mismo tamaño; un GMM con covarianza completa modela grupos elípticos, rotados y de tamaños distintos. De hecho k-means es el caso límite de un GMM con covarianzas esféricas iguales y responsabilidades llevadas al extremo.

El ajuste se hace con EM, y la log-verosimilitud crece monótonamente, lo que sirve de comprobación de la implementación. Hay una trampa conocida: si una componente colapsa sobre un solo punto, su varianza tiende a cero y la verosimilitud a infinito. Se evita con una cota inferior en la varianza o con regularización.

Ejemplo trabajado

Mezcla de dos componentes ajustada por EM.

componentes: 2

medias:            (−1,3009 ;  1,9702)
varianzas:         ( 0,3721 ;  0,9484)
pesos de mezcla:   ( 0,4481 ;  0,5519)     suman 1   ✓

log-verosimilitud por iteración:
  −145,345385
  −144,860751
  −144,766128

Nunca baja                                           ✓

Las varianzas son distintas: 0,37 frente a 0,95.
k-means habría impuesto grupos del mismo tamaño y
habría clasificado mal la frontera entre ambos.

Qué ejecuta el laboratorio

Mezcla de gaussianas: asignación blanda en lugar de dura.

GrupoSalidas
Resultados numéricos (1)componentes
Comprobaciones (1)la_log_verosimilitud_nunca_baja
compmath run 295

Errores conceptuales frecuentes

  1. Dejar que una componente colapse sobre un punto sin cota en la varianza.
  2. Inicializar al azar en vez de con k-means.
  3. Suponer normalidad de los grupos sin comprobarla.

Dónde se usa

Agrupamiento probabilístico, modelado de densidad, detección de anomalías, separación de hablantes y segmentación de imágenes.

Bibliografía de la clase

296 · EM algorithm

Parte 14 · clase 16 de 20 · demostración em_algorithm

EM alterna estimar lo latente y optimizar los parámetros, y la verosimilitud nunca baja.

E-step: estimar la distribución de las latentes dados los parámetros
M-step: maximizar los parámetros dada esa distribución
garantía: la log-verosimilitud crece o se mantiene

Fundamentos

El algoritmo EM resuelve un problema circular: para estimar los parámetros haría falta saber qué componente generó cada dato, y para saberlo haría falta conocer los parámetros. La salida es alternar, empezando por una suposición cualquiera y refinando ambas cosas por turnos.

El paso E calcula, con los parámetros actuales, la distribución de probabilidad de las variables latentes. El paso M toma esas asignaciones blandas como si fueran datos ponderados y maximiza los parámetros. Se repite hasta que deja de haber cambio apreciable.

La garantía teórica es que la log-verosimilitud nunca decrece. La demostración construye una cota inferior que toca la verosimilitud en el punto actual y se maximiza en cada paso; esa cota es el ELBO, el mismo objeto que optimiza un autoencoder variacional. Ver EM primero hace que el ELBO de la parte 17 deje de parecer una construcción arbitraria.

Lo que no garantiza es alcanzar el óptimo global: converge a un óptimo local que depende de la inicialización, igual que k-means. Y puede ser lento cerca del óptimo. Su valor está en la generalidad: sirve para GMM, para modelos ocultos de Markov, para datos faltantes y para cualquier modelo con estructura latente.

Ejemplo trabajado

Dos monedas con sesgos desconocidos, sin saber cuál se usó.

20 tandas de 10 lanzamientos cada una
sesgos reales:    [0,80 ; 0,30]
inicialización:   [0,60 ; 0,40]

iteración    p_A        p_B
    1      0,726455   0,428502
    5      0,8xxxxx   0,4xxxxx
  final    0,848956   0,451121

Sin saber nunca qué moneda generó cada tanda,
EM recupera aproximadamente los dos sesgos.

El error residual viene de los datos finitos:
20 tandas no bastan para separar perfectamente.
La log-verosimilitud creció en cada iteración.   ✓

Qué ejecuta el laboratorio

EM: E-step y M-step sobre datos con una variable latente.

GrupoSalidas
Resultados numéricos (3)tandas, lanzamientos_por_tanda, semilla
Comprobaciones (0)
compmath run 296

Errores conceptuales frecuentes

  1. Ejecutar EM una sola vez desde una inicialización arbitraria.
  2. Confundir convergencia de la verosimilitud con optimalidad global.
  3. Detener el algoritmo por número de iteraciones sin criterio de cambio.

Dónde se usa

Ajuste de GMM, modelos ocultos de Markov, imputación de datos faltantes, topic models y base conceptual de la inferencia variacional.

Bibliografía de la clase

297 · PCA aplicado a ML

Parte 14 · clase 17 de 20 · demostración pca_ml

PCA elige las direcciones de máxima varianza, y a menudo unas pocas bastan.

autovectores de la matriz de covarianza
varianza explicada por PCᵢ = λᵢ / Σλⱼ
equivale a la SVD de los datos centrados

Fundamentos

PCA busca las direcciones en las que los datos varían más y las usa como nuevo sistema de coordenadas. Las componentes son los autovectores de la matriz de covarianza, ordenados por autovalor, y cada autovalor mide cuánta varianza captura su dirección.

Su valor práctico está en que la varianza suele concentrarse en pocas componentes. Si dos componentes de cincuenta explican el 95 % de la varianza, se puede trabajar con dos dimensiones en vez de cincuenta, perdiendo poco. Eso acelera el cómputo, reduce el ruido y permite visualizar.

Como se vio en la parte 06, PCA es la SVD de los datos centrados, y por eso en la práctica se calcula así en vez de formando la covarianza: la SVD es numéricamente más estable y evita elevar al cuadrado el número de condición, exactamente el problema de la clase 234.

Dos precauciones. Hay que estandarizar si las características tienen escalas distintas, porque si no la de mayor rango domina las componentes por razones de unidades. Y las componentes son combinaciones lineales de todas las variables originales, lo que las hace difíciles de interpretar: PCA sacrifica interpretabilidad a cambio de compresión, y para selección de variables interpretable es mejor Lasso.

Ejemplo trabajado

PCA sobre datos bidimensionales correlacionados.

matriz de covarianza:
  [[3,3785  2,4463]
   [2,4463  2,5285]]

autovalores: [5,436476 ; 0,470507]

varianza explicada por PC1: 92,03 %
PC1 = (0,765237 ; 0,643749)

Reduciendo de 2 dimensiones a 1:
  accuracy usando solo PC1 = 1,0                     ✓

Se descartó el 8 % de la varianza y no se perdió
nada de capacidad discriminante.

Advertencia: la varianza no siempre coincide con
la información útil para clasificar.

Qué ejecuta el laboratorio

PCA como preprocesamiento: cuánta varianza se conserva.

GrupoSalidas
Resultados numéricos (4)dimension_original, varianza_explicada_PC1_%, accuracy_usando_solo_PC1, dimension_reducida
Comprobaciones (1)centrar_es_obligatorio
compmath run 297

Errores conceptuales frecuentes

  1. Aplicar PCA sin centrar ni estandarizar.
  2. Suponer que las direcciones de máxima varianza son las más discriminantes.
  3. Ajustar PCA sobre todo el conjunto antes de separar train y test.

Dónde se usa

Reducción de dimensión, visualización de datos, compresión, eliminación de ruido y preprocesamiento antes de modelos sensibles a la dimensión.

Bibliografía de la clase

298 · Bias-variance tradeoff

Parte 14 · clase 18 de 20 · demostración bias_variance

El error se descompone en sesgo, varianza y ruido, y solo los dos primeros se pueden tocar.

E[(y − ŷ)²] = sesgo² + varianza + ruido
modelo simple: sesgo alto, varianza baja
modelo complejo: sesgo bajo, varianza alta

Fundamentos

El error esperado de predicción se descompone exactamente en tres términos. El sesgo mide el error sistemático por suponer una forma demasiado simple; la varianza mide cuánto cambia la predicción según qué muestra concreta se haya usado para entrenar; y el ruido irreducible es la aleatoriedad de los propios datos, que ningún modelo puede eliminar.

La descomposición explica por qué más complejidad no es siempre mejor. Al aumentar la capacidad del modelo, el sesgo baja pero la varianza sube, y el error total tiene un mínimo en algún punto intermedio. Ese punto es lo que la validación busca, y por eso la curva de error de test tiene forma de U mientras la de entrenamiento solo baja.

Ambos extremos son diagnosticables. Sesgo alto se manifiesta como error alto tanto en entrenamiento como en test: el modelo no puede ni ajustar lo que ve. Varianza alta se manifiesta como error bajo en entrenamiento y alto en test: memoriza en vez de generalizar. Los remedios son opuestos, y confundir el diagnóstico lleva a empeorar el modelo.

Conviene añadir un matiz honesto. En redes muy sobreparametrizadas se observa el fenómeno del doble descenso: pasado el punto de interpolación, el error de test vuelve a bajar, contradiciendo la forma de U clásica. La descomposición sigue siendo válida y es la mejor guía disponible en el régimen habitual, pero no describe todo lo que ocurre en el aprendizaje profundo moderno.

Ejemplo trabajado

Polinomios de distinto grado ajustados a sin(2x).

función real: sin(2x)     punto de prueba: x = 1,0
valor real: 0,909297      120 réplicas de entrenamiento

grado 1:
  predicción media = 0,364146
  sesgo²           = 0,29719     alto
  varianza         = baja
  → subajuste: ni siquiera puede curvarse

grados intermedios:
  sesgo² baja, varianza sube, error total mínimo

grado alto:
  sesgo² ≈ 0
  varianza elevada
  → sobreajuste: cada muestra da una curva distinta

El error total tiene forma de U en el grado.

Qué ejecuta el laboratorio

Descomposición sesgo-varianza medida por simulación.

GrupoSalidas
Resultados numéricos (4)punto_de_prueba, valor_real, replicas, ruido_irreducible
Comprobaciones (2)grado_1_alto_sesgo, grado_9_alta_varianza
compmath run 298

Errores conceptuales frecuentes

  1. Aumentar la complejidad ante un problema de varianza.
  2. Añadir datos esperando reducir el sesgo, que no depende de n.
  3. Ignorar que el ruido irreducible pone un suelo al error alcanzable.

Dónde se usa

Diagnóstico de modelos, elección de capacidad, decisión entre recoger más datos o cambiar de modelo y diseño de curvas de aprendizaje.

Bibliografía de la clase

299 · Generalización, validación y leakage

Parte 14 · clase 19 de 20 · demostración generalization

Con datos sin ninguna relación real se puede obtener un 70 % de acierto si se evalúa mal.

separar train, validación y test antes de mirar nada
leakage: información del test que llega al entrenamiento
validación cruzada anidada para hiperparámetros

Fundamentos

Un modelo solo vale por lo que hace con datos que no ha visto. Medir eso correctamente es más difícil de lo que parece, y el leakage —cualquier filtración de información del conjunto de evaluación al de entrenamiento— es el error que más veces produce resultados brillantes y modelos inútiles en producción.

Sus formas son variadas y a menudo sutiles. Estandarizar usando la media de todo el conjunto antes de separar. Seleccionar características mirando su correlación con la etiqueta en todos los datos. Elegir hiperparámetros con el conjunto de test. Imputar valores faltantes globalmente. Y en series temporales, mezclar pasado y futuro al hacer validación cruzada aleatoria.

La demostración de esta clase es la más contundente posible: se generan datos donde X e y no tienen ninguna relación, puro ruido, y evaluando sobre los mismos datos con los que se entrenó se obtiene un 70 % de acierto. Con separación honesta la cifra cae al 60 %, todavía por encima del 50 % esperado por el azar, porque con 12 características y 60 observaciones queda margen para memorizar.

La disciplina que lo evita es sencilla de enunciar: separar el test al principio, no tocarlo hasta el final, hacer todo el preprocesamiento dentro de la validación cruzada, y usar validación anidada cuando hay hiperparámetros. Con series temporales, separar siempre por tiempo. Cuesta poco y es lo que distingue un resultado de una ilusión.

Ejemplo trabajado

Datos sin relación real entre X e y.

60 observaciones, 12 características
relación real entre X e y: NINGUNA

accuracy entrenando y evaluando en todo: 0,70
accuracy en train:                       0,65
accuracy en test:                        0,60

línea base por azar: 0,50

Un 70 % de acierto sobre ruido puro, obtenido
simplemente por evaluar donde se entrenó.

Incluso el 60 % del test está inflado: con 12
características y 60 datos, hay margen de memorización.
Solo la validación repetida daría una cifra fiable.

Qué ejecuta el laboratorio

Validación honesta frente a leakage: la misma métrica, dos verdades.

GrupoSalidas
Resultados numéricos (7)observaciones, features, accuracy_entrenando_y_evaluando_en_todo, accuracy_en_train, accuracy_en_test, brecha, accuracy_esperada_por_azar
Comprobaciones (0)
compmath run 299

Errores conceptuales frecuentes

  1. Estandarizar o imputar antes de separar train y test.
  2. Elegir hiperparámetros con el conjunto de test.
  3. Usar validación cruzada aleatoria en series temporales.

Dónde se usa

Diseño de experimentos de aprendizaje automático, auditoría de resultados, competiciones de ciencia de datos y validación de modelos antes de producción.

Bibliografía de la clase

300 · Capstone: derivar y comparar 6 algoritmos ML

Parte 14 · clase 20 de 20 · demostración capstone_six_algorithms

Seis algoritmos, un mismo protocolo: lo que cambia es el objetivo que cada uno optimiza.

mismo split, misma semilla, mismas características
línea base por azar: 0,5 en binario equilibrado
empate en accuracy ⟹ decidir por otros criterios

Fundamentos

El capstone entrena seis algoritmos sobre los mismos datos con el mismo protocolo: idéntica partición, idéntica semilla, idénticas características. Solo así la comparación mide el algoritmo y no las condiciones del experimento, que es la lección de la clase 260 aplicada aquí.

El resultado es que todos aciertan el 100 %, y eso es informativo en sí mismo: cuando el problema es fácil, la elección de algoritmo no importa. Comparar modelos sobre datos separables no distingue nada, y muchas comparaciones publicadas adolecen de ese defecto. Un problema que no discrimina entre métodos no sirve para elegir método.

Lo que sí distingue a los seis es qué objetivo optimiza cada uno: la regresión logística maximiza la log-verosimilitud, el clasificador por centroides minimiza distancia a la media, k-NN no optimiza nada porque no entrena, Naive Bayes maximiza la posterior bajo independencia, el árbol minimiza impureza y la SVM maximiza el margen. Seis objetivos distintos, seis fronteras distintas, la misma respuesta en este conjunto.

Cuando el accuracy empata, la decisión debe tomarse con otros criterios, y conviene tenerlos listos: interpretabilidad, coste de inferencia, calidad de las probabilidades, robustez ante datos desplazados y facilidad de mantenimiento. Elegir el modelo con 0,3 puntos más de accuracy ignorando que cuesta cien veces más en inferencia es una mala decisión de ingeniería.

Ejemplo trabajado

Seis algoritmos bajo el mismo protocolo.

protocolo: 80 observaciones, 56 train / 24 test
           semilla 20260821, mismas características

algoritmo                accuracy test    objetivo optimizado
regresión logística          1,00       log-verosimilitud
centroides                   1,00       distancia a la media
k-NN (k=5)                   1,00       ninguno, sin entrenar
Naive Bayes                  1,00       posterior con independencia
árbol de decisión            1,00       impureza
SVM lineal                   1,00       margen máximo

línea base por azar: 0,50

Empate total: el problema es demasiado fácil para
discriminar entre métodos.

Criterios de desempate: interpretabilidad, coste de
inferencia, calibración y robustez.

Qué ejecuta el laboratorio

Capstone: seis algoritmos derivados y comparados sobre los mismos datos.

GrupoSalidas
Resultados numéricos (1)linea_base_por_azar
Comprobaciones (0)
compmath run 300

Errores conceptuales frecuentes

  1. Comparar algoritmos sin fijar semilla ni partición.
  2. Sacar conclusiones de un problema donde todos empatan.
  3. Elegir modelo solo por accuracy, ignorando coste y calibración.

Dónde se usa

Selección de modelo en proyectos reales, informes de evaluación, decisiones de arquitectura y establecimiento de líneas base antes de probar modelos profundos.

Bibliografía de la clase

Parte 15 — Matemática de Deep Learning

Nivel deep-learning · 20 clases · 80 horas · motor part15

Perceptrón, MLP, activaciones, pérdidas, backpropagation paso a paso, grafos de cómputo, inicialización, normalización, convolución, recurrencia y embeddings.

Una red neuronal es una función compuesta con muchos parámetros, entrenada minimizando una pérdida con descenso de gradiente. Esa frase contiene todo, y esta parte la desarrolla pieza por pieza usando exactamente lo construido antes: la regla de la cadena de la parte 07, el gradiente y la autodiferenciación de la parte 08, los optimizadores de la parte 12 y las pérdidas de la parte 13.

Las clases 301 y 302 marcan la frontera histórica. El perceptrón converge si y solo si los datos son linealmente separables, y su incapacidad para resolver XOR —señalada por Minsky y Papert en 1969— congeló el campo durante una década. La solución es apilar capas con no linealidad entre ellas: sin ella, componer transformaciones lineales da otra transformación lineal y la profundidad no aporta nada. La capa oculta no clasifica: construye una representación en la que el problema sí es separable, y ese es el mecanismo esencial del aprendizaje profundo.

Las clases 303 a 306 son el motor. Cada activación tiene su zona de saturación, y la sigmoide, con derivada máxima de 0,25, garantiza que el gradiente se atenúe al menos cuatro veces por capa: por eso ReLU la desplazó. Backpropagation se desarrolla aquí paso a paso, con números, y se ve que no es un algoritmo nuevo sino la regla de la cadena aplicada en orden topológico inverso sobre el grafo de cómputo. El detalle que más se olvida al implementarlo a mano es que un nodo reutilizado acumula gradientes de todos sus consumos.

Las clases 307 a 309 tratan lo que hace entrenable una red profunda. La inicialización no es un detalle: con escala 0,01 las activaciones colapsan a cero en ocho capas y con escala 1,0 se saturan, mientras que Xavier y He mantienen la varianza estable en ambos sentidos. La normalización estabiliza la escala interna, y batch norm y layer norm se distinguen simplemente por el eje sobre el que promedian —una razón concreta por la que los Transformers usan layer norm—. El dropout introduce ruido en entrenamiento y conserva la esperanza en inferencia mediante escalado.

Las clases 310 a 312 desarrollan la convolución como capa: la fórmula del tamaño de salida con padding y stride, el campo receptivo que crece al apilar capas, y el hecho de que dos convoluciones de 3×3 cubren lo mismo que una de 5×5 con menos parámetros y más no linealidad —la observación que define VGG—.

Las clases 313 a 316 tratan las secuencias. Una RNN comparte pesos en el tiempo y acumula historia en su estado, pero el gradiente a través de 50 pasos es un producto de 50 factores: si cada uno es menor que 1 el producto se desvanece exponencialmente, y si es mayor explota. La LSTM resuelve el desvanecimiento con un camino aditivo para el estado de celda, y la GRU lo consigue con dos puertas en vez de tres y un 25 % menos de parámetros.

El cierre conecta con la práctica: embeddings como geometría del significado, las técnicas reales de entrenamiento —warmup, clipping, planificadores—, y la comparación entre el motor Var de la parte 08 y PyTorch o JAX, que hacen lo mismo con otra escala de ingeniería. El capstone entrena una red completa en Python puro sobre dos espirales entrelazadas, y comprueba que el gradiente derivado a mano coincide con el automático.

Ideas centrales

Por qué importa en IA

Toda arquitectura moderna, incluido el Transformer, se construye sobre estos bloques y sobre este mismo mecanismo de derivación.

Errores frecuentes de la parte

Glosario de la parte (36 términos)

TérminoDefiniciónClase
Acumulación de gradientesUn nodo usado en varios sitios suma las contribuciones de todos sus consumos.306
Autodiferenciación en modo reversoUna pasada hacia adelante y una hacia atrás dan todos los gradientes de una salida escalar.319
BackpropagationRegla de la cadena aplicada en orden topológico inverso sobre el grafo de cómputo.305
Batch normalizationNormaliza cada característica sobre el lote. Depende del tamaño del lote.308
Campo receptivoRegión de la entrada que influye en una activación concreta. Crece al apilar capas.311
Capa ocultaCapa intermedia que construye una representación donde el problema sí es separable.302
Compartición de parámetrosEl mismo núcleo se aplica en todas las posiciones. Reduce parámetros e impone invariancia.311
DropoutApagar neuronas al azar durante el entrenamiento para evitar coadaptación.309
EmbeddingRepresentación densa aprendida donde la proximidad geométrica refleja similitud.317
Estado de celdaMemoria de largo plazo de la LSTM, actualizada de forma aditiva.315
Estado ocultoVector que resume la historia procesada hasta el instante actual.313
Función de activaciónNo linealidad aplicada tras la transformación lineal. Sin ella la profundidad no aporta nada.303
Gradient clippingAcotar la norma del gradiente conservando su dirección. Evita la explosión.314
Gradiente que se desvaneceProducto de muchas derivadas menores que 1: el gradiente tiende a cero exponencialmente.314
Grafo de cómputoRepresentación de la expresión como nodos de operaciones y aristas de dependencia.306
GRUCelda recurrente con puertas de actualización y reinicio. Un 25 % menos de parámetros que LSTM.316
Inicialización de HeEscala √(2/n). Compensa que ReLU anula la mitad de las activaciones.307
Inicialización de XavierEscala 1/√n. Mantiene la varianza estable con activaciones simétricas como tanh.307
Inverted dropoutEscalar durante el entrenamiento para que la inferencia no requiera ajuste.309
Layer normalizationNormaliza cada muestra sobre sus características. Independiente del lote.308
LSTMCelda con puertas de olvido, entrada y salida, y un camino aditivo para el gradiente.315
PaddingRelleno del borde que permite conservar el tamaño espacial tras convolucionar.310
Paso hacia adelanteCálculo de las salidas capa a capa, guardando los valores intermedios.305
PerceptrónNeurona lineal con umbral. Converge si y solo si los datos son linealmente separables.301
Perceptrón multicapaComposición de capas lineales con no linealidad entre ellas.302
PoolingReducción espacial por máximo o media. Sin parámetros aprendidos.312
Pérdida de HuberCuadrática cerca de cero y lineal lejos. Robusta ante valores atípicos.304
Red recurrenteProcesa secuencias manteniendo un estado oculto y compartiendo pesos en el tiempo.313
ReLUmax(0, x). Derivada 1 en positivo: no satura por la derecha y es barata.303
Ruptura de simetríaInicializar con valores distintos para que las neuronas de una capa no aprendan lo mismo.307
SaturaciónZona donde la derivada de la activación es casi nula y el gradiente deja de fluir.303
Separabilidad linealExistencia de un hiperplano que separa las clases sin error. XOR no la cumple.301
Similitud cosenoCoseno del ángulo entre dos vectores. Ignora la magnitud y mide solo la dirección.317
StrideSalto del núcleo al desplazarse. Reduce el tamaño de salida.310
Teorema de aproximación universalUna capa oculta suficientemente ancha aproxima cualquier función continua. No dice cómo entrenarla.302
WarmupSubir el learning rate gradualmente al inicio para no divergir con estadísticas inmaduras.318

Bibliografía de la parte

301 · Perceptrón y separabilidad

Parte 15 · clase 1 de 20 · demostración perceptron

El perceptrón converge siempre en datos separables y nunca en XOR.

salida = 1 si wᵀx + b > 0, si no 0
actualización: w ← w + η·(y − ŷ)·x
teorema de convergencia: finito si hay separabilidad

Fundamentos

El perceptrón de Rosenblatt es la unidad mínima: una suma ponderada de las entradas seguida de un umbral. Su regla de aprendizaje es directa —cuando se equivoca, mueve los pesos en la dirección del ejemplo mal clasificado— y tiene una garantía teórica sólida.

El teorema de convergencia del perceptrón dice que si los datos son linealmente separables, el algoritmo encuentra un separador en un número finito de pasos. Es un resultado fuerte y raro en aprendizaje automático: una garantía absoluta, sin condiciones sobre el orden de los datos ni sobre la inicialización.

El problema es la otra cara. Si los datos no son separables, el algoritmo no converge nunca: sigue oscilando indefinidamente sin acercarse a nada. Y la función XOR, con apenas cuatro puntos, no es separable: no hay recta que deje (0,0) y (1,1) a un lado y (0,1) y (1,0) al otro.

Ese ejemplo de cuatro puntos tuvo consecuencias históricas desproporcionadas. Minsky y Papert lo publicaron en 1969, la financiación se retiró y el campo entró en el primer invierno de la inteligencia artificial. La solución —apilar capas— ya se intuía, pero faltaba el algoritmo para entrenarlas, y backpropagation no se popularizó hasta 1986.

Ejemplo trabajado

El mismo algoritmo sobre AND y sobre XOR.

AND (separable):
  pesos aprendidos: (2,0 ; 1,0)     sesgo: −2,0
  errores tras 100 épocas: 0                         ✓

  Comprobación:
    (0,0): 0·2 + 0·1 − 2 = −2  →  0                  ✓
    (1,1): 1·2 + 1·1 − 2 =  1  →  1                  ✓

XOR (no separable):
  errores tras 100 épocas: 4
  el algoritmo oscila sin converger                   ✗

No es un problema del algoritmo: no existe ninguna recta
que separe los cuatro puntos de XOR.

Qué ejecuta el laboratorio

Perceptrón: converge si y solo si los datos son linealmente separables.

GrupoSalidas
Resultados numéricos (3)AND_sesgo, AND_errores_tras_100_epocas, XOR_errores_tras_100_epocas
Comprobaciones (2)AND_es_separable, XOR_es_separable
compmath run 301

Errores conceptuales frecuentes

  1. Esperar convergencia del perceptrón con datos no separables.
  2. Concluir que la red no puede aprender cuando el problema es de arquitectura.
  3. Confundir el perceptrón clásico con la regresión logística, que sí da probabilidades.

Dónde se usa

Comprensión histórica del campo, línea base mínima, comprobación de separabilidad y unidad básica de toda red neuronal.

Bibliografía de la clase

302 · MLP como composición de funciones

Parte 15 · clase 2 de 20 · demostración mlp

Sin no linealidad entre capas, cien capas siguen siendo una sola transformación lineal.

MLP: f(x) = W₂·σ(W₁x + b₁) + b₂
sin σ:  W₂(W₁x + b₁) + b₂ = W'x + b'
XOR: 2 → 4 (tanh) → 1 (sigmoid)

Fundamentos

Un perceptrón multicapa apila transformaciones lineales con una función no lineal entre ellas. La no linealidad no es un adorno: es lo único que hace que la profundidad importe. Componer dos transformaciones lineales da otra transformación lineal, y por tanto una red sin activaciones, por profunda que sea, no puede hacer más que un modelo lineal de una capa.

Con no linealidad, la capa oculta hace algo cualitativamente distinto: transforma el espacio. Las neuronas ocultas no clasifican; construyen una nueva representación de la entrada en la que el problema original se vuelve separable, y la capa de salida se limita a trazar el hiperplano en ese espacio nuevo.

XOR es la demostración mínima. En el espacio original no hay recta que sirva; tras pasar por cuatro neuronas tanh, los cuatro puntos ocupan posiciones en las que sí la hay. Con 17 parámetros y unas cientos de épocas, el problema que hundió el campo en 1969 se resuelve.

El teorema de aproximación universal garantiza que una sola capa oculta suficientemente ancha aproxima cualquier función continua con la precisión que se quiera. Conviene leer con cuidado lo que no dice: no dice cuántas neuronas hacen falta —pueden ser exponencialmente muchas—, ni que el entrenamiento vaya a encontrarlas. Es un resultado de existencia, no de aprendibilidad, y la profundidad resulta ser mucho más eficiente en parámetros que la anchura.

Ejemplo trabajado

MLP resolviendo XOR con 17 parámetros.

arquitectura: 2 → 4 (tanh) → 1 (sigmoid)
parámetros: 17

época      pérdida
   1      1,0765723
 100      0,0249xxx
 500      0,00xxxxx

predicciones finales:
  (0,0) → 0,000049      esperado 0                   ✓
  (0,1) → 0,999856      esperado 1                   ✓
  (1,0) → 0,999829      esperado 1                   ✓
  (1,1) → 0,000xxx      esperado 0                   ✓

Sin tanh entre las capas, el modelo colapsaría a
una única transformación lineal y fallaría igual
que el perceptrón.

Qué ejecuta el laboratorio

MLP resolviendo XOR: la capa oculta crea una representación separable.

GrupoSalidas
Resultados numéricos (2)parametros, semilla
Comprobaciones (1)todas_correctas
compmath run 302

Errores conceptuales frecuentes

  1. Apilar capas lineales sin activación entre ellas.
  2. Interpretar el teorema de aproximación universal como garantía de entrenabilidad.
  3. Aumentar la anchura cuando el problema pide profundidad.

Dónde se usa

Bloque básico de toda arquitectura moderna, capas feed-forward de los Transformers, cabezas de clasificación y aproximación de funciones.

Bibliografía de la clase

303 · Funciones de activación

Parte 15 · clase 3 de 20 · demostración activations

La derivada máxima de la sigmoide es 0,25: cada capa divide el gradiente por cuatro como mínimo.

σ(x) = 1/(1+e⁻ˣ),   σ' ≤ 0,25
tanh' ≤ 1,   ReLU' = 1 en positivo
GELU: x·Φ(x), suave y no monótona cerca de cero

Fundamentos

La función de activación decide por dónde fluye el gradiente. Su elección parece un detalle y determina si una red profunda se puede entrenar, y la razón es puramente cuantitativa: el valor máximo de su derivada.

La sigmoide tiene derivada máxima 0,25, alcanzada en el origen. Eso significa que cada capa multiplica el gradiente por 0,25 como mucho, y con diez capas el factor acumulado es 0,25¹⁰ ≈ 10⁻⁶. La tanh mejora a 1,0 y además está centrada en cero, lo que ayuda a la optimización, pero sigue saturándose en ambos extremos.

ReLU cambió el panorama por su simplicidad: derivada exactamente 1 en la región positiva, así que el gradiente pasa intacto. Es además trivialmente barata de calcular. Su problema conocido es la muerte de neuronas: una unidad que queda siempre en la región negativa tiene gradiente cero y no vuelve a actualizarse nunca. Leaky ReLU y ELU mitigan eso con una pendiente pequeña en el lado negativo.

GELU es la activación de los Transformers modernos. Es suave en todo el dominio y no monótona cerca del origen, lo que empíricamente funciona mejor en esas arquitecturas. La elección de activación tiene menos margen del que sugiere la literatura: ReLU para redes convolucionales y GELU para Transformers cubre casi todos los casos razonables.

Ejemplo trabajado

Valores y derivadas de cinco activaciones.

x        sigmoid    tanh      relu   leaky    gelu
−5,0     0,006693  −0,999909  0,0   −0,05   −0,000001
−1,0     0,268941  −0,761594  0,0   −0,01   −0,158655
 0,0     0,500000   0,000000  0,0    0,00    0,000000
 1,0     0,731059   0,761594  1,0    1,00    0,841345
 5,0     0,993307   0,999909  5,0    5,00    4,999999

Derivadas máximas:
  sigmoid  0,25    →  10 capas: factor 1e-6
  tanh     1,00    →  mejor, pero satura en los extremos
  relu     1,00    →  sin saturación por la derecha

La sigmoide se satura claramente ya en |x| = 5:
su derivada allí es 0,0066.

Qué ejecuta el laboratorio

Activaciones y sus derivadas: dónde se saturan.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (3)sigmoid_se_satura, relu_no_se_satura_en_positivos, relu_muere_en_negativos
compmath run 303

Errores conceptuales frecuentes

  1. Usar sigmoide en capas ocultas de redes profundas.
  2. Ignorar la muerte de neuronas ReLU con learning rates altos.
  3. Cambiar de activación para arreglar un problema que era de inicialización.

Dónde se usa

Diseño de arquitecturas, diagnóstico de gradientes que no fluyen, elección entre ReLU y GELU y depuración de entrenamientos estancados.

Bibliografía de la clase

304 · Funciones de pérdida

Parte 15 · clase 4 de 20 · demostración loss_functions

Un solo valor atípico multiplica el MSE por cien mil; Huber lo absorbe.

MSE = media de (y − ŷ)²
MAE = media de |y − ŷ|
Huber: cuadrática si |e| ≤ δ, lineal si no

Fundamentos

La función de pérdida define qué significa equivocarse, y esa definición cambia por completo el modelo resultante. No es un parámetro secundario: es la especificación del problema.

El error cuadrático medio penaliza el cuadrado del error, así que un error diez veces mayor pesa cien veces más. Eso lo hace extremadamente sensible a los valores atípicos: una sola observación anómala puede dominar la suma y arrastrar el ajuste entero. El error absoluto medio penaliza linealmente y es mucho más robusto, a cambio de no ser derivable en cero y de converger más lentamente.

La pérdida de Huber combina lo mejor de ambas: se comporta como cuadrática para errores pequeños —donde interesa la sensibilidad y la derivabilidad— y como lineal para errores grandes —donde interesa la robustez—. El parámetro δ marca la transición, y es la opción por defecto razonable cuando se sospecha que hay ruido de medición.

Detrás de cada elección hay un modelo probabilístico implícito, como se vio en la clase 215: MSE supone ruido gaussiano, MAE supone ruido de Laplace con colas más pesadas, y entropía cruzada supone un modelo categórico. Elegir pérdida es declarar qué se cree del ruido, y hacerlo explícitamente evita elegir por costumbre.

Ejemplo trabajado

Cinco observaciones, una de ellas claramente anómala.

objetivos:    [1,0 ; 2,0 ; 3,0 ; 4,0 ; 100,0]
predicciones: [1,1 ; 2,1 ; 2,9 ; 4,2 ;   5,0]

MSE            = 1805,014
MAE            =   19,100
Huber (δ = 1)  =   18,907

MSE sin el atípico = 0,0175

El atípico multiplica el MSE por 103 000.
MAE y Huber apenas se descolocan.

Si ese 100,0 es un error de medición, MSE arruina
el ajuste entero por una sola observación.

Qué ejecuta el laboratorio

MSE, MAE, Huber y cross-entropy frente a un valor atípico.

GrupoSalidas
Resultados numéricos (4)MSE, MAE, Huber_delta_1, MSE_sin_el_atipico
Comprobaciones (2)el_atipico_domina_el_MSE, MAE_es_robusto
compmath run 304

Errores conceptuales frecuentes

  1. Usar MSE con datos que contienen errores de medición.
  2. Elegir la pérdida por costumbre sin considerar el modelo de ruido.
  3. Comparar valores de pérdidas distintas como si fueran la misma escala.

Dónde se usa

Regresión robusta, detección de objetos con pérdida Huber, entrenamiento con datos ruidosos y diseño de objetivos personalizados.

Bibliografía de la clase

305 · Backpropagation paso a paso

Parte 15 · clase 5 de 20 · demostración backpropagation

Backpropagation es la regla de la cadena recorrida hacia atrás, y se puede seguir con números.

forward: z = Wx + b,  a = σ(z)
backward: dL/dW = dL/dz · xᵀ
con cross-entropy y sigmoide: dL/dz = a − y

Fundamentos

Backpropagation no es un algoritmo aparte: es la regla de la cadena de la clase 147 aplicada sistemáticamente al grafo de la red, recorriendo los nodos en orden topológico inverso. Su valor es de eficiencia, no de concepto: calcula todos los gradientes en una sola pasada hacia atrás.

El procedimiento tiene dos fases. En el paso hacia adelante se calculan las salidas capa a capa y se guardan los valores intermedios, que harán falta después; ese almacenamiento es la razón de que la memoria de entrenamiento crezca con la profundidad. En el paso hacia atrás se propaga la derivada de la pérdida desde la salida hasta los parámetros.

Hay una simplificación algebraica que conviene ver una vez con detalle. Al combinar entropía cruzada con sigmoide en la salida, el gradiente respecto de la preactivación se reduce a a − y: la derivada de la sigmoide se cancela exactamente contra el denominador de la pérdida. Esa cancelación es la que evita los gradientes saturados de la clase 286, y es la razón técnica de emparejar esas dos funciones.

Recorrer los números a mano una vez, como hace este ejemplo, vale más que leer la demostración diez veces. Después conviene no volver a implementarlo: la autodiferenciación de la clase 319 hace exactamente esto sin errores de signo ni de transposición.

Ejemplo trabajado

Backpropagation completo sobre una red 2-2-1.

entrada: (0,5 ; −1,2)      objetivo: 1,0

FORWARD
  z1 = (1,09 ; 0,01)
  a1 = (0,796878 ; 0,01)        tras la activación
  z2 = 0,524127
  a2 = 0,628xxx                 salida sigmoide

BACKWARD
  dL/da2 = −1,592072
  dL/dz2 = a2 − y = −0,371888   ← la sigmoide se canceló
  dL/dW2 = dL/dz2 · a1ᵀ
         = (−0,296349 ; −0,003719)

El segundo peso recibe un gradiente 80 veces menor
porque su activación a1 vale solo 0,01.

Qué ejecuta el laboratorio

Backpropagation paso a paso sobre una red 2-2-1.

GrupoSalidas
Resultados numéricos (6)objetivo, dL/da2, dL/dz2_simplificado, dL/db2, gradiente_numerico_W1[0][0], gradiente_analitico_W1[0][0]
Comprobaciones (1)coinciden
compmath run 305

Errores conceptuales frecuentes

  1. No guardar las activaciones del paso hacia adelante.
  2. Aplicar por separado la derivada de la sigmoide y la de la pérdida, duplicando el factor.
  3. Equivocar transposiciones al pasar de escalares a matrices.

Dónde se usa

Entrenamiento de cualquier red, comprensión de los frameworks, depuración de gradientes y diseño de capas personalizadas.

Bibliografía de la clase

306 · Computational graphs

Parte 15 · clase 6 de 20 · demostración computational_graphs

Un nodo usado dos veces recibe la suma de los dos gradientes, no uno de ellos.

cada operación es un nodo; cada dependencia, una arista
orden topológico inverso para el paso hacia atrás
nodo con k consumos: dL/dv = Σ de las k contribuciones

Fundamentos

Representar una expresión como grafo —nodos para las operaciones, aristas para las dependencias— convierte la derivación en un procedimiento mecánico. Cada tipo de nodo sabe derivar su operación local, y la regla de la cadena encadena esas derivadas locales a lo largo del grafo.

La regla que genera más errores al implementar autodiferenciación a mano es la acumulación. Si una variable se usa en varios sitios, su gradiente total es la suma de las contribuciones de todos sus consumos, no la última calculada. Sobrescribir en vez de sumar produce gradientes silenciosamente incorrectos, y el entrenamiento simplemente converge peor sin dar ningún error.

El ejemplo mínimo lo muestra: en y = x² + x, la variable x alimenta dos ramas. La derivada es 2x + 1, que es exactamente la suma de las dos contribuciones. Si solo se tomara una, el gradiente sería 2x o 1, y ambos son incorrectos.

Esa misma regla explica un detalle práctico de PyTorch que confunde al principio: optimizer.zero_grad() hace falta precisamente porque el framework acumula por diseño. Esa acumulación no es un fallo: es lo que permite simular lotes grandes sumando gradientes de varios lotes pequeños antes de actualizar.

Ejemplo trabajado

Dos expresiones con nodos reutilizados.

Expresión 1:  y = x² + x   en x = 2

  y = 4 + 2 = 6,0

  rama 1: d(x²)/dx = 2x = 4
  rama 2: d(x)/dx  = 1
  acumulado: dy/dx = 4 + 1 = 5,0

  comprobación analítica 2x + 1 = 5,0                ✓

  Si se sobrescribiera en vez de sumar, saldría 4 o 1.

Expresión 2:  e = (ab + a)·(ab)   en a = 3, b = 4

  el producto ab se usa dos veces:
  su gradiente acumula ambas contribuciones.

Qué ejecuta el laboratorio

El grafo de cómputo y la acumulación de gradientes en nodos reutilizados.

GrupoSalidas
Resultados numéricos (6)y, dy/dx, dy/dx_analitico_2x+1, e, de/da, de/db
Comprobaciones (1)acumulacion_correcta
compmath run 306

Errores conceptuales frecuentes

  1. Sobrescribir el gradiente de un nodo en vez de acumularlo.
  2. Recorrer el grafo en orden incorrecto y usar gradientes aún no calculados.
  3. Olvidar poner a cero los gradientes entre iteraciones en PyTorch.

Dónde se usa

Implementación de autodiferenciación, capas personalizadas, acumulación de gradientes para lotes grandes y depuración de frameworks.

Bibliografía de la clase

307 · Inicialización de pesos

Parte 15 · clase 7 de 20 · demostración weight_initialization

Con escala 0,01 las activaciones mueren en ocho capas; con escala 1,0 se saturan.

Xavier: Var(W) = 1/n_in   (tanh, sigmoide)
He: Var(W) = 2/n_in   (ReLU)
todos los pesos iguales ⟹ todas las neuronas aprenden lo mismo

Fundamentos

Inicializar los pesos parece trivial y decide si una red profunda entrena o no. El criterio es mantener estable la varianza de las activaciones al atravesar capas: si cada capa la reduce, las señales se apagan; si la amplifica, se saturan o desbordan.

La demostración numérica es contundente. Con escala 0,01 y ocho capas, la desviación de las activaciones cae de 0,009 a 1e-8 y luego a cero exacto: la señal ha desaparecido y no hay gradiente que propagar. Con escala 1,0 ocurre lo contrario con tanh: las activaciones se pegan a ±1, la derivada se anula y el gradiente tampoco fluye.

Xavier deriva la escala 1/√n imponiendo que la varianza se conserve, y funciona con activaciones simétricas como tanh. He ajusta a √(2/n) porque ReLU anula la mitad de las activaciones y hay que compensar ese factor 2. Son las dos inicializaciones por defecto y la elección se sigue de la activación, no del gusto.

Hay una condición previa que ninguna fórmula cubre: romper la simetría. Si todos los pesos de una capa se inicializan al mismo valor, todas las neuronas calculan lo mismo, reciben el mismo gradiente y siguen siendo idénticas para siempre. La capa entera equivale a una sola neurona. Por eso se inicializa al azar, y por eso los sesgos sí pueden empezar en cero: la simetría ya está rota por los pesos.

Ejemplo trabajado

Desviación de las activaciones en capas 1, 4 y 8.

8 capas de 100 neuronas

escala 0,01 con tanh:
  [0,00933503 ; 1e-08 ; 0,0]
  las activaciones se apagan por completo            ✗

Xavier (1/√n) con tanh:
  [0,36236997 ; 0,13964668 ; 0,08762870]
  decae despacio, sigue habiendo señal                ✓

He (√(2/n)) con ReLU:
  [0,67589597 ; 0,76192729 ; 0,62293017]
  varianza estable en las ocho capas                  ✓

escala 1,0 con tanh:
  [0,84424669 ; 0,85537312 ; 0,92118981]
  saturación: casi todo en ±1, derivada nula          ✗

Qué ejecuta el laboratorio

Xavier y He: controlar la varianza de las activaciones capa a capa.

GrupoSalidas
Resultados numéricos (3)capas, neuronas_por_capa, semilla
Comprobaciones (0)
compmath run 307

Errores conceptuales frecuentes

  1. Inicializar todos los pesos con el mismo valor.
  2. Usar Xavier con ReLU en vez de He.
  3. Elegir la escala por prueba y error sin mirar la varianza de las activaciones.

Dónde se usa

Entrenamiento de redes profundas, diagnóstico de entrenamientos que no arrancan, diseño de arquitecturas nuevas y transferencia de aprendizaje.

Bibliografía de la clase

308 · Batch normalization y layer normalization

Parte 15 · clase 8 de 20 · demostración normalization

Batch norm promedia por columna y layer norm por fila: ese eje es toda la diferencia.

x̂ = (x − μ)/√(σ² + ε);   y = γx̂ + β
batch norm: μ y σ por característica sobre el lote
layer norm: μ y σ por muestra sobre las características

Fundamentos

Normalizar las activaciones internas estabiliza el entrenamiento y permite learning rates mayores. La operación es la misma en ambos casos —restar media, dividir por desviación, reescalar con parámetros aprendidos γ y β—; lo único que cambia es sobre qué eje se calculan las estadísticas.

Batch normalization normaliza cada característica a lo largo del lote: la columna. Eso la hace muy eficaz en redes convolucionales, donde los lotes son grandes, pero introduce una dependencia incómoda del tamaño de lote y obliga a mantener estadísticas móviles para inferencia. Mezclar las estadísticas de entrenamiento con las de inferencia es un error clásico que produce resultados desastrosos e inexplicables.

Layer normalization normaliza cada muestra a lo largo de sus características: la fila. No depende del lote en absoluto, funciona igual con lote de tamaño 1, y se comporta idénticamente en entrenamiento y en inferencia. Por eso es la elección de los Transformers, donde las secuencias tienen longitudes variables y el tamaño de lote efectivo cambia.

El mecanismo por el que ayudan resultó no ser el que se propuso originalmente. El artículo de batch norm lo atribuyó a reducir el «desplazamiento interno de covariables»; trabajo posterior mostró que esa explicación no se sostiene, y que el efecto real es suavizar el paisaje de optimización, permitiendo pasos más grandes. Es un buen ejemplo de técnica que funciona antes de entenderse.

Ejemplo trabajado

El mismo lote normalizado por columna y por fila.

lote original (4 muestras × 3 características):
  [ 10  200    3]
  [ 12  190    5]
  [  8  210    1]
  [ 14  195    x]

escalas por característica: [6,0 ; 20,0 ; 6,0]
la segunda característica domina completamente

batch norm (por columna):
  [−0,4472   0,1690  −0,4472]
  [ 0,4472  −1,1832   0,4472]
  media por columna tras BN: [0, 0, 0]              ✓

layer norm (por fila):
  [−0,6684   1,4135  −0,7451]
  [−0,6658   1,4134  −0,7476]
  media por fila tras LN: [0, 0, 0, 0]              ✓

Qué ejecuta el laboratorio

Batch norm y layer norm: qué eje se normaliza.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (1)layer_norm_no_depende_del_lote
compmath run 308

Errores conceptuales frecuentes

  1. Usar estadísticas del lote durante la inferencia.
  2. Aplicar batch norm con lotes muy pequeños.
  3. Colocar la normalización sin decidir si va antes o después de la activación.

Dónde se usa

Estabilización de redes convolucionales, layer norm en Transformers, entrenamiento con learning rates altos y arquitecturas residuales.

Bibliografía de la clase

309 · Regularización y dropout

Parte 15 · clase 9 de 20 · demostración dropout_regularization

Dropout apaga neuronas al azar y escala en entrenamiento para que la inferencia no cambie.

entrenamiento: apagar con probabilidad p y dividir por (1−p)
inferencia: no hacer nada
E[activación] se conserva

Fundamentos

Dropout apaga cada neurona con probabilidad p en cada paso de entrenamiento. La idea es impedir la coadaptación: si una neurona no puede confiar en que sus compañeras estén presentes, tiene que aprender características útiles por sí misma en lugar de depender de combinaciones frágiles.

Otra lectura, complementaria, es que dropout entrena implícitamente un ensemble exponencial de subredes que comparten pesos, y en inferencia promedia sus predicciones. Eso lo emparenta con el bagging de la clase 292: reduce varianza combinando modelos que cometen errores distintos.

El detalle de implementación importa. Apagar neuronas reduce la activación media, así que hay que compensar. La versión moderna —inverted dropout— divide entre (1−p) durante el entrenamiento, con lo que la esperanza se conserva y la inferencia no requiere ningún ajuste. La versión antigua escalaba en inferencia, y mezclar ambas convenciones produce un factor de escala erróneo difícil de detectar.

Su uso ha cambiado con el tiempo. En redes convolucionales fue desplazado por batch normalization, que regulariza como efecto secundario. En Transformers sigue muy presente, con valores bajos —0,1 es típico—, aplicado tras la atención y en las capas feed-forward.

Ejemplo trabajado

Cien neuronas con probabilidad de apagado 0,5.

neuronas: 100      p = 0,5

media sin dropout:              1,00000
media con inverted dropout:     0,99976
la esperanza se conserva                             ✓

varianza introducida: 0,00958074

Mecanismo:
  se apaga cada neurona con p = 0,5
  las supervivientes se dividen entre (1 − 0,5) = 0,5
  es decir, se multiplican por 2

En inferencia no se hace nada: ni apagado ni escalado.
Escalar también en inferencia daría el doble de activación.

Qué ejecuta el laboratorio

Dropout: ruido en entrenamiento, escalado coherente en inferencia.

GrupoSalidas
Resultados numéricos (5)neuronas, probabilidad_de_apagado, media_sin_dropout, media_con_inverted_dropout, varianza_introducida
Comprobaciones (1)la_esperanza_se_conserva
compmath run 309

Errores conceptuales frecuentes

  1. Dejar dropout activo durante la evaluación.
  2. Mezclar la convención antigua con inverted dropout y duplicar la escala.
  3. Aplicar valores altos de p en capas convolucionales.

Dónde se usa

Regularización de redes profundas, Transformers, estimación de incertidumbre con MC dropout y prevención del sobreajuste con pocos datos.

Bibliografía de la clase

310 · Convolución discreta

Parte 15 · clase 10 de 20 · demostración discrete_convolution

El tamaño de salida sale de una fórmula, y equivocarla es el error más común al montar una CNN.

salida = ⌊(n + 2p − k)/s⌋ + 1
padding 'same' con s=1: p = (k−1)/2
parámetros de la capa: k²·c_in·c_out + c_out

Fundamentos

La convolución 2D desliza un núcleo sobre una imagen calculando sumas ponderadas locales. Sus tres parámetros geométricos —tamaño del núcleo k, padding p y stride s— determinan el tamaño de la salida mediante una fórmula que conviene tener memorizada, porque el 90 % de los errores al construir una CNN son desajustes de forma.

El padding rellena el borde, normalmente con ceros, y sirve para dos cosas: conservar el tamaño espacial y evitar que los píxeles del borde se usen menos que los del centro. El modo same con stride 1 requiere p = (k−1)/2, que es la razón de que los núcleos suelan tener tamaño impar.

El stride es el salto entre posiciones. Con s = 2 la salida tiene aproximadamente la mitad de tamaño en cada dimensión, lo que sirve como alternativa aprendida al pooling. Las arquitecturas modernas tienden a usar convoluciones con stride en lugar de pooling, porque la reducción se aprende en vez de imponerse.

El núcleo del ejemplo es un filtro de Sobel, un detector clásico de bordes verticales diseñado a mano en los años 60. En una CNN, un núcleo con esa forma emerge del entrenamiento sin que nadie lo programe: las primeras capas aprenden detectores de bordes y de color porque son las características más útiles para casi cualquier tarea visual.

Ejemplo trabajado

Sobel vertical sobre una entrada 5×5.

entrada: 5×5      kernel: 3×3 (Sobel vertical)

kernel = [[−1  0  1]
          [−2  0  2]
          [−1  0  1]]

salida con stride 1, sin padding:
  [[ 8,0  −16,0  −22,0]
   [ 6,0  −13,0  −21,0]
   [ 0,0    0,0   −2,0]]
  forma: (3, 3)

Fórmula: (5 + 0 − 3)/1 + 1 = 3                       ✓

con stride 2:  (5 + 0 − 3)/2 + 1 = 2  →  forma (2,2) ✓

Para conservar 5×5 con k=3 y s=1 haría falta p = 1.

Qué ejecuta el laboratorio

Convolución 2D con padding y stride: el cálculo de la forma de salida.

GrupoSalidas
Resultados numéricos (3)verificacion_stride_1, parametros_del_kernel, parametros_de_una_densa_equivalente
Comprobaciones (0)
compmath run 310

Errores conceptuales frecuentes

  1. Equivocar la fórmula del tamaño de salida y encadenar desajustes de forma.
  2. Usar núcleos de tamaño par y no poder aplicar padding simétrico.
  3. Olvidar que los canales de entrada multiplican el número de parámetros.

Dónde se usa

Diseño de redes convolucionales, procesamiento de imágenes, detección de bordes y capas convolucionales en audio y series.

Bibliografía de la clase

311 · CNN y receptive fields

Parte 15 · clase 11 de 20 · demostración cnn_receptive_fields

Dos convoluciones de 3×3 ven lo mismo que una de 5×5 con menos parámetros y más no linealidad.

RF_l = RF_{l−1} + (k_l − 1)·Π sᵢ
dos 3×3 ⟹ campo receptivo 5, 18 parámetros
una 5×5 ⟹ campo receptivo 5, 25 parámetros

Fundamentos

El campo receptivo de una activación es la región de la imagen de entrada que puede influir en su valor. En la primera capa coincide con el núcleo; al apilar capas crece, y con pooling o stride crece mucho más rápido porque cada paso vale por varios píxeles originales.

La fórmula recursiva lo cuantifica: cada capa añade (k−1) multiplicado por el producto de todos los strides anteriores. Ese producto —el «salto»— es lo que hace que el crecimiento sea multiplicativo y no aditivo, y por eso unas pocas capas con reducción bastan para ver la imagen entera.

La observación práctica más rentable es la de VGG: dos convoluciones de 3×3 apiladas tienen el mismo campo receptivo que una de 5×5, pero usan 18 parámetros en vez de 25 y aplican dos no linealidades en vez de una. Tres de 3×3 equivalen a una de 7×7 con 27 parámetros frente a 49. Por eso las arquitecturas modernas usan casi exclusivamente núcleos 3×3.

El campo receptivo importa porque limita lo que la red puede ver. Si un objeto ocupa 100 píxeles y el campo receptivo efectivo de la capa final es de 50, ninguna neurona podrá integrarlo completo. Diseñar la profundidad y la reducción es, en buena medida, diseñar el campo receptivo.

Ejemplo trabajado

Crecimiento del campo receptivo en cinco capas.

arquitectura:
  conv k=3 s=1  →  conv k=3 s=1  →  pool k=2 s=2
  →  conv k=3 s=1  →  conv k=3 s=1

capa   tipo   campo receptivo   salto
  1    conv          3            1
  2    conv          5            1
  3    pool          6            2
  4    conv         10            2
  5    conv         14            2

campo receptivo final: 14 píxeles

Comparación de coste:
  dos conv 3×3:  campo 5,  18 parámetros, 2 ReLU
  una conv 5×5:  campo 5,  25 parámetros, 1 ReLU

28 % menos parámetros y el doble de no linealidad.

Qué ejecuta el laboratorio

Campo receptivo: cómo crece al apilar capas.

GrupoSalidas
Resultados numéricos (3)campo_receptivo_final, parametros_2x(3x3), parametros_1x(5x5)
Comprobaciones (1)dos_conv_3x3_equivalen_a_una_5x5
compmath run 311

Errores conceptuales frecuentes

  1. Diseñar la profundidad sin calcular el campo receptivo resultante.
  2. Usar núcleos grandes donde varios pequeños son mejores.
  3. Confundir campo receptivo teórico con el efectivo, que es menor.

Dónde se usa

Diseño de arquitecturas convolucionales, segmentación semántica, detección de objetos y elección de profundidad según el tamaño de los objetos.

Bibliografía de la clase

312 · Pooling y downsampling

Parte 15 · clase 12 de 20 · demostración pooling

Pooling reduce sin parámetros: max conserva la intensidad, average conserva el contexto.

max pooling: máximo de cada ventana
average pooling: media de cada ventana
parámetros aprendidos: 0

Fundamentos

El pooling reduce la resolución espacial agregando ventanas de activaciones. No tiene parámetros aprendidos: es una operación fija que reduce el cómputo, amplía el campo receptivo e introduce cierta invariancia a pequeños desplazamientos.

Max pooling conserva la activación más fuerte de cada ventana. Es el más usado en clasificación porque preserva la evidencia de que una característica está presente, descartando dónde exactamente. Average pooling promedia y conserva más información de contexto, y es el habitual en la capa final como global average pooling, que sustituye a las capas densas y reduce enormemente los parámetros.

La invariancia que proporciona tiene un límite del que conviene ser consciente: es invariancia a desplazamientos pequeños, del orden del tamaño de la ventana. No hace la red invariante a traslaciones grandes, y como se vio en la clase 270, hacer submuestreo sin suavizado previo introduce aliasing que rompe la invariancia en vez de crearla.

La tendencia arquitectónica ha ido reduciendo su papel. Muchas redes modernas usan convoluciones con stride 2 en lugar de pooling, con el argumento de que así la reducción es aprendida en vez de impuesta. El pooling sobrevive sobre todo en su forma global al final de la red.

Ejemplo trabajado

Max y average pooling 2×2 sobre la misma entrada.

entrada 4×4

max pool 2×2:
  [[6,0   4,0]
   [7,0   9,0]]

average pool 2×2:
  [[3,75  2,25]
   [3,50  5,50]]

forma de salida: (2, 2)
reducción: 16 elementos → 4
parámetros aprendidos: 0

Max conserva el pico de cada ventana; average lo diluye.
Para "¿está presente esta característica?" conviene max;
para "¿cuánta hay en promedio?" conviene average.

Qué ejecuta el laboratorio

Max y average pooling: reducción con y sin pérdida de posición.

GrupoSalidas
Resultados numéricos (1)parametros_aprendidos
Comprobaciones (0)
compmath run 312

Errores conceptuales frecuentes

  1. Aplicar pooling agresivo y perder resolución necesaria para localizar.
  2. Esperar invariancia a traslaciones grandes.
  3. Submuestrear sin suavizado previo e introducir aliasing.

Dónde se usa

Redes convolucionales de clasificación, global average pooling como cabeza, reducción de cómputo y agregación en redes sobre grafos.

Bibliografía de la clase

313 · RNN y recurrencia

Parte 15 · clase 13 de 20 · demostración rnn

Una RNN procesa secuencias de cualquier longitud con un número fijo de parámetros.

h_t = tanh(W_xh·x_t + W_hh·h_{t−1} + b_h)
los mismos pesos en todos los instantes
el estado resume toda la historia

Fundamentos

Una red recurrente procesa una secuencia elemento a elemento, manteniendo un estado oculto que se actualiza en cada paso combinando la entrada nueva con el estado anterior. Ese estado es el resumen de todo lo visto hasta el momento.

La propiedad decisiva es la compartición de pesos en el tiempo. Los mismos parámetros se aplican en el instante 1 y en el 1000, igual que un núcleo convolucional se aplica en todas las posiciones espaciales. Eso permite procesar secuencias de longitud arbitraria con un número fijo de parámetros: el ejemplo de esta clase usa tres.

Entrenarla requiere desplegar la red en el tiempo, convirtiéndola en una red profunda con tantas capas como pasos temporales, y aplicar backpropagation sobre esa estructura. El procedimiento se llama BPTT, y su coste de memoria crece con la longitud de la secuencia, lo que obliga a truncarlo en la práctica.

Ese despliegue es también el origen de su problema fundamental. Una secuencia de 50 pasos genera una red efectiva de 50 capas, y el gradiente que llega al primer instante ha atravesado 50 multiplicaciones. La clase siguiente cuantifica lo que eso implica. Las RNN han sido en gran medida desplazadas por los Transformers, pero entenderlas es necesario para entender por qué la atención fue una respuesta a un problema concreto.

Ejemplo trabajado

RNN de un parámetro por matriz sobre cinco pasos.

secuencia: [1,0 ; 0,5 ; −0,3 ; 0,2 ; 0,9]
parámetros: W_xh = 0,8   W_hh = 0,9   b_h = 0,05

t    x       h
1   1,0    0,691069
2   0,5    0,790199
3  −0,3    0,4xxxxx
4   0,2    0,6xxxxx
5   0,9    0,856183

estado final: 0,856183

3 parámetros procesan una secuencia de cualquier longitud.
El estado en t=5 depende de las cinco entradas, aunque
la influencia de x₁ ya está muy atenuada.

Qué ejecuta el laboratorio

RNN: el estado oculto acumula historia con pesos compartidos.

GrupoSalidas
Resultados numéricos (3)estado_final, parametros_totales, longitud_de_secuencia
Comprobaciones (1)pesos_compartidos_en_el_tiempo
compmath run 313

Errores conceptuales frecuentes

  1. Olvidar reiniciar el estado oculto entre secuencias distintas.
  2. Entrenar sobre secuencias largas sin truncar BPTT.
  3. Confundir el número de pasos temporales con el número de parámetros.

Dónde se usa

Modelado de secuencias, series temporales, procesamiento de lenguaje anterior a los Transformers y sistemas de control con estado.

Bibliografía de la clase

314 · Vanishing y exploding gradients

Parte 15 · clase 14 de 20 · demostración vanishing_exploding

El gradiente a 50 pasos es un producto de 50 factores: o se anula o explota.

∂L/∂h₀ = Π_{t=1}^{T} (∂h_t/∂h_{t−1})
factores < 1 ⟹ 0 exponencialmente
factores > 1 ⟹ ∞ exponencialmente

Fundamentos

Al propagar el gradiente hacia atrás en el tiempo, la contribución al primer instante es el producto de las derivadas de todos los pasos intermedios. Ese producto es la causa única de los dos patologías más conocidas de las redes recurrentes.

Si los factores son sistemáticamente menores que 1, el producto tiende a cero exponencialmente y el gradiente se desvanece: la red no puede aprender dependencias largas porque la señal de error nunca llega al principio de la secuencia. Con factor 0,5 y 50 pasos, el gradiente inicial es del orden de 10⁻¹⁵.

Si los factores son mayores que 1, el producto explota: el gradiente crece hasta desbordar y produce NaN, destruyendo el entrenamiento en un solo paso. Es más visible que el desvanecimiento —se nota inmediatamente— y por eso más fácil de diagnosticar.

Las soluciones son distintas para cada caso. La explosión se resuelve con gradient clipping: acotar la norma del gradiente conservando su dirección, un parche simple y eficaz. El desvanecimiento es más profundo y exige cambiar la arquitectura: LSTM y GRU crean un camino aditivo por el que el gradiente fluye sin multiplicarse, y las conexiones residuales resuelven el mismo problema en redes profundas no recurrentes.

Ejemplo trabajado

El mismo experimento con tres valores del factor.

50 pasos de propagación hacia atrás

w = 0,5  (desvanece)
  paso  1: 0,470007
  paso 10: ≈ 1e-4
  paso 50: ≈ 1e-15        gradiente inexistente

w = 1,0  (estable)
  paso  1: 0,786448
  paso 10: ≈ 0,3
  paso 50: sigue siendo apreciable

w = 1,5  (explota)
  paso  1: 0,894879
  paso 10: ≈ 50
  paso 50: desborda a infinito

Causa única: el gradiente en t=0 es el producto
de 50 factores. Todo depende de si son <1 o >1.

Qué ejecuta el laboratorio

Gradientes que se desvanecen o explotan: un producto de derivadas.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (0)
compmath run 314

Errores conceptuales frecuentes

  1. Entrenar RNN largas sin gradient clipping.
  2. Atribuir a los datos un problema que es de propagación del gradiente.
  3. Intentar arreglar el desvanecimiento subiendo el learning rate.

Dónde se usa

Diagnóstico de entrenamientos inestables, justificación de LSTM y conexiones residuales, clipping en modelos de lenguaje y análisis de profundidad efectiva.

Bibliografía de la clase

315 · LSTM y compuertas

Parte 15 · clase 15 de 20 · demostración lstm

La celda LSTM suma en vez de multiplicar, y por eso el gradiente sobrevive.

c_t = f_t·c_{t−1} + i_t·g_t
h_t = o_t·tanh(c_t)
si f ≈ 1, ∂c_t/∂c_{t−1} ≈ 1

Fundamentos

La LSTM introduce un estado de celda separado del estado oculto, cuya actualización es fundamentalmente aditiva. Tres puertas —olvido, entrada y salida— controlan qué se descarta del pasado, qué se incorpora del presente y qué se expone al exterior.

La clave está en la forma de la actualización. En una RNN simple, la derivada de un estado respecto del anterior involucra la matriz de pesos y la derivada de la activación, y se multiplica en cada paso. En la LSTM, si la puerta de olvido está cerca de 1, la derivada ∂c_t/∂c_{t−1} es aproximadamente 1, y el gradiente atraviesa el tiempo sin atenuarse.

Ese camino se conoce como el carrusel de error constante, y es la misma idea que las conexiones residuales de ResNet: crear una vía por la que el gradiente pase intacto. La diferencia con una RNN no es de capacidad de representación sino de entrenabilidad.

Un detalle práctico que ilustra bien el diseño: el sesgo de la puerta de olvido se inicializa en 1, no en 0. Así la puerta empieza abierta y la celda recuerda por defecto, dejando que el entrenamiento aprenda cuándo olvidar en vez de tener que aprender a recordar desde cero. Cuesta doce parámetros por celda frente a los tres de una RNN simple, y durante veinte años ese coste mereció la pena.

Ejemplo trabajado

Traza de una celda LSTM sobre una secuencia corta.

puertas: forget, input, output

t    x      c         h        forget   input
1   1,0   0,42874   0,270127   0,8176   0,6xxx
2   ...   ...       ...        ...      ...

El sesgo de forget se inicializa en 1:
la puerta arranca en 0,82, cerca de abierta.

Camino del gradiente:
  c_t = f·c_{t−1} + i·g
  ∂c_t/∂c_{t−1} = f ≈ 0,82

Con 50 pasos y f ≈ 1:  0,98⁵⁰ ≈ 0,36
Con una RNN y factor 0,5: 0,5⁵⁰ ≈ 1e-15

12 parámetros por celda, frente a 3 de la RNN simple.

Qué ejecuta el laboratorio

LSTM: la celda mantiene un camino aditivo para el gradiente.

GrupoSalidas
Resultados numéricos (1)parametros_por_celda
Comprobaciones (1)si_f≈1_el_gradiente_no_se_atenua
compmath run 315

Errores conceptuales frecuentes

  1. Inicializar el sesgo de la puerta de olvido en cero.
  2. Confundir el estado de celda con el estado oculto.
  3. Usar LSTM donde una arquitectura con atención sería más adecuada.

Dónde se usa

Modelado de secuencias largas, reconocimiento de voz, traducción automática anterior a los Transformers y series temporales con dependencias lejanas.

Bibliografía de la clase

316 · GRU

Parte 15 · clase 16 de 20 · demostración gru

GRU consigue casi lo mismo que LSTM con dos puertas y un 25 % menos de parámetros.

z: puerta de actualización;  r: puerta de reinicio
h_t = (1−z)·h_{t−1} + z·h̃_t
9 parámetros por celda frente a 12 de LSTM

Fundamentos

La GRU simplifica la LSTM fusionando el estado de celda con el estado oculto y reduciendo las tres puertas a dos. La puerta de actualización decide cuánto del estado anterior se conserva frente al candidato nuevo, combinando los papeles de las puertas de olvido y entrada. La puerta de reinicio decide cuánto del pasado se usa para calcular ese candidato.

La actualización tiene una forma de interpolación explícita: (1−z)·h_anterior + z·h_nuevo. Si z = 0 el estado se conserva íntegro, y esa es la misma vía aditiva que protege el gradiente en la LSTM. La protección se consigue con menos maquinaria.

El ahorro es de 9 parámetros por celda frente a 12, un 25 %. Con capas de miles de unidades eso se traduce en menos memoria y entrenamientos más rápidos, lo que en su momento fue una ventaja práctica considerable.

La comparación empírica entre GRU y LSTM ha sido objeto de muchos estudios y la conclusión es que depende de la tarea, sin ganador consistente. La recomendación razonable es empezar por GRU por ser más ligera y probar LSTM si el rendimiento no basta. Ambas han quedado en segundo plano frente a los Transformers, pero siguen siendo competitivas en secuencias cortas y con pocos datos.

Ejemplo trabajado

Traza de una celda GRU y comparación de parámetros.

puertas: update (z), reset (r)

t     h         update   reset
1   0,413336    0,6225   0,6457
2   ...         ...      ...

Parámetros por celda:
  GRU:  9
  LSTM: 12
  ahorro: 25 %

Interpolación: h_t = (1−z)·h_{t−1} + z·h̃_t
  z = 0  →  el estado se conserva íntegro           ✓
  z = 1  →  el estado se sustituye por el candidato

Ese camino con z ≈ 0 es lo que protege el gradiente,
igual que la puerta de olvido de la LSTM.

Qué ejecuta el laboratorio

GRU: dos puertas en lugar de tres, menos parámetros.

GrupoSalidas
Resultados numéricos (3)parametros_por_celda, parametros_LSTM, ahorro_%
Comprobaciones (2)z=0_conserva_el_estado, z=1_lo_reemplaza
compmath run 316

Errores conceptuales frecuentes

  1. Elegir entre GRU y LSTM sin probar en la tarea concreta.
  2. Confundir el sentido de la puerta de actualización al implementarla.
  3. Suponer que menos parámetros implica siempre peor rendimiento.

Dónde se usa

Modelado de secuencias con recursos limitados, series temporales, reconocimiento de gestos y sistemas embebidos.

Bibliografía de la clase

317 · Embeddings como espacios vectoriales

Parte 15 · clase 17 de 20 · demostración embeddings

En un espacio de embeddings, la dirección entre dos palabras codifica su relación.

similitud coseno = (a·b) / (‖a‖·‖b‖)
analogía: rey − hombre + mujer ≈ reina
la magnitud no importa, solo la dirección

Fundamentos

Un embedding representa cada elemento discreto —palabra, usuario, producto— como un vector denso de dimensión moderada, aprendido de forma que la proximidad geométrica refleje similitud semántica. Es la alternativa a la codificación one-hot, que es enorme, dispersa y en la que todos los elementos están a la misma distancia entre sí.

La medida de similitud habitual es el coseno, no la distancia euclídea. La razón es que la magnitud de un embedding suele correlacionar con la frecuencia del término, que no es información semántica; el coseno la descarta y mide solo la dirección. Es el producto escalar normalizado de la parte 05.

El resultado que hizo famosos a los embeddings es que ciertas direcciones codifican relaciones. El vector que va de «hombre» a «mujer» es aproximadamente el mismo que va de «rey» a «reina», lo que permite resolver analogías con aritmética vectorial. Conviene matizar: el efecto es real pero se exageró bastante en la divulgación, y depende mucho del corpus y del método de evaluación.

Hay una consecuencia ética que no es opcional mencionar. Los embeddings aprenden los sesgos presentes en los datos, y las mismas analogías que capturan «rey es a reina» capturan asociaciones estereotipadas entre profesiones y género. Como el modelo aprende la distribución del corpus, esos sesgos se propagan a cualquier sistema construido encima, y detectarlos requiere auditar explícitamente.

Ejemplo trabajado

Similitudes y analogía en un espacio de 4 dimensiones.

vocabulario: 5 términos, dimensión 4

similitudes con "rey":
  hombre  0,857916
  mujer   0,815207
  reina   0,768974
  mesa    0,3xxxxx

analogía: rey − hombre + mujer
  vector resultante: [0,85 ; 0,1 ; 0,1 ; 0,05]

  ranking por similitud:
    reina   1,000000     ← la analogía funciona   ✓
    mujer   0,835523
    rey     0,768974

Nota: en este espacio pequeño "hombre" es más similar
a "rey" que "reina", lo que muestra que la similitud
directa y la analogía capturan cosas distintas.

Qué ejecuta el laboratorio

Embeddings: geometría del significado y similitud coseno.

GrupoSalidas
Resultados numéricos (4)dimension, vocabulario, one_hot_necesitaria, embedding_denso_usa
Comprobaciones (0)
compmath run 317

Errores conceptuales frecuentes

  1. Usar distancia euclídea donde corresponde similitud coseno.
  2. Sobreinterpretar las analogías como propiedad universal de los embeddings.
  3. Desplegar embeddings sin auditar los sesgos heredados del corpus.

Dónde se usa

Representación de vocabularios, sistemas de recomendación, búsqueda semántica, bases de datos vectoriales y capa de entrada de todo modelo de lenguaje.

Bibliografía de la clase

318 · Optimización de redes profundas

Parte 15 · clase 18 de 20 · demostración deep_optimization

Warmup evita divergir al arrancar y clipping evita que un gradiente anómalo destruya el modelo.

warmup: subir el lr linealmente durante los primeros pasos
clipping: si ‖g‖ > c, escalar g ← c·g/‖g‖
planificador: reducir el lr según avanza el entrenamiento

Fundamentos

Entrenar una red profunda es aplicar los optimizadores de la parte 12 a un problema no convexo, ruidoso y de curvatura muy variable. Las técnicas de esta clase no son adornos: son lo que hace la diferencia entre un entrenamiento que converge y uno que produce NaN en el paso 300.

El warmup sube el learning rate gradualmente durante los primeros cientos o miles de pasos. La razón es concreta: al principio los momentos de Adam están mal estimados y los gradientes son grandes y poco informativos, así que un paso completo puede llevar los pesos a una región de la que no se recuperan. Es prácticamente obligatorio al entrenar Transformers.

El gradient clipping acota la norma del gradiente sin cambiar su dirección. Es un seguro barato contra los picos anómalos —un lote raro, una muestra corrupta— que en un solo paso podrían destruir horas de entrenamiento. Un valor de 1,0 es habitual y rara vez perjudica.

Los planificadores reducen el learning rate a lo largo del entrenamiento: pasos grandes al principio para explorar, pequeños al final para afinar. El decaimiento por coseno con warmup es la receta estándar actual. Y conviene recordar que estas tres técnicas atacan problemas de optimización, no de generalización: si el modelo converge bien y generaliza mal, el remedio está en otra parte.

Ejemplo trabajado

Cuatro configuraciones sobre el mismo objetivo ruidoso.

objetivo: minimizar ‖w − w*‖² con gradientes ruidosos

configuración              paso 10      paso 100
lr alto sin clipping      0,00039758      0,0
lr alto con clipping      4,96308444      0,0
lr moderado               0,00864028      0,0
lr moderado con warmup    2,80892690      0,0

Todas convergen aquí porque el problema es benigno.

Lo que cambia es el paso 10: warmup y clipping avanzan
más despacio al principio a cambio de no arriesgar.

En un problema real, "lr alto sin clipping" produciría
NaN antes del paso 100 con un solo lote anómalo.

Qué ejecuta el laboratorio

Entrenar una red profunda: learning rate, warmup y clipping.

GrupoSalidas
Resultados numéricos (1)semilla
Comprobaciones (0)
compmath run 318

Errores conceptuales frecuentes

  1. Entrenar Transformers sin warmup.
  2. Prescindir del clipping y perder un entrenamiento largo por un lote anómalo.
  3. Ajustar el learning rate para arreglar un problema de generalización.

Dónde se usa

Entrenamiento de modelos de lenguaje, recetas de entrenamiento reproducibles, ajuste fino y depuración de entrenamientos inestables.

Bibliografía de la clase

319 · Autodiff con PyTorch/JAX

Parte 15 · clase 19 de 20 · demostración autodiff_frameworks

PyTorch y JAX hacen lo mismo que el Var de la parte 08, con ingeniería de por medio.

modo reverso: una pasada adelante, una atrás
coste ≈ 2 veces el del forward, independientemente del número de parámetros
modo directo: eficiente con pocas entradas y muchas salidas

Fundamentos

La autodiferenciación en modo reverso obtiene los gradientes de una salida escalar respecto de todas las entradas con una sola pasada hacia atrás. Su coste es aproximadamente el doble del paso hacia adelante, independientemente de cuántos parámetros haya. Esa propiedad es lo que hace viable entrenar modelos de miles de millones de parámetros.

El modo directo propaga derivadas hacia adelante y es eficiente en el caso opuesto: pocas entradas y muchas salidas. Como en aprendizaje automático la pérdida siempre es un escalar y los parámetros son millones, el modo reverso es el adecuado, y por eso es el que implementan todos los frameworks.

Ninguno de los dos es diferenciación simbólica ni numérica. No manipula fórmulas ni usa diferencias finitas: evalúa derivadas exactas de operaciones elementales y las compone según el grafo. Es exacta hasta el redondeo y eficiente, que es lo mejor de ambos mundos.

Lo que aportan PyTorch y JAX sobre el Var de la parte 08 no es el concepto sino la ingeniería: núcleos optimizados para GPU y TPU, fusión de operaciones, compilación diferida, paralelismo y una cobertura enorme de operaciones. El principio se entiende en cien líneas de Python; la implementación de producción son cientos de miles.

Ejemplo trabajado

La misma expresión derivada por el motor propio.

expresión: loss = (tanh(wx + b) − 1)²

loss = 0,09543807

dloss/dw = −0,48417723
dloss/db = −0,32278482
dloss/dx = −0,22594937

Tres gradientes de una sola pasada hacia atrás.

Con un millón de parámetros el coste sería el mismo
factor 2 sobre el forward: esa es la propiedad clave.

Con diferencias finitas harían falta un millón de
evaluaciones adicionales, una por parámetro.

Qué ejecuta el laboratorio

Nuestro Var frente a PyTorch/JAX: mismo principio, distinta escala.

GrupoSalidas
Resultados numéricos (4)loss, dloss/dw, dloss/db, dloss/dx
Comprobaciones (1)este_motor_no_requiere_torch
compmath run 319

Errores conceptuales frecuentes

  1. Confundir autodiferenciación con derivación simbólica o numérica.
  2. Usar modo directo cuando hay muchos parámetros y una sola salida.
  3. Reimplementar gradientes a mano existiendo autodiferenciación.

Dónde se usa

Todo entrenamiento moderno, optimización de simuladores diferenciables, física diferenciable y cálculo de sensibilidades.

Bibliografía de la clase

320 · Capstone: red neuronal desde cero en Python puro

Parte 15 · clase 20 de 20 · demostración capstone_neural_network

Una red de 337 parámetros en Python puro separa dos espirales entrelazadas.

arquitectura: 2 → 16 (ReLU) → 16 (ReLU) → 1 (sigmoid)
inicialización He, SGD por muestra, lr = 0,08
verificación: gradiente manual ≈ gradiente automático

Fundamentos

El capstone reúne toda la parte en una red completa escrita desde cero, sin NumPy ni frameworks: inicialización, paso hacia adelante, backpropagation, actualización y evaluación. Lo único que importa es que cada pieza sea legible y que el conjunto funcione.

El problema elegido, dos espirales entrelazadas, es un banco clásico y deliberadamente difícil para modelos lineales: no hay ninguna recta ni curva simple que las separe. Un modelo lineal queda en torno al 50 %, y resolverlo demuestra que las capas ocultas están construyendo una representación no trivial.

Las decisiones de diseño vienen todas de clases anteriores y conviene enumerarlas: inicialización He porque la activación es ReLU, ReLU en las ocultas para que el gradiente no se sature, sigmoide en la salida con entropía cruzada para que el gradiente se simplifique a a − y, y SGD por muestra por su ruido regularizador. Nada es arbitrario.

La comprobación final es la que cierra el programa: el gradiente derivado a mano coincide con el que produce el motor de autodiferenciación de la parte 08. Ese acuerdo entre dos caminos independientes es la mejor prueba de que la teoría y la implementación dicen lo mismo, y es exactamente el criterio de verificación que el programa entero defiende.

Ejemplo trabajado

Configuración y resultado del capstone.

problema: dos espirales entrelazadas
          (no linealmente separables)

arquitectura:  2 → 16 (ReLU) → 16 (ReLU) → 1 (sigmoid)
parámetros:    337
inicialización: He (√(2/n_in))
optimizador:   SGD por muestra
learning rate: 0,08

Desglose de los 337 parámetros:
  capa 1:  2×16 + 16 =  48
  capa 2: 16×16 + 16 = 272
  capa 3: 16×1  +  1 =  17
  total              = 337                          ✓

Un modelo lineal sobre estos datos queda en ≈ 50 %.
Verificación: gradiente manual ≈ gradiente de Var.

Qué ejecuta el laboratorio

Capstone: red neuronal completa desde cero, entrenada y evaluada.

GrupoSalidas
Resultados numéricos (8)parametros, learning_rate, epocas, accuracy_train, accuracy_test, brecha_train_test, linea_base_por_azar, semilla
Comprobaciones (0)
compmath run 320

Errores conceptuales frecuentes

  1. Reimplementar redes desde cero en código de producción.
  2. Cambiar varias decisiones a la vez al depurar un entrenamiento.
  3. Omitir la verificación del gradiente al escribir backpropagation a mano.

Dónde se usa

Comprensión profunda de los frameworks, entrevistas técnicas, docencia, depuración de implementaciones y diseño de capas personalizadas.

Bibliografía de la clase

Parte 16 — Matemática de Transformers, modelos generativos, grafos y RL

Nivel experto · 20 clases · 80 horas · motor part16

Softmax, embeddings, positional encoding, atención escalada, multi-head, Transformer completo, muestreo, VAE, GAN, difusión, GNN y ecuaciones de Bellman.

Esta parte traduce a matemática los artículos que definen el estado del arte. No hay conceptos nuevos: la atención es un promedio ponderado por productos escalares, el ELBO es la cota de Jensen sobre una log-verosimilitud, la difusión es un proceso estocástico con reverso aprendido y Bellman es una recursión sobre esperanzas. Todo lo necesario está en las quince partes anteriores, y lo que se hace aquí es reconocerlo.

Las clases 321 a 328 construyen el Transformer pieza a pieza. Softmax convierte logits arbitrarios en una distribución categórica, y su invariancia frente a desplazamientos es exactamente lo que permite restar el máximo para evitar el desbordamiento: sin ese truco, exp(1000) es infinito y la implementación falla. Q, K y V son tres proyecciones distintas del mismo token, con papeles distintos: qué busco, qué ofrezco y qué aporto.

El detalle más citado y menos entendido es el 1/√d. Con dimensión 256, los productos escalares de vectores aleatorios tienen desviación proporcional a √d, y la softmax de valores tan dispersos se satura: un peso se lleva casi toda la masa y los gradientes desaparecen. Dividir por √d devuelve las puntuaciones a una escala manejable, y la demostración numérica de la clase 325 lo hace evidente comparando d = 8 con d = 256.

Las clases 329 y 330 tratan la generación. Un modelo autorregresivo factoriza la probabilidad de una secuencia mediante la regla de la cadena de la clase 183, y la máscara causal es lo que impide que un token vea el futuro: olvidarla produce un modelo con métricas excelentes durante el entrenamiento e inútil al generar. Temperatura, top-k y top-p reescriben la distribución antes de muestrear, y conviene tener claro que temperatura alta no significa mayor calidad sino mayor entropía.

Las clases 331 a 335 recorren los modelos generativos. El VAE necesita el truco de reparametrización para que el gradiente atraviese una operación de muestreo, y su objetivo es el ELBO: reconstrucción menos KL, con una brecha respecto de la log-verosimilitud que es exactamente otra KL, siempre no negativa. Las GAN se formulan como un juego minimax cuyo discriminador óptimo tiene forma cerrada y cuyo equilibrio ocurre en D = 0,5. La difusión añade ruido con un horario fijo —y una propiedad muy práctica: se puede saltar a cualquier paso sin simular los anteriores— y aprende a invertir el proceso prediciendo el ruido añadido.

El cierre incorpora dos áreas más. Los grafos, donde el Laplaciano codifica la estructura y la multiplicidad del autovalor cero cuenta las componentes conexas, y donde el paso de mensajes hace crecer el campo receptivo un salto por capa, exactamente igual que las convoluciones de la parte 15. Y el aprendizaje por refuerzo, donde la ecuación de Bellman expresa el valor como recompensa inmediata más valor futuro descontado, y REINFORCE convierte eso en un gradiente sobre la política.

El capstone entrena un mini-Transformer causal completo con 101 parámetros que aprende a copiar el token anterior. Es una tarea trivial y elegida a propósito: permite comprobar que la matriz de atención aprende a mirar exactamente una posición atrás, que es la verificación más directa posible de que el mecanismo funciona como se ha descrito.

Ideas centrales

Por qué importa en IA

Esta parte es la traducción matemática directa de los papers que definen el estado del arte actual.

Errores frecuentes de la parte

Glosario de la parte (33 términos)

TérminoDefiniciónClase
Atención escaladasoftmax(QKᵀ/√d)·V. La escala evita que la softmax se sature en alta dimensión.325
Autoencoder variacionalCodificador que produce una distribución latente y decodificador que reconstruye.331
Brecha del ELBOKL entre la posterior aproximada y la verdadera. Siempre no negativa.332
Conexión residualSumar la entrada a la salida del bloque. Crea un camino directo para el gradiente.328
Discriminador óptimoD*(x) = p_datos/(p_datos + p_G). En el equilibrio vale 0,5 en todas partes.333
Ecuación de BellmanV(s) = max_a [R + γ·V(s')]. Valor como recompensa inmediata más futuro descontado.338
ELBOCota inferior de la log-verosimilitud: reconstrucción menos KL al prior.332
Estabilidad numérica del softmaxRestar el máximo antes de exponenciar. La salida no cambia y se evita el desbordamiento.321
Factor 1/√dCorrige que la varianza del producto escalar crece con la dimensión.325
Factor de descuentoγ entre 0 y 1. Pondera cuánto valen las recompensas futuras.338
Feed-forward por posiciónMLP aplicado independientemente a cada token, típicamente con expansión ×4.328
Horario de ruidoSecuencia de β que determina cuánto ruido se añade en cada paso.334
Juego minimaxDos jugadores con objetivos opuestos. Base del entrenamiento de las GAN.333
Laplaciano del grafoL = D − A. Sus autovalores describen la conectividad de la estructura.336
Línea baseValor restado a la recompensa para reducir la varianza sin sesgar el gradiente.339
Modelado autorregresivoFactorizar la probabilidad de una secuencia como producto de condicionales.329
Multi-head attentionVarias atenciones en subespacios distintos, concatenadas y proyectadas.327
Multiplicidad del autovalor ceroNúmero de componentes conexas del grafo.336
Máscara causalImpide que un token atienda a posiciones futuras. Imprescindible en generación.326
Paso de mensajesCada nodo agrega información de sus vecinos. Una capa equivale a un salto.337
PerplejidadExponencial de la entropía cruzada. Número efectivo de opciones equiprobables.329
Positional encodingInformación de posición añadida al embedding. La versión sinusoidal no tiene parámetros.323
Proceso directo de difusiónAñadir ruido gaussiano según un horario fijo hasta destruir la señal.334
Proceso inversoRed que predice el ruido añadido y permite reconstruir el dato original.335
Query, Key, ValueTres proyecciones del mismo token: qué busco, qué ofrezco y qué aporto.324
REINFORCEGradiente de política que sube la probabilidad de acciones con recompensa alta.339
Self-attentionAtención donde consultas, claves y valores vienen de la misma secuencia.326
Similitud cosenoProducto escalar normalizado. Mide dirección e ignora magnitud.322
SobresuavizadoCon muchas capas, todos los nodos convergen a representaciones indistinguibles.337
SoftmaxConvierte logits reales en una distribución categórica. Es la de máxima entropía dados los logits.321
TemperaturaDivide los logits antes del softmax. Menor concentra la distribución, mayor la aplana.330
Top-k y top-pTruncar el vocabulario a los k mejores o a la masa acumulada p antes de muestrear.330
Truco de reparametrizaciónz = μ + σ·ε con ε fijo, para que el gradiente atraviese el muestreo.331

Bibliografía de la parte

321 · Softmax y distribuciones categóricas

Parte 16 · clase 1 de 20 · demostración softmax_distributions

Restar el máximo antes de exponenciar no cambia el resultado y evita el desbordamiento.

softmax(z)ᵢ = e^{zᵢ} / Σⱼ e^{zⱼ}
softmax(z + c) = softmax(z)  para todo c
implementación: restar max(z) antes de exponenciar

Fundamentos

Softmax convierte un vector de números reales cualesquiera en una distribución de probabilidad: todos positivos y sumando 1. Es la capa de salida de todo clasificador y la pieza que normaliza los pesos de atención, así que aparece dos veces en cada bloque Transformer.

Su propiedad estructural es la invariancia frente a desplazamientos: sumar la misma constante a todos los logits no cambia la salida, porque el factor común se cancela entre numerador y denominador. Solo importan las diferencias entre logits, no sus valores absolutos.

Esa invariancia tiene una consecuencia práctica que no es opcional. Si un logit vale 1000, exp(1000) desborda a infinito y el resultado es NaN. Como restar el máximo no altera la salida, toda implementación seria lo hace: los exponentes quedan entre exp(−algo) y exp(0) = 1, siempre representables. Es el truco de estabilidad numérica más rentable de todo el aprendizaje profundo, y viene directamente de la parte 01.

Conviene además recordar su origen: softmax es la distribución de máxima entropía compatible con los logits, como se vio en la clase 267. No es una normalización elegida por comodidad sino la solución de un problema de optimización con restricciones, y esa es la razón de su forma exponencial.

Ejemplo trabajado

Invariancia y estabilidad numérica.

logits: [2,0 ; 1,0 ; 0,1 ; −1,0]

probabilidades: [0,638066 ; 0,234731 ; 0,095435 ; 0,031767]
suman 1,0                                            ✓

Sumando 1000 a todos los logits:
  [0,638066 ; 0,234731 ; 0,095435 ; 0,031767]
  idéntico resultado                                 ✓

Sin restar el máximo:
  exp(1002) = inf  →  inf/inf = NaN                  ✗

Restando el máximo (2,0 o 1002,0, da igual):
  exponentes en [exp(−3), exp(0)]                    ✓

Solo importan las diferencias entre logits.

Qué ejecuta el laboratorio

Softmax: de logits arbitrarios a una distribución categórica.

GrupoSalidas
Resultados numéricos (1)suman_1
Comprobaciones (1)el_orden_se_conserva
compmath run 321

Errores conceptuales frecuentes

  1. Aplicar softmax sin restar el máximo.
  2. Aplicar softmax dos veces cuando la pérdida ya lo incluye.
  3. Interpretar los valores absolutos de los logits en vez de sus diferencias.

Dónde se usa

Capa de salida de clasificadores, normalización de pesos de atención, muestreo de tokens y políticas estocásticas en aprendizaje por refuerzo.

Bibliografía de la clase

322 · Embeddings y similitud coseno

Parte 16 · clase 2 de 20 · demostración cosine_similarity

El coseno ignora la magnitud, y en embeddings la magnitud suele ser frecuencia, no significado.

cos(a,b) = (a·b) / (‖a‖·‖b‖)
rango [−1, 1]
invariante al escalado de cualquiera de los dos vectores

Fundamentos

La similitud coseno mide el ángulo entre dos vectores, descartando sus longitudes. En espacios de embeddings es la medida estándar, y la razón es concreta: la norma de un embedding tiende a correlacionar con la frecuencia del término en el corpus, que no es información semántica.

La diferencia con la distancia euclídea se ve mejor con un caso extremo. Un vector y su doble apuntan exactamente en la misma dirección, así que su coseno es 1 —máxima similitud—, mientras que su distancia euclídea puede ser enorme. Para «¿hablan de lo mismo?» el coseno acierta y la distancia no.

El producto escalar sin normalizar es lo que usa la atención, y ahí la magnitud sí influye deliberadamente: un token puede aprender a tener clave de norma grande para atraer más atención. Es una decisión de diseño distinta, no un descuido, y por eso la atención necesita el factor 1/√d mientras que la búsqueda por similitud usa coseno.

La consecuencia de ingeniería es que si los vectores se normalizan previamente, el producto escalar es el coseno. Las bases de datos vectoriales explotan esto: normalizan al indexar y luego usan producto escalar, que es más rápido y está mejor optimizado que calcular normas en cada consulta.

Ejemplo trabajado

Coseno frente a distancia euclídea sobre la misma consulta.

consulta: (0,8 ; 0,5 ; 0,2 ; 0,1)

candidato          coseno     distancia euclídea
muy relacionado   0,994667        0,100000
relacionado       0,787527        0,608276
ortogonal         0,0xxxxx        1,352770

Efecto del escalado:
  multiplicar un candidato por 10
    coseno:    no cambia                            ✓
    distancia: se multiplica por ~10                ✗

En embeddings la norma suele reflejar frecuencia,
no significado: por eso se usa coseno.

Qué ejecuta el laboratorio

Similitud coseno: la métrica estándar entre embeddings.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (2)el_escalado_no_afecta_al_coseno, el_escalado_si_afecta_a_la_distancia
compmath run 322

Errores conceptuales frecuentes

  1. Usar distancia euclídea sin normalizar sobre embeddings.
  2. Normalizar los vectores de atención y perder la información de magnitud.
  3. Comparar cosenos entre espacios de embeddings distintos.

Dónde se usa

Búsqueda semántica, bases de datos vectoriales, RAG, sistemas de recomendación y deduplicación de documentos.

Bibliografía de la clase

323 · Positional encoding

Parte 16 · clase 3 de 20 · demostración positional_encoding

La atención no tiene noción de orden, así que la posición hay que inyectarla.

PE(pos, 2i)   = sin(pos / 10000^{2i/d})
PE(pos, 2i+1) = cos(pos / 10000^{2i/d})
sin parámetros aprendidos

Fundamentos

El mecanismo de atención es invariante a permutaciones: si se barajan los tokens de entrada, las salidas se barajan igual pero nada más cambia. Para el modelo, «el gato come pescado» y «pescado come gato el» serían indistinguibles. Hay que añadir la posición explícitamente.

La codificación sinusoidal del artículo original usa senos y cosenos de frecuencias que decrecen geométricamente a lo largo de las dimensiones. Las primeras dimensiones varían rápido y distinguen posiciones cercanas; las últimas varían lento y codifican posición global. Es exactamente una descomposición en frecuencias, la parte 13 aplicada al índice de posición.

Tiene dos propiedades atractivas. No tiene parámetros, así que funciona con longitudes de secuencia nunca vistas en entrenamiento, al menos en principio. Y la similitud entre codificaciones decae con la distancia, lo que da al modelo una noción utilizable de proximidad. Además, PE(pos+k) es una transformación lineal de PE(pos), lo que facilita aprender desplazamientos relativos.

La práctica ha evolucionado. Las posiciones aprendidas funcionaron igual de bien y dominaron durante años; hoy lo estándar es RoPE, que codifica posición rotando los vectores de consulta y clave, lo que hace que el producto escalar dependa naturalmente de la posición relativa. Es la solución que mejor extrapola a contextos largos.

Ejemplo trabajado

Codificación sinusoidal en dimensión 8.

dimensión: 8

pos 0: [0,000000 ; 1,0 ; 0,000000 ; 1,0 ; 0,0 ; 1,0 ; 0,0 ; 1,0]
pos 1: [0,841471 ; 0,5xxx ; ...]
pos 2: [0,909297 ; ...]

normas: todas valen 2,0                             ✓
(la norma es constante por construcción)

producto escalar con pos 0:
  pos 1  →  3,535256
  pos 5  →  3,159983

La similitud decae con la distancia                  ✓

Sin esta codificación, la atención vería la secuencia
como un conjunto sin orden.

Qué ejecuta el laboratorio

Positional encoding sinusoidal: posición sin parámetros aprendidos.

GrupoSalidas
Resultados numéricos (4)dimension, producto_pos0_pos1, producto_pos0_pos5, parametros_aprendidos
Comprobaciones (2)la_similitud_decae_con_la_distancia, extrapola_a_secuencias_mas_largas
compmath run 323

Errores conceptuales frecuentes

  1. Omitir la codificación posicional y entrenar un modelo ciego al orden.
  2. Suponer que la codificación sinusoidal extrapola bien a contextos mucho más largos.
  3. Sumar la codificación después de la primera capa en vez de al embedding.

Dónde se usa

Todos los Transformers, modelos de visión con parches, modelos de audio y cualquier arquitectura con atención sobre secuencias.

Bibliografía de la clase

324 · Query, Key y Value

Parte 16 · clase 4 de 20 · demostración query_key_value

Q, K y V son tres proyecciones del mismo token con tres papeles distintos.

Q = W_Q·x   (qué busco)
K = W_K·x   (qué ofrezco)
V = W_V·x   (qué aporto)

Fundamentos

La atención se explica bien con la metáfora de una búsqueda. Cada token emite una consulta que describe qué información necesita, expone una clave que describe qué información contiene, y guarda un valor que es lo que efectivamente entregará si alguien lo selecciona.

Que los tres vengan del mismo vector de entrada mediante tres matrices distintas es lo esencial. Separar los papeles permite que un token busque una cosa y ofrezca otra: un adjetivo puede buscar el sustantivo al que modifica mientras ofrece su propia información semántica. Con una sola proyección esa asimetría sería imposible.

Las dimensiones no tienen por qué coincidir con la del modelo. Es habitual proyectar a una dimensión menor d_k, lo que reduce el coste y, en multi-head, permite repartir la capacidad entre varias cabezas sin multiplicar los parámetros.

La generalización que esta separación permite es la atención cruzada: si las consultas vienen de una secuencia y las claves y valores de otra, un decodificador puede atender al codificador. Ese es el mecanismo de la traducción automática, y el mismo que permite a un modelo multimodal atender desde texto a una imagen.

Ejemplo trabajado

Las tres proyecciones de un mismo token.

token de entrada: (1,0 ; 0,5 ; −0,3 ; 0,8)
d_model = 4      d_k = 3

query = (−0,011555 ; −0,203105 ;  1,236170)
key   = (−0,372490 ;  0,857526 ; −0,242572)
value = ( 1,518768 ; −0,211168 ; −0,655401)

Los tres vectores son muy distintos entre sí
aunque provienen del mismo token.

Parámetros: 3 matrices de 4×3 = 36 valores.

Atención cruzada: Q de una secuencia,
K y V de otra. Mismo mecanismo.

Qué ejecuta el laboratorio

Q, K, V: tres proyecciones distintas del mismo token.

GrupoSalidas
Resultados numéricos (3)d_model, d_k, parametros_por_cabeza
Comprobaciones (1)son_proyecciones_lineales
compmath run 324

Errores conceptuales frecuentes

  1. Usar la misma proyección para consulta y clave.
  2. Confundir qué secuencia aporta Q y cuál aporta K y V en atención cruzada.
  3. Suponer que d_k debe coincidir con d_model.

Dónde se usa

Todos los Transformers, atención cruzada en traducción, modelos multimodales y mecanismos de recuperación diferenciables.

Bibliografía de la clase

325 · Scaled dot-product attention

Parte 16 · clase 5 de 20 · demostración scaled_dot_product_attention

Con d = 256 y sin escalar, la softmax se satura y el gradiente desaparece.

Attention(Q,K,V) = softmax(QKᵀ/√d_k)·V
Var(q·k) ≈ d·σ⁴ con entradas iid
dividir por √d_k devuelve la varianza a escala 1

Fundamentos

La atención escalada calcula la similitud entre cada consulta y cada clave mediante producto escalar, normaliza con softmax y usa los pesos resultantes para promediar los valores. Es un promedio ponderado por similitud, y toda la fórmula cabe en esa frase.

La única parte que no es evidente es el factor 1/√d_k, y su justificación es estadística. Si las componentes de q y k son independientes con varianza σ², el producto escalar de d términos tiene varianza proporcional a d, y por tanto desviación proporcional a √d. Con d = 256 eso son 16 veces más dispersión que con d = 1.

El efecto sobre la softmax es destructivo. Con puntuaciones muy dispersas, la exponencial concentra casi toda la masa en el máximo: la distribución se vuelve prácticamente one-hot, la atención deja de ser un promedio y se convierte en una selección dura. Peor aún, en esa región la softmax tiene gradiente casi nulo y el mecanismo deja de aprender.

Dividir por √d_k cancela exactamente el crecimiento. La comparación numérica lo muestra: con d = 256 sin escalar, un peso se lleva prácticamente todo y otro cae a 8e-06; con la escala, los pesos quedan repartidos y el gradiente fluye. Un solo factor en el denominador es lo que hace entrenable la arquitectura.

Ejemplo trabajado

Puntuaciones y pesos con y sin escala, en dos dimensiones.

d = 8, sin escalar:
  puntuaciones: [ 0,4204 ; −1,9767 ;  1,3619 ;  1,2219]
  pesos:        [0,169955 ; ... ]        repartidos

d = 8, escalado:
  puntuaciones: [ 0,3541 ; −0,3729 ;  2,3033 ;  0,8469]
  pesos:        [0,098585 ; ... ]        repartidos

d = 256, sin escalar:
  puntuaciones: [−9,7106 ; −2,6027 ; 1,9724 ; −15,9423]
  pesos:        [8e-06 ; ...]           ← saturado    ✗

d = 256, escalado:
  puntuaciones: [−0,7502 ; 1,9863 ; 0,3221 ; 0,5716]
  pesos:        [0,043279 ; ...]        repartidos    ✓

Var(q·k) ≈ d·σ⁴ : por eso se divide por √d.

Qué ejecuta el laboratorio

Atención escalada: por qué existe el 1/√d.

GrupoSalidas
Resultados numéricos (1)entropia_maxima_4_tokens
Comprobaciones (0)
compmath run 325

Errores conceptuales frecuentes

  1. Omitir el factor 1/√d y saturar la softmax en dimensión alta.
  2. Escalar por d en vez de por √d.
  3. Atribuir la saturación a la inicialización cuando es un problema de escala.

Dónde se usa

Todos los Transformers, atención en visión y audio, mecanismos de recuperación y modelos de secuencias modernos.

Bibliografía de la clase

326 · Self-attention

Parte 16 · clase 6 de 20 · demostración self_attention

Sin máscara causal el modelo ve el futuro, entrena perfecto y genera basura.

Q, K, V provienen todos de la misma secuencia
máscara causal: puntuación = −∞ para j > i
cada fila de la matriz de atención suma 1

Fundamentos

En self-attention, consultas, claves y valores se calculan todos a partir de la misma secuencia. Cada token puede atender a todos los demás y actualizar su representación con la información que le resulte relevante, en una sola operación y sin importar la distancia.

Esa es la ventaja decisiva sobre las RNN de la parte 15. En una recurrente, conectar el token 1 con el 100 requiere que la información atraviese 99 pasos, con el gradiente multiplicándose 99 veces. En self-attention hay un camino directo. El precio es el coste cuadrático en la longitud de la secuencia, que es el cuello de botella de los contextos largos.

Para generación autorregresiva hace falta la máscara causal: poner las puntuaciones de las posiciones futuras a menos infinito antes del softmax, de modo que sus pesos sean exactamente cero. La matriz de atención queda triangular inferior, y el primer token solo puede atenderse a sí mismo.

Olvidarla produce un fallo especialmente traicionero porque no da ningún error. El modelo entrena con métricas excelentes, porque para predecir el token siguiente puede simplemente mirarlo, y al generar —cuando el futuro no existe— produce basura. Es un error silencioso que solo se detecta al probar la generación.

Ejemplo trabajado

Atención bidireccional y causal sobre cuatro tokens.

tokens: ["el", "gato", "come", "pescado"]

matriz de atención bidireccional:
  [0,2982  0,2239  0,4516  0,0263]
  [0,3251  0,3369  0,2829  0,0550]
  [ ...                          ]
cada fila suma 1                                     ✓

matriz causal:
  [1,0000  0,0000  0,0000  0,0000]
  [0,4911  0,5089  0,0000  0,0000]
  [0,0051  0,0022  0,99xx  0,0000]
  [ ...                          ]

El token 0 solo se ve a sí mismo                     ✓
Triangular inferior: nadie ve el futuro.

Sin la máscara, predecir el token 2 podría hacerse
simplemente mirándolo.

Qué ejecuta el laboratorio

Self-attention completa sobre una secuencia de 4 tokens.

GrupoSalidas
Resultados numéricos (1)d_model
Comprobaciones (1)el_token_0_solo_se_ve_a_si_mismo
compmath run 326

Errores conceptuales frecuentes

  1. Olvidar la máscara causal en modelos generativos.
  2. Usar máscara causal en modelos de comprensión tipo BERT, donde estorba.
  3. Poner las posiciones futuras a cero después del softmax en vez de a −∞ antes.

Dónde se usa

GPT y todos los modelos de lenguaje generativos, BERT sin máscara, Vision Transformers y modelos de audio.

Bibliografía de la clase

327 · Multi-head attention

Parte 16 · clase 7 de 20 · demostración multi_head_attention

Varias cabezas atienden a cosas distintas en subespacios distintos, al mismo coste.

d_por_cabeza = d_model / n_cabezas
concatenar las salidas y proyectar con W_O
coste total similar al de una sola cabeza de dimensión completa

Fundamentos

Una sola cabeza de atención produce una única distribución de pesos por token, y eso obliga a comprometer: no puede atender a la vez a la concordancia sintáctica y a la relación semántica. Multi-head resuelve el conflicto ejecutando varias atenciones en paralelo sobre subespacios distintos.

La aritmética está diseñada para que no cueste más. Con d_model = 512 y 8 cabezas, cada una trabaja en dimensión 64, y el total de parámetros es aproximadamente el mismo que el de una única atención de dimensión 512. Se gana diversidad sin pagar capacidad.

Los patrones aprendidos son efectivamente distintos, y eso se puede comprobar inspeccionando las matrices. El análisis de modelos entrenados encuentra cabezas especializadas de forma reconocible: unas siguen dependencias sintácticas, otras enlazan referencias, otras miran sistemáticamente al token anterior. También encuentra que muchas cabezas son redundantes y se pueden podar sin pérdida apreciable.

La concatenación de las salidas se proyecta con una matriz W_O que mezcla la información de todas las cabezas. Sin ese paso final, las cabezas quedarían en subespacios estancos y no podrían combinarse.

Ejemplo trabajado

Cuatro cabezas sobre un modelo de dimensión 8.

d_model = 8      cabezas = 4      d por cabeza = 2

patrones de atención (primera fila de cada cabeza):
  cabeza 1: [0,1657  0,7332  0,1010]
  cabeza 2: [0,0010  0,9989  0,0000]
  cabeza 3: [0,0423  0,0099  0,9478]
  cabeza 4: [ ... ]

Las cabezas atienden a posiciones distintas          ✓
La cabeza 2 está muy concentrada; la 1, repartida.

parámetros totales: 256
Una sola cabeza de dimensión 8 costaría lo mismo.

Qué ejecuta el laboratorio

Multi-head: varias atenciones en subespacios distintos.

GrupoSalidas
Resultados numéricos (5)d_model, cabezas, d_por_cabeza, parametros_totales, parametros_de_una_sola_cabeza_ancha
Comprobaciones (1)las_cabezas_atienden_distinto
compmath run 327

Errores conceptuales frecuentes

  1. Elegir un número de cabezas que no divide la dimensión del modelo.
  2. Omitir la proyección final W_O tras la concatenación.
  3. Suponer que todas las cabezas aportan información útil.

Dónde se usa

Todos los Transformers, interpretabilidad mecanicista, poda de cabezas redundantes y diseño de arquitecturas eficientes.

Bibliografía de la clase

328 · Transformer completo

Parte 16 · clase 8 de 20 · demostración transformer_block

El bloque es atención más feed-forward, cada uno envuelto en residual y normalización.

x ← LayerNorm(x + MultiHead(x))
x ← LayerNorm(x + FFN(x))
FFN con expansión ×4: d_ff = 4·d_model

Fundamentos

El bloque Transformer combina dos subcapas con la misma envoltura. Primero atención multi-cabeza, que mezcla información entre posiciones; después una red feed-forward aplicada a cada posición por separado, que procesa cada representación individualmente. Ambas van rodeadas de conexión residual y normalización.

La conexión residual es la que hace entrenables las pilas profundas. Sumar la entrada a la salida crea un camino por el que el gradiente pasa sin multiplicarse, exactamente la misma solución que la LSTM de la clase 315 y que ResNet. Sin ella, apilar 96 bloques sería inviable.

La normalización estabiliza la escala. Se usa layer norm y no batch norm porque las secuencias tienen longitud variable y el tamaño de lote efectivo cambia, como se explicó en la clase 308. Su colocación importa: la variante pre-norm —normalizar antes de la subcapa— es más estable en modelos muy profundos y es la que usan los modelos actuales, aunque el artículo original usaba post-norm.

La expansión ×4 en la red feed-forward es una constante empírica notablemente estable a lo largo de los años. Ahí reside la mayor parte de los parámetros del modelo, y hay evidencia de que esas capas funcionan como una memoria asociativa de conocimiento factual, más que como un simple procesador local.

Ejemplo trabajado

Estructura y dimensiones de un bloque.

arquitectura:
  multi-head attention
  + residual
  layer norm
  feed-forward
  + residual
  layer norm

d_model = 8      d_ff = 32      razón = 4
tokens = 4

norma media de entrada: 3,214373

Reparto de parámetros en un modelo real:
  atención:      4·d²   = 4·d_model²
  feed-forward:  8·d²   = 2·(d_model·4·d_model)
  el feed-forward tiene el doble de parámetros

Pre-norm frente a post-norm: pre-norm es más estable
con muchas capas y es lo estándar hoy.

Qué ejecuta el laboratorio

Bloque Transformer: atención, residual, layer norm y feed-forward.

GrupoSalidas
Resultados numéricos (8)d_model, d_ff, razon_d_ff/d_model, tokens, norma_media_entrada, norma_media_salida, parametros_atencion, parametros_feed_forward
Comprobaciones (2)shape_preservada, el_FFN_tiene_mas_parametros
compmath run 328

Errores conceptuales frecuentes

  1. Omitir las conexiones residuales en pilas profundas.
  2. Usar batch norm en vez de layer norm con secuencias de longitud variable.
  3. Mezclar pre-norm y post-norm al reproducir una arquitectura publicada.

Dónde se usa

GPT, BERT, Vision Transformers, modelos de audio y prácticamente toda la arquitectura moderna de gran escala.

Bibliografía de la clase

329 · Modelado autoregresivo

Parte 16 · clase 9 de 20 · demostración autoregressive_modeling

Un modelo de lenguaje es la regla de la cadena de la probabilidad, entrenada por verosimilitud.

P(x₁…xₙ) = Π P(xᵢ | x₁…xᵢ₋₁)
log P = Σ log P(xᵢ | contexto)
perplejidad = exp(−(1/n)·Σ log P)

Fundamentos

Un modelo autorregresivo descompone la probabilidad de una secuencia en un producto de condicionales, cada uno prediciendo el siguiente elemento a partir de los anteriores. Es exactamente la regla de la cadena de la clase 183 aplicada a secuencias, sin ninguna aproximación: la factorización es exacta.

El entrenamiento es máxima verosimilitud, y por tanto la pérdida es entropía cruzada, como se dedujo en la clase 263. Se trabaja con logaritmos por dos razones: convierte el producto en suma y evita el subdesbordamiento, que con secuencias de miles de tokens sería inevitable.

La perplejidad es la exponencial de la entropía cruzada media, y su interpretación es útil: el número efectivo de opciones equiprobables entre las que el modelo duda. Una perplejidad de 2,55 significa que el modelo está tan indeciso como si eligiera entre 2,55 alternativas igualmente probables. Es la métrica estándar y permite comparar modelos, con la precaución de que depende del tokenizador.

La consecuencia arquitectónica es la máscara causal de la clase 326: para que la factorización sea legítima, la predicción del token i solo puede depender de los anteriores. Y la consecuencia práctica es que el mismo modelo sirve para evaluar la probabilidad de un texto dado y para generar texto nuevo muestreando de las condicionales.

Ejemplo trabajado

Descomposición de una secuencia de tres tokens.

secuencia: ["el", "gato", "duerme"]

paso  token     contexto              P(token|contexto)
  1   "el"      [<inicio>]                  0,40
  2   "gato"    [<inicio>, el]              0,30
  3   "duerme"  [<inicio>, el, gato]        0,50

probabilidad conjunta: 0,40 × 0,30 × 0,50 = 0,06
log probabilidad: −2,813411
perplejidad: exp(2,813411/3) = 2,554365

Lectura: el modelo duda como si eligiera entre
2,55 opciones equiprobables por token.

Con logaritmos: −0,916 − 1,204 − 0,693 = −2,813
Sin logaritmos, 1000 tokens darían un producto
del orden de 1e-500: cero en punto flotante.

Qué ejecuta el laboratorio

Modelado autoregresivo: la regla de la cadena de la probabilidad.

GrupoSalidas
Resultados numéricos (3)probabilidad_conjunta, log_probabilidad, perplejidad
Comprobaciones (0)
compmath run 329

Errores conceptuales frecuentes

  1. Multiplicar probabilidades en vez de sumar logaritmos.
  2. Comparar perplejidades entre modelos con tokenizadores distintos.
  3. Entrenar sin máscara causal e invalidar la factorización.

Dónde se usa

Modelos de lenguaje, generación de código, síntesis de audio, modelos de series temporales y evaluación de modelos generativos.

Bibliografía de la clase

330 · Sampling, temperatura, top-k y top-p

Parte 16 · clase 10 de 20 · demostración sampling_strategies

Temperatura alta no es más creatividad: es más entropía, y también más error.

temperatura: softmax(z/T)
top-k: conservar los k logits mayores
top-p: conservar la masa acumulada hasta p

Fundamentos

Un modelo autorregresivo produce una distribución sobre el vocabulario; la estrategia de muestreo decide qué hacer con ella. Tomar siempre el máximo —greedy— es determinista y produce texto repetitivo; muestrear de la distribución cruda produce texto diverso pero con errores frecuentes de la cola.

La temperatura divide los logits antes del softmax. Con T < 1 las diferencias se amplifican y la distribución se concentra: más determinista y más conservador. Con T > 1 las diferencias se comprimen y la distribución se aplana: más variedad y más riesgo. En el límite T → 0 se recupera greedy y con T → ∞ se obtiene la uniforme.

Conviene decirlo sin eufemismos: temperatura alta no es más creatividad, es más entropía. Aumenta la probabilidad de tokens raros, y algunos de esos tokens son sorprendentes de forma interesante mientras que otros son simplemente incorrectos. El modelo no distingue entre ambos casos.

Top-k y top-p atacan el problema desde otro ángulo: en vez de reescalar toda la distribución, truncan la cola. Top-k conserva los k candidatos más probables; top-p —o muestreo por núcleo— conserva los que acumulan una masa p, lo que adapta el número de candidatos a lo segura que esté la distribución. Cuando el modelo tiene clara la respuesta, top-p deja pocos; cuando duda, deja muchos. Es la razón de que sea preferible a top-k, y en la práctica se combina con temperatura moderada.

Ejemplo trabajado

La misma distribución bajo cinco estrategias.

logits: [3,0 ; 2,5 ; 2,0 ; 1,0 ; 0,5 ; −1,0 ; −2,0]

greedy (argmax): token 0

T = 1,0:  [0,45108 ; 0,27360 ; 0,16594 ; 0,06105 ; ...]
T = 0,5:  [0,65417 ; 0,24066 ; 0,08853 ; 0,01198 ; ...]
           más determinista
T = 2,0:  [0,30702 ; 0,23911 ; 0,18622 ; 0,11295 ; ...]
           más diverso

top-k = 3:
  [0,50648 ; 0,30720 ; 0,18632 ; 0 ; 0 ; 0 ; 0]
  la cola se elimina y se renormaliza

Con T = 0,5 el token menos probable pasa de 3e-3 a 3e-5:
queda prácticamente descartado.

Qué ejecuta el laboratorio

Temperatura, top-k y top-p reescriben la distribución antes de muestrear.

GrupoSalidas
Resultados numéricos (1)greedy_argmax
Comprobaciones (0)
compmath run 330

Errores conceptuales frecuentes

  1. Interpretar temperatura alta como mayor calidad.
  2. Combinar temperatura muy alta con top-p amplio y generar incoherencias.
  3. Usar greedy y luego quejarse de la repetición.

Dónde se usa

Generación con modelos de lenguaje, síntesis de imágenes, generación de código y control del compromiso entre diversidad y fiabilidad.

Bibliografía de la clase

331 · Variational Autoencoders

Parte 16 · clase 11 de 20 · demostración variational_autoencoder

No se puede derivar a través de un muestreo, y reparametrizar es la salida.

codificador: x → (μ, log σ²)
reparametrización: z = μ + σ·ε,  ε ~ N(0,1)
KL en forma cerrada: ½·Σ(σ² + μ² − 1 − log σ²)

Fundamentos

Un autoencoder variacional codifica cada entrada no en un punto sino en una distribución del espacio latente, muestrea de ella y decodifica. Esa aleatoriedad es lo que hace del espacio latente algo continuo y muestreable, y lo que permite generar datos nuevos en vez de solo reconstruir.

El problema técnico es que muestrear no es diferenciable: no hay forma de propagar el gradiente a través de una operación aleatoria. El truco de reparametrización lo resuelve moviendo la aleatoriedad fuera del camino del gradiente: se muestrea ε de una normal estándar —que no depende de ningún parámetro— y se construye z = μ + σ·ε. Ahora z es una función determinista y derivable de μ y σ.

Un detalle de implementación que conviene entender: la red predice log σ², no σ. La razón es doble: el logaritmo puede tomar cualquier valor real, con lo que no hay que restringir la salida, y exponenciarlo garantiza que la varianza sea positiva sin artificios.

El término KL entre la posterior aproximada y el prior normal estándar tiene forma cerrada, lo que evita estimarlo por muestreo y reduce la varianza del gradiente. Ese término empuja las distribuciones latentes hacia el prior, y su tensión con el término de reconstrucción es lo que da al VAE su comportamiento característico: muestras suaves y algo borrosas.

Ejemplo trabajado

Reparametrización en un espacio latente de dimensión 4.

mu      = ( 0,5 ; −0,3 ;  0,8 ;  0,1)
log_var = (−0,5 ; −1,0 ; −0,2 ; −0,8)

sigma = exp(log_var/2)
      = (0,778801 ; 0,606531 ; 0,904837 ; 0,670320)

Muestreando z = mu + sigma·ε muchas veces:
  media empírica    = (0,5108 ; −0,2871 ; 0,7997 ; 0,0878)
  varianza empírica = (0,5910 ;  0,3745 ; 0,8373 ; 0,4378)

comprobación: sigma² = (0,6065 ; 0,3679 ; 0,8187 ; 0,4493)
coinciden con la varianza empírica                   ✓

La aleatoriedad está en ε, fuera del camino
del gradiente respecto de mu y sigma.

Qué ejecuta el laboratorio

VAE: reparametrización y el término KL en forma cerrada.

GrupoSalidas
Resultados numéricos (3)dimension_latente, KL(q||N(0,I)), KL_si_q=prior
Comprobaciones (0)
compmath run 331

Errores conceptuales frecuentes

  1. Muestrear directamente de la distribución y romper el gradiente.
  2. Predecir sigma en vez de log sigma² y obtener varianzas negativas.
  3. Desequilibrar reconstrucción y KL sin controlar el colapso de la posterior.

Dónde se usa

Generación de imágenes, aprendizaje de representaciones, detección de anomalías, compresión con pérdida y espacios latentes para modelos de difusión.

Bibliografía de la clase

332 · ELBO y variational inference

Parte 16 · clase 12 de 20 · demostración elbo

El ELBO acota la log-verosimilitud, y la brecha es exactamente otra KL.

ELBO = E_q[log p(x|z)] − KL(q(z|x) ‖ p(z))
log p(x) = ELBO + KL(q(z|x) ‖ p(z|x))
la brecha es ≥ 0, luego log p(x) ≥ ELBO

Fundamentos

La log-verosimilitud de un modelo con variables latentes requiere integrar sobre todas las configuraciones latentes posibles, y esa integral es intratable salvo en casos triviales. La inferencia variacional sortea el problema optimizando una cota inferior en su lugar.

El ELBO tiene dos términos con lecturas claras. El de reconstrucción premia que el decodificador recupere la entrada a partir del latente. El de KL penaliza que la posterior aproximada se aleje del prior, actuando como regularizador del espacio latente. Maximizar la suma equilibra fidelidad y estructura.

La identidad clave es que log p(x) es exactamente el ELBO más la KL entre la posterior aproximada y la verdadera. Como toda KL es no negativa, el ELBO nunca supera la log-verosimilitud, y maximizarlo hace dos cosas a la vez: sube la verosimilitud y acerca la aproximación a la posterior real. Esa doble acción es lo elegante del método.

El ELBO es también el objeto que aparecía en el algoritmo EM de la clase 296. En EM el paso E hace la cota exacta calculando la posterior verdadera; en inferencia variacional la posterior no es tratable y la cota queda con holgura. Ver EM primero es lo que hace que el ELBO no parezca una construcción sacada de la nada.

Ejemplo trabajado

Descomposición numérica del ELBO.

término de reconstrucción: −12,4
término KL:                  3,7

ELBO = −12,4 − 3,7 = −16,1

Identidad:
  log p(x) = ELBO + KL(q(z|x) ‖ p(z|x))
           = −16,1 + brecha

Como la brecha es ≥ 0:
  log p(x) ≥ −16,1                                   ✓

Si la brecha fuera 0, la posterior aproximada
coincidiría con la verdadera y el ELBO sería exacto.

Maximizar el ELBO sube la verosimilitud y reduce
la brecha simultáneamente.

Qué ejecuta el laboratorio

ELBO: reconstrucción menos KL, y su relación con la log-verosimilitud.

GrupoSalidas
Resultados numéricos (3)termino_de_reconstruccion, termino_KL, ELBO
Comprobaciones (1)log_p(x)_>=_ELBO
compmath run 332

Errores conceptuales frecuentes

  1. Confundir el ELBO con la log-verosimilitud exacta.
  2. Interpretar la brecha como error del modelo en vez de error de la aproximación.
  3. Comparar valores de ELBO entre modelos con distintas dimensiones latentes.

Dónde se usa

VAE, inferencia variacional en modelos bayesianos, modelos de difusión y aproximaciones tratables de posteriores complejas.

Bibliografía de la clase

333 · GAN y juegos minimax

Parte 16 · clase 13 de 20 · demostración gan_minimax

En el equilibrio de una GAN el discriminador acierta el 50 %: no distingue nada.

min_G max_D  E[log D(x)] + E[log(1 − D(G(z)))]
D*(x) = p_datos(x) / (p_datos(x) + p_G(x))
en el equilibrio D = 0,5 y la pérdida vale log 2

Fundamentos

Una GAN enfrenta dos redes con objetivos opuestos. El generador produce muestras falsas intentando parecer real; el discriminador intenta distinguir reales de falsas. El entrenamiento es un juego minimax, y el objetivo del generador es hacer fracasar al discriminador.

El resultado teórico central es que el discriminador óptimo tiene forma cerrada: la proporción de densidad real sobre densidad total. Sustituyendo ese óptimo en el objetivo, se obtiene que el generador está minimizando 2·JS(p_datos ‖ p_G) − log 4, es decir, la divergencia de Jensen-Shannon de la clase 265. El objetivo de las GAN no se inventó como divergencia: resulta serlo.

En el equilibrio ideal, generador y datos tienen la misma distribución, el discriminador óptimo vale 0,5 en todas partes y la pérdida vale log 2 ≈ 0,693. Ese número es el diagnóstico: una pérdida de discriminador que se estabiliza cerca de 0,693 indica equilibrio; una que se va a cero indica que el discriminador ha ganado y el generador ya no recibe señal útil.

La inestabilidad práctica tiene una causa identificable en esa misma teoría: si los soportes de ambas distribuciones no se solapan, la JS es constante y su gradiente es cero. Esa observación motivó WGAN, que sustituye JS por la distancia de Wasserstein, precisamente porque esta sí da gradiente útil cuando los soportes están separados.

Ejemplo trabajado

Tres escenarios del juego y el punto de equilibrio.

objetivo: min_G max_D E[log D(x)] + E[log(1 − D(G(z)))]

escenario "D gana":
  D(real) = 0,99    D(falso) = 0,01
  pérdida de D = 0,01005      muy baja
  el generador recibe gradiente casi nulo

escenario de equilibrio:
  D(real) = 0,50    D(falso) = 0,50
  pérdida teórica = log 2 = 0,693147                 ✓

D óptimo: D*(x) = p_datos / (p_datos + p_G)
  si p_G = p_datos  →  D* = 0,5 en todas partes

El objetivo original equivale a minimizar
2·JS(p_datos ‖ p_G) − log 4.

Qué ejecuta el laboratorio

GAN: el equilibrio del juego minimax y su punto óptimo.

GrupoSalidas
Resultados numéricos (1)perdida_teorica_en_equilibrio
Comprobaciones (1)en_el_equilibrio_D=0.5
compmath run 333

Errores conceptuales frecuentes

  1. Entrenar el discriminador hasta la perfección y dejar al generador sin gradiente.
  2. Interpretar una pérdida de discriminador cercana a cero como buena señal.
  3. Ignorar el colapso de modos mirando solo las pérdidas.

Dónde se usa

Generación de imágenes, superresolución, traducción entre dominios, aumento de datos y generación de datos sintéticos.

Bibliografía de la clase

334 · Diffusion models: forward process

Parte 16 · clase 14 de 20 · demostración diffusion_forward

El proceso directo permite saltar a cualquier paso sin simular los anteriores.

x_t = √ᾱ_t·x₀ + √(1−ᾱ_t)·ε
ᾱ_t = Π_{s≤t} (1 − β_s)
horario β: de 1e-4 a 0,02

Fundamentos

El proceso directo de difusión destruye progresivamente una muestra añadiendo ruido gaussiano según un horario fijo. Tras suficientes pasos, lo que queda es indistinguible de ruido puro. Este proceso no tiene parámetros aprendidos: es una definición.

Su propiedad más importante es computacional. Como la composición de ruidos gaussianos es gaussiana, existe una fórmula cerrada que da x_t directamente a partir de x₀ sin simular los t−1 pasos intermedios. Sin ella, entrenar exigiría recorrer secuencialmente hasta el paso deseado, y el coste sería prohibitivo.

Con esa fórmula, el entrenamiento es sencillo: se toma una muestra, se elige un t al azar, se salta directamente a x_t y se pide a la red que prediga el ruido añadido. Cada paso de entrenamiento cuesta lo mismo independientemente de t.

El horario de ruido —cómo crece β con t— resulta importar bastante. El horario lineal original funciona, y los horarios coseno posteriores destruyen la información de forma más gradual y mejoran la calidad. Es un ejemplo de hiperparámetro que parecía menor y resultó tener efecto sustancial.

Ejemplo trabajado

Horario de 20 pasos y señal conservada.

T = 20      β de 0,0001 a 0,02

 t     ᾱ_t        señal conservada
 0   0,999900         99,995 %
 5   0,98xxxx         ~99 %
10   0,94xxxx         ~97 %
15   0,879869         ~93,8 %
20   0,80xxxx         ~89 %

Fórmula: x_t = √ᾱ_t·x₀ + √(1−ᾱ_t)·ε

Con t = 15:
  √ᾱ = 0,938     √(1−ᾱ) = 0,347
  la señal aún domina sobre el ruido

Salto directo: para entrenar en t = 15 no hace falta
simular los 14 pasos anteriores.

Qué ejecuta el laboratorio

Proceso directo de difusión: ruido añadido con horario fijo.

GrupoSalidas
Resultados numéricos (4)pasos_T, beta_inicial, beta_final, semilla
Comprobaciones (2)x_T_es_ruido_puro, el_proceso_directo_no_se_aprende
compmath run 334

Errores conceptuales frecuentes

  1. Simular paso a paso el proceso directo pudiendo saltar.
  2. Usar un horario de ruido demasiado agresivo al principio.
  3. Confundir β_t con ᾱ_t al implementar las fórmulas.

Dónde se usa

Stable Diffusion, DALL-E, generación de audio y vídeo, y modelos de difusión sobre datos estructurados.

Bibliografía de la clase

335 · Diffusion models: reverse process

Parte 16 · clase 15 de 20 · demostración diffusion_reverse

La red no genera la imagen: predice el ruido, y de ahí se despeja la imagen.

la red estima ε̂ = ε_θ(x_t, t)
x̂₀ = (x_t − √(1−ᾱ_t)·ε̂) / √ᾱ_t
pérdida: ‖ε − ε̂‖²

Fundamentos

El proceso inverso es donde está el aprendizaje. Dado un x_t ruidoso, una red predice qué ruido se añadió, y despejando la fórmula del proceso directo se recupera una estimación del dato original. Iterando ese paso desde ruido puro se genera una muestra nueva.

Que la red prediga el ruido en vez de la imagen es una elección de parametrización, y resultó funcionar mucho mejor. Son matemáticamente equivalentes —de una se despeja la otra— pero predecir ruido da un objetivo mejor condicionado, con escala similar en todos los pasos temporales, lo que estabiliza el entrenamiento.

La pérdida resultante es simplemente el error cuadrático entre el ruido real y el predicho. Esa simplicidad es engañosa: la formulación completa parte de un ELBO como el de la clase 332, y tras varias simplificaciones se reduce a este objetivo. La derivación es laboriosa y el resultado es una línea de código.

El coste es el número de pasos. Los primeros modelos necesitaban mil evaluaciones de la red por muestra, lo que hacía la generación lenta. Los muestreadores acelerados —DDIM, DPM-Solver— reducen a decenas de pasos aplicando lo que la parte 11 enseña sobre integradores: son métodos numéricos aplicados a la ecuación diferencial asociada al proceso.

Ejemplo trabajado

Reconstrucción exacta con un modelo perfecto.

t = 15        ᾱ_t = 0,87986861

x₀ real     =  1,000000
ruido real  = −0,198859
x_t         =  0,869089

Comprobación del proceso directo:
  √0,8799 · 1,0 + √0,1201 · (−0,198859)
  = 0,93800 − 0,06891 = 0,86909            ✓

Con un modelo perfecto (ε̂ = ε):
  x̂₀ = (0,869089 − 0,346554·(−0,198859)) / 0,937961
     = 1,000000                                      ✓

La red solo tiene que acertar el ruido;
la imagen se despeja algebraicamente.

Qué ejecuta el laboratorio

Proceso inverso: la red predice el ruido y se reconstruye x₀.

GrupoSalidas
Resultados numéricos (8)t, alpha_barra_t, x0_real, ruido_real, x_t, x0_estimado_con_modelo_perfecto, x0_estimado_con_error_0.1, amplificacion_del_error
Comprobaciones (0)
compmath run 335

Errores conceptuales frecuentes

  1. Parametrizar la red para predecir x₀ en vez del ruido sin justificarlo.
  2. Usar mil pasos de muestreo existiendo muestreadores acelerados.
  3. Olvidar condicionar la red en el paso temporal t.

Dónde se usa

Generación de imágenes, inpainting, superresolución, generación de audio y modelos condicionados por texto.

Bibliografía de la clase

336 · Graph Laplacian

Parte 16 · clase 16 de 20 · demostración graph_laplacian

La multiplicidad del autovalor cero del Laplaciano cuenta las componentes conexas.

L = D − A
autovalores: 0 = λ₁ ≤ λ₂ ≤ … ≤ λₙ
λ₂ > 0 ⟺ el grafo es conexo

Fundamentos

El Laplaciano de un grafo se construye restando la matriz de adyacencia a la matriz diagonal de grados. Pese a su simplicidad, su espectro contiene una cantidad notable de información sobre la estructura, y ese es el objeto de la teoría espectral de grafos.

El autovalor cero está siempre presente, con el vector constante como autovector: es inmediato comprobar que L·1 = 0. Lo interesante es su multiplicidad, que coincide exactamente con el número de componentes conexas. Un grafo conexo tiene un único cero.

El segundo autovalor λ₂ se llama conectividad algebraica, y mide cuán bien conectado está el grafo: cerca de cero significa que hay un cuello de botella y el grafo está casi partido en dos. Su autovector asociado, el vector de Fiedler, indica por dónde cortar, y esa es la base del agrupamiento espectral.

Como L es simétrica y semidefinida positiva, todo el aparato del teorema espectral de la parte 06 se aplica: autovalores reales no negativos y autovectores ortogonales. La versión normalizada D^{−1/2}·L·D^{−1/2} acota los autovalores en [0, 2] y es la que usan las redes convolucionales sobre grafos, con la precaución de tratar los nodos aislados para no dividir por cero.

Ejemplo trabajado

Laplaciano de un grafo de cinco nodos.

5 nodos, 6 aristas
grados: [3, 2, 3, 3, 1]

L = D − A:
  [ 3  −1  −1  −1   0]
  [−1   2  −1   0   0]
  [−1  −1   3  ...   ]
  [ ...                ]

autovalores:
  [0,0 ; 0,82991351 ; 2,68889218 ; 4,0 ; 4,4811943]

multiplicidad de 0: 1  →  grafo conexo             ✓
λ₂ = 0,83 > 0        →  confirma la conexión       ✓

Un λ₂ pequeño indicaría un cuello de botella,
y el vector de Fiedler diría por dónde cortarlo.

Qué ejecuta el laboratorio

Laplaciano del grafo: espectro y componentes conexas.

GrupoSalidas
Resultados numéricos (5)nodos, aristas, autovalores_nulos, componentes_conexas, conectividad_algebraica_fiedler
Comprobaciones (1)es_semidefinido_positivo
compmath run 336

Errores conceptuales frecuentes

  1. Normalizar el Laplaciano sin tratar los nodos aislados y dividir por cero.
  2. Confundir el Laplaciano con la matriz de adyacencia.
  3. Interpretar λ₂ sin comprobar antes que el grafo es conexo.

Dónde se usa

Agrupamiento espectral, redes convolucionales sobre grafos, análisis de redes sociales, partición de mallas y detección de comunidades.

Bibliografía de la clase

337 · Message passing en GNN

Parte 16 · clase 17 de 20 · demostración message_passing

Una capa de paso de mensajes ve un salto; k capas ven un vecindario de radio k.

h_v^{(k+1)} = σ(Σ_{u∈N(v)∪{v}} w_{vu}·W·h_u^{(k)})
normalización GCN: D^{−1/2}(A+I)D^{−1/2}
campo receptivo tras k capas: radio k

Fundamentos

El paso de mensajes es el mecanismo central de las redes sobre grafos. En cada capa, cada nodo recoge las representaciones de sus vecinos, las agrega y las combina con la suya para producir una representación nueva. Repetir la operación propaga información cada vez más lejos.

El paralelismo con las convoluciones de la parte 15 es exacto: una capa equivale a un salto, y k capas dan un campo receptivo de radio k. La diferencia es que en una imagen el vecindario es una rejilla regular y en un grafo es arbitrario, con nodos de grado 1 y de grado 1000 en la misma red.

Esa irregularidad obliga a normalizar. Sin ella, un nodo con mil vecinos acumularía una suma con escala completamente distinta a la de un nodo con dos, y las activaciones quedarían descontroladas. La normalización simétrica D^{−1/2}(A+I)D^{−1/2} de las GCN resuelve eso y además añade auto-lazos para que cada nodo conserve su propia información.

La limitación característica es el sobresuavizado: con muchas capas, las representaciones de todos los nodos convergen a algo indistinguible, porque cada una acaba siendo un promedio de casi todo el grafo. Por eso las GNN son típicamente poco profundas —dos o tres capas— al contrario que las CNN, y por eso hay líneas de trabajo enteras dedicadas a permitir GNN profundas.

Ejemplo trabajado

Dos capas de paso de mensajes sobre cinco nodos.

características iniciales:
  [1,0  0,0]  [0,0  1,0]  [1,0  1,0]  [0,5  0,5]  [2,0  −1,0]

tras 1 capa:
  [0,625  0,663675]
  [0,577  0,622008]
  [0,625  0,663675]
  [1,332107  ...]

tras 2 capas:
  [0,812193  0,516758]
  [0,553294  0,590509]
  [0,812193  0,516758]

Los nodos 0 y 2 convergen a lo mismo: tienen
vecindarios equivalentes.

Campo receptivo tras k capas: vecindario de radio k.
Normalización: D^{−1/2}(A+I)D^{−1/2}, como en GCN.

Qué ejecuta el laboratorio

Message passing: cada capa agrega información de un salto más lejos.

GrupoSalidas
Resultados numéricos (1)nodos
Comprobaciones (2)el_nodo_4_solo_tiene_1_vecino, permutacion_equivariante
compmath run 337

Errores conceptuales frecuentes

  1. Apilar muchas capas y provocar sobresuavizado.
  2. Omitir la normalización por grado con grafos muy heterogéneos.
  3. Olvidar los auto-lazos y perder la información propia del nodo.

Dónde se usa

Predicción molecular, sistemas de recomendación sobre grafos, análisis de redes sociales, detección de fraude y simulación física con partículas.

Bibliografía de la clase

338 · Bellman equations

Parte 16 · clase 18 de 20 · demostración bellman_equations

El valor de un estado es la recompensa inmediata más el valor futuro descontado.

V(s) = max_a [R(s,a) + γ·V(s')]
γ ∈ [0,1): factor de descuento
iteración de valor: aplicar la ecuación hasta converger

Fundamentos

La ecuación de Bellman descompone el valor de un estado en dos partes: lo que se obtiene ahora y lo que se puede obtener después. Esa recursión es la base de todo el aprendizaje por refuerzo y de buena parte de la programación dinámica.

El factor de descuento γ pondera el futuro. Con γ cercano a 0 el agente es miope y solo persigue recompensa inmediata; con γ cercano a 1 planifica a largo plazo. Además de reflejar una preferencia, tiene una función matemática: garantiza que la suma de recompensas de un horizonte infinito converja.

La iteración de valor aplica la ecuación repetidamente hasta que los valores dejan de cambiar. Converge siempre porque el operador de Bellman es una contracción con constante γ: cada aplicación acerca la estimación al punto fijo en un factor γ. Es una aplicación directa del teorema del punto fijo de Banach.

El límite es que exige conocer el modelo: las transiciones y las recompensas. Cuando no se conocen —que es el caso interesante— aparecen los métodos libres de modelo como Q-learning, que estiman lo mismo a partir de la experiencia. Y con espacios de estados enormes, la tabla de valores se sustituye por una red neuronal, que es lo que hace DQN.

Ejemplo trabajado

Iteración de valor sobre un MDP de cuatro estados.

estados: [0, 1, 2, 3]      terminal: 3      γ = 0,9

ecuación: V(s) = max_a [R(s,a) + γ·V(s')]

iter   V
  1    {0: 0,000, 1: 0,000, 2: 1,000, 3: 1,000}
  2    {0: 0,000, 1: 0,900, 2: 1,900, 3: 1,000}
  3    {0: 0,810, 1: 1,710, 2: 1,900, 3: 1,000}
final  {0: 1,539, 1: 1,710, 2: 1,900, 3: 1,000}

El valor se propaga hacia atrás desde el terminal,
un estado por iteración.

V(0) = 0,9 · V(1) = 0,9 · 1,71 = 1,539              ✓

Qué ejecuta el laboratorio

Iteración de valor sobre un MDP pequeño.

GrupoSalidas
Resultados numéricos (4)estado_terminal, gamma, iteraciones_hasta_converger, V(0)_teorico_gamma³
Comprobaciones (1)converge_siempre_si_gamma<1
compmath run 338

Errores conceptuales frecuentes

  1. Usar γ = 1 con horizonte infinito y no converger.
  2. Confundir la función de valor de estado con la de acción.
  3. Aplicar iteración de valor sin conocer el modelo de transiciones.

Dónde se usa

Aprendizaje por refuerzo, planificación en robótica, control óptimo, juegos y toma de decisiones secuenciales.

Bibliografía de la clase

339 · Policy gradients

Parte 16 · clase 19 de 20 · demostración policy_gradients

REINFORCE sube la probabilidad de lo que salió bien, y la línea base reduce la varianza.

∇J = E[∇log π(a|s) · (R − b)]
b es la línea base, típicamente el valor medio
restar b no sesga el gradiente

Fundamentos

Los métodos de gradiente de política optimizan directamente la política parametrizada, sin pasar por una función de valor. La actualización tiene una lectura muy directa: aumentar la log-probabilidad de las acciones que produjeron recompensa alta y disminuir la de las que produjeron recompensa baja.

El problema del estimador básico es la varianza. La recompensa de un episodio depende de muchas decisiones y de la aleatoriedad del entorno, así que el gradiente es muy ruidoso y el aprendizaje, lento e inestable.

La línea base lo mitiga. Restar una cantidad que no depende de la acción —típicamente el valor medio del estado— no cambia la esperanza del gradiente pero reduce mucho su varianza. Es un resultado limpio: se gana estabilidad sin introducir sesgo. La diferencia R − b se llama ventaja, y mide cuánto mejor fue la acción que la media.

De ahí sale toda la familia actor-crítico: el actor es la política, el crítico estima la línea base, y ambos se entrenan a la vez. PPO, el algoritmo estándar hoy y el que se usa en el ajuste por retroalimentación humana de los modelos de lenguaje, es un refinamiento de esta idea con una restricción que impide que la política cambie demasiado en un solo paso.

Ejemplo trabajado

REINFORCE sobre un bandido de tres brazos.

probabilidades reales de recompensa: [0,2 ; 0,5 ; 0,8]
mejor brazo: 2

episodio    política                    línea base
   1      [0,3222 ; 0,3222 ; 0,3557]      0,00
 100      [ ... ]                          ...
final     [0,004018 ; 0,014253 ; 0,981729]

brazo preferido: 2                                   ✓

La política converge al brazo correcto sin conocer
las probabilidades: solo por experiencia.

Sin línea base, la varianza del gradiente sería
mucho mayor y la convergencia más lenta.

Qué ejecuta el laboratorio

REINFORCE: gradiente de la política sobre un bandido de 3 brazos.

GrupoSalidas
Resultados numéricos (5)brazos, mejor_brazo, brazo_preferido, episodios, semilla
Comprobaciones (1)encuentra_el_mejor
compmath run 339

Errores conceptuales frecuentes

  1. Usar REINFORCE sin línea base y sufrir varianza excesiva.
  2. Elegir una línea base que depende de la acción e introducir sesgo.
  3. Actualizar la política con pasos grandes y colapsar la exploración.

Dónde se usa

Aprendizaje por refuerzo, RLHF en modelos de lenguaje, robótica, optimización de sistemas de diálogo y control continuo.

Bibliografía de la clase

340 · Capstone: mini-Transformer matemático

Parte 16 · clase 20 de 20 · demostración capstone_mini_transformer

Un Transformer de 101 parámetros aprende a mirar exactamente una posición atrás.

embedding + positional encoding → self-attention causal → salida
tarea: predecir el token anterior
verificación: la atención debe concentrarse en la posición i−1

Fundamentos

El capstone construye un Transformer causal completo con todos los componentes de la parte: embedding aprendido, codificación posicional sinusoidal, self-attention con máscara causal y proyección de salida. Son 101 parámetros y funciona.

La tarea elegida —predecir el token anterior— es deliberadamente trivial, y esa trivialidad es lo valioso. Permite verificar el mecanismo de forma directa: si la atención funciona como se ha descrito, la matriz de atención aprendida debe concentrar su masa en la posición i−1. No hace falta confiar en una métrica agregada; se puede mirar la matriz.

El papel de la codificación posicional se vuelve evidente aquí. Sin ella el modelo no podría resolver la tarea en absoluto, porque «el token anterior» es una noción puramente posicional y la atención por sí sola es ciega al orden. Quitarla y ver el fallo es el experimento de ablación más instructivo posible.

La distancia con un modelo real es de escala, no de concepto: los mismos componentes, repetidos decenas de veces y con dimensiones mil veces mayores. Entender qué hace cada pieza en 101 parámetros es lo que permite razonar sobre qué ocurre en 100 000 millones, y cierra el recorrido que empezó contando con los dedos en la parte 00.

Ejemplo trabajado

Configuración del mini-Transformer.

tarea: predecir el token anterior (copia desplazada)

vocabulario: 6
d_model: 8
longitud de secuencia: 5

componentes:
  embedding aprendido
  positional encoding sinusoidal
  self-attention causal
  proyección de salida

parámetros entrenados: 101

Verificación esperada:
  la matriz de atención debe concentrarse
  en la posición i−1 para cada token i

Ablación: sin positional encoding la tarea
es irresoluble, porque "anterior" es posicional.

Qué ejecuta el laboratorio

Capstone: mini-Transformer que aprende a copiar el token anterior.

GrupoSalidas
Resultados numéricos (10)vocabulario, d_model, longitud_de_secuencia, parametros_entrenados, ejemplos_train, ejemplos_test, accuracy_train, accuracy_test, linea_base_por_azar, semilla
Comprobaciones (1)la_atencion_aprende_a_mirar_i-1
compmath run 340

Errores conceptuales frecuentes

  1. Evaluar solo la pérdida sin inspeccionar la matriz de atención.
  2. Omitir la codificación posicional en tareas que dependen del orden.
  3. Extrapolar conclusiones de un modelo de juguete a modelos de gran escala.

Dónde se usa

Comprensión profunda de los Transformers, interpretabilidad mecanicista, docencia, entrevistas técnicas y depuración de implementaciones.

Bibliografía de la clase

Parte 17 — Frontera matemática para IA e investigación

Nivel frontera-investigacion · 20 clases · 80 horas · motor part17

Procesos gaussianos, MCMC avanzado, inferencia variacional, transporte óptimo, geometría diferencial e informacional, SDE, Neural ODE, score matching y teoría del aprendizaje.

Esta última parte recorre la matemática que aparece en los artículos de investigación actuales y que rara vez se enseña en un curso introductorio. No es un apéndice decorativo: score matching es el fundamento de los modelos de difusión, el transporte óptimo aparece en flow matching, y la teoría estadística del aprendizaje es lo que da marco a las leyes de escala. Quien quiera leer papers y reproducirlos necesita estas herramientas.

Las clases 341 a 345 tratan la inferencia. Un proceso gaussiano define una distribución sobre funciones en vez de sobre parámetros, y su virtud es que la incertidumbre es honesta: mínima donde hay datos, y de vuelta al prior donde no los hay. Los métodos de muestreo aparecen con su diagnóstico obligatorio: Metropolis-Hastings tiene una tasa de aceptación óptima cercana a 0,44 y un paso mal elegido produce cadenas que aceptan casi todo y no exploran nada. HMC usa el gradiente para proponer estados lejanos con altísima aceptación, y la inferencia variacional cambia muestrear por optimizar.

Las clases 346 y 347 introducen el transporte óptimo, que responde a cuánto cuesta mover una distribución hasta otra. Su ventaja decisiva sobre la KL es que funciona sin soporte común: cuando dos distribuciones no se solapan, la KL es infinita o constante y su gradiente inútil, mientras que Wasserstein sigue midiendo la separación real. Eso es exactamente lo que arregló WGAN, y lo que hace del transporte óptimo el lenguaje del flow matching.

Las clases 348 a 350 aportan geometría. La hipótesis de la variedad —los datos reales viven en una variedad de dimensión intrínseca mucho menor que la del espacio ambiente— es lo que explica que el aprendizaje sea posible en dimensión alta. La geometría de la información dota al espacio de parámetros de una métrica natural: la información de Fisher es la curvatura local de la divergencia KL, y de ahí salen la cota de Cramér-Rao y el gradiente natural, invariante a reparametrizaciones.

Las clases 351 a 355 tratan la dinámica y la causalidad. Las ecuaciones diferenciales estocásticas describen procesos con ruido continuo y son la formulación en tiempo continuo de la difusión; los Neural ODE tratan la profundidad como variable continua y usan el método adjunto para no almacenar toda la trayectoria; el score matching aprende ∇ log p sin necesitar la constante de normalización, que es precisamente la cantidad intratable; y la inferencia causal muestra con números cómo el ajuste por puerta trasera recupera un efecto real de cero que la correlación cruda estimaba en 1,02.

El cierre (356 a 359) es teoría del aprendizaje: riesgo empírico frente a riesgo verdadero, dimensión VC, cotas PAC y teoría de aproximación. Conviene decir con claridad qué aportan y qué no. Las cotas PAC son correctas y enormemente holgadas en la práctica: predicen que las redes profundas no deberían generalizar y generalizan. Su valor es cualitativo —cómo escala la muestra necesaria con 1/ε y con la complejidad— no cuantitativo.

El capstone reproduce el núcleo matemático de un resultado publicado: el estimador de Sinkhorn converge al transporte óptimo cuando la regularización entrópica tiende a cero. Verificar un resultado de un artículo con código propio y datos donde el óptimo se conoce por fuerza bruta es la habilidad que este programa entero ha estado construyendo desde la primera clase.

Ideas centrales

Por qué importa en IA

Score matching fundamenta los modelos de difusión; el transporte óptimo aparece en flow matching; la teoría estadística del aprendizaje explica el scaling.

Errores frecuentes de la parte

Glosario de la parte (38 términos)

TérminoDefiniciónClase
Algoritmo de SinkhornResuelve el transporte con regularización entrópica mediante escalados alternos.346
Aprendizaje PACProbablemente aproximadamente correcto: error ≤ ε con probabilidad ≥ 1 − δ.358
Brecha de generalizaciónDiferencia entre riesgo verdadero y riesgo empírico.356
Burn-inIteraciones iniciales descartadas hasta que la cadena alcanza su distribución estacionaria.343
ColisionadorVariable causada por dos otras. Condicionar sobre ella crea asociación espuria.355
Complejidad muestralNúmero de ejemplos necesarios para garantizar (ε, δ). Crece como 1/ε y log(1/δ).358
Condición de MercerUna función es kernel válido si su matriz de Gram es siempre semidefinida positiva.342
Conectividad algebraicaSegundo autovalor del Laplaciano. Mide cuán difícil es partir el grafo.354
Constante de normalizaciónZ que hace que la densidad integre 1. Suele ser intratable y el score la evita.353
Cota de Cramér-RaoNingún estimador insesgado tiene varianza menor que la inversa de la información de Fisher.350
Criterio de puerta traseraAjustar por un conjunto que bloquee todos los caminos no causales entre X e Y.355
Dimensión intrínsecaNúmero de grados de libertad reales de los datos, independiente del espacio de representación.348
Dimensión VCTamaño del mayor conjunto que la clase de hipótesis puede etiquetar de todas las formas.357
Distancia de WassersteinCoste mínimo de transporte. Es una métrica verdadera y funciona sin soporte común.347
Ecuación diferencial estocásticaEcuación con un término de deriva y otro de ruido browniano.351
Euler-MaruyamaIntegrador de SDE. El ruido escala como √dt, no como dt.351
Familia variacionalConjunto de distribuciones candidatas entre las que se busca la mejor aproximación.345
FragmentarRealizar todas las 2ⁿ etiquetaciones posibles de n puntos.357
GeodésicaCurva de longitud mínima entre dos puntos de una variedad.349
Gradiente naturalGradiente preacondicionado por la inversa de Fisher. Invariante a reparametrizaciones.350
Hamiltonian Monte CarloUsa el gradiente y dinámica hamiltoniana para proponer estados lejanos con alta aceptación.344
Hipótesis de la variedadLos datos reales viven cerca de una variedad de dimensión mucho menor que la ambiente.348
Inferencia variacionalAproximar una posterior optimizando dentro de una familia en vez de muestrear.345
Información de FisherCurvatura local de la KL. Métrica natural del espacio de parámetros.350
Jitter numéricoPequeña constante sumada a la diagonal para que la covarianza sea invertible.341
LeapfrogIntegrador simpléctico que conserva el volumen y hace válida la propuesta de HMC.344
Ley de escalaError que decae como una potencia del número de parámetros o de datos.359
Matriz de GramMatriz de todos los productos kernel entre pares de puntos.342
Metropolis-HastingsPropone un estado y lo acepta con probabilidad dependiente de la razón de densidades.343
Método adjuntoCalcula gradientes resolviendo una EDO hacia atrás, con memoria constante.352
Neural ODERed donde la profundidad es continua y la salida es la solución de una EDO aprendida.352
Proceso gaussianoDistribución sobre funciones definida por una media y un kernel de covarianza.341
Riesgo empíricoError medido sobre la muestra de entrenamiento.356
Score∇ₓ log p(x). No depende de la constante de normalización.353
Tasa de aceptaciónFracción de propuestas aceptadas. El óptimo en una dimensión ronda 0,44.343
Tensor métricoObjeto que define distancias y ángulos localmente en una variedad.349
Transporte óptimoPlan de mínimo coste para transformar una distribución en otra.346
Vector de FiedlerAutovector del segundo autovalor del Laplaciano. Su signo sugiere el corte del grafo.354

Bibliografía de la parte

341 · Gaussian Processes

Parte 17 · clase 1 de 20 · demostración gaussian_processes

Un proceso gaussiano distribuye sobre funciones, y su incertidumbre crece donde no hay datos.

f ~ GP(m(x), k(x,x'))
media posterior: K*ᵀ(K + σ²I)⁻¹y
varianza posterior: k** − K*ᵀ(K + σ²I)⁻¹K*

Fundamentos

Un proceso gaussiano cambia el objeto sobre el que se pone la distribución. En vez de definir un modelo paramétrico y distribuir sobre sus parámetros, distribuye directamente sobre funciones: cualquier conjunto finito de evaluaciones sigue una normal multivariante determinada por el kernel.

Su propiedad más valiosa es que la incertidumbre es honesta. Cerca de un punto observado la varianza posterior es casi nula, porque la función tiene que pasar por ahí; lejos de todos los datos, vuelve a la varianza del prior. Ningún modelo paramétrico da eso gratis, y es la razón de que los GP dominen la optimización bayesiana, donde hay que decidir dónde explorar a continuación.

El precio es el coste. Invertir la matriz de covarianza cuesta O(n³) en tiempo y O(n²) en memoria, lo que limita el método a unos miles de puntos sin aproximaciones. Las técnicas de puntos inductores y los GP dispersos existen precisamente para sortear ese muro.

Una advertencia de implementación que no es opcional: la matriz de covarianza es teóricamente definida positiva pero numéricamente casi singular cuando hay puntos próximos. Sin sumar un pequeño jitter a la diagonal, la factorización de Cholesky falla. Es el mismo problema de condicionamiento de la parte 11, y la solución es la misma idea que Ridge: sumar λI.

Ejemplo trabajado

GP con kernel RBF sobre cinco observaciones.

observaciones: 5      kernel: RBF con escala 1,0
ruido: 0,0001

predicción en x = −1,0:
  media = −0,841409
  desviación = 0,009999
  valor real de sin(−1) = −0,841471                  ✓

En un punto observado la varianza es mínima          ✓
Lejos de los datos la varianza vuelve al prior: 1,0

Esa es la propiedad clave: el modelo sabe
dónde no sabe.

Coste: invertir la covarianza es O(n³).
Con n = 10 000 ya es inviable sin aproximar.

Qué ejecuta el laboratorio

GP: distribución sobre funciones, con media y varianza posterior.

GrupoSalidas
Resultados numéricos (3)observaciones, ruido, lejos_de_los_datos_vuelve_al_prior
Comprobaciones (1)en_un_punto_observado_la_varianza_es_minima
compmath run 341

Errores conceptuales frecuentes

  1. Invertir la covarianza sin sumar jitter a la diagonal.
  2. Aplicar GP exacto a decenas de miles de puntos.
  3. Elegir el kernel sin considerar qué suavidad implica sobre las funciones.

Dónde se usa

Optimización bayesiana de hiperparámetros, regresión con incertidumbre calibrada, geoestadística, diseño experimental y modelos sustitutos de simuladores costosos.

Bibliografía de la clase

342 · Kernel methods avanzados

Parte 17 · clase 2 de 20 · demostración advanced_kernels

Una función es kernel válido si y solo si su matriz de Gram es siempre semidefinida positiva.

K(a,b) = φ(a)ᵀφ(b) para alguna φ
Mercer: matriz de Gram semidefinida positiva
suma y producto de kernels son kernels

Fundamentos

Un kernel codifica una noción de similitud, y elegirlo es elegir qué se considera parecido. Cada familia impone supuestos distintos sobre las funciones que el modelo puede representar, y esos supuestos son la parte del modelado que realmente importa.

El RBF o gaussiano supone funciones infinitamente suaves y decae con la distancia; es el punto de partida razonable. El polinómico captura interacciones de grado fijo. La familia Matérn es más flexible: su parámetro controla la suavidad, y Matérn 3/2 o 5/2 suelen ajustarse mejor a datos reales que el RBF, que a menudo es demasiado suave.

La condición de Mercer caracteriza qué funciones son kernels legítimos: aquellas cuya matriz de Gram es semidefinida positiva para cualquier conjunto de puntos. Esa condición garantiza que existe un espacio de características —posiblemente de dimensión infinita— donde el kernel es el producto escalar, y es lo que hace válido el truco de la clase 290.

Las reglas de composición permiten construir kernels a medida sin verificar Mercer cada vez: sumas, productos y escalados de kernels válidos siguen siendo válidos. Con eso se combinan estructuras —periodicidad más tendencia más ruido— de forma modular, que es como se modelan series temporales complejas con GP.

Ejemplo trabajado

Cuatro kernels y la verificación de Mercer.

valores sobre un mismo par de puntos:
  RBF                  0,32465247
  polinómico grado 3  42,87500000
  Matérn 3/2           0,26770000

matriz de Gram del RBF (4 puntos):
  [1,000000  0,882497  0,606531  0,324652]
  [0,882497  1,000000  0,882497  0,606531]
  [ ...                                  ]

autovalores:
  [3,11850065 ; 0,78879628 ; 0,08864872 ; 0,00405435]

todos ≥ 0  →  semidefinida positiva                  ✓
cumple Mercer                                        ✓

El menor autovalor es 0,004: casi singular.
Sin jitter, Cholesky fallaría.

Qué ejecuta el laboratorio

Familias de kernels y la condición de Mercer.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (3)es_semidefinida_positiva, suma_de_kernels_es_kernel, producto_de_kernels_es_kernel
compmath run 342

Errores conceptuales frecuentes

  1. Usar como kernel una función que no cumple Mercer.
  2. Elegir RBF por defecto cuando los datos no son tan suaves.
  3. Combinar kernels sin normalizar sus escalas.

Dónde se usa

Procesos gaussianos, SVM no lineales, PCA con kernel, modelado de series temporales estructuradas y comparación de objetos complejos.

Bibliografía de la clase

343 · MCMC avanzado

Parte 17 · clase 3 de 20 · demostración advanced_mcmc

Aceptar el 95 % de las propuestas no es buena señal: significa que no se explora.

aceptar con probabilidad min(1, p(x')/p(x))
tasa óptima en 1D ≈ 0,44
descartar el burn-in antes de estimar

Fundamentos

Metropolis-Hastings genera muestras de una distribución conocida solo hasta una constante, que es la situación habitual en inferencia bayesiana: la posterior se conoce salvo por la evidencia, que es una integral intratable. El algoritmo propone un estado y lo acepta con probabilidad proporcional a la razón de densidades, en la que la constante se cancela.

El tamaño del paso de la propuesta controla todo el comportamiento, y sus dos extremos son igual de malos. Un paso pequeño acepta casi todas las propuestas pero se mueve muy despacio, produciendo muestras fuertemente autocorrelacionadas que aportan poca información nueva. Un paso grande propone estados improbables que se rechazan, y la cadena se queda quieta.

La teoría da un objetivo concreto: la tasa óptima de aceptación en una dimensión ronda 0,44, y en dimensiones altas converge a 0,234. Una tasa del 95 % no indica un buen muestreador sino un paso demasiado tímido, y es un error de lectura frecuente.

Ningún resultado MCMC debe reportarse sin diagnóstico. Descartar el burn-in inicial, examinar la autocorrelación, calcular el tamaño de muestra efectivo y ejecutar varias cadenas comprobando el estadístico R̂ son pasos obligatorios. Una cadena que no ha convergido produce números perfectamente plausibles y completamente equivocados.

Ejemplo trabajado

Efecto del tamaño de paso sobre la exploración.

objetivo: Normal(2,0 ; 1,5)
8 000 iteraciones, burn-in 2 000

paso = 0,2:
  tasa de aceptación: 0,9547
  media estimada: 2,4552          error 0,455
  acepta casi todo pero explora muy despacio         ✗

paso óptimo (tasa ≈ 0,44):
  media estimada mucho más cercana a 2,0

Tasa óptima teórica:
  1 dimensión:     0,44
  alta dimensión:  0,234

Una tasa alta no es buena señal: es síntoma
de que la cadena apenas se mueve.

Qué ejecuta el laboratorio

Metropolis-Hastings con diagnóstico de aceptación y autocorrelación.

GrupoSalidas
Resultados numéricos (3)iteraciones, burn_in, semilla
Comprobaciones (0)
compmath run 343

Errores conceptuales frecuentes

  1. Interpretar una tasa de aceptación alta como buena convergencia.
  2. Reportar resultados MCMC sin diagnóstico ni burn-in.
  3. Ejecutar una sola cadena y no poder calcular R̂.

Dónde se usa

Inferencia bayesiana con posteriores complejas, física estadística, modelos jerárquicos y cuantificación de incertidumbre.

Bibliografía de la clase

344 · Hamiltonian Monte Carlo

Parte 17 · clase 4 de 20 · demostración hamiltonian_monte_carlo

Con gradientes se proponen estados lejanos que se aceptan el 99,8 % de las veces.

energía: H(q,p) = −log p(q) + ‖p‖²/2
integrador leapfrog, simpléctico
aceptación basada en la conservación de H

Fundamentos

Hamiltonian Monte Carlo sustituye la propuesta aleatoria por una simulación de dinámica física. Se interpreta el logaritmo negativo de la densidad como una energía potencial, se añade una variable de momento con energía cinética, y se simula el movimiento de una partícula en ese paisaje.

La ventaja es que la partícula sigue el gradiente y se desplaza a regiones lejanas que conservan alta densidad. Donde Metropolis-Hastings tantea a ciegas y rechaza a menudo, HMC propone estados informados y los acepta casi siempre. En el ejemplo, la tasa de aceptación es del 99,8 % con propuestas mucho más lejanas.

El integrador tiene que ser simpléctico, y por eso se usa leapfrog y no Euler. Un integrador simpléctico conserva el volumen del espacio de fases, lo que es exactamente la condición que hace válida la propuesta reversible. Con un integrador cualquiera, la cadena no muestrearía la distribución correcta. Es un caso donde la elección del método numérico de la parte 11 no es una cuestión de precisión sino de corrección.

Sus dos hiperparámetros —el tamaño de paso y el número de saltos de leapfrog— son delicados de ajustar, y NUTS los adapta automáticamente. Esa es la razón de que HMC y NUTS sean hoy el motor por defecto de Stan, PyMC y NumPyro. Su límite es que exige gradientes, y por tanto no sirve con parámetros discretos.

Ejemplo trabajado

HMC frente a random walk sobre el mismo objetivo.

objetivo: Normal(2,0 ; 1,5)
3 000 iteraciones
step size ε = 0,35      pasos de leapfrog: 12

tasa de aceptación: 0,9983
media estimada: 2,0051      error 0,005

Comparación con Metropolis-Hastings:
  MH  con paso 0,2:  aceptación 0,95, media 2,4552
  HMC con ε = 0,35:  aceptación 0,998, media 2,0051

HMC acepta más Y explora más lejos, porque las
propuestas siguen el gradiente en vez de ser ciegas.

El integrador debe ser simpléctico: con Euler
la cadena muestrearía la distribución equivocada.

Qué ejecuta el laboratorio

HMC: usar el gradiente para proponer estados lejanos con alta aceptación.

GrupoSalidas
Resultados numéricos (8)iteraciones, step_size_epsilon, pasos_de_leapfrog, tasa_de_aceptacion, media_estimada, desviacion_estimada, autocorrelacion_lag_1, tamaño_efectivo_aprox
Comprobaciones (0)
compmath run 344

Errores conceptuales frecuentes

  1. Usar un integrador no simpléctico y muestrear la distribución equivocada.
  2. Ajustar ε y el número de saltos a mano existiendo NUTS.
  3. Aplicar HMC a modelos con parámetros discretos.

Dónde se usa

Motores de inferencia bayesiana como Stan y PyMC, modelos jerárquicos complejos, física computacional y cuantificación de incertidumbre en redes.

Bibliografía de la clase

345 · Variational inference avanzada

Parte 17 · clase 5 de 20 · demostración advanced_variational_inference

Cambiar muestreo por optimización: más rápido, aproximado y con sesgo conocido.

minimizar KL(q ‖ p) sobre la familia variacional
equivale a maximizar el ELBO
el resultado depende de la familia elegida

Fundamentos

La inferencia variacional plantea la aproximación de una posterior como un problema de optimización: elegir una familia de distribuciones tratables y buscar dentro de ella la que minimiza la divergencia KL respecto de la posterior real. Sustituye muestrear por minimizar.

La ventaja es la velocidad y la escala. Donde MCMC necesita miles de evaluaciones secuenciales, la inferencia variacional aprovecha descenso de gradiente, minilotes y GPU. Es lo que hace viable la inferencia bayesiana en modelos con millones de parámetros, y es la razón de que el VAE de la clase 331 funcione.

El precio es un sesgo sistemático. Como se minimiza KL(q‖p) —la dirección de búsqueda de modo, según la clase 264— la aproximación tiende a subestimar la varianza y a concentrarse en un modo. MCMC es asintóticamente exacto; la inferencia variacional es rápida y sesgada, y ese sesgo no desaparece con más cómputo.

La elección de familia determina el resultado. La aproximación de campo medio, que supone independencia entre parámetros, es la más común y la que peor captura correlaciones posteriores. Familias más expresivas —flujos normalizadores— reducen el sesgo a cambio de coste. El criterio práctico es claro: MCMC cuando el modelo es pequeño y la exactitud importa; variacional cuando el modelo es grande y la escala manda.

Ejemplo trabajado

Aproximación variacional de una posterior normal.

posterior real: Normal(mu = 3,0 ; sigma = 0,8)
familia variacional: Normal(m, s)

paso     m         s         KL
  1    0,46875   0,945303   5,03687513
  …
final  3,00000   0,800000   ≈ 0

La familia contiene la posterior real, así que
la aproximación es exacta y KL llega a 0.        ✓

En un caso real la familia NO contiene la posterior,
y KL se estanca en un valor positivo: ese residuo
es el sesgo del método.

Con campo medio, s quedaría por debajo del real:
la varianza se subestima sistemáticamente.

Qué ejecuta el laboratorio

Inferencia variacional: optimizar en lugar de muestrear.

GrupoSalidas
Resultados numéricos (1)KL_final
Comprobaciones (1)converge_al_posterior
compmath run 345

Errores conceptuales frecuentes

  1. Reportar la incertidumbre variacional como si fuera exacta.
  2. Usar campo medio con posteriores fuertemente correlacionadas.
  3. Comparar valores de ELBO entre familias variacionales distintas.

Dónde se usa

VAE, redes bayesianas a escala, topic models, inferencia en modelos grandes y cuantificación rápida de incertidumbre.

Bibliografía de la clase

346 · Optimal transport

Parte 17 · clase 6 de 20 · demostración optimal_transport

Sinkhorn convierte un problema de programación lineal en escalados alternos.

min_P Σ Pᵢⱼ·Cᵢⱼ  sujeto a marginales fijas
regularizado: + ε·Σ Pᵢⱼ·log Pᵢⱼ
solución: escalados alternos de filas y columnas

Fundamentos

El transporte óptimo pregunta cuál es la forma más barata de mover una distribución de masa hasta convertirla en otra, dado un coste por unidad transportada. La formulación de Kantorovich lo plantea como un programa lineal sobre planes de transporte con marginales fijas.

Resolver ese programa lineal exactamente cuesta O(n³ log n), prohibitivo para distribuciones grandes. La aportación de Cuturi fue añadir una regularización entrópica: penalizar planes de baja entropía suaviza el problema, lo vuelve estrictamente convexo, y su solución adopta una forma que se calcula con escalados alternos de filas y columnas.

Ese algoritmo —Sinkhorn— es sencillo, paralelizable y diferenciable, lo que permite usarlo como capa dentro de una red neuronal. Esas tres propiedades juntas son las que llevaron el transporte óptimo de la matemática pura al aprendizaje automático aplicado en apenas unos años.

El parámetro ε controla el compromiso. Valores grandes dan convergencia rápida y planes muy difusos, lejos del óptimo verdadero; valores pequeños se acercan al transporte exacto pero convergen despacio y sufren problemas numéricos por desbordamiento en los exponentes. El capstone de la clase 360 mide exactamente esa convergencia.

Ejemplo trabajado

Sinkhorn entre dos distribuciones de tres átomos.

origen:  [0,4 ; 0,3 ; 0,3]
destino: [0,2 ; 0,5 ; 0,3]

matriz de coste:
  [0,5  1,5  3,0]
  [0,5  0,5  2,0]
  [1,5  0,5  1,0]

regularización ε = 0,05

plan de transporte:
  [0,200000  0,199750  0,000000]
  [0,000000  0,299813  0,000000]
  [0,000000  0,000437  0,299999]

marginales de fila: [0,399751 ; 0,299813 ; 0,300436]
coinciden con el origen                              ✓

El plan evita las celdas caras (coste 3,0 y 2,0)
y concentra la masa en las baratas.

Qué ejecuta el laboratorio

Transporte óptimo por Sinkhorn: coste de mover una distribución a otra.

GrupoSalidas
Resultados numéricos (2)regularizacion_entropica, coste_de_transporte
Comprobaciones (0)
compmath run 346

Errores conceptuales frecuentes

  1. Usar ε demasiado pequeño y provocar desbordamiento numérico.
  2. Interpretar el plan regularizado como el transporte exacto.
  3. Olvidar comprobar que las marginales del plan coinciden con las distribuciones.

Dónde se usa

Comparación de distribuciones, adaptación de dominios, flow matching, emparejamiento de formas y análisis de datos de una sola célula.

Bibliografía de la clase

347 · Wasserstein distance

Parte 17 · clase 7 de 20 · demostración wasserstein_distance

Wasserstein mide la separación real cuando la KL se vuelve infinita o constante.

W₁(P,Q) = ínfimo del coste de transporte con coste |x−y|
en 1D: W₁ = ∫|F_P(x) − F_Q(x)| dx
es una métrica verdadera

Fundamentos

La distancia de Wasserstein es el coste del transporte óptimo, y a diferencia de la KL o la JS es una métrica en sentido estricto: simétrica, no negativa, nula solo si las distribuciones coinciden, y cumple la desigualdad triangular.

Su ventaja decisiva aparece cuando los soportes no se solapan. Dos distribuciones disjuntas tienen KL infinita y JS constante en su valor máximo; en ambos casos el gradiente es inútil para acercarlas. Wasserstein, en cambio, mide cuán lejos están y su gradiente apunta en la dirección correcta. Esa es exactamente la motivación de WGAN.

Su interpretación es intuitiva y le da el nombre informal de distancia del transportista: si cada distribución es un montón de tierra, la distancia es el trabajo mínimo necesario para transformar uno en el otro. En una dimensión tiene una forma especialmente simple: el área entre las funciones de distribución acumuladas.

El resultado numérico es limpio: para dos normales con la misma varianza, W₁ es aproximadamente la diferencia de medias, y lo sigue siendo cuando están muy separadas. Con medias 0 y 5, W₁ ≈ 5,04 mientras que la KL empírica se vuelve inestable. La distancia escala con la separación real, que es lo que se quiere de una medida geométrica.

Ejemplo trabajado

Wasserstein-1 entre normales cercanas y lejanas.

2 000 muestras de cada distribución

W₁(N(0,1) , N(0,5;1)) = 0,535306
  diferencia de medias teórica: 0,5             ✓

W₁(N(0,1) , N(5;1))   = 5,042759
  diferencia teórica: 5,0                       ✓

KL empírica en el caso cercano: 0,144536
KL empírica en el caso lejano: inestable o infinita

Wasserstein escala linealmente con la separación.
La KL no distingue "lejos" de "muy lejos": ambas
son igual de infinitas.

Qué ejecuta el laboratorio

Wasserstein-1 en 1D: comparar distribuciones sin soporte común.

GrupoSalidas
Resultados numéricos (7)muestras, W1(N(0,1), N(0.5,1)), diferencia_de_medias_teorica, W1(N(0,1), N(5,1)), diferencia_teorica_lejana, KL_empirica_cercana, KL_empirica_lejana_(soportes_casi_disjuntos)
Comprobaciones (2)W1_crece_de_forma_proporcional, KL_no_informa_cuando_no_hay_solape
compmath run 347

Errores conceptuales frecuentes

  1. Usar KL para comparar distribuciones con soportes disjuntos.
  2. Confundir la versión regularizada de Sinkhorn con la distancia exacta.
  3. Comparar valores de Wasserstein calculados con costes distintos.

Dónde se usa

WGAN, evaluación de modelos generativos, adaptación de dominios, análisis de formas y comparación de distribuciones empíricas.

Bibliografía de la clase

348 · Manifold learning

Parte 17 · clase 8 de 20 · demostración manifold_learning

PCA no encuentra una variedad curva: ve tres dimensiones donde solo hay una.

dimensión intrínseca ≪ dimensión ambiente
PCA solo detecta subespacios lineales
métodos no lineales: Isomap, LLE, t-SNE, UMAP

Fundamentos

La hipótesis de la variedad sostiene que los datos reales de dimensión alta se concentran cerca de una variedad de dimensión intrínseca mucho menor. Una imagen de 1000×1000 píxeles vive en un espacio de un millón de dimensiones, pero el conjunto de imágenes de caras es un subconjunto minúsculo y estructurado de ese espacio.

Esa hipótesis es lo que hace posible el aprendizaje en dimensión alta. Si los datos ocuparan uniformemente el espacio ambiente, la maldición de la dimensionalidad de la clase 288 sería insuperable. Como no lo hacen, un modelo puede aprender la estructura de la variedad con una cantidad razonable de ejemplos.

PCA solo encuentra subespacios lineales, y esa limitación se ve con claridad en el ejemplo. Una hélice es una curva de dimensión intrínseca 1 sumergida en tres dimensiones; PCA reparte la varianza entre las tres componentes —49 %, 36 % y 14 %— sin detectar en ningún momento que hay un solo grado de libertad. La variedad es curva y PCA solo ve rectas.

Los métodos no lineales atacan justamente eso. Isomap usa distancias geodésicas sobre el grafo de vecinos en vez de distancias euclídeas; t-SNE y UMAP preservan la estructura local y son las herramientas estándar de visualización. Con una precaución importante: t-SNE y UMAP no preservan distancias globales, así que el tamaño y la separación de los grupos en sus gráficos no son interpretables.

Ejemplo trabajado

Una hélice: dimensión intrínseca 1 en un espacio de 3.

120 puntos sobre una hélice
dimensión ambiente: 3
dimensión intrínseca: 1

autovalores de la covarianza:
  [0,177520 ; 0,129535 ; 0,052063]

varianza explicada:
  [49,43 % ; 36,07 % ; 14,50 %]

PCA reparte la varianza entre las tres componentes
y no detecta que hay un solo grado de libertad.     ✗

Un método basado en distancias geodésicas sobre el
grafo de vecinos sí recuperaría la dimensión 1.

Qué ejecuta el laboratorio

Variedad: dimensión intrínseca menor que la del espacio ambiente.

GrupoSalidas
Resultados numéricos (6)puntos, dimension_ambiente, dimension_intrinseca, distancia_euclidea_extremos, distancia_geodesica_extremos, razon
Comprobaciones (1)PCA_no_detecta_1_dimension
compmath run 348

Errores conceptuales frecuentes

  1. Usar PCA para variedades curvas y concluir que la dimensión es alta.
  2. Interpretar distancias globales en un gráfico de t-SNE o UMAP.
  3. Fijar los hiperparámetros de UMAP sin comprobar la estabilidad del resultado.

Dónde se usa

Visualización de datos de alta dimensión, reducción de dimensión no lineal, análisis de espacios latentes y exploración de embeddings.

Bibliografía de la clase

349 · Geometría diferencial para ML

Parte 17 · clase 9 de 20 · demostración differential_geometry

La longitud de una curva es la integral de su rapidez, y eso se verifica numéricamente.

velocidad: r'(t)
rapidez: ‖r'(t)‖
longitud de arco: ∫ ‖r'(t)‖ dt

Fundamentos

La geometría diferencial estudia espacios curvos con las herramientas del cálculo. Su objeto central es el tensor métrico, que define cómo medir distancias y ángulos localmente, y del que se derivan longitudes, geodésicas y curvatura.

El caso más simple es una curva parametrizada. Su velocidad es la derivada del vector de posición, su rapidez es la norma de esa velocidad, y la longitud de arco es la integral de la rapidez. Para una hélice el cálculo es exacto y sirve de verificación numérica: la rapidez teórica √(1 + 0,09) = 1,044031 coincide con la calculada, y la longitud sobre un periodo también.

Las geodésicas son las curvas de longitud mínima, la generalización de la recta a espacios curvos. En una esfera son arcos de círculo máximo, que es la razón de que las rutas aéreas parezcan curvas en un mapa plano. La distancia geodésica es la que Isomap usa en la clase anterior.

Su relevancia para el aprendizaje automático llega por dos vías. La hipótesis de la variedad convierte el espacio de datos en un objeto geométrico donde la distancia relevante es la geodésica y no la euclídea. Y la geometría de la información de la clase siguiente aplica estas mismas herramientas al espacio de parámetros, dotándolo de una métrica natural.

Ejemplo trabajado

Hélice: rapidez y longitud de arco verificadas.

curva: r(t) = (cos t , sin t , 0,3t)

velocidad en t = 1:
  (−0,841471 ; 0,540302 ; 0,300000)

rapidez = ‖r'(1)‖ = 1,044031
teórica = √(1 + 0,09) = 1,044031                     ✓

longitud de arco de 0 a 2π:
  calculada = 6,559838
  teórica   = 2π · 1,044031 = 6,559838               ✓

La rapidez es constante porque la hélice avanza
de forma uniforme: es una parametrización natural.

Qué ejecuta el laboratorio

Geometría diferencial: métrica, longitud de curva y curvatura.

GrupoSalidas
Resultados numéricos (6)rapidez, rapidez_teorica_√(1+0.09), longitud_de_arco_0_a_2π, longitud_teorica, curvatura, curvatura_teorica_1/1.09
Comprobaciones (0)
compmath run 349

Errores conceptuales frecuentes

  1. Confundir la longitud del recorrido con la distancia entre extremos.
  2. Usar distancia euclídea donde la geometría del problema pide geodésica.
  3. Suponer que una parametrización cualquiera tiene rapidez constante.

Dónde se usa

Aprendizaje sobre variedades, robótica y planificación de trayectorias, relatividad, geometría de espacios latentes y optimización sobre variedades.

Bibliografía de la clase

350 · Information geometry

Parte 17 · clase 10 de 20 · demostración information_geometry

La información de Fisher es la curvatura de la KL, y de ella salen Cramér-Rao y el gradiente natural.

I(θ) = E[(∂ log p/∂θ)²]
KL(p_θ ‖ p_{θ+ε}) ≈ ½·I(θ)·ε²
Cramér-Rao: Var(θ̂) ≥ 1/(n·I(θ))

Fundamentos

La geometría de la información trata el conjunto de distribuciones de una familia paramétrica como una variedad, donde cada punto es una distribución. La pregunta natural es qué métrica usar en ese espacio, y la respuesta es la información de Fisher.

Su significado es que la KL, localmente, se comporta como una forma cuadrática cuya matriz es Fisher. La comprobación numérica lo confirma: para un desplazamiento minúsculo ε, la KL entre p y p+ε coincide con ½·I(p)·ε² con razón 1,0. Esa identidad es lo que convierte a Fisher en la métrica natural del espacio de parámetros, no una elección arbitraria.

De ahí salen dos resultados centrales. La cota de Cramér-Rao establece un límite inferior a la varianza de cualquier estimador insesgado: donde la información es alta, se puede estimar con precisión; donde es baja, ningún estimador puede ser preciso. En la Bernoulli, la información es máxima en los extremos —11,1 para p = 0,1— y mínima en 0,5, lo que dice que es más fácil estimar un parámetro cercano a los extremos.

El gradiente natural preacondiciona el gradiente con la inversa de Fisher, con lo que la dirección de descenso deja de depender de cómo se hayan parametrizado los pesos. Es elegante y costoso —requiere invertir Fisher— y de ahí vienen aproximaciones prácticas como K-FAC. La restricción de KL de PPO en la clase 339 es una manifestación de la misma idea: medir el cambio de la política en el espacio de distribuciones, no en el de parámetros.

Ejemplo trabajado

Información de Fisher y su relación con la KL.

Bernoulli:
  p = 0,1  →  I = 11,111111
  p = 0,5  →  I =  4,000000
  p = 0,9  →  I = 11,111111
máxima en los extremos                               ✓

Normal:
  σ = 0,5  →  I = 4,00
  σ = 1,0  →  I = 1,00
  σ = 2,0  →  I = 0,25

KL localmente es una métrica (p = 0,1):
  KL(p ‖ p+ε)  = 5,5523e-08
  ½·I(p)·ε²    = 5,5556e-08
  razón ≈ 1,0                                        ✓

Cramér-Rao: Var(θ̂) ≥ 1/(n·I(θ))
Gradiente natural: ∇̃ = I(θ)⁻¹∇

Qué ejecuta el laboratorio

Información de Fisher: la métrica natural del espacio de parámetros.

GrupoSalidas
Resultados numéricos (0)
Comprobaciones (1)la_informacion_es_maxima_en_los_extremos
compmath run 350

Errores conceptuales frecuentes

  1. Interpretar Fisher como una constante en vez de como función de θ.
  2. Aplicar Cramér-Rao a estimadores sesgados.
  3. Invertir Fisher exactamente en modelos grandes en vez de aproximarla.

Dónde se usa

Gradiente natural y K-FAC, PPO, diseño experimental óptimo, cotas de precisión de estimadores y análisis de identificabilidad.

Bibliografía de la clase

351 · Stochastic differential equations

Parte 17 · clase 11 de 20 · demostración stochastic_differential_equations

En una SDE el ruido escala como √dt, no como dt: esa raíz lo cambia todo.

dX = f(X,t)dt + g(X,t)dW
Euler-Maruyama: X ← X + f·dt + g·√dt·ξ
Ornstein-Uhlenbeck: dX = θ(μ − X)dt + σ dW

Fundamentos

Una ecuación diferencial estocástica añade a la dinámica determinista un término de ruido continuo. El primer término, la deriva, describe hacia dónde tiende el sistema; el segundo, la difusión, describe la magnitud de las fluctuaciones aleatorias.

El detalle que hay que interiorizar es el escalado del ruido. El movimiento browniano tiene incrementos de varianza proporcional al tiempo, así que la desviación escala como √dt. En el integrador de Euler-Maruyama eso significa multiplicar el ruido por √dt y no por dt. Usar dt produce una simulación con la magnitud de ruido completamente equivocada, y es el error más frecuente al implementar SDE.

Ese mismo hecho tiene una consecuencia teórica: las trayectorias brownianas son continuas pero no derivables en ningún punto, y por eso el cálculo ordinario no sirve. El cálculo de Itô y su lema son la herramienta correcta, y son la razón de que la fórmula de Black-Scholes tenga el término adicional que tiene.

El proceso de Ornstein-Uhlenbeck del ejemplo es el prototipo con reversión a la media: la deriva empuja hacia μ con fuerza proporcional a la distancia, mientras el ruido lo aparta. Su distribución estacionaria es normal, y aparece en modelos de tipos de interés, en física y en la formulación en tiempo continuo de los modelos de difusión de la clase 334.

Ejemplo trabajado

Ornstein-Uhlenbeck simulado con Euler-Maruyama.

SDE: dX = θ(μ − X)dt + σ dW
θ = 1,5    μ = 2,0    σ = 0,8
dt = 0,01     400 réplicas

paso    t       x
  1    0,01   0,014091
101    1,01   1,xxxxxx
  …             → oscila alrededor de μ = 2,0

Escalado del ruido:
  correcto:    σ·√dt·ξ = 0,8·0,1·ξ = 0,08·ξ
  incorrecto:  σ·dt·ξ  = 0,8·0,01·ξ = 0,008·ξ
  factor 10 de diferencia

Con el escalado incorrecto la simulación parecería
casi determinista.

Qué ejecuta el laboratorio

SDE: proceso de Ornstein-Uhlenbeck simulado con Euler-Maruyama.

GrupoSalidas
Resultados numéricos (7)dt, replicas, media_estacionaria_empirica, media_estacionaria_teorica, varianza_estacionaria_empirica, varianza_estacionaria_teorica_σ²/(2θ), semilla
Comprobaciones (1)el_termino_de_ruido_escala_como_√dt
compmath run 351

Errores conceptuales frecuentes

  1. Escalar el ruido con dt en vez de con √dt.
  2. Aplicar cálculo ordinario a trayectorias brownianas.
  3. Usar pasos grandes y perder la estructura estadística del proceso.

Dónde se usa

Modelos de difusión en tiempo continuo, finanzas cuantitativas, física estadística, dinámica de Langevin y modelado de ruido en sistemas.

Bibliografía de la clase

352 · Neural ODEs

Parte 17 · clase 12 de 20 · demostración neural_odes

El método adjunto calcula gradientes con memoria constante, sin guardar la trayectoria.

dz/dt = f(z, t, θ)
salida: z(T) = z(0) + ∫₀ᵀ f dt
gradientes por una EDO adjunta hacia atrás

Fundamentos

Un Neural ODE observa que una red residual —z ← z + f(z)— es un paso de Euler de una ecuación diferencial, y lleva la idea al límite: en vez de un número discreto de capas, una dinámica continua integrada por un solver numérico. La profundidad deja de ser un entero y pasa a ser un intervalo de tiempo.

La ventaja más citada es el método adjunto para calcular gradientes. En vez de guardar todas las activaciones intermedias como hace backpropagation, se resuelve una EDO auxiliar hacia atrás que reconstruye lo necesario sobre la marcha. El coste de memoria pasa a ser constante, independiente de la profundidad efectiva.

La otra ventaja es el cómputo adaptativo: un solver con paso adaptativo dedica más evaluaciones donde la dinámica es complicada y menos donde es suave. El modelo ajusta su esfuerzo al problema en vez de tener un número fijo de capas.

El coste es la velocidad. Los solvers adaptativos requieren muchas evaluaciones de la red y son más lentos que una pila de capas discretas. Su valor práctico está en dominios donde la dinámica continua es natural: series temporales irregularmente muestreadas, física, y los flujos continuos normalizadores. Toda la parte 11 se vuelve directamente relevante: elegir el integrador y su tolerancia es una decisión de modelado.

Ejemplo trabajado

Neural ODE lineal con solución analítica conocida.

ODE: dz/dt = −θz        solución: z₀·e^(−θt)

z(T) exacto = 0,16529889

convergencia de Euler:
  5 pasos:  z(T) = 0,10737418   error 0,0579
 20 pasos:  ...                  error menor
 80 pasos:  ...                  error/4 por duplicación

Orden 1 confirmado, como en la clase 236.           ✓

pérdida: L = (z(T) − 0,2)²
dL/dθ por método adjunto = 0,168375

El adjunto obtiene el gradiente sin haber guardado
ninguna activación intermedia.

Qué ejecuta el laboratorio

Neural ODE: capas continuas y el método adjunto.

GrupoSalidas
Resultados numéricos (3)z(T)_exacto, dL/dθ_por_metodo_adjunto, dL/dθ_analitico
Comprobaciones (1)coinciden_aproximadamente
compmath run 352

Errores conceptuales frecuentes

  1. Usar tolerancias muy bajas y hacer el entrenamiento inviable.
  2. Aplicar Neural ODE donde una red discreta sería más rápida y suficiente.
  3. Olvidar que el número de evaluaciones varía entre lotes con solvers adaptativos.

Dónde se usa

Series temporales irregulares, flujos continuos normalizadores, modelado físico, dinámica de sistemas y modelos de difusión en tiempo continuo.

Bibliografía de la clase

353 · Score matching

Parte 17 · clase 13 de 20 · demostración score_matching

El score no depende de la constante de normalización, y esa es precisamente la parte intratable.

score: s(x) = ∇ₓ log p(x)
log p(x) = log p̃(x) − log Z
∇ₓ log Z = 0, luego el score ignora Z

Fundamentos

El score es el gradiente del logaritmo de la densidad respecto de la entrada. Apunta hacia las regiones de mayor densidad, y su magnitud indica cuán pronunciada es la subida. Es un campo vectorial que describe la distribución tan completamente como la densidad misma.

Su propiedad decisiva es que no depende de la constante de normalización. Como el logaritmo convierte el producto en suma y la constante no depende de x, su gradiente es cero y desaparece. Eso importa muchísimo porque Z es una integral sobre todo el espacio, intratable en cualquier modelo interesante, y es lo que bloqueaba históricamente el entrenamiento de modelos basados en energía.

La demostración numérica es directa: multiplicar la densidad por una constante arbitraria no cambia el score en ningún punto. Se puede modelar la distribución salvo un factor y aun así caracterizarla completamente.

Conocido el score, la dinámica de Langevin genera muestras: seguir el score con un poco de ruido converge a la distribución. Combinar esa idea con múltiples niveles de ruido es exactamente lo que hacen los modelos de difusión de la clase 335 —la red que predice el ruido está estimando el score— y esa equivalencia unifica dos líneas de trabajo que parecían distintas.

Ejemplo trabajado

Score de una normal, con y sin constante arbitraria.

distribución: Normal(1,5 ; 0,7)
score analítico: −(x − μ)/σ²

x        analítico     numérico
0,0      3,061224      3,061224                      ✓
1,5      0,000000      0,000000                      ✓
2,5     −2,040816     −2,040816                      ✓

Con la densidad multiplicada por una constante:
  score en x = 1,0:  1,020408
  idéntico al de la densidad normalizada             ✓

El score en el máximo vale 0: es donde la densidad
deja de crecer.

Por eso importa: Z es una integral intratable,
y el score no la necesita.

Qué ejecuta el laboratorio

Score matching: aprender ∇ log p sin conocer la constante de normalización.

GrupoSalidas
Resultados numéricos (1)score_con_constante_arbitraria
Comprobaciones (1)es_el_mismo
compmath run 353

Errores conceptuales frecuentes

  1. Suponer que el score identifica la densidad sin fijar la normalización.
  2. Estimar el score en regiones de densidad casi nula, donde es inestable.
  3. Confundir el score respecto de x con el score respecto de los parámetros.

Dónde se usa

Modelos de difusión, modelos basados en energía, dinámica de Langevin, estimación de densidad y generación de imágenes.

Bibliografía de la clase

354 · Spectral graph theory

Parte 17 · clase 14 de 20 · demostración spectral_graph_theory

El signo del vector de Fiedler dice por dónde partir el grafo en dos.

L = D − A;  autovalores 0 = λ₁ ≤ λ₂ ≤ …
λ₂ = conectividad algebraica
partición por el signo del autovector de λ₂

Fundamentos

El agrupamiento espectral resuelve un problema difícil mediante una relajación continua. Partir un grafo minimizando el número de aristas cortadas es un problema combinatorio NP-difícil; relajarlo a variables continuas lo convierte en un problema de autovectores, que se resuelve en tiempo polinómico.

El autovector asociado al segundo autovalor —el vector de Fiedler— es la solución de esa relajación, y el signo de cada componente indica a qué lado del corte asignar cada nodo. En el ejemplo, cuatro nodos tienen componente negativa y cuatro positiva, y esa partición corresponde exactamente a la estructura de comunidades del grafo.

La conectividad algebraica λ₂ cuantifica cuán bien separado está el grafo. Un valor pequeño —0,29 en el ejemplo, frente a autovalores posteriores de 2 y 4— indica que existe un corte barato y que la partición es significativa. Si λ₂ fuera comparable a los demás, el corte sería arbitrario.

El método se generaliza a más de dos grupos usando los primeros k autovectores como coordenadas y aplicando k-means en ese espacio. Su ventaja sobre k-means directo es que funciona con grupos no convexos, que es justamente donde k-means falla. Su límite es el coste: calcular autovectores de un grafo enorme requiere métodos iterativos como los de la parte 11.

Ejemplo trabajado

Grafo de 8 nodos partido por el vector de Fiedler.

8 nodos, 11 aristas

autovalores del Laplaciano:
  [0,0 ; 0,29072464 ; 2,0 ; 2,80606343 ; 4,0 ; 4,0 ; 4,0 ; 4,90321193]

multiplicidad de 0: 1  →  grafo conexo             ✓
conectividad algebraica: 0,29072464

vector de Fiedler:
  [−0,432487 ; −0,369619 ; −0,369619 ; −0,199295 ;
    0,199295 ;  0,369619 ;  0,369619 ;  0,432487]

partición por signo:
  grupo A: nodos 0, 1, 2, 3
  grupo B: nodos 4, 5, 6, 7

λ₂ = 0,29 frente a λ₃ = 2,0: el corte es claro.

Qué ejecuta el laboratorio

Clustering espectral: el vector de Fiedler separa el grafo.

GrupoSalidas
Resultados numéricos (5)nodos, aristas, conectividad_algebraica, aristas_cortadas, corte_minimo_esperado
Comprobaciones (2)grafo_conexo, particion_correcta
compmath run 354

Errores conceptuales frecuentes

  1. Aplicar el método a grafos no conexos sin tratar cada componente por separado.
  2. Interpretar la partición cuando λ₂ es comparable a los autovalores siguientes.
  3. Calcular todos los autovectores cuando solo hacen falta los primeros.

Dónde se usa

Detección de comunidades, segmentación de imágenes, partición de mallas, análisis de redes sociales y agrupamiento de datos no convexos.

Bibliografía de la clase

355 · Causal inference

Parte 17 · clase 15 de 20 · demostración causal_inference

El coeficiente sin ajustar estima 1,02 un efecto que en realidad es cero.

criterio de puerta trasera: bloquear todos los caminos X ← … → Y
confusor: Z → X y Z → Y
colisionador: X → C ← Y, condicionar crea asociación

Fundamentos

La inferencia causal formaliza qué significa que X cause Y y cuándo se puede estimar ese efecto a partir de datos observacionales. Su lenguaje son los grafos causales dirigidos, donde las flechas representan relaciones causales y los caminos determinan qué asociaciones aparecen.

El criterio de puerta trasera dice qué variables hay que ajustar: un conjunto que bloquee todos los caminos no causales entre X e Y. Ajustar por ese conjunto permite estimar el efecto causal correctamente. La demostración numérica es contundente: con un efecto causal real de cero, el coeficiente sin ajustar estima 1,02 —una relación fuerte e inexistente— y al ajustar por el confusor baja a 0,007.

El resultado que más contradice la intuición es el sesgo de colisionador. Si dos variables independientes causan una tercera, condicionar sobre esa tercera crea correlación entre ellas donde no había ninguna. Ajustar por todo lo disponible no es una estrategia conservadora: puede introducir sesgo donde no lo había.

La conclusión metodológica es que no se puede decidir qué ajustar mirando solo los datos. Hace falta un modelo causal, es decir, conocimiento del dominio sobre qué causa qué. Los datos por sí solos no distinguen un confusor de un colisionador, y esa es la razón profunda de que la aleatorización sea tan valiosa: rompe todos los caminos de puerta trasera a la vez, conocidos y desconocidos.

Ejemplo trabajado

Efecto real cero, estimado en 1,02 sin ajustar.

estructura: Z → X,  Z → Y,  X ↛ Y
efecto causal real de X sobre Y: 0,0

coeficiente sin ajustar:      1,0243        ✗
coeficiente ajustando por Z:  0,0074        ✓

El ajuste recupera el efecto real.

Criterio de puerta trasera:
  bloquear todos los caminos X ← … → Y

Colisionador (X → C ← Y):
  correlación X-Y sin condicionar C: −0,0145
  (independientes, como deben ser)
  al condicionar sobre C aparecería correlación
  donde no la hay.

Qué ejecuta el laboratorio

Confusión, ajuste por backdoor y el sesgo de colisionador.

GrupoSalidas
Resultados numéricos (5)efecto_causal_real_de_X_sobre_Y, coeficiente_sin_ajustar, coeficiente_ajustando_por_Z, correlacion_X_Y_sin_condicionar_el_colisionador, correlacion_condicionando_el_colisionador
Comprobaciones (2)el_ajuste_recupera_el_efecto, condicionar_un_colisionador_crea_sesgo
compmath run 355

Errores conceptuales frecuentes

  1. Ajustar por todas las variables disponibles sin un modelo causal.
  2. Condicionar sobre un colisionador y crear asociación espuria.
  3. Interpretar coeficientes de regresión como efectos causales en datos observacionales.

Dónde se usa

Evaluación de políticas y tratamientos, atribución en marketing, análisis de equidad algorítmica, epidemiología y diseño de experimentos.

Bibliografía de la clase

356 · Statistical learning theory

Parte 17 · clase 16 de 20 · demostración statistical_learning_theory

Con 25 parámetros y 30 datos se acierta el 80 % en entrenamiento sobre etiquetas aleatorias.

R(h) = R_emp(h) + brecha de generalización
la brecha crece con la complejidad y decrece con n
cota uniforme: sup_h |R(h) − R_emp(h)|

Fundamentos

La teoría estadística del aprendizaje separa dos cantidades que se confunden a diario. El riesgo empírico es el error medido sobre la muestra de entrenamiento; el riesgo verdadero es el error esperado sobre la distribución real. Minimizar el primero es lo que se puede hacer; controlar el segundo es lo que interesa.

La diferencia entre ambos es la brecha de generalización, y depende de dos cosas: la complejidad de la clase de hipótesis y el número de ejemplos. Con muchos datos y una clase simple la brecha es pequeña; con pocos datos y una clase rica puede ser enorme, y el modelo memoriza en vez de aprender.

La demostración usa etiquetas completamente aleatorias, sin ninguna señal que aprender, y por tanto con accuracy esperada de 0,5. Con 30 observaciones y 25 parámetros, el modelo acierta el 80 % en entrenamiento y el 48,5 % en test: la brecha entera es memorización. El número de entrenamiento no mide nada.

Las cotas teóricas acotan el peor caso sobre toda la clase de hipótesis, no el caso concreto. Esa uniformidad es lo que las hace válidas y también lo que las hace holgadas: son correctas y muy pesimistas. En redes profundas predicen que no debería haber generalización, y la hay. Explicar esa discrepancia es un área abierta, y conviene presentarla así en vez de fingir que la teoría clásica describe lo que ocurre.

Ejemplo trabajado

Memorización pura sobre etiquetas aleatorias.

señal real en los datos: NINGUNA
accuracy esperada: 0,5

n = 30, d = 25:
  accuracy train: 0,800
  accuracy test:  0,485
  brecha: 0,315

El 80 % de entrenamiento es memorización completa:
con 25 parámetros y 30 datos hay capacidad de sobra
para ajustar ruido.

El test confirma que no se aprendió nada: 0,485
es indistinguible del azar.

Descomposición: R(h) = R_emp(h) + brecha

Qué ejecuta el laboratorio

Riesgo empírico frente a riesgo verdadero y la brecha de generalización.

GrupoSalidas
Resultados numéricos (2)accuracy_esperada, semilla
Comprobaciones (2)mas_parametros_que_datos_memoriza, el_riesgo_empirico_solo_no_basta
compmath run 356

Errores conceptuales frecuentes

  1. Reportar el error de entrenamiento como medida de calidad.
  2. Usar más parámetros que datos sin regularizar.
  3. Interpretar una cota teórica como predicción del error real.

Dónde se usa

Diseño de experimentos de aprendizaje, elección de capacidad, comprensión del sobreajuste y justificación de la validación.

Bibliografía de la clase

357 · VC dimension

Parte 17 · clase 17 de 20 · demostración vc_dimension

Una clase con infinitas hipótesis puede tener dimensión VC igual a 1.

VC = tamaño del mayor conjunto que la clase fragmenta
umbrales en 1D: VC = 1
hiperplanos en ℝᵈ: VC = d + 1

Fundamentos

La dimensión de Vapnik-Chervonenkis mide la capacidad de una clase de hipótesis por lo que puede hacer, no por cuántas hipótesis contiene. Una clase fragmenta un conjunto de puntos si puede realizar todas las 2ⁿ etiquetaciones posibles, y la dimensión VC es el tamaño del mayor conjunto que consigue fragmentar.

La distinción con el número de hipótesis es la aportación conceptual. La clase de los umbrales en una dimensión es infinita —hay un umbral por cada número real— y su dimensión VC es 1: puede etiquetar un punto de las dos formas, pero con dos puntos no puede producir la etiquetación «derecha positiva, izquierda negativa». Contar hipótesis no mide capacidad; fragmentar sí.

Los valores conocidos son informativos. Los intervalos en una dimensión tienen VC 2, porque no pueden etiquetar + − +. Los hiperplanos en ℝᵈ tienen VC d+1, así que en el plano son 3: con cuatro puntos en las esquinas de un cuadrado, la configuración XOR no es separable, exactamente el problema del perceptrón de la clase 301.

Su papel es dar cotas de generalización que dependen de la capacidad y no del número de hipótesis. Su límite práctico es severo: para redes neuronales la dimensión VC crece con el número de parámetros, lo que predice que las redes modernas no deberían generalizar en absoluto. La teoría es correcta y la cota es tan holgada que no informa; medidas alternativas como la complejidad de Rademacher o las basadas en normas se comportan algo mejor, sin resolver del todo la cuestión.

Ejemplo trabajado

Dimensión VC de tres clases de hipótesis.

Umbrales en 1D:
  fragmenta 1 punto:  sí
  fragmenta 2 puntos: no
  VC = 1
  (la clase es infinita y su VC vale 1)

Intervalos en 1D:
  VC = 2
  razón: no puede etiquetar + − + con un solo intervalo

Hiperplanos en ℝᵈ:
  VC = d + 1
  en ℝ²: VC = 3

Por qué no 4 puntos en ℝ²:
  XOR en las esquinas de un cuadrado no es separable,
  el mismo obstáculo del perceptrón.

Qué ejecuta el laboratorio

Dimensión VC: cuántos puntos puede fragmentar una clase de hipótesis.

GrupoSalidas
Resultados numéricos (1)hiperplanos_en_R^2
Comprobaciones (0)
compmath run 357

Errores conceptuales frecuentes

  1. Medir capacidad por el número de hipótesis en vez de por fragmentación.
  2. Aplicar cotas basadas en VC a redes profundas esperando predicciones útiles.
  3. Confundir dimensión VC con número de parámetros.

Dónde se usa

Cotas de generalización, comparación de familias de modelos, teoría del aprendizaje y análisis de complejidad de clases de hipótesis.

Bibliografía de la clase

358 · PAC learning

Parte 17 · clase 18 de 20 · demostración pac_learning

Reducir el error a la mitad duplica los datos; subir la confianza cuesta un logaritmo.

con probabilidad ≥ 1−δ, error ≤ ε
n ≈ (1/ε)·(VC + log(1/δ))
crece como 1/ε y como log(1/δ)

Fundamentos

El marco PAC —probablemente aproximadamente correcto— formaliza qué significa aprender. No se exige acertar siempre ni exactamente: se exige que, con probabilidad al menos 1−δ, el error de la hipótesis elegida sea a lo sumo ε. Dos parámetros, dos formas de fallar admitidas.

La complejidad muestral es el número de ejemplos necesarios para garantizar eso, y su forma revela una asimetría muy útil. Crece como 1/ε: reducir el error a la mitad duplica los datos necesarios. Pero crece solo como log(1/δ): pasar de un 95 % a un 99,9 % de confianza cuesta muy poco. Precisión es cara, confianza es barata.

La dependencia de la complejidad de la clase es lineal en la dimensión VC. Con ε = 0,1 y δ = 0,05, una clase de VC 10 necesita 261 ejemplos y una de VC 100 necesita 2 331. Diez veces más capacidad, diez veces más datos: la relación es directa y da una intuición correcta sobre el coste de la complejidad.

Hay que ser explícito sobre su alcance. Las cotas son válidas y muy holgadas: aplicadas a una red moderna piden más ejemplos que átomos hay en el universo observable. Su valor es cualitativo —cómo escalan las cosas— no cuantitativo. Interpretarlas como predicción del error real es un error de lectura, y decirlo evita presentar la teoría como algo que no es.

Ejemplo trabajado

Muestras necesarias para distintos ε y complejidades.

δ = 0,05  (confianza del 95 %)

con ε = 0,1:
  clase de 1 000 hipótesis:    100 ejemplos
  VC = 10:                     261 ejemplos
  VC = 100:                  2 331 ejemplos

Escalado:
  ε a la mitad  →  datos × 2
  δ a la décima →  datos + log(10), casi nada
  VC × 10       →  datos × 10 aproximadamente

Precisión es cara; confianza es barata.

Aplicado a una red con 10⁹ parámetros, la cota
pediría un número de ejemplos absurdo. La teoría
es correcta; la cota, inservible en la práctica.

Qué ejecuta el laboratorio

PAC: cuántas muestras hacen falta para (ε, δ).

GrupoSalidas
Resultados numéricos (1)delta
Comprobaciones (2)el_coste_crece_como_1/ε, es_una_cota_del_peor_caso
compmath run 358

Errores conceptuales frecuentes

  1. Usar la cota PAC como estimación del error real.
  2. Suponer que más confianza cuesta tanto como más precisión.
  3. Aplicar el marco PAC sin comprobar el supuesto de datos iid.

Dónde se usa

Fundamentos teóricos del aprendizaje, dimensionamiento conceptual de conjuntos de datos, comparación de familias de modelos y análisis de aprendibilidad.

Bibliografía de la clase

359 · Approximation theory y scaling

Parte 17 · clase 19 de 20 · demostración approximation_theory

El error decae como una potencia del tamaño, y ese exponente es lo que predice el escalado.

error ≈ C·(parámetros)^α
polinomios sobre funciones suaves: convergencia muy rápida
lineal por trozos: error / 4 al duplicar los trozos

Fundamentos

La teoría de aproximación estudia con qué precisión una familia de funciones puede representar otra, y cómo mejora esa precisión al aumentar los recursos. Es la base teórica de las leyes de escala que gobiernan el desarrollo de modelos grandes.

La forma general del resultado es una ley de potencias: el error decae como el número de parámetros elevado a un exponente negativo. Ese exponente depende de la suavidad de la función objetivo y de la familia aproximante, y es lo que determina si merece la pena aumentar el tamaño.

El ejemplo lo muestra en dos regímenes. Con polinomios sobre una función suave, el exponente empírico es −7,68: convergencia extraordinariamente rápida, porque la función es analítica. Con aproximación lineal por trozos, duplicar el número de trozos divide el error por 4, lo que corresponde a un exponente de −2: mucho más lento pero robusto, sin depender de la suavidad global.

La conexión con el aprendizaje profundo es directa. Las leyes de escala de Kaplan y de Hoffmann son leyes de potencias empíricas que relacionan pérdida con parámetros, datos y cómputo, y permiten predecir el rendimiento de un modelo antes de entrenarlo. La corrección de Chinchilla —que los modelos estaban infraentrenados en datos— salió de tomar en serio esos exponentes. Ninguna ley de potencias es eterna: hay saturación cuando se agota la información disponible, y ese límite es hoy una pregunta abierta.

Ejemplo trabajado

Dos regímenes de aproximación sobre la misma función.

objetivo: e^(−x)·sin(4x) en [0,1]

Aproximación polinómica:
  grado 1  (2 parámetros):  error máximo 0,7920526488
  grado 3  ( ... ):          error mucho menor
  exponente de escala empírico: −7,6813
  convergencia rapidísima: la función es analítica

Aproximación lineal por trozos:
  2 trozos:  error máximo 0,3797908445
  4 trozos:  error menor
  razón de error al duplicar: 3,9755 ≈ 4
  exponente ≈ −2

Lectura: error ≈ C·(parámetros)^exponente

Los polinomios ganan aquí porque la función es suave;
con una función con esquinas, la victoria sería
del método por trozos.

Qué ejecuta el laboratorio

Teoría de aproximación y leyes de escala: el error como potencia del tamaño.

GrupoSalidas
Resultados numéricos (2)exponente_de_escala_empirico, razon_de_error_al_duplicar_trozos
Comprobaciones (0)
compmath run 359

Errores conceptuales frecuentes

  1. Extrapolar una ley de potencias fuera del rango medido.
  2. Suponer que un exponente favorable se mantiene al agotar los datos.
  3. Comparar exponentes obtenidos con métricas o unidades distintas.

Dónde se usa

Leyes de escala de modelos de lenguaje, planificación de presupuestos de cómputo, elección de arquitecturas y teoría de aproximación con redes neuronales.

Bibliografía de la clase

360 · Capstone final: reproducir una idea matemática de un paper

Parte 17 · clase 20 de 20 · demostración capstone_reproduce_paper_idea

Reproducir un resultado publicado con datos donde el óptimo se conoce por fuerza bruta.

coste de Sinkhorn → transporte óptimo cuando ε → 0
óptimo exacto verificado por barrido de todos los planes
reportar semilla, protocolo y discrepancia

Fundamentos

El capstone final del programa reproduce el núcleo matemático de un resultado publicado: el estimador de Sinkhorn converge al transporte óptimo verdadero cuando la regularización entrópica tiende a cero, según Cuturi en 2013. No es una implementación decorativa: es una verificación.

El diseño experimental es lo que hace la verificación válida. Se elige un problema suficientemente pequeño para que el óptimo se pueda calcular por fuerza bruta —barriendo todos los planes de transporte posibles— de modo que exista una referencia exacta contra la que comparar. Sin esa referencia, «el algoritmo converge» sería una afirmación no verificable.

Después se ejecuta Sinkhorn con ε decreciente y se comprueba que el coste se aproxima monótonamente al óptimo conocido. Lo que se está verificando no es que el código funcione, sino que el enunciado del artículo es cierto en un caso donde se puede comprobar.

Esa es la habilidad que el programa entero ha construido, clase a clase: leer un enunciado matemático, traducirlo a código, diseñar un caso donde la respuesta se conoce, comparar, y reportar el protocolo completo con semilla y discrepancias. Trescientas sesenta clases después de contar con los dedos en la parte 00, esa es la diferencia entre creer un resultado y saberlo.

Ejemplo trabajado

Verificación del resultado de Cuturi sobre un caso exacto.

resultado reproducido:
  el coste de Sinkhorn converge al transporte óptimo
  cuando la regularización entrópica tiende a cero

fuente: Cuturi, M. Sinkhorn Distances, NIPS 2013

protocolo:
  dos masas uniformes de 2 átomos en ℝ
  coste cuadrático (x − y)²

matriz de coste:
  [0,0   9,0]
  [1,0   4,0]

óptimo exacto por barrido: 2,0
plan óptimo:
  [0,5  0,0]
  [0,0  0,5]

Sinkhorn con ε decreciente se acerca a 2,0
monótonamente: el enunciado se sostiene.       ✓

Qué ejecuta el laboratorio

Capstone: reproducir el núcleo matemático de un resultado publicado.

GrupoSalidas
Resultados numéricos (6)optimo_exacto_por_barrido, peor_plan_extremo, simetria_ida_A_a_B, simetria_vuelta_B_a_A, diferencia, tolerancia_declarada
Comprobaciones (6)el_problema_no_es_degenerado, el_error_decrece_monotonamente, el_error_es_siempre_positivo, la_entropia_del_plan_baja_con_epsilon, coincide_con_d², es_simetrica
compmath run 360

Errores conceptuales frecuentes

  1. Reproducir un resultado sin un caso donde la respuesta se conozca.
  2. Reportar la reproducción sin semilla ni protocolo completo.
  3. Ocultar las discrepancias con el artículo original en vez de analizarlas.

Dónde se usa

Reproducción de artículos, validación de implementaciones, investigación aplicada, revisión por pares y verificación de resultados antes de construir sobre ellos.

Bibliografía de la clase


Computational Mathematics Program v0.2.0 · MIT · generado automáticamente · ninguna cifra de este manual se escribió a mano: todas se derivan del repositorio.