viernes, 12 de junio de 2009

Red neuronal de Hopfield

Las redes neuronales están basadas en el funcionamiento de la neurona biológica residente en el sistema nervioso central, sus orígenes se remontan a los primeros años de la informática, de manera contemporánea a la teoría de la computación de Turing. Una red neuronal artificial es un modelo computacional inspirado en redes neuronales biológicas que puede ser considerada como un sistema de procesamiento de información con características como aprendizaje a través de ejemplos, adaptabilidad, robustez, capacidad de generalización y tolerancia a fallos. La red neuronal artificial puede ser definida como una estructura distribuida, de procesamiento paralelo, formada de neuronas artificiales, llamadas también elementos de procesamiento, interconectados por un gran numero de conexiones, las cuales son usadas para almacenar conocimiento.

Jhon Hopfield, gracias al trabajo sobre neurofisiología en invertebrados, desarrolló un tipo de red neuronal autoasociativa. Estas redes son bastante parecidas al modelo del Perceptrón, pero presentan una característica adicional: las neuronas en la capa media, cuentan con conexiones de salida hacia otras neuronas de la capa media. Además, cada neurona de la capa de entradas está conectada con una neurona de la capa media, y cada neurona de la capa media emite una sola conexión hacia la capa de salidas. El hecho de que todas las neuronas de la capa media se encuentren interconectadas, hace que en esta capa se dé una retroalimentación entre sus neuronas, de forma que al activarse una neurona de esta capa hace que las otras neuronas cambien su estado de activación, que a la vez harán cambiar el suyo propio. Esta nueva característica de las redes de Hopfield hace que funcionen de manera diferente al Perceptrón. Así, en el Perceptrón todas las neuronas de una misma capa transmiten el patrón de activación hacia las neuronas de la siguiente capa. El patrón de activación es un vector formado por los valores de las neuronas de una capa. Mientras que en una red de Hopfield las neuronas de la capa de entradas transmiten inmediatamente su patrón de activación hacia las neuronas de la capa media, pero las neuronas de la capa media no transmitirán ningún patrón de activación hasta que hayan llegado a un estado de equilibrio, en el cual el patrón de activación de la capa media se mantiene estable.

La red de Hopfield es una de las redes neuronales artificiales más importantes y ha influido en el desarrollo de multitud de redes posteriores. Es una red autoasociativa no lineal que fue desarrollada por Hopfield el año 1982, basándose en los modelos de redes de McCulloch y Pitts y los símiles de los campos magnéticos con spin de Amit, Gutfreund y Sompolinsky. La red de Hopfield es una red monocapa, esto es, de una sola capa. Aunque también se puede mostrar como una red bicapa de dos capas, la primera capa es una capa de sensores y la segunda capa es la capa donde se realiza el procesamiento. En la versión bicapa la manera de interconectar ambas capas es unir la primera capa a la segunda linealmente, esto es cada neurona con su respectiva capa, y después unir todas las neuronas con todas en la misma capa. La red de Hopfield toma valores bipolares esto es: menos uno y uno, sin embargo se pueden usar también valores binarios como: cero y uno.

La red neuronal de Hopfield puede trabajar con varias neuronas y permite conexiones recurrentes pero siempre dentro de la misma capa. Es un modelo de red con el número suficiente de simplificaciones como para extraer analíticamente información sobre las características relevantes del sistema, conservando las ideas fundamentales de las redes construidas en el pasado y presentando una serie de funciones básicas de los sistemas neuronales biológicos. Las redes de Hopfield son auto-asociadores en las cuales los valores de los nodos son actualizados de manera iterativa basados en un principio de cómputo local, que consiste en que el nuevo estado de cada nodo depende únicamente de sus entradas ponderadas en un tiempo predeterminado.

