Según el artículo de 1989, la retropropagación ajusta repetidamente los pesos de las conexiones en la red para minimizar una medida de la diferencia entre el vector de salida real de la red y el vector de salida deseado. Básicamente, para llevar la retropropagación en red neuronal construida en Python, uno tiene que entrenar el modelo en el método de aprendizaje supervisado, donde el error entre la salida del sistema y una salida esperada conocida se presenta al modelo y se utiliza para modificar su estado interno. Luego, se deben actualizar los pesos para obtener el mínimo de pérdida global. El método que se utiliza para actualizar los pesos de la red se basa en la regla de la cadena. Los pesos se actualizan después de cada muestra en el conjunto de entrenamiento, por lotes o en mini lotes aleatorios.
Por esa razón y muchas otras más no menos importantes, es que te recomendamos este curso de python profesional, el cual lo imparten de manera presencial o en linea, con instructores expertos en este lenguaje de programación.
Hay dos tipos principales de retropropagación en las redes neuronales artificiales en Python, incluidas las construidas con Python. Una de ellas es la retropropagación estática, que produce un mapeo de una entrada estática para una salida estática; aquí el mapeo es bastante rápido. Por otro lado, la retropropagación recurrente es la red neuronal se alimenta hasta que se alcanza un valor fijo. Después de eso, el error se calcula y se propaga hacia atrás. Aquí el mapeo no es estático.
La propagación hacia atrás es una parte integral de las redes neuronales actuales. Sin ella, las redes neuronales construidas en Python no podrían realizar tareas como reconocer imágenes e interpretar el lenguaje natural. Pero uno de los problemas clave de la retropropagación es que, después de que el modelo de red neuronal aprende a hacer predicciones a partir de un conjunto de datos, es propenso al riesgo de olvidar lo que aprendió cuando se le dan nuevos datos de entrenamiento. Este fenómeno se llama olvido catastrófico.
Por otro lado, esta secuencia puede general otro problema adicional, pues también actualiza las capas de la red neuronal de forma secuencial, lo que dificulta la paralelización del proceso de entrenamiento y conduce a tiempos de entrenamiento más largos. Con todo, al igual que ocurre con cualquier otro proceso de programación y de entrenamiento de inteligencia artificial, existen ventajas y desventajas en cada caso. Lo mejor es usar lo útil y minimizar las desventajas. Esto es lo mismo que debe hacerse al desarrollar redes neuronales artificiales con Python, pues esto dará mayor versatilidad a los proyectos.
Ahora bien, existe un lado positivo, pues la propagación hacia atrás sigue siendo necesaria, ya que es simple, rápido y fácil de programar y flexible. Además, dado que solo se sintonizan números de la entrada y no ningún otro parámetro, el usuario no necesita ningún conocimiento previo sobre la red ni la necesidad de aprender funciones especiales de los lenguajes de programación, como Python. Actualmente, los científicos están trabajando para desarrollar redes neuronales artificiales en Python avanzadas que compensen los cuellos de botella de la retropropagación, lo que se traducirá en mejores proyectos.
Diseño Web Grupo Codesi