You are on page 1of 14
ia A Facultad: Ingenieria Escuela: Computacién Asignatura: Sistemas Expertos @ Inteligencia Artificial Sistemas Experts e Inteliger Tema: Red Neuronal Hopfield. Reconocimiento de Patrone Objetivos Especificos '*» Comprender la importancia de la red neuronal Hopfield, usada para mejorar los pesos de entrada de la red, ‘* Implementar la red neuronal Hopfield en rosoft Visual C# Materiales y Equipo + Guta Numero 10. ‘+ Computadora con programa Microsoft Visual C#. Introduccién Teérica Una red de Hopfield es una forma de red neuronal artificial recurrente inventada por John Hopfield La red de Hopfield es una de las redes unicapas de neuronas mas importantes cuyas salidas son nlimeros binarios; y ha influido en el desarrollo de multitud de redes posteriores. Cada neurona de la red se encuentra conectada con todas las demas, pero no consigo mismo. Es una red autoasociativa no lineal que fue desarrollada por Hopfield en 1982, baséndose en los modelos de redes de McCulloch y Pitts y los similes de los campos magnéticos con spin de Amit, Gutfreund, & Sompolinsky. La Red de Hopfield es una red recurrente, es decir, existe realimentacién entre las neuronas. De esta forma, al introducir un patrén de entrada, la informacién se propaga hacia adelante y hacia atrés, produciéndose una dinamica. En algun momento, la evolucién se detendré en algun estado estable. En otros casos, es posible que la red no se detenga nunca. Las redes recurrentes deben cumplir tres objetivos: Guia No. 10 a, Dado cualquier estado inicial, deben converger siempre a un estado estable b. El dominio de atraccién de cada estado estable debe estar perfectamente delimitado y cumplir algin criterio de métrica (por ejemplo, que el estado final sea el mas cercano al inicial) ©. Debe poder tener cualquier numero de estados estables. Las redes de Hopfield se usan como sistemas de memoria asociativa con unidades binarias, Estan disefiadas para converger a un minimo local, pero la convergencia a uno de los patrones almacenados no esta garantizada 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 seria una capa de sensores y la segunda capa serd la capa donde se realiza el procesamiento. En la versién bicapa la manera de interconexionar ambas capas es unir la primera capa a la segunda linealmente, esto es cada neurona con su respectiva, y después unir todas las neuronas con todas en la misma capa Las Redes de Hopfield se construyen de neuronas artificiales que fueron realizadas en los afios 1980 por John Hopfield, quien estudié modelos auto-asociativos que presentaban algunas similitudes con los perceptrones, pero inclula también grandes diferencias. Estas neuronas artificiales tienen N entradas. Cada entrada posee un peso asociado W, También tienen una salida. El estado de la salida se mantiene, hasta que la neurona se actualiza. Una actualizacién de la neurona implica las siguientes operaciones: * El valor de cada entrada, X, es determinada y la suma ponderada de todas las entradas, se calcula Wi X * Elestado de la salida de la neurona se establece en +1 si la suma ponderada de entrada es mayor 0 igual a 0. Se establece en -1 sila suma ponderada de entrada es menor que 0 = Una neurona conserva su estado de salida hasta que se actualiza de nuevo. Escribiendo las operaciones como una férmula: 11s Sonn zo -1+ Sinai <0 ° Sistemas Expertos e Inteligencia Artificial. Guia No. 10 (3) El peso de la conexién de una neurona i a otra neurona j esta dada por un niimero Wy, La coleccién de todos estos niimeros esta representado por la matriz de ponderacién W, cuyos componentes son W arista, axén wie My e e i i neurona neurona Ahora bien, dada la matriz de peso y la regla de actualizacién para las neuronas de la dinémica de la red se define si le decimos en qué orden actualizamos las neurones. Hay dos formas de realizar esta actualizacion: > Asincrono: uno recoge una neurona, calcula la suma ponderada de entrada y actualizaciones de forma inmediata. Esto puede hacerse en un orden fijo, 0 las neuronas pueden ser elegidas al azar, esto se denomina actualizacién al azar asincrono. ® Sincrono: las sumas de entrada ponderados de todas las neuronas se calculan sin actualizar las neuronas. Luego, todas las neuronas se establecen en su nuevo valor, de acuerdo con el valor de su suma ponderada de entrada, Las unidades procesadoras de la red Hopfield estén completamente interconectadas, cada unidad esta conectada con todas las demds unidades. Esta topologia convierte a la red Hopfield en una red recursiva ya que la salida de cada unidad est4 realimentada con las entradas de las. demas unidades. En la figura siguiente se muestra un diagrama de las unidades procesadoras de una red Hopfield. so * 5 6 Una caracteristica de las redes Hopfield es la doble conexién por cada pareja de unidades procesadoras, como se aprecia en la figura anterior. Ademés los pesos asignados a ambas conexiones tienen el mismo valor. La figura siguiente muestra un método alternativo de representacién de la estructura y conexiones de la red Hopfield, especificamente una red recursiva de una capa. Las caracteristicas de este tipo de redes son las siguientes: v Esuna estructura en donde la matriz de pesos es cuadrada y simétrica. Es decir los pesos de un patrén de entrada (PE) (nodo) a otro tiene el mismo valor en ambas direcciones. Y Cada nodo esté conectado con todos los demas, incluso con si mismo pero el valor de dicha conexién es 0, significando que el nodo no se realimenta a si mismo. v La funcién de transferencia de cada nodo, que normalmente se suele utilizar, es un limitador de fuerza y los nodos calculan la suma de los pesos por las entradas menos un cierto umbral, pasando a través de la funcion de transferencia, produciendo asi su estado de salida. Y Las entradas son 2 estados: binarias (0,1) 0 bipolar (-1,1). Por lo tanto, la funcién de activacién de cada neurona de la red es de tipo escalon: Funcionamiento. Se trata de una red autoasociativa. Por tanto, informaciones diferentes (patrones) pueden ser almacenadas en la red, como si de una memoria se tratase, durante la etapa de aprendizaje. Posteriormente, cuando se presenta una entrada a la red, esta evoluciona hasta generar una Sistemas Expertos e Inteligencia Artificial. Guia No. 10 (5) salida que coincidiré con la que corresponde a esa entrada, o bien la mas parecida si la entrada esté distorsionada o incompleta La informacién que recibe la red debe haber sido previamente codificada y representada en forma de vector (como una configuracién binaria 0 como un conjunto de valores reales dependiendo de si la red es discreta 0 continua) con tantas componentes como neuronas (N) tenga la red. Cada neurone recibe un elemento del vector. La utllizacién de una red de Hopfield implica los siguientes pasos: 4 Un patron se introduce en la red mediante el establecimiento de todos los nodos a un valor especifico, o estableciendo sélo una parte de los nodos. 4 La red se somete a un numero de iteraciones utilizando actualizacion asincrona o sincrona. Esto se detiene después de un tiempo, Las neuronas de la red, se len para ver qué patrén se encuentra en la red 4 La idea detrés de la red de Hopfield es que los patrones se almacenan en la matriz de peso. ' Laentrada debe contener parte de estos patrones. Luego, la dindmica de la red recupera los patrones almacenados en la matriz de peso. Esto se denomina memoria de contenido direccionable (CAM). | Los patrones que se almacenan en la red se dividen en dos partes: sefial y asociaci6n. Al entrar la sefial en la red, todo el patrén, que se almacena en la matriz de peso, se recupera. De esta manera la red restaura la asociacién que pertenece a una sefial dada, La operacién de la red es totalmente diferente al sistema del Perceptrén, En el modelo de Hopfield, la primera salida es tomada como entrada en el ciclo siguiente, produciendo una nueva salida Por tanto el aprendizaje es también diferente; en este sistema no se trata de ajustar pesos ya que éstos se mantienen constantes desde el principio, se trata de encontrar dichos pesos, en funcién del problema EI mecanismo de aprendizaje utilizado es de tipo off line, por lo que existe una etapa de aprendizaje y otra de funcionamiento de la red, También utiliza un aprendizaje no supervisado de tipo hebbiano, de tal forma que el peso de una conexién entre una neurona i y otra j se obtiene mediante el producto de los componentes i-ésimo y j-ésimo del vector que representa la Informacién o patron que debe almacenar. Guia No. 10 Utiizando una notacién matricial, para representar los pesos de la red se puede utilizar una matriz de dimension NxN (recordemos que N es el numero de neuronas de la red y por tanto de componentes del vector de entrada). Esta matriz es simétrica (Wj = Wj) y con la diagonal con valores nulos (Wii }) al no haber conexiones autorecurrentes. También tenemos M entradas que la red debe aprender, expresadas igualmente en forma matricial, Es, Ez,..., Ex, Utilizando esta notacién, el aprendizaje consistiria en la creacién de la matriz de pesos W a partir de los M vectores de entrada que se ensefian a la red, De tal manera que el conjunto total del sistema puede venir representado por una funcién denominada Funcién de Energia de la siguiente manera El entrenamiento de una red de Hopfield consiste en reducir la energia de los estados que la red debe “recordar”, Esto convierte a la red en un sistema de memoria direccionable, es decir, la red “recordara” un estado si se le da solo parte de dicho estado. Esto la hace tl para recuperar una entrada distorsionada usando un estado de la red obtenido durante el entrenamiento y que es més similar al estado obtenido con la entrada actual, Esto se llama memoria asociativa, ya que recupera la memoria sobre la base de la similitud. Ejecutar un patrén en la red de Hopfield consiste en enviar un patrén en la red y actualizar las neuronas repetidamente hasta que se estabilicen los estados de las neuronas a un patrén memorizado. Con pasos seria asi 1. Se establece el patrén de entrada en la capa de entrada 2. Se actualizan las neuronas de la capa de procesamiento. 3. Si han cambiado el estado de la red 0 hemos realizado ya el numero maximo de iteraciones, paramos. 4. Sino volvemos al paso 2. Sistemas Expertos e Inteligencia Artificial. Guia No. 10 (Zu) Por ejemplo, si entrenamos una red Hopfield con cinco unidades para que el estado (1, 0, 1, 0, 1) sea un minimo de energia, y le damos a la red el estado (1, 0, 0, 0, 1) esta convergera a (1, 0, 1, 0,4) Asi, la red estaré adecuadamente capacitada cuando la energia de los estados que la red debe recordar son minimos locales. Algoritmo de Entrenamiento. Calcule los valores de los pesos que conectan a los nodos, utilizando la siguiente formula: fy sty 114) sii=j Donde: ty es el peso que va de la neurona i ala neurona j, y es el valor del i-ésimo elemento de la s- ésima clase m es el numero de clases que se desean aprender. En notacién matricial: 2 Esta formula se conoce como el producto externo de un vector renglén consigo mismo. Algoritmo de evaluacién de la red Hopfield. 1. Inicialice la red con un patron de entrada: Vi(O)= Xi OSiSn-1 Donde n es el numero de nodos en la red 2. Itere hasta converger siguiendo la siguiente formula: u(t +1) (Ss) O0 F(X) = -lsix<0 U,(t)si x = 0 (sin cambio), Cuando la red converge, su salida representa al patron que més se parece al patrén de entrada dado. Ventajas de las Redes de Hopfield. Y Practicamente no existe tiempo de entrenamiento, ya que este no es un proceso adaptativo, sino simplemente el calculo de una matriz (T). Y Las redes de Hopfield son bastante tolerantes al ruido, cuando funcionan como memorias asociativas, Desventajas de las Redes de Hopfield. 4 Numero limitado de entradas en la etapa de aprendizaje: Si se almacena demasiada informacion, durante su funcionamiento la red puede converger a valores de salida diferentes de los aprendidos, con lo que la tarea de asociacién entra la informacién presentada y alguna de las almacenadas se realiza incorrectamente, ' El numero de patrones a almacenar (0 aprender) es bastante limitado comparado con el numero de nodos en la red. Segin Hopfield, el numero de clases a aprender no puede ser mayor del 15% del nimero de nodos en la red. 4 La red se vuelve inestable si los patrones se parecen entre si. Aplicaciones. En cuanto a las aplicaciones més conocidas de este modelo destacan las relacionadas con el reconocimiento de patrones (de imagenes y de voz), el control de motores y sobre todo la resolucién de problemas de optimizacién, Para problemas de optimizacién se ha aplicado para la resolucién de manipulacién de grafos, por ejemplo el problema del viajante vendedor; resolucién de ecuaciones, procesado de sefiales (conversores analégico-digitales) y de imagenes, etc. Sistemas Expertos e Inteligencia Artificial. Guia No. 10 (9) Procedimiento Ejemplo 4. Se desea entrenar una Red de Hopfield bastante sencilla, que sea capaz de reconocer informacién (patrones) de imagenes formadas por cuatro pixeles, en una matriz de 2x2, En la figura siguiente se muestran ejemplos de patrones que podrian utilizarse como entradas a lared 12 12 12 12 34 34 34 34 Patron 4 Patron 2 Patron 3 Patron Los pixeles negros podrian representarse mediante el valor binario 1, y los blancos con el valor binario -1. En este caso, las informaciones serian dos vectores de cuatro elementos (N = 4) que contienen los valores de los pixeles. La red, por tanto, tendria 4 neuronas para que cada una reciba el valor de un pixel Aplicaremos el algoritmo detallado anteriormente para los patrones de entrada 1 y 2. Los valores de los vectores de entrada que representan cada patron son: Etapa de Aprendizaje: El aprendizaje de estas dos informaciones consiste en la obtencidn de los pesos de la red (matriz W). Utilizaremos la formula T YX xT x, ty =0 7 Para la entrada E,, la salida W; es. 1 1000] for-1-1 1 0100} |j1o-1-1 a ooo} |-1-101 1 ooo |-1-110 TE: .E:- No. 10 Para la entrada Ez, la salida W2 es. =I 1000) fo1-1-r -1 0100} j10-1-1 TE: Ee-1= -1 11 a]- =| 1 0010) |-1-101 1 ooo} [1-110 ‘Sumando W: y W2 se obtiene la matriz de pesos definitiva, W: 0 2-2-2 ati e _|2 0-2 -2 -2 -2.2 -0 Una vez finalizada la fase de aprendizaje (entrenamiento), la red podria ser utilizada como memoria asociativa de acceso por contenido, de tal forma, que al presentarle una informacion més parecida a la almacenada durante el aprendizaje. Fase de Evaluacion: Por ejemplo, ser podria comprobar lo que ocurre con el patrén de entrada siguiente: 12 a 34 El vector es E= (1, -1,-1, ,1] Utilizaremos las formulas indicadas en el paso 2 del algoritmo de evaluacién de la red Hopfield (mostrado en la pagina 7 de esta guia). Inicialmente, la salida corresponde a la propia informacion de entrada, Entonces se produce la primera iteracién, obteniéndose las siguientes nuevas entradas en cada neurona: EW =[1 - Si suponemos una funcién de activacién de cada neurona de tipo escalén centrada en el origen (desplazamiento 6 = 0), la salida de la red después de esta primera iteracién sera: S=(11.-1,-1] Sistemas Expertos e Inteligencia Artificial. Guia No. 10 [L1.) Repitiendo el proceso, tomando como entrada la salida anterior, S, tenemos: EW=(11 Aplicando igualmente la funcién de activacién a este nuevo resultado (segunda iteracién de EW), la salida obtenide es: Observemos que se repite la salida de la primera iteracién, entonces se ha llegado a una situacién de estabilidad, en la que la red ha generado como salida el patron més parecido al presentado como entrada: 12 12 34 34 Entrada Salida generada En este ejemplo, para la descripcién del aprendizaje se ha utilizado el modelo discreto, la forma de calcular los pesos para el modelo continuo es similar, si se utiliza la red como memoria asociativa Si la red se utiliza para resolver problemas de optimizacién, el cdlculo de los pesos dependera del problema concreto. Ademés, en el modelo continuo se suele considerar la existencia de conexiones autoconcurrentes, con lo que no siempre Wi = 0. Analisis de resultados ‘Tomando como referencia la informacion presentada en el ejemplo No.1 y los algoritmos para la red de Hopfield, implementar un simulador (en entorno de Windows Forms) para una red de Hopfield, que sea capaz de reconocer patrones como los mostrados en el ejemplo, es decir, utilizar una matriz de 2x2 para la representacién de los patrones. 12) Sistemas Expertose Intel Considerar la siguiente funcionalidad para el simulador: “© Permitir que el usuario proporcione los patrones de entrada, necesarios para el entrenamiento de la red, “+ El usuario debe también proporcionar el patrén de entrada que se utilizaré para evaluar la red, Disefiar la interfaz, considerando que debe mostrarse todos los pasos del entrenamiento realizado para la red. Es decir, que debe indicarse el entrenamiento de cada patrén utilizado. “+ En la opcién de evaluacién de la red, debe mostrarse todos los pasos realizados para encontrar la salida generada por la red Seria ideal que las entradas y salidas se proporcionen a través de una matriz gréfica. Se muestra Una imagen de referencia de cémo podria disefiarse la interfaz: Agregar patrones aa red S 6n Complementaria Para la siguiente semana: Aplicar las modificaciones necesarias para agregar mayor funcionalidad al programa simulador de la Red de Hopfield. Deben implementarse las siguientes opciones: a. Permiltir que el usuario indique las dimensiones del patrén a identific dimensiones de la matriz de representacién (cantidad de pixeles), , es decir b. Permitir que el usuario proporcione los patrones de entrada, necesarios para el entrenamiento de la red, Sistemas Expertos e Inteligencia Artificial. Guia No. 10 | 13 . Elusuario debe también proporcionar el patrén de entrada que se utilizar para evaluar la red. d. Disefiar la interfaz, considerando que debe mostrarse todos los pasos del entrenamiento realizado para la red. Es decir, que debe indicarse el entrenamiento de cada patrén utilizado. e. En la opcién de evaluacién de la red, debe mostrarse todos los pasos realizados para encontrar la salida generada por la red Para probar la opcién “e", se podria considerar como ejercicio, poder entrenar la red neuronal con patrones que representen letras del alfabeto, por ejemplo, con los siguientes cuatro patrones de entrada: HELD Y para la fase de evaluaciin de la red, poder probar patrones parecidos o con variantes con relacién a estas entradas. @ Sistemas Expertos ¢ Inteligencia Artif Guia No. 10 cuia 9: Red Neuronal Hopfield. 3 Hoja de cote: 10 Reconocimiento de Patrones. Alumno: Maquina Not EVALUACION * 14 5-7 8-10 Nota CONOCIMIENTO | Del 20 | Conccimiento Conocimiento | Conocimiento a1 308 |deficiente —y explicacion completo y de les incompleta de | explicacién fundanentos | los clara de los tetzic fundanentes | fundanentos tedricos tedrices APLICACION Del 408 DEL al 608 ConocaMsENz0 acriTup pe1 188 [No tiene | actitua Tene actitud al 30% | actitua propositiva y | proactiva y proactiva. | con Sus propuestas prcruestas no | son concretas. aplicables al contenido de ta guia. oraz | 1008

You might also like