Implementación de retropropagación de redes neuronales simples desde cero |  de Siq Sun |  marzo de 2024

Resolver el problema de la puerta XOR: usar solo NumPy y luego comparar con la implementación de PyTorch.

Describir

・Introducción al problema de la puerta XOR

・Construcción de una red neuronal de dos capas

・Propagación hacia adelante

・Reglas de cadena para retropropagación

・Implementación con NumPy

・Comparación de resultados con PyTorch

·Resumen

・Referencias

Foto por Google DeepMind en desempaquetar

Introducción al problema de la puerta XOR

El problema de la puerta XOR (OR exclusivo) se considera simple para una red neuronal porque implica aprender un patrón simple de relaciones entre entradas y salidas que una red diseñada adecuadamente puede capturar, aunque no sea linealmente separable (lo que significa que no se puede dibujar una sola línea recta para separar las salidas en dos grupos en función de las entradas). Las redes neuronales, particularmente aquellas con capas ocultas, son capaces de aprender patrones no lineales.
Veamos las entradas y salidas de XOR Gate. Aquí tenéis nuestros 4 datos de entrenamiento.

Datos de entrenamiento (Entradas y salidas de XOR Gate)

Construyendo una red neuronal de 2 capas

Usamos la red neuronal completamente conectada de 2 capas más simple como ejemplo para resolver el problema de la puerta XOR. Aquí está la estructura de esta red. La capa de entrada tiene j nodos, j = 2 en nuestro caso. la capa oculta tiene i nodos, i = 4. La capa de salida tiene k nodos, k = 1.

Estructura de red neuronal de 2 capas (imagen del autor)

Propagación hacia adelante: Concepto clave: ¡Cálculos matriciales!

Comprensión de los datos de entrenamiento y los parámetros de la red: Los datos de entrada X está representado por una matriz de (2,4). Este formato se utiliza porque tenemos 4 ejemplos de entrenamiento y cada ejemplo consta de 2 entradas.