Você está na página 1de 22

REPBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACION SUPERIOR INSTITUTO UNIVERSITARIO DE TECNOLOGIA JOSE ANTONIO

ANZOATEGUI CONVENIO CUBA-VENEZUELA MAESTRA EN INFORMTICA Y AUTOMATIZACIN INDUSTRIAL

Tarea Evaluativa #1. Redes Neuronales Artificiales y Algoritmos Genticos.

Profesor: Dr.C Mirtha Irizar

Realizado por: Ing. Enyl Martnez Ing. Thais Hernndez

El Tigre, Marzo 2013

INTRODUCCION

Las redes neuronales no es ms que un procesador paralelo distribuido que es propenso por naturaleza almacenar conocimiento experimental y hacerla disponible para su uso, por esta razn, las redes diseadas con propsitos de control requieren desarrollar tres etapas esenciales: la recoleccin de los datos que almacenaran el conocimiento, el entrenamiento que es el proceso en la cual la red aprende y almacena el conocimiento y la validacin, que es cuando se comprueba la calidad del conocimiento adquirido.

De esta manera se plantea una actividad a fin de crear, entrenar y probar una red neuronal para un sistema de primer orden, estudiando a la par los parmetros implcitos del diseo de la red neuronal propuesta.

Continuando con este orden de idea, los algoritmos genticos (GA) son algoritmos de bsqueda y optimizacin basados en los mecanismos de seleccin natural y gentica. Este concepto fue creado por Holland en la dcada del 70, en la cual se estudiaron los algoritmos basados en la evolucin natural.

La actividad a realizar en segunda fase, tiene como objetivo crear, modificar y probar un algoritmo gentico empleando las diferentes herramientas con que cuenta el MatLab y analizar la influencia de los operadores y parmetros del mismo.

Actividad No. 1: En primer lugar se mont el diagrama de la prctica, el cual constituye un sistema de primer orden, cuyas entradas son una seal sinusoide y un paso escaln. Figura 1. Diagrama de la prctica en Simulink

A partir del diagrama, se configur segn las especificaciones dadas en el proyecto: El tiempo de muestreo de todos los elementos ser 0.1 La estructura a emplear ser arreglos (array). El mtodo de solucin a emplear ser Runge-Kutta (ode4) con paso fijo (fixedstep). El tiempo de simulacin ser de 50 segundos. Luego los datos fueron exportados al MatLab

Figura 2. Obtencin de los datos del sistema

Luego se procedi a transponer los datos a travs del comando en MatLab: transpose (nombre_vector)

Figura 3. Transposicin de los datos de la simulacin

A partir de all se obtienen los datos de entrada y salida para poder crear, entrenar y probar una red neuronal artificial que emule el sistema. Las redes neuronales con propsitos de control, necesariamente deben incluir las etapas de recoleccin de datos, que es aquella en la cual se seleccionan los datos,

que en sta investigacin corresponde a las entradas y salidas del sistema. La redes tienen la capacidad de aprendizaje adaptativo, la cual es la caracterstica ms atractiva de ellas. El entrenamiento, que es la segunda etapa, es aquella en la cual el proceso comprueba la calidad del conocimiento adquirido. Cuando se desarrolla una red neuronal, se puede realizar por dos mtodos: el Toolbox de las redes neuronales de MatLab (nntool) o desarrollar la red. En ste estudio se utiliz el nntool del MatLab para desarrollar la red del sistema propuesto. Continuando con este orden de ideas, se procede abrir el nntool; obtenindose la siguiente pantalla. Figura 4. Ventana de herramienta de la creacin de una Red Neuronal

Despus de abrir esta aplicacin, se procede a importar los datos de entrada del sistema, en este caso: input1 que corresponde a la matriz transpuesta de los datos obtenidos del Patron.

Figura 5. Ventanas de importacin de datos del nntool

Al importar los datos, se puede observar que los datos input1 e input2 ya estn cargados en la ventana de la aplicacin. Continuando, se procede a crear la red neuronal.

Figura 6. Ventanas con los datos cargados del nntool

Para crear la red neuronal se selecciona el comando new, se le asigna un nombre proyecto, se selecciona los datos de entrada input1 y de salida input2, se disea con una capa oculta de una (1) neurona y se selecciona el botn create Figura 7. Ventana para crear la Red Neuronal

