Download Objetivo Introducción
Document related concepts
Transcript
Inteligencia Artificial, Guía 8 1 Facultad : Ingeniería Escuela : Computación Asignatura: Inteligencia Artificial Tema: “RED HOPFIELD”. Objetivo Implementar la red neuronal conocida como programación C#. Hopfield en el lenguaje de Conocerá el proceso de entrenamiento de la red Hopfield. Utilizará el IDE de Microsoft Visual Studio 2005 para desarrollar los formularios necesarios para ingresar y obtener los valores de las variables que servirán para el entrenamiento de la red. Introducción En la década de los 80’s con el fin de estudiar procesos que involucran sistemas gobernados por ecuaciones diferenciales no lineales surge la teoría clásica control geométrico basada en la geometría diferencial; simultáneamente renace el estudio de las Redes Neuronales debido al redescubrimiento del de algoritmo Backpropagation, este hecho sumado al fracaso de las metodologías tradicionales aplicadas a la inteligencia artificial y a la disponibilidad de herramientas computacionales de bajo costo permitieron el desarrollo las redes neuronales recurrentes cuya principal aplicación es el control e identificación de sistemas no lineales. Este desarrollo es posible debido a que las propiedades matemáticas de las recurrentes están enmarcadas en las mismas propiedades que fundamentan redes el control geométrico, la primera red neuronal recurrente de naturaleza dinámica fue propuesta por Hopfield en 1984 bajo el contexto de las memorias asociativas. Resumen de Características: Solo tiene una capa. Los valores pueden ser binarios o análogos, dependiendo de la función que se utilice a la salida de las neuronas. Cada neurona de la red se encuentra conectada a todas las demás neuronas de la red. En algunos casos existen conexiones de una neurona hacia sí misma. Inteligencia Artificial, Guía 8 2 Los pesos asociados a las conexiones entre pares de neuronas son simétricos. Aprendizaje fuera de línea (off line). Es un tipo de red auto asociativa. La cantidad de neuronas en la red depende del número de entradas que se requiera. El número de entradas es igual al número de salidas. Desventaja principal: Es limitado sugiere que el se número tome en de informaciones cuenta que la que puede capacidad de aprender la red está (almacenar). limitada Se de acuerdo a lo siguiente: Capacidad = [(0.138*N)/N/(4*Ln(N))] Donde N es la cantidad de neuronas que posee la red. Tipos: Existe la de tipo digital, cuya característica principal es la función de activación a la salida de la neurona. (Escalón Bipolar ó escalón Unitario). Escalon Bipolar F(x) = 1 => S(t) <0 F(x) = F(t) => S(t) = 0 F(x) = -1 => S(t) >0 Inteligencia Artificial. Guía 8 3 Escalon Unitario. F(x) = 1 => S(t) < 0 F(x) = F(t) => S(t) = 0 0 = S(t) > 0 Y analoga: Sigmoidal Entonces: Proceso de aprendizaje: Este consiste básicamente en determinar el valor ideal de los pesos entre las conexiones de cada neurona. Esto se realiza en base a las siguientes ecuaciones: Inteligencia Artificial, Guía 8 4 Donde M es el número de patrones a aprender. Esta función es válida solo para la escalón unitario. Esto también se puede representar de manera matricial que estaría formada por los siguientes pesos: Esta matriz es simétrica al cumplirse que Wij = Wji y tiene una diagonal con valores nulos debido a la no existencia de conexiones auto-recurrentes (Wii = 0). Por otro lado también se tendrían el conjunto de las M vectores que contiene la información que aprenderá la red: Inteligencia Artificial. Guía 8 5 Utilizando esta notación, entonces el aprendizaje consistiría en la creación de la matriz de pesos a partir de M vectores o informaciones de entrada que se enseñan en la red, esto se expresaría como: Donde la matriz es la transpuesta de es la matriz identidad de dimensiones NxN que anula los pesos de las conexiones auto-recurrentes. Funcionamiento: 1. Introducir los patrones de entrada. 2. Determinar la salida basándose en 3. La salida actual se toma como entrada y se repite al paso 2 hasta que la salida se mantenga constante o con modificaciones aceptables. Ejemplo: Entrenar una red Hopfield para las siguientes figuras: Sí esto se representa por píxeles, podemos determinar que necesitamos 4 de ellos, por lo que también la cantidad de neuronas sería 4. Entonces podemos decir que: Ahora se determinan los pesos con cada una de sus salidas: Para E1 se tiene: Para E2 se tiene: Inteligencia Artificial, Guía 8 6 Por lo tanto los pesos para los dos valores es: Una vez finalizada la etapa de aprendizaje se puede verificar el entrenamiento con un patrón de prueba: Luego se pasa esta salida a la función escalón utilizado y se tendría: S=[1,1,-1,-1] Obteniendo como salida: Se pasa la salida a la función escalón y el resultado es: S=[1,1,-1,-1] Inteligencia Artificial. Guía 8 7 Materiales y equipo Guía de Laboratorio Nº 8 Computadora con programa. o Visual Studio 2005. Dispositivo de Almacenamiento (USB). Procedimiento Utilizando el lenguaje de programación C# diseñar una red Hopfield que aprenda los siguientes patrones: Considere las siguientes entradas: Investigación complementaria. Investigar sobre Aprendizaje Supervisado Bibliografía. http://www.slideshare.net/aiaguilar/redes-de-hopfield http://www.sappiens.com/pdf/comunidades/informatica/InformeRedesNeuronales.pdf Inteligencia Artificial, Guía 9 8 Hoja de cotejo: 8 1 Guía 8: Red Hopfield. Alumno: Máquina No: Docente: GL: Fecha: EVALUACION % CONOCIMIENTO 40 APLICACIÓN DEL 40 CONOCIMIENTO ACTITUD 20 TOTAL 100% 1-4 5-7 8-10 Nota