Las redes neuronales artificiales son modelos computacionales inspirados en el funcionamiento del cerebro humano. Están compuestas por capas de neuronas interconectadas, donde cada conexión tiene un peso que determina la influencia de una neurona sobre otra.
Uno de los ejemplos clásicos para ilustrar el poder de las redes
neuronales es la función XOR (o disyunción exclusiva).
Esta función devuelve un valor de salida igual a 1 si las dos entradas
son diferentes, y 0 en caso contrario.
Para este trabajo construiremos y entrenaremos una red neuronal de
dos capas utilizando el algoritmo de retropropagación del error
(backpropagation).
De esta forma, mostraremos paso a paso cómo se calculan las
activaciones, errores y ajustes de pesos, hasta que la red logre
aproximar correctamente la función XOR.
Pesos: antes / después (por época y muestra) | |||||||||||||||||||
Epoca | Muestra | w1_before | w2_before | w3_before | w4_before | w5_before | w6_before | b1_before | b2_before | b3_before | w1_after | w2_after | w3_after | w4_after | w5_after | w6_after | b1_after | b2_after | b3_after |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1.000000 | 1.000000 | 0.100000 | 0.500000 | −0.700000 | 0.300000 | 0.200000 | 0.400000 | 0.000000 | 0.000000 | 0.000000 | 0.100000 | 0.500000 | −0.700000 | 0.300000 | 0.182447 | 0.382447 | 0.000000 | 0.000000 | 0.000000 |
1.000000 | 2.000000 | 0.100000 | 0.500000 | −0.700000 | 0.300000 | 0.182447 | 0.382447 | 0.000000 | 0.000000 | 0.000000 | 0.100000 | 0.500000 | −0.698933 | 0.302466 | 0.191199 | 0.397600 | 0.000000 | 0.000000 | 0.000000 |
1.000000 | 3.000000 | 0.100000 | 0.500000 | −0.698933 | 0.302466 | 0.191199 | 0.397600 | 0.000000 | 0.000000 | 0.000000 | 0.098447 | 0.496984 | −0.700486 | 0.299450 | 0.178612 | 0.373089 | 0.000000 | 0.000000 | 0.000000 |
1.000000 | 4.000000 | 0.098447 | 0.496984 | −0.700486 | 0.299450 | 0.178612 | 0.373089 | 0.000000 | 0.000000 | 0.000000 | 0.099584 | 0.499223 | −0.700486 | 0.299450 | 0.192002 | 0.388958 | 0.000000 | 0.000000 | 0.000000 |
2.000000 | 1.000000 | 0.099584 | 0.499223 | −0.700486 | 0.299450 | 0.192002 | 0.388958 | 0.000000 | 0.000000 | 0.000000 | 0.099584 | 0.499223 | −0.700486 | 0.299450 | 0.174495 | 0.371451 | 0.000000 | 0.000000 | 0.000000 |
2.000000 | 2.000000 | 0.099584 | 0.499223 | −0.700486 | 0.299450 | 0.174495 | 0.371451 | 0.000000 | 0.000000 | 0.000000 | 0.099584 | 0.499223 | −0.699459 | 0.301861 | 0.183301 | 0.386697 | 0.000000 | 0.000000 | 0.000000 |
2.000000 | 3.000000 | 0.099584 | 0.499223 | −0.699459 | 0.301861 | 0.183301 | 0.386697 | 0.000000 | 0.000000 | 0.000000 | 0.098099 | 0.496296 | −0.700944 | 0.298933 | 0.170754 | 0.362261 | 0.000000 | 0.000000 | 0.000000 |
2.000000 | 4.000000 | 0.098099 | 0.496296 | −0.700944 | 0.298933 | 0.170754 | 0.362261 | 0.000000 | 0.000000 | 0.000000 | 0.099195 | 0.498488 | −0.700944 | 0.298933 | 0.184250 | 0.378254 | 0.000000 | 0.000000 | 0.000000 |