Actividad no10 1er parcial lema evelyn
Click here to load reader
-
Upload
evelyn-gabriela-lema-vinueza -
Category
Education
-
view
385 -
download
0
description
Transcript of Actividad no10 1er parcial lema evelyn
Página 1
UNIVERSIDAD DE FUERZAS ARMADAS “ESPE” DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
ASIGNATURA: CONTROL INTELIGENTE
Actividad No10. Mejoras al aprendizaje del perceptrón multicapa mediante retro
propagación. Aprendizaje por descenso más pronunciado. Entrenamiento de una red
neuronal con patrones de XOR.
Fecha: Miércoles, 07 de Mayo del 2014.
Nombre alumno: Evelyn Gabriela Lema Vinueza.
NRC: 2055
Introducción. El método de descenso más pronunciado consiste en el siguiente procedimiento: El
factor de aprendizaje es el mismo para todos los pesos. Iniciar el factor de aprendizaje con un valor
y doblarlo cada época. Esto conduce a una actualización preliminar de los pesos. El Error medio
cuadrático MSE se calcula para los pesos actualizados que corresponden a la tasa de aprendizaje
actual. Si el MSE no decrece con esta tasa de aprendizaje, los pesos retornan a sus valores
originales, la tasa de aprendizaje se reduce a la mitad y se continúa el entrenamiento. Si el MSE
todavía no decrece, se parte el factor de aprendizaje a la mitad repetidamente hasta encontrar una
tasa de aprendizaje que reduzca el MSE. En este punto el factor de aprendizaje es doblado otra vez
y se inicia un nuevo paso. El proceso se repite una y otra vez. La búsqueda continua en esta forma y
termina dentro de un número predefinido de épocas de entrenamiento. Si la disminución en el error
con respecto al paso previo es más pequeña que un nivel especificado o si el valor del factor
de aprendizaje cae bajo un límite especificado el proceso se detiene.
( ) ( )
( ) ;
, son especificados por el usuario
1. De acuerdo al enunciado, dibuje un diagrama de flujo que resuelva el aprendizaje de una red neuronal
por descenso más pronunciado.
INICIO
Patrones de entrenamiento
Pesos aleatorios iniciales
Parámetros iniciales: ŋ, ŋmin, E
Tomar un patrón de entrenamiento
Calcular salida de ANN
Calcular Δw, aΔw, MSE
Último patrón de
entrenamiento
NO
error_total < error_ originalSI
Fin de época
n>nminNO
FIN
SI SI
ANO
A
Actualización
del Error
Actualizaciones preliminares w
Calcular MSE_N con pesos
actualizadoss
MSE_N<MSE
Recuperar pesos w
no
ŋ=1/2ŋ
Época
++si
ŋ=2ŋ
Página 2
2. Transcriba el código para considerar que “El Error medio cuadrático MSE se calcula para los pesos
actualizados que corresponden a la tasa de aprendizaje actual”. Indique como su código considera la idea
de que si el MSE no decrece los pesos deben retornar a sus valores iniciales.
3. Escriba las líneas de código que toman en cuenta la idea de que: “Si el MSE no decrece con esta tasa de
aprendizaje, los pesos retornan a sus valores originales, la tasa de aprendizaje se reduce a la mitad y se
continúa el entrenamiento. Si el MSE todavía no decrece, se parte el factor de aprendizaje a la mitad
repetidamente hasta encontrar una tasa de aprendizaje que reduzca el MSE. En este punto el factor de
aprendizaje es doblado otra vez y se inicia un nuevo paso”
if err_T<err_p n =n*2; else w(5)=w(5)-dw(5); w(6)=w(6)-dw(6); w(9)=w(9)-dw(9); w(1)=w(1)-dw(1); w(2)=w(2)-dw(2); w(3)=w(3)-dw(3); w(4)=w(4)-dw(4);
Actualización de los Pesos
w(5)=w(5)+dw(5); w(6)=w(6)+dw(6); w(9)=w(9)+dw(9); w(1)=w(1)+dw(1); w(2)=w(2)+dw(2); w(3)=w(3)+dw(3); w(4)=w(4)+dw(4); w(7)=w(7)+dw(7); w(8)=w(8)+dw(8);
for i=1:4
net1=in1(i)*w(1)+in2(i)*w(3)+in0*w(7); out1=1/(1+exp(-alfa*net1)); net2=in2(i)*w(4)+in1(i)*w(2)+in0*w(8); out2=1/(1+exp(-alfa*net2)); net=w(5)*out1+w(6)*out2+in0*w(9); out=1/(1+exp(-alfa*net)); err_i=0.5*(targ(i)-out)^2; err_T=err_T+err_i; end
if err_T<err_p
n =n*2; else w(5)=w(5)-dw(5); w(6)= w(6)-dw(6); w(9)= w(9)-dw(9); w(1)= w(1)-dw(1); w(2)= w(2)-dw(2); w(3)= w(3)-dw(3); w(4)= w(4)-dw(4); w(7)= w(7)-dw(7); w(8)= w(8)-dw(8); %si factor aprendizaje no cumple if n > nmin n = n*0.5; end err_T = err_p; end
Cálculo del error para los pesos actualizados
Comparación de errores total y error
original
Recuperación de pesos si la condición de
errores no se cumple
Si el MSE no decrece (si err_T no es
menor que err_p) los pesos deben retornar
a sus valores iniciales, por lo que se resta
a cada peso actualizado su valor de
actualización.
Factor de aprendizaje doblado
Si la condición no se cumple los pesos el error no
decrece los pesos retornan a sus valores originales y por
ende se dobla el valor del factor de aprendizaje
Página 3
4. Escriba el código que resuelve la idea final del enunciado: “La búsqueda continua en esta forma y termina dentro de un número predefinido de épocas de
entrenamiento. Si la disminución en el error con respecto al paso previo es más pequeña que un nivel
especificado o si el valor del factor de aprendizaje cae bajo un límite especificado el proceso
se detiene. “ ( ) ( )
( ) ;
, son especificados por el usuario
Código del Programa:
in1 = [0 1 0 1]; in2 = [0 0 1 1]; [in3,in4] = meshgrid(0:.01:1,0:.01:1); targ = [0.1 0.9 0.9 0.1]; w = [rand(1) rand(1) rand(1) rand(1) rand(1) rand(1) rand(1) rand(1) rand(1)]; dw(1)=0;dw(2)=0;dw(3)=0;dw(4)=0;dw(5)=0;dw(6)=0;dw(7)=0;dw(8)=0;dw(9)=0; in0 = 1; n = 0.3; nmin =0.001; Emin =0.001; err_p = 1; err_T = 1; alfa = 4;
for j=1:500 n if err_T > Emin err_p=0; err_T=0; for i=1:4 net1=in1(i)*w(1)+in2(i)*w(3)+in0*w(7); out1=1/(1+exp(-alfa*net1)); net2=in2(i)*w(4)+in1(i)*w(2)+in0*w(8); out2=1/(1+exp(-alfa*net2));
net=w(5)*out1 + w(6)*out2 + in0*w(9); out=1/(1+exp(-alfa*net));
dw(5)=dw(5)+n*(targ(i)-out)*(alfa*out*(1-out)+0.1)*out1; dw(6)=dw(6)+n*(targ(i)-out)*(alfa*out*(1-out)+0.1)*out2; dw(9)=dw(9)+n*(targ(i)-out)*(alfa*out*(1-out)+0.1);
dw(1)=dw(1)+n*(targ(i)-out)*(alfa*out*(1-out)+0.1)*w(5)*(alfa*out1*(1-out1)+0.1)*in1(i); dw(2)=dw(2)+n*(targ(i)-out)*(alfa*out*(1-out)+0.1)*w(6)*(alfa*out2*(1-out2)+0.1)*in1(i); dw(3)=dw(3)+n*(targ(i)-out)*(alfa*out*(1-out)+0.1)*w(5)*(alfa*out1*(1-out1)+0.1)*in2(i); dw(4)=dw(4)+n*(targ(i)-out)*(alfa*out*(1-out)+0.1)*w(6)*(alfa*out2*(1-out2)+0.1)*in2(i);
dw(7)=dw(7)+n*(targ(i)-out)*(alfa*out*(1-out)+0.1)*w(5)*(alfa*out1*(1-out1)+0.1);
dw(8)=dw(8)+n*(targ(i)-out)*(alfa*out*(1-out)+0.1)*w(6)*(alfa*out2*(1-out2)+0.1);
err_i=0.5*(targ(i)-out)^2;
err_p=err_p+err_i;
end
w(5)=w(5)+dw(5);
w(6)=w(6)+dw(6);
w(9)=w(9)+dw(9);
w(1)=w(1)+dw(1);
w(2)=w(2)+dw(2);
w(3)=w(3)+dw(3);
w(4)=w(4)+dw(4);
w(7)=w(7)+dw(7);
w(8)=w(8)+dw(8);
w(7)=w(7)-dw(7); w(8)=w(8)-dw(8);
if n>nmin n=n*0.5; end err_T = err_p; %hasta que el valor sea doblado end
Si factor aprendizaje no cumple factor se reduce a la mitad
Página 4
5. Presente los resultados obtenidos en dos gráficos: el error en cada época y la función de la
red neuronal versus las entradas. Realice la corrida del programa por varias veces y
determine la efectividad de la convergencia: Número de veces que converge/Número de
corridas
Gráfica de la Curva deAprendizaje
for i=1:4 net1=in1(i)*w(1)+in2(i)*w(3)+in0*w(7); out1=1/(1+exp(-alfa*net1)); net2=in2(i)*w(4)+in1(i)*w(2)+in0*w(8); out2=1/(1+exp(-alfa*net2)); net=w(5)*out1+w(6)*out2+in0*w(9); out=1/(1+exp(-alfa*net));
err_i=0.5*(targ(i)-out)^2; err_T=err_T+err_i; end
if err_T<err_p n =n*2; else w(5)=w(5)-dw(5); w(6)= w(6)-dw(6); w(9)= w(9)-dw(9); w(1)= w(1)-dw(1); w(2)= w(2)-dw(2); w(3)= w(3)-dw(3); w(4)= w(4)-dw(4); w(7)= w(7)-dw(7); w(8)= w(8)-dw(8); if n > nmin % Si el valor del factor de aprendizaje cae bajo un límite especificado el proceso se detiene n = n*0.5; end err_T = err_p; end vector_epocas(j)=j; vector_err(j)=err_T;
dw(1)=0;dw(2)=0;dw(3)=0;dw(4)=0;dw(5)=0;dw(6)=0;dw(7)=0;dw(8)=0;dw(9)=0;
net1=in3*w(1)+in4*w(3)+in0*w(7); out1=1./(1+exp(-alfa*net1)); net2=in4*w(4)+in3*w(2)+in0*w(8); out2=1./(1+exp(-alfa*net2));
net=w(5)*out1+w(6)*out2+in0*w(9); CV_out=1./(1+exp(-alfa*net));
Página 5
Yo Evelyn Gabriela Lema Vinueza afirmo que esta actividad es de mi autoría y establezco que
para la elaboración de la misma he seguido los lineamientos del Código de Ética de la
Universidad de las Fuerzas Armadas ESPE
( )
Para determinar la efectividad de la convergencia se empleó la siguiente fórmula
Concluyendo que aproximadamente cada diez corridas se tiene una convergencia en el algoritmo.
Gráfica de la Función de la Neurona
Gráfica de la Línea de la Frontera