Vous êtes sur la page 1sur 8

Pgina 1

UNIVERSIDAD DE FUERZAS ARMADAS ESPE


DEPARTAMENTO DE ELCTRICA Y ELECTRNICA
ASIGNATURA: CONTROL INTELIGENTE

Actividad No9.

Fecha: 28-04-2014
Nombre alumno1: Jorge Guillen
Nombre alumno2: Alexis Gngora
NRC: 2055


1. Describa en detalle el aprendizaje por descenso de gradiente.

- El propsito del aprendizaje es minimizar el error de salida utilizando un conjunto
particular de datos de entrenamiento para ajustar los pesos de la red.

- Definimos una funcin de error E (wij) que mide como la red actual es correctamente
entrenada.

- Las derivadas parciales de la funcin de error E (wij) / wij nos dice en qu direccin
nos tenemos que mover en el espacio de peso para reducir el error.

- La tasa de aprendizaje h especifica los tamaos de paso que damos en el espacio de
pesos para cada iteracin de la ecuacin de actualizacin de pesos.

- Seguimos paso a paso a travs del espacio de peso hasta que los errores son
"suficientemente pequeo".

- Si elegimos funciones de activacin de las neuronas con derivados que adquieren
particular formas simples, podemos hacer los clculos de actualizacin de peso muy
eficaz.

2. Describa el procedimiento para entrenar una red neuronal de una capa.

- Tome el conjunto de patrones de entrenamiento que desea la red para aprender
{ini p, outj p: i = 1 ... ninputs, j = 1 ... noutputs, p = 1 ... npatterns}

- Configure su red con unidades de entrada ninputs plenamente conectados a noutputs
Unidades de salida a travs de conexiones con pesos wij

- Generar pesos iniciales aleatorios, por ejemplo, de la gama [-smwt, + smwt]

- Seleccione una funcin de error E apropiado (wij) y un factor de aprendizaje h

- Aplicar la actualizacin de pesos Dwij =-h E (wij) / wij wij a cada peso para cada
patrn de entrenamiento p. Una serie de actualizaciones de todos los pesos para todos
los patrones de entrenamiento se llama una poca de la actualizacion.

- Repita el paso 5 hasta que la funcin de error de la red es "suficientemente pequeo".


Pgina 2


3. Describa el procedimiento para entrenar un perceptron milticapa.

- Tome el conjunto de patrones de entrenamiento que desea la red para aprender
{ini p, outj p: i = 1 ... ninputs, j = 1 ... noutputs, p = 1 ... npatterns}

- Configure su red con unidades de entrada ninputs plenamente conectados a noutputs
Unidades de salida a travs de conexiones con pesos wij

- Generar pesos iniciales aleatorios, por ejemplo, de la gama [-smwt, + smwt]

- Seleccione una funcin de error E apropiado (wij) y un factor de aprendizaje h

- Aplicar la actualizacin de pesos Dwij =-h E (wij) / wij wij a cada peso para cada
patrn de entrenamiento p. Una serie de actualizaciones de todos los pesos para todos
los patrones de entrenamiento se llama una poca de la actualizacin.

- Repita el paso 5 hasta que la funcin de error de la red es "suficientemente pequeo".


4. Realizar un cuadro sinptico de las consideraciones prcticas para el aprendizaje por
descenso de gradiente.






























Pgina 3



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 0.9 0.9 0.1];
n=0.3;
alpha=4;
offset=0.1;

d_w1acum=0;
d_w2acum=0;
d_w3acum=0;
d_w4acum=0;
d_w5acum=0;
d_w6acum=0;
d_w7acum=0;
d_w8acum=0;
d_w9acum=0;

[x,y] = meshgrid(0:.01:1, 0:.01:1);


5. Escriba el cdigo para implementar las consideraciones prcticas.
Puntos planos en la funcin de error
Uso de la funcin de activacin Tanh.

















































Pgina 4

