Download Objetivo Introducción

Document related concepts

Teoría hebbiana wikipedia , lookup

Hopfield (RNA) wikipedia , lookup

Propagación hacia atrás wikipedia , lookup

Neuroph wikipedia , lookup

Mapa autoorganizado wikipedia , lookup

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