lunes, 28 de enero de 2008

Redes Neuronales

Las Redes Neuronales

Las Redes Neuronales Artificiales
(ANNs de Artificial Neural Networks) fueron originalmente una simulación abstracta de los sistemas nerviosos biológicos, formados por un conjunto de unidades llamadas "neuronas" o "nodos" conectadas unas con otras. Estas conexiones tienen una gran semejanza con las dendrítas y los axones en los sistemas nerviosos biológicos.

El Primer modelo de red neuronal fue propuesto en 1943 por McCulloch y Pitts en términos de un modelo computacional de "actividad nerviosa". El modelo de McCulloch-Pitts es un modelo binario, y cada neurona tiene un escalón o umbral prefijado. Este primer modelo sirvió de ejemplo para los modelos posteriores de Jhon Von Neumann, Marvin Minsky, Frank Rosenblatt, y muchos otros.

Una primera clasificación de los modelos de ANNs podría ser, atendiendo a su similitud con la realidad biológica:

  1. Los modelos de tipo biológico. Este comprende las redes que tratan de simular los sistemas neuronales biológicos así como las funciones auditivas o algunas funciones básicas de la visión.
  2. El modelo dirigido a aplicación. Estos modelos no tienen porque guardar similitud con los sistemas biológicos. Sus arquitecturas están fuertemente ligadas a las necesidades de las aplicaciones para las que son diseñados.

Redes Neuronales de tipo Biológico

Se estima que el cerebro humano contiene más de cien mil millones () de neuronas y sinápsis en el sistema nervioso humano. Estudios sobre la anatomía del cerebro humano concluyen que hay más de 1000 sinápsis a la entrada y a la salida de cada neurona. Es importante notar que aunque el tiempo de conmutación de la neurona ( unos pocos milisegundos) es casi un millón de veces menor que en las actuales elementos de las computadoras, ellas tienen una conectividad miles de veces superior que las actuales supercomputadoras.
El objetivo principal de de las redes neuronales de tipo biológico es desarrollar un elemento sintético para verificar las hipótesis que conciernen a los sistemas biológicos.

Las neuronas y las conexiones entre ellas (sinápsis) constituyen la clave para el procesado de la información. Observe la figura:

La mayor parte de las neuronas poseen una estructura de árbol llamadas dendritas que reciben las señales de entrada que vienen de otras neuronas a través de la uniones llamadas sinápsis. Algunas neuronas se comunican solo con las cercanas, mientras que otras se conectan con miles.

Hay tres partes en una neurona:

  1. el cuerpo de la neurona,
  2. ramas de extensión llamadas dentrías para recibir las entradas, y
  3. un axón que lleva la salida de la neurona a las desdirías de otras neuronas.
La forma que dos neuronas interactuan no está totalmente conocida, dependiendo además de cada neurona. En general, una neurona envía su salida a otras por su axón. El axón lleva la información por medio de diferencias de potencial, u ondas de corriente, que depende del potencial de la neurona. Este proceso es a menudo modelado como una regla de propagación representada por la función de red u(.). La neurona recoge las señales por su sinápsis sumando todas las influencias excitadoras e inhibidoras. Si las influencias excitadoras positivas dominan, entonces la neurona da una señal positiva y manda este mensaje a otras neuronas por sus sinápsis de salida. En este sentido la neurona puede ser modelada como una simple función escalón f(.). Como se muestra en la próxima figura, la neurona se activa si la fuerza combinada de la señal de entrada es superior a un cierto nivel, en el caso general el valor de activación de la neurona viene dado por una función de activación f(.).



Redes Neuronales para aplicaciones concretas

Las ANNs dirigidas a aplicación están en general poco ligadas a las redes neuronales biológicas. Ya que el conocimiento que se posee sobre el sistema nervioso en general no es completo, se han de definir otras funcionalidades y estructuras de conexión distintas a las vistas desde la perspectiva biológica. Las características principales de este tipo de ANNs son los siguientes:
  1. Auto Organización y Adaptatividad: utilizan algoritmos de aprendizaje adaptativo y auto organización, por lo que ofrecen posibilidades de procesado robusto y adaptativo (véase entrenamiento adaptativo y redes auto organizativas).

  2. Procesado No Lineal: aumenta la capacidad de la red de aproximar, clasificar y su inmunidad frente al ruido.

  3. Procesado paralelo: normalmente se usa un gran número de células de procesado por el alto nivel de interconectividad.
Estas características juegan un importante papel en las ANNs aplicadas al procesado de señal e imagen. Una red para una determinada aplicación presenta una arquitectura muy concreta, que comprende elementos de procesado adaptativo masivo paralelo combinadas con estructuras de interconexión de red jerárquica.

