DASS - UCSE - INGENIERÍA INFORMÁTICA
Cátedra de INTELIGENCIA ARTIFICIAL
PROBLEMA RESUELTO - Redes neuronales
Verificación de patrones y errores con 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 s2 sj s8 s9
9 neuronas
1 2 j 8 9
wj2 wj8
wj1 wj9
w2j w28
w21 w29
w82 w8j
w81 w89
w1j w18
w12 w19
w91 w92 w9j w98
e1 e2 ej e8 e9
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]
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.
INAR - PR - #2 de 4
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.
INAR - PR - #3 de 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.
INAR - PR - #4 de 4