Una Red Neural con entrenamiento supervisado por retro propagación busca utilizar un conjunto de entradas para predecir la salida.
Imagine que busca predecir cual será la salida para un conjunto de prueba (dataset), dados 4 ejemplos.
Después de pensar algunos segundos, usted podrá notar que el primer número de cada ejemplo de entrada parece relacionarse con el de salida, por lo que la predicción para nuestro test seria 1.
Para ensenarle a la máquina a hacer esto, podemos utilizar una red neural.
Bajo este modelo, una neurona es activada según los estímulos que pondera en una sumatoria lineal.
Como verá, la sumatoria corresponde al producto interno entre el vector de entrada y los pesos W de la transición.
ya….genial, pero y cuales son esos pesos que nos permitirán hacer la predicción?
No lo sabemos… Pero en un comienzo los podríamos suponer al azar….
Con estos datos tenemos nuestro primer avance en la propagación (forward propagation).
Seguramente el valor predicho en este avance distará mucho de los valores esperados…
No obstante, podemos definir una función de costo del error (cost function) para luego poder intentar minimizarlo, descendiendo por su gradiente, retro propagando los ajustes.
Si, si… La idea es básicamente saber que tan errados estamos según nuestros conjunto de prueba y ajustar según esto los pesos de las transiciones en un proceso iterativo.
Existen diversas funciones de costo, quizás la mas sencilla y popular sea la de los Mínimos cuadrados.
No obstante, podemos utilizar una función mas ad-hoc que nos permita obtener algunas ventajas, en cuanto pueda servir además como funcion de activacion.
Este seria el caso de la función Sigmoid
s
Backpropagation is simply a method for calculating the partial derivative of the cost function with respect to all of the parameters. The actual optimization of parameters (training) is done by gradient descent or another more advanced optimization technique.
https://www.jeremyjordan.me/neural-networks-training/