Resumen
Durante el entrenamiento de una red neuronal se busca encontrar el valor óptimo de los pesos, lo cual es computacionalmente costoso. Por lo tanto, se utiliza un algoritmo de optimización llamado backpropagation el cual brinda una estrategia muy eficiente para ajustar los pesos de la red.
El algoritmo realiza diversos ciclos, llamados epochs, realizando dos fases en cada ciclo:
Forward: Las neuronas se activan en secuencia desde la capa de entrada a la capa de salida, aplicando los pesos de cada neurona y la función de activación y propagando la información hacia delante.
Backward: La señal de salida de la red se compara con el valor real y se calcula un error y luego este error se propaga hacia atrás en la red para modificar los pesos entre las neuronas y reducir errores futuros.
Para saber la razón de cambio de los pesos de una red, se utiliza una técnica llamada descenso del gradiente (gradient descent).
Los pesos se actualizan siguiendo la dirección que produce un menor error y para saber dicha dirección se utiliza la derivada de la activación de cada neurona.
El backpropagation actualiza los pesos que proporcionan una mayor reducción del error utilizando un hiperparámetro conocido como learning rate. Un mayor valor de este hace que el algoritmo descienda más rápido por los gradientes.
Imagen tomada de:
https://medium.com/ai-techsystems/gradient-descent-in-less-than-500-words-5f81d0e63b6a