Taxonomía de las Redes Neuronales

Existen dos fases en toda aplicación de las redes neuronales: la fase de aprendizaje o entrenamiento y la fase de prueba. En la fase de entrenamiento, se usa un conjunto de datos o patrones de entrenamiento para determinar los pesos (parámetros de diseño) que definen el modelo neuronal. Una vez entrenado este modelo, se usará en la llamada fase de prueba o funcionamiento directo, en la que se procesan los patrones de prueba que constituyen la entrada habitual de la red, analizándose de esta manera las prestaciones definitivas de la red.

  • Fase de Prueba: los parámetros de diseño de la red neuronal se han obtenido a partir de unos patrones representativos de las entradas que se denominan patrones de entrenamiento. Los resultados pueden ser tanto calculados de una vez como adaptados iteractivamente, según el tipo de red neuronal, y en función de las ecuaciones dinámicas de prueba. una vez claculados los pesos de la red, los valores de la neuronas de la última capa, se comparan con la salida deseada para determinar la validez del diseño.
  • Fase de Aprendizaje: una característica de las redes neuronales es su capacidad de aprender. Aprenden por la actualización o cambio de los pesos sinápticos que caracterizan a las conexiones. Los pesos son adaptados de acuerdo a la información extraída de los patrones de entrenamiento nuevos que se van presentando. Normalmente, los pesos óptimos se obtienen optimizando (minimizando o maximizando) alguna "función de energía". Por ejemplo, un criterio popular en el entrenamiento supervisado es minimizar el least-square-error (error cuadrático medio) entre el valor del maestro y el valor de salida actual.
Las aplicaciones del mundo real deben acometer dos tipos diferentes de requisitos en el procesado. En un caso, se requiere la prueba en tiempo real pero el entrenamiento ha de realizarse "fuera de linea". En otras ocasiones, se requieren las dos procesos, el de prueba y el de entrenamiento en tiempo real. Estos dos requisitos implican velocidades de proceso muy diferentes, que afectan a los algoritmos y hardware usados.

Atendiendo al tipo de entrenamiento, una posible taxonomía de las redes neuronales es:

 
Redes Neuronales
Fijo
No supervisado
Supervisado
Red de Hamming
Mapa de características
Basadas en decisión
Red de Hopfield
Aprendizaje competitivo
Perceptrón


ADALINE (LMS)


Perceptrón Multicapa


Modelos Temporales Dinámicos


Modelos Ocultos de Markov

Redes Neuronales Supervisadas y no Supervisadas

Las redes neuronales se clasifican comúnmente en términos de sus correspondientes algoritmos o métodos de entrenamiento: redes de pesos fijos, redes no supervisadas, y redes de entrenamiento supervisado. Para las redes de pesos fijos no existe ningún tipo de entrenamiento.

Reglas de entrenamiento Supervisado

Las redes de entrenamiento supervisado han sido los modelos de redes más desarrolladas desde inicios de estos diseños. Los datos para el entrenamiento están constituidos por varios pares de patrones de entrenamiento de entrada y de salida. El hecho de conocer la salida implica que el entrenamiento se beneficia la supervisión de un maestro. Dado un nuevo patrón de entrenamiento, por ejemplo, (m+1)-ésimo, los pesos serán adaptados de la siguiente forma:
Se puede ver un diagrama esquemático de un sistema de entrenamiento supervisado en la siguiente figura:

Reglas de entrenamiento No Supervisado

Para los modelos de entrenamiento No Supervisado, el conjunto de datos de entrenamiento consiste sólo en los patrones de entrada. Por lo tanto, la red es entrenada sin el beneficio de un maestro. La red aprende a adaptarse basada en las experiencias recogidas de los patrones de entrenamiento anteriores. Este es un esquema típico de un sistema "No Supervisado":
Ejemplos típicos son La Regla de Aprendizaje de Hebb, y la Regla de Aprendizaje Competitiva. Un ejemplo del primero consiste en reforzar el peso que conecta dos nodos que se excitan simultáneamente.

Como ejemplo de aprendizaje competitivo, si un patrón nuevo se determina que pertenece a una clase reconocida previamente, entonces la inclusión de este nuevo patrón a esta clase matizará la representación de la misma. Si el patrón de la entrada se determinó que no pertenece a ninguna de las clases reconocidas anteriormente, entonces la estructura y los pesos de la NN serán ajustados para reconocer la nueva clase.

Estructuras de las Redes Neuronales Artificiales

Los aspectos más característicos de las estructuras son la estructura de conexión, el tamaño de la red y la elección entre ACON y OCON.

Estructuras de conexión de atrás hacia delante

