- Conmutar
- Computar
- Deducir
- Probabilidad
- Información
- Vectores
- Derivadas
- Optimizar
- Neuronas
- Generalizar
- Atención
- LLM
Capítulo 06 · Cálculo
¿Hacia dónde se mueve el error?
Una red neuronal tiene miles de millones de perillas. Para saber cuál girar y en qué sentido hay que saber cómo cambia el error al mover cada una: su derivada. La regla de la cadena, que Leibniz escribió en 1676, permite calcularlas todas a la vez. Ese algoritmo se llama backpropagation.
En este capítulo
Newton y Leibniz inventaron el cálculo, cada uno por su lado, en la segunda mitad del siglo XVII, para describir el movimiento de los planetas y la forma de las curvas. Tres siglos después, su herramienta central, la derivada, es la que permite a una red neuronal aprender. La idea es simple: si sabes cómo cambia el error cuando mueves un poco cada parámetro, sabes cómo moverlos para equivocarte menos.
La derivada: sensibilidad instantánea
La derivada de en un punto mide cuánto cambia al mover una cantidad muy pequeña:
Geométricamente es la pendiente de la recta tangente. El cociente con un finito es la pendiente de una recta secante, que corta la curva en dos puntos. Al reducir , la secante gira hasta coincidir con la tangente.
El gradiente: la derivada con muchas variables
Una función de pérdida no depende de un número, sino de millones: . Cada derivada parcial mide la sensibilidad respecto a un parámetro con los demás fijos, y el vector que las reúne todas es el gradiente:
Si es diferenciable en y , entre todas las direcciones unitarias la derivada direccional es máxima cuando apunta como y mínima cuando apunta en sentido contrario.
Demostración
Por Cauchy-Schwarz, para , y los extremos se alcanzan con .
De aquí sale la receta para aprender: muévete en la dirección de , la de mayor descenso del error. Lo que hace falta es una forma eficiente de calcular el gradiente de una función con miles de millones de variables.
La regla de la cadena
Una red neuronal es una composición de muchas funciones sencillas, como una cadena de montaje. La regla de la cadena dice cómo se propaga la sensibilidad a lo largo de esa cadena. Leibniz la usó en unas notas de 1676, y su notación hace que parezca una simple simplificación de fracciones:
Si y son diferenciables, entonces
Con varias variables las derivadas se convierten en matrices jacobianas y el producto pasa a ser un producto de matrices: .
Para una cadena larga, , la derivada es un producto de muchos factores. El orden en que se multiplican no cambia el resultado, pero sí cambia muchísimo el coste del cálculo.
Grafos computacionales y retropropagación
Cualquier cálculo se puede dibujar como un grafo dirigido acíclico: los nodos son operaciones elementales y las aristas llevan los resultados intermedios. Aquí la teoría de grafos entra en la IA. Para una neurona que predice y se equivoca , el grafo es el de la figura.
Este algoritmo, la diferenciación automática en modo inverso, lo describió Seppo Linnainmaa en su tesis de máster de 1970. Paul Werbos propuso aplicarlo a redes neuronales en su tesis de 1974. El artículo de David Rumelhart, Geoffrey Hinton y Ronald Williams en Nature (1986) mostró que las redes entrenadas así aprenden representaciones internas útiles, y fue el que lo popularizó con el nombre de backpropagation.
Si una función se calcula con operaciones elementales, su gradiente completo, con sus derivadas parciales, se calcula en modo inverso con operaciones, donde es una constante pequeña (del orden de 3 a 5) que no depende de .
Este es el resultado que hace posible el aprendizaje profundo. Calcular cada derivada por separado, moviendo un parámetro y midiendo el cambio, costaría evaluaciones de la red: con parámetros, imposible. La retropropagación entrega todas las derivadas por el precio aproximado de dos o tres evaluaciones. Todas las bibliotecas actuales de IA (PyTorch, JAX, TensorFlow) son, en el fondo, motores de diferenciación automática.
Cuando el gradiente se desvanece
La regla de la cadena tiene una cara oscura. La sigmoide , la función de activación clásica, tiene derivada . En una red con capas sigmoides, el gradiente que llega a las primeras capas contiene un producto de factores como esos:
Si los pesos son moderados, el gradiente se encoge exponencialmente con la profundidad y las primeras capas no aprenden. Sepp Hochreiter analizó este problema del gradiente que se desvanece en su tesis de 1991. Las soluciones llegaron en varias oleadas: las LSTM (1997), la activación ReLU, , cuya derivada vale 1 en la parte positiva, y las conexiones residuales (2015), , que abren una autopista por la que el gradiente circula sin atenuarse. Los Transformers usan las dos últimas.
Ya sabemos calcular hacia dónde baja el error. Falta decidir cuánto avanzar en esa dirección y qué garantías hay de llegar a alguna parte. Eso es la optimización.
Referencias
- S. Linnainmaa (1970). The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors. Tesis de máster, Universidad de Helsinki.
- P. J. Werbos (1974). Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. Tesis doctoral, Harvard.
- W. Baur y V. Strassen (1983). «The complexity of partial derivatives». Theoretical Computer Science, 22(3).
- D. E. Rumelhart, G. E. Hinton y R. J. Williams (1986). «Learning representations by back-propagating errors». Nature, 323.
- S. Hochreiter (1991). Untersuchungen zu dynamischen neuronalen Netzen. Tesis de diploma, TU Múnich.
- A. Griewank y A. Walther (2008). Evaluating Derivatives, 2.ª ed. SIAM.
- K. He, X. Zhang, S. Ren y J. Sun (2016). «Deep Residual Learning for Image Recognition». CVPR.