ENES

Descenso de gradiente

El método que ajusta los pesos de un modelo dando pasitos cuesta abajo en su error.

Una curva de pérdida en forma de U con una bolita que da pasos cada vez más cortos cuesta abajo hacia el mínimo, en contra de la pendiente

Entrenar una red neuronal es encontrar pesos que hagan chicos sus errores. Esos errores se resumen en una función de pérdida: un solo número que dice qué tan mal le va al modelo con un lote de ejemplos. El descenso de gradiente es la forma estándar de bajarlo. El gradiente es la lista de derivadas parciales de la pérdida respecto de cada peso, y apunta hacia donde la pérdida crece más rápido. Entonces das un paso para el otro lado: w = w - lr * grad, para cada peso, y repetís, muchas veces millones de veces.

La tasa de aprendizaje (learning rate, lr) fija el largo del paso y es la perilla más delicada. Si es muy grande, la pérdida rebota o se dispara; si es muy chica, el entrenamiento avanza a paso de tortuga. Es común arrancar con un calentamiento y bajarla a medida que avanza el entrenamiento. Calcular el gradiente exacto sobre todo el dataset en cada paso sería lentísimo, así que el descenso de gradiente estocástico (SGD) lo estima con un mini-lote chico elegido al azar. La estimación tiene ruido, pero es barata, y ese ruido hasta ayuda a no quedarse trabado en zonas malas.

Los modelos grandes casi nunca usan SGD a secas. Optimizadores como Adam y AdamW llevan promedios de los gradientes anteriores (momentum) y ajustan el paso de cada peso según qué tan grandes vinieron siendo sus gradientes, lo que vuelve el entrenamiento mucho menos caprichoso. Esa contabilidad cuesta memoria: AdamW guarda dos números extra por cada peso, una de las razones por las que entrenar necesita varias veces la memoria que hace falta para solo usar el modelo.

El paisaje de pérdida de una red grande no es un bol prolijo. Tiene una cantidad enorme de dimensiones, mesetas planas y puntos de silla, y el descenso de gradiente no garantiza encontrar el punto más bajo. En la práctica encuentra, de forma confiable, pesos que andan bien con datos nuevos, y por eso entrena prácticamente todos los modelos actuales. Los gradientes salen de la retropropagación; el descenso de gradiente decide qué hacer con ellos. La idea es vieja: el matemático Augustin-Louis Cauchy la describió en 1847.

Para quedarse

Para seguir leyendo

Términos relacionados

Más de IA