Redes neuronales en control de sistemas Marco Teórico Las redes neuronales tratan de emular ciertas características propias de los humanos, una muy importante es la experiencia. El ser humano es capaz de resolver problemas acudiendo a la experiencia acumulada. Las redes neuronales son un modelo artificial y simplificado del cerebro, que es el sistema por el cual podemos adquirir conocimiento a través de la experiencia. Una red neuronal es un nuevo sistema para el tratamiento de la información, cuya unidad básica de procesamiento está inspirada en la célula fundamental del sistema nervioso humano: la neurona. Todos los procesos del cuerpo humano se relacionan de alguna u otra forma con la actividad de las neuronas. Las mismas son un componente relativamente simple, pero cuando se conectan en forma conjunta son muy poderosas. Lo que básicamente ocurre en una neurona biológica es lo siguiente: la neurona es estimulada o excitada a través de sus entradas y cuando se alcanza un cierto umbral, la neurona se dispara o activa, pasando una señal hacia el axón. La misión de las neuronas es: ● Recoger información que llega a ellas en forma de impulsos procedentes de otras neuronas o receptores. ● Integran informacion en un código de activación propio de la célula. ● Transmiten informacion codificada en forma de frecuencia de impulsos a través de su axón. ● A través de sus ramificaciones el axón efectúa la distribución espacial de los mensajes. ● En sus terminales transmite los impulsos a las neuronas subsiguientes o a las células efectoras. Debido a las capacidades que tiene el cerebro para resolver problemas complejos las RNA nacen en base a las cualidades de una red neuronal biológica. 1943 ­ Warren McCulloch y Walter Pitts lanzaron una teoría acerca de la forma de trabajar de las neuronas. Ellos modelaron una red neuronal simple mediante circuitos eléctricos. 1949 ­ Donald Hebb fue el primero en explicar los procesos del aprendizaje desde un punto de vista psicológico, desarrollando una regla de cómo el aprendizaje ocurría. Su idea fue que el aprendizaje ocurre cuando ciertos cambios en una neurona eran activados. Los trabajos de Hebb formaron las bases de la Teoría de las Redes Neuronales. 1957 ­ Frank Rosenblatt comenzó el desarrollo del Perceptron. Esta es la red neuronal más antigua; utilizándose hoy en día para aplicación como identificador de patrones. Este modelo era capaz de generalizar, es decir, después de haber aprendido una serie de patrones podía reconocer otros similares, aunque no se le hubiesen presentado en el entrenamiento. 1960 ­ Bernard Widroff/Marcian Hoff desarrollaron el modelo Adaline (ADAptative LINear Elements). Esta fue la primera red neuronal aplicada a un problema real (filtros adaptativos para eliminar ecos en las líneas telefónicas) que se ha utilizado comercialmente durante varias décadas. 1969 ­ Marvin Minsky/Seymour Papert casi producen la “muerte abrupta” de las Redes Neuronales; ya que probaron (matemáticamente) que el Perceptrons no era capaz de resolver problemas relativamente fáciles, como el aprendizaje de una función no­lineal. Esto demostró que el Perceptron era muy débil, porque las funciones no­lineales son empleadas en computación y en los problemas del mundo real. 1985 ­ John Hopfield provocó el renacimiento de las redes neuronales con su libro: “Computación neuronal de decisiones en problemas de optimización.” 1986 ­ David Rumelhart/G. Hinton redescubrieron el algoritmo de aprendizaje de propagación hacia atrás (backpropagation). A partir de 1986, el panorama fue alentador con respecto a las investigaciones y el desarrollo de las redes neuronales. En la actualidad, es un campo interesante, que promete avances a corto plazo, sobre todo en reconocimiento de imagen y sonido. ¿Qué son las redes neuronales? Las Redes Neuronales son un campo muy importante dentro de la Inteligencia Artificial. Se inspiran en el comportamiento del cerebro humano (neuronas y sus conexiones), trata de crear modelos artificiales que solucionen problemas difíciles de resolver mediante técnicas algorítmicas convencionales. Una red neuronal artificial está formada por: ● Capa de entrada ● ● Determinado número de capas ocultas (que también puede ser cero) Capa de salida. Figura 1. Ejemplo de red neuronal Entre cada una de las capas que forman la red neuronal existen matrices de pesos sinápticos, que son los que le otorgan a la red neuronal su potencial de cálculo y capacidad de aprendizaje, ya que son estos los que varían a medida que el sistema aprende. Las redes neuronales artificiales (RNA) tienen muchas ventajas debido a que están basadas en la estructura del sistema nervioso, principalmente el cerebro. ● Aprendizaje : Las RNA tienen la habilidad de aprender mediante la etapa de aprendizaje. Consiste en proporcionar a la RNA datos como entrada a su vez que se le indica cuál es la salida esperada. ● Auto organización : Una RNA crea su propia representación de la información en su interior. ● Tolerancia a fallos : Debido a que una RNA almacena la información de forma redundante, ésta puede seguir respondiendo de manera aceptable aun si se daña parcialmente. ● Flexibilidad : Una RNA puede manejar cambios no importantes en la información de entrada. ● Tiempo real : La estructura de una RNA es paralela, por lo cual si esto es implementado con computadoras, se pueden obtener respuestas en tiempo real. ¿Cómo se aplican al control de sistemas? Las redes neuronales tienen la capacidad de aprender, por lo que si conocemos la entrada del sistema, la salida objetivo y la salida real del sistema ante una entrada dada, un controlador integrado por una red neuronal sería capaz de modificar sus parámetros aprendiendo la dinámica de la planta hasta conseguir un sistema confiable. A efectos prácticos, en el estado estacionario, los resultados obtenidos por la red neuronal serían muy similares a la función de transferencia desconocida del controlador. Se convertiría por tanto en un sistema de control variable en el tiempo ya que la red iría cambiando su estructura con el paso del tiempo y aprendiendo la dinámica del sistema, lo que recibe el nombre de un controlador adaptable. Los controladores adaptables se utilizan para diseñar sistemas de control para plantas que son desconocidas a priori y configuran controladores variables en el tiempo. Los principios de control basados en redes neuronales se pueden resumir en estas estructuras: ● Control Supervisado: La red aprende un conjunto de entradas y las salidas deseadas, y puede de esta forma identificar un sistema dinámico. ● Control Inverso Directo: La red aprende la dinámica inversa de un sistema, de modo que aplicando la señal, la red puede calcular la acción de control a realizar. ● Retropropagacion de Utilidad: Permite optimizar la función de transferencia. Requiere de un modelo del sistema a controlar, el cual puede ser otra red neuronal. ● Crítico Adaptativo: Al igual que el esquema anterior, sirve para optimizar una función de transferencia, pero sin necesidad de un modelo de planta, o por lo menos, sin que sea necesario un modelo determinista. El crítico, consiste normalmente en otra red, es el encargado de evaluar el comportamiento de la red principal, para que de esta forma pueda adaptar sus pesos. ¿Qué tipo de red es? El controlador NN Predictive de Simulink utiliza una red neuronal cuyo tipo de aprendizaje clasifica como aprendizaje supervisado y utiliza el algoritmo de backpropagation. Aprendizaje supervisado Es una técnica para deducir una función a partir de los datos de entrenamiento. Los datos de entrenamiento consisten en normalmente un objeto con dos componentes: una componente del par son los datos de entrada y el otro, los resultados deseados. Estos algoritmos requieren el emparejamiento de cada vector de entrada con su correspondiente vector de salida. El entrenamiento consiste en presentar un vector de entrada a la red, calcular la salida de la red, compararla con la salida deseada, y el error resultante se utiliza para realimentar la red y cambiar los pesos de acuerdo con un algoritmo que tiende a minimizar el error. Algoritmo utilizado: Backpropagation El algoritmo Backpropagation funciona de la siguiente manera: 1. La entrada se propaga por las capas hasta generar una salida. 2. La señal de salida se compara con la salida deseada y se calcula una señal de error para cada una de las salidas. 3. Las salidas de error se propagan hacia atrás, desde la capa de salida, hacia todas las neuronas de la capa oculta que contribuyen directamente a la salida. 4. Basándose en la señal de error percibida, se actualizan los pesos de conexión de cada neurona, para que la red converja hacia un estado que permita clasificar correctamente todos los patrones de entrenamiento. A medida que se entrena la red, las neuronas de las capas intermedias se organizan a sí mismas de tal modo que las distintas neuronas aprenden a reconocer distintas características de la entrada. Después del entrenamiento, cuando se les presente un patrón arbitrario de entrada las neuronas de la capa oculta de la red responderán con una salida activa si la nueva entrada contiene un patrón que se asemeje a aquella característica que las neuronas individuales hayan aprendido a reconocer durante su entrenamiento. Ejemplo de aplicación en Simulink Para el ejemplo se utilizó el controlador NN predictivo. Se tiene la siguiente función de transferencia: Figura 2. Función de transferencia Primero se simula el modelo sin red neuronal, para ver cuánto de error existe: Figura 3. Modelo normal. Figura 4. Figura modelo normal. Para generar los datos de entrenamiento de la red neuronal se necesito de un modelo que fuera adecuado para reducir el error, el modelo que se consiguió es el siguiente: Figura 5. Modelo FuncionTransf El modelo utilizando el controlador NN predictivo se muestra a continuación: Figura 6. Usando NN predictive controller Para comenzar a llenar los datos de la plantilla del controlador comenzaremos con los siguientes datos: Figura 7. Planta de identificación Se tendrán 1000 datos de entrenamiento, y los valores del intervalo estarán entre el rango [1, 0.5]. Se agrega el modelo para generar los datos y luego se generan los datos: Figura 8. Datos generados Una vez que ya se tienen los datos se debe entrenar la red neuronal con los datos, teniendo como resultado: Figura 9. Red neuronal entrenada Figura 10. Validación de los datos y entrenamiento de los datos. Una vez que se terminó con la planta de identificación, se termina llenando los parámetros del controlador y se puede simular, obteniendo la gráfica de la referencia y la salida de la planta. Figura 11. Grafica referencia vs. salida de la planta. Se puede observar que la red neuronal disminuye el error respecto a la primera gráfica del modelo sin red neuronal. Conclusiones Se puede concluir que la redes neuronales pueden ser aplicadas para el control de sistemas; ya que van aprendiendo de acuerdo a los cambios, teniendo datos de entrenamiento, para ello se debe tener cuidado con el modelo que se utiliza para generarlos y la función de entrenamiento. Referencia ● P. Isasi, I. M. Galván, “Redes de neuronas artificiales: un enfoque práctico”. Pearson­Prentice Hall, 2004. ● Christos Stergiou and Dimitrios Siganos “Neural Networks”. https://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/cs11/report.html#What is a Neural Network ● Howard Demuth, Mark Beale, “Neural Network Toolbox For Use with MATLAB”. ● Wikipedia “Neural Network”. https://en.wikipedia.org/wiki/Artificial_neural_network ● http://halweb.uc3m.es/esp/Personal/personas/jmmarin/esp/DM/tema3dm.pdf ● http://www2.ulpgc.es/hege/almacen/download/38/38584/practica_ia_2.pdf