Logo Studenta
¡Estudia con miles de materiales!

Vista previa del material en texto

FACULTAD DE INGENIERÍA - UNJU - 2017 
CÁTEDRA DE INTELIGENCIA ARTIFICIAL 
PROBLEMAS RESUELTOS 
 
Red de Hopfield discreta de 9 neuronas. 
 
a) Configuración de una estructura de 9 neuronas con salida signo. 
b) Cálculo de la matriz de pesos para reconocimiento de los siguientes patrones 
 
c) Verificación del reconocimiento correcto de los patrones aprendidos. 
d) Verificación de la cantidad máxima de pixeles erróneos que la red puede tolerar para restaurar co-
rrectamente el patrón de la izquierda en la figura anterior. 
 
a) Una configuración de Hopfield estándar con 9 neuronas y funciones de salida tipo signo con salto en el origen, 
se muestra en la figura siguiente: 
 
s1 s9s8sjs2
e1 e9e8eje2
9 neuronas
wj1
w21
w81
w91
w12
1 2 j 8 9
wj9
w29
w89
w19
w98
w18
wj8
w28w2j
w8j
w1j
w9j
wj2
w82
w92
 
 
b) La red debe aprender los patrones de la consigna. Como los patrones están presentados como una imagen, es 
necesario expresarlos en forma numérica. Considerando a la imagen como una matriz de 3x3, se puede represen-
tar a cada patrón como un vector fila con la siguiente ordenación: 
 
 
 
Dado que se trata de una imagen binaria, es consistente la utilización de una red discreta. Si la imagen fuese en 
escala de grises (valores entre 9 y 255), sería necesario utilizar el formato continuo. La función de salida elegida 
para la red es signo, por lo tanto se debe asignar un valor a cada tipo de pixel de los patrones. Como esta asigna-
ción puede ser arbitraria, se elige (-1) para representar a los pixeles negros y (+1) para los pixeles blancos. De 
esta forma, los patrones linealizados quedan representados como: 
 
e1 = [-1 1 -1 1 -1 1 -1 1 -1] ; e2 = [-1 1 -1 1 1 1 -1 1 -1] ; e3 = [-1 -1 -1 -1 1 -1 -1 -1 -1] 
IA 2017 - PR - # 2 
luego, es conveniente verificar la ortogonalidad de los patrones, para permitir una operación más eficiente de la 
red. Tal verificación se calcula como: 
 
por lo tanto, los patrones propuestos son ortogonales. 
 Seguidamente se procede a calcular la matriz de pesos, considerando que se utilizan 3 patrones de entre-
namiento. Como se trata de una red con aprendizaje off-line no supervisado, la determinación de la matriz de pe-
sos representa el entrenamiento/aprendizaje de la red de Hopfield. Esto se basa en la regla de Cooper-Hebb cuya 
ecuación se indica a continuación 
 
 
 
En MatLab → script para cálculo de pesos. 
 
%RED DE HOPFIELD CON 9 NEURONAS 
%CÁLCULO DE PESOS 
%Patrones de entrada 
e(1,:) = [-1 1 -1 1 -1 1 -1 1 -1]; 
e(2,:) = [1 -1 1 -1 -1 -1 1 -1 1]; 
e(3,:) = [-1 -1 -1 -1 1 -1 -1 -1 -1]; 
w=[]; %Inicializa la matriz de pesos en cero 
%Cálculo de pesos (Regla de Cooper-Hebb) 
for i=1:9 
 for j=1:9 
 w(i,j)=0; 
 for p=1:3 %cantidad de patrones 
 if i~=j 
 w(i,j)=w(i,j)+e(p,i)*e(p,j); 
 end 
 end 
 end 
end 
clear i j 
 
 El cálculo genera la siguiente matriz de pesos, que tiene la característica de ser simétrica (respecto de la 
primera diagonal), debido a que los pesos que conectan a dos neuronas entre sí son iguales; y la diagonal princi-
pal es nula, debido a que las neuronas no tienen auto-realimentación. 
IA 2017 - PR - # 3 
 
 
c) Con la red de Hopfield configurada y entrenada, se verifica el reconocimiento de cada patrón, de la forma: 
 
 Para que la salida de la red sea definitiva, debe iterar tantas veces hasta estabilizarse. El script que sigue 
muestra el proceso de cálculo de la red entrenada para el ingreso de patrones de entrada, que en este caso serán 
los mismos patrones de entrenamiento para verificar el reconocimiento: 
 
 
 
 Con el script anterior, se determina que todos los patrones de entrenamiento son reconocidos y verificados 
por la red en la segunda iteración. 
 
IA 2017 - PR - # 4 
d) En este caso se utiliza el patrón de la izquierda (apartado b), para determinar cuántos errores en la entrada 
puede tolerar la red para seguir reconociendo el patrón correspondiente. Los ingresos (utilizando el script ante-
rior) son: 
 
 
 
 
 
 Se observa que para la secuencia de errores generada, la red puede tolerar hasta 3 errores (33%) para 
reconstituir el patrón original. En el último caso con 4 errores, se genera una secuencia oscilante y no puede re-
constituir el patrón correspondiente. Esta es una respuesta razonable, dado que se ha superado la capacidad de 
aprendizaje de la red, que de acuerdo a su tolerancia efectiva, es capaz de aprender solo 1 patrón. 
 
 


Más contenidos de este tema