1. Página 1
UNIVERSIDAD DE FUERZAS ARMADAS “ESPE”
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
ASIGNATURA: CONTROL INTELIGENTE
Actividad No 12. Mejoras al aprendizaje del perceptrón multicapa mediante retropropagación.
Momento en variación de pesos.
Fecha: Lunes, 12 de Mayo del 2014
Nombre alumno: Evelyn Gabriela Lema Vinueza.
NRC: 2055
Introducción. El momento es una aproximación de promediado que provee estabilidad cuando se alcanzan
los pesos óptimos en el aprendizaje. Este método toma en cuenta el promedio de los cambios pasados (en los
pesos) en el incremento de peso, suavizando el cambio neto de peso. La idea es usar el promedio exponencial
de todos los cambios de peso previos para guiar el cambio actual. La expresión matemática de cambio de
peso para cada peso es:
Dónde: es el parámetro de momento que debe estar entre 0 y 1. es el cambio de peso en la época
previa. es la gradiente promedio de todos los patrones de entrenamiento (batch) para el peso w en la
época m.
Use 1000 épocas, pesos iniciales aleatorios, y derivada de sigmoide con offset de 0.1.
1. Complete el algoritmo de retropropagación “batch” para que el cambio en los pesos de cada época
contenga momento. Presente los resultados para (factor de aprendizaje, momento) de a) (0.2
0.01); b (0.2 0.5);c) (0.2 0.9)
a) (0.2 0.01) Gráfica de la Curva deAprendizaje
0 100 200 300 400 500 600 700 800 900 1000
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
ERROR
CUADRATICO
EPOCA
Gráfica de la Función de la Neurona Gráfica de la Línea de la Frontera
2. Página 2
c
b) (0.2 0.5)
Gráfica de la Curva deAprendizaje
0 100 200 300 400 500 600 700 800 900 1000
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
ERROR
CUADRATICO
EPOCA
Gráfica de la Función de la Neurona Gráfica de la Línea de la Frontera
c) (0.2 0.9)
Gráfica de la Curva deAprendizaje
0 100 200 300 400 500 600 700 800 900 1000
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
ERROR
CUADRATICO
EPOCA
Gráfica de la Función de la Neurona Gráfica de la Línea de la Frontera
3. Página 3
2. Presente los resultados para (factor de aprendizaje, momento) de a) (0.5 0.01); b) (0.5 0.5) c) (0.5 0.9)
a) (0.5 0.01)
b) (0.5 0.5)
Gráfica de la Curva deAprendizaje
0 100 200 300 400 500 600 700 800 900 1000
0
0.2
0.4
0.6
0.8
1
1.2
1.4
ERROR
CUADRATICO
EPOCA
Gráfica de la Función de la Neurona Gráfica de la Línea de la Frontera
Gráfica de la Curva deAprendizaje
0 100 200 300 400 500 600 700 800 900 1000
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
ERROR
CUADRATICO
EPOCA
Gráfica de la Función de la Neurona Gráfica de la Línea de la Frontera
4. Página 4
3. Presente los resultados para (factor de aprendizaje, momento) de: a) (5 0.01); b)(5 0.5); c) (0.5 0.98)
c) (0.5 0.9)
a) (5 0.01)
Gráfica de la Curva deAprendizaje
0 100 200 300 400 500 600 700 800 900 1000
0
0.2
0.4
0.6
0.8
1
1.2
1.4
ERROR
CUADRATICO
EPOCA
Gráfica de la Función de la Neurona Gráfica de la Línea de la Frontera
Gráfica de la Curva deAprendizaje
0 100 200 300 400 500 600 700 800 900 1000
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
ERROR
CUADRATICO
EPOCA
Gráfica de la Función de la Neurona Gráfica de la Línea de la Frontera
5. Página 5
b) (5 0.5)
c) (0.5 0.98)
Gráfica de la Curva deAprendizaje
0 100 200 300 400 500 600 700 800 900 1000
0.8
1
1.2
1.4
1.6
1.8
2
ERROR
CUADRATICO
EPOCA
Gráfica de la Función de la Neurona Gráfica de la Línea de la Frontera
Gráfica de la Curva deAprendizaje
0 100 200 300 400 500 600 700 800
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
ERROR
CUADRATICO
EPOCA
Gráfica de la Función de la Neurona Gráfica de la Línea de la Frontera
6. Página 6
Código del Programa:
Ejercicio 1:
Se variaran los parámetros de factor de aprendizaje y momento establecidos: a) (0.2 0.01); b (0.2 0.5);c) (0.2 0.9)
clear all
close all
in0=1;
in1=[0 1 0 1];
in2=[0 0 1 1];
targ=[0.1 0.9 0.9 0.1];
w1=(1-2*rand)*0.5;
w2=(1-2*rand)*0.5;
w3=(1-2*rand)*0.5;
w4=(1-2*rand)*0.5;
w5=(1-2*rand)*0.5;
w6=(1-2*rand)*0.5;
w7=(1-2*rand)*0.5;
w8=(1-2*rand)*0.5;
w9=(1-2*rand)*0.5;
n=0.2; % Factor de Aprendizaje
u=0.01; % Momento establecido
alpha=4;
dwan1=0;
dwan2=0;
dwan3=0;
dwan4=0;
dwan5=0;
dwan6=0;
dwan7=0;
dwan8=0;
dwan9=0;
dw1=0;dw2=0;dw3=0;dw4=0;dw5=0;dw6=0;dw7=0;dw8=0;dw9=0;
for j=1:1000
err_T=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)+0.1]*w5*[alpha*out1*(1-out1)+0.1]*in1(i);
D_w2= n*(targ(i)-out)*[alpha*out*(1-out)+0.1]*w6*[alpha*out2*(1-out2)+0.1]*in1(i);
D_w3= n*(targ(i)-out)*[alpha*out*(1-out)+0.1]*w5*[alpha*out1*(1-out1)+0.1]*in2(i);
D_w4= n*(targ(i)-out)*[alpha*out*(1-out)+0.1]*w6*[alpha*out2*(1-out2)+0.1]*in2(i);
D_w5= n*(targ(i)-out)*[alpha*out*(1-out)+0.1]*out1;
D_w6= n*(targ(i)-out)*[alpha*out*(1-out)+0.1]*out2;
D_w7= n*(targ(i)-out)*[alpha*out*(1-out)+0.1]*w5*[alpha*out1*(1-out1)+0.1]*1;
D_w8= n*(targ(i)-out)*[alpha*out*(1-out)+0.1]*w6*[alpha*out2*(1-out2)+0.1]*1;
D_w9= n*(targ(i)-out)*[alpha*out*(1-out)+0.1];
dw1=dw1+D_w1;
dw2=dw2+D_w2;
dw3=dw3+D_w3;
dw4=dw4+D_w4;
dw5=dw5+D_w5;
dw6=dw6+D_w6;
dw7=dw7+D_w7;
dw8=dw8+D_w8;
dw9=dw9+D_w9;
err_i=(targ(i)-out)^2;
err_T=err_T+err_i;
end
w1=w1+u*dwan1+dw1*(1-u);
w2=w2+u*dwan2+dw2*(1-u);
w3=w3+u*dwan3+dw3*(1-u);
w4=w4+u*dwan4+dw4*(1-u);
w5=w5+u*dwan5+dw5*(1-u);
w6=w6+u*dwan6+dw6*(1-u);
w7=w7+u*dwan7+dw7*(1-u);
w8=w8+u*dwan8+dw8*(1-u);
w9=w9+u*dwan9+dw9*(1-u);
dwan1=u*dwan1+dw1*(1-u);