Dentro de los paradigmas de aprendizaje, la red neuronal de Hopfield presenta un tipo de aprendizaje no supervisado, fuera de línea y de tipo Hebbiano, produciéndose como consecuencia las siguientes dos etapas: la etapa de aprendizaje y la etapa de funcionamiento de la red. Este tipo de aprendizaje asegura la estabilidad de la red, es decir la convergencia hacia una respuesta estable cuando se presenta una información de entrada adecuada. Se explora la estructura subyacente o las correlaciones entre los patrones de datos y se organizan estos patrones en categorías a partir de las correlaciones encontradas. Las investigaciones sobre la estabilidad de esta red se basan en el establecimiento de una función llamada función de energía de la red que representa los posibles estados de la red. El objetivo de utilizar memoria asociativa es conseguir que los patrones a ser almacenados se sitúen en los mínimos de la función de energía para representar dichos estados. El peso de una conexión entre una neurona i-ésima y otra j-ésima se obtiene mediante el producto de los componentes i-ésimo y j-ésimo del vector que representa la información o patrón que debe almacenar.

La arquitectura de una red neuronal de Hopfield, consiste en una red monocapa con varias neuronas cuyos valores de salida son binarios o bipolares. En la versión común ó discreta del modelo de red neuronal de Hopfield, las funciones de activación de las neuronas son del tipo escalón, se trata, por tanto, de una red con entradas y salidas binarias. En la versión analógica ó continua del modelo de red neuronal de Hopfield se utilizan neuronas con funciones de activación del tipo sigmoidal, se trata, por tanto, de una red con entradas y salidas analógicas.

La red de Hopfield es una red auto asociativa, así, varios patrones diferentes pueden ser almacenados en la red como si se tratase de una memoria, durante la etapa de aprendizaje. Posteriormente, si se presenta a la entrada alguna de la información almacenada sobre los patrones, la red evoluciona hasta estabilizarse, ofreciendo entonces en la salida la información almacenada que coincide con la presentada en la entrada. Si por el contrario, la información de entrada no coincide con ninguna de las almacenadas, por estar distorsionada o incompleta, la red evoluciona generando como salida la más parecida. La información que recibe la red debe haber sido previamente codificada y representada en forma de vector, como una configuración binaria o bipolar si la red es discreta, y como un conjunto de valores reales si la red es continua, con tantas componentes como neuronas tenga la red. Esa información es aplicada directamente a la única capa de que consta la red, siendo recibidas por las neuronas de dicha capa, cada neurona recibe una parte de la información, un elemento del vector que representa dicha información. Si se considera el caso de una neurona concreta de la red, esta neurona recibiría como entrada las salidas de cada una de las otras neuronas, valores que inicialmente coincidirán con los de entrada, multiplicadas por los pesos de las conexiones correspondientes. La suma de todos estos valores constituirá el valor de entrada neta de la neurona, al que le será aplicada la función de transferencia, obteniéndose el valor de salida correspondiente: un valor binario o bipolar si la red es discreta, y un número real en el rango bipolar o binario, si la red es continua. La descripción anterior corresponde a un primer paso en el procesamiento realizado por la red. Este proceso continúa hasta que las salidas de las neuronas se estabilizan, lo cual ocurre cuando las neuronas dejan de cambiar de valor. Entonces, el conjunto de los valores de salida de todas las neuronas constituye la información de salida que ha generado la red, que se corresponderá con alguno de los patrones que durante la etapa de aprendizaje fueron almacenados en la misma.

La red neuronal de Hopfield es una de las más utilizadas debido principalmente a la facilidad de implementación física utilizando tecnología de integración de gran escala. Las aplicaciones más conocidas son: (1) Reconocimiento de imágenes y voz, (2) Control de motores y (3) Resolución de problemas de optimización complejos. La red neuronal de Hopfield puede reconstruir versiones distorsionadas o parciales de imágenes almacenadas en la fase de aprendizaje. La limitación de la red es la imposibilidad de recuperar imágenes rotadas o trasladadas. La red neuronal de Hopfield resuelve también problemas de optimización complejos, en los cuales con algoritmos clásicos se observa que el tiempo de resolución es de crecimiento ilimitado. Para resolver problemas de este tipo con una red de Hopfield primero se debe representar el objetivo del problema mediante una expresión matemática que haga referencia a una función de costo. Luego se compara la función de costo con la función de energía de la red, determinándose los valores de los pesos y umbrales para que ambas funciones sean equivalentes.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Marzo 23 de 2009

No hay comentarios: