Retropropagación en redes neuronales: algoritmo de aprendizaje automático y ejemplo

⚡ Resumen inteligente

La retropropagación es el algoritmo de entrenamiento principal de una red neuronal, que ajusta cada peso a partir del error medido en la época anterior para que el modelo generalice mejor con datos no vistos, capa por capa.

  • 🔘 Idea central: La regla de la cadena proporciona el gradiente de la pérdida para cada peso, capa por capa.
  • ☑️ Bucle de entrenamiento: Realizar un pase hacia adelante, medir el error, propagarlo hacia atrás, actualizar los pesos y repetir.
  • Dos variantes: La retropropagación estática asigna una entrada fija a una salida fija; la retropropagación recurrente primero se estabiliza y luego se propaga.
  • 🧪 Por qué es importante: El descenso de gradiente sigue siendo práctico para redes neuronales profundas solo porque los gradientes se reutilizan capa por capa.
  • 🛠️ Límites conocidos: El rendimiento depende de la calidad de los datos de entrada, y las muestras ruidosas distorsionan los pesos aprendidos.
  • ⚙️ Salud en gradiente: La multiplicación de muchas derivadas pequeñas provoca la desaparición de los gradientes; la función ReLU y la normalización reducen este efecto.

Retropropagación en redes neuronales: algoritmo de aprendizaje automático

¿Qué es una red neuronal artificial?

Una red neuronal artificial es un conjunto de unidades de entrada/salida interconectadas, donde cada conexión tiene un peso. Permite construir modelos predictivos a partir de grandes bases de datos, y su diseño se inspira en el sistema nervioso humano. Este tipo de redes facilita la comprensión de imágenes, el aprendizaje automático, el reconocimiento de voz computacional y muchas otras tareas de reconocimiento de patrones.

La retropropagación es el algoritmo que decide cuáles deben ser esos pesos, por lo que es mejor leer ambas ideas conjuntamente.

¿Qué es la retropropagación?

La retropropagación es la base del entrenamiento de redes neuronales. Consiste en ajustar los pesos de una red neuronal en función de la tasa de error obtenida en la época anterior (es decir, la iteración). Un ajuste adecuado de los pesos permite reducir las tasas de error y aumentar la fiabilidad del modelo, mejorando así su capacidad de generalización.

La propagación hacia atrás en una red neuronal es una forma abreviada de "propagación de errores hacia atrás". Es un método estándar para entrenar redes neuronales artificiales. Este método ayuda a calcular el gradiente de una función de pérdida con respecto a todos los pesos de la red.

Dos términos que a menudo se confunden. Retropropagación solamente calcula el gradiente; un optimizador como el descenso de gradiente es lo que realmente cambios los pesos usando ese gradiente. Casi todos los frameworks modernos realizan la retropropagación automáticamente a través de su motor de autodiferenciación.

Cómo funciona el algoritmo de retropropagación

El algoritmo de retropropagación en redes neuronales calcula el gradiente de la función de pérdida para un único peso mediante la regla de la cadena. Calcula eficientemente capa por capa, a diferencia del cálculo directo convencional. Calcula el gradiente, pero no define cómo se utiliza. Generaliza el cálculo de la regla delta.

La regla de la cadena es lo que hace que esto sea eficiente. La influencia de un peso inicial en la pérdida final es producto de las derivadas locales a lo largo del camino hacia la salida, por lo que el algoritmo almacena en caché el resultado intermedio de cada capa en el camino de regreso y lo reutiliza para cada peso en la capa inferior en lugar de recalcular toda la red para cada peso.

Considere el siguiente diagrama de ejemplo de red neuronal de retropropagación para comprender. La figura traces un paso completo: las entradas entran por la izquierda, las activaciones avanzan a través de la capa oculta hasta la salida, y el error medido viaja luego hacia atrás a través de las mismas conexiones para corregir los pesos.

Diagrama del algoritmo de retropropagación que muestra el paso hacia adelante a través de las capas de entrada, oculta y de salida, y el error viajando hacia atrás.

  1. Entradas X, llegan por el camino preconectado
  2. La entrada se modela utilizando pesos reales W. Los pesos generalmente se seleccionan al azar.
  3. Calcule la salida para cada neurona desde la capa de entrada hasta las capas ocultas y la capa de salida.
  4. Calcula el error en las salidas:
    ErrorB= Actual Output – Desired Output
    
  5. Regrese desde la capa de salida a la capa oculta para ajustar los pesos de manera que disminuya el error.
  6. Repita el proceso hasta obtener el resultado deseado.

Muchos libros de texto escriben la misma cantidad que deseado menos realCualquiera de las dos convenciones funciona, porque el signo se absorbe cuando el optimizador subtraces el gradiente, siempre que mantengas una convención en toda la red.

En la práctica, el error rara vez es una simple subtracción. Una función de pérdida como el error cuadrático medio para regresión, o la entropía cruzada para clasificación, convierte las diferencias por salida en el único número que la retropropagación del gradiente realmente calcula.

¿Por qué necesitamos la retropropagación?

Las ventajas más destacadas de la retropropagación son:

  • La retropropagación es rápida, sencilla y fácil de programar.
  • No añade ningún parámetro nuevo; el ajuste que usted realice corresponde al optimizador y a la red, principalmente la tasa de aprendizaje y el número de entradas.
  • Es un método flexible ya que no requiere conocimientos previos sobre la red.
  • Es un método estándar que generalmente funciona bien.
  • No es necesaria ninguna mención especial de las características de la función a aprender.

En pocas palabras, sin una forma eficiente de obtener gradientes, entrenar cualquier cosa más profunda que una sola capa sería computacionalmente inviable.

¿Qué es una red Feed Forward?

Una red neuronal feedforward es una red neuronal artificial donde los nodos nunca forman un ciclo. Este tipo de red neuronal tiene una capa de entrada, capas ocultas y una capa de salida. Es el primer y más simple tipo de red neuronal artificial.

La distinción es importante aquí porque el paso hacia adelante de la retropropagación es exactamente un paso de alimentación hacia adelante; solo que la corrección de errores se ejecuta en la dirección opuesta.

Tipos de redes de retropropagación

Dos tipos de redes de retropropagación son:

  • Propagación hacia atrás estática
  • Propagación hacia atrás recurrente

Propagación hacia atrás estática

Es un tipo de red de retropropagación que produce un mapa.ping de una entrada estática para una salida estática. Es útil para resolver problemas de clasificación estática, como el reconocimiento óptico de caracteres.

Propagación hacia atrás recurrente

Retropropagación recurrente en la minería de datos Se retroalimenta hasta alcanzar un valor fijo. Después, se calcula el error y se propaga hacia atrás.

La principal diferencia entre ambos métodos es: que el mapaping es rápido en la retropropagación estática, mientras que no es estático en la retropropagación recurrente. La siguiente tabla muestra ambos casos uno al lado del otro.

Criterio Propagación hacia atrás estática Retropropagación recurrente
Mapeo Entrada estática a salida estática No estático; la red se estabiliza antes de que se utilice el error.
Velocidad Rápido, una pasada por muestra. Más lentamente, la activación se repite hasta que se estabiliza.
Forma de red Retroalimentación anticipada, sin ciclos Contiene conexiones de retroalimentación
Uso típico Reconocimiento óptico de caracteres, clasificación de tamaño fijo Problemas cuyo resultado depende de un estado interno establecido.

Historia de la retropropagación

  • En 1961, J. Kelly, Henry Arthur y E. Bryson derivaron el concepto básico de retropropagación continua en el contexto de la teoría de control.
  • En 1969, Bryson y Ho desarrollaron un método de optimización de sistemas dinámicos de múltiples etapas.
  • En 1970, Seppo Linnainmaa publicó el modo inverso de diferenciación automática, el método computacional en el que se basa la retropropagación moderna.
  • En 1974, Werbos planteó la posibilidad de aplicar este principio en una red neuronal artificial.
  • En 1982, Hopfield presentó su idea de una red neuronal.
  • En 1986, gracias al esfuerzo de David E. Rumelhart, Geoffrey E. Hinton y Ronald J. Williams, la retropropagación ganó reconocimiento.
  • En 1989, Yann LeCun y sus colegas entrenaron una red neuronal convolucional con retropropagación para leer dígitos escritos a mano, uno de los primeros usos prácticos a gran escala.
  • En 1993, Wan fue la primera persona en ganar un concurso internacional de reconocimiento de patrones con la ayuda del método de retropropagación.
  • En 2006, el trabajo de Hinton sobre redes neuronales profundas y preentrenamiento por capas reavivó el interés en el entrenamiento de redes profundas, que se había estancado debido al problema de los gradientes evanescentes.
  • En 2010, Xavier Glorot y Yoshua Bengio analizaron por qué las redes neuronales profundas eran difíciles de entrenar e introdujeron una inicialización de pesos mejorada, que junto con las funciones de activación ReLU hizo que la retropropagación profunda fuera práctica.
  • En 2012, AlexNet (Krizhevsky, Sutskever y Hinton) ganó la competición ImageNet utilizando retropropagación acelerada por GPU, lo que desencadenó el auge moderno del aprendizaje profundo.
  • En 2014, se introdujo el optimizador Adam (Kingma y Ba), que rápidamente se convirtió en la variante predeterminada de descenso de gradiente utilizada con retropropagación.
  • En 2015, la normalización por lotes y las redes residuales (ResNet) resolvieron los problemas de flujo de gradiente en redes muy profundas, permitiendo la retropropagación a través de cientos de capas.
  • En 2015-2017, TensorFlow y PyTorch convirtió la diferenciación automática en una función estándar del software, por lo que ya no era necesario calcular los gradientes manualmente.
  • En 2017 se presentó la arquitectura Transformer, que se entrena de extremo a extremo mediante retropropagación, al igual que los grandes modelos de lenguaje construidos sobre ella.
  • En 2019, Bengio, Hinton y LeCun recibieron el premio ACM AM Turing por su trabajo en redes neuronales profundas.
  • En 2020, el artículo “Backpropagation and the Brain” (Lillicrap, Santoro, Marris, Akerman y Hinton) argumentó que el cerebro puede aproximarse al aprendizaje por retropropagación, reabriendo el debate sobre la plausibilidad biológica.
  • En 2022, Hinton propuso el algoritmo Forward-Forward, un método de entrenamiento que evita por completo el paso hacia atrás.
  • En 2024, John Hopfield y Geoffrey Hinton fueron galardonados con el Premio Nobel de Física por descubrimientos fundamentales que hicieron posible el aprendizaje automático con redes neuronales artificiales.
  • En 2025, los métodos de propagación hacia adelante se extendieron a las redes convolucionales, demostrando que el entrenamiento sin retropropagación podía funcionar en tareas de clasificación de imágenes.
  • A partir de 2026, la retropropagación seguirá siendo el algoritmo de entrenamiento estándar para prácticamente todos los modelos de aprendizaje profundo, mientras que la investigación continúa en métodos de aprendizaje sin gradiente, locales y paralelos que reducen su coste de memoria y computación.

Puntos clave de retropropagación

  • Simplifica la estructura de la red eliminando los enlaces ponderados que tienen el menor efecto en la red entrenada.
  • Es necesario estudiar un grupo de valores de entrada y activación para desarrollar la relación entre las capas de entrada y de unidades ocultas.
  • Ayuda a evaluar el impacto que tiene una determinada variable de entrada en la salida de una red. El conocimiento adquirido a partir de este análisis debe representarse en reglas.
  • La retropropagación es especialmente útil para redes neuronales profundas que trabajan en proyectos propensos a errores, como el reconocimiento de imágenes o voz.
  • La retropropagación aprovecha las reglas de cadena y potencia, lo que le permite funcionar con cualquier número de salidas.

Mejores prácticas para la retropropagación

La retropropagación en las redes neuronales se puede explicar mediante la analogía de los cordones de los zapatos. Las actualizaciones de peso se comportan de forma similar a la tensión de un cordón: si es muy poca, nada se mantiene unido; si es demasiada, algo se rompe.