Una red neuronal se determina por la neurona y la matriz de pesos . El comportamiento de la red depende en gran medida del comportamiento de la matriz de pesos. Hay tres tipos de capas de neuronas: la de entrada, las ocultas y la de salida. Entre dos capas de neuronas existe una red de pesos de conexión, que puede ser de los siguientes tipos: Hacia delante, hacia atrás, lateral y de retardo, tal como puede verse en la siguiente figura:

  1. Conexiones hacia delante: para todos los modelos neuronales, los datos de las neuronas de una capa inferior son propagados hacia las neuronas de la capa superior por medio de las redes de conexiones hacia adelante.
  2. Conexiones hacia atrás: estas conexiones llevan los datos de las neuronas de una capa superior a otras de la capa inferior.
  3. Conexiones laterales. Un ejemplo típico de este tipo es el circuito "el ganador toma todo" (winner-takes-all), que cumple un papel importante en la elección del ganador.
  4. Conexiones con retardo: los elementos de retardo se incorporan en las conexiones para implementar modelos dinámicos y temporales, es decir, modelos que precisan de memoria.
Las conexiones sinópticas pueden ser total o parcialmente interconectadas, como muestra la figura. También es posible que las redes sean de una capa con el modelo de pesos hacia atrás o bien el modelo multicapa hacia adelante. Es posible así mismo, el conectar varias redes de una sola capa para dar lugar a redes más grandes.

Tamaño de las Redes Neuronales

En una red multicapa de propagación hacia delante, puede haber una o más capas ocultas entre las capas de entrada y salida. El tamaño de las redes depende del numero de capas y del número de neuronas ocultas por capa.
  • Número de capas: en una red multicapa, hay una o más capas de neuronas ocultas entre la entrada y la salida. El número de capas se cuenta a menudo a partir del número de capas de pesos (en vez de las capas de neuronas).
  • Número de unidades ocultas: El número de unidades ocultas está directamente relacionado con las capacidades de la red. Para que el comportamiento de la red sea correcto (esto es, generalización), se tiene que determinar apropiadamente el número de neuronas de la capa oculta.

AproximacionesACON frente a OCON

Abordamos el problema de cuantas redes son necesarias para la clasificación en multicategorias. Típicamente, cada nodo de salida se usa para representar una clase. Por ejemplo, en un problema de reconocimiento alfanumérico, hay 36 clases; así que en total habrá 36 nodos de salida. Dado un patrón de entrada en la fase de prueba, el ganador (i.e., la clase que gana) es normalmente el nodo que tiene el valor más alto a la salida.

Dos posibles tipos de arquitectura son "All-Class-in-One-Network" (ACON), esto es, todas las clases en una red y "One-Class-in-One-Network" (OCON), esto es, una red para cada clase. En la aproximación ACON, todas las clases son reconocidas dentro de una única súper red. En algunos casos es ventajoso descomponer esta macro red en varias subredes mas pequeñas. Por ejemplo, una red de 36 salidas se puede descomponer en 12 subredes, cada una responsable de tres salidas. La descomposición mas extrema es la llamada OCON, donde una subred se dedica para una sola clase. Aunque el número de subredes en la estructura OCON es relativamente largo, cada subred individual tiene un tamaño menor que la red ACON. Esto se puede explicar con las siguientes figuras,

la red entera

se divide en

varias subredes.


Aplicaciones

Con el fin de llegar al entendimiento global de ANNs, adoptamos la siguiente perspectiva, llamada top-down que empieza por la aplicación se pasa al algoritmo y de aquí a la arquitectura:

Esta aproximación a las ANNs está motivada por la aplicación, basada en la teoría y orientada hacia la implementación. Las principales aplicaciones son para el procesado de señal y el reconocimiento de patrones. La primera etapa algorítmica representa una combinación de la teoría matemática y la fundamentación heurística por los modelos neuronales. El fin último es la construcción de neurocomputadores digitales, con la ayuda de las tecnologías VLSI y el procesado adaptativo, digital y paralelo.

Aplicaciones

Desde el punto de vista de la aplicaciones, la ventaja de la ANNs reside en el procesado paralelo, adaptativo y no lineal. Las ANNs han encontrado muchas aplicaciones con éxito en la visión artificial, en el procesado de señales e imágenes, reconocimiento del habla y de caracteres, sistemas expertos, análisis de imágenes médicas, control remoto, control de robots, inspección industrial y exploración científica. El dominio de aplicación de las ANNs se puede clasificar de la siguiente forma: asociación y clasificación, regeneración de patrones, regresión y generalización, y optimización.

Asociación y Clasificación

