seegongsik
IA

Cómo funciona la retropropagación

En la lección anterior vimos a una red neuronal hacer fluir señales hacia adelante para dar una respuesta. Pero ¿y si esa respuesta está mal? Una red tiene pesos incontables, y para corregirla hay que saber cuáles son responsables del error y en qué medida. El método es rastrear el error hacia atrás, de la salida a la entrada, calculando la parte de culpa de cada peso. Parecido a seguir hacia atrás unas fichas de dominó caídas para encontrar dónde empezó el empujón, este método se llama retropropagación.

01

Primero, predecir hacia adelante

Cuando una red neuronal da una respuesta, hace fluir las señales hacia adelante. Desde la entrada, la señal atraviesa las capas en orden y en la salida aparece una predicción. Es justamente el flujo que vimos en la lección anterior.
Una red recién creada tiene sus pesos fijados más o menos al azar, así que su predicción puede estar muy lejos de la respuesta correcta. Veamos primero de nuevo este flujo hacia adelante.

entradaocultasalida
Toca para hacer fluir la señal adelante
0 / 3

Toca el botón para enviar la señal hacia adelante, capa por capa, de la entrada a la salida. Al final aparece una predicción, pero todavía no coincide con la respuesta.

Salió una predicción, pero difiere de la respuesta. Esa diferencia es el error, y medir cuánto se equivocó con un número da la pérdida. Una pérdida grande significa un error grande; una pérdida cercana a 0, un buen acierto.
El objetivo es reducir la pérdida. Pero una red tiene pesos incontables. ¿Cuáles hay que cambiar, y cuánto, para que baje la pérdida?

02

¿Quién es responsable del error?

La salida se equivocó. Pero no se equivocó sola: dio su respuesta a partir de las señales que recibió de la capa justo anterior, y esa capa calculó con las señales de la capa previa.
Así que la responsabilidad del error no está en un solo peso: está repartida en pequeñas partes entre todos los pesos que intervinieron en la predicción. Primero, veamos qué tan grande es el error en la salida.

predicción0.3respuesta1.0
Toca para marcar la diferencia entre la predicción y la respuesta

Compara la predicción de la salida con la respuesta. Al tocar el botón para marcar el error (la pérdida), se ve que hay que rastrear hacia atrás de dónde vino ese error.

Ya vimos el tamaño del error en la salida. Ahora hay que remontar ese error. Si varias conexiones llegan a la salida, algunas habrán enviado una señal fuerte y otras, una débil.
Cuanto más fuerte fue la señal que envió una conexión, más contribuyó a la salida equivocada, y mayor es su parte de culpa. Dicho de otro modo, cambiar un poco el peso de esa conexión cambia mucho la pérdida. Cuánto cambia la pérdida cuando cambia un peso es justamente la pendiente que vimos en el descenso de gradiente.

03

Enviar el error hacia atrás

Ahora sí, la retropropagación. El error se envía hacia atrás, capa por capa, de la salida hacia la entrada, en la dirección exactamente contraria a la de avance. Es como seguir hacia atrás las fichas de dominó caídas para encontrar dónde empezaron a caer.
Cada vez que se retrocede una capa, queda fijado cuánto contribuyeron al error las conexiones de esa capa. La parte de una capa interior se obtiene multiplicando la parte de la capa exterior por el efecto de las conexiones intermedias. Esta regla de calcular hacia atrás multiplicando por el camino se llama regla de la cadena de la derivación.

entradaocultasalida
Toca para enviar el error hacia atrás, de la salida a la entrada
0 / 2

Toca el botón para enviar el error hacia atrás, capa por capa, de la salida a la entrada. En cada retroceso, cada conexión recibe su parte de culpa; cuanto más gruesa, más culpa.

Volvimos hasta el principio. Ahora cada peso de la red recibió su propia parte de culpa. Algunos pesos contribuyeron mucho al error, y otros casi no tienen responsabilidad.
Lo notable es que, partiendo de un solo error en la salida, se calcularon de una vez las partes incluso de los pesos más profundos. Como no hace falta probar cada peso por separado, el cálculo sigue siendo manejable aun en redes con millones de pesos.

04

Ajustar los pesos según su parte

Ahora que sabemos quién es responsable, toca corregir. Recuerda el descenso de gradiente, el método de bajar de a poco en la dirección que reduce la pérdida.
La parte que calcula la retropropagación es justamente la pendiente de cada peso, así que cada peso se ajusta según su pendiente multiplicada por la tasa de aprendizaje. Los pesos con más culpa cambian mucho, y los que tienen poca, apenas. Lo importante es corregir de a poco y no todo de golpe.

peso 1
0.00
peso 2
0.00
peso 3
0.00
error restante (pérdida)
1.00
Toca ajustar para arreglar cada peso según su parte
0 / 4

Toca ajustar según la parte para corregir los pesos paso a paso. Con cada toque, la barra de pérdida se acorta, y los pesos con más culpa se mueven más.

Cuanto más se ajustó, más bajó la pérdida. Pero una vuelta de corrección no es el final. Se vuelve a predecir hacia adelante, a medir el error, a rastrear hacia atrás para hallar las partes y a ajustar en esa medida.
Repitiendo esta vuelta incontables veces, las predicciones de la red se acercan cada vez más a las respuestas correctas. Casi todas las redes neuronales de hoy aprenden así.

05

Resumen

En resumen: primero, la señal fluye hacia adelante para hacer una predicción, que se compara con la respuesta para medir el error como pérdida. Luego esa pérdida se envía hacia atrás, de la salida a la entrada, para hallar la parte de culpa de cada peso, es decir, su pendiente.
Por último, los pesos se ajustan según esa parte con el descenso de gradiente. Repitiendo predecir hacia adelante, rastrear hacia atrás y ajustar, las predicciones se acercan a las respuestas.

Toca los puntos clave en orden para repasar

Toca los puntos clave en orden para repasar. (predecir hacia adelante → medir el error como pérdida → rastrear hacia atrás para hallar las partes → ajustar según la parte)

Ahora sabes cómo corrige sus errores una red neuronal. Gracias a esta idea de rastrear hacia atrás, incluso redes grandes con pesos incontables pudieron aprender por sí solas.
Pero ¿es bueno seguir reduciendo para siempre la pérdida en los datos de entrenamiento? Así como un estudiante que solo memorizó las respuestas de los ejercicios se pierde en un examen desconocido, una red neuronal puede ajustarse demasiado a sus datos de entrenamiento. La próxima lección, sobre el sobreajuste, se ocupa de este problema.

En una líneaLa retropropagación es el método de rastrear hacia atrás el error de una red neuronal para calcular cuánto ajustar cada peso. Primero, la señal fluye hacia adelante para hacer una predicción, que se compara con la respuesta para medir con la pérdida cuánto se equivocó. Luego, la pérdida se envía hacia atrás, de la salida a la entrada, calculando cuánto contribuyó cada peso al error, es decir, su pendiente. La parte de una capa interior se obtiene multiplicando la parte exterior por el efecto de las conexiones intermedias; esa es la regla de la cadena. Por último, cada peso se ajusta un poco según su parte usando el descenso de gradiente. Repitiendo incontables veces este ciclo de predecir hacia adelante, rastrear hacia atrás y ajustar, las predicciones de la red se acercan cada vez más a las respuestas correctas.
← IA
¿Te fue útil? Apoyar seegongsik