AI 101
¿Qué es la retropropagación?
¿Qué es la retropropagación?
Los sistemas de aprendizaje profundo pueden aprender patrones extremadamente complejos y lo logran ajustando sus pesos. ¿Cómo se ajustan exactamente los pesos de una red neuronal profunda? Se ajustan a través un proceso , que son propagación hacia atrás. Sin retropropagación, las redes neuronales profundas no podrían realizar tareas como reconocer imágenes e interpretar el lenguaje natural. Comprender cómo funciona la retropropagación es fundamental para comprender las redes neuronales profundas en general, así que analicemos la retropropagación y veamos cómo se utiliza el proceso para ajustar los pesos de una red.
La retropropagación puede ser difícil de entender y los cálculos utilizados para llevar a cabo la retropropagación pueden ser bastante complejos. Este artículo se esforzará por brindarle una comprensión intuitiva de la retropropagación, utilizando pocas matemáticas complejas. Sin embargo, es necesaria una discusión sobre las matemáticas detrás de la retropropagación.
El objetivo de la retropropagación
Empecemos definiendo el objetivo de la retropropagación. Los pesos de una red neuronal profunda son la fuerza de las conexiones entre las unidades de una red neuronal. Cuando se establece la red neuronal, se hacen suposiciones sobre cómo las unidades en una capa están conectadas a las capas unidas a ella. A medida que los datos se mueven a través de la red neuronal, se calculan los pesos y se hacen suposiciones. Cuando los datos llegan a la capa final de la red, se realiza una predicción sobre cómo se relacionan las características con las clases en el conjunto de datos. La diferencia entre los valores predichos y los valores reales es la pérdida/error y el objetivo de la retropropagación es reducir la pérdida. Esto se logra ajustando los pesos de la red, haciendo que las suposiciones se parezcan más a las verdaderas relaciones entre las entidades de entrada.
Entrenamiento de una red neuronal profunda
Antes de que se pueda realizar la retropropagación en un red neural, se debe realizar el pase de entrenamiento regular/forward de una red neuronal. Cuando se crea una red neuronal, se inicializa un conjunto de pesos. El valor de los pesos se modificará a medida que se entrene la red. El pase de entrenamiento hacia adelante de una red neuronal se puede concebir como tres pasos discretos: activación de neuronas, transferencia de neuronas y propagación hacia adelante.
Cuando entrenamos una red neuronal profunda, necesitamos hacer uso de múltiples funciones matemáticas. Las neuronas en una red neuronal profunda se componen de los datos entrantes y una función de activación, que determina el valor necesario para activar el nodo. El valor de activación de una neurona se calcula con varios componentes, siendo una suma ponderada de las entradas. Los pesos y valores de entrada dependen del índice de los nodos que se utilizan para calcular la activación. Hay que tener en cuenta otro número al calcular el valor de activación, un valor de sesgo. Los valores de sesgo no fluctúan, por lo que no se multiplican junto con el peso y las entradas, simplemente se suman. Todo esto significa que se podría utilizar la siguiente ecuación para calcular el valor de activación:
Activación = suma (peso * entrada) + sesgo
Después de activar la neurona, se utiliza una función de activación para determinar cuál será la salida de la salida real de la neurona. Las diferentes funciones de activación son óptimas para diferentes tareas de aprendizaje, pero las funciones de activación comúnmente utilizadas incluyen la función sigmoidea, la función Tanh y la función ReLU.
Una vez que se calculan las salidas de la neurona ejecutando el valor de activación a través de la función de activación deseada, se realiza la propagación hacia adelante. La propagación directa es simplemente tomar las salidas de una capa y convertirlas en las entradas de la siguiente capa. Luego, las nuevas entradas se utilizan para calcular las nuevas funciones de activación, y la salida de esta operación se pasa a la siguiente capa. Este proceso continúa hasta el final de la red neuronal.
Retropropagación en la red
El proceso de retropropagación toma las decisiones finales del pase de entrenamiento de un modelo y luego determina los errores en estas decisiones. Los errores se calculan contrastando las salidas/decisiones de la red y las salidas esperadas/deseadas de la red.
Una vez que se han calculado los errores en las decisiones de la red, esta información se retropropaga a través de la red y los parámetros de la red se modifican en el camino. El método que se utiliza para actualizar los pesos de la red se basa en el cálculo, específicamente, se basa en la regla de la cadena. Sin embargo, no es necesario comprender el cálculo para comprender la idea de la propagación hacia atrás. Solo sepa que cuando se proporciona un valor de salida desde una neurona, la pendiente del valor de salida se calcula con una función de transferencia, produciendo una salida derivada. Al hacer backpropagation, el error para una neurona específica se calcula de acuerdo con lo siguiente fórmula:
error = (salida_esperada – salida_real) * pendiente del valor de salida de la neurona
Cuando se opera en las neuronas en la capa de salida, el valor de clase se usa como el valor esperado. Una vez que se ha calculado el error, el error se usa como entrada para las neuronas en la capa oculta, lo que significa que el error para esta capa oculta son los errores ponderados de las neuronas que se encuentran dentro de la capa de salida. Los cálculos de error viajan hacia atrás a través de la red a lo largo de la red de pesos.
Una vez calculados los errores de la red, se deben actualizar los pesos de la red. Como se mencionó, calcular el error implica determinar la pendiente del valor de salida. Una vez calculada la pendiente, se puede utilizar un proceso conocido como descenso de gradiente para ajustar los pesos en la red. Un gradiente es una pendiente cuyo ángulo/inclinación se puede medir. La pendiente se calcula trazando "y sobre" o el "aumento" sobre el "recorrido". En el caso de la red neuronal y la tasa de error, la “y” es el error calculado, mientras que la “x” son los parámetros de la red. Los parámetros de la red tienen una relación con los valores de error calculados y, a medida que se ajustan los pesos de la red, el error aumenta o disminuye.
El “descenso de gradiente” es el proceso de actualización de los pesos para que la tasa de error disminuya. La retropropagación se utiliza para predecir la relación entre los parámetros de la red neuronal y la tasa de error, lo que configura la red para el descenso de gradiente. Entrenar una red con descenso de gradiente implicó calcular los pesos a través de la propagación hacia adelante, retropropagando el error y luego actualizando los pesos de la red.