Escolar Documentos
Profissional Documentos
Cultura Documentos
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
Luego se procedi a transponer los datos a travs del comando en MatLab: transpose (nombre_vector)
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.
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.
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.
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.
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
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
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:
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:
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.
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.
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.