Está en la página 1de 6

Prctica de Laboratorio # 2

Asignatura: Control Inteligente Tema: Trabajo con las Redes Neuronales Artificiales empleando el software Matlab. Creacin, entrenamiento y validacin de una red neuronal artificial. Ttulo: Las Redes Neuronales Artificiales. Aplicaciones

Objetivos de la prctica:
Que los estudiantes desarrollen habilidades prcticas en el trabajo con las redes neuronales artificiales utilizando el software Matlab. Que los estudiantes apliquen los conocimientos tericos adquiridos para la solucin de problemas aplicando redes neuronales artificiales. Que los estudiantes sean capaces de crear, entrenar y validar diferentes arquitecturas de RNA.

Desarrollo de la Prctica: I. Introduccin: Recordatorio de los aspectos fundamentales de las Redes Neuronales Artificiales estudiados.
Funciones de activacin: - Funcin de activacin lineal. - Funcin de activacin de lmite rgido. - Funcin de activacin sigmoidea. Caractersticas de una Red Neuronal Artificial: - Un patrn de conexiones entre neuronas (arquitectura). - Su mtodo o forma de determinar los pesos de las conexiones (algoritmo de aprendizaje). - Su funcin de activacin. Etapas a seguir en el empleo de una RNA: - Recoleccin de los datos. - Entrenamiento de la red neuronal artificial. - Validacin de la red neuronal artificial entrenada. Principales arquitecturas de Redes Neuronales Artificiales estudiadas: - RNA Perceptron simple capa. - RNA ADALINE/MADALINE. - RNA Perceptron multicapa. - RNA de Base Radial (RBF). - RNA de Mapas Autoorganizados (SOM).

Aspectos importantes del aprendizaje de una RNA: - El conocimiento de las redes neuronales se encuentra almacenado en los pesos y bias. - El entrenamiento puede ser por lotes o batch (se actualizan los pesos al concluir) o incremental (se actualizan los pesos en cada iteracin). - Entrenamiento de una red neuronal puede ser detenido por dos factores: la cantidad de pocas y el error de aprendizaje. - Compromiso entre memorizacin y generalizacin.

II.

Desarrollo:
Ejercicio 1: Simule el comportamiento de una funcin lgica OR empleando una red neuronal artificial de tipo perceptron simple capa. Actividades: Establecer la arquitectura de la red neuronal: Debido a que sern dos las entradas necesarias para aproximar la funcin deseada y una la salida que la misma proporcionar se determina que la red perceptron tendr dos neuronas en la capa de entrada y una en la de salida. Debido a la estructura clsica del perceptron simple capa la funcin de activacin ser el lmite rgido.

Crear la RNA con comandos: El comando que brinda el Matlab para la creacin de una RNA perceptron simple capa es el siguiente: net = newp (PR, S) PR: Es una matriz de Rx2 elementos con los valores mximo y mnimo de los R elementos de entrada a la RNA. S: Nmero de neuronas. >>net = newp([0 1; 0 1], 1); Cul es el valor inicial de los pesos y bias de la red? Esto se puede verificar accediendo a los miembros de la estructura RNA creada. IW: contiene la matriz de pesos de entradas. LW: contiene la matriz de pesos de las capas. b: contiene el vector de bias. >>net.IW{1,1} >>net.b{1} El valor inicial de los pesos y bias se debe a la funcin de inicializacin que tienen, como puede verse con los siguientes comandos: >>net.inputWeights{1,1} >>net.biases{1}

Determinar los patrones: >>p = [1 0 1 0; 0 1 1 0]; >>t = [1 1 1 0];

Probar el desempeo de la RNA para cada uno de los patrones de la siguiente forma: >>p1=[1;1] >>y1 = sim(net,p1) Y as sucesivamente para el resto.

Entrenamiento de las RNA: Inicialice la RNA: Para poder inicializar con valores diferentes a cero es necesario primero cambiar las funciones de inicializacin de los pesos de entrada y los bias con los siguientes comandos: >>net.inputWeigths{1,1}.initFcn='rands'; >>net.biases{1,1}.initFcn='rands'; Y posteriormente inicialice la red. >> net=init(net); Compruebe el cambio de los pesos y bias. Pase entonces al entrenamiento de la red propiamente dicho, el cual puede realizarlo de dos formas: entrenando la RNA patrn a patrn mediante learnp y simulando o empleando el comando train. Cuntas pocas tiene la red por defecto para el entrenamiento? >>net=train(net,p,t) Utilizar este comando permitir ver el entrenamiento poca a poca y como resultado devolver una grfica del error en funcin de las pocas lo cual puede ser muy ilustrativo. Compruebe que haya aprendido los patrones enseados mediante la simulacin. >>y =sim(net, pn)

Comprobar que sucede si se hace el bias igual a cero. Ejercicio 2: Aproxime el comportamiento de una funcin lgica XOR empleando una red neuronal artificial de tipo Perceptron simple capa. Actividades: Establecer la arquitectura de la red neuronal: Nuevamente se tiene una funcin que para simularla se necesitan dos neuronas de entrada a la red y una de salida, por lo que esta ser la estructura de la red neuronal a crear. La funcin de activacin de la capa de salida es de lmite rgido debido a especificaciones de diseo de esta red neuronal.