En esta aplicación, los patrones de entrada estáticos o señales temporales deben ser clasificadas o reconocidas. Idealmente, un clasificador debería ser entrenado para que cuando se le presente una versión distorsionada ligeramente del patrón, pueda ser reconocida correctamente sin problemas. De la misma forma, la red debería presentar cierta inmunidad contra el ruido, esto es, debería ser capaz de recuperar una señal "limpia" de ambientes o canales ruidosos. Esto es fundamental en las aplicaciones holográficas, asociativas o regenerativas.

  • Asociación: de especial interés son las dos clases de asociación: autoasociación y heteroasociación. El problema de la autoasociación es recuperar un patrón enteramente, dada una información parcial del patrón deseado. La heteroasociación es recuperar un conjunto de patrones B, dado un patrón de ese conjunto. Los pesos en las redes asociativas son a menudo predeterminados basados en la regla de Hebb. Normalmente, la auto correlación del conjunto de patrones almacenado determina los pesos en las redes auto asociativas. Por otro lado, la correlación cruzada de muchas parejas de patrones se usa para determinar los pesos de la red de Heteroasociación.
  • Clasificación no Supervisada: para esta aplicación, los pesos sinápticos de la red son entrenados por la regla de aprendizaje no supervisado, esto es, la red adapta los pesos y verifica el resultado basándose únicamente en los patrones de entrada.
  • Clasificación Supervisada: esta clasificación adopta algunas formas del criterio de interpolación o aproximación. En muchas aplicaciones de clasificación, por ejemplo, reconocimiento de voz, los datos de entrenamiento consisten de pares de patrones de entrada y salida. En este caso, es conveniente adoptar las redes Supervisadas, como las bien conocidas y estudiadas redes de retropopagación. Este tipo de redes son apropiadas para las aplicaciones que tienen una gran cantidad de clases con límites de separación complejos.
Completar los patrones

En muchos problemas de clasificación, una cuestión a solucionar es la recuperación la información, esto es, recuperar el patrón original dada sola una información parcial. Hay dos clases de problemas: temporales y estáticos. El uso apropiado de la información con textual es la llave para tener éxito en el reconocimiento.

Generalización

La Generalización. Se puede extender a un problema de interpolación. El sistema es entrenado por un gran conjunto de muestras de entrenamiento basados en un procedimiento de aprendizaje supervisado. Una red se considera que esta entrenada con éxito si puede aproximar los valores de los patrones de entrenamiento y puede dar interpolaciones "suaves" para el espacio de datos no entrenado. El objetivo de la Generalización es dar una respuesta correcta a la salida para un estímulo de entrada que no ha sido entrenado con anterioridad. El sistema debe inducir la característica saliente del estímulo a la entrada y detectar la regularidad. Tal habilidad para el descubrimiento de esa regularidad es crítica en muchas aplicaciones. Esto hace que el sistema funcione eficazmente en todo el espacio, incluso ha sido entrenado por un conjunto limitado de ejemplos. Observe la siguiente figura:

Optimización

Las ANNs son una herramientas interesantes para la optimización de aplicaciones, que normalmente implican la búsqueda del mínimo absoluto de una función de energía:

Una vez que se define la función de energía, entonces la determinación de los pesos sinápticos se hace rápidamente. Para algunas aplicaciones, la función de energía es fácilmente deducible. En otras, sin embargo, esta función de energía se obtiene de ciertos criterios de coste y limitaciones especiales. El mayor problema asociado al problema de optimización es la alta posibilidad de converger hacia un mínimo local, en vez de hacia el mínimo absoluto. Para combatir este problema se utilizan algunas propuestas estadísticas, como por ejemplo procedimientos estocásticos.


2 comentarios:

Unknown dijo...

Que tal, apenas estoy empezando con el análisis de estos estudios en mi carrera. Estudio Física en la facultad de ciencias de la UNAM.
Me ha gustado la información de su blog, precisa, no muy extensa y entendible. Pero me parecería ideal el ejemplificar ciertos casos particularmente complicados. Es decir, se entiende que es, por ejemplo: las redes neuronales supervisadas y no supervisadas en el texto. Pero no se imagina fácilmente un caso para cualquiera de los dos... ¿Sería factible colocar alguno, preferiblemente famoso?
Y bueno si no es así alguna referencia o fuente que sea su base también sería algo excelente. Gracias.

Anónimo dijo...

Hoy asistí a una conferencia en Barranquilla sobre este gran tema de Inteligencia Artficial (IA), pero cuando tocaron el tema de la conciencia, se presentó el debate, hasta donde estas máquinas podrán tener conciencia como los seres humanos, podrán tener emociones, como podrán identificar si un ser humano está mintiendo.Un ejemplo de ello fue la película Yo Robot y El Hombre Bicentenario, muy profundo los análisis que hicimos en el debate. Haré posteriormente mis aportes una vez organice las ideas. Gustavo Celín V. B/quilla. gcelinv@hotmail.com