México a de 20
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY
PRESENTE.
, en los sucesivo LA OBRA, en virtud de lo cual autorizo a el Instituto Tecnológico y de Estudios Superiores de Monterrey (EL INSTITUTO) para que efectúe la divulgación, publicación, comunicación pública, distribución, distribución pública y reproducción, así como la digitalización de la misma, con fines académicos o propios al objeto de EL INSTITUTO, dentro del círculo de la comunidad del Tecnológico de Monterrey.
El Instituto se compromete a respetar en todo momento mi autoría y a otorgarme el crédito correspondiente en todas las actividades mencionadas anteriormente de la obra.
De la misma manera, manifiesto que el contenido académico, literario, la edición y en general cualquier parte de LA OBRA son de mi entera responsabilidad, por lo que deslindo a EL INSTITUTO por cualquier violación a los derechos de autor y/o propiedad intelectual y/o cualquier responsabilidad relacionada con la OBRA que cometa el suscrito frente a terceros.
Modelación y Control de un MiniHelicópteroEdición Única
Title
Modelación y Control de un MiniHelicópteroEdición
Única
Authors
Víctor Manuel Munguía Canales
Affiliation
Tecnológico de Monterrey, Campus Monterrey
Issue Date
20090501
Item type
Tesis
Rights
Open Access
Downloaded
19Jan2017 00:16:46
Modelación y control de un
minihelicóptero
T E S I S
Maestría en Ciencias con Especialidad en Sistemas
Inteligentes
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS
SUPERIORES DE MONTERREY
Por
ING. VÍCTOR MANUEL MUNGUIA CANALES
Modelación y control de un
minihelicóptero
TESIS
Maestría en Ciencias en
Sistemas Inteligentes
Instituto Tecnológico y de Estudios Superiores de Monterrey
Por
INSTITUTO TECNOLÓGICO DE ESTUDIOS SUPERIORES
DE MONTERREY
D I V I S I Ó N D E G R A D U A D O S E N M E C A T R Ó N I C A Y T E C N O L O G Í A S D E I N F O R M A C I Ó N
P R O G R A M A D E G R A D U A D O S E N M E C A T R Ó N I C A Y T E C N O L O G Í A S DE I N F O R M A C I Ó N
Los miembros del comité de tesis recomendamos que la presente tesis del Ing. Víctor Manuel Munguía Canales sea aceptada como requisito parcial para obtener el grado académico de Maestro en Ciencias con Especialidad en Sistemas Inteligentes.
Comité de tesis:
Director de Investigación y Posgrado Escuela de Ingeniería
Modelación y control de un
minihelicóptero
Por
Ing. Víctor Manuel Munguía Canales
TESIS
Presentada a la División de Mecatrónica y Tecnologías de Información
Este trabajo es requisito parcial para obtener el grado académico de Maestro en
Ciencias en Sistemas Inteligentes
Instituto Tecnológico y de Estudios Superiores de Monterrey
En igualdad de condiciones la propuesta de solución más sencilla es probable
mente la mejor.
Agradecimientos
Deseo externar un sincero agradecimiento a las personas que de alguna forma colaboraron en el desarrollo de esta tesis.
A mis padres, Ofelia Canales Lomelí y Víctor Manuel Munguía Zúńiga, cuyo apoyo ha sido siempre incondicional. Gracias por recibirme las veces que lo he necesitado en ese maravilloso refugio llamado hogar.
A mi asesor, Dr. Rogelio Soto Rodríguez, por su apoyo y confianza durante toda mi maestría, así como por el excelente trato que siempre tuve de su parte.
A mis sinodales, Dr. Arturo Galván y Dr. Ricardo Ramírez, por sus consejos y guia durante el desarrollo de mi tesis.
A la Ing. Mitzi Sánchez, por su ayuda durante mis estudios.
A mis profesores de la maestría, por su enseńanza y entrega.
A Doris Juárez por su ayuda durante estos dos últimos ańos.
Víctor Manuel Munguía Canales
Modelación y control de un minihelicóptero
V í c t o r M a n u e l M u n g u í a C a n a l e s
I n s t i t u t o T e c n o l ó g i c o y de E s t u d i o s S u p e r i o r e s de M o n t e r r e y , 2 0 0 9
A s e s o r de tesis: Dr. R o g e l i o Soto R o d r í g u e z
En la presente investigación se verifica la viabilidad de obtener un Neurocon trolador para dos grados de libertad: R o l l / Φ y P i t c h / θ, de un minihelicóptero swiftló montado sobre una base de limitación física, de forma simulada, teniendo en conside ración lo siguiente:
1. No se cuenta con un modelo matemático de la dinámica del minihelicóptero swifitló.
2. Es un problema de decisiones secuenciales, "Sequential Decisión Problems (SDPs)", lo que significa que todas las acciones de control están ligadas. 3. El agente o Neurocontrolador, interactúa con un ambiente objetivo desco
nocido, y donde está en búsqueda de acciones que maximizan su recompensa o aptitud a largo plazo (tiempo en que se evaluará al agente).
Con base en las consideraciones antes expuestas el problema se dividió en dos partes. En la primera parte el modelo de la dinámica de la planta es identificado expe rimentalmente usando redes neuronales; dicho modelo será la base para el ambiente de simulación y experimentación de la segunda parte, en la cual se atacó el problema con una perspectiva de aprendizaje por refuerzo [4], en particular usando una técnica Neu roevolutiva conocida con el nombre de NeuroEvolution of Augmenting Topologies NEAT [1], esta técnica toma una población de individuos, agentes o Neurocontroladores, y los
evoluciona conforme pasan las generaciones, y en donde en cada generación se evalúa a cada individuo durante ciento cincuenta incrementos de tiempo secuencial para fi nalmente obtener su aptitud la cual es la única guía del algoritmo NEAT en el proceso de Neuroevolución general.
índice general
Agradecimientos v
Resumen vi
índice de figuras X I
índice de tablas x i v
Capítulo 1. Introducción 1
1.2. Motivación 2 1.1. Definición del Problema 4
1.3. Objetivos 6 1.4. Contribución 7 1.5. Contenido. . . 7
Capítulo 2. Marco Teórico 9 2.1. El Helicóptero 9 2.2. Dinámica de un helicóptero 10
2.3. Marco de referencia del helicóptero 11 2.4. Definición de las entradas al helicóptero y notación 12
2.5. Redes Nueronales Artificiales 13 2.5.1. Redes neuronales de retropropagación 17
2.6. Algoritmos Genéticos 17 2.6.1. Métodos de representación 18
2.6.2. Métodos de selección 20 2.6.3. Operadores genéticos 21
2.7. Neuroevolución 22 2.8. Neuroevolución NEAT 23
2.8.1. Un comienzo básico o mínimo 22
2.8.2. El genoma NEAT 25 2.8.3. Operadores e innovaciones 26
2.8.4. Mareaje histórico 28 2.8.5. Protegiendo la innovación Especiación 30
Capítulo 3. Identificación del modelo 31
3.1. Propósito de un modelo 31 3.2. Esquema general de la identificación experimental 32
3.3. Modelo neuronal 34
Capítulo 4. Diseńo y control para un MiniHelicóptero 37
4.1. Introducción 37 4.2. Lazo de control: minihelicóptero 38
4.3. Controladores neuronales 39 4.4. Proceso General de Neuroevolución 40
4.4.1. Parámetros de NEAT 43 4.4.2. Estructura inicial de cada Neurocontrolador 45
4.4.3. Procesamiento de las entradas y salidas del Neurocontrolador. .47
4.5. Función Objetivo (Evaluación) 49 4.6. Evolución Incremental del Neurocontrolador 53
4.7. Métricas del desempeńo para un Neurocontrolador 56 4.7.1. Prueba "etiquetadora" de un Neurocontrolador 58
Capítulo 5. Resultados Finales 60 5.1. Resultados de la validación del modelo identificado para 2GDL (Φ, θ) 60
5.2. Piloto humano en vuelo estacionario 65 5.3. Mejor Neurocontrolador de 2GDL desarrollado 67
5.4. Resultados para el Neurocontrolador de 2GDL (Φ, θ) 70
5.4.1. Respuesta del Neurocontrolador (Φ, 9) al cambio de referencia
para el ángulo (Φ) sin perturbaciones 70 5.4.2. Respuesta del Neurocontrolador (Φ, θ) al cambio de referencia
para el ángulo (9) sin perturbaciones 72
5.4.3. Respuesta del Neurocontrolador (Φ,θ) al seguir una referencia
para el ángulo (Φ) sin perturbaciones 74 5.4.4. Respuesta del Neurocontrolador (Φ, θ) al seguir una referencia
para el ángulo (Φ) con perturbaciones en cada ángulo 75 5.4.5. Respuesta del Neurocontrolador (Φ, θ) al seguir una referencia
para el ángulo (9) sin perturbaciones 79
5.4.6. Respuesta del Neurocontrolador (Φ, θ) al seguir una referencia
para el ángulo (9) con perturbaciones 82
Capítulo 6. Conclusiones y Trabajo Futuro 86
Bibliografía 92
Apéndice 96
.1. Apéndice A .• 98
.2. Apéndice B 101 .3. Apéndice C 104 .4. Apéndice D 108
índice de figuras
Figura 1—1. Diagrama a bloques del control del minihelicóptero 6
Figura 2—1. Elementos de un helicóptero 10 Figura 2—2. Cuerpo rígido coordenado de mano derecha 11
Figura 2 3 . Control del roll 12 Figura 24. Control del pitch 12 Figura 2—5. Control del movimiento vertical (levantarse) 12
Figura 2—6. Control del yaw 13 Figura 2—7. Una red de neuronas McCullochPitts 14
Figura 2—8. Comparación entre una neurona biológica y un perceptrón 15
Figura 2—9. Red hacia adelante 17 Figura 2—10. Tres sencillos árboles 19
Figura 2—11. Cruzamiento 21 Figura 212. Mutación 21 Figura 2 1 3 . Codificando una red con el método NEAT 26
Figura 2—14. Mutación para agregar una neurona 27 Figura 2—15. Diferentes tipos de conexión o acoplamiento 28
Figura 2—16. Agregando una neurona a una red 28 Figura 2—19. Dos fenotipos con diferentes innovaciones 29
Figura 2—20. El operador de cruce en acción 30 Figura 3—1. Diagrama de identificación de la dinámica del minihelicóptero 32
Figura 3—2. Obtención de datos para el control del minihelicóptero 33 Figura 3—3. Sensor xsense adosado a la panza del minihelicóptero 34 Figura 3—4. Modelo neuronal de la dinámica del minihelicóptero 35
Figura 3 5 . Proceso de aprendizaje de la red neuronal 36 Figura 4—1. Lazo de control del Neurocontrolador 39
Figura 4—2. Control neuronal directo 40 Figura 4—3. Proceso general de Neuroevolución para el minihelicóptero 42
Figura 4—4. Neurocontrolador básico para dos entradas, dos salidas 46
Figura 4—5. Unidad genérica de procesamiento, 47 Figura 4—6. Respuesta característica de la tangente hiperbólica 47
Figura 4—7. Procesamiento para dos variables de entrada y dos variables de salida 48
Figura 4—9. Diagrama esquemático del proceso de evolución incremental 55
Figura 4—10. Métricas a observar 56 Figura 4—11. Distribución Normal, con media en 0 y una desviación estándar de 1 57
Figura 4—12. Intervalos de probabilidad, dada la desviación estándar 58 Figura 5—1. Descenso del error cuadrático medio para el modelo de 2GDL 61
Figura 5—2. Ángulo de postura (0) real del modelo de 2GDL 62
Figura 5—3. Ángulo de postura (0) predicho por el modelo de 2GDL 62 Figura 5—4. Error entre el ángulo real y el ángulo predicho en (0) 63 Figura 55. Ángulo de postura () real del modelo de 2GDL 64
Figura 5—6. Ángulo de postura (θ) predicho por el modelo de 2GDL 64
Figura 5—7. Error entre el ángulo real y el ángulo predicho en (6) 65 Figura 5—8. Cambio de postura en el ángulo ( 6).piloto humano 66
Figura 5—9. Cambio de postura en el ángulo (<P) piloto humano 66
Figura 510. Mejor Neurocontrolador de 2GDL desarrollado mediante NEAT 68
Figura 5—11. Superficie de la seńal manipulada para Ulong 69 Figura 5—12. Superficie de la seńal manipulada para Ulat 69 Figura 5—11. Respuesta en 0 con un cambio escalón de 5 grados 71
Figura 5—12. Respuesta en 6, cuando hay un cambio escalón de 5 grados en θ 72
Figura 5—13. Respuesta den θ con un cambio escalón de 5 grados 73 Figura 5—14. Respuesta en 0, cuando hay un cambio escalón de 5 grados en θ. 73
Figura 5—15. Respuesta en 0 al seguir una referencia dada por Ssen(2iift) 74 Figura 5—16. Respuesta en , cuando θ sigue una referencia 5sen(2nft) 75 Figura 517. Respuesta en Φ al seguir una referencia dada por 5sen(2nft) 76 Figura 5—18. Respuesta en θ, cuando 0 sigue una referencia Ssen(2nft) 77 Figura 5—19. Respuesta en Φ al seguir una referencia dada por 5 sen(2nft) 78 Figura 5—20. Respuesta en 6, cuando Φ sigue una referencia 5sen(2nft) 79 Figura 5—21. Histograma de los datos de entrenamiento para Pitch 80 Figura 5—22. Respuesta en θ al seguir una referencia dada por 5sen(2nft) 81
Figura 5—23. Respuesta en 0, cuando θ sigue una referencia 5sen(2nft) 82 Figura 5—24. Respuesta en al seguir una referencia dada por Ssen(2nft) 83 Figura 5—25. Respuesta en Φ, cuando θ sigue una referencia Ssen(2nft) 84 Figura 526. Respuesta en 6 al seguir una referencia dada por 5sen(2nft) 85 Figura 5—27. Respuesta en 0, cuando 6 sigue una referencia Ssen(2nft) 85
Figura 6—1. Proyectos de súper computo con GPUs y CUDA 89
Figura 62. Plataforma de Hmitación física 6 GDL 90 Figura 6—3. Visualización de los tres grados de libertad posibles 99
Figura 64. Control Remoto RC, FUTABA 7C 108
Figura A l . Vista lateral del esquema de la base de limitación física 98 Figura A2. Visualización de los tres grados de libertad posibles 99 Figura A3. Minihelicóptero real montado en la base de limitación física 100
Figura A4. Plataforma de limitación física 6 GDL , 100
Figura B l . Sorbetes 101 Figura B2. Figura de las posturas 102
Figura B3. Movimientos coreográficos a realizar 103
Figura Cl. Sensor IMU 104 Figura C2. Sistema de coordenado del sensor IMU 105
Figura C3. Fusión de sensores 106 Figura C4 Trama de datos en el modo de salida de postura 106
Figura C5. Trama de datos en el modo de salida inercial 107
r
índice de tablas
Tabla 21. Variables de entrada de un helicóptero,. 13
Tabla 41. Variables de control constantes, ucol, uped 39
Tabla 42. Parámetros de NEAT utilizados en el presente trabajo 45
Tabla 43. Rango adecuado de las variables de control 49
Tabla 44. Definición tipo de Ruido 57 Tabla 45. Prueba "etiquetadora" para el Neurocontrolador <P, 8 59
Tabla 51. Evolución incremental para el Neurocontrolador de 2 GDL 67
Tabla 52. Plan de la prueba: 71 Tabla 53. Seguir una referencia para el ángulo (G) sin perturbaciones 72
Tabla 54. Seguir una referencia para el ángulo (Φ) sin perturbaciones 74 Tabla 55. Seguir una referencia para el ángulo (Φ) con perturbaciones 75 Tabla 56. Respuesta al seguir una referencia para el ángulo (0) con perturbaciones 79
Tabla 57. Respuesta al seguir una referencia para el ángulo (Φ) con perturbaciones....82
Tabla Dl.Control Remoto RC, FUTABA 7C 108
Capítulo 1
Introducción
El control de aeronaves y en particular el control de helicópteros, es una tarea compleja en la que el ingeniero o investigador se enfrenta a sistemas inherentemente inestables, con comportamientos no lineales, múltiples entradas y salidas, alto grado de acoplamiento en sus variables de estado, además de encontrarse en ambientes ruidosos, o con estados ocultos (no se pueden observar). Por lo anterior, el diseńo de controlado res para tales sistemas no es una tarea trivial, ya que requiere conocimientos especializa dos de la dinámica del sistema en cuestión, así como considerable experiencia y cono cimientos en teoría de control.
Estos sistemas usualmente son abordados con sistemas de control tradicional o control moderno, lo que requiere de una representación matemática en forma de ecua ciones diferenciales o en ecuaciones de estados. Sin embargo, en los últimos ańos se ha retomado el interés por utilizar técnicas de control inteligente, el cual se fundamenta en la utilización de técnicas de inteligencia artificial que se vienen desarrollando desde los ańos sesenta.
Una de las técnicas inteligentes más usadas hoy día son los algoritmos genéticos, en gran medida por su versatilidad así como notables resultados prácticos. El aprendi zaje artificial es uno de los temas que más atención ha recibido por parte de la comuni dad científica que experimenta con tales técnicas; esta disciplina estudia el proceso de aprendizaje en general, haciendo hincapié en llevar al mundo de las computadoras lo que se conoce sobre estos procesos de los seres vivos. El problema fundamental es que los agentes artificiales con frecuencia deben operar en ambientes como los descritos previamente, por lo que no resulta viable incorporar a priori todo el conocimiento re querido para un rendimiento aceptable; en ocasiones, tal conocimiento ni siquiera se encuentra disponible previamente.
so puede catalogarse como deductivo, inductivo, o abductivo [35]. En este contexto, el algoritmo genético aporta su gran potencial en el manejo de poblaciones de deduccio nes, observaciones e hipótesis, con las ventajas del paralelismo implícito, y del refina miento y descubrimiento de información [2], [36].
Otra de las técnicas de inteligencia artificial más populares, son las redes neuro nales; este tipo de técnica tiene la característica de poder aproximar cualquier función
[22], [5], lo cual nos resulta muy útil ya que gracias a esta característica podemos identi ficar el modelo dinámico de cualquier sistema [31] o controlar un minihelicóptero [14]. En definitiva, las redes neuronales no son más que un modelo artificial y simpli ficado [37] del cerebro humano, que es el ejemplo más perfecto del que disponemos de un sistema que es capaz de adquirir conocimiento a través de la experiencia. Una red neuronal artificial es un sistema para el tratamiento de la información, cuya unidad bási ca de procesamiento está inspirada en la célula fundamental del sistema nervioso humano: la neurona [11].
Por su parte, la combinación de redes neuronales y algoritmos genéticos recibe el nombre de "Neuroevolución", cuyo problema típico es la determinación del número de capas y nodos, tarea en la que el algoritmo genético puede ser usado para determinar el número oprimo de los mismos [1].
Más aún, tenemos el problema de no sólo determinar las neuronas y capas, sino también los pesos entre conexiones y no sólo eso, determinar la topología de la red neuronal usando algoritmos genéticos para este propósito, a este tipo de técnicas se que se les conoce como evolución de redes neuronales artificiales en topología y pesos (TWEANN).
En el presente trabajo de investigación se hace uso de una técnica TWEANN, conocida como Neuroevolución de topologías aumentadas o NEAT [1] por sus siglas en inglés; esta técnica es particularmente interesante ya que introduce una innovación respecto a otras TWEANN, la cual es la especiación, es decir la división grupal de redes con características comunes, las cuales pueden sobrevivir al momento de aplicar el ope rador genético de cruza entre dos padres.
1.1 Motivación de la investigación
Aun hoy en nuestros días los sistemas más avanzados de control e inteligencia artificial palidecen al ser comparados con los más diminutos sistemas de control e inte ligencia biológica. El volar de una libélula, el movimiento de un pez en el agua, el vuelo
de una abeja, moscas, mosquitos, las extraordinarias acrobacias que estos insectos son capaces de realizar en el aire, y en general cualquier insecto por diminuto que sea, repre senta un sistema complejo al intentar llevarlo al campo artificial. Encontrar la fórmula matemática que imite tales sistemas ha sido uno de los principales retos para ingenieros, investigadores, y científicos, además de un aliciente, pues al adentrarnos al mundo de la naturaleza no dejamos de sorprendernos más y más al encontrar en cada ser vivo una maquinaria perfectamente diseńada.
A pesar de los múltiples esfuerzos tenemos como resultado poco éxito al inten tar igualar tales sistemas. Se ha logrado a lo mucho una burda imitación donde la com plejidad conlleva modelos difíciles de entender, depurar, y mejorar. Ya en los ańos '80 la NASA comprendía que la complejidad de los modelos matemáticos iba en aumento, lo que hacía muy difícil su mejora y depuración [16].
La Inteligencia Artificial es un intento por descubrir y describir aspectos de la naturaleza humana que pueden ser simulados mediante máquinas. Esta se ha desarro llado fuertemente en los últimos ańos, teniendo aplicación en algunos campos como visión artificial, demostración de teoremas, procesamiento de voz expresada mediante lenguajes humanos, entre muchos otros. Las técnicas de sistemas inteligentes pueden ser aplicados en un amplio espectro de dominios donde el aprendizaje sea deseado, por ejemplo: el control, los juegos, la economía, la visión, la planeación, la decisión, etc. En especial sistemas que mimetizan en un mayor grado los sistemas biológicos, como lo son las redes neuronales y los algoritmos genéticos.
Con lo antes expuesto como referencia, he tomado como premisa de este pro yecto la máxima de William Ockham, mejor conocida como Ockham Razor, la cual nos dice que en igualdad de condiciones la propuesta de solución más sencilla es pro bablemente la mejor. Al utilizar evolución de redes neuronales donde se está buscando tanto en pesos de la red como en la topología de la misma, la propuesta de solución se convierte en un sistema sencillo, donde se espera minimizar el costo de implementa ción, los conocimientos y sabiduría requeridas de antemano, el tiempo de desarrollo y puesta en marcha, y aun así, obtener un control para mantener en vuelo estacionario sobre la base de limitación física al minihelicóptero.
1.2 Definición del problema
Los helicópteros y minihelicópteros son vehículos aéreos que tienen una carac terística particular que los distingue de los aeroplanos, esta capacidad especial es la que les permite mantenerse en vuelo estacionario ("Hover"), es decir, sobrevuelan una misma posición sin tener traslaciones horizontales en ninguno de los ejes. Para que un helicóptero o un minihelicóptero logre mantenerse en vuelo estacionario, es indispen sable conservar el control de múltiples variables, pero siendo las más representativas los ángulos de postura (Roll/<t>, Pitch/9, y Yzw/ip) del aeronave, ya que en base a ellos se producen los desplazamientos traslacionales sobre los ejes X y y, es por ello que al mantener en control estos tres ángulos, podemos sobrevolar una misma posición.
Aunque estos tres ángulos son las variables más representativas para mantener en Hover un minihelicóptero, no son las únicas variables que se requiere controlar, es por ello que para poder abordar el diseńo de un sistema en el tiempo disponible, había que simplificar el sistema de alguna forma en la que se pudiera enfocar el diseńo de un controlador para sólo dos variables (Roll/Í*, Pitch/0). Considerando lo anterior se di seńó y construyó una plataforma de limitación física, en la cual fue posible mantener a salvo el minihelicóptero inherentemente inestable, y limitar el número de variables a controlar gracias a limitaciones físicas, ver figuras 34, 35 y 36.
Como ya se ha mencionado, el diseńo de sistemas de control para vehículos autónomos no tripulados, y en particular para helicópteros, es una tarea difícil, ya que hablamos de un sistema inherentemente inestable, con muchos grados de libertad, y alto grado de acoplamiento en sus variables de estado. Por estas razones es deseable utilizar técnicas de sistemas inteligentes que ayuden a abordar de manera simplificada este tipo de problemas.
Para la presente investigación se utilizará una técnica de evolución de redes neu ronales conocida como NEAT [1], con la cual se evolucionará una población de Neu rocontroladores, que parten de una estructura básica, como se muestra en la figura 44. La estructura se irá transformando conforme pasen las generaciones de evolución hasta que finalmente, al pasar por un proceso de Neuroevolución combinado con una evolu ción incremental, se incrementará la complejidad de la tarea que será abordada por el individuo o Neurocontrolador en turno de una población durante un lapso n de tiem po. Posteriormente se vuelve a evolucionar con la nueva tarea, convirtiéndose así en un ciclo de Neuroevolución y evolución incremental que terminará en el momento que se obtenga un Neurocontrolador que pueda mantener en vuelo estacionario al mini helicóptero simulado, con el menor error en estado estacionario para sus ángulos de postura, así como que sea tolerante al ruido en las mediciones de postura.
Se puede asegurar que es de interés tanto comercial como militar, el obtener so luciones de autocontrol para aeronaves no tripuladas, las cuales puedan implementarse en corto tiempo, a bajo costo y con robustez. Por estas razones, en los últimos ańos ha crecido el interés en aplicar técnicas de control inteligentes para este tipo de aplicacio nes. A esto le ańadimos el interés científico por mimetizar en mayor detalle los sistemas de control biológicos.
Entre las técnicas de control inteligente para helicópteros tenemos: las redes neuronales, algoritmos genéticos, lógica difusa y Reinforcement Learning (RL). Estas técni cas han mostrado tiempos de implementación cortos o muy cortos, con igual o superior estabilidad a los sistemas matemáticos convencionales, y con costos de implementación bajos. Entre las diversas técnicas de inteligencia artificial consultadas, hay una que reú ne cinco puntos de mi interés científico, los cuales son:
i. Mimetizar los sistemas de control biológico o natural, en el mejor grado posi ble.
ii. Que el sistema sea capaz de aprender sin conocimientos previos, en similitud a lo que hace una persona.
iii. Puede ser usada para el control de vuelo de un helicóptero. iv. Ser una técnica nueva o relativamente nueva.
v. Y por último, tener el potencial de continuar en su desarrollo.
La técnica N E A T representa una innovación en la forma de evolucionar una red neuronal artificial, ya que no sólo se aboca a la búsqueda de los pesos, sino también en la arquitectura de la misma, comenzando con una red básica que va evolucionando, a lo que se denomina como complexificaáón [23], [24]. Con ello obtenemos una mejora en el tiempo de solución. Por otra parte, el aprendizaje no es supervisado, por lo tanto no son necesarias tramas de entrenamiento, lo que traería consigo más costos de requerir las. Sin duda es una técnica que mimetiza en un mejor grado un sistema neuronal natu ral, así mismo existe la posibilidad de seguir mejorando la técnica.
1.3 Objetivos
Dentro de los objetivos particulares a cumplir tenemos los siguientes:
1. Identificación de la planta (aproximación del modelo matemático) mediante una red neuronal utilizando observaciones numéricas experimentales de en tradasalida del sistema (minihelicóptero) [14].
2. Validación del modelo identificado mediante una red neuronal de propaga ción hacia atrás, para lo cual se realizaron múltiples vuelos de prueba para adquirir diferentes vectores de entradasalida. De la información obtenida se usó un grupo de vectores de datos para realizar el entrenamiento, y con el resto de vectores se realizó la validación del modelo. Por último, se hace una evaluación cualitativa de la respuesta del minihelicóptero a comandos esta blecidos.
3. Evolucionar redes neuronales que controlarán (Neurocontrolador) dos gra dos de libertad del helicóptero (RoU/0 y P i t c h / 0 ) , mediante el algoritmo NEAT y evolución incremental, hasta obtener un Neurocontrolador que pueda mantener lo más cercano a "Hover" al minihelicóptero.
4. Evaluar el mejor Neurocontrolador encontrado con métricas de control tra dicional, así como en presencia de ruido en los sensores (inyectándoles una seńal de "ruido" con distribución normal, a las salidas de los sensores).
Ángulos (t)
•MMMHHMMHHHMi
Ángulos (t) I ( Error PitcliNeurocon trolaílo r
Planta Identificada Con NN Ángulos Roll (t+1) " Pitch (t+1) Ruido en Ir* rfl rji)Vizuaiizacton 3D
Entradas üc control
Ref. Pilch
Ref. Roll
Roll <J> Phˇ Piteh
0
Teta
Uiat— Control Lateral (Roll) Ulcmg—Control longitudinal (Pitch)
"Ucol y Upcd pueden ser constantes en la plataforma de limitación física" y
s
(3ti
entradas en del modelo simuladoNN— Neurai Nerwork
Figura 1—1. Diagrama a bloques del control del minihelicóptero.
Esta investigación ofrece mayor información para el control de un mini helicóptero eléctrico utilizando aprendizaje por refuerzo, aplicando Neuroevolución como una alternativa factible al uso de métodos paramétricos para la identificación de la planta, así como de conocimientos especializados en dinámica de vuelo y teoría de control para la obtención de un controlador.
De forma más específica las contribuciones de este trabajo son:
• Obtener de forma experimental dos modelos del minihehcóptero swiftló [52] para dos y tres grados de libertad.
• Obtener un Neurocontrolador para Roll y Pitch, capaz de mantener al mini helicóptero swift 16 en vuelo estacionario sobre la base de Hmitación física, en forma simulada, gracias al modelo identificado.
• Comprobar la efectividad del modelo de Neuroevolución NEAT en el cam po de control.
• Hacer una amplia comprobación del comportamiento de los dos Neurocon troladores.
• Desarrollar una función de evaluación adecuada para calificar al Neurocon trolador en su proceso evolutivo NEAT.
• Presentar información acerca de los resultados derivados de los Neurocon troladores, desarrollados con la técnica NEAT con evolución incremental. • Con base a los resultados obtenidos es posible concluir que el obtener Neu
rocontroladores con NEAT y evolución incremental es una alternativa posi ble.
1.5 Contenido
En el capítulo se 5 se muestran los experimentos realizados así como los resultados obtenidos, se podrán apreciar diferentes gráficos con la respuesta del neurocontrolador aplicado. Por último, en el capítulo 6 se mencionan las conclusiones así como las suge rencias para futuro desarrollo, he dedicado varias páginas a esta sección, pues considero que aún hay mucho por expandir, este proyecto puede ser mucho más ambicioso.
Capítulo 2
Mateo Teórico
En este capítulo se presentan en primer lugar los elementos que conforman un helicóptero, se analizan de manera general las variables de control y se define la plata forma física experimental a partir de la cual se desarrolla la investigación. Lo anterior permite entender cómo afectarán y cuáles serán las entradas para el sistema de redes neuronales a emplear.
Se explican también a detalle los algoritmos genéticos, redes neuronales, y con especial énfasis el algoritmo de Neuroevolución NEAT, sobre el cual se desarrolla el control implementado para el minihelicóptero.
2.1
El Helicóptero
Definición: Aeronave de alas giratorias (rotor) que proporciona sustentación, propulsión, control, tales que permitan a la aeronave mantenerse en vuelo estacionario o de punto fijo sin necesidad de una velocidad de vuelo que genere la sustentación co mo pasa con los aeroplanos.
Ventajas: elevada capacidad de maniobra, alta eficacia en la realización del vuelo vertical, vuelo a punto fijo, vuelo vertical ascendente y descendente (despegue y aterri zaje).
Limitaciones: Bajas velocidades de crucero.
En la figura 21 se muestran los elementos que componen un helicóptero mis mo que se describen de manera general a continuación:
Aspas del rotor: parte del aparato principal que garantiza la propulsión y la sustentación del helicóptero.
Rotor principal: parte central del aparato principal que garantiza la propulsión y la sustentación del helicóptero.
Plato oscilante: plataforma que varía la posición y sirve de soporte. Fuselaje: cubículo reservado para el manejo del aparato.
Cola: parte trasera y estrecha del fuselaje.
Estabilizador: mecanismo que corrige de manera automática los errores y las desviaciones y estabiliza la aeronave.
Aleta de cola: mecanismo que evita la desviación de una aeronave.
Rotor de cola (anti par): Rotor auxiliar que garantiza la sustentación y la pro pulsión del helicóptero.
Patín de Aterrizaje
Figura 2—1. Elementos de un helicóptero
2.2 Dinámica de un helicóptero
Para poder realizar el modelo matemático del helicóptero y en general encontrar un controlador para el mismo, es necesario entender los conceptos básicos de su diná mica de vuelo [14], los cuales se presentan a continuación.
i) Torque. Conforme con la Ley de Newton de acción y reacción, el fuselaje tiende a rotar en sentido opuesto a las aspas del rotor principal, este efecto es llamado torque o par de torsión. El torque debe ser contrarrestado y con trolado antes de elevarse. El torque es un factor muy importante a conside rar en los helicópteros con un solo rotor principal que efectúan su rotación por la acción de un solo motor. Los efectos del torque sobre el fuselaje son resultado directo del trabajo efectuado por el rotor principal. Cualquier cambio de potencia dará como resultado un cambio del torque sobre el fu selaje. Además, éste también varía durante las maniobras de vuelo, cambio que debe ser continuamente corregido.
ii) Rotor de cola. La compensación del torque en los helicópteros con un solo rotor principal es por medio del rotor anti par o rotor de cola. Este rotor produce un empuje en sentido contrario al torque generado por el rotor principal sobre la cabina, compensando este movimiento. En general duran te el vuelo y debido a los cambios de potencia realizados por el piloto, el torque cambia y por esto es necesario que el empuje del rotor de cola tam bién cambie.
iii) Control de dirección. El rotor de cola también es usado para el control de rumbo en vuelo además de realizar los cambios en vuelo estacionario. Este es uno de los controles básicos que el piloto debe realizar compensando en todo momento los cambios de potencia en todas las fases del vuelo.
2.3 Marco de referencia del helicóptero
El helicóptero es considerado como un cuerpo rígido, libre para moverse en las tres direcciones coordenadas así como rotar en los tres ejes, por lo que tene mos 6 grados de libertad (DOF, del inglés Degrees ofFreedom). Básicamente son ne cesarios tres marcos diferentes de referencia del helicóptero para su modelación, todas ellas en base a un sistema coordenado de mano derecha. En orden de hacer uso de la mecánica newtoniana, es necesario hacer uso de un marco de referencia inercialfijo, se asume que la tierra es un espacio inercial plano y estático, por lo tanto se usa como marco fijo la tierra [16]. El origen de esto es seleccionado arbi trariamente, con el eje X apuntando en cualquier dirección de conveniencia, el eje z apuntando verticalmente hacia abajo y el eje y perpendicular a ambos [17]. L o a n t e r i o r se m u e s t r a en la figura 2 2 .
2.4 Definición de las entradas al helicóptero y notación
Los ángulos de navegación permiten posicionar un objeto en 3D. La posición y la postura del helicóptero es controlada a través de las siguientes 4 entradas de control comandadas por el piloto [18], [19].
u
t a t Entrada de control lateral: Provoca que el helicóptero rote sobre el eje xy por esta razón realice un roll, en espańol traducido como alabeo. Ver figura 23.
Figura 2—3. Control del roll.
ul o n g Entrada de control longitudinal: provoca que el helicóptero rote sobre el eje y y por lo tanto realice un pitch, traducido al espańol como cabeceo. Junto con el control lateral, forma la entrada de control cíclica aplicada por el piloto a través del "cy clic stick". Ver figura 24.
Figura 24. Control del pitch.
ucoi Entrada de control "Collective". Provoca que el helicóptero realice un movimiento vertical (levantarse), y es aplicado a través de la palanca de control "collec tive" del piloto. Este movimiento de elevación es resultado de las fuerzas aerodinámicas sobre las aspas del rotor principal. Tales fuerzas crean un empuje, ya que el aire es ace lerado a través del disco plano del rotor. En la presente investigación y gracias a la base de limitación física esta variable puede permanecer constante. Ver figura 25.
Figura 2—5. Control del movimiento vertical (levantarse).
Uped Entrada de control de timón (rudder). Ocasiona que el helicóptero rote sobre el eje Z y por lo tanto realice un y a w , traducido al espańol como guińada. Esta entrada es aplicada a través de los pedales del piloto. En la presente investigación y gra cias a la base de limitación física esta variable puede permanecer constante. Ver figura 26.
Figura 2—6. Control del yaw.
A manera de resumen, en la tabla 21 se muestran las variables de control de un helicóptero.
Entrada (actuador, servo) Movimiento rotacional Movimiento traslacional resultante
Lateral U;at Roll (<Z>) Lateral (v)
Longitudinal ui
ong Pitch (0) Longitudinal (lż)
Colectivo
U
coż
Idealmente nada Elevación (w)Pedal uped Yaw (4>,6, l/0 Idealmente nada
Tabla 21. Variables de entrada de un helicóptero, y los movimientos de traslación y rotación resultan tes.
2.5 Redes Neuronales Artificiales
La primera definición de una neurona artificial data de 1943 y fue propuesta por Warren McCulloch y Walter Pitts [23]. La topología de una red de este tipo de neuronas se puede apreciar en la figura 2.11. La base matemática que gobierna esta neurona es:
uk = ZJloXj • wJk (2.1)
Donde:
• Xj es el valor de la entrada en la neurona de entrada j ,
żQué representa todo esto? Básicamente es una analogía simplificada de las neu ronas biológicas: la neurona ( y ) , recibe ciertas entradas ( x ) , las procesa (u = Sxj w/ky emite una salida y=fu. Ver figura 27.
Figura 2—7. Una red de neuronas McCullochPitts
Aún en un proceso tan simple podemos ver dos elementos interesantes:
• Los pesos ( w ) : representan lo fuertemente conectadas que están dos neuronas. Si es positivo indica que la neurona de entrada excita a la de salida, y si es nega tivo que la inhibe.
• La función de activación ( / ) : que se encarga de reducir el número posible de salidas a ciertos estados determinados o rangos de valores válidos. Normal mente son funciones de tipo escalón (binarias), lineales (y = ll) o sigmoides (una función no lineal que tiene una primera derivada que es muy rápida com putacionalmente de calcular).
En la figura 28 se muestra la comparación entre una neurona biológica y un perceptrón (tipo de red neuronal desarrollado por Frank Rosenblatt)[37], [38].
(a) (b)
Figura 2—8. Comparación entre una neurona biológica y un perceptrón. (a) Neurona biológica, (b) Per ceptrón de Rosenblatt.
• Aprendizaje adaptativo: Esta es quizás la característica más importante de las redes neuronales, pueden comportarse en función de un entrenamiento con una serie de ejemplos ilustrativos. De esta forma, no es necesario elaborar un modelo a priori, ni establecer funciones probabilísticas. Una red neuronal arti ficial es adaptativa porque puede modificarse constantemente con el fin de adaptarse a nuevas condiciones de trabajo.
• Autoorganización: Mientras que el aprendizaje es un proceso donde se modi fica la información interna de la red neuronal artificial, la autoorganización consiste en la modificación de la red completa con el fin de llevar a cabo un objetivo específico. Autoorganización significa generalización, de esta forma una red puede responder a datos o situaciones que no ha experimentado antes, pero que puede inferir sobre la base de su entrenamiento. Esta característica es muy útil sobre todo cuando la información de entrada es poco clara o se en cuentra incompleta.
• Operación en tiempo real: Las redes neuronales artificiales, de todos los métodos existentes, son las más indicadas para el reconocimiento de patrones en tiempo real, debido a que trabajan en paralelo actualizando todas sus instan cias simultáneamente. Es importante destacar que esta característica sólo se aprecia cuando se implementan redes c.on hardware especialmente diseńados para el procesamiento paralelo.
• Fácil inserción en la tecnología existente: Es relativamente sencillo obtener chips especializados para redes neuronales que mejoran su capacidad en ciertas tareas. Ello facilita la integración modular en los sistemas existentes. Al pro fundizar en los principios de las RNA y observar continuamente el término neurona no es de extrańar que se piense por analogía en el cerebro humano, es te hecho quizás se deba a que las RNA están basadas en la inspiración biológi ca.
Hay muchas y muy variadas formas de conectar las neuronas artificiales, la for ma más sencilla y que se utilizara en la presente investigación en la que se van conec tando las neuronas en capas, como se muestra en la figura 216. Este tipo de RNA se llama feedforward network en inglés, traducido como redes hacia adelante. Obtiene su nombre de la manera en que cada capa de neuronas alimenta con sus salidas la siguiente capa hasta que se obtiene un resultado.
Como se puede observar en la figura 29, todas las entradas se envían a todas y cada una de las neuronas en la capa oculta, después la salida de cada neurona en la capa oculta se conecta a todas las neuronas en la siguiente capa. Puede existir cualquier can tidad de capas ocultas en una red hacia adelante, normalmente una es suficiente para afrontar la mayoría de los problemas que se abordarán. Incluso algunos problemas no requieren de ninguna capa oculta, simplemente se conectan las entradas directamente a las neuronas de salida. El número de neuronas empleadas puede modificarse, depen derá del problema a resolver, pudiéndose determinar el número de neuronas en la capa de entrada y de salida, sin embargo no hay método especifico para conocer el número de neuronas en las capas ocultas.
2.5.1 Redes neuronales de retropropagación
En la presente investigación haremos uso de las redes de retropropagación las cuales son llamadas así por el esquema de aprendizaje del algoritmo el cual se basa en retropropagar el error entre las capas actualizando los pesos de los nodos en el proceso. Es un algoritmo de descenso de gradiente que minimiza el error entre la salida deseada y la salida obtenida por la red [13].
Las redes de retropropagación fueron creadas para generalizar la regla de apren dizaje de WidrowHoff, el cual realiza un aprendizaje a partir de la modificación de los pesos entre las conexiones de los nodos, minimizando el error cuadrático en repetidas iteraciones [3], para una red de múltiples capas y con funciones no lineales de transfe rencia, donde los patrones son presentados de manera cíclica [13].
2.6 Algoritmos Genéticos
pende en buena medida de una adecuada codificación de las mismas. Los principios básicos de los Algoritmos Genéticos fueron establecidos por Holland (1975), y se en cuentran bien descritos en varios textos [29], [30].
Los algoritmos genéticos son conocidos como algoritmos de búsqueda ciega, que de manera aleatoria intercambian información entre los individuos; en cada genera ción se crean un nuevo conjunto de individuos los cuales contienen características de la generación anterior.
Un algoritmo genético básico está constituido de los siguientes puntos los cuales serán abordados en mayor detallen de la sección 2.6.1 a la 2.6.3:
1. Los algoritmos genéticos convencionales representan una posible solución co mo un individuo, dependiendo de la interpretación de los individuos se cuen tan con diferentes enfoques [15]. Para ello es se requiere representar al indivi duo de alguna forma. Lo cual se presenta en la siguiente sección 2.6.1.
2. Se genera una población inicial de N individuos, la cual son posibles soluciones al problema, (cada individuo es en general una cadenas de bits generados de manera aleatoria). En la cual se repite un proceso compuesto de los siguientes tres puntos:
a) Selección de acuerdo a aptitud sección 2.6.2 b) Cruce de padres, sección 2.6.3
c) Mutación de hijos o descendencia sección 2.6.3
d) Repetir desde el punto " a " hasta que se cumple un criterio de termina ción.
2.6.1 Métodos de representación
Antes de que un algoritmo genético pueda ponerse a trabajar en un problema, se necesita un método para codificar las soluciones potenciales del problema de forma que una computadora pueda procesarlas. Un enfoque común es codificar las soluciones como cadenas binarias: secuencias de l s y Os, donde el dígito de cada posición repre senta el valor de algún aspecto de la solución. Otro método similar consiste en codificar las soluciones como cadenas de enteros o números decimales, donde cada posición, de nuevo, representa algún aspecto particular de la solución. Este método permite una mayor precisión y complejidad que el método comparativamente restringido de utilizar sólo números binarios, y a menudo "está intuitivamente más cerca del espacio de pro blemas" [25].
Esta técnica se utilizó, por ejemplo, en el trabajo de Steffen SchulzeKremer, que escribió un algoritmo genético para predecir la estructura tridimensional de una proteína, basándose en la secuencia de aminoácidos que la componen [26]. El AG de SchulzeKremer utilizaba números reales para representar los famosos "ángulos de tor sión" entre los enlaces peptídicos que conectan a los aminoácidos. Los algoritmos gené ticos para entrenar a las redes neuronales también utilizan a menudo este método de codificación.
Un tercer método consiste en representar a los individuos de un AG como ca denas de letras, donde cada letra, de nuevo, representa un aspecto específico de la solu ción. Un ejemplo de esta técnica es el método basado en "codificación gramática" de Hiroaki Kitano, en el que a un AG se le encargó la tarea de evolucionar un sencillo con junto de reglas llamadas gramática libre de contexto, que a su vez se utilizaban para ge nerar redes neuronales para una variedad de problemas [26].
La virtud de estos tres métodos es que facilitan la definición de operadores que causan los cambios aleatorios en las candidatas seleccionadas: cambiar un 0 por un 1 o viceversa, sumar o restar al valor de un número una cantidad elegida al azar, o cambiar una letra por otra. Otra estrategia, desarrollada principalmente por John Koza, de la Universidad de Stanford, y denominada programación genética, representa a los pro gramas como estructuras de datos ramificadas llamadas árboles [27], se muestran algu nos ejemplos sencillos en la figura 210. En este método, los cambios aleatorios pueden generarse cambiado el operador o alterando el valor de un cierto nodo del árbol, o sus tituyendo un subárbol por otro.
Figura 2—10. Tres sencillos árboles de programa del tipo utilizado normalmente en la programación genética. Debajo se proporciona la expresión matemática que representa cada uno.
riamente tanto como sea necesario para resolver cualquier problema que se les pida [28].
2.6.2 Métodos de selección
Un algoritmo genético puede utilizar muchas técnicas diferentes para seleccionar a los individuos que deben copiarse hacia la siguiente generación, a continuación se listan algunos de los más comunes. Algunos de estos métodos son mutuamente exclu sivos, pero otros pueden utilizarse en combinación, algo que se hace a menudo y que mejora los resultados [28].
• Selección elitista: se garantiza la selección de los miembros más aptos de cada generación. La mayoría de los AGs no utilizan elitismo puro, sino que usan una forma modificada por la que el mejor individuo, o algunos de los mejores, son copiados hacia la siguiente generación en caso de que no surja nada mejor. • Selección proporcional a la aptitud: los individuos más aptos tienen más
probabilidad de ser seleccionados, pero no la certeza.
• Selección por rueda de ruleta: una forma de selección proporcional a la apti
tud en la que la probabilidad de que un individuo sea seleccionado es propor cional a la diferencia entre su aptitud y la de sus competidores. Conceptual mente, esto puede representarse como un juego de ruleta cada individuo ob tiene una sección de la ruleta, pero los más aptos obtienen secciones mayores que las de los menos aptos. Luego la ruleta se hace girar, y en cada vez se elige al individuo que "posea" la sección en la que se pare la ruleta.
• Selección por torneo: se eligen subgrupos de individuos de la población, y los miembros de cada subgrupo compiten entre ellos. Sólo se elige a un individuo de cada subgrupo para la reproducción.
• Selección por rango: a cada individuo de la población se le asigna un rango numérico basado en su aptitud, y la selección se basa en este ranking, en lugar de las diferencias absolutas en aptitud. La ventaja de este método es que puede evitar que individuos muy aptos ganen dominancia al principio a expensas de los menos aptos, lo que reduciría la diversidad genética de la población y podr ía obstaculizar la búsqueda de una solución aceptable.
• Selección generacional: la descendencia de los individuos seleccionados en cada generación se convierte en toda la siguiente generación. No se conservan individuos entre las generaciones.
2.6.3 Operadores genéticos
Una vez que la selección ha elegido a los individuos aptos, éstos deben ser alte rados aleatoriamente con la esperanza de mejorar su aptitud para la siguiente genera ción. Existen dos estrategias básicas para llevar esto a cabo. La primera y más sencilla se llama mutación. Al igual que una mutación en los seres vivos cambia un gen por otro, una mutación en un algoritmo genético también causa pequeńas alteraciones en puntos concretos del código de un individuo [29]. En la figura 211 se muestra un ejemplo.
El segundo método se llama cruzamiento, e implica elegir a dos individuos para que intercambien segmentos de su código, produciendo una descendencia artificial cu yos individuos son combinaciones de sus padres. Este proceso pretende simular el pro ceso análogo de la recombinación que se da en los cromosomas durante la reproduc ción sexual.
Las formas comunes de cruzamiento incluyen al cruzamiento de un punto, en el que se establece un punto de intercambio en un lugar aleatorio del genoma de los dos individuos, y uno de los individuos contribuye todo su código anterior a ese punto y el otro individuo contribuye todo su código a partir de ese punto para producir una des cendencia, y al cruzamiento uniforme, en el que el valor de una posición dada en el ge noma de la descendencia corresponde al valor en esa posición del genoma de uno de los padres o al valor en esa posición del genoma del otro padre, elegido con un 50% de probabilidad. Podemos este método de cambio en la figura 212.
Figura 2—11. Cruzamiento.
El diagrama de arriba ilustra el efecto de estos dos operadores genéticos en los individuos de una po blación de cadenas de 8 bits. El diagrama superior muestra a dos individuos llevando a cabo un cruza miento de un punto; el punto de intercambio se establece entre las posiciones quinta y sexta del geno
ma, produciendo un nuevo individuo que es híbrido de sus progenitores.
El diagrama muestra a un individuo sufriendo una mutación en la posición 4, cambiando el 0 de esa posición de su genoma por un 1.
2.7 Neuroevolución
La Neuroevolución presenta fundamentalmente un acercamiento diferente para las tareas de aprendizaje por refuerzo. Se apalanca en las fortalezas de dos áreas de la inteligencia artificial inspiradas en la biología: las redes neuronales artificiales (RNAs) y los algoritmos genéticos (AG).
La Neuroevolución consiste en utilizar algoritmos genéticos para hacer evolu cionar una población de redes neuronales [1]. El algoritmo genético tomará una pobla ción de redes neuronales y generará una nueva, mejor, o igual que la anterior, a partir de la recombinación, mediante el uso de operadores genéticos de cruce y mutación, de las redes neuronales de la población anterior.
Al utilizar un algoritmo genético para evolucionar una población, se está reali zando una búsqueda en el espacio de los comportamientos, con la intención de encon trar un comportamiento óptimo. Visto de forma práctica, el proceso de evolución con sidera cada red neuronal como el cerebro de un agente, en el caso de la presente inves tigación, un piloto virtual, o bien un autopiloto, dando lugar a una población de agentes que progresivamente van adaptando sus comportamientos al entorno. De esta forma, la Neuroevolución representa un proceso de aprendizaje evolutivo [40].
Uno de los principales problemas de la Neuroevolución consiste en encontrar una representación adecuada de la estructura y los pesos de una red neuronal, para que ésta pueda ser manejada adecuadamente por un algoritmo genético. Podríamos optar por codificar una red entera como cadenas de bits (GENITOR [6]), también podríamos usar matrices binarias (Binary Matrix Encoding, [7]), o como una gramática descriptora
[Grammar Based Encoding, [8]), etc. Sin embargo, desde que se comenzó a codificar las redes neuronales, hizo su aparición uno de los más grandes problemas de la Neuroevo lución: el denominado Competing Conventions Vroblem, CCP [9] (el problema de las repre sentaciones enfrentadas).
Este problema puede resumirse diciendo que dos representaciones genéticas dis tintas (genomas) pueden exhibir exactamente el mismo comportamiento (fenotipo), de modo que su combinación mediante un operador de cruce multipunto habitual lleve a un empeoramiento de la especie, ya que los hijos rompen las características de los pa dres sin posibilidad de mejora. El alcance de este mal endémico de la Neuroevolución
llevó a muchos autores hasta el punto de no considerar el operador cruce en la evolu ción, dejando todo el peso de la exploración sobre el operador mutación.
2.8 Neuroevolución NEAT
N E A T (Neuro Evolution of Augmenting Topologies), traducido al espańol como Neu ro Evolución de Topologías Aumentadas fue desarrollado por Kenneth Stanley Owen y Risto Miikkulainen en la Universidad de Texas [1]. Utiliza la codificación basada en no do para describir la estructura de la red y conexión de los pesos, y tiene una manera hábil de evitar el problema de la competencia al usar los datos históricos generados cuando se generan nuevos nodos y relaciones. NEAT también intenta conservar el ta mańo de las redes que produce a un mínimo comenzando la evolución usando una po blación de redes de topología mínima y agregando las neuronas y conexiones a través de su desarrollo. La naturaleza trabaja en esta manera —aumentando la complejidad de los organismos a través del tiempo, por lo que resulta una solución atractiva y es en parte la razón por la que he elegido esta técnica para el desarrollo del control del mini helicóptero.
N E A T es un método de Reinforcement Eearning (traducido al espańol como Aprendizaje por Refuerzo) basado métodos Evolutivos, específicamente Algoritmos Genéticos y Redes Neuronales. NEAT se basa en Neuroevolución, el cual, como se ha visto anteriormente, es el proceso de evolucionar Redes Neuronales mediante Algorit mos Genéticos. La Neuroevolución no solo consta de entrenar un conjunto de redes, vía modificación de pesos, para que aprendan una tarea óptima, sino realmente modifi car, mediante mutación y cruce, la estructura de las redes, ya sea cambiar el numero de capas de la red, las conexiones sinápticas entre capas, el numero de neuronas o la re combinación de las mismas [40],[1].
Los Algoritmos Genéticos son utilizados tanto para evolucionar la topología de las RNA como para resolver el problema de Estimación de Parámetros requerido para la asignación de pesos sinápticos adecuados. El proceso de evolución en NEAT se de nomina Complexification, ya que la evolución comienza con una población de redes de topología muy simple de una sola capa, con un número limitado de neuronas y pocas conexiones.
El sistema inicialmente busca soluciones en un espacio de parámetros de poca dimensión (i.e. lineal o unidimensional). El espacio puede no ser suficientemente expre sivo para resolver el problema, sin embargo se logran encontrar soluciones óptimas localmente. Luego, el sistema aumenta las dimensiones del espacio de búsqueda a través de Complexification.
talmente a medida que las mutaciones ocurren y solo sobreviven aquellas estructuras que resultan útiles a lo largo de las evaluaciones de aptitud. En otras palabras, la elabo ración estructural que introduce el sistema está siempre justificada.
Así mismo, como la población arranca de forma mínima la dimensión del espa cio de búsqueda se minimiza y así NEAT siempre busca en menos dimensiones que otros T W E A N N s y sistemas de NE con topología fija. Esto le da a NEAT una ventaja de desempeńo comparada con otros acercamientos.
2.8.2 El genoma NEAT
La versión original de NEAT utiliza codificación directa (codificación de grafos) pero puede utilizar otros tipos de codificación incluyendo métodos de codificación in directa. NEAT cuenta con componentes fuertemente interrelacionados cuyas carac terísticas principales son [1]:
a) El proceso evolutivo comienza desde estructuras mínimas que crecen sólo cuando es beneficioso.
b) Utiliza marcas históricas en los genes para lograr un entrecruzamiento (crossover)
preciso.
c) Protege la innovación topológica mediante la especiación.
Esta combinación de elementos ha permitido a NEAT resolver problemas difí ciles de aprendizaje por refuerzo más eficientemente que otros métodos de Neuroevo lución [1], [10], [32]. NEAT ha superado precisas pruebas de ablación que demuestran que cada componente del sistema contribuye significativamente a su performance glo bal [1].
NEAT es un algoritmo capaz de evolucionar los pesos y las topologías de una población de redes neuronales utilizando mecanismos de refuerzo para realizar un aprendizaje no supervisado [1], [10], [11]. La potencia de NEAT como algoritmo de Neuroevolución, reside fundamentalmente en sus 3 características principales, como se ha mencionado antes, utiliza un ingenioso operador de cruce para evitar el problema de las representaciones enfrentadas (CCP), incorpora un sistema de protección de las in novaciones genéticas mediante especies y realiza una evolución incremental de las topo logías, partiendo de redes neuronales mínimas [1], [39], [41].
cador de innovación. Un gen neurona describe la función de esa neurona dentro de la red sea de entrada, salida, oculta, o de sesgo. Cada gen neurona también posee un número de identificación único.
De esta forma, un genoma en NEAT estará compuesto por dos vectores que contendrán la información de todos los genes enlace y neurona respectivamente [12]. La figura 213 muestra las listas del gen para un genoma que describe una red simple [39].
Wajght: 1.2 Weight: 3 Weight 0.7 Weight: 2.1 Weight: 1.1 Weight: 0.6 Weight: 1
From: 1 From:
1
From: 2 From: 3 From: 3 From: 4 From: 5To: 3 To: 4 To: 4 To: 4 To: 5 To: 5 To: 3
Enabled: Y Enabled: Y Enabled: Y Enabled: Y Enabled: N Enabled: Y Enabled: Y
Recurrent: N Recurrent: N Recurrent: N Recurrent: N Recurrent: N Recurrent: N Recurrent: Y
Innovaíion: 1
Innovation: 6 Innovation: 2 Innovation: 8 Innovation: 3 Innovation: 4 Innovation: 7
G e n e s e n l a c e
1 ^ ^ ^ ^ ^ ^ ^ ^ m 2
ID: 1 ID: 2 ID: 3 ID: 4 ID: 5
Type: tnput Type: ˇnput Type: hidden Type: hidden Type: ouíput
G e n e s n e u r o n a
Figura 2—13. Codificando una red con el método NEAT
2.8.3 Operadores e innovaciones
Una vez que se ha visto cómo se codifica una estructura de red veremos cómo muta un genoma. Hay cuatro operadores de mutación que usa NEAT [39]: mutación para agregar un gen enlace al genoma, mutación para agregar un gen neurona, mutación para perturbar los pesos del enlace, y mutación que puede alterar la curva de respuesta de la función de activación para cada neurona. Todos estos operadores aseguran que se generen oportunidades de explorar todas las partes del espacio de comportamientos posibles, tanto a nivel de ponderación de pesos como a nivel estructural de la red [41].
Una innovación ocurre siempre que la nueva estructura sea agregada a un ge noma, ya sea agregando un gen enlace o agregando un gen neurona, y es simplemente un registro de ese cambio. Se conserva una base de datos global con todas las innova ciones, donde cada innovación tiene su propio número de identificación único. Cada vez que se agrega una conexión (enlace) o neurona se hace referencia a la base de datos para revisar si esa innovación se ha creado previamente. Si existe previamente, se asigna el número de identificación de innovación existente al nuevo gen. Si no, se crea una nueva innovación, agregado a la base de datos el registro, y el gen se marca con el nue vo número de identificación creado [39].
Como ejemplo, imaginemos que estamos desarrollando una red que tenga dos entradas y una salida. La red en la izquierda de la figura 214 describe la estructura bási ca que cada miembro de la población posee al inicio del funcionamiento. La red a la derecha muestra el resultado de una mutación que agrega una neurona a la red. Cuando se agrega la neurona 4 se crean tres innovaciones: una innovación para la neurona, in novaciones para cada uno de los nuevos enlaces entre las neuronas 14 y 43. (El viejo gen enlace entre las neuronas 1 y 3 sigue existiendo en el genoma, pero está deshabilita do).
Figura 2—14. Mutación para agregar una neurona
Toda vez que NEAT crece la estructura agregando neuronas y enlaces (o co nexiones), todos los genomas en la población inicial comienzan representando topolog ías mínimas idénticas (pero con diversos pesos de conexión). Cuando se crean los ge nomas, el programa define automáticamente las innovaciones para todas las neuronas y enlaces de inicio. Se asigna un valor de 1 a las neuronas de entrada y salida para evitar confusión.