for j=1:200
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)+offset)*w5*alpha*out1*(1-out1)+offset)*in1(i);
d_w2=n*(targ(i)-out)*((alpha*out*(1-
out)+offset)*w6*alpha*out2*(1-out2)+offset)*in1(i);
d_w3=n*(targ(i)-out)*((alpha*out*(1-
out)+offset)*w5*alpha*out1*(1-out1)+offset)*in2(i);
d_w4=n*(targ(i)-out)*((alpha*out*(1-
out)+offset)*w6*alpha*out2*(1-out2)+offset)*in2(i);
d_w5=n*(targ(i)-out)*(alpha*out*(1-out)+offset)*out1;
d_w6=n*(targ(i)-out)*(alpha*out*(1-out)+offset)*out2;
d_w7=n*(targ(i)-out)*((alpha*out*(1-
out)+offset)*w5*alpha*out1*(1-out1)+offset)*1;
d_w8=n*(targ(i)-out)*((alpha*out*(1-
out)+offset)*w6*alpha*out2*(1-out2)+offset)*1;
d_w9=n*(targ(i)-out)*(alpha*out*(1-out)+offset)*1;


d_w1acum=d_w1acum+d_w1;
d_w2acum=d_w2acum+d_w2;
d_w3acum=d_w3acum+d_w3;
d_w4acum=d_w4acum+d_w4;
d_w5acum=d_w5acum+d_w5;
d_w6acum=d_w6acum+d_w6;
d_w7acum=d_w7acum+d_w7;
d_w8acum=d_w8acum+d_w8;
d_w9acum=d_w9acum+d_w9;

err_i=0.5*(targ(i)-out)^2;
err_total=err_total+err_i;

end
































































Pgina 5

w1=w1+d_w1acum;
w2=w2+d_w2acum;
w3=w3+d_w3acum;
w4=w4+d_w4acum;
w5=w5+d_w5acum;
w6=w6+d_w6acum;
w7=w7+d_w7acum;
w8=w8+d_w8acum;
w9=w9+d_w9acum;


d_w1acum=0;
d_w2acum=0;
d_w3acum=0;
d_w4acum=0;
d_w5acum=0;
d_w6acum=0;
d_w7acum=0;
d_w8acum=0;
d_w9acum=0;

vector_epocas(j)=j;
vector_errores(j)=err_total;
err_total=0;
subplot(3,1,1);
plot(vector_epocas,vector_errores);

nett1 = x.*w1+y.*w3+in0.*w7;
nett2 = x.*w2+y.*w4+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);
pause(0.01);

end


































































Pgina 6


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=[-1 1 1 -1];
n=0.3;
alpha=4;
offset=0.1;

d_w1acum=0;
d_w2acum=0;
d_w3acum=0;
d_w4acum=0;
d_w5acum=0;
d_w6acum=0;
d_w7acum=0;
d_w8acum=0;
d_w9acum=0;

[x,y] = meshgrid(0:.01:1, 0:.01:1);



Uso de la funcin de activacin Tanh.


















































Pgina 7

for j=1:200
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=tanh(net1);
out2=tanh(net2);

net=w5*out1+w6*out2+in0*w9;
out=tanh(net);

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


d_w1acum=d_w1acum+d_w1;
d_w2acum=d_w2acum+d_w2;
d_w3acum=d_w3acum+d_w3;
d_w4acum=d_w4acum+d_w4;
d_w5acum=d_w5acum+d_w5;
d_w6acum=d_w6acum+d_w6;
d_w7acum=d_w7acum+d_w7;
d_w8acum=d_w8acum+d_w8;
d_w9acum=d_w9acum+d_w9;

err_i=0.5*(targ(i)-out)^2;
err_total=err_total+err_i;

end

























































Pgina 8
w1=w1+d_w1acum;
w2=w2+d_w2acum;
w3=w3+d_w3acum;
w4=w4+d_w4acum;
w5=w5+d_w5acum;
w6=w6+d_w6acum;
w7=w7+d_w7acum;
w8=w8+d_w8acum;
w9=w9+d_w9acum;


d_w1acum=0;
d_w2acum=0;
d_w3acum=0;
d_w4acum=0;
d_w5acum=0;
d_w6acum=0;
d_w7acum=0;
d_w8acum=0;
d_w9acum=0;

vector_epocas(j)=j;
vector_errores(j)=err_total;
err_total=0;
subplot(3,1,1);
plot(vector_epocas,vector_errores);

nett1 = x.*w1+y.*w3+in0.*w7;
nett2 = x.*w2+y.*w4+in0.*w8;
outt1=tanh(nett1);
outt2=tanh(nett2);
nett3 = outt1.*w5+outt2.*w6+in0*w9;
outt=tanh(nett3);
outt_frontera=hardlims(outt);
subplot(3,1,2);
mesh(x,y,outt);
subplot(3,1,3);
mesh(x,y,outt_frontera);
pause(0.01);

end


















































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 Armadas ESPE

Vous aimerez peut-être aussi