Una vez que conocemos qué es una neurona artificial, qué son los pesos, el bias, las funciones de activación y cómo se organiza la arquitectura de una red, el siguiente paso natural es entender cómo circula la información dentro del modelo.
Esa circulación de datos desde la entrada hasta la salida se llama propagación hacia adelante, o en inglés, forward propagation.
Este proceso es fundamental porque describe cómo una red neuronal produce una predicción. Antes de poder aprender, la red primero necesita calcular una salida. Y ese cálculo ocurre justamente en la propagación hacia adelante.
La propagación hacia adelante es el proceso mediante el cual los datos de entrada atraviesan las distintas capas de la red neuronal hasta llegar a la salida.
En este recorrido, cada neurona:
Este flujo continúa capa tras capa hasta generar la predicción final del modelo.
La propagación hacia adelante es importante porque representa el comportamiento operativo de la red. Es el momento en que el modelo "piensa" usando sus parámetros actuales.
Sin este paso:
Por eso el entrenamiento de una red siempre comienza, en cada ejemplo, con una propagación hacia adelante.
El nombre "hacia adelante" viene de la dirección en que se mueve la información:
Es decir, la información avanza desde los datos iniciales hasta la respuesta final. No hay corrección de errores todavía; en esta etapa solo se calcula una salida.
En cada neurona ocurre el mismo patrón básico:
Ese valor de salida se convierte luego en entrada para otras neuronas de la capa siguiente.
En forma matemática, el cálculo de una neurona puede expresarse así:
Donde:
x son las entradas,w son los pesos,b es el bias,z es la suma ponderada,a es la salida activada.Este patrón se repite en cada neurona y en cada capa de la red.
Cuando trabajamos con una capa completa, no se calcula una sola neurona, sino muchas al mismo tiempo. Cada neurona de la capa recibe las salidas de la capa anterior y produce su propia activación.
Por eso, la salida de una capa no es un único número, sino un conjunto de valores que representan lo que esa capa ha aprendido a detectar o transformar.
Esos valores se convierten en la entrada de la capa siguiente.
La capa de entrada es el punto de partida del forward propagation. Allí se colocan los datos originales del problema.
Si el problema es tabular, las entradas pueden ser variables como edad, ingresos o antigüedad. Si el problema es una imagen, las entradas pueden ser los valores numéricos de los píxeles. Si es texto, pueden ser representaciones vectoriales de palabras o tokens.
La capa de entrada no transforma mucho por sí misma. Su función es alimentar el resto de la red.
En las capas ocultas ocurre el verdadero procesamiento interno. Cada una toma la salida de la capa anterior y la transforma en una nueva representación.
Podemos pensar que cada capa oculta realiza una especie de refinamiento de la información:
Cuantas más capas haya, más etapas de transformación ocurren durante la propagación hacia adelante.
La capa de salida es el destino final del forward propagation. Allí se produce la predicción de la red.
Esa salida puede tomar distintas formas:
La forma exacta depende del problema y de la función de activación elegida para la salida.
Supongamos una neurona que recibe dos entradas:
x1 = 2x2 = 3Y tiene los siguientes parámetros:
w1 = 0.5w2 = 1.0b = -1Entonces el cálculo sería:
Luego se aplica la función de activación. Si fuera ReLU, la salida sería 3. Si fuera una función escalón, la salida dependería del umbral. Si fuera Sigmoid, la salida sería un valor entre 0 y 1.
Imaginemos ahora una red pequeña con:
El forward propagation ocurriría así:
Esto muestra que el forward propagation es, esencialmente, una secuencia de transformaciones matemáticas encadenadas.
Decir que una capa transforma la información significa que toma un conjunto de valores y lo convierte en otro conjunto de valores más útil para la tarea.
Por ejemplo, en una red para imágenes:
Todo eso ocurre durante la propagación hacia adelante.
Cuando usamos una red neuronal ya entrenada para hacer predicciones, lo que realmente hacemos es ejecutar una propagación hacia adelante.
Es decir:
En ese contexto ya no se están ajustando parámetros. Solo se está utilizando el conocimiento que la red ya adquirió durante el entrenamiento.
Durante el entrenamiento también ocurre la propagación hacia adelante. La diferencia es que, después de obtener la salida, esa predicción se compara con la respuesta correcta.
Entonces el proceso completo durante el entrenamiento es:
Por eso el forward es el primer paso del ciclo de aprendizaje.
La salida del forward propagation no es el final del proceso cuando estamos entrenando. Esa salida se usa para calcular qué tan bien o qué tan mal se comportó el modelo. Esa medición se hace mediante la función de pérdida.
Si la predicción está lejos del valor correcto, la pérdida será grande. Si está cerca, será pequeña.
Más adelante veremos esto con detalle, pero es importante entender desde ahora que el forward propagation produce la predicción sobre la cual luego se mide el error.
Las funciones de activación juegan un papel central durante la propagación hacia adelante. No son un detalle extra: forman parte del propio cálculo que se realiza en cada capa.
Sin activaciones, cada capa haría una transformación lineal, y la red perdería gran parte de su capacidad para aprender patrones complejos.
Por eso, cuando pensamos en el forward propagation, debemos imaginar no solo sumas ponderadas, sino también activaciones que modelan relaciones no lineales.
En la práctica, sobre todo cuando se trabaja con muchas neuronas y muchos ejemplos al mismo tiempo, no se hacen los cálculos uno por uno manualmente. Se usan operaciones matriciales.
Esto permite aprovechar mejor el hardware y calcular muchas neuronas de forma eficiente.
Cuando más adelante programemos en PyTorch, veremos que gran parte del trabajo se basa en tensores y multiplicaciones matriciales. Ese formalismo es simplemente una manera eficiente de implementar la propagación hacia adelante.
Supongamos que tenemos una red que debe predecir si un correo es spam o no spam.
Durante la propagación hacia adelante:
Todo ese cálculo interno, desde la entrada hasta la probabilidad final, es forward propagation.
Imaginemos una red que debe clasificar si una imagen contiene un gato o un perro.
Durante la propagación hacia adelante:
El usuario solo ve el resultado final, pero internamente han ocurrido muchas transformaciones sucesivas.
Es importante no confundir la propagación hacia adelante con el aprendizaje completo. Durante el forward propagation:
Todo eso ocurre después, cuando se calcula la pérdida y se aplica la retropropagación junto con el descenso del gradiente.
El forward solo produce una salida usando los parámetros actuales.
Durante el entrenamiento, la red procesa muchos ejemplos y lo hace repetidas veces a lo largo de múltiples épocas. Eso significa que el forward propagation se ejecuta una enorme cantidad de veces.
Cada vez que la red ve un batch de datos:
Por eso la eficiencia del forward propagation también es importante desde el punto de vista computacional.
La forma en que la red realiza la propagación hacia adelante determina la calidad de sus predicciones. Si los pesos están bien aprendidos, el forward propagation producirá salidas útiles incluso en datos nuevos.
En ese sentido, la generalización de la red se manifiesta justamente en la calidad de sus predicciones durante el forward con ejemplos no vistos.
Podemos resumir la propagación hacia adelante así:
Ese flujo es el corazón operativo de una red neuronal.
En PyTorch, la propagación hacia adelante suele definirse dentro del método forward de un modelo. Allí se especifica exactamente cómo pasan los datos por las capas.
Cuando más adelante implementemos redes en código, verás que el método forward representa justamente el recorrido que aquí estamos estudiando conceptualmente.
Entender este tema te dará una base muy sólida para interpretar el código de un modelo y no solo escribirlo de forma mecánica.
forward.La propagación hacia adelante describe cómo una red neuronal convierte datos de entrada en una predicción. Es el proceso que pone en funcionamiento toda la arquitectura del modelo.
Entender el forward propagation es esencial porque permite ver a la red como una secuencia organizada de cálculos y no como una caja negra. El siguiente paso natural será estudiar cómo se mide la calidad de esa predicción, es decir, la función de pérdida.