Tensión de encaje Qué significa durante el entrenamiento
Muy poca tensión No hay suficientes restricciones y es demasiado laxo: el modelo no se ajusta correctamente.
Demasiada tensión Demasiada restricción (sobreentrenamiento); tomar demasiado tiempo (proceso relativamente lento); mayor probabilidad de romperse
Tirando de un cordón más que del otro Malestar (sesgo): una parte de la red domina el ajuste.

De esta analogía se derivan dos hábitos prácticos: ajustar la escala de las entradas antes del entrenamiento para que ninguna característica ejerza más presión que las demás, y observar la pérdida de validación para liberar la tensión antes de que se produzca el sobreentrenamiento.

Desventajas de utilizar la retropropagación

  • El rendimiento real de la retropropagación en un problema específico depende de los datos de entrada.
  • El algoritmo de retropropagación en la minería de datos puede ser bastante sensible a los datos ruidosos.
  • En un minilote, la retropropagación debe implementarse con un enfoque basado en matrices; looping Analizar un ejemplo a la vez es notablemente más lento.
  • En las redes profundas, la multiplicación repetida de derivadas pequeñas puede reducir los gradientes hacia cero, por lo que las primeras capas apenas aprenden: el problema del gradiente evanescente descrito en el Google Curso intensivo de aprendizaje automático.

Ninguno de estos descarta el método. Son las razones por las que los profesionales recurren a las activaciones ReLU, la normalización y los programas de tasa de aprendizaje cuidadosos cuando pasan de una red superficial a una red más profunda. deep learning modelo.

Preguntas Frecuentes

La retropropagación calcula el gradiente de la función de pérdida con respecto a cada peso. El descenso de gradiente es el optimizador que utiliza ese gradiente para mover cada peso. Uno mide la pendiente; el otro da el paso.

La tasa de aprendizaje determina cuánto se desplaza cada peso a lo largo de su gradiente. Si es demasiado pequeña, el entrenamiento avanza muy lentamente; si es demasiado grande, la pérdida oscila o diverge. Los esquemas que reducen la tasa gradualmente a lo largo de las épocas suelen converger de forma más fiable.

La retropropagación a través del tiempo entrena las redes recurrentes desenrollando la secuencia en una cadena de copias y aplicando luego la retropropagación convencional a través de ella. Las secuencias largas suelen truncarse, ya que, de lo contrario, los gradientes se desvanecen o divergen en muchos pasos.

Cualquier función de pérdida diferenciable funciona. El error cuadrático medio es adecuado para la regresión, la entropía cruzada binaria para problemas de dos clases y la entropía cruzada categórica para capas de salida multiclase. La elección modifica el gradiente en la capa de salida, no el algoritmo inverso en sí.

Las herramientas de búsqueda automatizadas exploran las tasas de aprendizaje, los anchos de capa y la configuración de regularización mucho más rápido que el método manual de prueba y error. Optimización bayesiana y parada temprana.ping Los planificadores eliminan rápidamente las ejecuciones débiles, dejando capacidad de procesamiento para las configuraciones que realmente reducen la pérdida de validación.

Copiloto de GitHub Genera bucles de entrenamiento, comprobaciones de gradiente y definiciones de capas a partir de un breve comentario, lo que reduce el trabajo repetitivo. Verifica las derivadas que produce con una comprobación numérica del gradiente, ya que un signo aparentemente plausible pero incorrecto se entrena silenciosamente.

Los pesos grandes hacen que los productos inversos crezcan en cada capa hasta que las actualizaciones se desbordan y la pérdida se vuelve inestable. Recorte de gradientepingUnos pesos iniciales más pequeños, la normalización por lotes y una tasa de aprendizaje más baja mantienen las magnitudes dentro del rango.

Un lote es el grupo de muestras procesadas antes de una actualización de pesos. Una iteración es una única actualización de este tipo. Una época es una pasada completa sobre el conjunto de entrenamiento, que contiene tantas iteraciones como lotes haya.

Resumir este post con: