Actividad no9. 1er parcial lema evelyn

8

Click here to load reader

Transcript of Actividad no9. 1er parcial lema evelyn

Page 1: Actividad no9. 1er parcial lema evelyn

Página 1

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

ASIGNATURA: CONTROL INTELIGENTE

Actividad No9. Lectura 6

Fecha: Lunes, 28 de Abril del 2014.

Nombre alumno: Evelyn Gabriela Lema Vinueza.

NRC: 2055.

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

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

Para efectuar el aprendizaje por descenso de gradiente se efectúan los siguientes pasos:

1. El propósito del aprendizaje y entrenamiento de una red neuronal es minimizar el

error a la salida en un determinado conjunto de datos de entrenamiento mediante el

ajuste de los pesos de la red.

2. Se define una función de error que mide que tan lejos están la red actualmente de lo

deseado

3. Las derivadas parciales de la función error nos dicen en qué dirección nos debemos

mover en el espacio de pesos para reducir el error.

4. La tasa de aprendizaje especifica los tamaños de pasos que damos en el espacio de

peso para cada interacción en la ecuación de actualización de pesos.

5. Nos mantenemos dando pasos a través del espacio de peso hasta que los errores sean

lo suficientemente pequeños.

6. La actualización de los pesos se vuelve eficiente si escogemos funciones de

activación de la neurona que tengan derivadas de forma simple.

Para efectuar el procedimiento para entrenar una red neuronal se debe efectuar los

siguientes pasos:

1. Tomar el conjunto de patrones de entrenamiento que desee que la red aprenda.

2. Configurar su red neuronal con n unidades de entradas conectadas a n unidades de

salidas mediante conexiones ponderadas.

3. Generar pesos aleatorios en un rango

4. Seleccionar una función de error apropiada y una tasa de aprendizaje n

5. Aplicar una actualización de pesos a cada peso para cada patrón de entrenamiento.

Un conjunto de actualizaciones de todos los pesos para todos los patrones de

entrenamiento se llama una época de entrenamiento.

6. Repetir el paso 5 hasta que la función de error de la red sea suficientemente

pequeña.

Page 2: Actividad no9. 1er parcial lema evelyn

Página 2

3. Describa el procedimiento para entrenar un perceptrón multicapa

4. Realice un cuadro sinóptico de las consideraciones prácticas para el aprendizaje por

descenso de gradiente.

Para efectuar el procedimiento para entrenar un perceptrón multicapa se debe efectuar los

siguientes pasos:

1. Tomar el conjunto de patrones de entrenamiento que desee que la red aprenda.

2. Configurar su red neuronal con n unidades de entradas conectadas a n unidades

de salidas mediante conexiones ponderadas.

3. Generar pesos aleatorios en un rango

4. Seleccionar una función de error apropiada y una tasa de aprendizaje n

5. Aplicar una actualización de pesos a cada peso para cada patrón de entrenamiento.

Un conjunto de actualizaciones de todos los pesos para todos los patrones de

entrenamiento se llama una época de entrenamiento. Aquí se puede considerar

técnicas como que la implica una retro propagación del error.

6. Repetir el paso 5 hasta que la función de error de la red sea suficientemente

pequeña.

Co

nsi

der

acio

nes

Prá

ctic

as p

ara

el A

pre

nd

izaj

e

¿Necesitamos pre-procesar los datos de entrenamiento? Si es así, ¿cómo?

¿Cómo elegimos los pesos iniciales de los cuales empezaremos el

entrenamiento?

¿Cómo elegimos una tasa de aprendizaje apropiado ?

¿Hay que cambiar los pesos después de cada patrón de entrenamiento, o

después de todo el conjunto?

¿Son algunas de las funciones de activación / transferencia mejores que

otras?

¿Cómo podemos evitar puntos planos en la función de error?

¿Cómo podemos evitar los mínimos locales en la función de error?

¿Cómo sabemos cuándo debemos parar el entrenamiento?

Page 3: Actividad no9. 1er parcial lema evelyn

Página 3

Co

nsi

der

aci

on

es p

ráct

icas

para

el

ap

ren

diz

aje

por

des

cen

so d

e gra

die

nte

. Pre- procesamiento de los

datos de entrenamiento