Al finalizar este proceso, la red neuronal est creada; por lo cual se procede a entrenarla Figura 8. Ventana con la Red Neuronal creada

A partir de este momento, se comienza a realizar la segunda etapa que es el entrenamiento de la red neuronal artificial de tipo Perceptron multicapa con neuronas ocultas de tipo sigmoide y neuronas de salida lineales, slo que la red diseada es de una neurona. Para ello, se selecciona la ventana denominada train y se cargan los datos de entrada y salida.

Figura 9. Ventana de entrenamiento de la Red Neuronal

Si desea observar los parmetros de entrenamiento, se debe seleccionar la ventana denominada Training Parameters, entre los cuales se definen las pocas o nmero de iteraciones, entre otros parmetros.

Figura 10. Ventana de parmetros de la Red Neuronal

Sin importar en cul de las dos ventanas, el usuario se encuentra, al seleccionar el botn Train Network la red comienza a entrenarse, para ello muestra la siguiente figura: Figura 11. Ventana de parmetros de la Red Neuronal

En este caso en particular, la red mostrada est conformada por una capa oculta y una sola neurona. Realizado este procedimiento, se dispone a simular la red,

para ello se debe seleccionar la ventana simulate con la cual se abre la siguiente ventana: Figura 12. Ventana de parmetros de la Red Neuronal

Se debe seleccionar los datos de entrada y el botn denominado Simulate Network, con la cual se inicia el comando de simulacin para obtener los resultados. Al cerrar esta pantalla, se observar que la ventana principal de la aplicacin del nntool corresponde a: Figura 13. Ventana de parmetros de la Red Neuronal

A la izquierda se observan los datos cargados de entrada y salida que son necesarios en la creacin de la red neuronal, en el centro la red creada, y a la derecha los datos obtenidos de la simulacin con el respectivo error. Para poder exportar los datos, se debe seleccionar el botn export, seleccionar los datos que se desean exportar, que en este caso corresponde a proyecto1_outputs y proyecto1_errors. Figura 14. Ventana de parmetros de la Red Neuronal

Posteriormente, en la consola del MatLab se debe utilizar el comando: plot (tout,proyecto1_outputs);

y se obtiene la siguiente grfica:

Figura 15. Simulacin de la prctica con red neuronal

Figura 16. Simulacin de la prctica con el simulink

En funcin de lo observado, entonces las investigadoras deciden utilizar el mtodo utilizado visto en clase en el Laboratorio 1, ejercicio 3; para ello se desarrollo un archivo .m para facilitar los comandos Figura 15. Archivo .m utilizado

De all se obtuvo la siguiente grfica:

Figura 16. Resultados obtenidos

En esta grfica se puede observar en la parte de arriba los resultados de la simulacin y en la parte de abajo los resultados del diagrama corrido por el simulink. Al colocar ambas grficas en una sola grfica se observa que la respuesta es:

Figura 17. Resultados obtenidos en una sola grfica

Es importante recalcar el hecho que haciendo la modificacin en el nmero de iteraciones (pocas), se observa cambios en la respuesta; por ejemplo con cinco (5) iteraciones y una sola neurona en la capa oculta se obtiene:

Figura 18. Resultados obtenidos

Para mejorar esta solucin hay que aumentar el nmero de neuronas; por ejemplo dos (2) neuronas: Figura 19. Resultados obtenidos

Actividad 2: Algoritmos Genticos Objetivos: - Crear, modificar y probar un algoritmo gentico empleando Matlab. - Analizar la influencia de los operadores y parmetros de un algoritmo gentico. Desarrollo: Los algoritmos genticos se inspiran en la evolucin biolgica y su base gentico-molecular. Estos algoritmos hacen evolucionar una poblacin de individuos sometindola a acciones aleatorias semejantes a las que actan en la evolucin biolgica (mutaciones y recombinaciones genticas), as como tambin a una seleccin de acuerdo con algn criterio, en funcin del cual se decide cules son los individuos ms adaptados, que sobreviven, y cules los menos aptos, que son descartados. La finalidad del presente estudio consiste en crear un algoritmo gentico que permita estimar los parmetros a y b del sistema a partir de los datos de salida al evaluar el sistema modificado. En primer lugar se cre la funcin Soldir que permite calcular la solucin real o directa del sistema con un estimulo de tipo escaln.

