Aprendizaje del perceptrón

6
Página 1 UNIVERSIDAD DE FUERZAS ARMADAS “ESPE” DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA ASIGNATURA: CONTROL INTELIGENTE Actividad No 5. Aprendizaje del perceptrón Fecha: Lunes, 16 de abril de 2014 Nombre alumno: Evelyn Gabriela Lema Fernando Javier Villalba Portilla. NRC: 2055 Entrenamiento de un perceptrón para que realice clasificación de aviones Desarrollo en MATLAB A. Regla de aprendizaje del perceptrón 1. Escriba en un vector “inputs” de dimensión nx2 las entradas de los patrones de entrenamiento. Cada fila tiene un patrón de entrenamiento. Escriba el vector “tag” de dimensión nx1 con las salidas de cada patrón de entrenamiento 2. Escriba una línea de código para tomar el primer patrón de aprendizaje y encontrar la actualización de los pesos. Factor de aprendizaje=0.5. Vector inputs: inputs=[1.0 0.1 ;2.0 0.2; 0.1 0.3; 2.0 0.3; 0.2 0.4 ; 3.0 0.4; 0.1 0.5; 1.5 0.5 ;0.5 0.6 ;1.6 0.7] Vector tag: target=[1 1 0 1 0 1 0 1 0 0] w2=rand(); w1=rand(); w0=rand(); in0=1; n=0.5; inputs=[1.0 0.1 ;2.0 0.2; 0.1 0.3; 2.0 0.3; 0.2 0.4 3.0 0.4; 0.1 0.5; 1.5 0.5 ;0.5 0.6 ;1.6 0.7]; out=hardlim(inputs(1,1)*w1+inputs(1,2)*w2+w0*in0); target =[1 1 0 1 0 1 0 1 0 0]; delta_w0=n*(target(1)-out)*in0; delta_w1=n*(target(1)-out)*inputs(1,1); delta_w2=n*(target(1)-out)*inputs(1,2); w0=w0+ delta_w0; w1=w1+ delta_w1; w2=w2+ delta_w2; w0 w1 w2

Transcript of Aprendizaje del perceptrón

Page 1: Aprendizaje del perceptrón

Página 1

UNIVERSIDAD DE FUERZAS ARMADAS “ESPE” DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA

ASIGNATURA: CONTROL INTELIGENTE

Actividad No 5. Aprendizaje del perceptrón

Fecha: Lunes, 16 de abril de 2014

Nombre alumno: Evelyn Gabriela Lema – Fernando Javier Villalba Portilla.

NRC: 2055

Entrenamiento de un perceptrón para que realice clasificación de aviones

Desarrollo en MATLAB

A. Regla de aprendizaje del perceptrón

1. Escriba en un vector “inputs” de dimensión nx2 las entradas de los patrones de

entrenamiento. Cada fila tiene un patrón de entrenamiento. Escriba el vector “tag” de

dimensión nx1 con las salidas de cada patrón de entrenamiento

2. Escriba una línea de código para tomar el primer patrón de aprendizaje y encontrar la

actualización de los pesos. Factor de aprendizaje=0.5.

Vector inputs: inputs=[1.0 0.1 ;2.0 0.2; 0.1 0.3; 2.0 0.3; 0.2 0.4 ; 3.0 0.4; 0.1

0.5; 1.5 0.5 ;0.5 0.6 ;1.6 0.7]

Vector tag: target=[1 1 0 1 0 1 0 1 0 0]

w2=rand(); w1=rand(); w0=rand(); in0=1; n=0.5; inputs=[1.0 0.1 ;2.0 0.2; 0.1 0.3; 2.0 0.3; 0.2 0.4 3.0 0.4; 0.1 0.5; 1.5 0.5 ;0.5 0.6 ;1.6 0.7]; out=hardlim(inputs(1,1)*w1+inputs(1,2)*w2+w0*in0); target =[1 1 0 1 0 1 0 1 0 0]; delta_w0=n*(target(1)-out)*in0; delta_w1=n*(target(1)-out)*inputs(1,1); delta_w2=n*(target(1)-out)*inputs(1,2); w0=w0+ delta_w0; w1=w1+ delta_w1; w2=w2+ delta_w2; w0 w1 w2

Page 2: Aprendizaje del perceptrón

Página 2

3. Escriba las líneas de código para calcular la actualización de pesos y completar una

época.

4. Utilice un lazo for para que el programa ejecute 50 épocas. Dibuje el diagrama de flujo y

transcriba el programa:

w2=rand(); w1=rand(); w0=rand(); in0=1; n=0.5; inputs=[1.0 0.1 ;2.0 0.2; 0.1 0.3; 2.0 0.3; 0.2 0.4 ; 3.0 0.4; 0.1

0.5; 1.5 0.5 ;0.5 0.6 ;1.6 0.7]; tag=[1 1 0 1 0 1 0 1 0 0];

for i=1:10

out=hardlim(inputs(i,1)*w1+inputs(i,2)*w2+w0*in0); Dw0=0.5*(tag(i)-out)*in0; Dw1=0.5*(tag(i)-out)*inputs(i,1); Dw2=0.5*(tag(i)-out)*inputs(i,2); w0=w0+Dw0; w1=w1+Dw1; w2=w2+Dw2;