Crear la RNA con comandos: Se emplea el mismo comando visto en el ejercicio anterior por lo que la creacin de la red neuronal quedara de la forma siguiente: >>net = newp([0 1; 0 1], 1); Sucede lo mismo que en el caso anterior con el valor inicial de los pesos.

Determinar los patrones: >>p = [1 0 1 0; 0 1 1 0]; >>t = [1 1 0 0]; Probar el desempeo de la RNA para cada uno de los patrones de la siguiente forma: >>p1=[1;1]; >>y1 = sim(net,p1) Compruebe de igual forma el desempeo de la red para los dems patrones. Seguidamente pase al entrenamiento de la red.

Para el entrenamiento de la red neuronal sigue los siguientes pasos: Inicialice la RNA: Al igual que en el ejercicio anterior hay que modificar las funciones de inicializacin con las que se crea la red por defecto para que los pesos tengan un valor inicial diferente de cero. Luego la inicializa con el comando ya visto. >> net=init(net); Compruebe que hubo un cambio en los pesos y bias. Pase entonces a entrenar la red empleando el comando visto anteriormente >>net=train(net,p,t) En un primer entrenamiento se observa que no se logra alcanzar el error deseado por lo que se prueba aumentando el nmero de pocas. >> net.trainParam.epochs=500; Compruebe que a pesar de haber aumentado las pocas no se logra alcanzar el error deseado por lo que se concluye que con esta red no se puede resolver el problema planteado por lo que buscamos otra variante.

Ejercicio # 3: Resuelva el ejercicio anterior pero empleando una red neuronal artificial de tipo Perceptron multicapa. Establecer la arquitectura de la red neuronal: La red neuronal por caractersticas propias contar con una capa de entrada, una oculta y una de salida. Nuevamente se tiene que son dos entradas y una salida las necesarias para simular la funcin que se desea, por lo que la red neuronal a emplear tendr dos neuronas en la capa de entrada y una en la de salida.

En cuanto a las neuronas de la capa oculta, se comenzar probando con un nmero mnimo y luego se aumentar el nmero de elementos ocultos hasta obtener el deseado, en dependencia del error cometido por la red y de la complejidad de la arquitectura. En la capa oculta usarn funciones de activacin de tipo sigmoidea (tan-sigmoidea) y en la capa de salida funciones de activacin lineal. Crear la RNA con comandos: >>net= newff(PR,[S1 S2...Sn],{TF1 TF2...TFn},BTF,BLF,PF); PR: Es una matriz de Rx2 elementos con los valores mximo y mnimo de los R elementos del vector de entrada a la RNA. Si: Tamao de la isima capa, para n capas. TFi: Funcin transferencial para la isima capa (por defecto: tansig) BTF: Funcin de entrenamiento para la red BP (por defecto: traingdx). Posibles variantes: trainlm, trainbfg, trainrp, traingd, traingdm BLF: Funcin de aprendizaje para los pesos y bias de la red BP (por defecto: learngdm). Posibles variantes: learngd PF: Funcin de rendimiento (Por defecto: mse). Posibles variantes: msereg, mae, En este caso sera: >>net=newff([0 1; 0 1], [1, 1], {'tansig', 'purelin'}, 'traingd'); Probar el desempeo de la RNA para cada uno de los patrones (sern los mismos del ejercicio anterior) de la siguiente forma: >>p = [1 0 1 0; 0 1 1 0]; >>t = [1 1 0 0]; >>p1=[1;1] >>y1 = sim(net,p1) Para el entrenamiento de la red neuronal siga los siguientes pasos: Inicialice la RNA: >> net=init(net); Pase entonces a entrenar la red empleando el comando visto anteriormente >>net=train(net,p,t); Variar los siguientes parmetros alternativamente: Nmero de elementos en la capa oculta (aumentar); nmero de pocas si es necesario (aumentar) hasta lograr entrenar la red adecuadamente. Compruebe que haya aprendido los patrones enseados mediante la simulacin. >>y =sim(net, pn)

III.
-

Conclusiones:
Con la prctica de laboratorio realizada se pudo comprobar algunas de las caractersticas de las redes neuronas artificiales estudiadas en clases. Se trabaj con una de las arquitecturas ms difundidas: el Perceptron multicapa. Se conocieron diferentes variantes que trae implementadas el Matlab para el trabajo con las redes neuronales artificiales en cuanto a la arquitectura, forma de entrenamiento, funciones de activacin, funciones de rendimiento, etc. Se adquirieron habilidades para el trabajo con las redes neuronales artificiales en Matlab.

IV.

Trabajo Individual (Tarea):

1. Aproxime una funcin lgica AND empleando una red neuronal artificial de tipo Perceptron simple capa. Describa los pasos realizados y arribe a conclusiones. 2. Resuelva el ejercicio tres variando al menos una vez los siguientes parmetros: funcin transferencial de la capa oculta, funcin de entrenamiento. Arribar a conclusiones.