Ejemplo: XOR
Para tener claro como funciona una red neuronal, vamos a ver un ejemplo concreto, la función XOR. Esta función es bastante simple, sólo toma 2 valores binarios y devuelve otro valor binario. Se resume en la siguiente tabla:
Entrada 1 | Entrada 2 | Salida |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Queremos conseguir una red neuronal que aprenda esta función. Para conseguirlo, la red tendrá que ir modificando sus parámetros (los pesos), para ir acercándose poco a poco a la función objetivo, (la función XOR).
Definir la función de error
Para ver lo bien que funciona la red, tenemos que definir una medida para ver cómo se comporta respecto a la función original.
Decimos que Y
es la salida de la red neuronal, y Ŷ
es la salida original (representada por la tabla de arriba),
de esta forma podremos medir cuanto difieren las salidas.
Recuerda que hay calacular ambas salidas para todas las entradas: X = { [0,0] [0,1] [1,0] [1,1] }
Existen varias formas de medir el error, pero para simplificar las matemáticas usaremos el error cuadrático medio. Consiste en calcular las diferencias para las 4 entradas (n = 4), aplicar el cuadrado a cada diferencia, sumarlos, y finalemente dividirlo entre 4.
Definir el modelo
Una vez sabemos como medir la salida de la red neuronal respecto a la salida original, tenemos que proporcionar un modelo (arqutectura) para que pueda calcular su salida.
Referencias
- https://chih-ling-hsu.github.io/2017/08/30/NN-XOR
- https://stats.stackexchange.com/questions/253217/neural-network-decision-boundary