end

w0 w1 w2

w2=rand(); w1=rand(); w0=rand(); in0=1; n=0.5; inputs=[1.0 0.1 ;2.0 0.2; 0.1 0.3; 2.0 0.3; 0.2 0.4 ; 3.0 0.4; 0.1 0.5;

1.5 0.5 ;0.5 0.6 ;1.6 0.7]; tag=[1 1 0 1 0 1 0 1 0 0];

for j=1:50 for i=1:10 out=hardlim(inputs(i,1)*w1+inputs(i,2)*w2+w0*in0);

Dw0=0.5*(tag(i)-out)*in0; Dw1=0.5*(tag(i)-out)*inputs(i,1); Dw2=0.5*(tag(i)-out)*inputs(i,2); w0=w0+Dw0; w1=w1+Dw1; w2=w2+Dw2;

end end w0 w1 w2

Page 3: Aprendizaje del perceptrón

Página 3

Inicio

w0=rand();

w1=rand();

w2=rand();

in0=1;

n=0.5;

inputs=[Nx2]

target=[NX1]

j=j+1

J <=50

i=i+1

i <=50

out=hardlim(inputs(i,1)*w1+inputs(i,2)*w2+w0*in0);

delta_w0=n*(tag(i)-out)*in0;

delta_w1=n*(tag(i)-out)*inputs(i,1);

delta_w2=n*(tag(i)-out)*inputs(i,2);

w0=w0+Dw0;

w1=w1+Dw1;

w2=w2+Dw2;

w0

w1

w2

si

no

si

Page 4: Aprendizaje del perceptrón

Página 4

5. Complete el programa para que se grafique el error cuadrático total versus la época.

Transcriba el programa y el gráfico obtenido

Valores Obtenidos: Gráfica de Resultados:

B. Aprendizaje por descenso de gradiente

0 5 10 15 20 25 30 35 40 45 500

1

2

3

4

5

6

ER

RO

R C

UA

DR

AT

ICO

EPOCA

w0=rand(); w1=rand(); w2=rand(); in0=1; n=0.5;

inputs=[1.0 0.1 ;2.0 0.2; 0.1 0.3; 2.0 0.3; 0.2 0.4 ; 3.0 0.4; 0.1 0.5; 1.5

0.5 ;0.5 0.6 ;1.6 0.7]; target=[1 1 0 1 0 1 0 1 0 0];

for j=1:50 err_T=0; for i=1:10 out=hardlim(inputs(i,1)*w1+inputs(i,2)*w2+w0*in0);

delta_w0=0.5*(target(i)-out)*in0; delta_w1=0.5*(target(i)-out)*inputs(i,1); delta_w2=0.5*(target(i)-out)*inputs(i,2); w0=w0+ delta_w0; w1=w1+ delta_w1; w2=w2+ delta_w2; err_i=(target(i)-out)^2; err_T=err_T+err_i;

end vector_epocas(j)=j; vector_err(j)=err_T; plot(vector_epocas,vector_err); ylabel('ERROR CUADRATICO') xlabel('EPOCA') end w0 w1 w2

Page 5: Aprendizaje del perceptrón

Página 5

6. Escriba en detalle la ecuación de cálculo de actualización de cada peso

7. Modifique el programa de la regla de aprendizaje para que ejecute el entrenamiento por

descenso de gradiente. Transcriba el programa y el gráfico del aprendizaje

w0=rand(); w1=rand(); w2=rand(); in0=1; n=0.5; alpha=4; inputs=[1.0 0.1 ;2.0 0.2; 0.1 0.3; 2.0 0.3; 0.2 0.4 ; 3.0 0.4; 0.1 0.5; 1.5 0.5 ;0.5 0.6

;1.6 0.7]; target=[1 1 0 1 0 1 0 1 0 0];

for j=1:50 errT=0; for i=1:10 net=(inputs(i,1)*w1+inputs(i,2)*w2+w0*in0); out=1/1+exp(-alpha*net); delta_w0=0.5*(target(i)-out)*in0*alpha*out*(1-out); delta_w1=0.5*(target(i)-out)*alpha*out*(1-out)*inputs(i,1); delta_w2=0.5*(target(i)-out)*alpha*out*(1-out)*inputs(i,2);

w0=w0+ delta_w0; w1=w1+ delta_w1; w2=w2+ delta_w2;

erri=(target(i)-out)^2; errT=errT+erri;

end vector_epocas(j)=j; vector_err(j)=errT; plot(vector_epocas,vector_err); ylabel('ERROR CUADRATICO') xlabel('EPOCA') end

Page 6: Aprendizaje del perceptrón

Página 6

Valores Obtenidos: Gráfica de Resultados

Evelyn Gabriela Lema y Fernando Javier Villalba Portilla afirmamos que esta actividad es de

nuestra autoría y establecemos que para la elaboración de la misma se ha seguido los

lineamientos del Código de Ética de la Universidad de las Fuerzas Armadas ESPE.

0 5 10 15 20 25 30 35 40 45 505

5.05

5.1

5.15

5.2

5.25

ER

RO

R C

UA

DR

AT

ICO

EPOCA

w0 w1 w2