Si se utiliza el entrenamiento on- line en lugar de entrenamiento por paquetes, por lo general debemos asegurarnos de que cambiar el orden de los datos de entrenamiento de cada época.

Se debe Asegurar que los datos de entrenamiento sean representativos y que no contengan demasiados ejemplos de un tipo a expensas de otro.

Elección de los pesos iniciales

Este algoritmo trata a los pesos de la misma manera, por lo que si se tiene los mismos valores de pesos la red acabará haciendo lo mismo y esta jamás aprenderá. Se debe comenzar todos los pesos con pequeños valores aleatorios.

Los pesos se los toma de una distribución plana en torno a cero [-smwt,+ smwt ] , o de una distribución Gaussiana alrededor de cero con smwt desviación estándar. La elección de un buen valor de smwt deberá ser tan grande como sea posible sin saturar cualquiera de los sigmoids

Elección de la tasa de aprendizaje

Si h es demasiado pequeño, se tardará demasiado tiempo para llegar a cualquier lugar cerca del mínimo de la función de error.y si h es demasiado grande, los cambios de peso se sobre-disparan el mínimo error y los pesos oscilarán, o incluso divergirán.

Batch Training vs. On-line Training

En el aprendizaje en online las actualizaciones de peso individuales pueden ser bastante irregulares.Una patrón de aprendizaje mucho más bajo h será necesario que para el aprendizaje por paquetes. Debido a que tiene n patrones de actualizaciones por época. Este tipo de aprendizaje suele ser mucho más rápido.

La elección de la función de transferencia

Una alternativa conveniente a la función logística es la tangente hiperbólica. Cuando las salidas requeridas son no binarias, es decir los valores reales continuos con la función de transferencia sigmoide ya no tiene sentido. En este caso, una simple función de transferencia lineal f (x) = x es apropiada.

Puntos planos en la función de error

Los cambios de los pesos por descenso de gradiente dependen de la pendiente de la función de error. En consecuencia, si la función de error tiene puntos planos, el algoritmo de aprendizaje puede tardar mucho tiempo para pasar a través de ellos. Mantener a los pesos iniciales de la red lo suficientemente pequeños es necesario para que la función no se sature antes del entrenamiento. El Off- setting de la target también tiene el efecto de detener que los pesos de la red crezcan demasiado.

Mínimo local Si se parte en las proximidades de los mínimos locales, se puede terminar en el mínimo local en lugar del mínimo global. Empezando con un rango de diferentes conjuntos de pesos iniciales, nosotros aumentamos las posibilidades de encontrar el mínimo global.

Paro del entrenamiento Si el algoritmo de entrenamiento puede en realidad nunca alcanzar el mínimo, se tiene que detener el proceso de formación cuando es " lo suficientemente cerca". Lo que constituye " lo suficientemente cerca " depende del problema.

Page 4: Actividad no9. 1er parcial lema evelyn

Página 4

5. Escriba el código para implementar las consideraciones prácticas.

a) Puntos planos en la función de error

Código del Programa: clear all

in0=1;

in1=[0 1 0 1];

in2=[0 0 1 1];

targ=[0.1 0.9 0.9 0.1];

w1=rand();

w2=rand();

w3=rand();

w4=rand();

w5=rand();

w6=rand();

w7=rand();

w8=rand();

w9=rand();

n=0.1;

alpha=4;

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+dw1;

w2=w2+dw2;

w3=w3+dw3;

w4=w4+dw4;

w5=w5+dw5;

w6=w6+dw6;

w7=w7+dw7;

w8=w8+dw8;

w9=w9+dw9;

dw1=0;dw2=0;dw3=0;dw4=0;dw5=0;dw6=0;dw7=0;dw8=0;dw9=0;

vector_epocas(j)=j;

vector_err(j)=err_T;

plot(vector_epocas,vector_err);

ylabel('ERROR CUADRATICO')

xlabel('EPOCA')

end

Page 5: Actividad no9. 1er parcial lema evelyn

Página 5

w11=w1;

w12=w2;

w21=w3;

w22=w4;

lw1=w5;

lw2=w6;

b1=w7;

b2=w8;

b3=w9;

[in11,in22]= meshgrid (0:.01:1,0:.01:1);

alpha=4;

net1a= in11*w11+in22*w21+in0*b1;

net2b= in11*w12+in22*w22+in0*b2;

