Anda di halaman 1dari 8

UNIVERSIDAD DE FUERZAS ARMADAS ESPE

DEPARTAMENTO DE ELCTRICA Y ELECTRNICA


ASIGNATURA: CONTROL INTELIGENTE
Actividad No8. Aprendizaje del perceptrn multicapa mediante retro-propagacin del error
Fecha: 23-04-2014
Nombre alumno1: Jorge Guillen
Nombre alumno2: Alexis Gngora
NRC: 2055
1.

Dibuje un perceptrn multicapa con 2 entradas, 2 neuronas escondidas y una neurona de


salida.

2. Escriba las frmulas de actualizacin de cada uno de los pesos de conexin entre las
neuronas de la capa oculta y la capa de salida. Utilice la nomenclatura del ejercicio 1.

Frmulas de actualizacin de pesos


w 5=n ( targout )out ( 1out )out 1
w 6=n ( targout )out ( 1out )out 2
w 9=n ( targout )out ( 1out )1

Pgina 1

3. Escriba las frmulas de actualizacin de cada uno de los pesos de conexin entre las
entradas y las neuronas de la capa oculta. Utilice la nomenclatura del ejercicio 1.

wi=n

dE
dwi

1
E= (targout)2
2
out =signoide(net )
signoide=

1
1ex

net= iniwi
i=0

dE
dout
dout
dout 1
dnet
dnet 1
dE
dnet 1
=n
dw 1
dw 1

dE
=(targnet )
dout

dout
=out (1out)
dnet

dout 1
=w 5
dnet 1

dnet 1
=out 1 ( 1out 1 ) 1
dw 1

Frmulas de actualizacin de los pesos


w 1=n ( targout )out (1out )w 5out 1 ( 1out 1 )1
w 2=n ( targout )out (1out )w 6out 2 ( 1out 2 ) 1
w 3=n ( targout )out ( 1out )w 5out 1 ( 1out 1 ) 2
w 4=n ( targout )out ( 1out )w 6out 2 ( 1out 2 ) 2
w 7=n ( targout )out ( 1out )w 5out 1 ( 1out 1 )1

Pgina 2

4. Escriba el programa para realizar el aprendizaje por retropropagacin del error para
que la red neuronal del ejercicio 1 aprenda a partir de los patrones de entrenamiento de
una compuerta XOR. Considere un factor de aprendizaje de 0.1; alfa=4. Grafique la
curva de aprendizaje. Considere aprendizaje en lnea (ejemplo por ejemplo).
Grafique las lneas de frontera de la red neuronal de acuerdo a lo realizado en la
actividad 7.

w1=rand();
w2=rand();
w3=rand();
w4=rand();
w5=rand();
w6=rand();
w7=1;
w8=1;
w9=1;
in0=1;
in1=[0 0 1 1];
in2=[0 1 0 1];
targ=[0 1 1 0];
n=0.1;
alpha=4;

Pgina 3

for j=1:1000
err_total=0;
for i=1:4
net1=in1(i)*w1+in2(i)*w3+in0*w7;
net2=in2(i)*w4+in1(i)*w2+in0*w8;
out1=1/(1+exp(-alpha*net1));
out2=1/(1+exp(-alpha*net2));
net=w5*out1+w6*out2+in0*w9;
out=1/(1+exp(-alpha*net));

d_w1=n*(targ(i)-out)*alpha*out*(1-out)*w5*alpha*out1*(1out1)*in1(i);
d_w2=n*(targ(i)-out)*alpha*out*(1-out)*w6*alpha*out2*(1out2)*in1(i);
d_w3=n*(targ(i)-out)*alpha*out*(1-out)*w5*alpha*out1*(1out1)*in2(i);
d_w4=n*(targ(i)-out)*alpha*out*(1-out)*w6*alpha*out2*(1out1)*in2(i);
d_w5=n*(targ(i)-out)*alpha*out*(1-out)*out1;
d_w6=n*(targ(i)-out)*alpha*out*(1-out)*out2;
d_w7=n*(targ(i)-out)*alpha*out*(1-out)*1;
d_w8=n*(targ(i)-out)*alpha*out*(1-out)*1;
d_w9=n*(targ(i)-out)*alpha*out*(1-out)*1;

w1=w1+d_w1;
w2=w2+d_w2;
w3=w3+d_w3;
w4=w4+d_w4;
w5=w5+d_w5;
w6=w6+d_w6;
w7=w7+d_w7;
w8=w8+d_w8;
w9=w9+d_w9;
err_i=(targ(i)-out)^2;
err_total=err_total+err_i;
end
vector_epocas(j)=j;
vector_errores(j)=err_total;
plot(vector_epocas,vector_errores);
end
w1
w2
w3
w4
w5
w6
w7
w8
w9

