Sie sind auf Seite 1von 5

Inteligencia Artificial

Trabajo 2: Red Adaline

Giorgio Luigi Morales Luna

Erick Pacheco Pedraza

20104509A

20101133K
Especialidad de Ingeniera Mecatrnica
Facultad de Ingeniera Mecnica

Considere los patrones de la figura:


-1

-1

-1

-1

-1

-1

1
1

-1
-1

Resuelva el problema de reconocimiento de patrones usando:

TRN de Matlab.
Cdigo puro (Algoritmo)

Qu sucede si a la red se le presenta el patrn:

Solucin:
Para resolver el problema planteado se recurrir a la teora de reconocimiento de
patrones utilizando dos redes ADALINE (Adaptive Linear Element) debido a la naturaleza
del problema. De esta manera se usarn dos neuronas ya que cada una de estas tiene
slo dos posibles soluciones, luego se proceder a combinar estas redes para poder
generar 4 clases, de modo que ante cualquier entrada esta pueda ser clasificada dentro
de una de las 4 posibles regiones.

La regla a ser aprendida ser la siguiente:


Entradas

P1
-1
-1
1
1

P2
-1
1
-1
1

P3
-1
1
1
-1

P4
-1
1
-1
-1

T1
-1
-1
1
1

T2
-1
1
-1
1

Clase
A
B
C
D

Tabla 1
a) Utilizando Toolbox de redes neuronales de Matlab (TRN) :
Se crearn las redes neuronales net y net2, independientes una de la otra, con la
funcin newlin. Adems se asignarn valores iniciales aleatorios a los pesos y a los bias.
net=newlin(P,T1,ID,LR); net2=newlin(P,T2,ID,LR);
Wo=randn(1,4);
tho=randn(1,1);
net.iw{1,1}=Wo;
net.b{1}=tho;

Luego se establece el nmero de pocas lmite de entrenamiento para cada red (300
en este caso); sin embargo, el desempeo deseado puede alcanzarse en un nmero de
pocas menor.
net.trainParam.epochs=300;
net.trainParam.goal=0.1;
net=train(net,P,T1);
net2.trainParam.epochs=300;
net2.trainParam.goal=0.1;
net2=train(net,P,T2);

Una vez finalizado el entrenamiento se evala el error comparando los targets y las
salidas obtenidas, resultado de aplicar la funcin hardlims (debido a la data bipolar) a las
salidas de la unidad adaline (combinador adaptativo lineal).
Y=hardlims(sim(net,P));Y2=hardlims(sim(net2,P));
e=T1-Y;
e2=T2-Y2;

Finalmente se comprueba que el desempeo ha sido alcanzado al evaluar el error (o


su correspondiente MSE). Por otro lado el TRN nos permite saber que el objetivo se
consigui luego de 6 pocas con un vector de pesos finales de:
w= [-0.7145

1.3514

-0.2248

-0.5890];

Respuesta ante entrada intrusa:


Con ambas redes neuronales entrenadas es posible evaluar el resultado para
cualquier entrada. En este caso se considera un vector de entrada distinto a los
preestablecidos, a saber:

Xi=[1
-1
-1
-1];
Yi1=round(sim(net,Xi)); %resultado red1
Yi2=round(sim(net2,Xi));%resultado red2

El resultado obtenido es 1 para la primera red y -1 para la segunda, resultado que


segn la tabla presentada anteriormente corresponde a la clase C.
b) Programa sin TRN:
Antes de realizar las operaciones correspondientes se toma en cuenta el modelo de
vector aumentado; es decir, considerando el Threshold como un peso ms. Para ello se
aumenta una fila ms de elementos -1 al vector de entrada P. Luego se asignan valores
iniciales aleatorios tanto a los pesos como a los umbrales (ya que son dos redes).
Ahora se procede a mejorar el desempeo de las redes, de modo que se har uso de
un algoritmo adaptivo. Para ello se debe considerar un factor de correccin lr igual a 0.01.
Se considerar un
de correccin de
. El cdigo de dicho algoritmo para
ambas redes sera el siguiente:
for i=1:max_ep
f(i)=0;
f2(i)=0;
for j=1:Q %Q:nro de patrones
a=purelin(w_ad*P_ad(:,j));
e=T1(j)-a;
E(i,j)=e;
dW=lr*e*P_ad(:,j)'; %Algoritmo adaptivo
w_ad=w_ad+dW;
a2=purelin(w_ad2*P_ad(:,j));
e2=T2(j)-a2;
E2(i,j)=e2;
dW2=lr*e2*P_ad(:,j)'; %Algoritmo adaptivo
w_ad2=w_ad2+dW2;
end
end

Ntese que se usa una funcin de activacin purelin que puede ser opcional, ya que
sta slo se indica para mantener similitud estructural respecto a una neurona real.
Finalmente se obtiene el vector de pesos final luego de 1000 iteraciones y se
comprueba que el error mse es igual a cero:

Respuesta ante entrada Intrusa:


Se considerar la misma entrada intrusa que en el caso anterior:
Xi=[1
-1
-1
-1];

En este caso el resultado de evala manualmente multiplicando el vector de pesos


finales (habiendo previamente separado el Threshold de los pesos) por el vector de
entrada y aumentando el respecto threshold.
Yi1=round(purelin(w_ad*Xi+Th_d));
Yi2=round(purelin(w_ad2*Xi+Th_d2));

Al igual que en el caso anterior, el algoritmo obtiene una respuesta de 1 para Yi1 y
-1 para Yi2, lo que significa que se clasifica a la entrada intrusa dentro de la clase C.
Grfica de clases:
Para el caso de la primera red, la matriz de entrada mostrada en la tabla de la Tabla 1
puede representarse grficamente de modo que para un valor de entrada -1 se muestre
un pixel de color blanco y para un valor de entrada 1 se muestre un pixel de color rojo si
la salida (T1) de dicho vector de entrada es igual a -1 o un color cyan si dicha salida es
igual a 1.
En el caso de la segunda red el principio ser el mismo, pero si un valor de entrada
es igual a 1 se mostrar de color verde si la salida correspondiente (T2) a ese vector de
entrada es igual a -1, o de color magenta si dicha salida es igual a 1.

Ntese que la combinacin de ambas representaciones deriva en una tabla con 4


salidas bien diferenciadas. Tambin puede explicarse dicha combinacin mediante el
siguiente grfico:

Das könnte Ihnen auch gefallen