out1a=1./(1+exp(-alpha*net1a));

out2b=1./(1+exp(-alpha*net2b));

net3c= out1a*lw1+out2b*lw2+in0*b3;

outxr= 1./(1+exp(-alpha*net3c))

figure(9);

out21xr= round (outxr);

subplot(2,1,1);

mesh(in11,in22,outxr);

xlabel('in2');ylabel('in1');zlabel('out')

subplot(2,1,2);

mesh(in11,in22,out21xr);

xlabel('in2');ylabel('in1');zlabel('out')

Curva de aprendizaje

Función de Aprendizaje de la Neurona

Gráfica de las Líneas de Frontera

Page 6: Actividad no9. 1er parcial lema evelyn

Página 6

b) Uso de la función de activación tanh.

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

Código del Programa: close all

clear all

in0=1;

in1=[0 1 0 1];

in2=[0 0 1 1];

targ=[-1 1 1 -1];

w1=rand();

w2=rand();

w3=rand();

w4=rand();

w5=rand();

w6=rand();

w7=rand();

w8=rand();

w9=rand();

n=0.1;

alpha=4;

dw1=0;dw2=0;dw3=0;dw4=0;dw5=0;dw6=0;dw7=0;dw8=0;dw9=0;

for j=1:2000

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=(2/pi)*tanh(alpha*net1);

out2=(2/pi)*tanh(alpha*net2);

net= w5*out1+w6*out2+ in0*w9;

out=(2/pi)*tanh(alpha*net);

D_w1= n*(targ(i)-out)*[1-out*out+0.1]*w5*[1-out1*out1+0.1]*in1(i);

D_w2= n*(targ(i)-out)*[1-out*out+0.1]*w6*[1-out2*out2+0.1]*in1(i);

D_w3= n*(targ(i)-out)*[1-out*out+0.1]*w5*[1-out1*out1+0.1]*in2(i);

D_w4= n*(targ(i)-out)*[1-out*out+0.1]*w6*[1-out2*out2+0.1]*in2(i);

D_w5= n*(targ(i)-out)*[1-out*out+0.1]*out1;

D_w6= n*(targ(i)-out)*[1-out*out+0.1]*out2;

D_w7= n*(targ(i)-out)*[1-out*out+0.1]*w5*[1-out1*out1+0.1]*1;

D_w8= n*(targ(i)-out)*[1-out*out+0.1]*w6*[1-out2*out2+0.1]*1;

D_w9= n*(targ(i)-out)*[1-out*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+dw1;

w2=w2+dw2;

w3=w3+dw3;

w4=w4+dw4;

w5=w5+dw5;

w6=w6+dw6;

w7=w7+dw7;

w8=w8+dw8;

w9=w9+dw9;

dw1=0;dw2=0;dw3=0;dw4=0;dw5=0;dw6=0;dw7=0;dw8=0;dw9=0;

vector_epocas(j)=j;

vector_err(j)=err_T;

plot(vector_epocas,vector_err);

ylabel('ERROR CUADRATICO')

xlabel('EPOCA')

end

w11=w1;

w12=w2;

w21=w3;

w22=w4;

Page 7: Actividad no9. 1er parcial lema evelyn

Página 7

Página 7

w21=w3;

w22=w4;

lw1=w5;

lw2=w6;

b1=w7;

b2=w8;

b3=w9;

[in11,in22]= meshgrid (0:.005:1,0:.005:1);

net1a= in11*w11+in22*w21+in0*b1;

net2b= in11*w12+in22*w22+in0*b2;

out1a=(2/pi)*tanh(alpha*net1a)

out2b=(2/pi)*tanh(alpha*net2b)

net3c= out1a*lw1+out2b*lw2+in0*b3;

outxr=(2/pi)*tanh(alpha*net3c)

figure(9);

out21xr= round (outxr);

subplot(2,1,1);

mesh(in11,in22,outxr);

xlabel('in2')

ylabel('in1')

zlabel('out')

subplot(2,1,2);

mesh(in11,in22,out21xr);

xlabel('in2')

ylabel('in1')

zlabel('out')

Función de Aprendizaje de la Neurona

Gráfica de la Líenas de Frontera

Page 8: Actividad no9. 1er parcial lema evelyn

Página 8

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