🧮 Computational Mathematics

Inicio · Parte 15

Matemática de Deep Learning

deep-learning 20 clases 80 horas estimadas 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.

Panorama de la parte

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.

Recorrido de la parte

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

Secuencia de clases

#ClaseDemostración ejecutable
301 Perceptrón y separabilidad perceptron
302 MLP como composición de funciones mlp
303 Funciones de activación activations
304 Funciones de pérdida loss_functions
305 Backpropagation paso a paso backpropagation
306 Computational graphs computational_graphs
307 Inicialización de pesos weight_initialization
308 Batch normalization y layer normalization normalization
309 Regularización y dropout dropout_regularization
310 Convolución discreta discrete_convolution
311 CNN y receptive fields cnn_receptive_fields
312 Pooling y downsampling pooling
313 RNN y recurrencia rnn
314 Vanishing y exploding gradients vanishing_exploding
315 LSTM y compuertas lstm
316 GRU gru
317 Embeddings como espacios vectoriales embeddings
318 Optimización de redes profundas deep_optimization
319 Autodiff con PyTorch/JAX autodiff_frameworks
320 Capstone: red neuronal desde cero en Python puro capstone_neural_network

Ejecutar la parte completa

compmath run --part 15

Glosario de la parte (36 términos)

TérminoDefiniciónClase
Perceptrón Neurona lineal con umbral. Converge si y solo si los datos son linealmente separables. 301
Separabilidad lineal Existencia de un hiperplano que separa las clases sin error. XOR no la cumple. 301
Perceptrón multicapa Composición de capas lineales con no linealidad entre ellas. 302
Capa oculta Capa intermedia que construye una representación donde el problema sí es separable. 302
Teorema de aproximación universal Una capa oculta suficientemente ancha aproxima cualquier función continua. No dice cómo entrenarla. 302
Función de activación No linealidad aplicada tras la transformación lineal. Sin ella la profundidad no aporta nada. 303
Saturación Zona donde la derivada de la activación es casi nula y el gradiente deja de fluir. 303
ReLU max(0, x). Derivada 1 en positivo: no satura por la derecha y es barata. 303
Pérdida de Huber Cuadrática cerca de cero y lineal lejos. Robusta ante valores atípicos. 304
Backpropagation Regla de la cadena aplicada en orden topológico inverso sobre el grafo de cómputo. 305
Paso hacia adelante Cálculo de las salidas capa a capa, guardando los valores intermedios. 305
Grafo de cómputo Representación de la expresión como nodos de operaciones y aristas de dependencia. 306
Acumulación de gradientes Un nodo usado en varios sitios suma las contribuciones de todos sus consumos. 306
Inicialización de Xavier Escala 1/√n. Mantiene la varianza estable con activaciones simétricas como tanh. 307
Inicialización de He Escala √(2/n). Compensa que ReLU anula la mitad de las activaciones. 307
Ruptura de simetría Inicializar con valores distintos para que las neuronas de una capa no aprendan lo mismo. 307
Batch normalization Normaliza cada característica sobre el lote. Depende del tamaño del lote. 308
Layer normalization Normaliza cada muestra sobre sus características. Independiente del lote. 308
Dropout Apagar neuronas al azar durante el entrenamiento para evitar coadaptación. 309
Inverted dropout Escalar durante el entrenamiento para que la inferencia no requiera ajuste. 309
Padding Relleno del borde que permite conservar el tamaño espacial tras convolucionar. 310
Stride Salto del núcleo al desplazarse. Reduce el tamaño de salida. 310
Campo receptivo Región de la entrada que influye en una activación concreta. Crece al apilar capas. 311
Compartición de parámetros El mismo núcleo se aplica en todas las posiciones. Reduce parámetros e impone invariancia. 311
Pooling Reducción espacial por máximo o media. Sin parámetros aprendidos. 312
Red recurrente Procesa secuencias manteniendo un estado oculto y compartiendo pesos en el tiempo. 313
Estado oculto Vector que resume la historia procesada hasta el instante actual. 313
Gradiente que se desvanece Producto de muchas derivadas menores que 1: el gradiente tiende a cero exponencialmente. 314
Gradient clipping Acotar la norma del gradiente conservando su dirección. Evita la explosión. 314
LSTM Celda con puertas de olvido, entrada y salida, y un camino aditivo para el gradiente. 315
Estado de celda Memoria de largo plazo de la LSTM, actualizada de forma aditiva. 315
GRU Celda recurrente con puertas de actualización y reinicio. Un 25 % menos de parámetros que LSTM. 316
Embedding Representación densa aprendida donde la proximidad geométrica refleja similitud. 317
Similitud coseno Coseno del ángulo entre dos vectores. Ignora la magnitud y mide solo la dirección. 317
Warmup Subir el learning rate gradualmente al inicio para no divergir con estadísticas inmaduras. 318
Autodiferenciación en modo reverso Una pasada hacia adelante y una hacia atrás dan todos los gradientes de una salida escalar. 319

Bibliografía

Ver el motor en GitHub