Informe 1 Control Inteligente.docx

download Informe 1 Control Inteligente.docx

of 15

Transcript of Informe 1 Control Inteligente.docx

INFORME N 1 CONTROL INTELIGENTE

INFORME N 1 CONTROL INTELIGENTE 2013

Table of Contents1.TEMA:22.OBJETIVOS:22.1.OBJETIVO GENERAL22.2.OBJETIVOS ESPECFICOS23.MARCO TERICO23.1.Perceptrn23.2.Separabilidad lineal23.3.Entrenamiento de una red neuronal33.4.Aprendizaje del perceptrn33.5.Formulando los cambios de pesos43.6.Convergencia del aprendizaje del perceptrn43.7.Aprendizaje por descenso del gradiente minimizando el error44.DESARROLLO64.1.EJERCICIO 1: Aprendizaje del perceptrn de una capa.64.2.EJERCICIO 2: Aprendizaje por descenso del gradiente minimizando el error8El aprendizaje de Hebbian8Hebbian comparado con el aprendizaje del perceptrn9El aprendizaje por minimizacin del error9Calculando gradientes y derivadas.9Minimizacin del descenso del gradiente.10Minimizacin del error por descenso de gradiente.10Ejercicio: Entrenamiento de una red neuronal por el mtodo del descenso de gradiente.115.CONCLUSIONES Y RECOMENDACIONES156.REFERENCIAS15

1. TEMA:ALGORITMOS DE ENTRENAMIENTO PARA REDES NEURONALES.

2. OBJETIVOS:2.1. OBJETIVO GENERAL Desarrollar algoritmos de entrenamiento para redes neuronales simples.

2.2. OBJETIVOS ESPECFICOS Aplicar los conocimientos adquiridos en clases acerca de redes neuronales para desarrollar algoritmos de entrenamiento para perceptrones simples. Desarrollar un algoritmo de entrenamiento para un perceptrn de una sola capa aplicando la regla de aprendizaje del perceptrn. Desarrollar un algoritmo de entrenamiento para un perceptrn de una sola capa aplicando el mtodo de descenso de gradiente. Implementar los diferentes algoritmos en el software Matlab, simularlos y analizar sus resultados.

3. MARCO TERICO

3.1. PerceptrnUn perceptrn es un modelo simple de neurona basado en el modelo de McCulloch y Pitts y en una regla de aprendizaje basada en la correccin de error. Un perceptrn presenta muchas limitaciones, por ejemplo no es capaz de aprender la funcin lgica XOR. 3.2. Separabilidad linealEn una compuerta lgica simple como AND, OR es sencillo entender lo que una red neuronal puede hacer:

Existen problemas separables linealmente, los cuales se los puede separar con una sola lnea la cual est definida por la ecuacin de frontera:

A lo largo de una lnea recta, la representacin sera:

Ilustracin 1. Compuerta Lgica AND

3.3. Entrenamiento de una red neuronal

Una de las caractersticas ms importantes de las redes neuronales es su capacidad para aprender a partir de alguna fuente de informacin interactuando con su entorno. El propsito del aprendizaje en una red neuronal es hacer que esta aprenda los pesos apropiados en base de una serie de datos de entrenamiento para ello se desarrollan ciertos algoritmos, por lo general se empieza a trabajar con valores de pesos aleatorios y en funcin de cuantas veces ejecutamos el algoritmo desarrollado se analizar que tan fuerte se hace la red neuronal [1].El procedimiento general es hacer que la red aprenda los pesos apropiados desde un conjunto representativo de datos de entrenamiento. Sin embargo, en la mayora excepto en los casos ms simples el clculo directo de los pesos es intratable y para ello se parten de pesos iniciales con valores randmicos y se los va ajustando en pequeos pasos hasta que las salidas requeridas sean producidas.3.4. Aprendizaje del perceptrn

Para un perceptrn simple la frontera de decisin es el hiperplano, se puede decir que el aprendizaje es el proceso de desplazamiento de hiperplanos hasta que cada patrn de entrenamiento sea clasificado correctamente.El problema del aprendizaje de un perceptrn es esquematizar un algoritmo que pueda ser fcilmente implementado en un computador. El desplazamiento puede convenientemente ser dividido en un nmero de pequeos pasos. Si los pesos de la red en el tiempo son , entonces el proceso de desplazamiento corresponde a moverlos una cantidad tal que al tiempo :

3.5. Formulando los cambios de pesos

La verificacin de la regla de aprendizaje conduce a que los patrones de entrenamiento se clasifiquen correctamente.Suponiendo que en una red neuronal la salida actual es:

Donde se tiene que son las activaciones de capaz previas de neuronas; realizando el anlisis respectivo se obtiene que:

3.6. Convergencia del aprendizaje del perceptrnLos cambios de los pesos necesitan ser aplicados repetidamente para cada peso en la red, y para cada patrn de entrenamiento en el conjunto de entrenamiento. Una pasada a travs de todos los pesos del conjunto de entrenamiento completo es llamada una poca de entrenamiento.Eventualmente despus de varias pocas, cuando todas las salidas de la red igualen a los objetivos, es decir los targets, para todos los patrones de entrenamiento, los sern cero y el proceso de entrenamiento cesar, Entonces se dice que el proceso de entrenamiento ha convergido a una solucin.La convergencia demuestra que si existen los pesos adecuados para resolver un problema con perceptrones, los mismos sern encontrados en un nmero finito de repeticiones. Por otro lado para un sistema separable linealmente la regla de aprendizaje del perceptrn encontrar el conjunto de pesos que resuelven el problema correctamente en un finito nmero de iteraciones.3.7. Aprendizaje por descenso del gradiente minimizando el error

El algoritmo de retro propagacin usa una tcnica por gradiente descendiente, esto significa que sigue la "superficie del error" siempre hacia abajo, hasta alcanzar un mnimo local, pero no garantiza que se alcance una solucin globalmente ptima.El aprendizaje de un perceptrn por descenso de gradiente es similar a la regla de aprendizaje, cambiando la manera de actualizar los pesos. Es importante recordar que el entrenamiento de la red neuronal se hace para minimizar la funcin del error cuadrtico

La expresin que provee el incremento en los pesos y que est dada en funcin del gradiente del error es:

El aprendizaje de un perceptrn por descenso de gradiente est compuesta por:

Debido a que la funcin signo(x) no es derivable, se utiliza la funcin sigmoide siendo:.

Si se tiene:

Donde su derivada es:

La derivada de

Al desarrollar matemticamente la expresin para el error, se tiene la siguiente ecuacin:

Dnde:

4. DESARROLLO

4.1. EJERCICIO 1: Aprendizaje del perceptrn de una capa.

Problema: Clasificacin de cazas y bombarderos

B= bombarderoF= cazaMasa Velocidad ClaseTarget

10.1B0

20.2B0

0.10.3F1

20.3B0

0.20.4F1

30.4B0

0.10.5F1

1.50.5B0

0.50.6F1

1.60.7F1

Anlisis del Programa

1. Definimos el conjunto de patrones de entrenamiento (in, target).

2. Inicializamos

Definimos vector1 y vector2 para realizar la grfica para determinar la convergencia

3. Tomar un patrn de entrenamiento y calcular out.

Desarrollamos la funcin signo

4. Calcular la regla de aprendizaje del perceptrn:

5. Actualizar los pesos:

6. Es el ltimo patrn de entrenamiento?NO: Regresa al paso 3.SI: Determinamos si NO: regresa al paso 3. Y poca=poca+1SI: Fin del algoritmo

7. Graficamos la funcin de vs poca:

Anlisis de Resultados

Grfica vs poca

Pesos determinados en la poca 21:

4.2. EJERCICIO 2: Aprendizaje por descenso del gradiente minimizando el error

El aprendizaje de Hebbian

El aprendizaje de Hebbian nos dice que al considerar dos clulas; si el axn de la clula A est lo suficientemente cerca para excitar a una clula B y hacer que esta se dispare; se produce algn proceso de naturaleza metablica que hace que la eficiencia de A como una clula de B se vea incrementada. Resumiendo en otras palabras podemos decir los siguientes dos puntos:1. Si dos neuronas que estn una a cada lado de una sinapsis se activan simultneamente, la fuerza de la sinapsis se incrementa selectivamente.2. Si dos neuronas que estn una a cada lado de una sinapsis se activan de forma asncrona, entonces el efecto de la sinapsis se debilita selectivamente. Hebbian comparado con el aprendizaje del perceptrn Existe evidencia de que el aprendizaje de Hebbian se desarrolla en el hipocampo, su notacin es:

Recordando la regla de aprendizaje del perceptrn es:

Es importante destacar que existen variaciones del aprendizaje de Hebbian que proveen poderosas tcnicas de aprendizaje para redes biolgicamente plausibles. Sin embargo el enfoque tomado en la materia est orientado a algoritmos de aprendizaje para nuestras redes.El aprendizaje por minimizacin del errorLa regla de aprendizaje del perceptrn nos permite determinar los pesos adecuados a fin de que la diferencia entre la salida actual (outj) y el objetivo actual (targj) sea la minima.En funcin a lo anteriormente mencionado, la expresin del error viene dada por:

Dicha expresin del error se denomina Error cuadrtico medio.Un procedimiento utilizado para minimizar el error es el uso del GRADIENTE el cual es la derivada de E respecto de .Calculando gradientes y derivadas.La idea considerada para el gradiente se basa en principios bsicos de clculo, considerando la siguiente figura:

El gradiente se considera la variacin de x respecto de y por lo tanto matemticamente el gradiente se representa con la siguiente frmula:

Minimizacin del descenso del gradiente.Para minimizar el error por el mtodo del gradiente se deben considerar tres casos que son los que dan la pauta para saber que mtodo aplicar:1. Si entonces f(x) incrementa como x se incrementa; entonces se debe disminuir el valor de x.2. Si entonces f(x) disminuye como x se incrementa; entonces se debe incrementar el valor de x.3. Si entonces f(x) est en un mximo o en un mnimo; entonces no se debe cambiar x.Por lo tanto se puede disminuir el valor de f(x) cambiando el valor de x:

Minimizacin del error por descenso de gradiente.Es importante recordar que el entrenamiento de la red neuronal se hace para minimizar la funcin del error cuadrtico

La exprecion que provee el increment en los pesos y que esta dada en funcin del gradiente del error es:

Por otro lado tambin se conoce que la salida del perceptrn es:

Al desarrollar matemticamente la expresin para el error, se tiene la siguiente ecuacin:

En la expresin anterior podemos destacar que:

Ejercicio: Entrenamiento de una red neuronal por el mtodo del descenso de gradiente.

Implementacin en Matlab un programa que simule el entrenamiento de una red neuronal de forma que resuelva el problema de clasificacin de aviones de acuerdo a su masa y velocidad, utilizando el mtodo del descenso de gradiente

Anlisis del problema:La tabla de entradas y salidas planteada para este problema es la que se presenta a continuacin:

Masa (mass)Velocidad(speed)Clase(class)

1.00.1BOMBER

2.00.2BOMBER

0.10.3FIGHTER

2.00.3BOMBER

0.20.4FIGHTER

3.00.4BOMBER

0.10.5FIGHTER

1.50.5BOMBER

0.50.6FIGHTER

1.60.7FIGHTER

El programa debe trabajar de tal forma que de acuerdo a las combinaciones de masa y velocidad mostradas en la anterior tabla, se obtenga la clase respectiva de avin a la cual corresponde. Con el propsito de facilitar la programacion se trabajara en MATLAB asumiendo que BOMBER=0 y FIGHTER=1.

Cdigo de MatlabCDIGO EN MATLAB

clcclear all velocidad=[0.1,0.2,0.3,0.3,0.4,0.4,0.5,0.5,0.6,0.7];masa=[1,2,0.1,2,0.2,3,0.1,1.5,0.5,1.6];clase=[0,0,1,0,1,0,1,0,1,1]; alfa=4; n=0.1;in0=1;w0=1;w1=1;w2=1;vector1=[];vector2=[]; E=0.1;epoca=1;Errortotal=1; while Errortotal>E Errortotal=0; for i=1:1:length(masa) in1=masa(i); in2=velocidad(i); net=in0*w0+in1*w1+in2*w2; out=1/(1+exp(-alfa*net)); out1(i)=out; deltaw0=n*(clase(i)-out)*alfa*out*(1-out)*in0; deltaw1=n*(clase(i)-out)*alfa*out*(1-out)*in1; deltaw2=n*(clase(i)-out)*alfa*out*(1-out)*in2; w0=w0+deltaw0; w1=w1+deltaw1; w2=w2+deltaw2; Error=0.5*(clase(i)-out)^2; Errortotal=Errortotal+Error; end vector1=[vector1 epoca]; vector2=[vector2 Errortotal]; epoca=epoca+1 figure(1) plot(vector1,vector2) endout1deltaw0deltaw1deltaw2w0w1w2epoca

Resultados:Al ejecutar el cdigo detallado anteriormente se obtuvieron los valores de los tres pesos w0, w1, w2 y el nmero de pocas alcanzadas.

Tambien se obtuvo la salida out1 que se aproxima a los objetivos clase:

A continuacin se muestra la figura final obtenida, cabe recalcar que durante la ejecucin del programa se puede observar como la red neuronal va aprendiendo y el error va disminuyendo aproximndose a cero.

Figura 1 Error vs poca.

5. CONCLUSIONES Y RECOMENDACIONES

Al comparar los dos programas realizados en matlab podemos decir que el mtodo de aprendizaje de la red neuronal sin utilizar el descenso de gradiente es ms rpido que el que si lo utiliza, esto debido a que se necesitaron menos pocas para que las salidas puedan alcanzar a los objetivos.

El mtodo de aprendizaje para perceptrones por descenso de gradiente no obtiene una salida que sea exactamente igual al objetivo sino que brinda una aproximacin lo ms cercana posible a estos valores, esto es debido a que se trabaja con incrementos diferenciales para los pesos y tericamente la salida se podr aproximar a los objetivos pero nunca llegara a ser la misma.

6. REFERENCIAS

John A. Bullinaria, Introduction to Neural Networks, Capitulos L3-L5 : Lecture 3, 2004Disponible en:http://www.cs.bham.ac.uk/~jxb/NN/l3.pdfhttp://www.cs.bham.ac.uk/~jxb/NN/l4.pdfhttp://www.cs.bham.ac.uk/~jxb/NN/l5.pdf

6 | Page