Dentro del campo de estudio de la Inteligencia Artificial existe un conjunto de técnicas que se engloban bajo el nombre de Machine Learning, lo que en castellano suele traducirse como Aprendizaje Automático. Las técnicas más populares de Machine Learning hoy en día son las que se basan en el uso de Redes Neuronales Artificiales.

Red Neuronal Artificial

Una red neuronal artificial en la práctica no es más que un programa que admite unas entradas, realiza un cálculo, y genera unas salidas. Es decir, hasta aquí nada nuevo. La diferencia está en que el cálculo que realiza una red neuronal no tiene porque estar codificado de manera explícita. El código fuente de una red neuronal no tiene que escribirse programando las reglas que resuelven el problema. La propia red neuronal puede llegar a descubrir cómo resolver el problema.

Imaginemos que queremos escribir un programa que admita como entrada una serie de imágenes aleatorias, y genere como salida un valor indicando para cada imagen si contiene una mesa o una silla. Es evidente que intentar resolver este problema utilizando técnicas tradicionales de programación sería muy complicado. Pero sobre todo, la mayor dificultad estaría en definir el propio concepto de mesa o silla de una forma universal mediante un lenguaje de programación.

Las redes neuronales artificiales representan una forma de escribir programas que facilitan la resolución de problemas como el descrito en el párrafo anterior. Su diseño está inspirado en las redes neuronales biológicas presentes en el sistema nervioso y su capacidad de abstracción, útil para generalizar conceptos. Lo que quiere decir que las personas cuando nacemos no sabemos diferenciar entre una mesa o una silla, pero podemos aprenderlo. De igual forma, las redes neuronales artificiales tienen la capacidad de aprender, de encontrar por ellas mismas las reglas que resuelven un problema determinado.

Red Neuronal Biológica

Las redes neuronales biológicas son la fuente de inspiración de las redes neuronales artificiales, que se diseñaron como una versión simplificada de las estructuras y procesos observados por la biología.

Una red neuronal biológica es un conjunto de células interconectadas entre sí mediante señales eléctricas y químicas llamadas neuronas. Las neuronas responden a estímulos externos y generan una respuesta.

Neurona Biológica

Cada neurona está compuesta por los siguientes elementos:

  • Dendritas

Conexiones de entrada a través de las que se reciben señales. Son conjuntos de pequeñas ramificaciones a través de las cuales se pueden llegar a recibir varios miles de señales.

  • Soma

Núcleo de la célula. Procesa las señales de entrada. La suma de todas las entradas determina si la neurona se excita o se inhibe. Si se excita se desencadena un proceso que produce una reacción química y eléctrica de mayor o menor intensidad.

  • Umbral de activación

Valor que tiene que superar la suma de las señales de entrada para excitar la neurona.

  • Axón

Conexión de salida. Es una única ramificación gruesa y alargada a través de la cual se comunica el impulso nervioso. En su extremo tiene múltiples conexiones que se utilizan para conectarse con otras neuronas.

  • Sinapsis

Conexión que se establece con otras neuronas. En la práctica esto sucede en el espacio intermedio que existe entre las neuronas.

Una red neuronal en cierto sentido implementa un programa, genera una salida ante determinadas entradas. Lo interesante es que las redes neuronales tienen la capacidad de cambiar su configuración. Es decir, variar sus parámetros internos en función de entradas nuevas nunca antes vistas y generar salidas distintas a las originales. Tienen la capacidad de aprender. O dicho de otra forma, tienen la capacidad de variar el programa que implementan.

Neurona Artificial

Sin entrar a revisar los distintos modelos propuestos a lo largo de la historia, el diseño básico de una neurona artificial se basa en la morfología de las neuronas biológicas descritas anteriormente.

Neurona Artificial

Una neurona artificial se compone de los siguientes elementos:

  • Un vector de valores de entrada:

X = \begin{bmatrix} x_1 \ldots x_n \end{bmatrix}

  • Un vector de pesos:

W = \begin{bmatrix} w_1 \ldots w_n \end{bmatrix}

  • Un valor neto de entrada, suma de las entradas ponderadas por los pesos:

z = \displaystyle\sum_{i=1}^{n} w_i x_i

  • Un umbral de activación:

T

  • Una función de activación:

f(x) = \begin{cases} 1 & \quad \text{if } x \geq T \\ 0 & \quad \text{if } x < T \end{cases}

  • Un valor de salida, resultado de la función de activación aplicada al valor neto de entrada:

y = f(z)

Vector de Valores de Entrada

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

También suele llamarse vector de características, traducción del inglés «features», en referencia a que cada entrada representa una característica del conjunto de datos que se quiere analizar. Por ejemplo, si se estuviera analizando un grupo de personas, algunas características analizadas podrían ser la edad, el estado civil, o la altura.

Vector de Pesos

El vector de pesos sirve para ponderar las entradas, para dar mayor importancia a unas que a otras en función del problema concreto que se esté intentando resolver. Por ejemplo, la edad de una persona es más relevante que su altura en un sistema de detección temprana de cáncer.

Los valores que deben asignarse a cada peso para resolver un problema concreto no se conocen inicialmente. Determinar estos valores es encontrar parte de la solución al problema, un aspecto fundamental en la construcción de redes neuronales.

Valor Neto de Entrada

El valor neto de entrada es la suma ponderada de todas las entradas por sus pesos correspondientes.

Este valor es un compendio de todas las entradas recibidas por la neurona teniendo en cuenta la relevancia de cada una de ellas.

Umbral de Activación

El umbral de activación, referido habitualmente en inglés como «threshold», sirve para controlar la excitación o inhibición de las neuronas. Si el valor neto de entrada supera el umbral entonces la neurona se excita, en caso contrario se inhibe.

Al igual que con los pesos, el valor del umbral de activación necesario para resolver un problema concreto tampoco es conocido inicialmente.

Función de Activación

La función de activación determina el valor de salida de la neurona. En su forma más simple retorna 1 si el valor neto de entrada es igual o mayor que el umbral de activación, y 0 en caso contrario. Esta función de activación concreta se conoce como función escalón, del inglés «step». Al retornar sólo dos posibles valores finitos limita los posibles usos de la neurona, pero en este momento resulta conveniente por su simplicidad.

La función de activación a aplicar para resolver un problema concreto se determina durante la fase de construcción de la red neuronal. En la práctica existe un conjunto de funciones con propiedades bien definidas y se trata de escoger una de ellas en función de la naturaleza del problema.

Valor de Salida

El valor de salida de una neurona es el resultado de aplicar la función de activación al valor neto de entrada.

Técnicamente, el tipo de neurona artificial descrito se conoce con el nombre de Perceptron. Y a pesar de la aparente simplicidad de su estructura, es la base de la mayoría de desarrollos actuales de Inteligencia Artificial.