Red neuronal artificial

Keywords: Red neuronal artificial, Algoritmo, Algoritmos genéticos, Bot, Cerebro, Inteligencia, Inteligencia artificial, Neurona, Paradigma

Referidas habitualmente de forma más sencilla como redes de neuronas o redes neuronales, las redes de neuronas artificiales (RNA) son un paradigma de aprendizaje y procesamiento automático inspirado en la forma en que funciona el sistema nervioso de los animales. Consiste en simular las propiedades observadas en los sistemas neuronales biológicos a través de modelos matemáticos recreados mediante mecanismos artificiales (como un circuito integrado, un ordenador o un conjunto de válvulas). El objetivo es conseguir que las máquinas den respuestas similares a las que es capaz el cerebro que se caracterizan por su generalización y su robustez.

[[imagen:RedNeuronalArtificial.png|thumb|right|400px|Red neuronal artificial perceptrón simple con n neuronas de entrada, m neuronas en su capa oculta y una neurona de salida.]]

Nota: Aunque en inglés se utiliza el acrónimo ANN (de Artificial Neural Networks) para referise a este campo de la computación en este artículo se utilizará su equivalente castellano RNA.

Tabla de contenidos

Funcionamiento

Diseño y programación de una RNA

Con un paradigma convencional de programación informática, el objetivo del programador es modelar matemáticamente (con distintos grados de formalismo) el problema en cuestión y formular una solución (programa) mediante un algoritmo que tenga una serie de propiedades que permitan resolver dicho problema. En contraposición, la aproximación basada en las RNA parte de un conjunto de datos de entrada suficientemente significativo y el objetivo es conseguir que la red aprenda automáticamente las propiedades deseadas. En este sentido, el diseño de la red tiene que ver menos con cuestiones como flujos de datos y detección de condiciones, y más que ver con cuestiones tales como selección del modelo de red, de las variables a incorporar y del preprocesamiento de la información que formará el conjunto de entrenamiento. Asimismo, el proceso de creación de la red no se denomina genéricamente programación sino que se suele denominar entrenamiento.

Por ejemplo, en una red que se va a aplicar al diagnóstico de imágenes médicas; durante la fase de entrenamiento el sistema recibe imágenes de tejidos que se sabe son cancerígenos y tejidos que se sabe son sanos, así como las respectivas clasificaciones de dichas imágenes. Si el entrenamiento es el adecuado, una vez concluido, el sistema podrá recibir imágenes de tejidos no clasificados y obtener su clasificación sano/no sano con un buen grado de seguridad. Las variables de entrada pueden ser desde los puntos individuales de cada imagen hasta un vector de características de las mismas que se puedan incorporar al sistema (por ejemplo, procedencia anatómica del tejido de la imagen o la edad del paciente al que se le extrajo la muestra).

Estructura

La mayoría de los científicos coinciden en que una RNA es muy diferente en términos de estructura de un cerebro animal. Al igual que el cerebro una RNA se compone de un conjunto masivamente paralelo de unidades de proceso muy simples y es en las conexiones entre estas unidades donde reside la inteligencia de la red. Sin embargo, en términos de escala, un cerebro es muchísimo mayor que cualquier RNA creada hasta la actualidad, y las neuronas artificiales también son más simples que su contrapartida animal.

Biológicamente, un cerebro aprende mediante la reorganización de las conexiones sinápticas entre las neuronas que lo componen. De la misma manera, las RNA tienen un gran número de procesadores virtuales interconectados que de forma simplificada simulan la funcionalidad de las neuronas biológicas. En esta simulación, la reorganización de las conexiones sinápticas biológicas se modela mediante un mecanismo de pesos, que son ajustados durante la fase de aprendizaje. En una RNA entrenada, el conjunto de los pesos determina el conocimiento de esa RNA y tiene la propiedad de resolver el problema para el que la RNA ha sido entrenada.

Por otra parte, en una RNA, además de los pesos y las conexiones, cada neurona tiene asociada una función matemática denominada función de transferencia. Dicha función genera la señal de salida de la neurona a partir de las señales de entrada. La entrada de la función es la suma de todas las señales de entrada por el peso asociado a la conexión de entrada de la señal. Algunos ejemplos de funciones de transferencia son la función escalon, la lineal o mixta, la sigmoidal y la función gaussiana.

En una RNA entrenada, el conjunto de los pesos determina el conocimiento de esa RNA y tiene la propiedad de resolver el problema para el que la RNA ha sido entrenada.

Ventajas

Las Redes de Neuronas Artificiales (RNA) tienen muchas ventajas debido a que estan basadas en la estructura del sistema nervioso, principalmente el cerebro.

Modelos

Existe una serie de modelos que aparecen en la mayoría de estudios académicos y la bibliografía especializada.

Tipología de las RNA

Topología

Una primera clasificación de las redes de neuronas artificiales que se suele hacer es en función del patrón de conexiones que presenta. Así se definen tres tipos básicos de redes:

Aprendizaje

Una segunda clasificación que se suele hacer es en función del tipo de aprendizaje de que es capaz (si necesita o no un conjunto de entrenamiento supervisado). Para cada tipo de aprendizaje encontramos varios modelos propuestos por diferentes autores:

Tipo de entrada

Finalmente también se pueden clasificar las RNA según sean capaces de procesar información de distinto tipo en:

Aplicaciones

Las características de las RNA las hacen bastante apropiadas para aplicaciones en las que no se dispone a priori de un modelo identificable que pueda ser programado, pero se dispone de un conjunto básico de ejemplos de entrada (previamente clasificados o no). Asimismo, son altamente robustas tanto al ruido como a la disfunción de elementos concretos y son fácilmente paralelizables.

Esto incluye problemas de clasificación y reconocimiento de patrones de voz, imágenes, señales, etc. Asimismo se han utilizado para encontrar patrones de fraude, hacer predicciones en el mercado financiero, hacer predicciones de tiempo atmosférico, etc.

También se pueden utilizar cuando no existen modelos matemáticos precisos o algoritmos con complejidad razonable; por ejemplo la red de Kohonen ha sido aplicada con un éxito más que razonable al clásico problema del viajante (un problema para el que no se conoce solución algorítmica de complejidad polinómica).

Otro tipo especial de redes neuronales artificiales se ha aplicado en conjunción con los algoritmos genéticos (AG) para crear controladores para robots. En este tipo de aplicación el genoma del AG lo constituyen los parámetros de la red (topología, algoritmo de aprendizaje, funciones de activación, etc.) y la adecuación de la red viene dada por la adecuación del comportamiento exhibido por el robot controlado (normalmente una simulación de dicho comportamiento).

Ejemplos

Quake II Neuralbot

Un bot es un programa que simula a un jugador humano. El Neuralbot es un bot para el juego Quake II que utiliza una red neuronal para decidir su comportamiento y un algoritmo genético para el aprendizaje. Es muy fácil probarlo y ver su evolución. Más información aquí [1]

Referencias

Enlaces externos

Ver también

Keywords: Red neuronal artificial, Algoritmo, Algoritmos genéticos, Bot, Cerebro, Inteligencia, Inteligencia artificial, Neurona, Paradigma