De igual forma que las puertas lógicas se conectan para crear circuitos lógicos, las neuronas artificiales se pueden conectar para crear redes neuronales artificiales. Al conectar una neurona con otra se construye un sistema con la capacidad de realizar tareas que una neurona no puede realizar por si sola de manera individual.

Red Neuronal Artificial

Uno de los diseños de red neuronal más utilizado hoy en día es la red neuronal multicapa. En este diseño las neuronas se distribuyen en capas, donde todas las neuronas de una capa se conectan con todas las neuronas de la siguiente capa.

Red Neuronal Artificial

Dicho de una forma más técnica, las neuronas se organizan formando un grafo dirigido acíclico. Es decir, mediante conexiones dirigidas en un único sentido que va desde la entrada hasta la salida de la red, sin ciclos.

Una red neuronal artificial se compone de los siguientes elementos:

  • Un vector de valores de entrada:

X = \begin{bmatrix} x_1 \ldots x_{n} \end{bmatrix}

  • Una capa de neuronas de entrada:

L_0

  • Una serie de capas de neuronas ocultas:

L_{0 \lt i \lt k}

  • Una capa de neuronas de salida:

L_k

  • Un vector de valores de salida:

Y = \begin{bmatrix} y_1 \ldots y_{m} \end{bmatrix}

Vector de Valores de Entrada

El vector de valores de entrada representa los valores a ser introducidos en la red neuronal, como por ejemplo los pixeles de una imagen concreta dentro de un conjunto de imágenes.

Es el mismo vector de valores de entrada visto anteriormente en el análisis de las neuronas artificiales de forma individual.

Capa de Neuronas de Entrada

La capa de neuronas de entrada recibe el vector de valores de entrada y los introduce en la red. No realiza ningún tipo de procesamiento, lo que se introduce en la entrada se emite por la salida. Es una manera conveniente de poder gestionar todas las capas de una manera uniforme. En la mayoría de las representaciones se obvia.

Esta capa tiene tantas neuronas como elementos tiene el vector de valores de entrada.

Capas de Neuronas Ocultas

Las capas de neuronas ocultas son las que se encuentran entre la capa de entrada y la capa de salida. En la práctica son iguales que las capas de entrada y salida, aunque a diferencia de estas su número de neuronas no está determinado por las entradas y salidas.

El número de capas ocultas, y de neuronas por capa, necesarias para resolver un determinado problema no se conoce de antemano. Determinar el número de capas y neuronas a utilizar forma parte de encontrar la solución a un problema utilizando redes neuronales.

Capa de Neuronas de Salidas

La capa de neuronas de salida recibe los valores de la última capa oculta y calcula los valores finales resultantes de la red neuronal.

Esta capa tiene tantas neuronas como elementos tiene el vector de valores de salida.

Vector de Valores de Salida

El vector de valores de salida representa los valores resultantes del cálculo realizado por la red neuronal.

No se impone ningún límite al número de elementos que puede tener el vector de valores de salida, a diferencia de una neurona individual, que sólo puede tener un valor de salida.

XOR

Una red neuronal artificial puede implementar una puerta lógica XOR, algo que una neurona artificial no puede hacer por si sola.

Por ejemplo, la siguiente red con dos capas implementa la operación lógica XOR.Red Neuronal - Puerta XOR La primera neurona de la primera capa implementa la operación lógica \neg x_1 \land x_2 , y la segunda x_1 \land \neg x_2 . La segunda capa, con una neurona, implementa (\neg x_1 \land x_2) \lor (x_1 \land \neg x_2) , que es precisamente la operación lógica XOR.

No obstante, no es la única solución posible. Por ejemplo, la siguiente red también implementa la operación lógica XOR.

Red Neuronal - Puerta XORLa primera neurona de la primera capa implementa x_1 \lor x_2 , y la segunda \neg x_1 \lor \neg x_2 . La segunda capa implementa (x_1 \lor x_2) \land (\neg x_1 \lor \neg x_2) , que es otra forma de expresar la operación lógica XOR.

Cada neurona en la primera capa se centra en una característica concreta que deben satisfacer los vectores de entrada. Trazan fronteras de decisión que realizan una primera clasificación en base a esa característica, sin pretender resolver el problema en su totalidad de una sola vez.

La neurona de la siguiente capa vuelve a clasificar los resultados de la primera capa, no en base a los valores de entrada, sino en base a la clasificación realizada en la capa anterior. Y así sucesivamente a medida que se avanza por todas las capas de la red.

Por ejemplo, en el segundo diseño de red propuesto para el XOR, la primera neurona clasifica en función de si alguno de los valores del vector de entrada es igual a 1. Y la segunda neurona en función de si alguno de los valores es igual a 0.

Fronteras de Decisión - Puerta XOR

La segunda capa clasifica como pertenecientes a la clase 1 a todos los valores clasificados como pertenecientes a la clase 1 por las dos neuronas de la capa anterior, y el resto como pertenecientes a la clase 0.

Frontera de Decisión - Puerta XOR

En cierto sentido, la red en su totalidad clasifica un valor como perteneciente a una clase u otra en función de si se encuentra a un mismo lado o no de las dos fronteras de decisión definidas en la primera capa. Evitando así las limitaciones de las neuronas individuales, que sólo pueden clasificar en base a una única frontera de decisión.

Es importante entender en este punto que las clases 0 y 1 para cada neurona tienen un significado distinto. Para la primera neurona de la primera capa la clase 1 representa los vectores de entrada que tienen al menos uno de sus valores a 1. Para la segunda neurona de la primera capa representa los vectores de entrada que tienen al menos uno de sus valores a 0. Y para la neurona de la segunda capa representa los vectores de entrada que han sido clasificados como pertenecientes a sus correspondientes clases 1 por las dos neuronas artificiales anteriores.

Intuitivamente resulta fácil pensar que puede diseñarse una red neuronal para cualquier tipo de expresión lógica siguiendo este esquema o similares.