function y=Soldir(a,b,t) num=[a]; den=[b 1]; sys=tf(num,den); y=step(sys,t);


En segundo lugar se cre la funcin SumErrorC que calcula la nueva repuesta o solucin del sistema con los nuevos parmetros estimados y la suma de los errores cuadrticos (Sum of Squared Errors).

function f=SumErrorC(x,yreal,t) ymod=Soldir(x(1),x(2),t); f=sum((yreal-ymod).^2);


En tercer lugar se cre el algoritmo gentico mediante la funcin ga de MatLab para la estimacin de los parmetros tomando como base la funcin de aptitud y evaluacin de los resultados con diferentes operadores y criterios de parada del algoritmo.

close all; clear all; numberOfVariables=2; T1=[0:0.1:20]; ydir= Soldir(1.3,3.6,T1); plot(T1,ydir);

opts = gaoptimset( 'PopulationType', 'doubleVector', ... 'PopInitRange', [0 0;4 4], ... 'PopulationSize',50, ... 'EliteCount', 1, ... 'CrossoverFraction', 0.8, ... 'MigrationDirection','forward', ... 'MigrationInterval',1, ... 'MigrationFraction',0, ... 'Generations',500, ... 'TimeLimit', Inf, ... 'FitnessLimit', -Inf, ... 'StallGenLimit', Inf, ... 'StallTimeLimit', inf, ... 'InitialPopulation',[], ... 'InitialScores', [], ... 'PlotInterval',1, ... 'FitnessScalingFcn',@fitscalingrank, ... 'SelectionFcn', {@selectiontournament,2}, ... 'CrossoverFcn',@crossoverscattered, ... 'MutationFcn',{@mutationuniform,0.1},... 'PlotFcns', {@gaplotbestf,@gaplotdistance}, ... 'Display', 'iter', ... 'OutputFcns', @gaoutputgen, ... 'CreationFcn',@gacreationuniform, ... 'HybridFcn',[ ], ... 'Vectorized','off'); [x,Fval,exitFlag,Output]=ga(@(x)SumErrorC(x,ydir,T1),number OfVariables,opts);
Se obtuvo como resultado la corrida del algoritmo gentico mostrada en la Fig. 20.

Figura 20. Resultados del Algoritmo Gentico

Figura 21. Historial interactivo del error

La solucin que arroja el algoritmo gentico se encuentra almacenada en el vector x

Figura 22. Vector X de soluciones del Algoritmo Gentico

El primer valor representa el parmetro a estimado y el segundo valor representa el parmetro b estimado. Con estos parmetros se evalu el sistema para poderlo comparar con el sistema real, obteniendo la siguiente solucin.

Figura 23. Comparacin de la salida del sistema con los parmetros establecidos y con los parmetros obtenidos del AG.

CONCLUSIONES

En relacin con la primera actividad relacionada con las Redes Neuronales, se concluye que se pueden simular sistemas de primer orden partiendo del conocimiento del patrn de entrada y de salida del sistema a estudiar.

Se utiliz dos mtodos para crear, entrenar y probar la red Neuronal del sistema propuesto, el primero fue el toolbox de las redes neuronales (nntool) el cual es un mtodo grfico fcil de utilizar y el segundo mtodo es utilizando la consola de MatLab para lo cual se deben teclear cada comando por separado para la creacin, entrenamiento y simulacin de los resultados.

En este orden de ideas se concluye que utilizando la consola de dio mejores resultados que utilizando el toolbox de redes neuronales (nntool); se induce que la diferencia estriba en que en el primer caso los pesos son dados a travs de una funcin aleatoria, en cambio con el nntool los pesos no pueden ser asignados aleatoriamente.

En relacin con la segunda parte de la actividad se concluye que a travs del conocimiento de la entrada y de la salida del sistema se pueden estimar los parmetros del sistema con el desarrollo de un algoritmo gentico.

El algoritmo gentico permite estimar los parmetros de una manera aproximada. Para evitar el cambio en los parmetros del algoritmo, se plantea como solucin realizar el algoritmo varias veces, y, calcular una media de los valores obtenidos como aproximacin a la solucin deseada.

Você também pode gostar