Pgina 4

[in1,in2] = meshgrid(0:.01:1, 0:.01:1);


w0=0;
alpha=4;
w11=w1;
w12=w2;
w21=w3;
w22=w4;
b1=w7;
b2=w8;
b3=w9;
in0=1;
lw1=w5;
lw2=w6;
net1 = in1.*w11+in2.*w21+in0.*b1;
net2 = in2.*w22+in1.*w12+in0.*b2;
out1=1./(1+exp(-alpha*net1));
out2=1./(1+exp(-alpha*net2));
net3 = out1.*lw1+out2.*lw2+in0*b3;
out=1./(1+exp(-alpha*net3));
out_frontera=round(out);
figure(5);
subplot(2,1,1);
mesh(in1,in2,out);
subplot(2,1,2);
mesh(in1,in2,out_frontera);

Pgina 5

5. Repita el numeral 4 pero con aprendizaje en paquete (batch). Grafique las lneas de
frontera de la red neuronal de acuerdo a lo realizado en la actividad 7.
w1=rand();
w2=rand();
w3=rand();
w4=rand();
w5=rand();
w6=rand();
w7=1;
w8=1;
w9=1;
in0=1;
in1=[0 0 1 1];
in2=[0 1 0 1];
targ=[0 1 1 0];
n=0.5;
alpha=4;
d_w1=rand();
d_w2=rand();
d_w3=rand();
d_w4=rand();
d_w5=rand();
d_w6=rand();
d_w7=rand();
d_w8=rand();
d_w9=rand();
[x,y] = meshgrid(0:.01:1, 0:.01:1);
for j=1:300
err_total=0;
for i=1:4
net1=in1(i)*w1+in2(i)*w3+in0*w7;
net2=in2(i)*w4+in1(i)*w2+in0*w8;
out1=1/(1+exp(-alpha*net1));
out2=1/(1+exp(-alpha*net2));
net=w5*out1+w6*out2+in0*w9;
out=1/(1+exp(-alpha*net));
d_w1=n*(targ(i)-out)*alpha*out*(1-out)*w5*alpha*out1*(1out1)*in1(i);
d_w2=n*(targ(i)-out)*alpha*out*(1-out)*w6*alpha*out2*(1out2)*in1(i);
d_w3=n*(targ(i)-out)*alpha*out*(1-out)*w5*alpha*out1*(1out1)*in2(i);
d_w4=n*(targ(i)-out)*alpha*out*(1-out)*w6*alpha*out2*(1out1)*in2(i);
d_w5=n*(targ(i)-out)*alpha*out*(1-out)*out1;
d_w6=n*(targ(i)-out)*alpha*out*(1-out)*out2;
d_w7=n*(targ(i)-out)*alpha*out*(1-out)*1;
d_w8=n*(targ(i)-out)*alpha*out*(1-out)*1;
d_w9=n*(targ(i)-out)*alpha*out*(1-out)*1;
err_i=0.5*(targ(i)-out)^2;
end

Pgina 6

w1=w1+d_w1;
w2=w2+d_w2;
w3=w3+d_w3;
w4=w4+d_w4;
w5=w5+d_w5;
w6=w6+d_w6;
w7=w7+d_w7;
w8=w8+d_w8;
w9=w9+d_w9;
err_total=err_total+err_i;
vector_epocas(j)=j;
vector_errores(j)=err_total;
subplot(3,1,1);
plot(vector_epocas,vector_errores);

alpha=4;
nett1 = x.*w1+y.*w3+in0.*w7;
nett2 = x.*w4+y.*w2+in0.*w8;
outt1=1./(1+exp(-alpha*nett1));
outt2=1./(1+exp(-alpha*nett2));
nett3 = outt1.*w5+outt2.*w6+in0*w9;
outt=1./(1+exp(-alpha*nett3));
outt_frontera=round(outt);
subplot(3,1,2);
mesh(x,y,outt);
subplot(3,1,3);
mesh(x,y,outt_frontera);

end

Pgina 7

En el proceso de aprendizaje en el paquete batch realiza la actualizacin pero no


produce una grfica de la solucin para la xor existen problemas de actualizacin de
los pesos y al graficar la frontera se puede aumentar la regla de aprendizaje para
mejorar la regla de aprendizaje pero hemos tenido problemas al realizar la grafica.

Nosotros Jorge Guillen y Alexis Gongora afirmamos que esta actividad es de nuestra autora y
establecemos que para la elaboracin de la misma he seguido los lineamientos del Cdigo de
tica de la Universidad de las Fuerzas Armdas ESPE.

Pgina 8

Anda mungkin juga menyukai