Redes Neuronales
Componentes de una neurona
Ø
SOMA:
Cuerpo de la célula ,Realiza el ”procesamiento”.
Ø
AXÓN:
Elemento de salida con múltiples ramificaciones, transporta impulsos nerviosos
a otras neuronas.
Ø
DENDRITAS:
Elementos de entrada, reciben señales de excitación/inhibición de otras
neuronas a través de las sinapsis.
Ø
SINAPSIS:
Áreas de contacto entre neuronas, conexiones unidireccionales, dos tipos.
o
excitadoras
o
inhibidoras
Ø
No hay
contacto físico, (separación)
Ø
Transmisión
de info. en forma electroquímica (iones +/-), gobernada por neurotransmisores.
Ø
Neurona
(soma) ”acumula” todos los potenciales positivos y negativos que recibe en sus
entradas (dendritas).
Si la suma de esos impulsos es ”suficiente”, cambia su potencia y
genera su salida en el axón que se propagará a otras neuronas.
Red neuronal artificial
Red neuronal artificial perceptrón
multicapa con n neuronas de entrada, m neuronas en su
capa oculta y una neurona de escape.
Las redes de neuronas artificiales (denominadas habitualmente como RNA o en inglés
como: "ANN"1
) son un paradigma de aprendizaje y procesamiento automático inspirado en la
forma en que funciona el sistema nervioso de los animales. Se trata de
un sistema
de interconexión de neuronas en una red que colabora para producir un estímulo de salida. En inteligencia artificial es frecuente
referirse a ellas como redes de
neuronas o redes neuronales.
Historia
Los primeros modelos
de redes neuronales datan de 1943 por los neurólogos McCulloch y Pitts. Años más tarde, en
1949, Donald Hebb desarrolló sus ideas sobre el aprendizaje neuronal, quedando
reflejado en la "regla de Hebb". En 1958, Rosemblatt desarrolló el perceptrón
simple, y en 1960, Widrow y Hoff desarrollaron el ADALINE,
que fue la primera aplicación industrial real.
En los años
siguientes, se redujo la investigación, debido a la falta de modelos de
aprendizaje y el estudio de Minsky y Papert sobre las limitaciones del
perceptrón. Sin embargo, en los años 80, volvieron a resurgir las RNA gracias
al desarrollo de la red de Hopfield, y en especial, al algoritmo de aprendizaje
de retropropagación ideado por Rumelhart y McLellan en 1986 que fue aplicado en
el desarrollo de los perceptrones multicapa. 2
Propiedades
Una red neuronal se
compone de unidades llamadas neuronas. Cada neurona recibe una serie de
entradas a través de interconexiones y emite una salida. Esta salida viene dada
por tres funciones:
- Una función de propagación (también conocida como función de excitación), que por lo general consiste en el sumatorio de cada entrada multiplicada por el peso de su interconexión (valor neto). Si el peso es positivo, la conexión se denomina excitatoria; si es negativo, se denomina inhibitoria.
- Una función de activación, que modifica a la anterior. Puede no existir, siendo en este caso la salida la misma función de propagación.
- Una función de transferencia, que se aplica al valor devuelto por la función de activación. Se utiliza para acotar la salida de la neurona y generalmente viene dada por la interpretación que queramos darle a dichas salidas. Algunas de las más utilizadas son la función sigmoidea (para obtener valores en el intervalo [0,1]) y la tangente hiperbólica (para obtener valores en el intervalo [-1,1]).
Diseño y programación de una RNA (red neuronal artificial)
Con un paradigma convencional de programación en ingeniería del software, el objetivo del
programador es modelar matemáticamente (con distintos grados de formalismo) el
problema en cuestión y posteriormente formular una solución (programa) mediante
un algoritmo
codificado 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 menos que ver con cuestiones como
los flujos de datos y la detección de condiciones, y más que ver con cuestiones
tales como la selección del modelo de red, la de las variables a incorporar y
el preprocesamiento de la información que formará el conjunto de
entrenamiento. Asimismo, el proceso por el que los parámetros de la red se
adecuan a la resolución de cada problema no se denomina genéricamente
programación sino que se suele denominar entrenamiento neuronal.
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 entradas son la función escalón de Heaviside, la lineal o
mixta, la sigmoide y la función gaussiana, recordando que la función de
transferencia es la relación entre la señal de salida y la entrada.
Ventajas
Las redes neuronales
artificiales (RNA) tienen muchas ventajas debido a que están basadas en la
estructura del sistema nervioso, principalmente el cerebro.
- Aprendizaje: Las RNA tienen la habilidad de aprender mediante una etapa que se llama etapa de aprendizaje. Esta consiste en proporcionar a la RNA datos como entrada a su vez que se le indica cuál es la salida (respuesta) esperada.
- Auto organización: Una RNA crea su propia representación de la información en su interior, descargando al usuario de esto.
- Tolerancia a fallos: Debido a que una RNA almacena la información de forma redundante, ésta puede seguir respondiendo de manera aceptable aun si se daña parcialmente.
- Flexibilidad: Una RNA puede manejar cambios no importantes en la información de entrada, como señales con ruido u otros cambios en la entrada (por ejemplo si la información de entrada es la imagen de un objeto, la respuesta correspondiente no sufre cambios si la imagen cambia un poco su brillo o el objeto cambia ligeramente).
- Tiempo real: La estructura de una RNA es paralela, por lo cual si esto es implementado con computadoras o en dispositivos electrónicos especiales, se pueden obtener respuestas en tiempo real.
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 económico, 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.
La disciplina que trata la evolución de redes neuronales mediante algoritmos genéticos se denomina Robótica Evolutiva. 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).
No hay comentarios:
Publicar un comentario