UNIVERSIDAD NACIONAL DEL CENTRO DE LA PR OVINCIA DE BUENOS AI RES FACULTAD DE CIENCIAS EXACTAS – DEPARTAMENTO DE COM PUTACIÓN Y SISTEMAS MAESTRÍA EN INGENIERÍA DE SISTEMAS ESTUDIO DE NEURO-CONTROLADORES EVOLUTIVOS PARA NAVEGACIÓN DE ROBOTS AUTÓNOMOS por José Alberto Fernández León Trabajo sometido a evaluación como requisito parcial para la obtención del grado de Magíster en Ingeniería de Sistemas Prof. Dr. Gerardo G. Acosta Director Prof. Dr. Miguel A. Mayosky Co-Director Tandil, 21 Noviembre 2005 ii ESTUDIO DE NEURO-CONTROLADORES EVOLUTIVOS PARA NAVEGACIÓN DE ROBOTS AUTÓNOMOS José Alberto Fernández León1-4-6 Gerardo G. Acosta2-4-6 Miguel A. Mayosky3-5 Escher, Sky & Water I, 1938 1 Instituto de Investigación INTIA – Departamento de Computación y Sistemas Facultad de Ciencias Exactas, Universidad Nacional del Centro de la Provincia de Buenos Aires (7000) Tandil - Buenos Aires – Argentina 2 Grupo INTELYMEC – Departamento de Ingeniería Electromecánica Facultad de Ingeniería, Universidad Nacional del Centro de la Provincia de Buenos Aires (B7400JWI) Olavarría - Buenos Aires – Argentina 3 Laboratorio LEICI - Departamento de Electrotecnia, Facultad de Ingeniería, Universidad Nacional de La Plata. (1900) La Plata - Buenos Aires – Argentina 4 CONICET 5 CICPBA 6 I+D – Consejo Nacional de Investigaciones Científicas y Técnicas, Argentina – Comisión de Investigaciones Científicas del Gob. de la Prov. de Buenos Aires, Argentina RIDIAAR – Red de Investigación y Desarrollo en Inteligencia Artificial Aplicada a Robótica Olavarría-Tandil, Argentina Universidad Nacional del Centro de la Provincia de Buenos Aires Tandil, Buenos Aires Argentina iii para Ana, Daniel, y Andrea para Nicolás y Paula, mis queridos Abuelos para mi Yo altruista v AGRADECIMIENTOS Desde lo profesional, quiero agradecer a todos aquellos que de algún modo colaboraron en el desarrollo de este trabajo y fueron una fuente de inagotable de paciencia, sustento y compañerismo, en mi búsqueda de la seriedad, sencillez, método y constancia. En primer lugar quiero agradecer ampliamente a Gerardo Acosta por el apoyo absoluto, por su optimismo, comentarios oportunos y buena predisposición desde el comienzo. Principalmente, por su gran paciencia ante mi marcada insistencia y perseverancia, y por compartir “un secreto olímpico” de mucha ayuda para mi trabajo. Al mismo tiempo quiero agradecer a Miguel Mayosky por sus comentarios concretos y siempre certeros, y particularmente por el “de cómo construir una cajita comestible” que me guío al inicio de mi formación. Además, a ambos por darme las pautas y el ejemplo de cómo hacer un trabajo científico. Realmente es grato trabajar con personas que ponen todo de sí, no solo la parte académica sino también la parte humana. Un agradecimiento muy especial a Juan M. Santos por su total predisposición ante mis requerimientos, y por su trato fuera de lo común hacia mis continuas inquietudes en todos los aspectos. También hago extensivo el agradecimiento a su Grupo de Inteligencia Computacional Aplicada a Robótica Cooperativa, Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires, Argentina, particularmente por la colaboración brindada durante la realización de pruebas experimentales con el robot real. Quiero expresar también mi agradecimiento a Ezequiel Di Paolo , que sin conocerme personalmente y a la distancia desde la Universidad de Sussex, Reino Unido, supo participar en etapas iniciales de mi investigación. En ello agradezco sus sugerencias, no sólo por nuestras charlas vinculadas a Robótica Evolutiva, sino que también por su ayuda incondicional y por su siempre buena voluntad. Del mismo modo, agradezco a Inman Harvey por su colaboración. A mis compañeros del Grupo de Investigación en Computación Aplicada (INCA) del Instituto INTIA, con quienes compartí un sin fin de cuestiones filosóficas y mundanas, no sólo a nivel personal sino también sobre temas vinculados a este trabajo. Desde el plano personal, quiero agradecer indudablemente a Ana, Daniel y Andrea quienes fueron los principales afectados de mis múltiples fluctuaciones de humor y de mis frecuentes abstracciones de la realidad. Sin ellos no podría haberlo hecho. A mis queridos abuelos, que gracias a sus esfuerzos, junto con los de Ana, Daniel y Andrea, hicieron de mí quien soy. Finalmente, quiero agradecer muy especialmente a la Comisión Nacional de Investigaciones Científicas y Técnicas (CONICET), por haberme apoyado con una Beca de Iniciación a la Investigación. Del mismo modo, a la Facultad de Ciencias Exactas de la Universidad Nacional del Centro de la Provincia de Buenos Aires que junto con CONICET, me dieron la posibilidad de formarme en Argentina, dado que, parafraseando a Bernardo Houssay, “es el país donde nací, me formé, tengo amigos, y aprendí”. vii “Pero, tan pronto como hube acabado el ciclo de estudios a cuyo término se acostumbraba a ser recibido en el rango de doctos [doctor, o nivel de postgrado], […] me encontraba embarazado por tantas dudas y errores que me parecía no haber obtenido otro provecho, al tratar de instruirme, que el de haber descubierto más y más mi ignorancia” René Descartes, Discurso del Método “[…] como la multiplicidad de leyes [en Ciencias] a menudo sirve de excusa para los vicios, de tal forma que un Estado está mucho mejor regido cuando no existen más que unas pocas, pero muy estrictamente observadas, […] estimé que tendría suficiente con los cuatro [preceptos] siguientes, con tal de que tomase la firme y constante resolución de no dejar de observarlos ni una sola vez. El primero consistía en no admitir jamás cosa alguna como verdadera sin haber conocido con evidencia que así era; es decir, evitar con sumo cuidado la precipitación y la prevención, y no admitir en mis juicios nada más que lo que se presentase tan clara y distintamente a mi espíritu, que no tuviese motivo alguno para ponerlo en duda. El segundo, en dividir cada una de las dificultades a examinar en tantas partes como fuera posible y necesario para su mejor solución. El tercero, en conducir con orden mis pensamientos, empezando por los objetos más simples y más fáciles de conocer, para ascender poco a poco, gradualmente, hasta el conocimiento de los más complejos, y suponiendo incluso un orden entre aquéllos que no se preceden naturalmente unos a otros. Y el último, en hacer en todo enumeraciones tan completas y revisiones tan amplias, que llegase a estar seguro de no haber omitido nada”. René Descartes, Discurso del Método. ix ESTUDIO DE NEURO-CONTROLADORES EVOLUTIVOS PARA NAVEGACIÓN DE ROBOTS AUTÓNOMOS Maestría en Ingeniería de Sistemas por José Alberto Fernández León [email protected] Director: Gerardo G. Acosta [email protected] Co-Director: Miguel Mayosky [email protected] Universidad Nacional del Centro de la Provincia de Buenos Aires Concejo Nacional de Investigaciones Científicas y Técnicas (CONICET) 21 Noviembre de 2005 RESUMEN Uno de los desafíos centrales de la Biología es entender cómo muchas especies constituyen colecciones de poblaciones de individuos diferenciados genéticamente (evolución). Dichas especies poseen el potencial de adaptarse a entornos locales en diferentes formas, principalmente manifestadas por su comportamiento dentro el entorno. Vinculado a esto, no sólo existe un interés profundo de entender cómo un agente natural (o artificial) puede alcanzar a adaptarse a un ambiente o situación cambiante, sino que también implica el desafío de construir mecanismos artificiales con iguales características adaptativas respecto de las naturales. Robótica Evolutiva es una nueva metodología para la creación automática de robots autónomos. Inspirado en el principio Darwiniano de la reproducción selectiva del más apto, es posible ver a los robots como organismos artificiales que pueden desarrollar sus propias habilidades sin la intervención humana. Por otra parte, basado principalmente en aspectos biológicos, son utilizadas redes neuronales, algoritmos genéticos, sistemas dinámicos, e ingeniería computacional para llevar a cabo el proceso de control robótico. Algunas de las características presentes en los robots desarrollados con dicha metodología, al igual que en los sistemas biológicos simples, involucran aspectos de robustez, simplicidad, flexibilidad y modularidad. Además, dentro de este contexto, los modelos vinculados con el comportamiento adaptativo autónomo pueden ser estudiados bajo el concepto de agentes robóticos, conjuntamente con la dinámica del ambiente con el cual interaccionan. En términos generales, el objetivo de este trabajo es estudiar controladores neuronales genéticamente determinados aplicados a robótica móvil autónoma, principalmente, con la finalidad de llevar a cabo tareas de navegación adaptativa dentro de entornos no conocidos. Una vez expuesto el enfoque de distintos autores dentro de la Biología y según el plano artificial, y particularmente luego del desarrollo incremental de experimentos dentro de Robótica Evolutiva, se planteará definir como objetivo secundario derivado del estudio realizado alguna postura en cuanto a la siguiente pregunta: ¿es posible definir mecanismos de diseño adaptativos y sistemático s que generen comportamientos emergentes? En síntesis, en este trabajo se desarrollará un estudio sistemático de controladores de robots móviles dentro de la Robótica Evolutiva, y particularmente la generación de controladores por niveles o estructuras modulares. El tema de combinar Robótica Evolutiva con estructuras modulares es muy amplio y todavía necesita ser estudiado suficientemente. Pero es posible lograrlo en casos donde los módulos son sub-redes x que realizan una simple tarea (p. ej. evasión de obstáculos), para luego dejarlos fijos y usar evolución para amalgamarlos en un controlador modular completo p( . ej. localizar un objeto y mover al robot hasta alcanzarlo). Lo antes descrito es uno de los temas de vanguardia a nivel mundial en donde puede ser aplicado el presente trabajo. Para ello se plantea también la descripción de una herramienta genérica, adaptable y extensible a partir de la cual desarrollar nuevos experimentos. Dicha herramienta ha sido utilizada para el desarrollo del presente trabajo. Palabras Clave: Sistemas Adaptativos y Evolutivos; Controladores Robóticos; Robótica Evolutiva; Redes Neuronales; Algoritmos Genéticos xi ESTUDIO DE NEURO-CONTROLADORES EVOLUTIVOS PARA NAVEGACIÓN DE ROBOTS AUTÓNOMOS Master in Systems Engineering by José Alberto Fernández León [email protected] Advisor: Gerardo G. Acosta [email protected] Co-Advisor: Miguel Mayosky [email protected] Universidad Nacional del Centro de la Provincia de Buenos Aires Concejo Nacional de Investigaciones Científicas y Técnicas (CONICET) 21 November 2005 ABSTRACT One of the central challenges of Biology is the understanding of how natural species constitute populations genetically differenced (evolution). These species possess the potential of adapting to local environments in different forms, mainly manifested by their behaviors into the environment. An increasing interest exists in understanding how a natural agent (or artificial) can adapt to an environment or changing situation, but rather it also implies a challenge of building artificial mechanisms with equal adaptive characteristics. Evolutionary robotics is a new methodology for the automatic creation of autonomous robots. Inspired by the Darwinian principle of selective reproduction of the most capable, it is possible to see robots as artificial organisms that can develop their own abilities without human intervention. On the other hand, based mainly on biological aspects, neural networks, genetic algorithms, dynamic systems, and computational engineering are used to carry out the robot control process. Some of the present characteristics in this methodology, as well as into the simple biological systems, involve characteristics of robustness, simplicity, flexibility and modularity. Also, in this context, models linked to the autonomous adaptive behavior can be studied under the concept of robotic agents, jointly with the dynamics of the environment. In general terms, the aim of this work is to study neural-controllers applied to autonomous mobile robotics, mainly with the purpose of carrying out tasks of adaptive navigation into a non-well-known environment. After exposing different works inside the biology and the artificial area, and mainly after the incremental development of experiments inside Evolutionary Robotics, it will be possible to give alternative answers to the following question: is it possible to define adaptive-systematic design mechanisms that generate emergent behaviors? Summarizing, in this work a systematic study of mobile robots’ controllers inside the Evolutionary Robotics paradigm will be exposed, with emphasis on the development of modularized co ntrollers. The topic of combining Evolutionary Robotics with modular structures is very wide and it still needs to be studied in depth. But it is possible to achieve it in cases where the modules are sub -nets carrying out a simple task (e.g. obstacle avoid ance), and then leaving modules fixed, using evolution to amalgamate them in a full modulate controller (e.g. to locate an object and move the robot until reaching it). This context is one of the topics of main interest where the present work can be applied. For that reason, the current work intends an experimental study of the controller’s development, as well as the description of a generic, adaptive and xii expandable tool for developing new experiments. This tool has been used for the development of the present work. Key Words: Evolutionary and Adaptive Systems; Robotic Controllers; Evolutionary Robotics; Neural Networks; Genetic Algorithms xiii TABLA DE CONTENIDOS Agradecimientos........................................................................................................................................................................v Resumen.................................................................................................................................................................................... ix Abstract..................................................................................................................................................................................... xi Tabla de Contenidos.............................................................................................................................................................xiii Lista de Figuras....................................................................................................................................................................xvii Lista de Tablas.....................................................................................................................................................................xxiii Glosario.................................................................................................................................................................................. xxv Prefacio....................................................................................................................................................................................... 1 CAPÍTULO 1 - INTRODUCCIÓN.................................................................................................................................... 1 1.1 1.2 MOTIVACIÓN.........................................................................................................................................................1 ORGANIZACIÓN DEL TRABAJO...........................................................................................................................7 CAPÍTULO 2 - CONTEXTO .............................................................................................................................................. 9 2.1 INTRODUCCIÓN.....................................................................................................................................................9 2.2 S ISTEMAS ARTIFICIALES : BIO -INSPIRACIÓN...................................................................................................9 2.2.1 Creando Robots Autónomos.......................................................................................................................10 2.2.1.1 2.2.1.2 2.2.1.3 2.2.1.4 2.2.1.5 2.3 2.3.1 2.3.2 2.3.3 2.4 2.5 2.5.1 2.6 2.6.1 2.6.2 Autonomía..............................................................................................................................................10 Posicionalidad y Corporeidad.................................................................................................................10 Adaptabilidad..........................................................................................................................................11 Agentes Reactivos...................................................................................................................................11 Adaptación en Sistemas Artificiales........................................................................................................12 ALGORITMOS GENÉTICOS................................................................................................................................13 Función de Fitness.......................................................................................................................................15 Fitness Landscape........................................................................................................................................16 Codificación Genética.................................................................................................................................16 REDES NEURONALES ARTIFICIALES ...............................................................................................................17 ROBÓTICA EVOLUTIVA .....................................................................................................................................17 La Robótica Basada en Comportamientos y la Robótica Evolutiva....................................................18 DISEÑO DE CONTROLADORES ..........................................................................................................................18 La Arquitectura por Subsumisión.............................................................................................................18 Evolución de Robots....................................................................................................................................19 2.6.2.1 2.6.2.2 Evolución de Robots: Mundo Real .........................................................................................................19 Evolución de Robots: Simulación ...........................................................................................................20 2.6.3 Enfoques en Evolución Artificial..............................................................................................................20 2.7 CIENCIA E INGENIERÍA ......................................................................................................................................22 2.7.1 Adaptación, Descomposición e Integración............................................................................................22 2.7.2 Descripciones de Comportamientos..........................................................................................................23 2.7.3 Auto-Organización.......................................................................................................................................24 2.7.4 Aprendizaje y Evolución.............................................................................................................................24 2.7.5 El Comportamiento, la Emergencia y el Entorno ..................................................................................25 2.8 EVOLUCIÓN ARTIFICIAL: IMPLICANCIAS ......................................................................................................25 2.8.1 Evolución Artificial e Ingeniería...............................................................................................................26 2.8.2 Evolución Artificial y Ciencia....................................................................................................................27 2.8.3 Discusión.......................................................................................................................................................27 2.9 CONCLUSIONES ...................................................................................................................................................29 xiv CAPÍTULO 3 - HERRAMIENTAS PARA EL DESARROLLO DE CONTROLADORES ............................31 3.1 3.2 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.3 3.4 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.5 3.5.1 3.6 INTRODUCCIÓN................................................................................................................................................... 31 ESTUDIOS BIBLIOGRÁFICOS PREVIOS............................................................................................................ 31 Estudio sobre Arquitecturas Homeostáticas............................................................................................33 Estudio sobre Tareas Específicas..............................................................................................................33 Estudio sobre Arquitecturas Evolutivas....................................................................................................34 Estudios sobre Robótica Evolutiva ............................................................................................................34 Estudios sobre Exploración en Navegación............................................................................................34 Estudios sobre Navegación por Sensores.................................................................................................35 EL ROBOT KHEPERA......................................................................................................................................... 35 SOFTWARE DE S IMULACIÓN ............................................................................................................................ 36 KIKS – Kiks Is a Khepera Simulator........................................................................................................36 Evorobot .........................................................................................................................................................37 Webots.............................................................................................................................................................37 WSU Java Simulator....................................................................................................................................38 YAKS – Yet Another Khepera Simulator..................................................................................................38 S ELECCIÓN DEL SOFTWARE DE S IMULACIÓN .............................................................................................. 39 Herramientas de Software y Técnicas.......................................................................................................41 CONCLUSIONES .................................................................................................................................................. 42 CAPÍTULO 4 - MÉTODO EXPERIMENTAL............................................................................................................45 4.1 INTRODUCCIÓN................................................................................................................................................... 45 4.2 MÉTODO EXPERIMENTAL ................................................................................................................................ 45 4.2.1 Entorno Simulado........................................................................................................................................46 4.2.2 Modelo Robótico: Modelo Simple..............................................................................................................47 4.2.3 Algoritmo Genético.......................................................................................................................................51 4.2.4 Neuro-Controladores...................................................................................................................................54 4.2.4.1 4.2.4.2 4.2.4.3 4.2.4.4 4.2.4.5 4.3 4.4 Controlador Feed-Forward Neural Network (FFNN)............................................................................. 55 Controlador Recurrent Feed-Forward Neural Network (RFFNN).......................................................... 58 Controlador Continuous-Time Recurrent Neural Network (CTRNN) .................................................... 59 Controlador Plastic Neural Network (PNN) ........................................................................................... 60 Controlador Homeostatic Plastic Neural Network (HPNN).................................................................... 63 TAREAS A RESOLVER ........................................................................................................................................ 64 CONCLUSIONES .................................................................................................................................................. 65 CAPÍTULO 5 - RESULTADOS EXPERIMENTALES CON CONTROLADORES MONOLÍTICOS .......67 5.1 INTRODUCCIÓN................................................................................................................................................... 67 5.2 EVOLUCIÓN......................................................................................................................................................... 67 5.3 ANÁLISIS FUNCIONAL ....................................................................................................................................... 69 5.3.1 Fototaxis.........................................................................................................................................................70 5.3.1.1 5.3.1.2 5.3.1.3 5.3.1.4 5.3.1.5 5.3.1.6 5.3.2 Evasión de Obstáculos.................................................................................................................................83 5.3.2.1 5.3.2.2 5.3.2.3 5.3.2.4 5.3.2.5 5.3.2.6 5.3.3 Experimentos con FFNN........................................................................................................................ 71 Experimentos con RFFNN..................................................................................................................... 73 Experimentos con CTRNN.................................................................................................................... 74 Experimentos con PNN.......................................................................................................................... 76 Experimentos con HPNN....................................................................................................................... 78 Fototaxis Condicional ............................................................................................................................ 80 Experimentos con FFNN........................................................................................................................ 84 Experimentos con RFFNN..................................................................................................................... 86 Experimentos con CTRNN.................................................................................................................... 87 Experimentos con PNN.......................................................................................................................... 89 Experimentos con HPNN....................................................................................................................... 90 Evasión de Obstáculos con Objetivo: Navegación.................................................................................. 92 Aprendizaje ....................................................................................................................................................95 5.3.3.1 5.3.3.2 5.3.3.3 5.3.3.4 5.3.3.5 5.3.3.6 Experimentos con FFNN........................................................................................................................ 96 Experimentos con RFFNN..................................................................................................................... 98 Experimentos con CTRNN.................................................................................................................... 99 Experimentos con PNN........................................................................................................................ 101 Experimentos con HPNN..................................................................................................................... 102 Aprendizaje con Variaciones Deliberadas ............................................................................................ 104 xv 5.4 CONCLUSIONES ................................................................................................................................................ 107 CAPÍTULO 6 - EVOLUCIÓN DE NEURO-CONTROLADORES MÚLTI-NIVEL ......................................109 6.1 INTRODUCCIÓN................................................................................................................................................ 109 6.2 EXPERIMENTOS CON EVOLUCIÓN POR NIVELES ....................................................................................... 110 6.2.1 Coordinación de Niveles Comportamentales........................................................................................110 6.2.2 Resultados Experimentales en Simulación Simple ..............................................................................112 6.2.2.1 6.2.2.2 6.2.2.3 6.2.2.4 6.2.2.5 6.2.2.6 6.2.3 Etapa 1: Incorporación del Nivel de Fototaxis.......................................................................................112 Etapa 2: Incorporación del Nivel de Evasión de Obstáculos..................................................................113 Etapa 3: Evaluaciones Parciales de los Controladores Jerárquicamente Organizados............................113 Etapa 4: Incorporación del Nivel de Aprendizaje..................................................................................115 Etapa 5: Evaluación Final de los Controladores Jerárquicamente Organizados.....................................116 Etapa 6: Análisis de las Implicancias y Discusión.................................................................................118 Resultados Experimentales en Simulación Compleja.........................................................................118 6.2.3.1 Estrategias de Navegación en Entornos No-Conocidos.........................................................................119 6.2.3.1.1 Seguimiento de Paredes...............................................................................................................121 6.2.3.1.2 Comportamiento de Búsqueda de Objetivo .............................................................................121 6.2.3.1.3 Evasión de Obstáculos Convexos ...............................................................................................122 6.2.3.1.4 Evasión de Obstáculos Cóncavos ...............................................................................................122 6.2.3.1.5 Coordinación de Comportamientos...........................................................................................122 6.2.3.1.6 Robustez a Variaciones Ambientales ........................................................................................123 6.2.3.1.7 Robustez a Variaciones Morfológicas .......................................................................................124 6.2.4 Resultados Experimentales en Entornos Reales...................................................................................125 6.3 IMPLICACIONES MÁS ALLÁ DE LA EVOLUCIÓN POR NIVELES TRADICIONAL ...................................... 132 6.3.1 Optimización de la Coordinación de Comportamientos......................................................................132 6.4 DISCUSIÓN......................................................................................................................................................... 133 6.5 CONCLUSIONES ................................................................................................................................................ 134 CAPÍTULO 7 - CONCLUS IONES ...............................................................................................................................135 7.1 7.2 7.2.1 7.2.2 7.2.3 7.2.4 7.2.5 7.2.6 7.2.7 7.2.8 7.2.9 7.3 7.4 7.5 INTRODUCCIÓN................................................................................................................................................ 135 CONCLUSIONES Y APORTES ........................................................................................................................... 135 Recomendaciones para la Optimización del Desempeño....................................................................135 Observaciones a Nivel Topológico..........................................................................................................136 Resultados en Simulación.........................................................................................................................138 Implicancias................................................................................................................................................138 Conclusiones sobre las Herramientas de Generación de Controladores.........................................139 Hipótesis sobre el Rol de la Adaptación en la Emergencia de Comportamientos..........................139 Discusión.....................................................................................................................................................140 Trabajos Futuros........................................................................................................................................141 Aportes Realizados.....................................................................................................................................143 PUBLICACIONES RELACIONADAS CON ESTE TRABAJO............................................................................. 143 ALGUNAS LECCIONES APRENDIDAS PARA EL DISEÑO DE NEURO -CONTROLADORES EVOLUTIVOS144 RESUMEN DE LOS EXPERIMENTOS DESARROLLADOS.............................................................................. 145 APÉNDICE - NOTAS PARA EL USUARIO ..............................................................................................................149 A.1. A.2. A.3. A.4. A.5. MÓDULOS DE SOFTWARE............................................................................................................................... 149 INTERFACES CON EL ROBOT.......................................................................................................................... 152 DEFINICIÓN DE UN EXPERIMENTO ............................................................................................................... 153 COMPILACIÓN.................................................................................................................................................. 153 S ETEO DE PARÁMETROS................................................................................................................................. 153 BIBLIOGRAFIA .................................................................................................................................................................155 xvii LISTA DE FIGURAS Figura 1 – Arquitectura principal de la herramienta responsable de crear los controladores neuronales para la navegación y su posterior prueba experimental...........................................................................................................6 Figura 2 – Módulo EmpiricalTest encargado de modelar la interacción de los componentes involucrados en la realización de pruebas experimentales ..........................................................................................................................7 Figura 3 – Esquema del proceso propuesto por los Algoritmos Genéticos.......................................................................14 Figura 4 – Espacio de Fitness..................................................................................................................................................15 Figura 5 – Fitness Landscape unidimensional......................................................................................................................16 Figura 6 – Diagrama genérico de una Arquitectura por Subsumisión...............................................................................19 Figura 7 – Tipos de descripciones ..........................................................................................................................................23 Figura 8 – Representación genérica del robot real [Khepera, 1999] ..................................................................................36 Figura 9 – Interfaz principal del simulador KIKS (Kiks Is a Khepera Simulator)...........................................................37 Figura 10 – Interfaz principal del simulador Webots...........................................................................................................38 Figura 11 – Interfaz principal del simulador WSU Java Simulator...................................................................................38 Figura 12 – Interfaz principal del simulador YAKS. (a) visión 2D; (b) Open GL acceleration ....................................39 Figura 13 – Distribución de los sensores infra-rojos del robot real Khepera ® [Khepera, 1999]....................................48 Figura 14 – Medición típica de la luz ambiental por la distancia a una fuente de luz de 1 Watt para el robot Khepera ® real..................................................................................................................................................................48 Figura 15 – Medición de la luz ambiental versus la distancia a una fuente de luz para el modelo simulado simple. .48 Figura 16 – Respuesta típica del sensor de proximidad para un obstáculo (7 mm. de ancho) a una distancia de 15 mm. La medición está dada versus el ángulo entre la orientación frontal del robot y la orientación del obstáculo..........................................................................................................................................................................49 Figura 17 – Respuesta del sensor de proximidad para un obstáculo ubicado a 15 unidades de longitud. La medición está dada por el ángulo entre la orientación frontal del sensor y la orientación del obstáculo para el simulador simple ...............................................................................................................................................................................49 Figura 18 – Perfil de velocidad utilizado para alcanzar la posición objetivo con una aceleración fija (acc) y velocidad máxima (max. speed) en el robot real Khepera ®......................................................................................49 Figura 19 – Perfil de velocidad utilizado para alcanzar la posición objetivo con una velocidad máxima (max. speed) en el robot simulado.......................................................................................................................................................49 Figura 20 – Diagrama esquemático de la conectividad de neuronal genérica (2 nodos motores, 6 nodos ocultos, 8 nodos de entrada, y 1 entrada adicional) y calculo del computo realizado por la salida de cada neurona........50 Figura 21 – Representación genética de las sinapsis de un nodo para los experimentos sobre la evolución de los genes ................................................................................................................................................................................50 Figura 22 – Diagrama UML de clases del modelo de red neuronal implementado.........................................................51 Figura 23 – Diagrama UML de clases del modelo genético implementado.....................................................................52 Figura 24 – Diagrama UML de clases del modelo de algoritmo genético implementado..............................................53 Figura 25 – Diagrama UML de clases del modelo de red neuronal genérico implementado.........................................54 Figura 26 – Representación de la salida proporcionada por la función sigmoide tangencial implementada...............56 Figura 27 – Diagrama esquemático de la conectividad entre las capas entrada-oculta y oculta-salida de la red tipo FFNN...............................................................................................................................................................................57 Figura 28 – Diagrama esquemático de la conectividad entre las capas entrada-oculta y oculta-salida de la red tipo RFFNN ............................................................................................................................................................................58 xviii Figura 29 – Variación de las reglas de Hebb en función del peso sináptico [Urzelai, 2000]......................................... 60 Figura 30 – Representación de la salida proporcionada por la función sigmoide utilizada por la HPNN. Las líneas en ±0.00001, las cuales sólo son relevantes para las redes homeostáticas, representan los umbrales homeostáticos................................................................................................................................................................. 63 Figura 31 – Diagrama UML de clases del modelo experimental genérico implementado............................................ 64 Figura 32 – Grafico comparativo de los diferentes niveles de fitness (mejor fitness promedio) para los distintos tests.................................................................................................................................................................................. 69 Figura 33 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red FFNN durante la tarea de fototaxis obtenida en el cuarto test del mejor controlador (300 generaciones).................... 72 Figura 34 – Ejemplos de trayectorias seguidas por el robot simulado para una red FFNN durante la tarea de fototaxis obtenidas para el mejor controlador (300 generaciones); (a) El segundo, (b) cuarto, y (c) octavo test. .......................................................................................................................................................................................... 72 Figura 35 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo FFNN en fototaxis. ......................................................................................................................................................................... 73 Figura 36 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red RFFNN durante la tarea de fototaxis obtenida en el cuarto test del mejor controlador (300 generaciones).................... 73 Figura 37 – Ejemplos de trayectorias seguidas por el robot simulado para una red RFFNN durante la tarea de fototaxis obtenidas para el mejor controlador (300 generaciones); (a) El primer, (b) cuarto, y (c) séptimo test. .......................................................................................................................................................................................... 74 Figura 38 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo RFFNN en fototaxis. ......................................................................................................................................................................... 74 Figura 39 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red CTRNN durante la tarea de fototaxis obtenida en el noveno test del mejor controlador (300 generaciones).................. 75 Figura 40 – Ejemplos de trayectorias seguidas por el robot simulado para una red CTRNN durante la tarea de fototaxis obtenidas para el mejor controlador (300 generaciones); (a) El primer, (b) segundo, y (c) noveno test.................................................................................................................................................................................... 75 Figura 41 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo CTRNN en fototaxis. ......................................................................................................................................................................... 76 Figura 42 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red PNN durante la tarea de fototaxis obtenida en el noveno test del mejor controlador (300 generaciones).................. 77 Figura 43 – Ejemplos de trayectorias seguidas por el robot simulado para una red PNN durante la tarea de fototaxis obtenidas para el mejor controlador (300 generaciones); (a) El segundo, (b) quinto, y (c) noveno test............ 77 Figura 44 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo PNN en fototaxis. ......................................................................................................................................................................... 78 Figura 45 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red HPNN durante la tarea de fototaxis obtenida en el noveno test del mejor controlador (300 generaciones).................. 79 Figura 46 – Ejemplos de trayectorias seguidas por el robot simulado para una red HPNN durante la tarea de fototaxis obtenidas para mejor controlador (300 generaciones); (a) El cuarto, (b) noveno, y (c) sexto test..... 79 Figura 47 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo HPNN en fototaxis. ......................................................................................................................................................................... 79 Figura 48 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red HPNN durante la tarea de fototaxis condicional obtenida en el séptimo test del mejor controlador (300 generaciones). .......................................................................................................................................................................................... 81 xix Figura 49 – Ejemplos de trayectorias seguidas por el robot simulado para una red HPNN durante la tarea de fototaxis condicional obtenidas para el mejor controlador (300 generaciones); (a) El tercer, (b) sexto, y (c) séptimo test.....................................................................................................................................................................81 Figura 50 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo HPNN en fototaxis condicional......................................................................................................................................................81 Figura 51 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red FFNN durante la tarea de evasión de obstáculos obtenida en el décimo test del mejor controlador (300 generaciones)..................................................................................................................................................................85 Figura 52 – Ejemplos de trayectorias seguidas por el robot simulado para una red FFNN durante la tarea de evasión de obstáculos obtenidas para el mejor controlador (300 generaciones); (a) El cuarto, (b) sexto test, y (c) décimo test......................................................................................................................................................................85 Figura 53 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo FFNN en evasión de obstáculos....................................................................................................................................................85 Figura 54 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red RFFNN durante la tarea de evasión de obstáculos obtenida en el noveno test del mejor controlador (300 generaciones)..................................................................................................................................................................86 Figura 55 – Ejemplos de trayectorias seguidas por el robot simulado para una red RFFNN durante la tarea de fototaxis obtenidas para el mejor controlador (300 generaciones); (a) El tercer, (b) noveno, y (c) décimo test. ..........................................................................................................................................................................................86 Figura 56 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo RFFNN en evasión de obstáculos....................................................................................................................................................87 Figura 57 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red CTRNN durante la tarea de evasión de obstáculos obtenida en el séptimo test del mejor controlador (300 generaciones)..................................................................................................................................................................88 Figura 58 – Ejemplos de trayectorias seguidas por el robot simulado para una red CTRNN durante la tarea de evasión de obstáculos para el mejor controlador (300 generaciones); (a) El primer, (b) séptimo, y (c) octavo test....................................................................................................................................................................................88 Figura 59 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo CTRNN en evasión de obstáculos....................................................................................................................................................88 Figura 60 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red PNN durante la tarea de evasión de obstáculos obtenida en el noveno test del mejor controlador (300 generaciones)..................................................................................................................................................................89 Figura 61 – Ejemplos de trayectorias seguidas por el robot simulado para una red PNN durante la tarea de evasión de obstáculos obtenidas para el mejor controlador (300 generaciones); (a) El primer, (b) cuarto, y (c) noveno test....................................................................................................................................................................................90 Figura 62 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo PNN en evasión de obstáculos...................................................................................................................................................................90 Figura 63 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red HPNN durante la tarea de evasión de obstáculos obtenida en el sexto test del mejor controlador (300 generaciones). ..........................................................................................................................................................................................91 Figura 64 – Ejemplos de trayectorias seguidas por el robot simulado para una red HPNN durante la tarea de evasión de obstáculos obtenidas para el mejor controlador (300 generaciones); (a) El cuarto, (b) sexto, y (c) noveno test....................................................................................................................................................................................91 Figura 65 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo HPNN en evasión de obstáculos....................................................................................................................................................91 xx Figura 66 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red HPNN durante la tarea de fototaxis con evasión de obstáculos (navegación) obtenida en el sexto test del mejor controlador (50 generaciones)...................................................................................................................................... 93 Figura 67 – Ejemplos de trayectorias seguidas por el robot simulado para una red HPNN durante la tarea de fototaxis con evasión de obstáculos (navegación) obtenidas para el mejor controlador (50 generaciones); (a) El tercer, (b) sexto, y (c) décimo test.......................................................................................................................... 94 Figura 68 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo HPNN en evasión de obstáculos con objetivo (navegación). .................................................................................................... 94 Figura 69 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red FFNN durante la tarea de aprendizaje obtenida en el segundo test del mejor controlador (300 generaciones)............ 97 Figura 70 – Ejemplos de trayectorias seguidas por el robot simulado para una red FFNN durante la tarea de aprendizaje obtenidas para el mejor controlador (300 generaciones); (a) El segundo, (b) tercer, y (c) séptimo test.................................................................................................................................................................................... 97 Figura 71 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo FFNN en aprendizaje...................................................................................................................................................................... 97 Figura 72 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red RFFNN durante la tarea de aprendizaje obtenida en el séptimo test del mejor controlador (300 generaciones)............. 98 Figura 73 – Ejemplos de trayectorias seguidas por el robot simulado para una red RFFNN durante la tarea de aprendizaje obtenidas para el mejor controlador (300 generaciones); (a) El primer, (b) séptimo, y (c) noveno test.................................................................................................................................................................................... 99 Figura 74 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo RFFNN en aprendizaje...................................................................................................................................................................... 99 Figura 75 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red CTRNN durante la tarea de aprendizaje obtenida en el cuarto test del mejor controlador (300 generaciones). ............100 Figura 76 – Ejemplos de trayectorias seguidas por el robot simulado para una red CTRNN durante la tarea de aprendizaje obtenidas para el mejor controlador (300 generaciones); (a) El tercer, (b) cuarto, y (c) sexto test. ........................................................................................................................................................................................100 Figura 77 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo CTRNN en aprendizaje....................................................................................................................................................................100 Figura 78 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red PNN durante la tarea de aprendizaje obtenida en el sexto test del mejor controlador (300 generaciones)...............101 Figura 79 – Ejemplos de trayectorias seguidas por el robot simulado para una red PNN durante la tarea de aprendizaje obtenidas para el mejor controlador (300 generaciones). (a) El quinto, (b) sexto, y (c) noveno test. ........................................................................................................................................................................................102 Figura 80 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo PNN en aprendizaje....................................................................................................................................................................102 Figura 81 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red HPNN durante la tarea de aprendizaje obtenida en el cuarto test del mejor controlador (300 generaciones). ............103 Figura 82 – Ejemplos de trayectorias seguidas por el robot simulado para una red HPNN durante la tarea de aprendizaje obtenidas para el mejor controlador (300 generaciones; (a) El cuarto, (b) quinto, y (c) sexto test. ........................................................................................................................................................................................103 Figura 83 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo HPNN en aprendizaje....................................................................................................................................................................103 xxi Figura 84 – (a) Representación de las actividades de los nodos y (b) del sensado del controlador para una red HPNN durante la tarea de aprendizaje con variaciones deliberadas obtenida en el sexto test del mejor controlador (1000 iteraciones)........................................................................................................................................................ 105 Figura 85 – Ejemplos de trayectorias seguidas por el robot simulado para una red HPNN durante la tarea de aprendizaje con variaciones deliberadas obtenidas para el mejor controlador (1000 iteraciones); (a) El sexto, (b) séptimo, y (c) noveno test.................................................................................................................................... 105 Figura 86 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones . Medición realizada según la función de fitness sobre una población de controladores del tipo HPNN en aprendizaje con variaciones deliberadas.................................................................................................................. 105 Figura 87 – Ejemplo de los movimientos obtenidos por un controlador HPNN durante pruebas con aprendizaje con variaciones deliberadas............................................................................................................................................... 107 Figura 88 – Diagrama esquemático de la conectividad de los neuro-controladores en una Arquitectura por Subsumisión................................................................................................................................................................. 110 Figura 89 – Esquema global de la estrategia de navegación adoptada: pruebas experimentales con el simulador complejo....................................................................................................................................................................... 111 Figura 90 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo FFNN en fototaxis condicional con o bstáculos........................................................................................................................ 112 Figura 91 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo FFNN en evasión de obstáculos................................................................................................................................................. 113 Figura 92 – Ejemplos de trayectorias generadas con un controlador por niveles......................................................... 114 Figura 93 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo FFNN en aprendizaje condicional, por sobre los niveles de fototaxis condicional (FFNN) y evasión de obstáculos (FFNN) sin obstáculos................................................................................................................................................ 115 Figura 94 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo HPNN en aprendizaje condicional, por sobre los niveles de fototaxis condicional (FFNN) y evasión de obstáculos (FFNN) sin obstáculos................................................................................................................................................ 115 Figura 95 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo FFNN en aprendizaje condicional, por sobre los niveles de fototaxis condicional (FFNN) y evasión de obstáculos (FFNN) con obstáculos.............................................................................................................................................. 115 Figura 96 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo HPNN en aprendizaje condicional, por sobre los niveles de fototaxis condicional (FFNN) y evasión de obstáculos (FFNN) con obstáculos.............................................................................................................................................. 115 Figura 97 – Performance obtenida al variar el objetivo en la evolución del controlador de aprendizaje (FFNN) asociado al nivel de fototaxis condicional. (a) Objetivo más favorecido en evolución; (b) 50% de selección de objetivo......................................................................................................................................................................... 117 Figura 98 – Área de prueba generada para el simulador YAKS. Escenario del tipo laberinto con fuente de luz central y obstáculos cilíndricos en las esquinas de las paredes............................................................................. 120 Figura 99 – Esquema global de estrategia de la navegación adoptada: pruebas experimentales con el robot real... 120 Figura 100 – Comportamiento de seguimiento de paredes: experimentación con simulador YAKS ........................ 121 Figura 101 – Comportamiento de evasión de obstáculos convexos: experimentación con simulador YAKS.......... 122 Figura 102 – Comportamiento de seguimiento de obstáculos cóncavos: experimentación con simulador YAKS .. 122 Figura 103 – Comportamiento de evasión de obstáculos cóncavos: experimentación con simulador YAKS .......... 122 Figura 104 – Coordinación de comportamientos: experimentación con simulador YAKS......................................... 123 xxii Figura 105 – Comportamiento de seguimiento de obstáculos: experimentación con simulador YAKS ...................124 Figura 106 – Comportamiento de seguimiento de obstáculos con la incorporación de un nuevo obstáculo: experimentación con simulador YAKS ....................................................................................................................124 Figura 107 – Alteraciones ambientales. Comportamiento de seguimiento de obstáculos con disminución (mitad) de la capacidad de sensado: experimentación con simulador YAKS........................................................................124 Figura 108 – Alteraciones ambientales. Comportamiento de seguimiento de obstáculos con aumento de la capacidad de sensado al doble: experimentación con simulador YAKS .............................................................124 Figura 109 – Alteración morfológica. Comportamiento de seguimiento de obstáculos con inversión de sensado: experimentación con simulador YAKS ....................................................................................................................124 Figura 110 – Entorno experimental real y disposición de los componentes implicados..............................................126 Figura 111 – Respuesta del sensor lumínico respecto de la distancia a una fuente de luz. Medición obtenida para el robot Khepera® real utilizado (distancia en mm.). ..................................................................................................126 Figura 112 – Respuesta del sensor de proximidad (luz infra -roja reflejada) para un obstáculo en función de la distancia. Medición obtenida para el robot Khepera ® real utilizado (distancia en mm.). ..................................126 Figura 113 – Representación de la caracterización de los sensores de proximidad en función de la distancia.........128 Figura 114 – Variante propuesta como potencial solución de fin de pared....................................................................129 Figura 115 – Tres situaciones simuladas utilizando un controlador por niveles durante la navegación en un entorno tipo laberinto................................................................................................................................................................130 Figura 116 – Tres vistas obtenidas a partir de una configuración de entorno real vinculadas a cada situación simulada........................................................................................................................................................................130 Figura 117 – Situación en que la incidencia de la fuente de luz sobre el robot es mínima para generar un comportamiento de ir hacia el objetivo.....................................................................................................................131 Figura 118 – Esquema de ajuste automático propuesto....................................................................................................133 Figura 119 – Esquema general de la incidencia de la emergencia de comportamientos sobre las interacciones locales............................................................................................................................................................................140 Figura 120 – Principales clases implicadas con la clase NeuroController. ....................................................................150 Figura 121 – Diagrama de la asociación entre las principales clases desarrolladas......................................................151 Figura 122 – Principales clases implicadas con la interfaz de simulación.....................................................................152 xxiii LISTA DE TABLAS Tabla 1 – Relación entre diferentes tipos de evolución artificial........................................................................................22 Tabla 2 – Matriz de características de los simuladores analizados....................................................................................40 Tabla 3 – Matriz de características priorizadas.....................................................................................................................40 Tabla 4 – Matriz de características priorizadas según la ponderación de cada controlador............................................41 Tabla 5 – Herramientas de software y técnicas utilizadas...................................................................................................42 Tabla 6 – Características de los estudios analizados............................................................................................................42 Tabla 7 – Objetivos de diseño y otras características de los estudios y herramientas analizadas ..................................44 Tabla 8 – Resumen del método experimental utilizado para el desarrollo de las pruebas con controladores monolíticos......................................................................................................................................................................46 Tabla 9 – Representación del modelo de los actuadores .....................................................................................................47 Tabla 10 – Configuración utilizada en los experimentos con evolución simulada ..........................................................53 Tabla 11 – Resumen de las características del modelo de red FFNN implementado......................................................55 Tabla 12 – Codificación genética de los parámetros de evolución vinculados a las sinapsis de las redes FFNN, RFFNN y CTRNN (controlador genéticamente determinado)................................................................................56 Tabla 13 – Resumen de las características del modelo de red CTRNN implementado..................................................60 Tabla 14 – Resumen de las características del modelo de red PNN implementado........................................................62 Tabla 15 – Codificación genética de los parámetros de evolución vinculados a las s inapsis de las redes PNN y HPNN (controlador por sinapsis adaptativas)............................................................................................................62 Tabla 16 – Resultados promedios de la evolución de los neuro-controladores implementados para fototaxis (sección 5.3.1) sobre el total de generaciones (300 generaciones y 10 corridas); Función de fitness: Ecuación 9. .........68 Tabla 17 – Resultados promedios de la evolución de los neuro-controladores implementados para evasión de obstáculos (sección 5.3.2) sobre el total de generaciones (300 generaciones y 10 corridas); Función de fitness: Ecuación 10.....................................................................................................................................................................68 Tabla 18 – Resultados promedios de la evolución de los neuro-controladores implementados para aprendizaje (sección 5.3.3) sobre el total de generaciones (300 generaciones y 10 corridas); Función de fitness: Ecuación 12. .....................................................................................................................................................................................68 Tabla 19 – Mapeo sensor-entrada de la red utilizada para los experimentos con fototaxis, siendo SLj (i) la especificación de un sensor infra-rojo receptor (sensor lumínico) vinculado al i-ésimo sensor del robot relativo a la j-ésima fuente............................................................................................................................................71 Tabla 20 – Mapeo sensor-entrada de la red utilizada para los experimentos con fototaxis condicional, siendo SLj (i) la especificación de un sensor infra-rojo vinculado al i-ésimo sensor del robot relativo a la j-ésima fuente. Prom es un indicador del promedio de los valores sensados....................................................................................80 Tabla 21 – Resultados promedios de la evolución de los neuro-controladores implementados para fototaxis condicional sobre el total de las generaciones (300 generaciones y 10 corridas)..................................................82 Tabla 22 – Mapeo sensor-entrada de la red utilizada para los experimentos con evasión de obstáculos, siendo SO(i) la especificación de un sensor de proximidad vinculado al i-ésimo sensor del robot...........................................84 Tabla 23 – Mapeo sensor-entrada de la red utilizada para los experimentos con navegación, siendo SLj (i) y SO(h) la especificación de un sensor infra-rojo receptor (sensor lumínico) vinculado al i-ésimo sensor del robot relativo a la j-ésima fuente, y al sensor de proximidad según el h-ésimo sensor del robot, respectivamente....93 Tabla 24 – Resultados promedios de la evolución de los neuro-controladores implementados para navegación sobre el total de las generaciones (50 generaciones y 10 corridas)....................................................................................94 xxiv Tabla 25 – Mapeo sensor-entrada de la red utilizada para los experimentos con aprendizaje, siendo SLj (i) la especificación de un sensor infra-rojo vinculado al i-ésimo sensor del robot relativo a la j-ésima fuente. Prom es un indicador del promedio de los valores sensados.............................................................................................. 96 Tabla 26 – Resultados promedios de la evolución de los neuro-controladores HPNN implementados para aprendizaje con variaciones deliberadas sobre el total de las generaciones (300 generaciones, 1000 iteraciones y 10 corridas)................................................................................................................................................................106 Tabla 27 – Resumen del método experimental utilizado para el desarrollo de las pruebas con Evolución por Niveles ........................................................................................................................................................................................112 Tabla 28 – Resultados obtenidos en la evolución de neuro-controladores para Evolución Monolítica y por Niveles sobre el total de generaciones (300 generaciones y 10 corridas). .........................................................................113 Tabla 29 – Resumen del método experimental utilizado para el desarrollo de las pruebas en un entorno real.........125 Tabla 30 – Resumen del proceso de caracterización de las mediciones de los sensores..............................................127 Tabla 31 – Resumen de las mediciones realizadas vinculadas a la influencia del entorno sobre los sensores..........128 Tabla 32 – Resumen de los experimentos desarrollados, propósitos y motivaciones...................................................147 Tabla 33 – Ejemplos de parámetros de programa..............................................................................................................154 xxv GLOSARIO Adaptación: Tendencia de un organismo a “adecuarse” a su medio ambiente. Uno de los principales puntos de la teoría de la evolución por la selección natural de Charles Darwin la cual expresa que los organismos se adaptan a su medio ambiente. Aquellos organismos mejor adaptados tendrán mayor probabilidad de sobrevivir y pasar sus genes a la siguiente generación. Agente: Una definición consensuada del término agente en Inteligencia Artificial [Wooldridge, 1995] [Russell et al., 1995] corresponde a: “un agente es un sistema computacional que exhibe persistencia temporal, capaz de actuar de manera autónoma para satisfacer sus objetivos y metas cuando se encuentra situado en algún medio ambiente”. Tal definición permite (a) observar las facultades cognitivas de los agentes para encontrar cómo hacer lo correcto; (b) considerar diferentes tipos de agentes, incluyendo aquellos que no posean facultades cognitivas; (c) considerar diferentes especificaciones sobre los subsistemas que componen los agentes. Alelo: (m. Biol.) (a) Una de las formas variantes de un gen en un locus (una posición determinada en el cromosoma) o de un marcador particular en un cromosoma. Diferentes alelos de un gen producen variaciones en las características hereditarias; (b) Variaciones menores de un mismo gen. Aprendizaje Evolutivo: Mecanismo generacional por el cual los individuos logran adaptarse al entorno considerando aspectos evolutivos. Aprendizaje: Como ocurre con muchos otros términos, no existe una definición universal del concepto de aprendizaje. No obstante, en [Arkin, 1998] se propone una definición operacional según la cual “aprendizaje es el mecanismo por el cual se producen cambios dentro de un agente, los cuales, con el tiempo, permiten que se manifieste un desempeño más efectivo en el individuo dentro del entorno”. Caos: Conducta de un sistema complejo que aparece como impredecible y falsamente como aleatoria, cuando en realidad tiene un patrón subyacente. A primera vista tales sistemas no muestran aparente orden alguno, pero si se supieran acabadamente las reglas que lo rigen y las condiciones iniciales, sería predecible y descriptible. Ciencia: Término que en su sentido más amplio se emplea para referirse al conocimiento sistematizado en cualquier campo, pero que suele aplicarse sobre todo a la organización de la experiencia sensorial objetivamente verificable. La búsqueda de conocimiento en ese contexto se conoce como “ciencia pura”, para distinguirla de la “ciencia aplicada” -la búsqueda de usos prácticos del conocimiento científico- y de la tecnología, a través de la cual se llevan a cabo las aplicaciones. La ciencia suele definirse por la forma de investigar más que por el objeto de investigación, de manera que los procesos científicos son esencialmente iguales en todas las ciencias de la naturaleza; por ello la comunidad científica está de acuerdo en cuanto al lenguaje en que se expresan los problemas científicos, la forma de recoger y analizar datos, el uso de un estilo propio de lógica y la utilización de teorías y modelos. Comportamiento Adaptativo: Concepto vinculado con los medios por los cuales una entidad (natural o artificial) puede relacionarse con un entorno cambiante a través de una variedad de mecanismos de aprendizaje y adaptación, incluyendo aprend izaje por refuerzos, redes neuronales, lógica difusa, métodos evolutivos, y otros mecanismos artificiales. Comportamiento Emergente: Un comportamiento emergente o propiedad emergente ocurre cuando un número de entidades (por lo general, simples) denominadas agentes se desempeñan en un entorno, formando comportamientos más complejos, tales como los comportamientos colectivos. La emergencia en sí misma, reviste de impredecibilidad y de ser generada sin previa observación de su ocurrencia. En un sistema, tal comportamiento complejo no es una propiedad de una entidad simple, ni puede ser fácilmente predecida o deducida de los comportamientos simples en su conjunto. Una razón por la que un comportamiento emergente ocurre, se debe al número de interacciones entre componentes del sistema, el cual se incrementa combinacionalmente con el número de componentes. De esta manera, el comportamiento global de una entidad o sistema (p. ej. de un robot o del conjunto de ellos) surge como xxvi consecuencia de la interacción de comportamientos individuales activos, ya sea dentro de un entidad o en el sistema de entidades observado. Comportamiento: Se refiere a las acciones o reacciones de un objeto u organismo, normalmente respecto del ambiente. Desde el plano biológico, se relaciona la complejidad de la conducta de un organismo con la complejidad de su sistema nervioso. En la mayoría de los casos, los organismos con sistemas nerviosos complejos tienen una capacidad mayor para aprender nuevas acciones a fin de ajustar su conducta. Computación Evolutiva: Rama del conocimiento que estudia algoritmos de búsqueda y optimización inspirados en mecanismos genéticos y la selección natural. Los paradigmas principales que se utilizan hoy en día son: Estrategias Evolutivas, Programación Evolutiva, y Algoritmos Genéticos, siendo estos últimos los más utilizados. Cromosoma: (m. Biol.) Se denomina cromosoma a una de las cadenas de ADN (ácido desoxirribo nucleico) que se encuentra en el núcleo de las células. Los cromosomas son responsables de la transmisión de información genética. Desde el enfoque de la Robótica Basada en Comportamientos, un comportamiento corresponde al par acción/respuesta para una configuración del entorno determinada, la cual es modulada por la atención y determinada por la intención [Arkin, 1998]. Efecto Baldwin: Mecanismo por el cual se descubrió que la habilidad de aprender de un organismo puede ayudar también a la evolución de otros comportamientos. Escalabilidad: (en Inglés, Scaling up) Concepto que se refiere a complejidad e indirectamente al desempeño computacional. El desempeño de la escalabilidad refleja la linealidad de la expansión. El alcance de la escalabilidad, refleja cuán expandible es un sistema. Escalabilidad en Robótica Evolutiva trata de la creación de comportamientos complejos a partir de comportamientos simples, generalmente en forma incremental. Una manera de llevar a cabo esta tarea es a través del desarrollo de bloques comportamentales, los cuales son usados para crear niveles y estos son testeados en modelos robóticos simulados y reales. Evolución: Cambios de los organismos producidos por adaptación, variación, y reproducción/sobrevivencia diferencial, procesos a los que Charles Darwin y Alfred Wallace se refirieron como selección natural. Experimentación: La experimentación consiste en el estudio de un fenómeno, reproducido generalmente en un laboratorio, en las condiciones particulares de análisis que interesan, eliminando o introduciendo aquellas variables que puedan influir en los resultados esperados. Se entiende por variable a todo aquello que pueda causar cambios en los resultados de un experimento. Experimento Hipotético: Un experimento hipotético, o experimento pensado, es aquel que sigue un tren de pensamientos lógicos y consistentes, con la finalidad de permitir entender mejor un problema o alcanzar una solución final independiente del hecho meramente circunstancial o irrelevante de si es o no posible llevarlo a cabo. Experimento: Por lo general, concepto que se refiere a realizar operaciones destinadas a descubrir, comprobar o demostrar determinados fenómenos o principios científicos. Extensibilidad: Concepto referido al grado de crecimiento (amplitud) de una característica o elemento dentro de un sistema computacional. Extensibilidad en Robótica Evolutiva trata, principalmente, de la creación de módulos comportamentales los cuales permitan la variación de las características inherentes a la especificación del comportamiento del sistema. Fenotipo: (m. Biol.) Manifestación visible del genotipo en un determinado ambiente. En otras palabras, corresponde a los rasgos observables específicos de un individuo. Filogenia: (a) Parte de la biología que se ocupa de las relaciones de parentesco entre los distintos grupos de seres vivos; (b) Biol. Origen y desarrollo evolutivo de las especies, y en general, de las estirpes de seres vivos. xxvii Fototaxis: Acción o comportamiento condicionado a un foto-receptor. Gen: (m. Biol.) Un gen es una sección de ADN que codifica una cierta función bioquímica definida. Es fundamentalmente una unidad de herencia. Los genes están localizados en los cromosomas. Genética: Estudio científico de cómo se transmiten los caracteres físicos, bioquímicos y de comportamiento de padres a hijos. Este término fue acuñado en 1906 por el biólogo británico William Bateson. Los genetistas determinan los mecanismos hereditarios por los que los descendientes de organismos que se reproducen de forma sexual no se asemejan con exactitud a sus padres, y estudian las diferencias y similitudes entre padres e hijos que se reproducen de generación en generación según determinados patrones. La investigación de estos últimos ha dado lugar a algunos de los descubrimientos más importantes de la biología moderna. Genoma: Conjunto de genes que posee un organismo. Genoma es la totalidad de los genes que porta un individuo de una especie. Genotipo: Se denomina genotipo a la composición genética de un organismo (la información contenida en un genoma). Es decir, es lo que potencialmente puede llegar a ser un individuo. Comúnmente usado como sinónimo de genoma. Holonónico: en robótica, un robot holonómico es capaz rotar (variar de dirección de movimiento) mientras se mueve hacia adelante o hacia atrás, a derecha o a izquierda. En otras palabras, esta basado en movimientos con tres grados de libertad, siendo estos los máximos posibles para un robot móvil terrestre. Una característica distintoria es que el robot puede rotar mientras se mueve en línea recta. Homeostasis: (f. Biol.) Conjunto de fenómenos de autorregulación que conducen al mantenimiento de la constancia en la composición y propiedades del medio interno de un organismo. Autorregulación de la constancia de las propiedades de otros sistemas influidos por agentes exteriores. Método científico: Método de estudio sistemático de la naturaleza que incluye las técnicas de observación, reglas para el razonamiento y la predicción, ideas sobre la experimentación planificada y los modos de comunicar los resultados experimentales y teóricos. En el método científico la observación consiste en el estudio de un fenómeno que se produce en sus condiciones naturales. La observación debe ser cuidadosa, exhaustiva y exacta. A partir de la observación surge el planteamiento del problema que se va a estudiar, lo que lleva a emitir alguna hipótesis o suposición provisional de la que se intenta extraer una consecuencia. Existen ciertas pautas que han demostrado ser de utilidad en el establecimiento de las hipótesis y de los resultados que se basan en ellas; estas pautas son: probar inicialmente las hipótesis más simples, no considerar una hipótesis como totalmente cierta y realizar pruebas experimentales independientes antes de aceptar un único resultado experimental importante. Según algunos investigadores, el método científico es el modo de llegar a elaborar teorías, entendiendo éstas como configuración de leyes. Mediante la inducción se obtiene una ley a partir de las observaciones y medidas de los fenómenos naturales, y mediante la deducción se obtienen consecuencias lógicas de una teoría. Por esto, para que una teoría científica sea admisible debe relacionar de manera razonable muchos hechos en apariencia independientes en una estructura mental coherente. Así mismo, debe permitir hacer predicciones de nuevas relaciones y fenómenos que se puedan comprobar experimentalmente. Según [Burnet et al., 1964], “el método del hombre de ciencia no es en realidad más que una búsqueda organizada de respuestas.” Modelo: Concepto correspondiente a las leyes y las teorías que involucran a menudo una pretensión realista que conlleva la noción de modelo; éste es una abstracción mental que se utiliza para poder explicar algunos fenómenos y para reconstruir por aproximación los rasgos del objeto considerado en la investigación. Mutación: Cualquiera de los cambios que aparecen bruscamente en el fenotipo de un ser vivo y que se transmiten por herencia a los descendientes. La mayoría de estos cambios se producen por errores de copiado genético. Neuro-controlador: Por neuro-controladores dentro de la RE, nos referimos a controladores cuya superficie de control es un mapa de estrada/salida que tiene como soporte una red neuronal artificial. xxviii Éstas pueden procesar una gran cantidad de información, transmitiendo señales en paralelo mediante las conexiones entre neuronas. En evolución artificial de robots, la especificación de un neuro-controlador implica diferentes estructuras: (a) redes neuronales; (b) parámetros de control; (c) programas de computación en si mismos. Más aún, en el caso de las redes neuronales, la evolución de los controladores puede implicar aspectos adaptativos tales como aprendizaje durante la vida del controlador. Ontogenia: (m. Biol.) Desarrollo del individuo referido especialmente al período embrionario. Población: Conjunto de individuos sujetos a un proceso evolutivo, los cuales están afectados por la influencia de operadores genéticos (p. ej. mutaciones). Principio: Base, origen, o razón fundamental sobre la cual se procede discurriendo en cualquier materia. Cada una de las primeras proposiciones o verdades fundamentales por donde se empiezan a estudiar las ciencias o las artes. Programación Evolutiva: la Programación Evolutiva (PE) es virtualmente equivalente en muchos casos a los procedimientos utilizados por las Estrategias de Evolución (EE). Existen dos diferencias esenciales entre ellas: (1) Las EE utilizan una selección determinista. La PE enfatiza la naturaleza probabilística de la selección mediante un torneo estocástico para la supervivencia de cada generación; (2) Las EE utilizan estructuras abstractas de codificación consideradas como individuos. La PE utiliza estructuras abstractas de codificación como analogía a distintas especies. Las EE pueden utilizar la recombinación entre individuos. La PE no hace uso de ella, no existe comunicación entre las especies. Programación Genética: Caso particular de Algoritmos Genéticos. Está relacionado con la creación de programas de computadora de un modo automático. La disciplina data de 1985, aunque el gran difusor ha sido John Koza a principios de la década de los 90. La diferencia principal entre los Algoritmos Genéticos y la Programación Genética es la representación de las soluciones. Los cromosomas codifican, de algún modo, programas de ordenador. Naturalmente, los operadores genéticos han de adaptarse a la representación empleada. Robótica Basada en Comportamientos: (en Inglés, Behavior-Based Robotics) Es una rama de la robótica la cual no utiliza un modelo interno del entorno (p. ej. no existe una programación dentro del robot sobre cómo es el ambiente). Toda la información se obtiene de las entradas de los sensores del robot, la cual es utilizada para reaccionar ante cambios del ambiente. Robótica Evolutiva: Rama de la Robótica Basada en Comportamientos. Metodología que utiliza algoritmos evolutivos, principalmente, para desarrollar controladores de robots autónomos. Esto permite crear automáticamente controladores robóticos partiendo de una población aleatoria, seleccionándolos según una función de fitness predefinida. Típicamente, los controladores consisten en redes neuronales artificiales. Últimamente, la dificultad de “escalar” la complejidad de las tareas a resolver por los robots, ha cambiado la atención de dicha área levemente hacia el campo teórico en lugar de uno plenamente ingenieril. Sinapsis: Relación funcional de contacto entre las terminaciones de las células nerviosas. Sistema Dinámico: En ingeniería y matemáticas, un sistema dinámico es un proceso determinista en el cual el valor de una función cambia de acuerdo a una regla, definida en términos del valor actual de la función. En cuanto a la “dinamicidad de la cognición”, frente al funcionalismo computacionalista, la hipótesis de que la cognición es mejor modelada y comprendida en términos de sistemas dinámicos ha conseguido establecer un marco interpretativo general en el que integrar la corporalidad, la interacción, y la dinámica (pre-informacional) del sistema nervioso, cuerpo y entorno [van Gelder, 1998]. Teoría del Caos: Teoría matemática que se ocupa de los sistemas que presentan un comportamiento impredecible y aparentemente aleatorio aunque sus componentes estén regidos por leyes estrictamente deterministas. PREFACIO “Tan pronto me convencí de que las especies son susceptibles de sufrir transformaciones, no pude evitar pensar que el pensamiento del hombre debe obedecer a la misma ley” Charles Darwin El mecanismo de la evolución, la “selección natural” de Darwin, determina la manera en que las plantas y los animales han adquirido su aspecto físico y conducta. No obstante, hoy en día dicho término se sigue entendiendo de manera equivocada. Parte de la confusión surge de la sencilla frase: “teoría de la evolución”. Para los científicos, hablar de una “teoría” significa referirse a un postulado basado en la observación y la experimentación, el cual ofrece una explicación a alguna faceta del mundo observable de manera tan convincente que es aceptado como un hecho. “Teoría” no es cualquier idea surgida de la nada y mucho menos una creencia sin fundamentos. A lo largo del tiempo, algunos ingenieros y científicos de diferentes áreas de estudio, cuestionaron los principios básicos del diseño de sistemas robóticos. Con esto surgió una nueva generación de sistemas de control basados en bioinspiración, los cuales comparten varias de las características principales con los sistemas biológicos simples: robustez, simplicidad, tamaño reducido, flexibilidad y modularidad. Aunque el propósito primario del trabajo es presentar aspectos de la construcción de sistemas artificiales, aquí se ha introducido un tema secundario el cual sirve como matriz integradora: sistemas adaptativos y evolutivos. Se han añadido varias secciones breves que ofrecen una visión de lo que se conoce en la actualidad en distintas ramas de la ciencia sobre la “evolución natural”, y en especial a lo referido a la “adaptación de sistemas naturales y artificiales”. Esto se realiza a modo introductorio y como contexto temático para el estudio de una aplicación científico-ingenieril que presenta aspectos inherentes a la Biología, al Control y a la Inteligencia Artificial. El trabajo que aquí se expone provee un aporte dentro del área denominada Robótica Evolutiva. Parte del estudio desarrollado fue probado tanto en simulación como en un entorno real, y publicado en 2004 IEEE Conference on Cybernetics and Intelligent Systems, entre otras. Los capítulos que se presentan describen varias de las técnicas más utilizadas (algoritmos genéticos, redes neuronales, etc.), y se muestran diversos experimentos con una complejidad incremental, conjuntamente con referencias sobre la observación de los mismos tanto en la naturaleza como en sistemas artificiales. Tandil, Diciembre 2004. José A. Fernández León Capítulo 1 - INTRODUCCIÓN INTRODUCCIÓN “Si supiéramos lo que estamos haciendo no se llamaría investigación, ¿no le parece?” Albert Einstein 1.1 Motivación La Robótica Evolutiva (RE) es una nueva metodología para la creación de un sistema de control de alto nivel para robots móviles. Inspirado en el principio Darwiniano de la reproducción selectiva del más apto, es posible ver a los robots como organismos artificiales autónomos, los cuales desarrollan sus propias habilidades en estrecha relación con el entorno y sin la intervención humana. Asociado fuertemente con la biología y la etología, la RE utiliza actualmente herramientas tales como redes neuronales, algoritmos genéticos, sistemas dinámicos, e ingeniería biomórfica en implementaciones de sistemas de control en robots. En este contexto, los robots que pueden desarrollarse a través de ésta metodología, comparten con los sistemas biológicos simples características de robustez, simplicidad, tamaño reducido, flexibilidad y modularidad [Nolfi et al., 2000]. La tarea que es capaz de resolver un robot se vincula a un sistema de control que, al estar determinado genéticamente, es susceptible de ser optimizado a lo largo de un proceso de evolución artificial. En RE, una población inicial de cromosomas artificiales, cada uno codificando el sistema de control de un robot, es aleatoriamente creado y probad o en el entorno. Luego, cada robot es libre de actuar (moverse, manipular objetos, sensar el entorno, etc.) según su controlador, mientras es evaluado su desempeño en forma automática en la realización de tareas. Finalmente, los controladores que mejor desempeño obtengan, son sometidos a un proceso “reproductivo”, el cual consiste en el intercambio de “material genético” con una pequeña proporción de mutaciones aleatorias. Este proceso es repetido hasta que se satisfaga un criterio de desempeño o performance previamente determinado por el programador (p. ej. el número máximo de generaciones a alcanzar). Por lo tanto, y según lo anterior, es posible ver a un robot como una entidad capaz de percibir y actuar en forma autónoma y flexible [Nolfi et al., 2000][Russell et al., 1995]. En la literatura [Bradshaw, 1990], frecuentemente se utiliza el concepto de agente, para definir las características de percepción y capacidades de actuar en el entorno de una entidad computacional. En el presente trabajo, será utilizado el concepto de agente y agente robótico de manera análoga al concepto de robot móvil autónomo. La autonomía se refiere a la capacidad de realizar actividades sin intervención humana o de otros robots. Por otra parte, la flexibilidad especifica que un robot puede adecuarse a la variabilidad de su entorno cuando así se requiera (p. ej. cambios según la dinámica del medio ambiente), pudiendo esto estar guiado por objetivos [Jennings et al., 1998]. Además, y en relación con sistemas multi-robots, un robot puede ser capaz de interactuar con otros robots a fin de encontrar diferentes modos de realizar sus actividades o colaborar entre sí [Wooldridge, 1996]. Particularmente, el tipo de colaboración que surge de manera espontánea se denomina comportamiento emergente [Nolfi et al., 2000]. Los estudios realizados dentro de la RE son diversos: desde simples controladores [Fernández et al., 2004], arquitecturas de control [Brooks, 1986] e implementaciones en hardware [Tosini et al., 2004][Nolfi et al., 2000], hasta estudios de comportamientos complejos [Téllez et al., 2004][Togelius, 2003]. Particularmente, 2 Introducción muchos de los trabajos están enmarcados dentro de la perspectiva dada por la Robótica Basada en Comportamientos (RBC) [Arkin, 1998]. Cabe aclarar que por “comportamiento complejo” se entiende a todo aquel que se compone de subcomportamientos simples, los cuales son coordinados para obtener el comportamiento requerido. Por lo tanto, es posible decir que los controladores existentes son concebidos para realizar una extensa variedad de actividades, considerando distintas finalidades: reacción, interacción sensor-actuador, aprendizaje, etc. Uno de los mayores problemas que afronta la RE es el estudio de comportamientos complejos según la RBC. A pesar de que los comportam ientos simples pueden ser fácilmente obtenidos [Floreano et al., 2000][Floreano et al., 1998], comportamientos complejos con diferentes niveles de control requieren componentes adicionales (p. ej. reguladores adaptativos de la incidencia de la relación entre módulos comportamentales) así como mecanismos de coordinación entre subcomportamientos [Téllez et al., 2004]. A continuación, se resumen los principales factores que dificultan la construcción de controladores genéricos para RE: • Escalabilidad: Uno de los problemas más grandes en los sistemas artificiales evolutivos es el desarrollo de sistemas de control que resuelvan problemas complejos. Este problema se refiere a la escalabilidad de sistemas. Diversas estrategias para lograr escalabilidad han sido propuestas, de las cuales una de las más significativas es la Evolución por Niveles o Layered Evolution [Togelius, 2004]. Basada en la comparación entre Evolución Incremental [Urzelai et al., 1999] y Evolución Modularizada [Calabretta et al., 2000], la Evolución por Niveles obtiene un mejor desempeño en comparación con las otras dos, usando la Arquitectura por Subsumisión [Brooks, 1986] durante el proceso evolutivo. Según Tellez et al., éstas son propuestas inteligentes al problema de escalabilidad en sistemas evolutivos. • Modularidad (vs. Control monolítico): La idea es crear módulos generales para formar una base sólida que permita escalabilidad mientras se construyen capas comportamentales superiores, manteniendo una estructura coherente (evidenciado principalmente en neurociencia [Nolfi et al., 2000]) [Nolfi, 1997]. Tales bloques deben ser consistentes para alcanzar los objetivos para los cuales fueron desarrollados y no-específicos o suficientemente generales para aplicarse a distintas situaciones. La modularidad en los sistemas evolutivos es un factor que está siendo activamente estudiado. • Adaptabilidad: Esto no sólo incluye la idea de que los módulos son dinámicos, también sus estructuras y relaciones pueden variar durante la ejecución del sistema en forma dependiente de la experiencia. Hay varias técnicas que pueden aplicarse para investigar este tipo de dinámica. En el plano neuronal artificial [Haykin, 1999], ellas incluyen diferentes mecanismos de plasticidad neuronal como sinapsis plásticas o neuromodulación [Di Paolo, 2000]. Como es posible ver, la relevancia de la investigación propuesta está basada en temas específicos tal como los señalados previamente, no sólo desde la literatura presentada, sino también incluyendo ideas multidisciplinarias no descritas aquí, como por ejemplo ideas provenientes del campo de la neurociencia. Algunos avances en RE han sido realizados buscando generar en parte comportamientos complejos habitualmente usando modelos evolutivos modulares mediante redes neuronales artificiales. Algunos de estos involucran el uso de Evolución Incremental [Gómez et al., 1999], o evolución de más de una red neuronal artificial [Calabretta et al., 2000]. Pese a tales propuestas, la temática de la evolución de comportamientos complejos se mantenía casi intratable [Téllez et al., 2004]. Recientemente, nuevas direcciones de investigación fueron presentadas por Kaplan y Oudeyer [Kaplan et al., 2003] y por Togelius [Togelius, 2004]. Kaplan y Oudeyer proponen una medida del desempeño de los robots en el entorno (función de fitness) la cual permite la creación de comportamientos complejos, permitiendo ser modificados dinámicamente a lo largo del tiempo. Esta función es gobernada por lo que llaman “principios de motivación”, vinculados al continuo desarrollo del robot obteniendo nuevos comportamientos en forma automática. Los comportamientos que se pueden generar con el trabajo de Kaplan y Oudeyer, presentan un alto grado de complejidad y están casi por completo libres de restricciones Introducción 3 de diseño. Sin embargo, tales comportamientos están limitados en cuanto a su complejidad tanto como lo permita la estructura de la red neuronal que los modela. Por otro lado, tal como fue mencionado oportunamente, Togelius propone utilizar la idea de subsumisión (Subsumption Architecture) durante la evolución de comportamientos dentro de un controlador robótico. Por ejemplo, los niveles o capas representadas por los controladores neuronales son subsumidos1 uno dentro de otro [Brooks, 1986]. Cuando un nivel es desarrollado, el siguiente es creado y refinado sobre el primero con una función de fitness diferente. Al realizarse un análisis de los desarrollos existentes, y según el criterio de escalabilidad, estos pueden clasificarse en: • Aplicaciones no escalables: en términos generales, algunos desarrollos están concebidos para resolver una única problemática. En este caso, son generados los comportamientos requeridos de manera aislada, definiendo una funcionalidad concreta por el programador. Ejemplos de aplicaciones en dicha categoría son: [Floreano et al., 1997][Nolfi, 1996]. • Aplicaciones escalables: son definidos los comportamientos mediante un conjunto de módulos software escalables. Aquí, pueden usarse diferentes módulos comunes en distintas tareas a ser llevadas a cabo. Además, las aplicaciones que son desarrolladas según esta clasificación, posibilitan la incorporación de nuevos comportamientos, algoritmos u otras variantes por parte del programador. En esta categoría se encuentran las aplicaciones descritas en [Téllez et al., 2004][Kaplan et al., 2003][Togelius, 2003], aunque es una línea de investigación abierta dentro de la RE. En [Téllez et al., 2004] se adopta la propuesta de identificar cuándo un nuevo comportamiento debe ser creado según la especificación de Togelius antes señalada. No obstante, esto es llevado a cabo desde un enfoque poco claro en cuanto a la arquitectura planteada y usando hardware de propósito específico. En cambio, la propuesta de Togelius no ha sido desarrollada en su totalidad, dado que varios de sus aspectos (p. ej. tipos de controladores neuronales y dominio de aplicación) han sido parcialmente estudiados. Un análisis profundo de tal propuesta proveería no sólo de certeza de los supuestos planteados, sino que también marcaría un acercamiento concreto y real de escalabilidad en RE, con un potencial interés de ser combinado con otras técnicas (p. ej. redes neuronales, lazos de control, etc.). Como consecuencia de los escasos estudios realizados hasta el momento en RE sobre escalabilidad, en la mayoría de las oportunidades, los controladores robóticos son implementados por componentes software ad -hoc según el comportamiento deseado. Esto constituye uno de los mayores obstáculos para la adopción masiva de tecnologías vinculadas a RE. Por lo tanto, en el presente trabajo se propone profundizar en el análisis de las aplicaciones escalables y en cuanto a su extensibilidad, lo cual es uno de los temas centrales de esta tesis. Dada la amplia variedad de dominios a los cuales puede ser aplicada la RE [Nolfi et al., 2000], resultaría de gran impacto generar herramientas genéricas que no se limiten al dominio de aplicación del trabajo propuesto o a sólo unos pocos desarrollos. Por otro lado, una arquitectura que permita escalabilidad de manera genérica, podría definir una forma de reusabilidad común a las aplicaciones, permitiendo que el programador las adapte y extienda según las necesidades particulares de cada una de ellas. Por tales razones, las herramientas escalables parecen ser más adecuadas para desarrollar aplicaciones en RE, como así también en otros dominios, que las herramientas no extensibles. Las propuestas analizadas en la literatura disponible presentan además restricciones con respecto a la extensibilidad2, debido a que sólo es posible extender un subconjunto de capacidades soportadas por los agentes robóticos (p. ej. incorporar un mayor número de tipos de controladores que permitan un procesamiento temporal de las acciones a realizar). Además, no se especifican estudios de diferentes mecanismos o estructuras de representación de los comportamientos buscados. Si bien la información que De aquí en más, se tomará el concepto de subsumisión como un sinónimo de la acción o el efecto de considerar algo como parte de un conjunto más amplio, restringido a normas generales de precedencia [Brooks, 1986]. 2 Véase en el glosario el concepto de extensibilidad y su diferencia con escalabilidad. 1 4 Introducción posee un agente robótico del ambiente es representada por el mismo entorno (agentes reactivos) [Nolfi et al., 2000], no es posible contar con estudios comparativos de representaciones del comportamiento y su actualización frente a la dinámica del ambiente vinculados a estudios de escalabilidad en RE. A modo de resumen, los desarrollos de aplicaciones extensibles poseen limitaciones con respecto a: • Extensibilidad limitada y dependiente del programador: sólo es posible la extensión de sub comportamientos en base a capacidades pre-definidas. Como se presentó en estudios previos al trabajo de tesis aquí desarrollado (señalados en [Fernández et al., 2004]), los comportam ientos y las interacciones entre ellos son generadas en forma rígida, sin permitir que varíen durante la ejecución del sistema de control. En general, los niveles de comportamiento son extensibles, permitiendo que el programador defina funcionalidades durante el proceso de diseño, pero no mientras es evaluado el desempeño del robot. • No existen mecanismos de refinamiento de capacidades adquiridas: el modelo reactivo que el robot posee del entorno (logrado mediante un proceso incremental basado en mecanismos de acción-reacción), por lo general, no es refinado luego de que el comportamiento requerido (o conjunto de ellos) sea alcanzado. No obstante, nuevas situaciones podrían requerir un mayor grado de precisión. Por tal razón, la representación del modelo reactivo del robot debe contemplar mecanismos de actualización de comportamientos mediante percepciones del entorno. En general, en las aplicaciones analizadas el tema de refinar comportamientos ya alcanzados, es tratado de manera parcial o no es considerado. Sin embargo, algunas de las aplicaciones contemplan aspectos de aprendizaje para adaptar un comportamiento a las situaciones actuales del entorno (un ejemplo de esto es presentado en [Togelius, 2004]), según las percepciones y la finalidad buscada en el diseño del controlador. Por tal razón, es deseable crear herramientas o técnicas que construyan en forma automática controladores adaptables, y que permitan refinar el modelo del entorno para obtener un alto grado de precisión en la tarea a resolver. • Coordinación no selectiva de comportamientos: en la mayoría de las aplicaciones, no es contemplada la posibilidad de que un comportamiento sea desarrollado antes que otros según las necesidades del sistema. Por ejemplo, un controlador robótico podría dar prioridad al desarrollo del comportamiento de evadir obstáculos antes que al de ir hacia el objetivo, al momento que sea sensado un obstáculo en el ambiente durante la ejecución del sistema. • Falta de mecanismos simultáneos de modelado de comportamientos: el sensado de situaciones, por lo general, es llevado a cabo en paralelo por cada nivel comportamental, pero las acciones vinculadas a cada comportamiento presentan una secuencia (asociación) predefinida no incorporada de manera automática o emergente por el controlador. Generalmente, es predefinida por el programador. Es deseable que un controlador permitiese la concurrencia de comportamientos, dependiendo de la naturaleza de los objetivos y del dominio del problema. Como ejemplo de esto, es posible decir que mientras que un robot lleva a cabo una tarea, éste puede aprender de manera concurrente que la actividad llevada a cabo no es apropiada, y modificar dicha situación. El objetivo general del presente trabajo consiste en desarrollar un estudio incremental sobre escalabilidad en RE. Una de las finalidades derivadas es obtener una estructura de control capaz de gobernar a la navegación de un agente robótico, promoviendo reusabilidad y escalabilidad de comportamientos. En esto serán tratados aspectos no considerados por estudios existentes. Finalmente, y a modo de estandarización para la construcción de controladores con el enfoque propuesto, se desarrollará una herramienta para reducir los esfuerzos de obtención y definición tanto de los comportamientos, como de las pruebas con controladores. Con ello, se promueve la reusabilidad y su utilización en sistemas de control, y particularmente en sistemas de control robótico. Desde una perspectiva ingenieril, este trabajo de investigación es parte de un proyecto sobre robótica autónoma más extenso. Un grupo de investigadores de la red RIDIAAR (Red de Investigación y Desarrollo en Inteligencia Artificial Aplicada a Robótica) está desarrollando para dicho proyecto un vehículo submarino Introducción 5 autónomo (AUV – Autonomous Underwater Vehicle) con sensores para el reconocimiento del entorno [Acosta, 2005]. La meta del proyecto es tener un robot submarino completamente autónomo, y posteriormente un conjunto de ellos, capaz de navegar en ambientes naturales desconocidos con la capacidad de llevar a cabo tareas de reconocimiento. Un primer hito para lograr dicha meta es desarrollar un sistema de navegación reactivo en entornos no conocidos a priori. Una propuesta para tal desarrollo está orientada al estudio de un sistema de navegación basad o en controladores neuronales dentro del área de RE. Por neuro-controladores dentro de RE, nos referimos a controladores cuya superficie de control es un mapa de estrada/salida que tiene como soporte una red neuronal artificial. Éstas pueden procesar una gran cantidad de información, transmitiendo señales en paralelo mediante las conexiones entre neuronas. En este contexto, la especificación de un neuro-controlador implica la evolución de diferentes estructuras: (a) redes neuronales; (b) parámetros de control; (c) los programas de computación en si mismos. Más aún, en el caso de las redes neuronales, la evolución de los controladores puede implicar aspectos adaptativos, tales como aprendizaje durante la vida del controlador. En cuanto al problema de escalabilidad dentro de la RE considerando comportamientos complejos, o comportamientos compuestos por subcomportamientos, se propone alcanzar dicho estudio partiendo de la propuesta presentada por Togelius, incorporando un análisis comparativo entre diferentes neurocontroladores que componen un comportamiento complejo. Tales neuro-controladores serán desarrollados utilizando las siguientes redes neuronales artificiales: Continuous-Time Recurrent Neural Network (CTRNN) [Beer, 1995][Yamauchi et al., 1994][Beer et al., 1992][Beer, 1990], Plastic Neural Network (PNN) [Urzelai et al., 2001][Floreano et al., 1998][Floreano et al., 1996], Feed-Forward Neural Network (FFNN) [Fernández et al., 2004][Togelius, 2003], Recurrent Feed-Forward Neural Network (RFFNN), y Homeostatic Plastic Neural Network (HPNN) [Di Paolo, 2003][Di Paolo, 2002][Di Paolo, 2000]. El desempeño del agente robótico será evaluado en la realización de distintas tareas: navegación en un entorno estructurado y aprendizaje [Nolfi et al., 2000][Floreano et al., 1998b]. En suma, el desempeño de cada agente robótico desarrollado será evaluado en distintas representaciones del entorno de manera incremental, partiendo desde modelos simples hasta alcanzar una evaluación en un entorno real mediante un robot físico. El modelo del robot simulado, así como el del robot real, estará asociado al mini-robot Khepera [Khepera, 2004]. Las figuras de mérito a ser consideradas son: (a) optimización del tiempo de aprendizaje/adaptación de cada tarea mediante mecanismos adaptativos en RE en función de la división de problemas en sub-problemas; (b) búsqueda de estrategias optimales para la generación emergente de trayectorias a fin de maximizar la medida de desempeño en el entorno y minimizar las restricciones sobre la forma en que son obtenidas tales estrategias. Por otra parte, la herramienta propuesta consiste en el diseño de un conjunto de clases de software en un lenguaje orientado a objetos, las cuales pueden ser reusadas en diferentes dominios de aplicación bajo una misma temática. Concretamente, el enfoque seguido en el diseño de la herramienta obedece a la abstracción de las características comunes a diferentes comportamientos pertenecientes a un dominio en particular: navegación de robots [Codonie, 1997]. El proceso de creación de la herramienta fue incremental, refinándose en etapas sucesivas a medida que se desarrollaron nuevas instancias o tests. Con ello se buscó mejorar la flexibilidad y reusabilidad de la herramienta. Por lo tanto, la finalidad subyacente en el desarrollo de la herramienta propuesta, se vincula a reducir el tiempo de generación, esfuerzo, y costos de obtención de los controladores robóticos. Siguiendo con la descripción de algunas características relacionadas al estudio planteado, es válido señalar el concepto de modularidad emergente presentado por Nolfi en [Nolfi, 1997]. La idea es crear bloques genéricos (típicamente redes neuronales) que permitan obtener una base sustentable y escalable, construyendo nivel sobre nivel mientras se mantiene una estructura coherente. Desde la visión que Minsky propone [Minsky, 1988], la mente puede ser vista como una sociedad de agentes capaces de aprender, cooperar y emplear a otros agentes para alcanzar un objetivo final. De esta manera, en [Téllez et al., 2004] se propone que distintos agentes estén organizados en niveles, permitiendo además la interconexión entre ellos en un mismo nivel y entre niveles. Por el contrario, el presente trabajo adopta una tendencia tradicionalista de representar un controlador por niveles según una Arquitectura por Subsumisión. Esto se debe a que se quiere validar experimentalmente la idea presentada por Togelius mediante el desarrollo de diferentes 6 Introducción pruebas dentro del dominio de la navegación de robots autónomos. Con la herramienta y metodología generadas a partir de este trabajo, se espera facilitar el desarrollo de aplicaciones futuras con la concepción de que cada nivel esté basado en la colaboración entre uno o más agentes dentro de una estructura de control cooperativa en función de la emergencia de la modularidad de cada comportamiento. La primera fase en el desarrollo del estudio presentado, consistió en el análisis e implementación de neuro-controladores. Esto se realizó por medio de un conjunto de clases de software concretas según aspectos evolutivos (p. ej. definición de la estructura del genotipo vinculado a cada controlador neuronal). Luego, se realizaron varias implementaciones de los distintos tests a resolver. Así, por ejemplo, se agregó un componente software para permitir que los agentes robóticos sean evaluados apropiadamente en cada tarea de navegación en un entorno en el cual cada objeto está aleatoriamente ubicado, extendiéndose los componentes para soportar pruebas con robots reales. La materialización de los componentes responsables de la representación y ejecución del sistema de control robótico, se realizó mediante el lenguaje JAVA. Por otro lado, se desarrolló una aplicación de toma de datos relacionada con el entorno simulado. Cabe aclarar que la herramienta generada posibilita crear interfaces con diferentes entornos de simulación. En la Figura 1 se muestra un diagrama UML (Unified Modeling Language) [Rational, 1997] con las principales clases implementadas y sus relaciones, las cuales constituyen la estructura principal de la herramienta generada. Figura 1 – Arquitectura principal de la herramienta responsable de crear los controladores neuronales para la navegación y su posterior prueba experimental Para llevar a cabo pruebas con la herramienta presentada, es necesario definir y especializar algunas de las principales clases abstractas. El programador debe instanciar el comportamiento deseado vinculado con la prueba a realizar, definiendo los métodos abstractos presentes en la arquitectura de software de la herramienta. Básicamente, un método abstracto es la manera de especificar cuáles deben ser las definiciones a ser descritas para construir una aplicación o prueba. El flujo de control entre los diferentes componentes está definido de manera genérica. En otras palabras, los componentes son especificados de manera que posibilite invocar a uno o más métodos en forma genérica. Los métodos abstractos son aquellos en los cuales el programador vuelca la responsabilidad de codificar el comportamiento específico de cada prueba a resolver, tales como mecanismos de definición de neuro-controladores y su codificación o manipulación del modelo del entorno. Adicionalmente, y debido a las características presentes en la programación orientada a objetos, la arquitectura propuesta es adaptable y extensible en relación con la posibilidad de incorporar nueva funcionalidad o extender la existente. En la Figura 2 se muestra un diagrama de las principales clases involucradas en la creación de pruebas con los controladores. Los controladores son creados por el módulo EmpiricalTest. Introducción 7 Figura 2 – Módulo EmpiricalTest encargado de modelar la interacción de los componentes involucrados en la realización de pruebas experimentales Obsérvese que dicho módulo invoca a diferentes componentes: una red neuronal, un algoritmo y un genotipo. Éstos deben ser definidos por el programador para llevar a cabo una validación experimental o test. Como es posible ver, tales componentes especializados son particulares a cada prueba que se desarrolle. A modo de resumen, la herramienta propuesta permite construir controladores neuronales y realizar pruebas asociadas a tareas definidas por el programador. Además, especifica componentes de software adaptables y flexibles responsables de controlar el comportamiento de un robot. Los controladores que son desarrollados con la herramienta presentada, permiten la interacción con el entorno del robot, reaccionando en función a él, y de este modo asegurar la coherencia de las acciones a llevar a cabo. Aquí, los agentes robóticos pueden percibir y actuar según las características inherentes a su controlador neuronal genéticamente determinado. 1.2 Organización del Trabajo El presente capítulo ha presentado un descripción general del trabajo de Tesis propuesto así como también una introducción a los sistemas adaptativos y evolutivos artificiales vinculados a robótica autónoma. También se han presentado las motivaciones, objetivos y principales contribuciones del trabajo. Capítulo 2 - Contexto En el siguiente capítulo se definen los conceptos básicos empleados para abordar el problema: Robótica Evolutiva, adaptación en sistemas naturales y artificiales, agentes robóticos, algoritmos genéticos, y arquitecturas evolutivas de controladores. Además, se presentarán algunas justificaciones sobre la importancia del estudio propuesto considerando escalabilidad y modularidad desde dos perspectivas: el enfoque de la ingeniería y el enfoque científico. Asimismo, se describen algunas de las características de la Evolución por Niveles (Layered Evolution) utilizada en la evolución de los controladores. 8 Introducción Capítulo 3 - Herramientas para el Desarrollo de Controladores En el Capítulo 3, se muestran algunas de las aplicaciones y herramientas para el desarrollo de controladores empleados en robótica móvil, con la finalidad de establecer sus principales características, identificando sus capacidades y deficiencias. Capítulo 4 - Método Experimental Posteriormente, en el Capítulo 4 se presentará una descripción de los diferentes tipos de controladores neuronales estudiados. Con ello, se desarrollarán las características de cada uno encontradas en la literatura. Capítulo 5 - Resultados Experimentales con Controladores Monolíticos En el Capítulo 5, se mostrará el diseño y la implementación de diferentes experimentos con los tipos de controladores descritos en el Capítulo 4. Capítulo 6 - Evolución de Neuro-Controladores Multi-Nivel Luego, en el Capítulo 6 se expondrán diferentes pruebas con arquitecturas de control por niveles, correspondientes a implementaciones de comportamientos simples y complejos. Además, se compararán en dicho capítulo los resultados obtenidos (tanto a nivel simulado como en un ámbito real) con los alcanzados en otras implementaciones en el mismo área de estudio. Capítulo 7 - Conclusiones En el Capítulo 7 se expondrán las conclusiones y trabajos futuros. Apéndice - Notas para el Usuario Finalmente, en el Apéndice A, se describen las principales características de ejecución y materialización de tests sobre robots simulados y reales mediante la herramienta desarrollada. Capítulo 2 - CONTEXTO CONTEXTO “… lo voy a pre-estudiar” Nicolás Fellenz “Para entender algo, es necesario comenzar desde el principio” Aristóteles 2.1 Introducción En este capítulo se detallarán los conceptos y enfoques en los cuales se basa el presente trabajo. Particularmente, se definirá adaptación en sistemas naturales y artificiales, agentes robóticos, algoritmos genéticos, algunas arquitecturas evolutivas de controladores, y Robótica Evolutiva. Además, se presentarán justificaciones sobre la importancia del estudio propuesto considerando escalabilidad y modularidad desde dos perspectivas: el enfoque de la ingeniería, y el enfoque científico. Como es de esperar, y dado que la finalidad del trabajo no es llevar a cabo un estudio sobre la evolución de sistemas biológicos, sólo se contextualiza temáticamente cada punto a través de un paralelismo a conceptos e ideas inspiradas en la Biología. El capítulo está organizado de la siguiente manera. En la sección 2.2 se describen algunas particularidades de los sistemas artificiales bio-inspirados. En la sección 2.3 se presentan las características inherentes a los algoritmos genéticos, y en la sección 2.4 se hace lo propio en cuanto a las redes neuronales artificiales. Las secciones 2.5 y 2.6 tratan sobre Robótica Evolutiva y el diseño de controladores, respectivamente. Por otra parte, las secciones 2.7 y 2.8 describen desde el enfoque ingenieril y el científico las implicancias de la evolución artificial. Finalmente, en la sección 2.9 se presentan las conclusiones del capítulo. 2.2 Sistemas Artificiales: Bio-inspiración Una característica común presente en la mayoría de los sistemas biológicos, es la habilidad de adaptarse al entorno. Esto es frecuentemente considerado en un proceso evolutivo natural [Darwin, 1859], y contempla que los individuos han evolucionado para estar adaptados al medio en un período prolongado de tiempo. Alternativamente, desde el punto de vista de la adaptación en la vida de un individuo (diferente de aquélla producida durante el proceso evolutivo), ésta puede ser considerada a través de la expresión: “comportamiento apropiado” para una determinada situación. Ashby [Ashby, 1960] formalizó la visión de la “adaptación durante la vida del individuo” desde una perspectiva dinámica. Propuso que el comportamiento de un sistema adaptativo (biológico o artificial) está determinado por un conjunto de parámetros. Si el sistema posee estado interno (o un indicador de la situación interna actual), entonces dicho estado puede ser definido por un conjunto de variables que cambian para que el agente pueda comportarse de la manera apropiada, aprendiendo a adaptarse. La forma en que las variables varían está determinada por parámetros. Sin embargo, ciertas variables, las cuales Ashby definió como “variables esenciales”, son mantenidas homeostáticamente, lo cual significa que son conservadas entre límites predefinidos durante el comportamiento antes señalado. Si dichas variables se encuentran fuera de los 10 Contexto límites preestablecidos, los parámetros se modificarán hasta que las variables estén dentro de los límites normales. De esta manera, el agente se readapta a las nuevas circunstancias. Para este paradigma, la “estabilidad” es sinónimo de comportamiento adaptado, y el “cambio” con un comportamiento mal adaptado. Como es posible ver hasta el momento, existen diferentes mecanismos y métodos basados en lo que se conoce de la naturaleza (p. ej. adaptación sináptica de las neuronas y el proceso genético). Esto generalmente se presenta con el nombre de bio-inspiración. Más concretamente, el trabajo que aquí se presenta, está referido a sistemas adaptativos y evolutivos artificiales bio -inspirados. 2.2.1 Creando Robots Autónomos Un agente es una entidad que funciona continua y autónomamente en un ambiente [Shoham, 1997]. Esta misma definición puede ser interpretada también para el concepto de agentes robóticos. Además, un agente es capaz de actuar modificando su entorno, percibiendo y desempeñándose selectivamente (percepción y reactividad). La autonomía, posicionalidad y corporeidad se relacionan, dado que se espera que un agente robótico realice, primordialmente, sus actividades de una manera adaptativa. En ello, la autonomía cobra un interés particular debido a que no se contempla la necesidad de que un humano intervenga en las acciones a realizar [Bradshaw, 1997]. Por lo tanto, se busca desarrollar agentes con la capacidad de mejorar su desempeño y adaptar su comportamiento en función de la experiencia en el entorno. De este modo, se pretende desarrollar un sistema de control capaz de afrontar fuentes imprevisibles de cambio. Un amplio número de propuestas, con un mayor o menor grado de éxito, han sido desarrolladas en la literatura para diseñar robots físicos o simulados mostrando tales características. Las características consideradas esenciales para la creación de un agente robótico son las que a continuación se enumeran: autonomía (autonomy), posicionalidad (situatedness), corporeidad (embodiment), y adaptabilidad. 2.2.1.1 Autonomía La autonomía puede definirse como la cualidad de estar auto-gobernado, y debe ser diferenciado del concepto de auto-dirigido, el cual está vinculado a sistemas automáticos capaces de auto-regularse. En otras palabras, los sistemas automáticos desarrollan mecanismos regulatorios dando o construyendo en ellos un camino específico a seguir, corrigiendo o compensando los efectos de disturbios externos. Los sistemas autónomos, por el contrario, desarrollan para sí mismos leyes y estrategias de acuerdo a lo que regula sus comportamientos, lo cual establece la auto-regulación al igual que el auto-gobierno [Smithers, 1995]. El concepto de auto-organización es crucial en el caso de robots móviles autónomos. A diferencia de manipuladores robóticos, los robots autónomos por lo general operan en ambientes abiertos, impredecibles y dinámicos. En este contexto, no es posible programar a un robot para moverse a lo largo de un camino, pero a pesar de ello, es posible proveer al robot de la posibilidad de tomar decisiones dependiendo de las condiciones encontradas en el entorno. La autonomía fue definida como opuesta a control según Gomi [Gomi, 1998] (en el sentido que el control implica dirección y gobierno de una entidad por otra), por lo que autonomía abarca una condición en la cual una entidad auto-contenida dirige su propio comportamiento. Por lo tanto, la expresión “control autónomo” podría interpretarse como contradictoria. Según Urzelai [Urzelai, 2000], la manera correcta de referirse a los “controladores” de robots autónomos puede ser: “generadores de comportamientos” o “mapeos de estímulo-acción”. No obstante, en este trabajo se utilizarán los términos de “controlador” o “sistema de control” para referenciar a estructuras capaces de generar comportamientos autónomos. 2.2.1.2 Posicionalidad y Corporeidad Los conceptos de posicionalidad y corporeidad fueron introducidos por Brooks [Brooks, 1991] para remarcar la importancia del par acción-percepción. Posicionalidad afirma que un agente inteligente debe estar ubicado en Contexto 11 el mundo real y que su comportamiento debe estar formado por la interacción generada a través del sistema senso-motor con el entorno circundante. Por otra parte, corporeidad implica que un agente debe tener un cuerpo físico dentro del ambiente para interactuar con su entorno. Consecuentemente, un robot está continuamente sujeto a fuerzas físicas, a disipación de energía, u otras influencias del entorno. Esto implica sustanciales simplificaciones debido a que la física relacionada en el proceso puede extraer información que no es accesible para un observador externo [Pfeifer et al., 1999]. Tanto posicionalidad como corporeidad resaltan la importancia de la interacción con el entorno. Sin embargo, en muchos casos este aspecto no es considerado en la investigación dentro de robótica, dado que es bastante difícil diseñar de la nada un sistema capaz de aprovechar las interacciones senso-motoras con el entorno. La razón de esto es que cada acción realizada por un robot que interactúa con su entorno, determina al mismo tiempo el próximo patrón sensorio que el robot debe recibir, el cual define la próxima acción a realizar por el robot. Tal dinámica entre el robot y su entorno no es fácil de analizar para un diseñador humano. Los enfoques de aprendizaje y evolución, no obstante, pueden explotar tales tipos de interacciones complejas para generar comportamiento adaptativo [Urzelai, 2000]. 2.2.1.3 Adaptabilidad Un robot autónomo que se desempeña en el mundo real necesita ser adaptable para afrontar cambios imprevistos en el entorno. Un robot autónomo puede ser provisto de mecanismos de adaptación, tales como aprendizaje on-line o algoritmos auto-organizados capaces de modificar su comportamiento. En general, cualquier modificación vinculada a la “supervivencia” del robot en el entorno es considerada como adaptación. Por otra parte, la adaptabilidad debe ser diferenciada de la robustez, dado que un sistema puede ser robusto sin ser adaptativo. La robustez está relacionada con la habilidad de lograr un determinado objetivo bajo diferentes condiciones. Adaptabilidad concierne a modificaciones necesarias para afrontar los cambios. La robustez es una propiedad estática la cual describe de manera general cómo es el sistema. En cambio, adaptabilidad es una propiedad dinámica, la cual posibilita a un sistema adaptarse a nuevas condiciones del ambiente. En lo que respecta a este trabajo de tesis, se construirá un controlador dinámico capaz de generar comportamiento adaptativo. En cuanto a agentes reactivos se refiere, esto trata de la realización de cambios en sus capacidades reactivas. Por lo tanto, existen diversas razones por las cuales el aprendizaje (visto como un proceso de adaptación al entorno) puede ser útil [Nolfi et al., 2000]: (a) ciertos detalles no conocidos en el ambiente; (b) la información a considerar puede ser desconocida o ser muy grande para ser codificada explícitamente por humanos; (c) dinamicidad del ambiente. Además, el aprendizaje tiene diversas formas de ser considerado. Sin embargo, el aprendizaje constituye un campo de estudio muy reciente a nivel de agentes robóticos. El aprendizaje puede ser mejorado notoriamente si se provee algún tipo de información de retro-alimentación o feedback, indicando el nivel de desempeño alcanzado. Básicamente, se pueden distinguir dos tipos de mecanismos de feedback vinculados al presente trabajo: (a) aprendizaje supervisado, dónde el feedback representa la utilidad de la actividad deseada. El objetivo de este tipo de aprendizaje consiste en satisfacer un determinado criterio de la mejor manera posible; (b) aprendizaje por refuerzos: el feedback sólo especifica la utilidad de la actividad actual. El objetivo de este aprendizaje consiste en maximizar dicha utilidad. En todos los casos se asume que el feedback lo provee el entorno. 2.2.1.4 Agentes Reactivos Existen diferentes clasificaciones de agentes [Nolfi et al., 2000][Logan, 1998]. Una de ellas se refiere a agentes reactivos, los cuales no poseen ninguna información sobre el entorno, sino que actúan utilizando un comportamiento de tipo estímulo-respuesta reaccionando al estado actual del ambiente, se definirán representaciones que permitan un mapeo entre los estímulos del entorno (percepciones realizadas) y sus propias acciones en relación a las respuestas comportamentales requeridas. 12 Contexto En cuanto a percepción se refiere, un agente debe ser capaz de conocer lo que ocurre en el entorno. Por ejemplo, durante la exploración de un entorno no conocido, el robot debería ser capaz de percibir y distinguir objetos a su paso. De esta manera, el sistema de control podría actuar ante situaciones tales como colisiones, entre otras. Un punto importante de destacar es que la percepción puede estar afectada por el ambiente, dado que en la mayoría de los entornos reales, no se percibe información actualizada o correcta. Esto se debe a que existen perturbacio nes de los datos obtenidos. Por otra parte, un agente robótico con capacidad de reacción posee la habilidad de actuar en función de las percepciones recogidas [Nolfi et al., 2000]. Esto expresa que un agente es capaz de ejecutar acciones en función del ambiente cuando tales eventos afectan a los comportamientos, con la idea de satisfacer algún requerimiento. Básicamente, un comportamiento reactivo puede implicar un proceso de selección de acciones, el cual se realiza sin ningún tipo de proceso de razonamiento. Un ejemplo de esto es la Arquitectura por Subsumisión [Brooks, 1996] en la cual cada agente posee un conjunto de reglas condiciónacción organizadas por niveles de importancia. 2.2.1.5 Adaptación en Sistemas Artificiales Un tipo de adaptación utilizado en la actualidad en sistemas adaptativos artificiales, es la adaptación fenotípica. Desde un plano genético, las adaptaciones fenotípicas ocurren dentro de un agente, en un proceso basado en aspectos genéticos y en la evolución. Además, la adaptación puede diferenciarse según la escala temporal (generacional o durante la vida del controlador). En [Arkin, 1998] se clasifica a la adaptación en: • Adaptación Comportamental: los comportamientos de un agente en particular son ajustados en forma relativa a otro. • Adaptación Evolutiva: los cambios de los descendientes (elementos nuevos de una población), en cuanto a escalas temporales prolongadas, están basados en el éxito o fracaso de sus ancestros en el ambiente. • Adaptación Sensora: el sistema perceptual de un agente se vuelve más armonizado al ambiente. • Aprendizaje como adaptación: esencialmente, se refiere a cualquier cambio que resulte en un agente mejor adecuado según la perspectiva de entorno (p. ej. adaptación neuronal). La investigación en Inteligencia Artificial ha invertido un esfuerzo considerable en determinar cuáles son los métodos de aprendizaje o técnicas de programación por las cuales lograr que un sistema robótico pueda aprender. Particularmente, en robótica se presta gran interés a: • Aprendizaje en Redes Neuronales: es una técnica de programación vinculada a la utilización de redes neuronales artificiales mediante una forma de adecuación dependiente del tipo de red. El aprendizaje ocurre como resultado de alteraciones sinápticas [Arkin, 1998]. • Aprendizaje Evolutivo: corresponde a una técnica de programación asociada a la utilización de procesos bio-inspirados en adaptaciones genéticas. Los operadores genéticos tales como crossover y mutación, son usados en poblaciones de controladores, arrojando estrategias de control con algún grado de variación. En cuanto a las redes neuronales, el aprendizaje ocurre, por lo general, mediante el ajuste de los pesos sinápticos según un procedimiento de minimización del error, tal como la regla Hebbiana, la regla ∇ generalizada o back-propagation [Haykin, 1999]. Por el contrario, las estrategias evolutivas han sido usadas en adaptaciones on-line, así como también en aplicaciones más comunes de aprendizaje off-line dentro de sistemas de control. Contexto 2.3 13 Algoritmos Genéticos Los Algoritmos Genéticos3 fueron inicialmente introducidos por Holland en 1975 [Holland, 1975] como una técnica de búsqueda en paralelo basada en el principio Darwiniano de la reproducción selectiva de los mejores individuos. Un algoritmo genético opera sobre una población de cromosomas artificiales (genotipos), cada uno de los cuales codifican las propiedades de una población de individuos (fenotipos). Las propiedades de codificación se refieren a algunas de las variables de un individuo, tales como los parámetros para desarrollar la morfología de un individuo (p. ej. interconexionado neuronal), entre otros. Un cromosoma artificial puede ser visto como el A.D.N. de un individuo, compuesto de un número de genes cada uno conteniendo un símbolo o alelo de un conjunto de posibles símbolos. Además, diferentes tipos de métodos de codificaciones han sido usados. Los más comunes consisten en codificar cada gen del genotipo mediante un conjunto compuesto por dos alelos, 0 y 1. Este método es conocido como codificación binaria. Un algoritmo genético comienza con una población inicial de cromosomas aleatorios (en el caso de genotipos binarios, esto corresponde a strings aleatorios de 0s y 1s). Cada cromosoma es decodificado en el correspondiente fenotipo (por ejemplo, una red neuronal), uno por vez, y su desempeño es evaluado. El desempeño o performance de un individuo correspondiente a un genotipo específico se refiere a una función de fitness o medida del desempeño al momento de realizarse una acción en el entorno por parte del agente. Entonces, tres operadores genéticos pueden ser aplicados –reproducción selectiva, crossover, y mutación. Esto se realiza para crear nuevas generaciones de cromosomas. Dicho proceso evolutivo es repetido para varias generaciones hasta que un individuo cumpla una determinada condición (generalmente, que su medida de fitness sea mayor a un valor esperado). Es importante notar la diferencia entre genotipo y fenotipo en el contexto artificial, estando ésta relacionada a que mientras los operadores genéticos son aplicados en los genotipos, el fitness es medido sobre los fenotipos. Continuando con lo anterior, la reproducción selectiva consiste en hacer copias de los cromosomas en una población, con una probabilidad proporcional al fitness del individuo. Por ol tanto, los mejores individuos tendrán mayores posibilidades de reproducirse que los individuos clasificados con peor desempeño o performance. Algunos de los métodos más utilizados en reproducción selectiva son ([Urzelai, 2000][Goldberg, 1989]): • Método Roulette-weel: consiste en una rueda en la cual cada individuo es representado por un área en dicha rueda. El ancho de cada área es proporcional al fitness que el individuo representa. Por lo tanto, es seleccionado para reproducirse a aquel individuo en donde caiga un selector (una bola, haciendo una analogía con una ruleta). Los individuos con mayor fitness poseen mayor posibilidad de reproducción. Más precisamente, la probabilidad de reproducción pi de un individuo con un fitness de fi dentro de una población de N individuos es calculada según: pi = fi N ∑f i i La nueva generación de cromosomas es creada haciendo girar la rueda N veces y el número esperado de copias de individuos i sea Npi. Este método presenta dos limitaciones, (i) en poblaciones donde todos los individuos poseen similares valores de fitness, cada individuo tiende a realizar el mismo número de copias y el algoritmo genético realiza una búsqueda aleatoria, y (ii) en poblaciones donde un pequeño número de individuos poseen un valor de fitness mucho más alto que el resto, la mayoría de las copias corresponderán al mismo individuo, lo cual implica un riesgo de convergencia prematura. Una solución a tales limitaciones consiste en ordenar los valores de fitness antes de aplicar el operador de selección para acentuar las diferencias de fitness en el primero de los casos, y decrementarlos en el segundo de los casos. 3 Una buena introducción a los Algoritmos Genéticos puede ser encontrada en [Goldberg, 1989]. 14 Contexto • Método Rank-based: soluciona las limitaciones presentadas por el método anterior, seleccionando individuos de un ranking en el cual ellos están clasificados en forma descendente. La probabilidad de ser seleccionados es proporcional al ranking de individuos y no al valor de fitness. • Truncation Selection: consiste en otra forma de selección basada en ranking. Los N individuos son ordenados en forma descendente y los M mejores son elegidos para realizar K copias cada uno, con lo cual MK = N. Este es el método utilizado en las pruebas llevadas a cabo en el presente trabajo. • Tournament Selection: corresponde a una selección basada en competencia de dos individuos seleccionados de manera aleatoria. Si un número aleatorio entre 0 y 1 es menor que un valor predefinido T, el individuo con el fitness más alto es seleccionado, de otra manera el individuo “menos importante” será copiado a la siguiente generación. Las ventajas de este método es que no es necesario calcular el fitness para toda la población o realizar un ranking de individuos. Luego del proceso de selección, los operadores de crossover y mutación son aplicados con una probabilidad determinada de reproducción de individuos. Crossover4 consiste en tomar dos cromosomas, eligiendo un gen aleatorio en cada uno de ellos, para luego entrecruzar los genes circundantes a cada gen seleccionado. Este mecanismo de recombinación tiene por objetivo combinar en un único genotipo potencial la construcción de bloques que eventualmente puedan proporcionar ventajas a la selección. Por otra parte, la mutación introduce nuevo material genético mediante variaciones aleatorias sobre genes seleccionados al azar. En algunos de los casos, el mejor de los individuos de una generación es copiado a la siguiente generación sin modificaciones. Este mecanismo es conocido como elitismo e intenta preservar la mejor solución encontrada a lo largo del tiempo. genotipos actualización selección crossover mutación Población inicial 0.70 0.10 ….. ….. fenotipos decodificación 0.55 fitness Figura 3 – Esquema del proceso propuesto por los Algoritmos Genéticos 4 En el trabajo que aquí se presenta, no es considerado el operador crossover, por ejemplo, crossover de un punto (one-point crossover). Los lectores interesados en este tipo de operador, como en el caso de multi-point crossover, referirse a [Goldberg, 1989]. Contexto 15 2.3.1 Función de Fitness La función de fitness corresponde a un criterio de desempeño o performance determinada por el diseñador de un experimento. Las funciones de fitness deben cumplir algunas restricciones en cuanto a lo que expresan [Nolfi et al., 2000]. Tales restricciones o características de diseño son especificadas a continuación. implícita interna explícita externa funcional comportamental Figura 4 – Espacio de Fitness La función de fitness, generalmente incluye variables y restricciones, las cuales especifican el desempeño del comportamiento esperado. No obstante, tales variables y restricciones son difíciles de seleccionar debido a que el comportamiento generado por el robot no es del todo conocido previamente. Por tales razones, diseñar una función de fitness de manera efectiva es una tarea no trivial, y generalmente está asociado a un proceso de prueba y error. En la Figura 4 ([Nolfi et al., 2000]), la dimensión funcional-comportamental indica que la función de fitness considera modos de funcionamiento específicos del controlador o el comportamiento de un individuo. Por ejemplo, si se quiere obtener el comportamiento de caminar, una función de fitness calcularía la frecuencia de oscilación de las piernas mientras la función del desempeño del comportamiento (behavioral fitness function) considera la distancia cubierta por el robot. La dimensión explícita-implícita define la cantidad de variables y restricciones incluidas en la función. Por ejemplo, una función implícita seleccionaría los robots que se mantengan dentro del rango de energía correcto. En cambio, una función explícita incluiría variables y restricciones que evalúan varios componentes del comportamiento deseado, tales como si el robot se acerca a un área de fuente de energía, la velocidad, o la distancia con respecto a obstáculos, entre otros. La dimensión externa-interna indica si las variables y restricciones incluidas en la función de fitness son obtenidas utilizando la información disponible para evolucionar a un agente. Un ejemplo de función de fitness externa podría considerar la distancia entre el robot y su objetivo como una variable externa, debido a que no puede ser determinada utilizando información proveniente de los sensores del robot. Las funciones FEE (funcional, explicita, externa) expresadas en la Figura 4, describen cómo un controlador debe trabajar de manera funcional, y evalúa los sistemas en base a distintas variables y restricciones en forma explícita. Para ello se emplean dispositivos precisos de medición externos (p. ej. sensores robustos a variaciones ambientales), apropiados para optimizar el conjunto de parámetros complejos pero bien definidos del problema de control dentro de un entorno estructurado o controlado. Por otro lado, las funciones CII (comportamental, implícita, interna), establecen el resultado comportamental de un controlador evolutivo, basándose en unas pocas variables o restricciones (implícita) que son calculadas internamente (interna), convenientes para desarrollar robots adaptativos capaces de realizar operaciones autónomas en un entorno parcialmente desconocido y ambientes impredecibles sin la intervención humana. La línea diagonal entre los extremos de la FEE y la CII en el espacio de fitness, define un continuo entre el problema de optimización propuesto por la ingeniería tradicional y la síntesis presentada por los sistemas de vida artificial respectivamente. 16 Contexto 2.3.2 Fitness Landscape El fitness landscape es una metáfora generalmente usada para visualizar el espacio de búsqueda de un algoritmo evolutivo [Nolfi et al., 2000]. El fitness landscape asocia combinaciones de rasgos genéticos a valores de fitness. La dimensión landscape está dada por el número de combinaciones genéticas. Por ejemplo, para un organismo caracterizado por sólo dos genes correspondientes a la longitud y a la masa, el fitness landscape se verá como una superficie. La altura del landscape en un punto determinado está dada por el valor de fitness del individuo “potencial” resultante de una combinación específica de rasgos genéticos. En la práctica, el fitness landscape nunca es una superficie completa deb ido a que sólo una delgada fracción de todos los individuos potenciales es generada y testeada. Aun esto ocurre en los modelos computacionales más simples, aunque los rasgos genéticos bajo evolución son mucho más que sólo dos. En dicho caso, una visualización uni-dimensional del fitness landscape podría ser útil para proyectar un espacio multi-dimensional en una sola dimensión, graficando todos los valores de fitness, uno seguido de otro. fitness individuos combinación de rasgos Figura 5 – Fitness Landscape unidimensional La figura anterior muestra la representación en una dimensión de un fitness landscape con cuatro individuos. Esta simple representación no considera los cambios que se producen durante la vida de un individuo, ignorando las modificaciones ambientales, asumiendo que existe un mapeo uno-a-uno entre genes y rasgos. 2.3.3 Codificación Genética Para completar la especificación de un proceso genético artificial aplicado a controladores robóticos, es necesario decidir cómo codificar el sistema de control de un robot en el genotipo de una manera apropiada para la aplicación de los operadores genéticos. En la mayoría de los casos, las características fenotípicas sujetas a evolución están codificadas de manera uniforme. Así, la descripción de un individuo a nivel de genotipo asume la forma de “string” de elementos similares (como el caso de números binarios). La transformación de los genotipos a un robot completo es llamada mapeo genotipo-a-fenotipo. Por otra parte, una buena codificación genética debe exhibir diferentes propiedades. Un primer requisito es que pueda ser utilizada en el proceso de evolución, por ejemplo, la habilidad de producir mejoras mediante la aplicación de operadores genéticos. Esto sin duda es un criterio bastante importante de cumplir. Un segundo requisito es el potencial de expresividad de la representación. Esto se refiere a la posibilidad de codificar diferentes características fenotípicas tales como la arquitectura del controlador, la morfología del robot, las reglas de control de plasticidad de un individuo, y eventualmente las reglas que determinan el proceso genotipo-a-fenotipo. De hecho, sólo las características que son codificadas en el genotipo pueden ser desarrolladas a través de un proceso de auto-organización en vez de ser fijas o pre-diseñadas. Un tercer requerimiento es que sea compacta. La longitud del genotipo puede afectar la dimensionalidad del espacio de Contexto 17 búsqueda a ser contemplado por el algoritmo genético el cual, mediante las características de la superficie de fitness, puede afectar el resultado del proceso evolutivo. Finalmente, un cuarto criterio es la simplicidad. Estos factores tienen una importante consecuencia en el proceso evolutivo [Nolfi et al., 2000][Grau, 1994]. 2.4 Redes Neuronales Artificiales En RE, el sistema de control de un robot autónomo está generalmente implementado como una red neuronal artificial [Nolfi et al., 2000]. Existen distintas razones para esto, entre las cuales se encuentran: (i) las redes neuronales proveen un mapeo conveniente entre sensores y actuadores, y pueden representar tanto señales de entrada como salidas discretas o continuas dependiendo del tipo de red; (ii) las redes neuronales son robustas al ruido, dado que sus unidades están basadas en la suma ponderada de las señales. Por ello, las oscilaciones en valores individuales de dichas señales no afectan en forma drástica el comportamiento de la red. Esta propiedad es muy importante en el contexto de control de robots con sensores dentro de ambientes con ruido; (iii) las redes neuronales pueden ser entrenadas usando diferentes tipos de algoritmos de aprendizaje; (iv) las redes neuronales proveen varios niveles de granularidad. Es posible decidir aplicar técnicas evolutivas o de aprendizaje a un nivel bajo de especificación de una red neuronal, tal como los pesos sinápticos, o a niveles altos, tales como la coordinación de los módulos predefinidos compuestos de sub-redes pre-determinadas. Las redes neuronales artificiales5 son estructuras de cómputo paralelas inspiradas en alguna medida en los sistemas nerviosos biológicos. Las mismas están compuestas por un conjunto de unidades de procesamiento básico o nodos (relacionados con el concepto de neuronas biológicas), conectados por vínculos ponderados llamados sinapsis. Las redes neuronales pueden estar organizadas en diferentes tipos de arquitecturas. Una arquitectura de red convencional es la del tipo feed-forward, la cual consiste en uno o más unidades de entrada, las cuales reciben información externa, una característica común a todas las redes neuronales artificiales. Además, la red puede estar compuesta de cero o más unidades internas, y por uno o más unidades de salida, éstas últimas enviando información al exterior o ambiente. Las unidades internas generalmente se las denomina unidades ocultas debido a que no están en contacto con el ambiente externo. Otro tipo de red es la red neuronal recurrente la cual posee unidades de entrada, ocultas, y unidades de salida, pero sin que sea clara la dirección de la información (dirección de las flechas que representan las conexiones sinápticas). Esto se debe a que existen varias conexiones mucho -a-muchas entre neuronas, incluyendo autoconexiones. Las arquitecturas recurrentes presentan mayor complejidad en cuanto a la dinámica dependiente del tiempo en comparación a las redes del tipo feed -forward. Cabe destacar que estos temas serán desarrollados con mayor detenimiento en el Capítulo 5. 2.5 Robótica Evolutiva RE es una técnica avocada al desarrollo de robots y de sistemas de control senso-motor a través de un proceso de diseño automático, el cual involucra evolución artificial [Nolfi et al., 2000]. Básicamente, la idea que subyace detrás de la RE es la siguiente: una población inicial de diferentes “genotipos” (o genomas), cada uno codificando el sistema de control (y posiblemente la morfología) de un robot, es creada de manera aleatoria. Luego, cada genotipo es mapeado dentro del correspondiente fenotipo y testeado en el ambiente para determinar su habilidad para desarrollar una tarea específica. Posteriormente, el robot que haya alcanzado el mejor desempeño (medido a través de una función de fitness), está habilitado para reproducirse 5 Una buena introducción a la temática de redes neuronales artificiales puede encontrarse en [Beale et al., 1990], y [Haykin, 1999] para una descripción más avanzada del tema. 18 Contexto (o en otros términos, el controlador de dicho robot será considerado en futuras pruebas). Esto es llevado a cabo generando copias de sus genotipos e incorporándole a cada una de ellas cambios según operadores genéticos predeterminados, tales como mutación y crossover. El proceso es repetido a lo largo de un cierto número de “generaciones” hasta que el criterio deseado de finalización sea alcanzado (función de fitness). Con respecto a la función de fitness, es el diseñador del experimento quien la determina. Dicha función es utilizada para medir el grado de capacidad de un robot para una tarea. Por otra parte, es el diseñador quien usualmente especifica cuál va a ser la información genética a ser volcada dentro del correspondiente fenotipo. Sin embargo, los mapeos entre el genotipo y el fenotipo son usualmente tareas independientes. Como consecuencia, los comportamientos obtenidos en la evolución y la forma en que estos son producidos, son el resultado de un proceso auto-organizado [Nolfi et al., 2000]. 2.5.1 La Robótica Basada en Comportamientos y la Robótica Evolutiva En términos generales, se podría decir que el enfoque propuesto por la RE comparte muchas de sus características con otros enfoques dentro del mismo contexto temático. Uno de ellos es el propuesto por la Robótica Basada en Comportamientos (RBC)[Arkin, 1998], el cual está fundado en la idea de proveer a los robots de un conjunto de procesos senso-motores (comportamientos) organizados jerárquicamente. Además, incorpora la idea de que el entorno determina cuál de los comportamientos debe tener el control en un determinado instante de tiempo. En este enfoque, al igual que en la RE, el entorno posee un papel relevante. En particular, las condiciones presentes en el entorno determinan cual será el comportamiento activo durante tales condiciones. Tanto en RE como en RBC, los robots están usualmente diseñados de forma incremental dentro de un proceso de prueba y error, en el cual el diseñador incorpora un nuevo nivel en lo alto de la jerarquía comportamental solo después de haber testeado y comprobado en el ambiente el comportamiento resultante de los niveles inferiores. Sin embargo, la RE, basándose en un proceso de evaluación automático, usualmente realiza un uso mucho más amplio del proceso de prueba y error antes referido. Mientras que con el enfoque basado en comportamientos, el comportamiento con el cual un robot resuelve una tarea está al menos parcialmente determinado por la persona que realiza el experimento (siendo quien decide la articulación entre los subcomponentes comportamentales), en RE esto es el resultado de un proceso auto-organizado. De hecho, la organización total del sistema dentro del proceso evolutivo, incluyendo su eventual organización en subcomponentes, es el resultado de un proceso de adaptación en algunas de las implementaciones descritas en la literatura. 2.6 Diseño de Controladores Para diseñar un controlador robótico, pueden adoptarse distintos enfoques basados en comportamientos. Entre los más representativos vinculados al presente trabajo, se destacan (a) el propuesto por Brooks (Arquitectura por Subsumisión), y (b) el conducido por evolución artificial. 2.6.1 La Arquitectura por Subsumisión La RE no es el único enfoque moderno vigente en robótica. En los 80s, Brooks propone la Arquitectura por Subsumisión (Subsumption Architecture [Brooks, 1986]). Con esto activó el área de investigación denominada RBC, la cual domina la actividad de investigación académica en robótica moderna. Los principios básicos de la Arquitectura por Subsumisión pueden resumirse de la siguiente forma: la arquitectura está organizada en niveles, donde cada nivel es responsable de producir uno o pocos comportamientos. Los niveles poseen un orden estrictamente o parcialmente vertical en el cual los niveles superiores presentan precedencia sobre los niveles inferiores. Generalmente, los comportamientos controlados por los niveles superiores son más complejos y “cognitivos” que aquellos representados por los niveles inferiores. Además, todos los niveles, excepto el de más abajo, presuponen la existencia de niveles Contexto 19 Comportamiento 2 Comportamiento 1 Acción Percepción Comportamiento 3 Coordinación inferiores, pero no la existencia de niveles superiores. En pocas palabras, el robot es construido con la modalidad buttom-up, en el cual cada etapa de la construcción es capaz de operar en forma independiente. Figura 6 – Diagrama genérico de una Arquitectura por Subsumisión El enfoque de Brooks ha probado ser más exitoso que el enfoque tradicionalista de dividir el problema en percepción, planning y acción [Nolfi et al., 2000]. Más aún, se ha demostrado que tanto los niveles responsables de comportamientos simples como los mecanismos de coordinación, pueden ser obtenidos a través de un proceso auto-organizado más que por medio de un diseño explícito (véase [Urzelai et al., 1998][Maes, 1992]). La RBC ha sido usada en muchas aplicaciones y ha estado inspirada tanto en aspectos de investigación biológicos como comportamentales [Prescott et al., 1999]. Al mismo tiempo, la construcción de robots mediante el diseño pre-establecido (o diseño en el cual los componentes siguen una lógica de interconexión fija) se ven limitados por la creatividad humana y por los prejuicios de diseño. Esto es un umbral drástico para los experimentos científicos. 2.6.2 Evolución de Robots La manera más eficiente de obtener resultados mediante RE, es realizando el proceso propuesto en el entorno real. Por ejemplo, durante el proceso evolutivo cada individuo de la población puede ser corporizado en un robot real, para luego evaluar su desempeño en el entorno real. Por esta razón, el proceso evolutivo puede requerir un tiempo considerable. Otra posibilidad es obtener controladores mediante evolución simulada, para luego evaluar tal controlador en el mundo real. Esta forma de proceder puede reducir significativamente el tiempo requerido en realizar un experimento. Para ser eficaz, sin embargo, esta forma de obtención requiere que todos los aspectos relevantes del robot, el entorno y la interacción robot-entorno, estén modelados con exactitud en un proceso de simulación previo. De otro modo, los robots podrían no comportarse de la manera deseada al momento de que sea transferido al ambiente real. No obstante, la evolución de robots en simulación sin una validación en robots reales no tiene sentido, dado que no existe forma de asegurar que la simulación realmente captura todas las complejidades y oportunidades del mundo real [Nolfi et al., 2000][Floreano et al., 1998]. 2.6.2.1 Evolución de Robots: Mundo Real Para evolucionar robots en ambientes reales, es necesario considerar distintos problemas. Primeramente, la robustez mecánica. Durante el proceso de evolución, y especialmente con los individuos de las generaciones tempranas, pueden encontrarse comportamientos con alta probabilidad de dañar el hardware del robot. Esto puede deberse a colisiones a altas velocidades contra objetos o a corrientes fuertes sostenidas en los motores al momento de empujar contra la pared. Una forma de resolver este problema es usar pequeños robots. De hecho, las leyes fundamentales de la física (p. ej. fuerzas implicadas en el choque del robot dentro del 20 Contexto entorno de prueba), otorgan mayor robustez mecánica a robots miniatura tales como el Khepera ® [Khepera, 2004]. Otro problema a considerar está asociado al suministro de energía. Los experimentos que utilizan evolución presentan un tiempo mayor que el tiempo medio de duración de la mayoría de las baterías. Por esta razón, es necesario proveer al robot de la habilidad de recargar sus baterías o desviar dicho problema a otra solución. Una posibilidad es usar un cable fino con conexiones rotativas como medio de alimentación de energía. Esta técnica permite ahorrar el tiempo requerido para recargas periódicas, y además permite la posibilidad de comunicación con una computadora, junto con el almacenamiento de datos, los cuales pueden ser utilizados luego en el análisis de los experimentos. Otra característica importante es el análisis del comportamiento obtenido y del curso de la evolución. El sistema de control de un robot generado mediante evolución, puede ser bastante complejo y estar íntimamente vinculado con el entorno. Por esta razón, extraer el controlador del robot y estudiarlo en forma aislada, por lo general, ayuda a comprender el comportamiento del robot. Diferentes métodos inspirados en neuroetología pueden proporcionar puntos de vista útiles, poniendo en correlación las conductas y las dinámicas de los controladores [Nolfi et al., 2000][Floreano et al., 1994]. 2.6.2.2 Evolución de Robots: Simulación Para hacer más precisas las interacciones entre el robot y su entorno, es necesario afrontar varios problemas. El primero de ellos se refiere a que diferentes sensores y actuadores, a pesar de que parezcan idénticos, pueden presentar un comportamiento diferente debido a pequeñas diferencias en su electrónica o en sus mecanismos. Por ejemplo, si miramos los sensores infra-rojos de un simple robot Khepera, es posible notar que distintos sensores (pero de iguales prestaciones) responden de manera significativamente diferente cuando son expuestos a los mismos estímulos externos. Esto implica que diferentes robots pueden desempeñarse de distintas maneras bajo idénticas condiciones, según las diferencias en las características de sus sensores. En otras palabras, los comportamientos a ser desarrollados poseen un mapeo -sensor actuador dependiente de lo que se perciba del entorno. Por lo tanto, los comportamientos son sensibles ante diferencias de percepción del ambiente respecto de sensores y actuadores presuntamente idénticos. Una manera de considerar las diferencias de cada sensor, es mediante la obtención en forma empírica de valores de mediciones del entorno con diferentes clases de objetos a través de los sensores reales del robot. Las matrices resultantes de mediciones, por ejemplo al variar los rangos de ángulo y la distancia con respecto de diferentes tipos de obstáculos, podrían ser utilizadas por el simulador para setear los niveles de activación de los sensores infra-rojos del robot, dependiendo de la posición actual en el entorno simulado. Otro problema que debe ser tenido en cuenta al realizar pruebas con un simulador, es que los sensores físicos de los robots reales entregan valores y comandos inciertos a los actuadores, presentándose efectos igualmente aleatorios sobre los actuadores. En definitiva, los sensores no retornan valores precisos, en cambio, presentan aproximaciones difusas de lo que ellos han medido. De manera similar, los actuadores exhiben efectos que pueden variar en el tiempo dependiendo de distintas causas no predecibles. Tal problema puede ser abordado mediante la introducción de ruido en todos los niveles de simulación. Cabe destacar que dicha simulación debe contarse con un modelo o al menos con indicadores de las variaciones potenciales de tales dispositivos. Finalmente, debido a que la evolución artificial puede explotar características no previstas de la interacción robot-entorno, el cuerpo del robot y las particularidades del ambiente deben ser reproducidas en forma precisa en la simulación [Minglino et al., 1995]. 2.6.3 Enfoques en Evolución Artificial La descripción que a continuación se presenta es bastante general aunque existe un número significativo de detalles, muchos vinculados a distintos tipos de implementaciones, que aún siguen sujetos a investigación. En términos generales, la temática presentada en esta sección gira alrededor del siguiente postulado: gran parte del secreto detrás de realizar un trabajo en evolución artificial se vincula a definir la tarea a llevar a cabo Contexto 21 y determinar una evaluación apropiada o función de fitness. Por ejemplo, si la tarea que debe realizar un robot es moverse alrededor de un círculo, el desempeño de genomas (o potenciales controladores) imperfectos debe estar ranqueado como una función continua, donde a movimientos circulares le corresponden mayor puntuación y a los movimientos rectilíneos de corresponden puntuaciones menores. Por otro lado, con un esquema de ponderación que asigna máxima calificación a movimientos curvilíneos perfectos y mínima en cualquier otro caso, el comportamiento deseado es muy improbable de generar mediante evolución. A continuación se presentan distintos enfoques orientados a concebir evoluciones artificiales relativas a la definición de la función de fitness y a la estructura del controlador. • Monolithic Evolution: La mayoría de las aplicaciones desarrolladas en RE, buscaban obtener un controlador mediante evolución artificial por medio de una única red neuronal simple. Esto en relación con una sola tarea y una función de fitness específica para todos los procesos. Este enfoque de generación de controladores se denomina Evolución Monolítica (Monolithic Evolution [Togelius, 2004]). • Incremental Evolution: Aunque parece trivial, por lo general, no es tan simple diseñar una función de fitness continua para una tarea compleja. Para la mayoría de las tareas, el desempeño no es fácilmente graduado en forma continua. Una solución que ha sido utilizada en tales casos es denominada Evolución Incremental o Incremental Evolution [Togelius, 2004][Blynel et al., 2003][Urzelai et al., 1999][Gómez et al., 1996]. En Evolución Incremental, la tarea cambia a lo largo de la evolución del controlador. Cuando la evolución ha producido un controlador aceptable, el cual resuelve fielmente la tarea para la cual fue creado, la tarea es aumentada en cuanto a su complejidad y la evolución puede generar soluciones a la nueva tarea partiendo de aquella ya evolucionada. La ventaja con ello puede ser explicada en términos de fitness landscape (sección 2.3.2). Algunos problemas, tales como recolectar objetos en el entorno, poseen un fitness landscape muy variado. Si el fitness es una medida aproximada de la habilidad del robot en cuanto a la tarea encomendada, un robot que al menos realice algún esfuerzo de resolverla p( . ej. de acercarse a los objetos a recolectar) será categorizado por encima de otro que se mueva aleatoriamente. Con Evolución Incremental, la tarea de recolectar objetos puede estar inicialmente premiada sólo por acercarse a los objetos que deben ser tomados, y luego que dicho comportamiento sea alcanzado, modificar la función de fitness para que, por ejemplo, pondere la tarea de tomar los objetos correctos. • Modularised Evolution: Otra técnica que ha sido definida es utilizar más de un sub-controlador en la evolución, pero manteniendo una única función de fitness. Típicamente esto se ha propuesto utilizando varias redes neuronales en forma de componentes independientes. Nolfi [Nolfi, 1997] expresa que dividiendo la red total en sub-redes separadas o “módulos”, mejora la evolución de un controlador robótico. En [Calabretta et al., 2000] se concluye que al duplicar una red neuronal evolutiva y dejando que éstas se diferencien en cuanto a sus funciones (donde los mecanismos para dividir el control entre las dos redes también es afectado por la evolución), puede mejorar la evolución total en un mayor grado. Particularmente, diferentes redes neuronales son mantenidas en cada instante de los experimentos (o generándose una red y luego duplicándola), dependiendo esto de cada autor en particular. No obstante, en ninguno de los experimentos analizados existe una diferenciación funcional concreta por el diseñador (para un mayor entendimiento véase [Venema et al., 2001] utilizando redes feed-forward). • Layered Evolution: La Evolución por Niveles o Layered Evolution, propone combinar las características principales de la Arquitectura por Subsumisión (la cual según Togelius siempre fue diseñada en forma fija y manual), con características presentes en RE. Como una alternativa al particionamiento de estructuras monolíticas de controladores, la Evolución por Niveles organiza al controlador de la siguiente manera: Arquitectura por Subsumisión con coordinación basada en prioridad [Arkin, 1998]. Cada nivel consiste de una red neuronal conectada a un subconjunto de sensores y actuadores del robot. Los niveles están conectados por una estructura donde los niveles superiores pueden influir en los inferiores. Ahora, si varios niveles son evolucionados en forma simultanea con una misma función de fitness, estamos en presencia de Evolución Modularizada. 22 Contexto Según Brooks, la “metáfora evolutiva” empleada en su trabajo indica que cada nuevo nivel era una innovación evolutiva reciente. Esta metáfora puede ser adaptada en RE mediante la evolución de niveles en forma secuencial, usando distintas funciones de fitness. Esto es, una vez que el primer nivel (nivel inferior) ha sido desarrollado en forma plena (alcanzando un valor de fitness satisfactorio), se procede a incorporar un segundo nivel por sobre el primero y evolucionar el segundo usando una nueva función de fitness hasta que se satisfaga una condición de finalización pre-fijada. Este enfoque de generación de un controlador es el mismo que el propuesto por Togelius. Un punto importante de señalar es que las ventajas de la Evolución Incremental también son válidas para la Evolución por Niveles. A continuación se presentan las principales características de cada uno de los enfoques evolutivos señalados en esta sección en cuanto a la división del controlador y a las funciones de fitness utilizadas. Tipo de Evolución Función de Fitness Niveles Evolución Monolítica Única Único Evolución Incremental Múltiple Único Evolución Modularizada Única Múltiple Evolución por Niveles Múltiple Múltiple Tabla 1 – Relación entre diferentes tipos de evolución artificial Al realizarse una comparación entre los distintos enfoques, con el objetivo de construir un controlador para un robot móvil que realice fototaxis en un entorno cerrado (sólo en simulación), y con capacidad de aprendizaje durante la vida del controlador, se encontró que la Evolución por Niveles fue más adecuada [Togelius, 2003]. Esto en cuanto al desempeño del controlador en la tarea señalada. Con ello, se investigó de alguna forma y de manera sistemática, aunque incompleta, la temática de escalabilidad en RE. En conclusión, las características asociadas a la afirmación de que la Evolución por Niveles produce resultados más satisfactorios en comparación con otros enfoques evolutivos, puede mencionarse: (a) la incorporación de los beneficios de la definición de niveles relacionados con la evolución incremental, y su repercusión en el alisamiento del fitness landscape. (b) la reducción del tamaño de las redes y su influencia en la velocidad de actualización y la dimensionalidad del espacio de búsqueda; (c) preservación funcional de mecanismos comportamentales ya desarrollados sin que se produzca “desaprendizaje”; (d) robustez a determinadas lesiones del controlador [Nolfi, 2002]; (e) multiplicidad de neuro-controladores en un único controlador; (f) utilización de principios de diseño relacionados con reusabilidad. Finalmente, las objeciones contra la Evolución por Niveles están apuntadas a una perspectiva científica bio-inspirada (sección 2.8.3). 2.7 Ciencia e Ingeniería En ésta sección se expondrán diferentes puntos vinculados a distintos enfoques y conceptos, asociados a desarrollos tanto en ingeniería como en investigaciones científicas sobre los temas del presente trabajo. 2.7.1 Adaptación, Descomposición e Integración La principal estrategia utilizada para diseñar robots móviles ha sido Divide y Conquista: (a) dividir el problema en una lista de pequeños problemas fáciles de resolver; (b) construir un conjunto de módulos o niveles capaces de resolver cada sub-problema; (c) integrar los módulos para resolver el problema general. Desafortunadamente, no es claro cómo un comportamiento que quiere ser obtenido puede ser dividido en sub-comportamientos. Hasta este punto, según la RE, es necesario rever un conjunto de experimentos usando evolución artificial y discutir diferentes características generales. Contexto 23 La primera de las características a señalar, es el hecho de que la evolución artificial es potencialmente más poderosa que el enfoque basado en descomposición e integración [Nolfi, 1998]. Enfoques clásicos en robótica generalmente han asumido un enfoque inicial de división basado en: Percepción, Planning, y Acción. Sin embargo, esta forma de dividir el problema ha producido limitados resultados y varios investigadores, siguiendo la propuesta de Brooks [Brooks, 1986], consideraron a tal división inapropiada. Por esta razón, Brooks propuso un enfoque radicalmente diferente, en el cual la división es lograda a nivel de comportamientos. El comportamiento deseado es dividido en un conjunto de pequeños subcomportamientos, los cuales son activados o suprimidos mediante un mecanismo de coordinación [Arkin, 1998]. Este enfoque ha probado ser más exitoso que el anterior. Sin embargo, aún no se especifica la decisión de cómo particionar un comportamiento en sub-comportamientos simples [Nolfi et al., 2000]. 2.7.2 Descripciones de Comportamientos La razón principal de por qué es difícil dividir un comportamiento en pequeñas piezas simples, se debe a que el comportamiento no sólo es el resultado del sistema de control del robot, sino que también es el resultado de la interacción del robot con su entorno. Para entender mejor esto, es importante distinguir dos formas de describir a un comportamiento. Una descripción del tipo distante o distal description corresponde a aquella referida al punto de vista del observador, en el cual términos de alto nivel, tales como “acercarse” o “discriminar”, son usados para describir los resultados de una secuencia de iteraciones senso-motoras. Por otro lado, una descripción del tipo próxima o proximal description está vinculada al punto de vista del sistema senso-motor del agente, el cual describe cómo un agente reacciona en distintas situaciones sensoriales. espacio motor discriminar acercarse evadir ambiente explorar espacio sensor descripción distante descripción próxima Figura 7 – Tipos de descripciones Es necesario notar que el comportamiento obtenido de una descripción del tipo distante, por ejemplo el comportamiento de exploración, es el resultado no sólo del comportamiento de una descripción del tipo próxima (ej. mapeo senso-motor) sino también del entorno. Concretamente, un comportamiento más preciso vinculado a la descripción del tipo distante, es el resultado de la interacción dinámica entre el agente y su entorno. De hecho, los patrones sensoriales que el ambiente provee al agente determinan en forma parcial las reacciones motoras de éste. Dichas reacciones, a su vez, modifican el entorno o la posición relativa del agente en el ambiente, determinando parcialmente el tipo de patrones sensoriales que el agente recibirá. En general, la división de comportamientos es obtenida en forma intuitiva por el investigador en base a la descripción del comportamiento global de su propio punto de vista (p. ej. desde el punto de vista de una descripción distante). Sin embargo, debido a que el comportamiento deseado es generado de manera emergente a partir de la interacción dinámica entre el sistema de control y el ambiente, es difícil de predecir 24 Contexto qué tipo de comportamiento producirá un determinado sistema de control. La inversa es también cierta: es difícil predecir que sistema de control producirá el comportamiento deseado. O sea, no existe un mapeo directo entre sub -comportamientos del sistema de control del agente y sub-componentes del correspondiente comportamiento (desde el punto de vista de una descripción del tipo distante). Esto significa que no tiene mucho sentido proyectar la descomposición al nivel de descripción distante del sistema de control. La RE, basándose en la evaluación del sistema como un todo y en su comportamiento global, deja en manos del diseñador el problema de decidir cómo particionar un comportamiento en comportamientos simples [Nolfi, 1997]. 2.7.3 Auto-Organización Cuando se observa el comportamiento de un robot que obtuvo su controlador mediante auto-organización, es posible interpretar una secuencia determinada de ciclos senso-motores como un comportamiento distante (distal behavior). Con ello, es posible decir que el robot está inicialmente explorando para luego evadir un obstáculo, etc. En cada paso, el robot tiende a reaccionar para maximizar su oportunidad de producir el comportamiento general buscado. Por ejemplo, cuando el entorno es explorado, el robot intenta maximizar su oportunidad de encontrar patrones sensoriales que sí conoce cómo discriminar. Finalmente, es necesario destacar que la solución proporcionada por la evolución artificial, es cualitativamente diferente de aquellas que pueden ser obtenidas mediante descomposición e integración, o aquellas más generales a través de un diseño parcial o total. En cambio, las estrategias emergentes están basadas en la interacción dinámica robot-entorno y en la interacción entre cómo el robot reacciona en cada posible circunstancia. Esta forma de estrategia es imposible de diseñar de manera pre-fijada dado que surge como resultado de un número grande de interacciones no lineales [Nolfi, 1997][Nolfi, 1996]. 2.7.4 Aprendizaje y Evolución Finalmente, existe una relación entre aprendizaje y evolución, la cual se describe brevemente a continuación: • Son aplicadas diferentes escalas temporales, diferentes mecanismos, con efectos similares [Nolfi et al., 2000] [Sasaki et al., 1997]: como se mencionó oportunamente, el aprendizaje posee la misma función vinculada con la evolución: la adaptación al entorno. El aprendizaje complementa a la evolución en que éste último permite a un organismo adaptarse a los cambios del entorno, los cuales ocurren con mayor rapidez para ser seguidos por la evolución. • Ventajas del aprendizaje en la evolución [Nolfi et al., 2000]: (a) la adaptación a los cambios ocurre más rápidamente en comparación a lo que ocurre a escala generacional; (b) es posible extraer información utilizable en la definición del curso de la evolución; (c) reduce la complejidad genética e incrementa la diversidad de la población. • Costos del aprendizaje en la evolución [Mayley, 1997]: (a) demora la habilidad de lograr la conducta del comportamiento buscado; (b) incrementa la falta de fiabilidad (debido a que son aprendidas cosas erróneas); (c) presencia de daños físicos, pérdidas de energía y seguimiento marcado. • Efecto Baldwin [Baldwin, 1896][Waddington, 1942]: el aprendizaje acelera la evolución debido a que individuos sub-optimales pueden reproducirse, adquiriendo durante su vida las características necesarias para sobrevivir. Sin embargo, el aprendizaje requiere tiempo. Baldwin sugiere que la evolución tiende a seleccionar individuos que poseen al nacer aquellas características útiles que se aprenderían si no se tienen. Este último aspecto del efecto Baldwin, llamado indirectamente “asimilación genética de los rasgos aprendidos”, ha sido avalado mediante evidencia científica y definido por Waddington como “un efecto de canalización”. Baldwin [Baldwin, 1896] describe un mecanismo que sugiere que el aprendizaje individual altera el curso de la evolución. El efecto Baldwin está basado en las siguientes observaciones: (a) si una especie está evolucionando en un ambiente cambiante, habría una presión evolutiva a favor de los individuos con la capacidad de aprender durante su tiempo de vida; (b) aquellos individuos que son capaces de aprender varios Contexto 25 rasgos, dependen menos de su código genético. Como resultado, estos individuos pueden soportar un abanico genético más diverso, basándose en el aprendizaje individual para resolver los rasgos perdidos o no optimizados de su código genético. Este abanico genético diverso, puede a su vez soportar una adaptación por evolución más rápida. Un número especial de Evolutionary Computation [Turney et al., 1997], contiene varios artículos sobre el Efecto Baldwin en los algoritm os genéticos. Por otro lado, y como un interrogante a resolver, si se considera una arquitectura por niveles que contempla aspectos de aprendizaje en lo alto de dicha estructura, y haciendo una analogía de cómo se supone que trabaja el cerebro, ¿sería posible desarrollar mecanismos de aprendizaje asociativos entre niveles? Este interrogante apunta a crear un nivel de control autónomo interno, sometido a un proceso evolutivo capaz de controlar a otros niveles sin ningún tipo de señales externas, como por ejemplo señales por refuerzo. Esto se propone como un trabajo futuro al aquí desarrollado. 2.7.5 El Comportamiento, la Emergencia y el Entorno El comportamiento es un proceso dinámico resultante de interacciones no lineales entre un agente (natural o artificial), su cuerpo, y el ambiente externo (incluyendo su entorno social) [Nolfi et al., 2000]. Por lo tanto, los sistemas comportamentales son difíciles de diseñar desde la perspectiva de un observador externo, y pueden ser efectivamente desarrollados mediante métodos auto-organizados (p. ej. métodos evolutivos artificiales) los cuales permitan descubrir y mantener propiedades comportamentales emergentes de las interacciones entre un agente y el entorno. Secuencias de tales formas de interacción guían a los procesos dinámicos (comportamientos), dónde la contribución de los diferentes aspectos (p. ej. el agente y su entorno) no pueden separarse. Esto implica que aun el conocimiento completo de los elementos que gobiernan las interacciones provee un pequeño impacto en la emergencia de comportamientos a partir de tales interacciones [Maturana et al., 1980]. En este contexto, Nolfi [Nolfi, 2005] utiliza el término “emergencia” para indicar una propiedad resultante de una secuencia de interacciones que pueden ser difícilmente predecidas o inferidas por un observador externo a partir de un conocimiento completo de la interacción de los elementos y de las reglas que gobiernan las interacciones. Más aun, en [Nolfi et al., 2000] se expone que “emergencia” hace referencia a una “solución adaptativa” (un mecanismo o un comportamiento) que no es diseñada o esperada. En definitiva, la relación entre las reglas de interacción y el comportamiento resultante es altamente compleja dado que, cuando las interacciones no son lineales (pequeñas variaciones a nivel reglas de control de dichas interacciones), puede transformarse en formas diferentes de comportamiento debido a un proceso acumulativo y a efectos de amplificación internos al agente. En otras palabras, es posible decir que “el carácter adaptativo de la emergencia de un comportamiento está determinado por la relación agente-entorno, y la adecuación del agente (adaptación) a tal relación, así como a lo percibido a partir de un criterio de adecuación o finalidad del agente” (p. ej. función de fitness). Ejemplos de comportamientos emergentes a partir de soluciones adaptativas en función de la interacción agente-entorno y de interacciones a escala micro-temporal incorporadas dentro del controlador del robot, serán presentadas en el Capítulo 5. Por lo tanto, es posible decir que efectivamente la emergencia de comportamientos depende de la interacción del agente con el entorno, y que en dicho proceso las características adaptativas, ya sea del algoritmo genético utilizado o los mecanismos adaptativos internos del controlador (p. ej. reglas plásticas), permiten la emergencia de comportamientos tal que estén adaptados al entorno [Nolfi, 2005]. 2.8 Evolución Artificial: Implicancias La evolución artificial prescribe una serie de implicancias que van tanto desde la forma en que se desarrolla el proceso de creación de controladores, hasta otros aspectos que se presentarán a continuación. 26 Contexto 2.8.1 Evolución Artificial e Ingeniería Los investigadores en RE, así como también en otras disciplinas, han notado que existen ventajas al dividir un problema en diferentes partes. Ésta es la razón detrás de la evolución incremental, y por ende de la Evolución por Niveles. Ahora, la pregunta a responder es: ¿por qué motivo es conveniente separar un controlador en niveles en vez de evolucionar uno general? Algunas de las razones por las cuales es ventajoso dividir a un controlador son: • Tamaño de las redes con que se trabaja: con esto se logra principalmente disminuir el tiempo de actualización de las redes y de búsqueda genética. Las redes neuronales comúnmente son medidas a través del número de neuronas empleadas, pero el principio fundamental del costo algorítmico es que la complejidad computacional es medida por el número de veces en que la operación más frecuente ocurre [Cormen et al., 2001]. Cuando se modifica una red neuronal, la operación más frecuente, por lo general, es la propagación de una activación a lo largo de las sinapsis correspondientes, existiendo más sinapsis que neuronas en la mayoría de las topologías de redes neuronales. Con lo anterior, no sólo existe el beneficio de la velocidad de modificación al reducir el tamaño de una red neuronal, sino que también existe una influencia significativa en el proceso evolutivo. En efecto, habitualmente, cada genotipo es proporcional al número de neuronas junto con el de sinapsis. Por lo tanto, decrementar la dimensión del espacio de búsqueda es bastante importante en muchos de los algoritmos de aprendizaje clásicos, principalmente para las redes neuronales [Bishop, 1995]. • Diferenciación modular: en estructuras neuronales monolíticas (p. ej. en Evolución Monolítica) es imposible separar las neuronas responsables de un comportamiento en particular de otras [Ziemke, 2000]. Desde esta perspectiva, la Evolución por Niveles presenta dos ventajas sobre la Evolución Incremental. La primera de ellas corresponde a que no se emplean evaluaciones del desempeño (fitness) de la red que ya fue evolucionada. Por otra parte, una ventaja no tan intuitiva y no tan bien corroborada, es indicada por Nolfi [Nolfi, 2003]. En dicho trabajo, se enuncia que si se lesiona en forma estratégica una red neuronal en una estructura monolítica, se podría mejorar su evolución. Presumiblemente, esto se debe a que en una red que ha sido evolucionada durante algún tiempo, no ocurre que los pesos sinápticos asuman valores “significativos” sólo donde las sinapsis estén contribuyendo al mecanismo o a la habilidad buscada, y en forma nula en otro caso, como intuitivamente se asumió. En cambio, se encontró que algunas pocas sinapsis presentaban pesos cercanos a cero. Así, cuando un mecanismo ha sido evolucionado en una red, si algún peso cambia en alguna posición, esto es considerado como una perturbación a dicho mecanismo, pero otro mecanismo podría no evolucionar en la red sin que se modifique algunos pesos sinápticos. De este modo, separar la red en niveles independientes puede ser visto como una estrategia completa de lesión, sólo permitiendo la comunicación entre los niveles en algunos lugares, y de este modo haciendo posible la evolución de nuevas funciones sin perturbar las existentes. • Múltiples tipos de redes en un controlador: diferentes tipos de redes neuronales son utilizadas en RE. En redes monolíticas, como es de esperar, sólo es utilizado un único tipo de red. No obstante, algunos investigadores incorporan características a una red pertenecientes a otras redes [Di Paolo, 2000]. Una arquitectura por capas, posibilita seleccionar el tipo de controlador apropiado para cada nivel. En mayor detalle, en capítulos venideros se describirá como estructurar múltiples redes en un controlador. • Principios de diseño: muchos trabajos han sido desarrollados con la finalidad de investigar principios en ingeniería que permitan, entre otras cosas, escalabilidad. Por lo tanto, y como propone Togelius, es de interés incorporar dichos principios a la investigación dentro de RE. Concretamente, la modularidad ha sido una práctica fundamental en la ingeniería de software y una ventaja que acarrea la modularidad es la reusabilidad. Hoy en día, muchos investigadores del área invierten mucho tiempo en replicar lo que otros han logrado. Es por ello que se espera que en el futuro existan Contexto 27 repositorios modulares de controladores ya evolucionados y que esto se transforme en una práctica útil sobre la cual poder construir nuevos controladores en base a los existentes. 2.8.2 Evolución Artificial y Ciencia En la sección anterior se trato el tema de los aspectos considerados en ingeniería vinculados a arquitecturas de control por niveles. Si bien esto es posible, cabe señalar que la RE es a menudo desarrollada como ciencia más que como ingeniería. Es por ello que es interesante ver cómo la Evolución por Niveles puede ser utilizada como una herramienta científica. Los desarrollos principales dentro de RE (generalmente, Evolución Monolítica) pueden ser vistos como un caso especial de la Evolución por Niveles. Según [Togelius, 2003], todas las investigaciones científicas en RE pueden ser llevadas a cabo con dicho tipo de evolución. De hecho, muchas investigaciones usando las mismas metodologías actualmente vigentes para desarrollos monolíticos, pueden probablemente ser llevadas a cabo con una perspectiva por niveles de evolución, lo cual permitiría investigar comportamientos más complejos. Algunas de las razones por las cuales es conveniente la utilización de la Evolución por Niveles en el ámbito científico, se presentan a continuación: • Niveles Neurofisiológicos: primeramente, es conveniente señalar que existe evidencia de que el sistema nervioso central de los vertebrados está organizado de manera similar a una organización por subsumisión [Prescott et al., 1999]. De este modo, y con una pobre analogía con la realidad, Brooks basó su propuesta de estructurar los controladores de acuerdo a la evolución natural. Las evidencias señalan que el sistema nervioso muestra muchas de las características de una arquitectura por niveles con un orden más o menos claro de niveles desde abajo hacia arriba. Por ejemplo, ha sido demostrado que si se lesionan los niveles superiores en muchos animales vertebrados, se mantienen prácticamente intactos los comportamientos de los niveles inferiores. No obstante, aun no queda en claro el orden en el cual las diferentes partes del cerebro fueron evolucionadas, o si la organización del cerebro es un buen diseño y si la mayoría de los niveles están, o podrían haber sido, evolucionados en forma simultánea. Aquí, la evolución artificial podría ayudar de alguna forma, por ejemplo, buscando si una determinada función es fácilmente evolucionada y/o su desempeño es apropiado. • Niveles comportamentales: desde el enfoque propuesto por la etología, se establece que el comportamiento de los animales está organizado de manera jerárquica. De este modo, se supone que los comportamientos individuales están organizados en sistemas y subsistemas con influencias positivas y negativas entre ellos. Por lo tanto, es de interés general, tanto en el plano práctico como en el teórico, comenzar con el estudio de una arquitectura modelada a partir de la descripción de sistemas comportamentales de determinados organismos y tratar de evolucionar los subsistemas que lo constituyen. 2.8.3 Discusión Como es de esperar, existen algunas objeciones al enfoque propuesto por la Evolución por Niveles. Transcribiendo en algún grado los puntos actuales de discusión e incorporando otros, a continuación son presentadas las objeciones encontradas: • Diseño no restringido: en términos generales, la evolución presupone trabajar sin restricciones o preconceptos del diseño humano. Es por esto que al diseñar explícitamente la arquitectura del controlador mediante la Evolución por Niveles, se interfiere con el precepto de la RE, el cual es: diseño sin restricciones. No obstante, si nunca es controlada la evolución de ciertos comportamientos complejos, no sería posible descubrir alguna solución evolutiva ingeniosa para la producción de dicho comportamiento. 28 Contexto • Evolución Artificial y Natural: la evolución de un comportamiento en forma tradicional según las técnicas de la RE, puede ser considerada como una prueba de que comportamientos similares podrían evolucionar del mismo modo en la naturaleza. La dinámica de la evolución de estos comportamientos puede ser usada como argumento de que la evolución natural de dichos comportamientos presenta una dinámica similar. No obstante, es objetable que la Evolución por Niveles podría no usarse de la misma manera que en el estudio de la evolución natural. En principio, puede que sea improbable evolucionar y combinar distintos niveles en un único mecanismo y que éste emerja espontáneamente. Si bien dicha afirmación tiene algún sentido, se puede argumentar que la evolución por niveles puede generar modelos de la evolución natural de acuerdo a los siguientes principios: (a) mantiene al controlador con una estructura totalmente neuronal dado que no es necesaria lógica pre-especificada (tal como pasa en sistemas basados en reglas); (b) existe una secuencia posible de evolución de los niveles. Ahora bien, según Togelius, se expresa que es posible que un organismo inicialmente se beneficie de la evolución de un determinado comportamiento (p. ej. fototaxis) y luego, cuando se encuentre en entornos más complejos, se generen nuevas situaciones que se manifestarán en nuevos comportamientos a los cuales adaptarse. Con esto, se concluye que si la suma de un nuevo nivel es justificable, la totalidad de la arquitectura también lo es. Pese a esto, el autor del presente trabajo considera que es difícil de concebir que en la naturaleza, como es lógico, se den idealizaciones del entorno. En definitiva, cualquier organismo debe afrontar en toda su vida la confluencia de múltiples acciones que generan diversos comportamientos en forma simultánea, muchos de los cuales pueden o no ser conocidos. Por lo tanto, se concluye que los sistemas naturales son capaces de procesar y evolucionar comportamientos en forma paralela (al igual que ocurren con Evolución Modularizada) junto con la consideración de nuevos comportamientos al estilo de la Evolución por Niveles. • Paralelismo con lo real: según la tradición conexionista, es común modelar funciones cognitivas con redes neuronales de una manera bastante abstracta, sin que se analice si los datos son presentados y extraídos de la red de una manera biológicamente posible. Por ejemplo, en una red que intenta modelar la adquisición del lenguaje, puede estar representada dicha información mediante alguna formalización compleja sin que se sepa a ciencia cierta si esto es posible. En la mayoría de los casos, esto se debe a que se ignora o no se considera qué es lo que ocurre en los sistemas naturales. Ahora, en el caso de que no se conozca qué es lo que sucede en la realidad, es posible abstraerse en algún grado y plantear una solución a un problema, y que en la realidad biológica la tarea sea realizada de forma diferente, en cuyo caso la critica inicial perdura. Analicemos el caso de una red de aprendizaje asociativo, la cual toma por sí misma sus entradas y salidas. Esto, en alguna forma, parece una abstracción y una idealización. No obstante, resuelve en cierta forma el problema del aprendizaje asociativo. Según la solución a este problema presentada por Cliff y Brooks, corresponde a posicionalidad y corporeidad (sección 2.2.1.2) Mediante la conexión de entradas y salidas al mundo físico o a un simulador, es posible, en algún grado, adquirir el significado de los eventos del entorno (aunque parezca poco plausible). Ésta es la idea subyacente en la evolución de redes neuronales, incluyendo a aquellas generadas mediante estructuras por niveles. Con ello, es posible concebir a los agentes o robots como un todo que necesitan estar en contacto con su entorno, lo cual posibilita aprender cuáles son las asociaciones a modelar en su red de aprendizaje asociativo. • Generalidad: como es de esperar, no todos los comportamientos son modelables con un enfoque por niveles. Es por ello que la identificación de los tipos de comportamientos que presentan esta característica es una cuestión interesante de desarrollar y, probablemente, la manera indicada de realizar dicha búsqueda es mediante la Evolución por Niveles. Con ello, es posible que proporcione a su vez una pista sobre dónde buscar la esencia neuronal de dichos comportamientos en la naturaleza. Contexto 2.9 29 Conclusiones En este capítulo se mostraron las principales características que hacen al enfoque de la RE conveniente para el estudio adaptativo del comportamiento en agentes naturales y artificiales. De hecho, se concluye que al usar evolución artificial el rol del diseñador queda limitado a la especificación de la función de fitness para medir la habilidad de un robot para realizar la tarea estipulada. Por lo tanto, desde el enfoque de la ingeniería, la principal ventaja de contar con un proceso autoorganizado es el hecho de que el diseñador no necesita dividir el comportamiento en sub-comportamientos (o módulos) dentro del sistema de control en forma taxativa. Mediante la selección de individuos, y según la habilidad para realizar el comportamiento deseado, los comportamientos complejos pueden emerger de la interacción de simples procesos en el sistema de control y de la interacción entre el robot y su entorno. Desde el punto de vista del estudio de los sistemas naturales y del enfoque científico, la posibilidad de evolucionar robots (los cuales son libres de seleccionar la manera de resolver una tarea), puede ayudar a entender cómo organismos naturales producen comportamientos adaptativos. Finalmente, el esfuerzo por obtener comportamientos complejos escalables puede ayudar a desarrollar hipótesis sobre algunas características de la evolución natural, las cuales a su posibilitará la generación de nuevos desarrollos en RE. Capítulo 3 - HERRAMIENTAS PARA EL DESARROLLO DE CONTROLADORES HERRAMIENTAS PARA EL DESARROLLO DE CONTROLADORES "Un descubrimiento científico nunca es el trabajo de una sola persona." Louis Pasteur 3.1 Introducción La construcción de agentes robóticos es un proceso complejo, debido a que se trata de desarrollar múltiples componentes que presenten características de autonomía, adaptación y robustez. Para permitir la construcción de tales sistemas, se han generado herramientas que facilitan la especificación de componentes de software junto con la coordinación apropiada entre ellos. La mayoría de dichas herramientas, se vinculan a simuladores de modelos robóticos o a interfaces de comandos de control hacia el hardware. Las herramientas existentes permiten construir controladores con las características presentadas en el capítulo anterior: autonomía, evolución simulada, aprendizaje y adaptación, entre otras. Algunas de estas herramientas proveen ambientes visuales de desarrollo e interfaces con el robot real. En este capítulo se describen algunas de las herramientas existentes para desarrollar controladores, con la finalidad de establecer sus principales capacidades e inconvenientes. Este capítulo está organizado de la siguiente manera. La sección 3.2 muestra algunas de las características de los estudios previos. En la sección 3.3 se presenta una breve descripción del hardware del robot Khepera. En la sección 3.4 se exponen las principales características de los simuladores analizados. En la sección 3.5 se detalla el proceso de selección del software con el cual desarrollar experimentos realistas. Finalmente, la sección 3.6 presenta las conclusiones del capítulo. 3.2 Estudios Bibliográficos Previos Al momento de realizar un estudio como el propuesto, es necesario analizar cómo otros trabajos relacionados presentes en la literatura han resuelto el problema de la generación de controladores, y principalmente, cuáles fueron las herramientas y recursos para ello. La temática descrita aquí, se asocia tanto a elementos de software que permiten desarrollar controladores, así como también a estudios abarcativos de construcción de controladores. Se analizaron características generales de cada uno de los trabajos encontrados en la bibliografía disponible, referentes a cómo son generadas las capacidades de cada controlador para resolver el problema de esta aplicación. Esto desde el punto de vista de flexibilidad y robustez. A continuación se describen las características analizadas: • Amplitud de estudio: los estudios desarrollados para la generación de controladores, se han basado principalmente en: (1) análisis específicos sobre aplicaciones particulares o en (2) cuestiones vinculadas a explicar los pasos del desarrollo de controladores. Esto en un contexto abarcativo de propuestas (p. ej. análisis de múltiples configuraciones de controladores). Ejemplos del primer grupo son: [Fernández et al., 32 Herramientas para el Desarrollo de Controladores 2004][Nelson et al., 2004]; en el segundo [Togelius, 2004][Greer, 2002][Maaref et al., 2002][Nolfi et al., 2000][Nolfi, 1999]. En términos generales, los estudios llevados a cabo comparten una característica: estudian un conjunto reducido de alternativas o variaciones de casos de estudio. En consecuencia, a menudo no queda del todo claro cual fue el proceso de selección de las decisiones que ponderaron la utilización de las alternativas seleccionadas. • Experimentos realistas: algunos de los estudios disponibles en la literatura, tratan del desarrollo de controladores que sólo son probados en modelos simulados, sin que se demuestren los resultados del mismo en la realidad. Básicamente, los controladores sometidos a la realidad sufren algún tipo de ajuste, con lo cual la generalización de los resultados obtenidos no son formalmente demostrados en un control real. • Extensibilidad: consiste en la capacidad de rehusar los resultados/estudios en la concreción de las capacidades del controlador. Típicamente, se refiere al potencial de crear un repositorio de controladores. En otras palabras, esto se vincula a identificar si se tiene o no como objetivo la extensibilidad del controlador. • Reusabilidad: corresponde al tipo de desarrollo que se pretende obtener. Particularmente, si se trata de la generación de un conjunto de componentes de software y módulos que facilitan la especificación de nuevos experimentos y resultados. Por ejemplo, una herramienta basada en componentes arquitectónicos reusables, posibilita el uso de tales componentes en futuros estudios. Este tipo de herramientas definen la relación entre componentes y su utilización. De esta manera, se reduce el esfuerzo de diseño e implementación de nuevas funcionalidades. Por lo tanto, ya sean estudios o herramientas, es importante diferenciar si éstos permiten o no reusabilidad. • Herramientas visuales: corresponde a la generación de componentes gráficos (herramientas) que faciliten captar datos y los muestren en forma entendible al programador. De esta manera, el conjunto de herramientas visuales posibilitan la interacción con el usuario para configurar y construir aplicaciones. Por lo tanto, resultan interesantes las herramientas que permiten la adquisición on-line de los datos sensados por el robot en el entorno real. En términos generales, las diferentes herramientas disponibles para la generación de controladores, definen distintos componentes de software responsables de codificar el control a llevar a cabo. Tales componentes pueden ser adaptados o extendidos según las necesidades del programador. Por ejemplo, una herramienta puede permitir que se seleccione el tipo de red neuronal que utilizará el controlador para decidir sus acciones, o posibilitar que el programador desarrolle otros tipos para ser usados en el futuro. Por lo tanto, es posible analizar la flexibilidad de la implementación con respecto de las características del controlador y clasificarlas en las siguientes categorías: • Posibilidad de extensión de componentes: se refiere a que el programador tenga o no que utilizar determinadas características tal como están definidas en la herramienta, sin que exista la posibilidad de utilizar otras, p. ej. tipo de algoritmo genético. • Posibilidad de adaptar componentes: el programador puede adaptar una característica proporcionada por la herramienta, y en especial propiedades predefinidas. Por ejemplo, parámetros propios del controlador neuronal, tal como número de neuronas en la capa oculta. Además, es posible tener una combinación de ambas categorías, por lo que se puede presentar una categoría que permita adaptar y extender componentes de la herramienta. En las siguientes secciones, se describen algunas de las herramientas existentes según las características presentadas en esta sección. Herramientas para el Desarrollo de Controladores 33 3.2.1 Estudio sobre Arquitecturas Homeostáticas El estudio desarrollado por Greer [Greer, 2002] está referido al desarrollo de arquitecturas viables para generar controladores robóticos homeostáticos. Dicho trabajo está basado en trabajos previos tales como [Beer, 1996][Floreano et al., 1998][Di Paolo, 2000], entre otros. El trabajo reporta el desarrollo y análisis de cuatro redes dinámicas evolutivas para control de un robot simulado. Los controladores fueron sometidos a un proceso evolutivo en relación a una tarea de intercepción de objetos, concretam ente pelotas, basada en la definición del problema presentado en [Beer, 1996]. Particularmente, el objetivo fue evaluar la habilidad cognitiva del controlador. En [Greer, 2002] se desarrollaron experimentos con diferentes redes neuronales. Redes del tipo CTRNN y plásticas fueron utilizadas desde una perspectiva dinámica. Además, un tipo de controlador homeostático fue evaluado considerando reglas plásticas. En suma, una extensión de dicho controlador se utilizó de acuerdo a la propuesta de “gas modulation” descrita en [Husbands et al., 1998] a fin de regular el aprendizaje de dicha red. Se encontró que las redes homeostáticas son rápidas de evolucionar y robustas. Además, se observó que fueron capaces de adaptarse a radicales alteraciones senso-motoras. Por otra parte, las redes con modulación del tipo gaseoso mostraron alguna capacidad de re-adaptación a perturbaciones. Finalmente, los resultados se vincularon a consideraciones en el uso del Efecto Baldwin en cuanto a la evolución de controladores, así como también al rol del entorno sobre la adaptación, junto con los diferentes tipos de reglas plásticas dentro de la RE. Según se reporta, los controladores analizados (principalmente los homeostáticos) representan el primer paso al uso de redes homeostáticas para un enfoque corporal del robot, ubicado en el entorno, y dinámico dentro de la RE. Cabe destacar que la mayor limitación del trabajo antes descrito consiste en que no posee ningún resultado experimental vinculado a control robótico real. Como consecuencia de esto, los agentes robóticos construidos siguen patrones de comportamiento sujetos a validaciones futuras. Otra limitación, hasta donde pudo observarse del informe del trabajo, consiste en que no es posible modificar o extender la herramienta propuesta en dicho trabajo. Particularmente, la definición experimental sólo fue enmarcada en un único escenario. Sin embargo, el trabajo estuvo orientado a la realización de pruebas con múltiples configuraciones de controladores en una tarea simple (Minimal Cognitive Behavior [Slocum et al., 2000]), lo cual dio, en cierto modo, claridad a los resultados obtenidos. 3.2.2 Estudio sobre Tareas Específicas El trabajo presentado en [Dale, 1994], está orientado a estudiar e investigar la utilización de algoritmos genéticos en la evolución de neuro-controladores, en cuanto a tareas específicas a ser realizadas por robots. En ello se emplearon técnicas formalizadas por [Holland, 1975] buscando diferentes métodos de codificación para representar redes neuronales en un genoma, con el objetivo de encontrar los mejores controladores al momento de llevar a cabo la tarea de vigilancia de zona o “comportamiento de perro guardián”. Una desventaja del trabajo presentado en esta sección consiste en que el controlador es relativamente simple de obtener, por lo que resulta un análisis poco desarrollado en cuanto a generación de controladores se refiere. Además, no se estudia un conjunto de controladores a fin de identificar cual es el tipo de controlador que mejor se adapta a la situación a resolver. En suma, no se propone ningún tipo de metodología o herramienta que permita la generación de nuevos experimentos a partir de los mostrados. Sin embargo, se exhibe un análisis básico y de interés ante alteraciones en los sensores (ruido). 34 Herramientas para el Desarrollo de Controladores 3.2.3 Estudio sobre Arquitecturas Evolutivas En [Togelius, 2003], y posteriormente en [Togelius, 2004], se presentó el enfoque evolutivo llamado Evolución por Niveles para control robótico mediante evolución artificial. El mismo, introduce características de la Arquitectura por Subsumisión [Brooks, 1986] dentro del área denominada Robótica Evolutiva [Nolfi et al., 2000]. Además, se presenta el problema desde dos perspectivas: la ingenieril y la científica. El estudio analizado es usado para la construcción de un controlador por niveles sobre un robot simulado, el cual aprende a distinguir cuál fuente de luz es la apropiada para aproximarse en un entorno con obstáculos. Dentro de dicho estudio, se presenta una comparación empírica con respecto a otras formas de evolución: Evolución Monolítica (Monolithic Evolution), Evolución Incremental (Incremental Evolution) [Gómez et al., 1996][Urzelai et al., 1999][Blynel et al., 2003], y Evolución Modularizada (Modularised Evolution) [Nolfi, 1997][Calabretta et al., 2000]. Los resultad os reportados argumentan que la Evolución por Niveles provee un enfoque superior a las otras alternativas de evolución. Si bien los resultados son de gran interés, principalmente desde la perspectiva de escalabilidad de comportamientos, no se presenta un estudio significativo que contemple multiplicidad de controladores analizados y variedad de situaciones a resolver. Principalmente, el mayor inconveniente surge en que durante el proceso evolutivo se utiliza un entorno simulado simple, junto con su respectivo modelo de robot, sin que en etapas posteriores se realice ningún tipo de comprobación en un entorno real. En suma, no se especifica claramente cuál fue el desempeño del robot simulado a la hora de presentar estrategias en su desempeño, p. ej. evasión de obstáculos. 3.2.4 Estudios sobre Robótica Evolutiva El trabajo de Nolfi y Floreano [Nolfi et al., 2000] representa uno de los trabajos más completos dentro del área de RE sobre el desarrollo de controladores robóticos (principalmente neuronales). El mismo corresponde a un libro el cual describe los conceptos básicos y metodologías evolutivas, así como algunos de los resultados publicados en la literatura. Una característica importante de remarcar de dicho trabajo, es que presenta un conjunto de experimentos empíricos de manera incremental, tanto a nivel simulado como a nivel robot real. Principalmente, los resultados apuntan a pruebas sobre robots Khepera , pero también sobre otras configuraciones robóticas. Además, está disponible una versión gráfica de un simulador de manera gratuita [Evorobot, 2000], la cual permite al lector replicar y variar acotadamente algunos de los experimentos presentados en dicho trabajo. No obstante, tal simulador no corresponde a un entorno de desarrollo de controladores robóticos. De todas maneras, el estudio en sí representa una de las mejores fuentes de consulta dentro de la RE. 3.2.5 Estudios sobre Exploración en Navegación El trabajo [Nelson et al., 2004] muestra resultados generados dentro de RE en entornos simulados junto con entornos reales en un contexto neuronal. Particularmente, se muestra la forma de producir controladores que resuelven la tarea de búsqueda en un laberinto, junto con el comportamiento de exploración utilizando sensores binarios de tacto como entradas. Si bien existe un considerable número de investigaciones experimentales y demostraciones dentro de la RE aplicada a control, es de creciente interés la investigación sobre la generación de comportamientos básicos, tal como la evasión de obstáculos y búsqueda de objetivo. Es por dicho motivo que se propone en tal trabajo estudiar cómo generar neuro-controladores como paradigma de evolución. Para ello se afronta el desarrollo de redes neuronales complejas, para luego implementarlas en robots reales de manera rápida y eficiente. En consecuencia, el estudio se focaliza en pruebas con una colonia de ocho robots con avanzadas habilidades de computación y comunicación. Herramientas para el Desarrollo de Controladores 35 Tanto el desarrollo simulado como el real, está abocado a la definición y entrenamiento de una arquitectura específica de red neuronal, la cual incluye múltiples niveles ocultos, variaciones temporales internas, y conexiones recurrentes. En cuanto al robot físico, fue orientado a maximizar el poder computacional y de comunicación, mientras que se trató de minimizar el tamaño, peso y consumo de energía. El proceso de simulación fue desarrollado en Matlab. El estudio planteado presupone diferentes requerimientos, tanto a nivel hardware como software (debido este último al poder computacional). En general, si bien se plantea un estudio completo y de interés para el desarrollo de un tipo específico de controlador, no se plantea una herramienta que permita al diseñador extender y adaptar componentes en función de sus necesidades. 3.2.6 Estudios sobre Navegación por Sensores En [Maaref et al., 2002] es presentado un estudio vinculado a navegación de un robot móvil tanto en un entorno conocido como en uno desconocido. El método de navegación en un entorno desconocido está basado en la combinación de elementos comportamentales. Muchos de esos comportamientos son desarrollados mediante un sistema de inferencia difuso. La navegación propuesta combina dos tipos de comportamientos de evasión de obstáculos, uno para obstáculos convexos y otro para cóncavos. Considerando un entorno no conocido, el sistema de inferencia difuso utilizado para generar comportamientos elementales (tal como seguimiento de paredes), es simple y natural. Sin embargo, está basado en el conocimiento del diseñador, por lo cual se lo considera sub-optimal. Dado esto, se argumenta que su utilización es provechosa. Por otra parte, se presenta una técnica basada en el algoritmo de back-propagation (véase [Haykin, 1999]). Dicha técnica permite optimización on-line de los parámetros del sistema difuso mediante la minimización de la función de costo. Además, considerando entornos parcialmente conocidos, se desarrolla una estrategia de navegación a través de la memorización del entorno recorrido. Ambas situaciones, navegación en entornos conocidos como parcialmente conocidos, han sido implementadas considerando un modelo de robot Khepera equipado con sensores de precisión limitada. Dado el desempeño del robot en cuanto a navegación, se argumenta que las reglas difusas son robustas a las imperfecciones de los sensores. Como uno de los inconvenientes encontrados en el estudio analizado, es que el mismo presupone un alto nivel de conocimiento por parte del diseñador para la definición experimental y del controlador. No obstante, provee un interesante marco experimental vinculado a navegación de un robot móvil. 3.3 El Robot Khepera El Khepera es un robot con fines educativos y de investigación el cual es desarrollado y manufacturado por la compañía suiza K-Team. Las imágenes que se mostrarán en esta sección son obtenidas del sitio oficial de K-Team (www.k-team.com). 36 Herramientas para el Desarrollo de Controladores (1) LEDs; (2) Conector serial (S); (3) Botón reset; (4) Jumpers para selección del modo de ejecución; (5) Sensores de proximidad infra-rojo; (6) Conector de recarga de batería; (7) Switch de encendido de batería; (8) Segundo botón de reset Figura 8 – Representación genérica del robot real [Khepera, 1999] Las dimensiones del robot corresponden a 60 mm. de diámetro, 30 mm. de alto y su peso es de 80 gr. El mismo está equipado con una memoria UV EPROM junto con un pequeño sistema operativo. Además, cuenta con un procesador Motorota 68311 de 16 Mhz. de 256 Kb. de RAM. Dicho robot se vincula con el entorno mediante 8 sensores infra-rojos con un rango de medición de 50 mm., y se comunica con una computadora mediante un puerto serial standard de 38400 baudios o mediante una torreta de radio (RS-232 por puerto serie). Posee dos motores (uno por cada rueda) los cuales le otorgan una velocidad mínima de 0.02 metros por segundo, teniendo una cota superior de 0.6 metros por segundo, y un brazo opcional (gripper arms). El entorno por defecto para aplicaciones autónomas es el KTProject y el GNU C Cross Compiller. El robot Khepera puede tener a su vez un equipamiento adicional con un rango extenso de accesorios, los cuales van desde pinzas para agarrar objetos hasta componentes de video. 3.4 Software de Simulación Existe un amplio rango de software de simulación para el hardware del robot Khepera. A grandes rasgos, se distinguen dos categorías de simuladores: una esta basada en software encapsulado y la otra esta referida a aplicaciones de código abierto. La primera de las categorías es utilizada para simular y reemplazar la necesidad de acceder a hardware real, en vez de ser usada en desarrollos a medida (stand-alone). En tanto, en el segundo grupo se presenta el mayor número de aplicaciones existentes y provee características especiales para llevar a cabo análisis matemáticos y simulaciones a partir del criterio de “código abierto”. A continuación se presenta una breve descripción de algunos simuladores disponibles. 3.4.1 KIKS – Kiks Is a Khepera Simulator El simulador denominado KIKS (Kiks Is a Khepera Simulator) corresponde a un software director vinculado a MatLab, el cual simula la versión Khepera I y II de dicho robot. KIKS fue originalmente realizado como una tesis de la Universidad de Umea [Storm, 2003]. Herramientas para el Desarrollo de Controladores 37 Figura 9 – Interfaz principal del simulador KIKS (Kiks Is a Khepera Simulator) Como se puede ver en la Figura 9, KIKS provee una interfaz gráfica al usuario apropiada para la correcta supervisión durante la generación del controlador. 3.4.2 Evorobot Evorobot [Evorobot, 2000] es un simulador complejo de Khepera, el cual incluye una interfaz gráfica de usuario bajo Windows 95/98/NT. Evorobot permite ejecutar una serie de experimentos con evolución artificial tanto a nivel simulador como a nivel robot real. El paquete Evorobot consiste en un archivo zipeado conteniendo un ejecutable, el manual en formato postcript, los archivos fuente (archivos *.c, *.h, *.rc), y un conjunto de archivos de ejemplo (*.cf, *.env, *.sam) que permiten replicar experimentos descritos en determinadas secciones del trabajo de Nolfi et al. [Nolfi et al., 2000]. Si bien la herramienta que permite replicar diferentes experimentos es de utilidad para generar experimentos, no corresponde a un entorno de desarrollo de controladores robóticos en su totalidad. 3.4.3 Webots El simulador denominado Webots es creado y mantenido por la empresa Cyberbotics, una compañía que produce simuladores robóticos [Webots, 2002]. Las aplicaciones con Webots posibilitan construir controladores en el lenguaje de programación C/C++. Dicho controlador puede ser transferido posteriormente al hardware real del robot. El simulador muestra un espacio tri-dimensional, pero la visualización puede ser cambiada a un modo de ejecución rápido. Controlando la rapidez de la simulación mediante la interacción con la computadora. Esta característica es útil especialmente cuando se realiza un proceso de testing. Como una de las desventajas registradas de este simulador, se puede mencionar que no es de libre distribución, ni de código libre. 38 Herramientas para el Desarrollo de Controladores Figura 10 – Interfaz principal del simulador Webots Probablemente es el producto más completo pero también de carácter comercial (la versión “Pro” cuesta unos 1500 €). Es un entorno que posibilita la construcción de prototipos, el modelado, la programación y la simulación de robots móviles en los lenguajes C, C++ y Java. Soporta la transferencia de los controladores desarrollados a varios modelos de robots reales como: Aibo , Lego Mindstorms, Khepera, Koala y Hemisson. 3.4.4 WSU Java Simulator El simulador WSU Java Simulator está desarrollado en lenguaje JAVA vinculado al modelo de robot Khepera [Gallagher, 1999]. El simulador modela un simple robot que opera en un área de 4x4 pies con la opción de muros reconfigurables, objetos y pelotas móviles, junto con fuentes de luz fijas. A su vez, las tenazas (gripper arms) son modeladas para otorgar movimientos de manipulación de objetos en el entorno. Figura 11 – Interfaz principal del simulador WSU Java Simulator Este simulador, desarrollado por la universidad de Wright State (WSU), permite que los controladores creados en la plataforma puedan ejecutarse en un robot Khepera sólo en la versión 7.0. Su documentación es muy escasa (escasísima). Es sencillo de utilizar. Básicamente el controlador es un thread que se ejecuta constantemente. A su vez es posible controlar el robot a través de los actuadores. 3.4.5 YAKS – Yet Another Khepera Simulator YAKS (Yet Another Khepera Simulator) [Karlson, 2002] es un simulador de Khepera de código libre, el cual soporta Win32, Linux, controladores C++, etc. YAKS utiliza valores sensados pre-registrados de un Herramientas para el Desarrollo de Controladores 39 robot real. Esto es realizado para proveer velocidades de simulación del orden de las 3600 unidades de velocidad (tiempo). Dicho simulador soporta sensores infra-rojos, sensores de luz, un componente de visión K213, pinzas, y más. El mismo, posee una interfaz GTK, Open GL acceleration y permite la coordinación de múltiples robots. (a) (b) Figura 12 – Interfaz principal del simulador YAKS. (a) visión 2D; (b) Open GL acceleration Al simulador es posible realizarle una modificación en cuanto a su forma de control. Se ha modificado para permitir que sea controlado a través de otro programa independiente, utilizando los mismos comandos que el robot real6. 3.5 Selección del Software de Simulación El desarrollo de experimentos con un tipo de robot móvil, herramientas y técnicas implicadas, debe ser evaluado para encontrar los componentes que más se adapten a los requerimientos necesarios. En especial, esto debe ser decidido a partir del simulador de software a utilizar, las arquitecturas de control más apropiadas, y las características de diseño a ser consideradas. La presente sección describe la selección del simulador a ser utilizado en la etapa final de desarrollo de un controlador neuronal, partiendo de un proceso de clasificación de las características de cada simulador. Por lo tanto, una evaluación y selección de los simuladores robóticos es presentada a continuación. Para dar comienzo al proceso de clasificación, es posible decir que es preferible seleccionar un software de simulación que ofrezca la posibilidad de trabajar con el robot Khepera sin tener acceso directo a su versión hardware. Esto se debe a que se requiere que la abstracción del modelo permita un manejo de alto nivel en los comand os de control. Un simulador que pueda modelar el hardware del robot, con la particularidad de correr en diferentes sistemas operativos, y de código abierto, es preferible a aquellos que no lo provean. Los diferentes simuladores mencionados anteriormente, son comparados en esta sección. La siguiente tabla resume las principales diferencias en cuanto a las aplicaciones de simulación [Skånhaug, 2003]. Algunas de estas diferencias están basadas en experiencias desarrolladas, lectura de los manuales respectivos y búsquedas de experiencias en Internet. En los casos que así se lo marque, no se conocen las prestaciones del simulador. 6 El mísmo puede obtenerse en http://www.dc.uba.ar/people/materias/robotica/yaks (Grupo de Inteligencia Computacional Aplicada a Robótica Cooperativa (GICARC) – FCEN - (UBA) Universidad de Buenos Aires, Argentina). Modo rápido de simulación Código libre Linux compatible Windows compatible Código del controlador Soporte de posición Visión WSU 6.4 no java no no si si no - java no 2D WSU 7.0 no java no si si si no - java no 2D KIKS no MatLab si si si si si - ? si 2D Webots si C/C++ si no si si no - C/C++ si 3D Evorobot no C/C++ si si no si no - Especial ? 2D Yaks no C/C++ si si si si no - C/C++ ? 3D Yaks Modificado no C/C++ si si si si no - Java C/C++ ? 3D Simulador Requiere otro software Limitado al hardware del Khepera Lenguaje de programación Herramientas para el Desarrollo de Controladores Comercial 40 Tabla 2 – Matriz de características de los simuladores analizados Para seleccionar la conveniencia de las diferentes características, en el proceso de evaluación se dio prioridad a aquellas según el siguiente criterio. Se ponderó con 0 cuando no sean de interés para el estudio planteado en este trabajo; con 1 si presenta algo de importancia; con 2 si es realmente importante; y con 3 sí es crucial. Característica Prioridad Código del controlador Código libre Comercial Compatibilidad Linux Compatibilidad Windows Lenguaje de programación Java No requiere otro software Soporte de posicionado Visual Limitado al hardware Khepera Modo de ejecución rápido 3 3 3 2 2 2 2 2 2 0 0 Tabla 3 – Matriz de características priorizadas La tabla que a continuación se presenta, muestra los resultados luego del proceso de ponderación de las diferentes características analizadas. El simulador que se seleccionará será aquel con mayor puntaje. Visión Resultados 2 0 2 0 0 1 2 12 WSU 7.0 3 2 0 3 2 2 2 0 0 1 2 17 KIKS 3 0 0 2 2 2 0 0 2 0 2 13 Webots 3 0 0 0 2 2 2 0 2 2 2 15 Evorobot 3 0 0 2 0 2 2 0 0 0 2 11 Yaks 3 0 0 3 2 2 2 0 0 1 2 14 Yaks Modificado 3 0 0 3 2 2 2 0 0 3 2 17 Código del controlador 0 Soporte de posición 0 Windows compatible Requiere otro software Limitado al hardware del Khepera 2 Modo rápido de simulación 3 Simulador Leguaje de programación WSU 6.4 Comercial Linux compatible 41 Código libre Herramientas para el Desarrollo de Controladores Tabla 4 – Matriz de características priorizadas según la ponderación de cada controlador Si bien la comparación de los controladores arroja una ponderación equivalente entre WSU 7.0 y Yaks modificado, se selecciona a éste último como mejor alternativa. Esto se debe a que permite una comunicación simple de realizar con el robot real. Además, presenta la particularidad de programar el controlador en diferentes lenguajes y comunicar las acciones de control por el puerto de comunicación serie. Al modificar el simulador YAKS la idea fue que éste acepte, a través de un socket TCP/IP, el mismo protocolo que los robots Khepera reales para el control remoto vía serie o radio. El simulador Yaks modificado, provee una interfaz gráfica para el control básico del robot simulado, p. ej. inicio y fin de la ejecución y posicionamiento del robot en el entorno. Si bien la creación de escenarios es poco amistosa para el usuario (dado que se realiza mediante la edición de un archivo de configuración), su utilización es simple de realizar. 3.5.1 Herramientas de Software y Técnicas La documentación, diseño, desarrollo y testing de los diferentes experimentos a generar, requiere de la utilización de diversas herramientas de software. Para ello, se ha evaluado la utilización de algunas de ellas en función de la experiencia y el contexto a ser desarrollado. A continuación se presenta cuál fue la selección de herramientas para cada característica implicada. 42 Herramientas para el Desarrollo de Controladores Características Software/Técnica Documentación Microsoft Word XP Codificación Borland JBuilder 7.0 Enterprise Edition Compilación JDK 1.3.1 Testing YAKS modificado Modelamiento UML Lenguaje de Programación Java Tabla 5 – Herramientas de software y técnicas utilizadas 3.6 Conclusiones [Maaref et al., 2002] [Nelson et al., 2004] Características [Nolfi et al., 2000] [Togelius, 2003] [Dale, 1994] [Greer, 2002] En las secciones anteriores se describieron y analizaron algunos de los estudios encontrados en la literatura para construir controladores robóticos, según los criterios definidos en la sección 3.2. La tabla que a continuación se muestra resume las características encontradas de los estudios previamente mencionados, según la flexibilidad de la herramienta y los resultados implementados. Amplitud de estudio ••• • ••• ••• •• ••• Experimentos realistas --- --- --- ••• ••• ••• Extensibilidad •• --- ••• ••• --- --- Reusabilidad --- --- ••• --- --- --- Herramientas visuales --- --- • •• --- --- Herramienta de generación --- --- +++ ++ --- --- Alcance de los estudios: (•) Mínima consideración. ( ••) Consideración media. (•••) Alta consideración. Alcance de la herramienta: (+) Posibilidad de extensión de componentes. (++) Posibilidad de adaptar componentes. (+++) Posibilidad de adaptar y extender componentes. Tabla 6 – Características de los estudios analizados Como es posible observar en la tabla anterior, existe un grupo de estudios vinculados a aplicaciones concretas para el desarrollo de controladores, mientras que otro se asocia a estudios abarcativos incluyendo Herramientas para el Desarrollo de Controladores 43 un planteo de herramientas que permita adaptar y extender tales desarrollos. En cuanto al primer grupo, el programador es responsable de diseñar y materializar todos los componentes de un controlador y del experimento a resolver, sin utilizar en algunos casos una herramienta de soporte genérico. En cambio, en el segundo grupo existe una herramienta que permite que el diseñador especifique componentes a partir de los existentes. Es deseable que una herramienta de desarrollo de controladores se enmarque dentro del segundo grupo, prescribiendo la estructura general de los elementos a ser considerados en la definición del controlador y de los experimentos a desarrollar. A la vez, debe ofrecer flexibilidad y adaptabilidad a los diferentes dominios de aplicación. En general, la extensibilidad tanto a nivel de definición de la especificación del controlador como a nivel experimento, sólo es tratado en forma parcial o acotadamente en la mayoría de los trabajos analizados. Con respecto a las capacidades de las herramientas desarrolladas para la generación de controladores, existen temas que no son tratados. Algunos de ellos son: • No poseen mecanismos genéricos para representar asociaciones de componentes para el desarrollo de pruebas experimentales: la representación del entorno (simulado o real), y tipo de controlador, como así también otros componentes de un experimento, deberían ser especificados de manera general, aportando a la herramienta reusabilidad de componentes. De este modo, un conjunto de componentes podría estar disponible para varios experimentos. • No se considera la reusabilidad de controladores: la definición de controladores optimales para resolver una tarea en particular, puede ser de gran interés para la resolución de sub -tareas en otros experimentos. Los puntos antes señalados, no siempre son contemplados en el desarrollo de aplicaciones o estudios dentro de RE, y en especial en el desarrollo de neuro-controladores mediante evolución simulada. Ambos puntos son de gran interés para los requerimientos de herramientas genéricas que posibiliten realizar estudios abarcativos y aplicados de controladores. La tabla que a continuación se presenta muestra las principales características de las herramientas analizadas. Simulador Tipo de estudio Objetivo Tipo de controlador Tipo de herramienta Lenguaje de desarrollo [Greer, 2002] Estudio comparativo, controladores homeostáticos, minimal cognitive behavior Estudios sobre homeostasis Neuronal monolítico No corresponde C/C++ [Dale, 1994] Estudio aplicado, controlador simple Controlador de propósito específico Neuronal monolítico No corresponde C [Togelius, 2003] Estudio comparativo, definición de componentes extensibles Comparación evolutiva, escalabilidad de comportamientos Neuronal monolítico, modular y por niveles Basado en reglas de coordinación de comportamientos Java 44 Herramientas para el Desarrollo de Controladores Estudio abarcativo, Robótica Evolutiva Abarcamiento temático dentro de RE No específico Herramienta de demostración configurable No específico Estudio aplicado, neuro [Nelson et al., 2004] controlador extenso Navegación por sensores Neuronal monolítico No corresponde MatLab Estudio [Maaref et al., 2002] aplicado, Lógica Difusa Navegación según sistema difuso Difuso No corresponde C++ [Nolfi et al., 2000] Tabla 7 – Objetivos de diseño y otras características de los estudios y herramientas analizadas En este capítulo se presentaron algunos estudios y herramientas para el desarrollo de controladores de robots móviles. En el capítulo siguiente se describen los experimentos preliminares desarrollados en este trabajo. Capítulo 4 - MÉTODO EXPERIMENTAL MÉTODO EXPERIMENTAL "El verdadero premio del científico está en hacer buenos experimentos, no en los premios que se le otorgan" Luis F. Leloir 4.1 Introducción En el capítulo anterior se describieron y analizaron trabajos existentes vinculados al desarrollo de controladores robóticos basados en redes neuronales. Dichos trabajos posibilitaron desarrollar aplicaciones de software que implementan los conceptos descriptos en el Capítulo 2. Como se demuestra en la bibliografía propuesta, el análisis de módulos que implementen comportamientos simples de manera eficiente, permite construir controladores a partir de la unión de dichos módulos, escalando comportamientos. De esta manera, se logra especializar controladores simples en un comportamiento específico dentro de un dominio de aplicación concreto. En el presente capítulo se describe el desarrollo de cinco controladores aplicados a un sistema adaptativo-evolutivo de control, especializados en navegación autónoma de un robot móvil. Los detalles de la tarea a resolver, así como de la morfología de los controladores y del robot, son descritos en este capítulo. Seguidamente, se describirá el Algoritmo Genético utilizado para evolucionar a los controladores. Las diferentes secciones muestran las características más relevantes de los cinco tipos de redes neuronales implementados: Feed-Forward Neural Network (FFNN), Recurrent Feed-Forward Neural Network (RFFNN), Continuous-Time Recurrent Neural Network (CTRNN), Plastic Neural Network (PNN) y Homeostatic Plastic Neural Network (HPNN). Cabe destacar que se referenciarán a los distintos neuro-controladores con el nombre del tipo de red neuronal que los implementa. A continuación se describe la organización del capítulo. En la sección 4.2 se presenta brevemente el método experimental propuesto para la generación de controladores simples. Principalmente, en dicha sección se describe el algoritmo genético utilizado y la implementación de los neuro-controladores responsables de la especialización de los comportamientos. La sección 4.3 enuncia brevemente las tareas a resolver por los controladores con el fin de evaluar el desempeño de cada uno de ellos. Finalmente, se presentan las conclusiones del capítulo en la sección 4.4. 4.2 Método Experimental Las redes neuronales descritas en esta sección implican diferentes métodos de control al momento de definir un neuro-controlador. No obstante, las tareas para las cuales ellos fueron generados son las mismas de prueba en prueba. De manera similar, el robot simulado fue idéntico para cada experimento durante un conjunto de operaciones, aunque algunas modificaciones fueron hechas en aquellas experiencias que se indiquen sobre el controlador y en el entorno. Con el objetivo de probar cual es el tipo de neuro-controlador más apropiado para cada tarea, y con la finalidad de obtener un controlador confiable (mediante la emergencia de comportamientos) con las características de robustez y adaptabilidad, se procede a comparar diferentes tipos de controladores. 46 Método Experimental Característica del Método Descripción Motivaciones Obtención de controladores optimales asociados a comportam ientos simples mediante un controlador monolítico en un proceso evolutivo. Búsqueda del mejor neuro-controlador para cada tarea simple según los criterios de robustez y adaptabilidad. Hipótesis a probar La evolución artificial permite obtener controladores adaptativos optimales para cada comportamiento simple. Metodología • Experimentación con neuro-controladores del tipo FFNN, RFFNN, CTRNN, PNN, HPNN. • Comportamientos a realizar: evasión de obstáculos, fototaxis, y aprendizaje durante la vida del controlador. Verificación Experimental: Simulador (simple). Experimentos Combinación de los diferentes neuro-controladores y distintos comportamientos simples. Configuración experimental Véase tablas del Capítulo 4. Resultados obtenidos Véase tablas del Capítulo 5. Tabla 8 – Resumen del método experimental utilizado para el desarrollo de las pruebas con controladores monolíticos Por otra parte, los comportamientos que serán expuestos en este capítulo son de interés general, debido a que están presentes en muchos de los problemas vinculados a navegación autónoma y aprendizaje. Si bien dichos comportamientos ya fueron tratados en la literatura, se busca con el estudio planteado la obtención empírica de resultados, tratando de que éstos sean independientes, en algún grado, de cualquier otro supuesto observado en la literatura. En suma, el estudio planteado representa un desafío relevante de ser llevado a cabo, dado que los comportamientos que involucran aprendizaje son usualmente difíciles de evolucionar (véase [Tuci et al., 2003][Yamauchi et al., 1994]). A modo de resumen, en la Tabla 8 se presentan los distintos puntos considerados en el método experimental propuesto. 4.2.1 Entorno Simulado El entorno simulado corresponde a un área predefinida donde el robot puede moverse libremente en el plano horizontal. Los movimientos fueron controlados por dos actuadores ideales mediante la salida de una red neuronal (véase Figura 20). La velocidad del agente robótico fue determinada sumando la salida total de los actuadores a una constante predefinida (δ), siendo ésta nula cuando el robot está en la posición objetivo. La dirección del robot fue generada mediante la diferencia de la salida de los nodos que controlan a los actuadores (nodos motores). Un valor negativo de la diferencia antes señalada indica un movimiento hacia la derecha, mientras que uno positivo hacia la izquierda. Por lo tanto, la velocidad del agente se mantuvo en el rango [(-2+δ); (2+δ)] u/t 7 mientras que la dirección de desviación del robot se estableció en el rango [-2; 2] radianes. 7 Las unidades u/t (p. ej. metros sobre segundos) son usadas hipotéticamente para todas las descripciones de los controladores, con el fin de lograr una consistencia en relación al simulador. Sin embargo, debe aclararse que las escalas de objetos del simulador no tiene relación con el mundo real, por lo que las unidades usadas son arbitrarias. Método Experimental 47 A su vez en el ambiente, puede incorporarse un número de objetos aleatoriamente ubicados, además de distintos puntos u objetivos que el robot debe alcanzar. Estos corresponden a objetos simulados representando fuentes de luz de distintos colores. Como características relevantes a señalar, puede decirse que las fuentes de luz no tienen tamaño ni extensión. Por otro lado, los obstáculos son representados mediante áreas rectangulares de tamaño fijo. Las especificaciones del entorno se asocian al trabajo descrito en la sección 3.2.3, a fin de comparar resultados con dicho trabajo. La ubicación aleatoria de los diferentes componentes y del robot tiene por finalidad no permitir que el controlador neuronal evolucione con una influencia no deseada de la configuración del entorno. Por ejemplo que la ubicación de las fuentes de luz esté a la misma distancia unas de otras en todas las pruebas, ocasiona un acostumbramiento del controlador en cada evaluación. De esta forma, es posible decir que se busca que el controlador final presente robustez en cuanto al comportamiento requerido. Una forma de lograr esto es aleatorizando la ubicación de los componentes a lo largo del proceso evolutivo. 4.2.2 Modelo Robótico: Modelo Simple El agente robótico simulado, o simplemente robot, en el presente trabajo está representado mediante un área circular. La misma posee una proporción menor con respecto del área de los obstáculos, siendo ésta de 50%. Las principales características físicas del robot real Khepera® se incluyeron en el modelo, teniendo en cuenta la forma, la cantidad de actuadores (ruedas) y sensores. Dicho modelo sirve inicialmente como base de comparación con los trabajos estudiados de otros autores, aunque posteriormente se utilizará un modelo más complejo de robot. Concretamente, el robot fue modelado mediante dos ruedas tractoras paralelamente ubicadas a ambos lados del cuerpo del robot. Las mismas, permiten simular un movimiento hacia adelante o atrás de manera independiente entre sí. Por lo tanto, esto otorga al robot la posibilidad de movimientos rectilíneos, como así también movimientos curvilíneos con variaciones angulares en el rango [0°; 360°]. Parámetro ν = χ + (νm1+νm2)/2 µ = ƒ(V0, … ,V8) ∆x = ν.sen(µ).∆t ∆y = ν.cos(µ).∆t Referencia • ƒ , diferencia de las salidas (mi) generadas por el neuro-controlador dependiente de las entradas de la red neuronal • µ, diferencia entre la salidas del neuro-controlador expresando el ángulo de desviación • ∆t, diferencial de tiempo igual a 1 • ν, velocidad lineal • χ, velocidad de referencia Tabla 9 – Representación del modelo de los actuadores A su vez, y como otra de las características respetadas para la comparación de resultados, se propuso que cada vez que el robot se acerque al borde del área (ambiente simulado), se corrige la dirección del robot para que evada tal situación. Esto ocurre cuando el robot no posee sensores de evasión de obstáculos (p. ej. tarea de fototaxis simple que posteriormente se detallará). Dicha corrección está determinada por el ángulo de incidencia original (ángulo entre el robot y la pared), pero con la componente invertida del eje perpendicular a la pared. Esto simula que el robot evade los muros del entorno, posibilitando que el mismo no se quede inmovilizado en el borde del área simulada. 48 Método Experimental Otro de los componentes modelados fueron los sensores8 del robot. La salida de cada medición realizada en el Khepera real, corresponde a un valor analógico convertido a un valor digital mediante un conversor A/D de 10 bits en el rango [0; 1023]. Dicho rango de medición fue mantenido o normalizado en el rango [0, 1] cuando así se lo indique en las pruebas experimentales desarrolladas en el presente trabajo. Más concretamente, se especificaron dos tipos de funcionalidad para dichos sensores: como sensores lumínicos, los cuales captan la intensidad de la luz emitida por las fuentes de luz simulada, y como sensores de obstáculos. Por otra parte, para el sensado de obstáculos se presenta una salida proporcional a la distancia relativa a un objeto en la dirección donde se enfoca el sensor, estando la salida condicionada a que la distancia entre el sensor y el obstáculo no sea superior a una distancia prefijada. En la figura que a continuación se muestra (Figura 13), se representa la distribución de los sensores infra-rojos utilizados. Figura 13 – Distribución de los sensores infra-rojos del robot real Khepera® [Khepera, 1999] Figura 14 – Medición típica de la luz ambiental por la distancia a una fuente de luz de 1 Watt para el robot Khepera® real 8 Figura 15 – Medición de la luz ambiental versus la distancia a una fuente de luz para el modelo simulado simple. Si bien el Khepera ® cuenta con un tipo de sensor infrarrojo, el conjunto de sensores puede utilizarse para captar obstáculos (emitiendo infrarrojo y captando la magnitud de dicha emisión reflejada en el entorno), o para cuantificar la cantidad de luz infrarroja proveniente del entorno (captación de todo estímulo infrarrojo del entorno pero sin que exista algún tipo de emisión del sensor). Método Experimental Figura 16 – Respuesta típica del sensor de proximidad para un obstáculo (7 mm. de ancho) a una distancia de 15 mm. La medición está dada versus el ángulo entre la orientación frontal del robot y la orientación del obstáculo 49 Figura 17 – Respuesta del sensor de proximidad para un obstáculo ubicado a 15 unidades de longitud. La medición está dada por el ángulo entre la orientación frontal del sensor y la orientación del obstáculo para el simulador simple El sensado infra-rojo de luz, está modelado para que capten un determinado color según la fuente de luz objetivo. Se modela el valor de salida del sensor de manera que esté negativamente correlacionado el ángulo de incidencia de un sensor y el ángulo relativo a la fuente de luz. En pocas palabras, el valor sensado es inversamente proporcional a la distancia. En la Figura 15 se muestra la representación de la medición del sensor simulado. En tal figura, se grafica el rango de valores posibles encerrados entre dos rectas: la superior expresa los valores medidos cuando el valor de incidencia (ángulo) de la luz hacia el sensor es mínimo; la recta inferior señala los valores máximos en función de la distancia, siendo 1 el valor de representación de oscuridad y 0 el valor máximo de luz. El rango dentro del cual cada sensor capta la señal de entrada, es de 30º. Además, en las figuras restantes que se presentan a continuación, se grafican algunas características del sensado del robot simulado respecto del real. Figura 18 – Perfil de velocidad utilizado para alcanzar la posición objetivo con una aceleración fija (acc) y velocidad máxima (max. speed) en el robot real Khepera® Figura 19 – Perfil de velocidad utilizado para alcanzar la posición objetivo con una velocidad máxima (max. speed) en el robot simulado El neuro-controlador propuesto en este trabajo engloba distintos tipos de topologías neuronales) posee entre sensores y actuadores un conjunto de nodos interconectados o neuronas artificiales. Éstas serán especializadas de acuerdo con las características que se mostrarán para cada red neuronal implementada. Los nodos internos de la red procesan inicialmente la información proporcionada por los sensores (V1…V8 de la 50 Método Experimental Figura 20), y luego los de la capa oculta (ni), devolviendo una señal de control hacia los actuadores m1 y m2 (o nodos motores). n1 V0 n2 V1 V2 V3 n3 m1 V4 V5 m2 n4 V6 V7 n5 V8 n6 Figura 20 – Diagrama esquemático de la conectividad de neuronal genérica (2 nodos motores, 6 nodos ocultos, 8 nodos de entrada, y 1 entrada adicional) y calculo del computo realizado por la salida de cada neurona En la figura anterior, cada señal de entrada x i es multiplicada por el correspondiente peso de conexión wij y los resultados son sumados entre si. Luego, la entrada de la red es pasada por una función de activación σ cuya salida puede implicar la consideración de umbrales (Figura 20). La morfología del controlador de la Figura 19 fue razonablemente estricta, pero los métodos para establecer los pesos sinápticos (o pesos entre nodos), y el cálculo de la conectividad de los nodos, difirió considerablemente entre los controladores analizados. nodos motores nodos de entrada nodos intermedios … 0 1 2 … … 9 10 … n offset Figura 21 – Representación genética de las sinapsis de un nodo para los experimentos sobre la evolución de los genes Método Experimental 51 El software desarrollado para modelar estructuras neuronales en el presente trabajo, soporta varios tipos de redes neuronales, especialmente las totalmente interconectadas. Como ejemplo de esto, es posible decir que para una red como la señalada en la Figura 20 con 8 neuronas de entrada, 1 entrada adicional, 6 intermedias y 2 de salida, su representación genotípica genérica consta de un total de 172 genes9. Cabe destacar que los pesos que interconectan dos neuronas son los mismos en el presente trabajo. En otras palabras, el peso wij es el mismo que el wji para todas las interconexiones. Figura 22 – Diagrama UML de clases del modelo de red neuronal implementado. Las implementaciones de redes neuronales asociadas a los distintos tipos de redes, son representadas por diferentes clases de software. Tales clases son instancias de una clase abstracta denominada network mostrada en la Figura 22. 4.2.3 Algoritmo Genético En todos los experimentos que serán descritos en este capítulo, se usará un Algoritmo Genético semejante al propuesto por Harvey [Harvey, 1992]10 para generar la evolución de las soluciones (controladores neuronales). Mediante la utilización de este método, cada individuo corresponde a un controlador vinculado a la representación específica de una red neuronal. Con esto, los individuos fueron seleccionados más frecuentemente a medida que presentaban un mejor desempeño o mayor valor de la función de fitness. En la implementación desarrollada, la población consistió de 30 individuos. En cada generación, cada individuo o genotipo, fue evaluado en cuanto a su desempeño en una tarea determinada dentro del entorno. Según el desempeño observado, a cada genotipo se le asigna una puntuación o medida de fitness que sirve para obtener una escala de comparación. Luego, aquellos genotipos que estaban ranqueados en la parte inferior de dicha escala (mitad inferior), son descartados como individuos en la próxima generación, siendo reemplazados por copias de los individuos de la parte superior. Luego, todos los individuos, excepto los cinco primeros sufrieron mutaciones. 9 El cálculo es el siguente: 9 neuronas de entrada * 6 neuronas intermedias + 6 neuronas intermedias * (9+6+2) neuronas + 2 neuronas de salida * (6 +2) neuronas. 10 SAGA – Species Adaptation Genetic Algorithm. Una forma de evolución artificial caracterizada por una población que se mueve en un espacio genético mediante mutaciones graduales, en vez de efectos por crossover, logrando una convergencia paulatina (incremental) y una evolución neutral (véase [Nolfi et al., 2000, Cap. 2]) 52 Método Experimental Figura 23 – Diagrama UML de clases del modelo genético implementado. La clase genotype mostrada en la Figura 23 es responsable de modelar la funcionalidad de un genotipo genérico. Típicamente, las instancias de dicha clase implementan la lógica interna de un genoma asociado a un tipo de red neuronal, y en especial al tipo de codificación genética a representar. Cabe mencionar que una instancia genotípica debe implementar métodos tales como clonar y mutar un gen dentro del genoma. En cuanto al modelo del algoritmo genético utilizado, vale destacar que la descendencia de un par de individuos puede tener una representación cercana a sus predecesores. En tal sistema es mantenida la diversidad genética en una población debido a que, aún si el valor de fitness es grande, la descendencia no puede reemplazar soluciones espacialmente distantes. Por lo tanto, diferentes soluciones o alternativas de resolución de una misma tarea son generadas en cada prueba sólo seleccionando las que mejor resuelven un problema determinado. En todos los casos, la evolución de los controladores utilizó los datos mostrados en la tabla que a continuación se presenta. Parámetro Cantidad de neuronas de entrada11 Cantidad de neuronas ocultas12 Cantidad de neuronas de salida Modelo de selección Modelo simulado13 Nivel de ruido en los sensores Número de corridas (runs) Número de iteraciones por corrida Número de generaciones Número de objetos en el entorno Población inicial Rango de pesos sinápticos Rango inicial de pesos sinápticos 14 Porcentaje de selección Tasa de mutación Valor 8 (+1 entrada adicional) 6 2 Elitismo (5 primeros) Simple --10 200 300 0 (Fototaxis|aprendizaje.) 10 (Evasión de obst) Aleatoria [-1; 1] [0; 0.01] ó [-1; 1] 50% 5% 11 La entrada adicional sólo es utilizada cuando así se lo indique. 12 El número de nodos en la capa oculta fue obtenido mediante un proceso de prueba y error previo a la realización del presente trabajo. En esto fueron considerados resultados experimentales anteriores (véase [Fernández et al., 2004]). 13 Simulador basado en descripciones del trabajo [Togelius, 2004], con la incorporación de mejoras en cuanto a su desempeño. 14 El rango [0; 0.01] sólo válido para las redes plásticas. Método Experimental 53 Rango de sensores de luz Rango de sensores de proximidad Tamaño de la población Tipo de función de activación Tipo de mutación Tipo de selección [0; 1] [0; 1] 30 Sigmoide (tangencial) Uniforme Ranking Tabla 10 – Configuración utilizada en los experimentos con evolución simulada Inicialmente, la población fue generada de manera aleatoria y la medida de fitness de cad a controlador fue evaluada aun cuando el fitness de la población comienza a converger a un valor estable, los controladores con un valor ligeramente alto de fitness fueron considerados en próximas generaciones. Por otra parte, al momento de mapear el genotipo al fenotipo, se usó uno de dos métodos posibles de codificación. En el primer caso, cada gen actúa como un selector entre diferentes valores posibles (p. ej. una de cuatro reglas de plasticidad sinápticas). En dicho caso, el operador de la división modular (el resto entero de una división) fue usado para extraer el valor requerido. El segundo método de codificación se utilizó cuando el fenotipo requirió que un valor real sea extraído del genotipo, por lo que el valor del gen fue mapeado dentro del rango del parámetro al cual representa. En la Figura 24, se muestra el diagrama de clases desarrollado encargado de modelar la funcionalidad de un Algoritmo Genético. Dicho modelo sólo define el comportamiento básico, mientras que las instancias asociadas a dicha clase implementan la funcionalidad deseada. Es decir, el modelo no define las operaciones inherentes al algoritmo genético tales como la función de fitness y mutación. Las operaciones serán desarrolladas en las instancias asociadas con la clase GeneticAlgorithm. Figura 24 – Diagrama UML de clases del modelo de algoritmo genético implementado. Un proceso de selección por ranking fue usado a fin de obtener individuos a ser reproducidos [Goldberg, 1989]. Mutación, pero no crossover, se utilizó como operador genético ante cada nueva descendencia. La tasa de mutación utilizada al cabo de todos los experimentos fue, en promedio 15, 14.5 mutaciones por cromosoma. La mutación consistió en modificar aleatoriamente los genes de los individuos usando una tasa de variación del 5%, o sea que sólo dicho porcentaje influencia la modificación de un gen 15 Considerando todas las representaciones implementadas. 54 Método Experimental dentro de un rango de valores permitidos. De esta manera, se obtiene que en el caso de tener una red neuronal con veinte sinapsis, en promedio, existe una sinapsis modificada en cada generación. Usando el criterio de mutación propuesto, se logra que los individuos con buen desempeño en la generación anterior pasen a la generación siguiente incorporando variaciones con alta probabilidad de que presenten un desempeño aceptable en la próxima evaluación. A menos que se especifique lo contrario, la evolución en las pruebas llevadas a cabo corresponde a un total de 300 generaciones, y en cada una de ellas se evalúan 30 genomas. Además, el número de veces que cada uno de los genomas es evaluado en una determinada generación, corresponde a 10 corridas, usando la medida del mejor fitness como ranking entre los individuos. En cada corrida la red fue modificada y el robot realizó la tarea especificada un número de 200 veces para cada prueba. 4.2.4 Neuro-Controladores Realizar el seteo de los pesos de un neuro-controlador en forma no automática, no es una tarea simple de llevar a cabo en la mayoría de las redes. Afortunadamente, distintas técnicas han sido desarrolladas para permitir que las propias redes ajusten sus pesos de manera automática. Esto se realiza para producir los mapeos de entrada-salida buscados. Particularmente, el trabajo propuesto se refiere al aprendizaje no supervisado [Haykin, 1999], en el cual no es necesario ningún tipo de señal de supervisión. Cabe aclarar que no se desarrolla una exposición de cómo es el proceso de cálculo de cada una de las redes. No obstante, se deja constancia para el lector interesado referencias bibliográficas para tal fin. Como se mencionó previamente, la mayoría de los experimentos en RE utilizan neuro-controladores. Una de las principales razones es que permiten distintos niveles de adaptación: filogenético (phylogenetic) llevado a cabo en la evolución; generacional (developmental) durante la maduración del controlador; ontogenético (ontogenetic) realizado a escala de vida del controlador. Por otra parte, son estructuras robustas al ruido y viables para soportar comportamientos adaptativos [Nolfi et al., 2000, Cap. 2]. En la Figura 25 se muestra un diagrama UML con las principales clases involucradas en la creación de los diferentes tipos de neuro-controladores implementados, mediante la definición de distintas redes neuronales. En dicho modelo, sólo se define las características mínimas que un neuro-controlador debe presentar. Es decir, existe un conjunto de instancias del modelo que implementan la funcionalidad propia de un tipo de red neuronal. Figura 25 – Diagrama UML de clases del modelo de red neuronal genérico implementado. Método Experimental 55 Por otra parte, en este capítulo podrán verse dos tipos de codificación genética de neurocontroladores: codificación de sinapsis y codificación de nodos [Floreano et al., 1999b]16. En la primera de ellas, son codificados en forma individual tanto los valores de los pesos sinápticos, como así también las reglas de adaptación, si las hubiere. Por el contrario, en la codificación de los nodos sólo se representan las propiedades inherentes a cada uno de ellos. Seguidamente, se mostrarán las características principales de cada controlador. 4.2.4.1 Controlador Feed-Forward Neural Network (FFNN) La primera arquitectura utilizada para controlar los robots fue una red Feed-Forward (FFNN) o una red del tipo multi-layer perceptron (MLP) [Haykin, 1999]. Este controlador neuronal se refiere a una arquitectura no recurrente y corresponde a una red simple, la cual produce una señal de salida en respuesta directa al rango de lectura de los sensores. En términos de evolución, sólo los pesos de la red fueron evolucionados de manera similar a la desarrollada en [Floreano et al., 1999]. El MLP posee una función del tipo sigmoide en cada unidad o neurona (Figura 26) [Haykin, 1999]. En esta arquitectura, los pesos de las conexiones sinápticas quedan fijos luego de que sea creada la red neuronal (fenotipo). Esto se refiere a que los pesos sinápticos no son modificados durante la vida del controlador. Particularmente, tal tipo de red se enmarca en una instancia simple de controlador no adaptativo a nivel fenotipo. No obstante, el proceso evolutivo, mediante la selección del más apto, encuentra soluciones apropiadas a la tarea a desarrollar [Fernández et al., 2004]. Función de Activación Dinámica • Tipo umbral (sigmoide σ(x)=tgh(x)) con salidas en [-1,1] • Sincrónica, actualización total de los estados de cada neurona. • No existe adaptación de los pesos sinápticos. Arquitectura • Red multicapa (3 capas): entrada, oculta y salida (no recurrente en cada nivel). • wii=0 y wij=wji para todas las capas • conexión entre niveles: entrada-oculta, y oculta-salida. Aprendizaje • Sin aprendizaje asociado a la actualización sináptica. Tabla 11 – Resumen de las características del modelo de red FFNN implementado Cabe mencionar que la salida de cada nodo está inspirada en la propuesta de McCulloch y Pitts [McCulloch et al., 1943], y posteriormente descrito en [Haykin, 1994] desde una perspectiva orientada a ingeniería. Una vez que el proceso evolutivo determina los pesos de cada conexión sináptica, la morfología de la red no cambia durante la vida del agente, estando cada uno de estos valores representado por un valor real. La salida de un nodo está dada por la función tgh(x) la cual es la función sigmoide tangencial (o tangente hiperbólica) estándar según: −x e j −e j x −x e j +e j x σ ( x j ) = tgh( x j ) = (Ecuación 1) La estructura de datos del cromosoma mostrado en la Tabla 12, representa un controlador como el especificado en [Floreano et al., 1999b] para controladores genéticamente determinados, como en el caso de las redes 16 Codificación de sinapsis es también conocida como “codificación directa” [Yao, 1993]. 56 Método Experimental FFNN y RFFNN (un signo y una magnitud de peso para cada sinapsis). Cabe aclarar que para controladores de sinapsis adaptables (p. ej. PNN) se especificará lo propio en secciones venideras. Figura 26 – Representación de la salida proporcionada por la función sigmoide tangencial implementada. Codificación del genotipo FFNN, RFFNN y CTRNN Codificación para una sinapsis signo peso sináptico Tabla 12 – Codificación genética de los parámetros de evolución vinculados a las sinapsis de las redes FFNN, RFFNN y CTRNN (controlador genéticamente determinado) Cada nodo motor en una representación del tipo FFNN (con 8 neuronas de entrada, 6 ocultas, y 2 neuronas de salida o motoras) requiere 6 genes para su descripción, mientras que los nodos internos necesitan 10, y para los nodos de entrada son requeridos 6 genes (Figura 27). En cuanto a la codificación total de la red (genotipo), se necesitan 120 genes17 o codificaciones sinápticas totales, con pesos sinápticos iguales a cero cuando así lo requiera la topología de la red (al igual que ocurre con las diferentes topologías neuronales que se presentarán). 17 El cálculo es el siguente: 8 neuronas de entrada * 6 neuronas intermedias + 6 neuronas intermedias * (8+2) neuronas + 2 neuronas de salida * 6 neuronas intermedias. Método Experimental 57 n1 V1 n2 V2 V3 n3 V4 m1 V5 V6 n4 V7 V8 m2 n5 n6 Figura 27 – Diagrama esquemático de la conectividad entre las capas entrada-oculta y oculta-salida de la red tipo FFNN Por lo tanto, el resultado de la codificación del genotipo genérico vinculado a las FFNN es la siguiente para cada nodo18: (wm1, wm2, wv1, …, wv8, wn1, …, wn6) donde m indica motor, n corresponde a un nodo de la capa oculta, y v indica una entrada; w indica el peso sináptico. Cabe aclarar que existirán pesos sinápticos iguales a cero cuando no existan conexiones establecidas entre los nodos de la red. En experimentos con redes del tipo FFNN que no se vinculan con evolución, es común encontrar una entrada adicional con una constante positiva conectada a la red, la cual permite tener un valor de salida positivo aun cuando ninguna de las entradas “reales” sea positiva. Esto no es realizado en el presente trabajo. No obstante, se adiciona un valor predefinido a la velocidad final del robot para proporcionar movimiento en todo momento de la experimentación. Por lo tanto, es posible decir que cada neurona de salida posee una unidad adicional de “bias” (o umbral) debido a que en una arquitectura como la presentada, esto provee algún tipo de respuesta, aún cuando no existan entradas sensoras. No obstante, dicho valor no es incorporado dentro del valor a ser procesado por σ(x), sino que es una constante externa. Como una de las características a destacar de este tipo de red es que una MLP con una capa oculta y neuronas de salida lineales, constituye un aproximador universal de funciones [Haykin, 1999]. 18 Los valores de los pesos sinápticos corresponden a valores reales con signo, y están asociados a la codificación genérica de una red totalmente recurrente. Esto se realiza para obtener con la misma estructura capacidad de representación múltiple. 58 Método Experimental 4.2.4.2 Controlador Recurrent Feed-Forward Neural Network (RFFNN) La red que aquí se describe corresponde a una red del tipo multi-layer perceptron con unidades sigmoides continuas. La capa oculta consiste en un número de neuronas con conexiones recurrentes [Elman, 1990]. A diferencia de la red del tipo FFNN, la RFFNN presenta la posibilidad, al igual que la mayoría de las redes recurrentes, de desarrollar un procesamiento temporal. Las conexiones recurrentes posibilitan que la red “recuerde” una acción previa19. De acuerdo con [Nelson et al., 2004], los controladores que hacen uso de información temporal poseen el potencial de desarrollar un control co mpletamente reactivo considerando simples sensores en los robots. Según se expresa en [Urzelai, 2000], las arquitecturas recurrentes muestran una dinámica dependiente del tiempo más compleja que aquellas asociadas a las redes del tipo FFNN. Por lo tanto, las características señaladas para las FFNN (Tabla 12), son utilizadas para la definición de los controladores RFFNN con la excepción de la codificación de la topología de la red. Cada nodo de entrada requiere 6 genes para su descripción, 8 genes los nodos de salida, mientras que los nodos internos necesitan 16 para describir los pesos adicionales requeridos. n1 V1 n2 V2 V3 n3 V4 m1 V5 V6 n4 V7 V8 m2 n5 n6 Figura 28 – Diagrama esquemático de la conectividad entre las capas entrada-oculta y oculta-salida de la red tipo RFFNN A diferencia de la red FFNN, la característica distintiva de las RFFNN (Figura 28) es la recurrencia en la capa oculta, por lo que para todo peso w ocurre que wii ≠ 0 en dicha capa como así también en la capa de salida. En suma, las demás características señaladas para las FFNN, se mantienen inalteradas. Por lo tanto, se necesitan 160 genes20 para la representación sináptica total a nivel genotipo. 19 Esto en realidad depende del grado de recursión presente en la red. 20 El cálculo es el siguente: 8 neuronas de entrada * 6 neuronas intermedias + 6 neuronas intermedias * (8+6+2) neuronas + 2 neuronas de salida * (6+2) neuronas. Método Experimental 4.2.4.3 59 Controlador Continuous-Time Recurrent Neural Network (CTRNN) Una de las arquitecturas utilizadas para controlar a los agentes fue una red neuronal recurrente de tiempo continuo, o de aquí en más Continuous-Time Recurrent Neural Network (CTRNN). Con este tipo de arquitectura, los pesos que gobiernan las conexiones entre los nodos son genéticamente determinados y permanecen fijos en el fenotipo. Una vez configurada, la morfología de la red no cambia a través del tiempo de vida del agente. Cada nodo posee además un umbral o bias, una ganancia, y una constante de tiempo. Cada uno de estos valores está representado por un valor real. Dicha morfología, en un contexto diferente, es similar a la descrita por Beer [Beer, 1996]. Debido a que las unidades individuales o nodos pueden tener diferentes constantes temporales, la dinámica de tal tipo de red puede volverse compleja. Es por este motivo que en la literatura es estudiada en forma extensa. Cada nodo en la red utiliza la siguiente ecuación para modificar su estado: τ⋅ dy = τ ⋅ ∆y = − y j + dt N ∑w j =1 ji ⋅ σ (g j ( y j + θ j )) + I i i = 1,..., N (Ecuación 2) donde por analogía con las neuronas reales, y es el estado de cada nodo; τ es la constante de tiempo que define la tasa de decaimiento de la actividad del nodo; yi es la activación del nodo en cuestión; wji es el peso que define el grado de conexión desde el nodo i al nodo j; gj es la ganancia de la señal de entrada (gj ∈[-1; 1]) y θj es el bias en dicho nodo (θj ∈[-1; 1]); Ii es la señal de entrada de los sensores. No obstante, debe aclararse que para los nodos motores, el término I es ignorado dado que dichos nodos no reciben entradas provenientes del entorno. La salida de cada nodo está dada por la Ecuación 1. Con una complejidad temporal mayor, es posible decir que las conexiones recurrentes y las entradas son continuamente integradas sobre una constante de tiempoτ. La función sigmoide actúa como límite de cada nodo, lo cual asegura que el valor de salida de cada nodo sea como máximo 1 y como mínimo -1, sin importar los valores de activación superiores o inferiores a tales límites. La ecuación que a continuación se presenta, muestra la tasa de variación de cada nodo por unidad de tiempo. El intervalo mínimo de simulación fue especificado en 0.1 segundos. De este modo, la ecuación de modificación de cada nodo fue calculada usando la integración de Euler: y t +1 = y t + 0. 1⋅ ∆y (Ecuación 3) Básicamente, la ecuación es un integrador con pérdida, la cual suma las entradas en una variable interna que decae exponencialmente cuando no recibe entrada. No obstante la posible combinación de distintas constantes de tiempo, permite que la red CTRNN tenga una dinámica mucho más compleja que las redes conexionistas tradicionales. La interpretación biológica es que la variable y es el potencial de membrana que puede cambiar su polarización y consecuentemente la probabilidad de que la neurona emita salida. Pero estas redes no modelan las salidas en sí, sino directamente la tasa de disparo o firing rate que se obtiene aplicando la función sigmoide al potencial de membrana desplazado por el bias. Para este tipo de red (Tabla 13), cada nodo intermedio requiere 19 genes para su descripción genérica, mientras que los nodos de entrada necesitan 9 genes y los de salida 11 genes para describir los pesos adicionales requeridos (incluyendo τj, gj, θj), resultando en una codificación genérica como la siguiente: (τ, g, θ, wm1, wm2, wv1, …, wv8, wn1, …, w n6) donde m indica motor, n un nodo, y v indica una entrada. Por lo tanto, se obtiene un genotipo para de 208 genes21 para representar la red. 21 El cálculo es el siguente: 8 neuronas de entrada * (6 neuronas intermedias + 3 parámetros) + 6 neuronas intermedias * ((8+6+2) neuronas +3 parámetros) + 2 neuronas de salida * ((6+2) neuronas + 3 parámetros). 60 Método Experimental Figura 29 – Variación de las reglas de Hebb en función del peso sináptico [Urzelai, 2000] Neurona • Tipo umbral (sigmoide σ(x)=tgh(x)) con salidas en [-1,1] Dinámica • Sincrónica, actualización total de los estados de cada neurona. • No existe adaptación de los pesos sinápticos. • Dinámica temporal (Ecuación 2). Arquitectura • Red multicapa (3 capas): entrada, oculta y salida (recurrente en el nivel oculto y de salida). • wii=0 sólo para la capa de entrada y wij=wji para todas las capas. • Conexión entre niveles: entrada-oculta, y oculta-salida. Aprendizaje • Sin aprendizaje asociado a la actualización sináptica. Tabla 13 – Resumen de las características del modelo de red CTRNN implementado La topología de la red es similar a la señalada en la Figura 20. La codificación genérica corresponde a la mostrada para los controladores genéticamente determinados (Tabla 12) con la incorporación de los parámetros antes mencionados, propios de la CTRNN. 4.2.4.4 Controlador Plastic Neural Network (PNN) Las redes neuronales plásticas o PNN, en contraste con las redes del tipo FFNN, RFFNN, y CTRNN, no poseen pesos genéticamente determinados gobernando las conexiones entre los nodos en el proceso evolutivo. Por el contrario, cada conexión posee una regla y una tasa de variación plástica, y los pesos son modificados durante el tiempo de vida del agente. Este tipo de red, tal como se planteó en el presente trabajo, utilizó, al igual que las redes anteriores, una función sigmoide del tipo tangencial (tgh(x)). Método Experimental 61 Debido a que se pretende obtener comportamientos reactivos mediante la variación (ajuste) de pesos sinápticos, se implementaron redes neuronales plásticas donde cada sinapsis es capaz de variar según las actividades de las neuronas que conecta: pre-sináptica y post-sináptica. Una neurona post-sináptica se refiere a que la misma está ubicada en el extremo final de la sinapsis que conecta a dos neuronas, mientras que la neurona que se encuentra al inicio de dicha sinapsis, o neurona que genera el impulso en la sinapsis, se denomina neurona pre-sináptica. La red PNN descrita aquí es similar a la presentada por Floreano y Mondada [Floreano et al., 1998]. Las reglas plásticas, así como también la tasa de plasticidad, fueron definidas genéticamente en forma simultánea. A diferencia con la CTRNN, los nodos de la PNN, no poseen umbrales o bias, constantes temporales, ni ganancias. Los pesos fueron modificados en cada paso de tiempo según la siguiente regla: wijt = wijt −1 + η ⋅ ∆wijt (Ecuación 4) donde η es la tasa de cambio plástico para cada conexión. La tasa de cambio plástico puede estar dentro del rango [0; 1], lo cual está genéticamente determinado. El valor ∆wt fue calculado mediante una de las cuatro reglas plásticas que se presentan a continuación, y la especificación de cuál regla utilizar para cada conexión también fue determinada genéticamente: • Regla Plana Hebbiana (Plain Hebb): esta regla pondera la eficacia entre un nodo y otro si el nodo presináptico presenta su salida al mismo momento que lo hace el nodo post-sináptico. Esta regla no permite que la conexión sea subsecuentemente debilitada si los dos nodos no presentan sus salidas en forma simultánea: ( ) ∆wt = 1 − wt −1 xy (Ecuación 5) donde ∆w se refiere a la variación del peso sináptico; w es el valor actual del peso; x es el valor de activación pre-sináptico; y es el valor de activación post-sináptico. • Regla Post-sináptica (Postsynaptic): Esta regla está compuesta por dos términos. El primero debilita la conexión entre dos nodos si el nodo post-sináptico está presentando su salida pero el presináptico no. El segundo término, es el mismo que para la regla Plana Hebbiana. ( ) ∆wt = wt −1 y( x − 1) + 1 − wt −1 xy • Regla Pre-Sináptica (Presynaptic): es similar a la regla post-sináptica pero el primer término causa que la conexión entre dos nodos sea debilitada si el nodo pre-sináptico presenta su salida pero el postsináptico no: ( ) ∆wt = wt −1x ( y − 1) + 1 − wt−1 xy • (Ecuación 6) (Ecuación 7) Covarianza (Covariance): esta regla sólo incrementa la eficacia de la conexión si la diferencia entre las salidas pre-sinápticas y post-sinápticas es menor que la mitad del máximo valor de salida en ambos nodos: ( ) 1 − wt −1 F ( x, y ) si ⋅ F ( x, y ) > 0 ∆wt = t −1 otro w F ( x, y) (Ecuación 8) F ( x, y ) = tanh(4 ⋅ (1 − x − y ) − 2 ) tanh( x) = e x − e− x e x + e− x donde F(x, y) es la medida de la diferencia entre la actividad pre-sináptica y la post-sináptica; F(x, y)>0 ocurre cuando la diferencia es mayor o igual a 0.5 (mitad de la activación del máximo valor) y F(x, y)<0 si la diferencia es inferior a 0.5. 62 Método Experimental Neurona • Tipo umbral (sigmoide σ(x)=tgh(x)) con salidas en [-1,1] Dinámica • Sincrónica, actualización total de los estados de cada neurona. • Adaptación de los pesos sinápticos mediante reglas de Hebb. Arquitectura • Red multicapa (3 capas): entrada, oculta y salida (recurrente en el nivel oculto y de salida). • wii=0 sólo para la capa de entrada y wij=wji para todas las capas. • Conexión entre niveles: entrada-oculta, y oculta-salida. Aprendizaje • Aprendizaje asociado a la actualización sináptica. Tabla 14 – Resumen de las características del modelo de red PNN implementado La estructura de datos del cromosoma mostrado en la tabla siguiente, representa un controlador como el especificado en [Floreano et al., 1999b] o controlador de sinapsis adaptables. Por otra parte, la topología de la red corresponde a la señalada para las CTRNN. Codificación del genotipo PNN y HPNN Codificación para una sinapsis signo regla de Hebb tasa de aprendizaje (η) Tabla 15 – Codificación genética de los parámetros de evolución vinculados a las sinapsis de las redes PNN y HPNN (controlador por sinapsis adaptativas) Al comienzo de cada período durante la vida del controlador, cada uno de los pesos en la red fue determinado aleatoriamente en el rango [0; 0.01]. Por lo tanto, las reglas plásticas causaron cambios espontáneos a los pesos según la especificación de una de las cuatro reglas plásticas antes señaladas. El genotipo para un nodo en este tipo de red es señalado a continuación (codificación genérica): (r m1, em1, sm1, r m2, em2, sm2, rv1, ev1, sv1, ..., r v8, ev8, sv8, r n1, en1, sn1, ..., r n6, en6, sn6) donde r indica una regla plástica; e es la magnitud de la tasa plástica de cambio o tasa de aprendizaje (η); s es el signo de conexión, el cual pudo no cambiar a lo largo de la vida del agente. Al igual que para la CTRNN, el subíndice m indica motor, n especifica nodo de la capa oculta, y v señala una entrada. Esto resulta en un genotipo de longitud de 48 genes para los nodos internos, 24 genes para los nodos motores y 18 genes para los nodos de las entradas, dando un total de 480 genes22 por genotipo para representar a la totalidad de la red. Debido a que los pesos sinápticos fueron inicializados en un pequeño valor distinto de cero en el fenotipo, el comportamiento de un agente no fue conocido hasta que ellos fuesen especificados. Esto se debe a que sólo se conocía durante el proceso evolutivo las reglas sinápticas. Por tal razón, cada agente fue evaluado en diferentes oportunidades, y al comienzo de cada tiempo de vida, los pesos fueron reinicializados a pequeños valores aleatorios. 22 El cálculo es el siguente: 8 neuronas de entrada * (6 neuronas intermedias * 3 parámetros) + 6 neuronas intermedias * ((8+6+2) neuronas * 3 parámetros) + 2 neuronas de salida * ((6+2) neuronas * 3 parámetros). Método Experimental 4.2.4.5 63 Controlador Homeostatic Plastic Neural Network (HPNN) El controlador que se describirá aquí, fue inspirado por la red homeostática propuesta por Ashby [Ashby, 1960], y por trabajos más recientes enmarcados dentro de la evolución de agentes homeostáticos, los cuales realizaban fototaxis de acuerdo a lo especificado por Di Paolo [Di Paolo, 2000]. Los pesos de esta red homeostática fueron controlados por el mismo conjunto de reglas Hebbianas utilizadas para las redes plásticas (véase sección anterior). De igual manera las tasas de plasticidad fueron determinadas genéticamente. No obstante, en contraste con las redes PNN, los pesos no cambiaron de forma continua a lo largo del tiempo de vida del agente. Figura 30 – Representación de la salida proporcionada por la función sigmoide utilizada por la HPNN. Las líneas en ±0.00001, las cuales sólo son relevantes para las redes homeostáticas, representan los umbrales homeostáticos. Del mismo modo que para las redes plásticas, los pesos de la red HPNN fueron inicializados a pequeños valores aleatorios en el rango [0; 0.01]. Además, los pesos pudieron ser modificados por varias razones. Primero, sus magnitudes sufrían continuos cambios durante los primeros 20 instantes de tiempo de la vida del agente. Esta etapa representó un período de desarrollo ontogenético, como puede verse en el desarrollo de sistemas biológicos, durante el cual los agentes establecen un conjunto de pesos sinápticos. Segundo, los pesos pudieron cambiar si la red se vuelve inestable debido a cambios en el agente o en el entorno. Para ello, la red utilizó una función sigmoide anti-simétrica (Figura 30) con un umbral en ±0.00001. Si la activación cae por debajo de –0.00001 o está por sobre 0.00001, entonces la plasticidad es inducida en las sinapsis de dicho nodo. Al igual que para el controlador plástico, cada agente fue evaluado en varias oportunidades (lifetime), estando cada una compuesta por 10 corridas. Cabe aclarar que el conjunto de acciones realizadas por los agentes fue el mismo que aquel usado para evaluar las redes plásticas. Debido a costos computacionales, los agentes no pudieron ser evaluados durante la evolución de sus habilidades de adaptación a los cambios en el entorno o de su propia morfología. Pese a ello, el objetivo de utilizar una red homeostática fue el hecho de verificar que la red sea capaz de modificar apropiadamente su configuración sólo cuando las activaciones de sus nodos salieran de los límites estipulados. No obstante, dada a la presión evolutiva, esto sólo debe pasar cuando un agente está mal adaptado a su entorno. Finalmente, el genotipo de este controlador fue idéntico al del controlador plástico al igual que su topología. Además, las características señaladas en la Tabla 14 y Tabla 15 para las redes PNN valen para las HPNN, estando el aprendizaje de estas últimas vinculado a aspectos homeostáticos. 64 4.3 Método Experimental Tareas a Resolver Al momento de evaluar el desempeño de un controlador, es de vital importancia definir cuál va a ser la medida de evaluación. En ello, la tarea a desempeñar por el robot determina cuál va a ser el criterio de selección de los individuos en cada generación. Como se mencionó previamente, el comportamiento final buscado consistirá en que el robot aprenda a moverse hacia un objetivo (fuente de luz) mientras evade obstáculos, lo cual puede dividirse en diferentes tareas: • Fototaxis: el robot debe ser capaz de alcanzar una fuente de luz objetivo acercándose a ella. Una variante analizada es cuando el robot puede moverse hacia una de varias fuentes de luz y decidir a cuál acercarse. Esta alternativa se denomina fototaxis condicional. Cabe aclarar que la elección de cuál fuente de luz debe ser alcanzada, es decidido mediante una entrada externa. En este subcomportamiento, se utilizó como referencia el trabajo descrito en la sección 3.2.3 y [Nolfi et al., 2000, Cap. 6]. • Evasión de Obstáculos: esta sub-tarea se refiere a que el robot debe tener la capacidad de evadir obstáculos, principalmente, cuando se dirige hacia un punto en particular. La medida de fitness está asociada parcialmente con el trabajo de Nolfi [Nolfi et al., 2000, Cap. 4]. • Aprendizaje: como referencia para el desarrollo del sub-comportamiento de aprendizaje, se optó por tomar como trabajos base, principalmente, los siguientes: trabajo descrito en la sección 3.2.3 y [Nolfi et al., 2000, Cap. 7]. Aventurando lo que se verá en detalle en el siguiente capítulo, es posible decir que la evaluación de cada genoma comprende un número determinado de pruebas. En cada una de ellas, la red es re-configurada a su estado original, el cual es establecido por el genoma en cuestión. En la mitad de las pruebas, el objetivo a ser alcanzado por el robot varía por otro, sin que esto esté previamente estipulado. En este caso, el robot no sabe cuál fuente de luz debe alcanzar al comienzo de cada prueba. De este modo, se busca que con el correr del tiempo el robot aprenda a distinguir su objetivo mediante prueba y error. Figura 31 – Diagrama UML de clases del modelo experimental genérico implementado. Las diferentes instancias de experimentos desarrollados, son mostradas en la Figura 31, junto con su relación con la clase abstracta EmpiricalTest. Las instancias de dicha clase están compuestas por métodos que representan las características propias del experimento. Cabe señalar que tales instancias codifican el criterio de evaluación de los controladores durante el proceso evolutivo. Concretamente, implementan tanto el ciclo de evaluación como la función de fitness. Método Experimental 4.4 65 Conclusiones En este capítulo se describió el método experimental empleado. Dicho método ha sido desarrollado a partir de trabajos disponibles en la literatura y mediante la herramienta de software generada, la cual prescribe robots simulados capaces de concebir comportamientos como los señalados. La materialización básica de tal herramienta ha sido extendida para soportar múltiples representaciones de controladores neuronales y tareas a resolver. En cuanto a la decisión de qué tipo de red neuronal es la apropiada para desarrollar las diferentes tareas (fototaxis, evasión de obstáculos y aprendizaje), en el capítulo siguiente se presentan los resultados experimentales obtenidos a tal fin. Capítulo 5 - RESULTADOS EXPERIMEN TALES CON CONTROLADORES MONOLÍTICOS RESULTADOS EXPERIMENTALES CON CONTROLADORES MONOLÍTICOS "Una forma de estudiar fenómenos [naturales] es observar sus posibles desviaciones, e investigar qué sucede cuando las condiciones se alteran de alguna forma. Esta es la base de la experimentación: la variación controlada de un aspecto de un fenómeno a fin de ver cómo los demás aspectos se ven afectados" Gabriel Gellon 5.1 Introducción En este capítulo se muestran los resultados de los experimentos desarrollados con cada una de las redes neuronales señaladas en el Capítulo 4. Cada experimento es generado con un controlador monolítico o controlador compuesto por una única red neuronal. Los diferentes tipos de redes fueron evolucionados reiteradas veces a fin de obtener métricas de sus capacidades respecto de la tarea a resolver. Cabe aclarar que un método asociado a aprendizaje vinculado a evolución, es presentado en este capítulo, el cual fue originalmente explorado en sistemas naturales por Baldwin [Baldwin, 1896], y ha demostrado ser un método apropiado para suavizar fitness landscapes en algoritmos genéticos [Hinton et al, 1987]. En la sección 5.2, se presentarán los resultados del proceso evolutivo, al mismo tiempo que se expondrán algunas de las razones que justifican las diferencias del desempeño de cada red. Seguidamente, en la sección 5.3 la mejor red de cada tipo es evaluada en cuanto a su desempeño en la realización de diferentes tareas. Esto constituirá el análisis funcional de cada neuro-controlador. Primeramente, las redes son analizadas en términos de su estrategia para realizar la tarea para la cual fueron evolucionadas. Luego, es evaluada la forma en cómo ellas son capaces de alcanzar tales estrategias dentro de los límites de sus morfologías. Finalmente, en la sección 5.4, son presentadas las conclusiones del capítulo. 5.2 Evolución Los controladores descriptos en este capítulo fueron evolucionados usando el mismo Algoritmo Genético, pero el tiempo que demoró cada controlador en evolucionar fue notablemente diferente. Las tablas presentadas en esta sección proveen una selección estadística de algunas de las características más importantes de la evolución de cada controlador. Para comprobar la consistencia de cada uno de ellos, las pruebas fueron llevadas a cabo de acuerdo a los datos presentados en la Tabla 10 mostrada en el Capítulo 4. Sin embargo, a pesar de la diferencia en la topología de las redes y de las tareas a realizar, los controladores evolucionaron sin relación temporal aparente entre sí. Con esto se trata de expresar que en algunas oportunidades un determinado controlador evolucionó más rápidamente que otros, mientras que para otras actividades esto no ocurrió. Pese a ello, es posible decir que generalmente, y como es de esperar, aquellos neuro-controladores con representaciones genotípicas más extensas demoraron más en evolucionar (como es el caso de los controladores plásticos) respecto de otros tipos de controladores. Además, el mejor agente para cada tipo de neuro-controlador fue evaluado un número fijo de veces al momento de realizar una determinada acción. En cada oportunidad, la posición desde la cual el agente comienza a moverse fue especificada en forma aleatoria. No obstante, ésta se enmarca dentro de los límites impuestos por el entorno del robot. 68 Resultados Experimentales Las tablas siguientes muestran que en muchas de las oportunidades el agente ha alcanzado casi la puntuación máxima que indica la función de fitness (en el rango [0; 1] para fototaxis y evasión de obstáculos, y [0; α] para aprendizaje, con α un número menor a 5). Cabe mencionar que la función asociada al indicador de “porcentaje de éxito” en las tablas que a continuación se muestran, expresa el número de veces en que fue alcanzado el objetivo correcto sobre el total de corridas, considerando las tres tareas (comportamientos) a resolver: fototaxis, evasión de obstáculos, y aprendizaje. En cuanto al número de generaciones empleado en cada prueba, corresponde a 300 generaciones y a 10 corridas por cada una de ellas. Tipo de controlador Mejor Fitness Prom. Fitness Promedio Peor Fitness Prom. Tiempo Porcentaje de Éxito Estabilidad23 FFNN RFFNN CTRNN PNN HPNN 0.7106 0.4939 0.1785 35’ 04’’ 9/10 40 0.7264 0.4863 0.1261 31’ 05’’ 9/10 40 0.5125 0.1497 0.0173 37’ 43’’ 8/10 70 0.6319 0.4045 0.1073 53’ 05’’ 9/10 85 0.6623 0.4302 0.1040 57’ 51’’ 10/10 80 Tabla 16 – Resultados promedios de la evolución de los neuro-controladores implementados para fototaxis (sección 5.3.1) sobre el total de generaciones (300 generaciones y 10 corridas); Función de fitness: Ecuación 9. Tipo de controlador Mejor Fitness Prom. Fitness Promedio Peor Fitness Prom. Tiempo Porcentaje de Éxito Estabilidad FFNN RFFNN CTRNN PNN HPNN 0.9116 0.8121 0.4945 22’ 57’’ 10/10 20 0.8994 0.7911 0.4230 31’ 06’’ 9/10 40 0.6767 0.3338 0.0579 38’ 60’’ 6/10 60 0.8387 0.6762 0.3762 50’ 34’’ 5/10 50 0.8390 0.6851 0.3902 49’ 06’’ 9/10 50 Tabla 17 – Resultados promedios de la evolución de los neuro-controladores implementados para evasión de obstáculos (sección 5.3.2) sobre el total de generaciones (300 generaciones y 10 corridas); Función de fitness: Ecuación 10. Tipo de controlador Mejor Fitness Prom. Fitness Promedio Peor Fitness Prom. Tiempo Porcentaje de Éxito Estabilidad FFNN RFFNN CTRNN PNN HPNN 2.8124 1.8358 0.4396 31’ 31’’ 10/10 95 4.8314 2.5823 0.2258 39’ 00’’ 10/10 120 1.9914 0.5048 0.090 39’ 32’’ 8/10 180 2.3004 1.3217 0.1884 52’ 44’’ 10/10 130 3.1135 1.5592 0.1813 54’ 21’’ 10/10 80 Tabla 18 – Resultados promedios de la evolución de los neuro-controladores implementados para aprendizaje (sección 5.3.3) sobre el total de generaciones (300 generaciones y 10 corridas); Función de fitness: Ecuación 12. Las tablas anteriores caracterizan algunos de los aspectos del fitness landscape para cada controlador mostrado en el capítulo anterior en función a los datos de la Tabla 10. Como se puede observar, la red del tipo CTRNN fue una de las más lentas en evolucionar, con un margen considerable de generaciones hasta obtener una puntuación estable en su mejor fitness promedio. Sin embargo, las redes FFNN, RFFNN y la HPNN típicamente encontraron soluciones en pocas generaciones en la mayoría de las pruebas. Las redes 23 Número de generaciones en alcanzar estabilidad por primera vez en el mejor fitness promedio. En otras palabras, número de generaciones en el que es computado una medida de fitness igual al promedio general. Resultados Experimentales 69 FFNN y RFFNN presentaron un comportamiento aceptable en aquellas pruebas puramente reactivas (fototaxis y evasión de obstáculos). En cuanto a la HPNN, su desempeño fue aceptable pero remarcado durante los experimentos relativos a aprendizaje o a variaciones durante la vida del controlador. Por lo que es posible decir que su desempeño fue positivo cuando se necesitó de un comportamiento no solamente reactivo, sino que también dependiente de la experiencia. Fototaxis Evación de Obst. Aprendizaje 6 Fitness 5 4 3 2 1 0 FFNN RFFNN CTRNN PNN HPNN Tipo de neuro-controlador Figura 32 – Grafico comparativo de los diferentes niveles de fitness (mejor fitness promedio) para los distintos tests. La red CTRNN muestra una gran variación en su desempeño de corrida en corrida, y en ninguna oportunidad alcanzó un fitness máximo superior al obtenido para los otros controladores. Esto indica que el fitness landscape para esta red fue menos estable que para los demás controladores. En otras palabras, la tendencia de la función de fitness presenta variaciones significativas con el correr de las generaciones. En HPNN, es posible que el mecanismo de homeostasis, el cual es parte de su morfología, pueda haber causado variaciones de los pesos hasta que el agente realizara la tarea en forma apropiada. Tan pronto como el agente llevara a cabo la acción de manera correcta, los cambios sinápticos se detendrían y se mantendrían en esta situación para no generar “malas adaptaciones”. Esto pudo haber ocurrido en el caso que la morfología no fuese optimizada en relación a la tarea. No obstante, puede que se realizara la acción de mejor manera que en aquellos controladores que no incorporen homeostasis. Por otro lado, cabe señalar que a pesar de que las redes del tipo PNN posean adecuación de pesos sinápticos, generalmente, no ocurrió lo mismo que lo expresado para las redes homeostáticas. En el caso que las redes plásticas encontraran un conjunto de pesos sinápticos que permitieran al agente realizar la tarea en forma correcta, los pesos tendieron a estar estáticos, mientras que las reglas plásticas simultáneamente continuaron causando variaciones sinápticas. Es importante señalar que los pesos en las PNN no eran parámetros de evolución, por el contrario eran variables durante la ejecución. Finalmente, en el caso de las CTRNN los pesos sí constituían parámetros, pero como al igual que otros parámetros evolutivos, éstos pudieron no ser modificados en forma apropiada durante la vida del controlador. Estas reglas escapan a la posibilidad de que el efecto Baldwin pueda sumar alguna característica deseable a la evolución del controlador. 5.3 Análisis Funcional A continuación se expondrá un análisis inicial sobre la evolución de los controladores neuronales antes señalados. Si bien el objetivo final es la obtención de controladores apropiados para cada tarea, se señala que existen diferentes estudios futuros a ser implementados los cuales no son tratados en éste trabajo (p. ej. análisis de la topología neuronal óptima). 70 Resultados Experimentales Un punto a remarcar es que no es posible realizar un análisis pleno de cada red según el alcance propuesto para este trabajo. Por ejemplo, con respecto a los controladores del tipo FFNN, CTRNN y PNN no se propone un estudio extenso en el presente trabajo dado que han sido analizados con algún grado de detalle en análisis previos disponibles en la bibliografía (p. ej. [Fernández et al., 2004] [Beer, 2001][Floreano et al., 1998]). Por el contrario, el controlador homeostático recibe un mayor grado de detalle, dado que sólo existen algunos pocos trabajos recientes sobre el mismo ([Di Paolo, 2002]). Con respecto al análisis realizado vinculado a la evolución de los controladores, si bien es difícil realizar una gráfica del fitness landscape, debido a que posee varias dimensiones a graficar dado el número de genes en el genotipo, es factible desarrollar algunas inferencias acerca de las variaciones en la evolución de las distintas redes. Esto es lo que se mostrará en cada prueba. 5.3.1 Fototaxis La tarea asociada a fototaxis se encuadra con un comportamiento simple o comportamiento que no se compone de sub-tareas elementales. Básicamente, es posible definirla como un “problema de búsqueda de objetivo”. La configuración del experimento que se llevó a cabo en el presente trabajo, está inspirada en el desarrollo realizado por Nolfi y Parisi [Nolfi et al., 1997], y principalmente en el experimento propuesto por Floreano y Mondada [Floreano et al., 1996a]. Si bien el entorno no fue el mismo, la idea subyacente en el experimento se mantiene inalterada. Concretamente, se buscó evolucionar controladores capaces de adaptarse a cambios en el entorno a través de las generaciones. En el caso del presente trabajo, se buscó además capacidades de adaptación mediante la evolución de individuos al momento de ser evaluados en ámbitos que difieren significativamente de aquellos utilizados durante la evolución. La configuración del entorno, como así también la del robot, fue descrita en el Capítulo 4. Como características adicionales, en la configuración de los experimentos cada robot fue posicionado aleatoriamente sin que se incorporaran objetos dentro del ambiente. Pese a ello, se ubicó al azar una fuente de luz distinguible como un punto rojo, simbolizando la posición a la que el robot debe llegar. Cada individuo de la población fue evaluado independientemente al cabo de 300 generaciones de 200 iteraciones por corrida cada una. La función de fitness, como fue expresado anteriormente, selecciona individuos capaces de buscar el objetivo en el menor tiempo posible. Dicha función corresponde a una variación de la función propuesta en [Floreano et al., 1996a] dentro del problema de búsqueda de una fuente de recarga de energía. Es importante notar que cada individuo fue evaluado de acuerdo con la función de fitness simplificada, utilizada en el problema de navegación con obstáculos que luego se describirá. Esto se relaciona a que cuando se emplea un procedimiento evolutivo sobre un problema complejo, la función de fitness no necesariamente necesita también ser compleja. Con ello se trata de expresar que en forma emergente surge un cambió de las características del controlador sujetas a evolución en estrecha relación con el entorno. En el experimento de Floreano y Mondada, solo se utilizó una configuración de red del tipo RFFNN con 5 neuronas en la capa oculta. Cabe aclarar que en dicho trabajo no se hicieron intentos por optimizar el número de neuronas requeridas, ni lo propio sobre la conectividad neuronal del controlador. La función de fitness propuesta está compuesta por dos variables directamente cuantificables en el robot real en cada instante de tiempo: Φ1 = k ⋅ (1 − i) (Ecuación 9) donde k es el valor promedio de la activación de los sensores frontales del robot (sensor V3 y V4 de la Figura 13) (0 ≤ k ≤ γ, con γ un valor predefinido), multiplicado por un valor γ constante igual a 4; i es el valor absoluto de la diferencia entre la actividad de los dos nodos motores, representando el ángulo de desviación expresado en radianes. Po r lo tanto, en este caso, se considera que una desviación es válida cuando no supere un radian (aprox. 56º). El primer componente de la Ecuación 9, es maximizado por la proximidad a la fuente de luz, mientras que el segundo componente es maximizado por los movimientos directos al objetivo. Resultados Experimentales 71 Nuevamente, es importante notar que la función de fitness no se refiere a cuál es la dirección a la que el robot debe moverse, sino que es calculada acumulando en cada paso el valor Φ 1, excepto cuando el robot está en proximidad del área marcada por la fuente de luz. Posteriormente, el valor de fitness de cada individuo (el cual depende tanto de la performance del robot como de la duración de su vida) fue dividido por el mismo número de pasos o generaciones (300). A modo de comparación, es posible decir que en el trabajo de la sección 3.2.3, no se utilizó una medida de fitness que pudiera ser obtenida directamente de un robot Khepera real según la configuración planteada en dicho trabajo. Básicamente, se planteaba una medida del desempeño de cada agente en función de la distancia entre el robot y la posición objetivo. Como es de esperar, y en el caso que los controladores sean evaluados en robots reales, habría que modificar los criterios de evaluación debido a que sería necesario especificar la distancia al objetivo en todo momento por un observador del experimento. Por lo tanto, esto sería un inconveniente deseable de evitar, por cuanto en el presente trabajo se buscó no caer en dicho inconveniente. El mapeo entre sensores y entradas de la red, fue el siguiente: Entrada Sensor V0 V1 V2 V3 V4 V5 V6 V7 V8 0 SL0 (1) SL0 (2) SL0 (3) SL0 (4) SL0 (5) SL0 (6) SL0 (7) SL0 (8) Tabla 19 – Mapeo sensor-entrada de la red utilizada para los experimentos con fototaxis, siendo SLj(i) la especificación de un sensor infra-rojo receptor (sensor lumínico) vinculado al i-ésimo sensor del robot relativo a la j-ésima fuente. 5.3.1.1 Experimentos con FFNN Como observación de la estrategia obtenida luego de realizar los experimentos con el controlador FFNN, puede decirse que éste corresponde a un controlador simple de evolucionar. Tal conclusión surge como consecuencia de analizar los datos de la Tabla 16 junto con su desempeño al momento de ir hacia el objetivo. La Figura 34 muestra algunos ejemplos de las estrategias más significativas del desplazamiento con dicho controlador. Cuando la posición inicial del robot lo permite, los sensores captan la fuente de luz, lo cual genera una acción sobre los actuadores posibilitando que el robot se aproxime al objetivo. La forma general en que el robot se movió fue constante y consistente, lo cual puede verse en lo continuo de las activaciones de sus neuronas (Figura 33.a) generando una trayectoria gradual hacia el objetivo. Una característica interesante de mencionar es que la estrategia de aproximación converge hacia la posición final sin que el recorrido sea un movimiento plenamente rectilíneo. Esto se debe a que el controlador fue determinado y seleccionado por el proceso evolutivo sin que en la función de fitness se especifique la forma en que el robot debe aproxim arse. En el caso que dicha función se refiera a minimizar la distancia de recorrido entre la posición inicial y la posición objetivo, se obtendrá un movimiento puramente rectilíneo. No obstante, se ponderó en el presente trabajo la utilización de parámetros netamente cuantificables en una configuración de robot real, sin algún tipo de sensado respecto del camino óptimo. 72 Resultados Experimentales Por otro lado, debido a que el controlador no depende de constantes determinadas por el proceso evolutivo vinculadas a afectar a la función de activación de las neuronas (Figura 33.a) en base a las entradas de la red (Figura 33.b), las gráficas de cada nodo fueron suaves y fluidas. Pese a ello, sin un análisis profundo, es difícil especificar e identificar la función exacta que cada nodo desempeña en la red. Esto vale para las redes FFNN, como así también para los controladores que se describen en próximas secciones. De todos modos, y analizando las gráficas de las actividades de cada nodo en una FFNN, es posible decir que los nodos se comportan de forma similar entre sí, pero difieren en el signo. Básicamente, esto es causado por la definición de los pesos sinápticos seleccionados por el proceso evolutivo. (a) (b) Figura 33 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red FFNN durante la tarea de fototaxis obtenida en el cuarto test del mejor controlador (300 generaciones). (a) (b) (c) Figura 34 – Ejemplos de trayectorias seguidas por el robot simulado para una red FFNN durante la tarea de fototaxis obtenidas para el mejor controlador (300 generaciones); (a) El segundo, (b) cuarto, y (c) octavo test. Resultados Experimentales 73 Figura 35 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo FFNN en fototaxis. Como se puede observar en la figura anterior, existe un número de generaciones iniciales en las cuales el nivel de fitness comienza a incrementarse drásticamente. Esto sugiere que el agente alcanza a adaptarse (generacionalmente hablando) a la acción de fototaxis en forma temprana (aproximadamente 40 generaciones), presentándose un patrón de fitness estable a partir de dicho punto. 5.3.1.2 Experimentos con RFFNN La estrategia de fototaxis planteada por el controlador RFFNN en cuanto a la forma de aproximarse al objetivo, no difiere significativamente de la mostrada para FFNN. Pese a ello, es posible ver que existen algunas variaciones poco estables en las actividades de los nodos del controlador. Principalmente, esto se debe a las conexiones recurrentes en la topología de la red asociada a su dinámica interna. (a) (b) Figura 36 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red RFFNN durante la tarea de fototaxis obtenida en el cuarto test del mejor controlador (300 generaciones). 74 Resultados Experimentales (a) (b) (c) Figura 37 – Ejemplos de trayectorias seguidas por el robot simulado para una red RFFNN durante la tarea de fototaxis obtenidas para el mejor controlador (300 generaciones); (a) El primer, (b) cuarto, y (c) séptimo test. Figura 38 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo RFFNN en fototaxis. Al igual que en la sección anterior, la gráfica de la función de fitness (Figura 38) presenta un comportamiento estable de manera temprana, pero con algunas oscilaciones con tendencia a decrementar el desempeño global cerca de la generación 200. Una interpretación de este comportamiento puede estar asociada a que pequeñas actividades neuronales ocasionaron que el robot procesara acciones no apropiadas a la situación actual, vinculadas a una acción previa. Por lo tanto, una explicación de la caída de la tendencia de la función de fitness, puede vincularse a malas variaciones genéticas en cuanto a conexiones de la capa oculta de la red RFFNN se refiere. 5.3.1.3 Experimentos con CTRNN Una de las características más notables de las redes CTRNN al momento de realizar fototaxis, es que no fue simple de obtener un comportamiento apropiado. La Figura 40 muestra cómo variaron las distintas estrategias de aproximación al objetivo. Mientras los caminos tomados por el agente fueron consistentes, la forma de tales movimientos parece variar a medida que el agente se desplaza. En la Figura 40.a y Figura 40.b puede observarse que el agente es atraído por la fuente de luz en forma lenta, generando un movimiento curvilíneo amplio, moviéndose de manera gradual hacia dicha posición. Por el contrario, en la trayectoria mostrada en la Figura 40.c el agente realmente varía de dirección al acercarse al objetivo. Este comportamiento puede justificarse dado que el número de parámetros sometidos al proceso evolutivo es mayor que en el caso de la FFNN y RFFNN. Por lo tanto, es más difícil de obtener una combinación óptima de dichos parámetros a fin de generar un comportamiento aceptable. Esto puede ser observado en el mejor fitness promedio mostrado en la Tabla 16, siendo para la CTRNN menor en todos los casos. Dicho inconveniente puede ser resuelto potencialmente a través de un proceso evolutivo con un mayor número de generaciones. Debido a que el agente utiliza constantes temporales determinadas genéticamente, las activaciones de los nodos (véase Figura 39.a) se caracterizan por ser relativamente armoniosas, debido a que el proceso Resultados Experimentales 75 evolutivo tiende a descartar combinaciones de tales constantes no apropiadas a la función de fitness señalada (Ecuación 9). No obstante, sin realizar un análisis profundo, es difícil identificar la funcionalidad específica de cada nodo. Además, es notoriamente difícil analizar redes del tipo CTRNN a pesar del hecho que posean pocos nodos, siendo que el alto grado de conectividad de los nodos significa que el efecto de una conexión repercutirá en toda la red. Con respecto al desempeño (porcentaje de éxito) con este tipo de controlador en fototaxis, fue levemente menos adecuado que el propuesto por otros controladores. Esto puede observarse en la Tabla 16 de la sección 5.2. (b) (a) Figura 39 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red CTRNN durante la tarea de fototaxis obtenida en el noveno test del mejor controlador (300 generaciones). (a) (b) (c) Figura 40 – Ejemplos de trayectorias seguidas por el robot simulado para una red CTRNN durante la tarea de fototaxis obtenidas para el mejor controlador (300 generaciones); (a) El primer, (b) segundo, y (c) noveno test. 76 Resultados Experimentales Figura 41 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo CTRNN en fototaxis. Posiblemente, dado lo complejo de la dinámica de los controladores CTRNN, y a la determinación de los parámetros genéticos que afectan a la activación de los nodos, inicialmente la medida de fitness es considerablemente más baja en generaciones tempranas, estabilizándose luego de la generación 70. Un punto a destacar es que en la Figura 41 aparecen valores negativos del peor fitness. Esto expresa que existieron alternativas de controladores que no se adecuaron a la función de fitness antes especificada. En comparación con las FFNN, las CTRNN presentan movimientos que indican la presencia de actividad neuronal sin que se presenten actividades exitatorias en las entradas. Un indicador de esto puede verse en la Figura 40.b cuando el robot luego de sensar la fuente de luz, modifica su trayectoria en forma circular. En el caso de que esto no ocurriese, estaríamos probablemente en presencia de un movimiento como el señalado para las RFFNN. 5.3.1.4 Experimentos con PNN Al igual que para las CTRNN, la estrategia de resolución propuesta por el mejor controlador plástico o PNN, varía radicalmente de acuerdo al tiempo que demora en evolucionar respecto de otros controladores (Tabla 16). Sin embargo, en general se encontró que dicho controlador es ligeramente más consistente que las CTRNN. La Figura 43 muestra ejemplos representativos de la estrategia de aproximación del agente utilizando un controlador plástico. Al inicio, el agente se mueve rápidamente sin que se produzcan movimientos circulares (tal como fue visto para CTRNN), similares al generado con FFNN o RFFNN. Luego se mueve satisfactoriamente durante el resto de la trayectoria hacia el objetivo. Lo segundo que puede observarse es que el desplazamiento es armonioso y estable. Una característica a destacar de este tipo de red es que la variación de pesos entre dos neuronas ocurre a lo largo de la vida del agente. Por ello, puede decirse que tal variación se produce en forma de adaptación paulatina a diferencia de las activaciones generadas en una CTRNN, lo cual repercute en la activación de las neuronas que conectan dicha sinapsis. No obstante, varios de los pesos sinápticos son mantenidos en un valor cercano a cero durante la vida del agente (véase Figura 42.a). De forma similar, en [Greer, 2002] se concluye que “las reglas de aprendizaje plásticas” para las PNN poseen poca incidencia en la adaptación del controlador. Esta observación está basada en la variación de las actividades de los nodos, lo cual se debe a que existen modificaciones sinápticas no beneficiosas, pudiéndose producir alteraciones sinápticas no deseables para el desempeño final del agente. Nótese que existen oscilaciones incrementales en las actividades de algunos nodos, pudiendo estas generar comportamientos erráticos. En pruebas iniciales con PNN, se pudo observar que tales oscilaciones se generan cuando no pueden ser equilibradas con otras, por lo que aparecen comportamientos no previstos, tales como giros rápidos sobre el eje vertical del robot. Resultados Experimentales 77 En el rango entre 100 y 300 generaciones mostrado en la Figura 44, el fitness comienza a oscilar significativamente. Posiblemente, dicha variación se debe a una alteración de la incidencia sináptica sobre un conjunto de neuronas, la cual se equiparó con otras variaciones neuronales plásticas. Pese a esto, extrañamente no resulta en un marcado cambio del comportamiento del agente. Del mismo modo que la variación en las activaciones de los nodos, las conexiones sinápticas fueron constantemente modificadas por las reglas plásticas. Al mismo tiempo, la variación de las entradas de los sensores y de la actividad de las neuronas produjo que este tipo de red fuera más difícil de analizar que las CTRNN. Al momento de exponer los resultados del desempeño final de las PNN, se encontró que presentaban un comportamiento no previsto a largo plazo. Luego de realizar un número no específico de acciones, el comportamiento del agente comenzó a ser errático sin que se observase signos de recuperación por parte del agente. Nuevamente se señala que tal comportamiento ocurre debido al surgimiento de adaptaciones plásticas que no son controladas, o en otras palabras, son realizadas en todo momento. (b) (a) Figura 42 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red PNN durante la tarea de fototaxis obtenida en el noveno test del mejor controlador (300 generaciones). (a) (b) (c) Figura 43 – Ejemplos de trayectorias seguidas por el robot simulado para una red PNN durante la tarea de fototaxis obtenidas para el mejor controlador (300 generaciones); (a) El segundo, (b) quinto, y (c) noveno test. 78 Resultados Experimentales Figura 44 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo PNN en fototaxis. Como puede verse en la Figura 44, el desempeño del agente mejora rápidamente en generaciones tempranas, pese a que los pesos sinápticos no fueron generados antes de la evolución del comportamiento del agente. Esto señala que existe una adecuación inicial satisfactoria por parte de las reglas de Hebb (sección 4.2.4.4). 5.3.1.5 Experimentos con HPNN Mientras los pesos de la CTRNN permanecieron estáticos, y los de la PNN fueron variando proporcionalmente a las actividades de las neuronas, los de la red homeostática o HPNN ocuparon un punto intermedio. Durante una etapa inicial, el mejor agente sufría alteraciones de pesos durante los primeros 20 movimientos. Luego de esto, los pesos sinápticos sólo sufrían modificaciones si la actividad neuronal superaba o estaba por debajo de un umbral predefinido (±0.00001 respectivamente24). La actividad de los nodos se asemeja a la actividad de las redes plásticas con respecto a cambios rápidos en su salida, junto con períodos intermitentes de oscilaciones (véase Figura 45.a). El comportamiento de una red del tipo HPNN con un proceso evolutivo apropiado, se vuelve más interesante que las dos redes anteriores. Con esto se trata de expresar que existe una habilidad de adaptarse a los cambios sólo cuando corresponde hacerlo. La Figura 47 muestra con mayor claridad el proceso de adaptación durante la vida del agente. Luego del período inicial de desarrollo, no se produjeron cambios durante las primeras 20 acciones, pero la Figura 45.a muestra además la variación de las actividades durante un período de mal adaptación (véase actividad del nodo 6). En pocas palabras, sólo las sinapsis que sufren notables cambios presentan notables oscilaciones. Mientras que muchas de las conexiones no variaron, se encontró que algunas no realizaron una adecuación apropiada sobre el espacio de pesos durante el período de mal-adaptación. En contraste con esto, en Di Paolo [Di Paolo, 2000] se encontró que la variación de los pesos en su agente homeostático, ocurría sólo un instante previo a la adaptación. Ashby [Ashby, 1960] propuso que la adaptación a nuevas circunstancias puede ser alcanzada realizando modificaciones aleatorias a los parámetros de seteo. Pero aún en un sistema simple (tal como la red diseñada en el presente trabajo), y en mayor medida en sistemas biológicos, dicho método de modificación aleatoria puede tomar bastante tiempo. Además, la modificación de pesos en el presente trabajo fue restringida en función de la morfología del sistema, utilizando conexiones específicas y habiéndose determinado el modo de variación a alguna de las Reglas de Hebb. La red fue evaluada en cuanto a su habilidad para re-adaptarse a dichas circunstancias 10 veces, y en todas de ellas se obtuvo un resultado exitoso. 24 Dicho valor de umbral fue obtenido mediante un proceso de prueba y error. Resultados Experimentales 79 (b) (a) Figura 45 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red HPNN durante la tarea de fototaxis obtenida en el noveno test del mejor controlador (300 generaciones). (a) (b) (c) Figura 46 – Ejemplos de trayectorias seguidas por el robot simulado para una red HPNN durante la tarea de fototaxis obtenidas para mejor controlador (300 generaciones); (a) El cuarto, (b) noveno, y (c) sexto test. Figura 47 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo HPNN en fototaxis. Como observación de la estrategia planeada por el HPNN, es posible decir que el agente presenta un comportamiento aceptable para el problema en cuestión (aproximación al objetivo, Figura 46), a pesar de que fue el controlador que más demoró en evolucionar. En cuanto a la evolución del fitness, el nivel del 80 Resultados Experimentales mejor fitness es superior al presentado por PNN. No obstante, no corresponde al mejor fitness promedio en comparación con la totalidad de controladores estudiados. Particularmente, en cuanto a los controladores plásticos (PNN y HPNN), se encontró que su evolución fue más costosa en términos temporales. Esto se debe a que la combinación de reglas por sinapsis es alta. Con ello, si bien la característica principal de tal tipo de controlador es su capacidad de adaptación al entorno, el comportamiento final está restringido por las mismas reglas plásticas encontradas luego del proceso evolutivo. Esto trae aparejado que sea complejo el estudio de la validez de la selección de reglas para cada sinapsis, junto con el estudio de la relación entre niveles del controlador en forma automática. Posiblemente, un estudio que implique un mayor número de generaciones, podría ayudar a descubrir la influencia generacional en la determinación de un conjunto de reglas optimales para la resolución de la tarea en cuestión. No obstante, se considera que la evolución del controlador antes descrito es válida en función de los resultados alcanzados. 5.3.1.6 Fototaxis Condicional El significado de fototaxis condicional es que el robot debe ser capaz de alcanzar uno de dos posibles objetivos lumínicos y permanecer en él o aproximarse a una distancia mínima. Con ello, la determinación de cuál objetivo es el apropiado es decidido por una entrada externa. Inspirado en el trabajo en el trabajo de Togelius (sección 3.2.3), es posible decir que el problema a resolver con fototaxis condicional es de interés dado que requiere comportamientos diferentes. Si bien se utilizó fototaxis condicional junto con evasión de obstáculos simple de manera reactiva, no es claro el funcionamiento de cada comportamiento, lo cual dificulta la apreciación de los “efectos condicionales” sobre el comportamiento del robot. Por lo tanto, en la presente sección se propone el análisis de fototaxis condicional únicamente. Además, dicho problema es poco predecible si lo comparamos con fototaxis simple. Pese a ello, es posible llevarlo a cabo en forma reactiva. Nuevamente, al igual que para fototaxis simple, la propuesta de Togelius referida a la medida del fitness en fototaxis condicional es dependiente de la cuantificación de la distancia a la fuente de luz correcta, lo cual es poco apropiado para ser medido desde un robot real. Es por ello que en esta tesis se consideró como medida del desempeño del robot a la misma que se utilizó para fototaxis simple (Ecuación 9). Se utilizó un controlador del tipo HPNN para realizar la tarea de fototaxis condicional dado que se buscó probar si un controlador plástico puede adaptarse a una actividad como la señalada, mediante adaptaciones a escala de vida del controlador. Además, y en base a la literatura disponible, no se pudo observar que esto se realizara con dicho tipo de controlador, pero sí con controladores del tipo FFNN. El mapeo entre sensores y entradas de la red, fue el siguiente: Entrada Sensor V0 V1 V2 V3 V4 V5 V6 V7 V8 0 prom(SL0(3), SL0(4)) prom(SL1(3), SL1(4)) prom(SL0(2), SL0(3)) prom(SL1(2), SL1(3)) prom(SL0(1), SL0(2)) prom(SL1(1), SL1(2)) variable condicional 0 Tabla 20 – Mapeo sensor-entrada de la red utilizada para los experimentos con fototaxis condicional, siendo SLj(i) la especificación de un sensor infra-rojo vinculado al i-ésimo sensor del robot relativo a la jésima fuente. Prom es un indicador del promedio de los valores sensados. Resultados Experimentales 81 (b) (a) Figura 48 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red HPNN durante la tarea de fototaxis condicional obtenida en el séptimo test del mejor controlador (300 generaciones). (a) (b) (c) Figura 49 – Ejemplos de trayectorias seguidas por el robot simulado para una red HPNN durante la tarea de fototaxis condicional obtenidas para el mejor controlador (300 generaciones); (a) El tercer, (b) sexto, y (c) séptimo test. Figura 50 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo HPNN en fototaxis condicional. 82 Resultados Experimentales Luego de realizar el experimento con fototaxis condicional, se obtuvieron los siguientes resultados: HPNN Mejor Fitness Prom. Fitness Promedio Peor Fitness Prom. Tiempo Porcentaje de Éxito Estabilidad 0.2285 0.1439 0.0244 57’ 10’’ 9/10 65 Tabla 21 – Resultados promedios de la evolución de los neuro-controladores implementados para fototaxis condicional sobre el total de las generaciones (300 generaciones y 10 corridas). Cabe aclarar que como variable condicional (o variable que determina cuál va a ser el valor de la entrada vinculado al objetivo correcto), se probaron varias alternativas. Las principales fueron: (a) especificar que en el 50% de los casos se asocie como objetivo una determinada fuente de luz; (b) asociar a la variable condicional una función aleatoria que establezca que el 75% de las veces el robot deba ir a una fuente de luz, y el 25% restante a la otra fuente. Cabe aclarar que dichos porcentajes fueron establecidos durante el proceso evolutivo. Para el primer caso, (a) se obtuvo que cuando se evalúa el desempeño del controlador final y se setea que el objetivo correcto sea una fuente de luz específica, el robot no adapta su comportamiento durante su vida al objetivo prefijado. Con ello se trata de expresar que el controlador aún queda fuertemente ligado a lo que la evolución determinó: ajuste de los parámetros evolutivos para alcanzar cada objetivo el 50% de las veces. Por el contrario, con el caso (b) se encontró que el agente confluía al objetivo correcto cuando éste era favorecido con el 75% de las veces durante la evolución. Cabe mencionar que cada vez que el robot alcanza una fuente de luz, éstas se vuelven a reubicar aleatoriamente, y el proceso de búsqueda de objetivo vuelve a repetirse, como puede observarse en la Figura 49. Por lo tanto, en pocas palabras puede decirse que los intentos de adaptación mediante Reglas de Hebb con la configuración de red HPNN señalada, no fueron suficientes para que el robot adapte la morfología de su controlador a una situación en particular de búsqueda de objetivo, opuesta a la predefinida en el proceso evolutivo. Con ello se requiere expresar que según los experimentos realizados, el proceso adaptativo en la vida del controlador influye en menor grado que lo que genera el proceso evolutivo artificial. Esto parece lógico de concluir si se considera que se realizó un número mucho mayor de generaciones contra un único proceso de evaluación durante la vida del controlador. Pese a ello, y dado que las adaptaciones durante la vida del controlador deben influir de manera rápida en el comportamiento del controlador, se encontró que su influencia es relativamente débil sobre la adaptación generacional. Además, debe mencionarse que lo antes dicho ocurrió con la configuración experimental planteada, lo cual puede no ocurrir cuando se varían parámetros tales como el intervalo mínimo de simulación (Ecuación 3) en futuras evaluaciones. La Figura 48.a, vinculada a la activación de los nodos, muestra que cada nodo genera un comportamiento oscilante. Pese a ello, fue posible observar que el robot se comportó adecuadamente (véase Figura 49), con lo cual puede decirse que se generaron compensaciones internas a tales variaciones en las activaciones neuronales. Un ejemplo de ello puede verse en el grado de simetría de las oscilaciones entre los nodos motores. Por otro lado, en la Figura 50 relacionada con la evolución del fitness, existen valores negativos cercanos a cero. Esto se debe a que el robot, durante el proceso evolutivo, alcanzó objetivos inapropiados, lo cual generó una medida de fitness negativa. Finalmente, en la Figura 49 es posible observar que la trayectoria del robot fue poco rectilínea, lo cual fue apropiado para el problema analizado. Esto se debe a que aleatoriamente se ubicaron nuevos objetivos cada vez que se alcanzó uno previamente. Por lo tanto, puede concluirse que una HPNN para fototaxis condicional generó un comportamiento aceptable. Resultados Experimentales 5.3.2 83 Evasión de Obstáculos En esta sección se hablará de evasión de obstáculos sin objetivo. Navegación con obstáculos es una tarea clásica y aparece en la mayoría de los experimentos de los investigadores que trabajan en robótica móvil. En la mayoría de los casos, es necesario especificar cuestiones tales como el análisis de los sensores, características de los motores, disposiciones sobre la movilidad del robot, parámetros del controlador, y la velocidad del robot al momento de proponer un modelo simple del agente para una tarea como evasión de obstáculos [Nolfi et al., 2000]. Más aún, con la consideración de un enfoque evolutivo para la generación de controladores de manera automática, se pretende buscar una solución para la navegación y la evasión de obstáculos sin asumir ningún conocimiento previo sobre los sensores, motores, o del entorno que influya en las decisiones del controlador. El objetivo de la presente sección, al igual que en varios de los trabajos encontrados en la literatura, fue generar mediante evolución un sistema de control capaz de maximizar el movimiento hacia delante mientras se realiza la evasión de obstáculos. La definición de la función de fitness Φ 2 está basada en tres variables directamente cuantificables sobre el robot, según lo especificado en [Nolfi et al., 2000, Cap. 4]: ( ) Φ 2 = z ⋅ 1 − ∆z ⋅ (1 − j) (Ecuación 10) donde z es el valor de la diferencia entre la activación de los nodos motores m1 y m2 (véase Figura 20), representando el ángulo de desviación del robot en radianes (-2 ≤ z ≤ 2); ∆z es el valor absoluto de la diferencia algebraica de las activaciones de los nodos motores m1 y m2, maximizando su valor cuando ambos actuadores proporcionan igual dirección y magnitud. Con la raíz cuadrada ∆z se da mayor importancia a pequeñas diferencias de las velocidades de los nodos motores; (1-j) es la diferencia entre el máximo valor de activación (1) y el máximo valor sensado (sensores infra-rojos de proximidad). Esta función es evaluada y sumada para cada ciclo de ejecución y luego es dividida por el total de iteraciones durante la evaluación del robot. Cabe aclarar, que en la función no se dice nada acerca de cual es la dirección a la que el robot debe moverse. A lo largo de esta sección, se expondrá que evasión de obstáculos, cuando es generada mediante evolución, en pocas generaciones pued e alcanzar un valor de fitness elevado. Si bien los controladores utilizados fueron los mismos que para fototaxis, no es posible decir que la diferencia entre los niveles de fitness se deba a una variación morfológica de un mismo tipo de controlador en fototaxis y en evasión de obstáculos. En cambio, y como conclusión que se desprende a partir de los experimentos realizados, es posible sugerir que la diferencia en el desempeño entre los comportamientos de fototaxis y evasión de obstáculos obedece a dos factores. Primero, y el más significativo, es la definición de la función de fitness, la cual puede ser más apropiada para el problema de evasión de obstáculos que aquella propuesta para el problema de fototaxis. Segundo, probablemente, la diferencia entre el desempeño de ambos comportamientos esté relacionado a la generación de mutaciones más apropiadas para uno que para otro comportamiento. Aunque el indicador de fitness crece durante generaciones tempranas en todas las pruebas (luego de lo cual se mantiene estable), cerca de la mitad del proceso evolutivo el mejor individuo comienza a exhibir una navegación armoniosa en el entorno sin chocarse contra los muros. En casi todos los controladores, es importante decir que el fitness máximo pudo ser obtenido sólo cuando el robot se mueve en línea recta en un espacio abierto. Al final de esta sección, se presenta el efecto combinado del comportamiento de fototaxis y evasión de obstáculos mostrando la evolución obtenida del fitness (sección 5.3.2.6). Cabe aclarar que la búsqueda de la funcionalidad deseada para el agente generada por la evolución artificial es más compleja, debido a que involucra parámetros del sistema de control que genera la velocidad apropiada, como así también los vinculados al control de evasión y aproximación al objetivo. 84 Resultados Experimentales El mapeo entre sensores y entradas de la red, fue el siguiente: Entrada Sensor V0 V1 V2 V3 V4 V5 V6 V7 V8 0 SO (1) SO (2) SO (3) SO (4) SO (5) SO (6) SO (7) SO (8) Tabla 22 – Mapeo sensor-entrada de la red utilizada para los experimentos con evasión de obstáculos, siendo SO(i) la especificación de un sensor de proximidad vinculado al i-ésimo sensor del robot. 5.3.2.1 Experimentos con FFNN Al realizar un análisis de los resultados experimentales obtenidos, es posible decir que corresponde a un controlador simple de evolucionar, tanto a escala temporal como así también a lo relativo con el desempeño final alcanzado en cuanto a la evasión de obstáculos se refiere. La Figura 52 muestra algunos ejemplos de trayectorias seguidas en evasión de obstáculos. Según la estrategia de movimientos planteada por el controlador FFNN, se pudo apreciar que fue constante y consistente, lo cual puede verse en lo relativo a la armoniosa actividad de las neuronas. Si bien existen oscilaciones iniciales, éstas no se vinculan a la inestabilidad del controlador, pero sí al sensado del entorno (véase Figura 51.b). Una característica interesante de mencionar es que existen secuencias de movimientos rectilíneas sólo alteradas por la presencia de obstáculos. En relación a esto, la función de fitness se refiere a maximizar la distancia recorrida por el robot. Por otro lado, según se muestra en la Figura 51.a, los nodos presentan un comportamiento similar entre sí pero difieren en el signo. Nuevamente, se señala que ésto depende de la magnitud y el signo de los pesos encontrados genéticamente. Resultados Experimentales 85 (b) (a) Figura 51 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red FFNN durante la tarea de evasión de obstáculos obtenida en el décimo test del mejor controlador (300 generaciones). (a) (b) (c) Figura 52 – Ejemplos de trayectorias seguidas por el robot simulado para una red FFNN durante la tarea de evasión de obstáculos obtenidas para el mejor controlador (300 generaciones); (a) El cuarto, (b) sexto test, y (c) décimo test. Figura 53 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo FFNN en evasión de obstáculos. 86 Resultados Experimentales En la Figura 53, existe un número de generaciones iniciales (antes de la generación 20) dentro del cual el agente alcanza a adaptarse (generacionalmente) a la acción de evasión de obstáculos de manera temprana, lo cual produce un patrón estable de fitness máximo. Como es posible apreciar, existen grandes variaciones del peor fitness. Probablemente, esto esté relacionado con mutaciones acontecidas durante cada generación, las cuales no fueron apropiadas en relación con la medida del desempeño del agente según la tarea a resolver. 5.3.2.2 Experimentos con RFFNN En cuanto a la estrategia presentada por el controlador RFFNN, y de igual forma que ocurrió en fototaxis, ésta no varió significativamente de aquella obtenida con FFNN, aunque su medida de fitness fue levemente menor (véase Tabla 17). Un punto a destacar es que a diferencia de la FFNN, debido a la recurrencia de su morfología, existen períodos de oscilación neuronal sin que existan mediciones sensoriales que las causen. En pocas palabras, en las RFFNN dada la incidencia de entradas exitatorias del ambiente, éstas se prolongan en la actividad de las neuronas luego que desaparezcan tales entradas, lo cual no puede observarse en las FFNN (véase Figura 54) en el rango temporal 70-80. (b) (a) Figura 54 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red RFFNN durante la tarea de evasión de obstáculos obtenida en el noveno test del mejor controlador (300 generaciones). (a) (b) (c) Figura 55 – Ejemplos de trayect orias seguidas por el robot simulado para una red RFFNN durante la tarea de fototaxis obtenidas para el mejor controlador (300 generaciones); (a) El tercer, (b) noveno, y (c) décimo test. Resultados Experimentales 87 Figura 56 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo RFFNN en evasión de obstáculos. En relación a la gráfica del fitness anterior, se aprecia que es similar a la presentada por FFNN, con lo cual se concluyen idénticos resultados señalados en la sección 5.3.2.1. No obstante, existe una leve tendencia a producirse algunas variaciones que generan pequeños saltos (aproximadamente en la generación 20). Esto puede estar causado por procesos mutacionales no adecuados con la evolución. Pese a ello, existe una tendencia positiva a la estabilidad generacional. 5.3.2.3 Experimentos con CTRNN Una de las características peculiares de las CTRNN al momento de realizar la tarea de evasión de obstáculos, es que no es simple de generar un comportamiento apropiado. Frecuentemente, si bien en todos los experimentos realizados con otros tipos de controladores es posible obtener comportamientos tal que un robot no salga de situaciones de encierro (véase Figura 58.c), con una configuración CTRNN éstas situaciones fueron más factibles de encontrar. Es posible decir que el controlador CTRNN desarrollado utiliza constantes temporales no apropiadas, lo cual produce que en determinadas oportunidades tales parámetros no sean los óptimos para el problema a afrontar. Esto particularmente ocurrió con este tipo de controlador, dado que posee un número significativamente alto de parámetros libres a ser determinados genéticamente. En principio, ésto puede ser solucionado mediante un proceso evolutivo con un número mayor de generaciones. 88 Resultados Experimentales (a) (b) Figura 57 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red CTRNN durante la tarea de evasión de obstáculos obtenida en el séptimo test del mejor controlador (300 generaciones). (a) (b) (c) Figura 58 – Ejemplos de trayectorias seguidas por el robot simulado para una red CTRNN durante la tarea de evasión de obstáculos para el mejor controlador (300 generaciones); (a) El primer, (b) séptimo, y (c) octavo test. Figura 59 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo CTRNN en evasión de obstáculos. Resultados Experimentales 89 Como es mostrado en la Tabla 17, el desempeño del controlador no fue el mejor, tanto a escala temporal como así también en cuanto a su desempeño. Según se muestra en la evolución del fitness, éste es bajo en relación a los controladores previamente analizados, generándose además medidas del desempeño del robot negativas. Esto se debe a la compleja dinámica interna del controlador y a los parámetros sujetos a evolución. 5.3.2.4 Experimentos con PNN El comportamiento de un controlador tipo PNN para evasión de obstáculos resultó ser poco apropiado. La Figura 61 muestra algunas de las trayectorias generadas durante la evaluación del controlador. A pesar de que el valor de fitness fue considerablemente alto, el desempeño fue malo, tal como se puede ver en las figuras. Al igual que en fototaxis, los valores de las actividades de los nodos casi todo el tiempo fueron cercanos a cero (Figura 60.a) en función a los valores sensados (Figura 60.b). Con esto se concluye que las reglas de aprendizaje poseen poca incidencia en la adaptación del controlador. Tal como se puede ver en la Figura 61.b, se puede percibir que un comportamiento errático fue frecuente en este tipo de control, probablemente debido a la configuración de valores de los parámetros genéticos y a la influencia de las variaciones plásticas, las cuales en la mayoría de los casos generan alteraciones no deseables (p. ej. véase en Figura 60.a el rango temporal 50-70 del nodo 1). (a) (b) Figura 60 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red PNN durante la tarea de evasión de obstáculos obtenida en el noveno test del mejor controlador (300 generaciones). 90 Resultados Experimentales (a) (b) (c) Figura 61 – Ejemplos de trayectorias seguidas por el robot simulado para una red PNN durante la tarea de evasión de obstáculos obtenidas para el mejor controlador (300 generaciones); (a) El primer, (b) cuarto, y (c) noveno test. Figura 62 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo PNN en evasión de obstáculos. La Figura 62 señala que el desempeño del agente se eleva rápidamente al inicio y permanece estable pero con una leve tendencia a crecer. Una posible mejora sobre esta red en evasión de obstáculos, puede estar orientada a buscar un mayor grado de adecuación de los pesos sinápticos mediante reglas plásticas por medio de la modificación de los parámetros implicados, p. ej. la tasa de cambio plástico (sección 4.2.4.4). Con ello se buscaría que el controlador se adecue, en mayor medida, al entorno, lo cual se vería reflejado en la actividad neuronal obtenida (véase Figura 60.a). 5.3.2.5 Experimentos con HPNN Una red del tipo HPNN generó un comportamiento similar al de las PNN, en cuanto a la actividad de las neuronas, pero con trayectorias acordes al problema de evasión de obstáculos. Un punto a diferenciar es que las oscilaciones en las actividades en los nodos fueron relativamente más tenues que aquellas presentadas por la PNN, y en especial con mayor amplitud. Resultados Experimentales 91 (b) (a) Figura 63 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red HPNN durante la tarea de evasión de obstáculos obtenida en el sexto test del mejor controlador (300 generaciones). (a) (b) (c) Figura 64 – Ejemplos de trayectorias seguidas por el robot simulado para una red HPNN durante la tarea de evasión de obstáculos obtenidas para el mejor controlador (300 generaciones); (a) El cuarto, (b) sexto, y (c) noveno test. Figura 65 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo HPNN en evasión de obstáculos. 92 Resultados Experimentales Como observación de la estrategia planteada por este tipo de controlador, es posible decir que genera un comportamiento apropiado. Pese a ello, demoró un tiempo considerablemente mayor que la propuesta planteada por FFNN y con un menor valor de fitness promedio. Por lo tanto, y debido a la naturaleza del problema de evasión de obstáculos, el cual es un problema puramente reactivo, no se aprecia gran utilidad de contar con reglas plásticas de adaptación tal como con la configuración planteada. No obstante, puede ser de utilidad analizar distintas configuraciones plásticas-homeostáticas para concluir en mayor detalle tal incidencia. 5.3.2.6 Evasión de Obstáculos con Objetivo: Navegación Como es de esperar, el problema de navegación presupone tener una meta a ser alcanzada por el robot. Tal problema es desarrollado extensamente en la bibliografía con controladores del tipo FFNN, RFFNN, y CTRNN. De acuerdo a la literatura disponible, pocos son los trabajos que presentan resultados con controladores plásticos y más aún con HPNN asociados a navegación. En esta sección, si bien se encontró que un desempeño conveniente de evasión de obstáculos es generado con FFNN, se analiza qué ocurre con un controlador HPNN al momento de resolver el problema de navegación. Inspirado en diferentes trabajos descritos en la sección 3.2.3 y en [Nolfi et al., 2000, Cap. 4], se propone analizar en esta sección la aproximación de un robot a una determinada fuente de luz en un entorno cerrado pequeño25 evadiendo obstáculos. Esto significa que existe una parte del comportamiento final del robot la cual está asociada a la detección del objeto y otra vinculada a evadir obstáculos. Dicho problema es poco predecible si lo comparamos con evasión de obstáculos (puramente reactivo), dada la combinación de sub-comportamientos dentro del mismo controlador. No obstante, es posible llevarlo a cabo de manera reactiva con un resultado satisfactorio. La medida de fitness utilizada corresponde a la señalada para fototaxis (Ecuación 9). La manera en que los comportamientos son coordinados autónomamente dadas las actividades de los sensores de obstáculos o de luz es la siguiente. Al momento de ser detectado un obstáculo en la cercanía del robot (esto dependiendo del valor de salida de la red de evasión de obstáculos), la sub-red de evasión toma el control sobre los actuadores. En otro caso, la sub-red de fototaxis es la encargada de controlar al robot hacia el objetivo. Un punto importante de mencionar es que tanto la coordinación de los comportamientos, como así también la especificación de ambos comportamientos a través de sus sub-redes neuronales, estuvieron dentro de un único controlador. 25 Se redujo el tamaño del entorno para poder apreciar en mayor medida lo que ocurre en relación a la tarea a realizar, sin que se produzcan demoras debido a la distancia a recorrer por el robot. Resultados Experimentales 93 El mapeo entre sensores y entradas de la red, fue el siguiente: Entrada Sensor V0 V1 V2 V3 V4 V5 V6 V7 V8 0 SL0 (2) SO (2) 0 prom(SO (3), SO (4)) SL0 (5) SO (5) SL0 (3) SL0 (4) Tabla 23 – Mapeo sensor-entrada de la red utilizada para los experimentos con navegación, siendo SLj(i) y SO(h) la especificación de un sensor infra-rojo receptor (sensor lumínico) vinculado al i-ésimo sensor del robot relativo a la j-ésima fuente, y al sensor de proximidad según el h-ésimo sensor del robot, respectivamente. (a) (b) Figura 66 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red HPNN durante la tarea de fototaxis con evasión de obstáculos (navegación) obtenida en el sexto test del mejor controlador (50 generaciones). 94 Resultados Experimentales (a) (b) (c) Figura 67 – Ejemplos de trayectorias seguidas por el robot simulado para una red HPNN durante la tarea de fototaxis con evasión de obstáculos (navegación) obtenidas para el mejor controlador (50 generaciones); (a) El tercer, (b) sexto, y (c) décimo test. Figura 68 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo HPNN en evasión de obstáculos con objetivo (navegación). Luego de realizar el experimento propuesto se obtuvieron los siguientes resultados: HPNN Mejor Fitness Prom. Fitness Promedio Peor Fitness Prom. Tiempo Porcentaje de Éxito Estabilidad 0.6104 0.3983 0.1299 5’ 51’’ 9/10 28 Tabla 24 – Resultados promedios de la evolución de los neuro-controladores implementados para navegación sobre el total de las generaciones (50 generaciones y 10 corridas). Un punto importante de destacar es que la experimentación se realizó sobre 50 generaciones. Esto se debe a que no fue necesario un número mayor de generaciones para obtener un desempeño aceptable. A lo largo del proceso evolutivo el objetivo se mantuvo fijo, especificándose como una fuente de luz en particular. Luego, durante la vida del controlador, el objetivo perseguido por el robot fue el mismo que para el proceso antes mencionado. Como se puede ver en la Figura 68, el desempeño del controlador alcanza aprox. en la generación 28 el valor máximo promedio por primera vez, mientras que para dicha generación en la Figura 65 (HPNN en evasión de obstáculos) se obtiene un valor mucho mayor, pero con un valor similar cuando se evaluó en fototaxis simple (Figura 47). Esto señala que fototaxis influye en mayor medida en el problema de Resultados Experimentales 95 navegación que lo propio por evasión de obstáculos, ratificándose que el problema de ir hacia el objetivo es un problema más difícil de evolucionar que uno puramente reactivo como es evasión de obstáculos. Nótese que existe una escalada incremental en el fitness (Figura 68) similar a la presentada por fototaxis simple (Figura 47). En cuanto a la actividad de los nodos (Figura 66.a), éstos se comportaron de manera semejante a lo mostrado por la Figura 63.a relacionada a HPNN con evasión de obstáculos, pero con mayor permanencia en valores próximos a cero debido a los sensores de luz, lo cual es propio del problema de fototaxis. Con respecto a cada uno de los comportamientos individuales, se concluye que ellos se comportaron tal como se señaló en las secciones 5.3.2.5 y 5.3.1.5. En relación al desempeño de ambos comportamientos en navegación, es posible decir que el comportamiento conjunto se realizó de manera apropiada, tal como se muestra en la Figura 67. 5.3.3 Aprendizaje Como se describió en la sección 2.7.4, evolución y aprendizaje son dos formas de adaptación biológica que difieren en espacio y tiempo. Evolución es un proceso de reproducción selectiva y sustitución basada en la existencia de algunas variaciones. Por el contrario, aprendizaje es un conjunto de modificaciones generadas dentro de cada individuo durante su propia vida. Varios son los intentos de definir experimentalmente el problema de aprendizaje con robots. A modo general, la configuración utilizada a lo largo de esta sección está basada en los trabajos presentados en la sección 3.2.3 y en [Nolfi et al., 2000]. En términos generales, la experimentación con cada controlador obedece a la evaluación de cada individuo en cuanto a alcanzar un objetivo. Este problema, si bien es predecible considerando el comportamiento final del robot, reviste de interés en observar qué ocurre cuando se lo combina con la técnica de Aprendizaje por Refuerzos [Arkin, 1998]. El aprendizaje propuesto en esta sección tiene por objetivo que el robot sea capaz de alcanzar una de dos posibles posiciones en varias oportunidades (especificadas por distintas fuentes de luz). Con ello, la determinación de cuál es el objetivo apropiado es decidido explícitamente durante el proceso evolutivo. Cada vez que el robot alcance alguna fuente de luz correcta, éstas se re-ubican en forma aleatoria para que la búsqueda continúe. Durante este ciclo, cada vez que el robot alcanza la posición final, es premiado con un valor positivo de entrada el cual es ingresado a la red por una entrada adicional. Por el contrario, cuando es alcanzada una fuente de luz que no es la apropiada, en tal entrada adicional se ingresa un valor negativo, mientras que en el caso que no ocurra algo de lo anterior, la entrada permanece nula. A continuación se presenta el criterio de ponderación seleccionado para llevar a cabo el aprendizaje por refuerzos (ϕ): δ ϕ = − δ si el objetivo alcanzado es correcto si el objetivo alcanzado es incorrecto 0 (Ecuación 11) otro donde δ es un valor predefinido, siendo 1 para el experimento propuesto. Al momento de evaluar el comportamiento del mejor controlador, el proceso de especificación del objetivo es el mismo que el acontecido durante la evolución. Así, se buscó el análisis de aprendizaje a fin de generar mediante evolución un sistema capaz de maximizar el número de veces que el robot alcanza el objetivo correcto en un entorno libre de obstáculos. Cabe aclarar que la definición del fitness está basada en la propuesta de Togelius (sección 3.2.3), pero se incorporaron modificaciones a la misma: 96 Resultados Experimentales n=200 n=200 ∑ ϕi si ∑ ϕi ≥ 1 i =0 Φ 3 = i =0 max (V f ) otro caso (Ecuación 12) donde Vf se refiere al valor sensado por el f-ésimo sensor (1 ≤ f ≤ 8). Esta función es evaluada y sumada para cada ciclo de ejecución. Cabe destacar que los componentes de la Ecuación 12 no expresan cuál es la dirección a la que el robot debe moverse y los mismos pueden ser cuantificables en un robot real. El mapeo entre sensores y entradas de la red, fue el siguiente: Entrada Sensor V0 V1 V2 V3 V4 V5 V6 V7 V8 refuerzo ϕ prom(SL0(3), SL0(4)) prom(SL1(3), SL1(4)) prom(SL0(2), SL0(3)) prom(SL1(2), SL1(3)) prom(SL0(4), SL0(5)) prom(SL1(4), SL1(5)) alcanzó objetivo 0 à 1 alcanzó objetivo 1 à 1 Tabla 25 – Mapeo sensor-entrada de la red utilizada para los experimentos con aprendizaje, siendo SLj(i) la especificación de un sensor infra-rojo vinculado al i-ésimo sensor del robot relativo a la j-ésima fuente. Prom es un indicador del promedio de los valores sensados. Con respecto al comportamiento en aprendizaje, son necesarias señales adicionales para llevar a cabo dicho comportamiento (Tabla 25). Las señales en cuestión corresponden a una por cada tipo de objetivo que indiquen cuando el robot se encuentra en una determinada fuente de luz, junto con una señal de estímulo (refuerzo) que es positiva únicamente cuando el robot alcanza la fuente deseada, negativa si alcanza una fuente no deseada y un valor neutro en otro caso. Adem ás, cabe mencionar que la designación de cuál es la fuente de luz a ser buscada cambia de prueba en prueba aleatoriamente. 5.3.3.1 Experimentos con FFNN El desempeño de los experimentos con este tipo de controlador arrojó ser positivo (Tabla 18). En mayor medida a lo esperado, la manera en que el robot presentó sus movimientos para alcanzar el objetivo fue correcta, siendo esta constante y consistente al igual que rápida, tal como lo muestra la línea levemente continua en la Figura 70. Una característica importante de señalar es que la aproximación del robot al objetivo no es plenamente rectilínea. Esto es a causa de que la selección evolutiva especifica la manera en que el robot debe desplazarse, sin que ninguna determinación previa por parte del programador condicione la obtención de los resultados según a cómo aproximarse al objetivo. En cuanto a esto, la medida del desempeño está relacionada a maximizar el número de veces en que el robot alcanza el máximo de puntuación, dándose sólo cuando mayor sea la cantidad de veces que se aproxime a la fuente de luz correcta. Resultados Experimentales 97 (b) (a) Figura 69 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red FFNN durante la tarea de aprendizaje obtenida en el segundo test del mejor controlador (300 generaciones). (a) (b) (c) Figura 70 – Ejemplos de trayectorias seguidas por el robot simulado para una red FFNN durante la tarea de aprendizaje obtenidas para el mejor controlador (300 generaciones); (a) El segundo, (b) tercer, y (c) séptimo test. Figura 71 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo FFNN en aprendizaje. 98 Resultados Experimentales Los nodos presentan un comportamiento similar entre sí con oscilaciones propias del sensado del entorno. En cuanto a la Figura 71 relativa al fitness, ésta posee una tendencia creciente a medida que transcurren las generaciones, lo cual señala que existe una mejora generacional. Nótese, además, que prácticamente al inicio del proceso la puntuación de la función de fitness es alta. De esta manera, considerando los resultados de la Tabla 18, existe una buena adecuación de la red para resolver la tarea señalada. En particular, esto puede relacionarse a que el controlador FFNN posee una configuración fácil de evolucionar, y por ende de encontrar combinaciones apropiadas de valores de variables sujetas al proceso evolutivo. 5.3.3.2 Experimentos con RFFNN A diferencia con el controlador FFNN, la estrategia planteada por RFFNN fue menos eficiente con respecto a la trayectoria recorrida, no así al número promedio de veces que alcanzó el objetivo correcto (véase Tabla 18). Como puede observarse en la Figura 73, el controlador generó rotaciones del robot (manifestadas como pequeños círculos en el gráfico), principalmente cuando era necesario cambiar de dirección. Muchas veces esto fue una estrategia apropiada dado que requería poco tiempo de variación de dirección hacia la nueva posición objetivo. No obstante, en algunas oportunidades esto era generado sin causas aparentes. Probablemente, se debe a las conexiones recursivas en su topología, junto con la combinación de pesos sinápticos no apropiados, causa por la cual se generó tal comportamiento. (a) (b) Figura 72 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red RFFNN durante la tarea de aprendizaje obtenida en el séptimo test del mejor controlador (300 generaciones). Resultados Experimentales 99 (a) (b) (c) Figura 73 – Ejemplos de trayectorias seguidas por el robot simulado para una red RFFNN durante la tarea de aprendizaje obtenidas para el mejor controlador (300 generaciones); (a) El primer, (b) séptimo, y (c) noveno test. Figura 74 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo RFFNN en aprendizaje. Un punto significativo de señalar es la escalada de la función de fitness (Figura 74). A diferencia de la Figura 71 vinculada con FFNN, la cual muestra estabilidad en la tendencia del fitness, en RFFNN se ve que un número mayor de generaciones presenta un alto valor continuamente creciente. Una posible interpretación de esto, contemplando además que en la Tabla 18 la RFFNN fue la que mayor nivel de fitness presentó, puede estar referida a las combinaciones de pesos sinápticos (particularmente en la capa oculta de la red) que causaron los movimientos circulares mostrados en la Figura 73. En pocas palabras, la aparición de dichos movimientos fue beneficiosa, en alguna manera, al momento de sensar la posición del objetivo. En el caso de que tales movimientos no se hubiesen realizado, posiblemente no se habría alcanzado el objetivo dada la falta de sensado de la fuente. Por lo tanto, lo antes planteado puede reflejar que paulatinamente tal combinación de pesos perdure generacionalmente, alcanzando el controlador resp ectivo mayores niveles de fitness con el correr de las generaciones. Una posible solución al movimiento del robot puede estar orientada a la realización de pruebas con un número mayor de generaciones, o incorporando algún indicador que minimice el recorrido del robot dentro de la función de fitness. 5.3.3.3 Experimentos con CTRNN Si bien el desempeño del controlador CTRNN con una configuración de aprendizaje como la planteada, se asemeja en algún grado al presentado por RFFNN (respecto de giros bruscos), éste es muy diferente. Principalmente, se encontró la realización de un número mayor de acciones no justificadas, las cuales generaban pequeñas rotaciones (rulos) en la trayectoria hacia el objetivo (Figura 76). Además, estas trayectorias se llevaron a cabo de forma más pausada (baja movilidad del robot) en relación a otros controladores previamente vistos. 100 Resultados Experimentales (a) (b) Figura 75 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red CTRNN durante la tarea de aprendizaje obtenida en el cuarto test del mejor controlador (300 generaciones). (a) (b) (c) Figura 76 – Ejemplos de trayectorias seguidas por el robot simulado para una red CTRNN durante la tarea de aprendizaje obtenidas para el mejor controlador (300 generaciones); (a) El tercer, (b) cuarto, y (c) sexto test. Figura 77 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo CTRNN en aprendizaje. Resultados Experimentales 101 Un hecho curioso fue la tendencia del fitness (Figura 77). Como se puede ver en generaciones previas a 100, su tendencia fue negativa, mientras que luego ascendió muy lentamente. Posteriormente, se elevó de manera abrupta, muy probablemente a causa de mutaciones a favor de la medida del fitness propuesta. Particularmente, tal como se señaló para las RFFNN, el comportamiento de la función de fitness pudo deberse a combinaciones sinápticas no apropiadas durante el proceso evolutivo. Una diferencia en cuanto a las RFFNN puede verse en la Figura 75.a, asociada a variaciones menores de las actividades sinápticas respecto de su magnitud, mientras que para las RFFNN éstas fueron mayores. Nuevamente, se indica que posiblemente la combinación de influencias sinápticas no benefició el desempeño presentado por la CTRNN. Además, vale señalar que en su mayoría tales activaciones fueron abruptas y poco armoniosas, lo cual puede verse en las actividades de los nodos motores, explicando la falta de coordinación entre los actuadores a fin de generar movimientos hacia el objetivo. 5.3.3.4 Experimentos con PNN El comportamiento de la red PNN durante el proceso de aprendizaje generó altas velocidades del robot, lo cual permitió que sea alcanzado un número mayor de objetivos. La Figura 79 muestra con claridad cuáles fueron algunas de las trayectorias del controlador plástico, siendo éstas en su mayoría movimientos prácticamente rectilíneos. (a) (b) Figura 78 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red PNN durante la tarea de aprendizaje obtenida en el sexto test del mejor controlador (300 generaciones). 102 Resultados Experimentales (a) (b) (c) Figura 79 – Ejemplos de trayectorias seguidas por el robot simulado para una red PNN durante la tarea de aprendizaje obtenidas para el mejor controlador (300 generaciones). (a) El quinto, (b) sexto, y (c) noveno test. Figura 80 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo PNN en aprendizaje. En lo referido a la gráfica de la función de fitness (Figura 80), ésta presentó una escalada similar a la generada por RFFNN pero no tan marcada en lo que se refiere a la pendiente de crecimiento. Esto produjo que el valor de fitness promedio no fuera tan alto como para RFFNN. No obstante, el comportamiento final fue aceptable, posiblemente dado a algún tipo de adecuación neuronal combinada con reglas sinápticas apropiadas al final del proceso evolutivo. 5.3.3.5 Experimentos con HPNN Al observarse la estrategia de movimientos planteada por la red HPNN, es posible decir que si bien es altamente aceptable el comportamiento generado, presenta una serie de alteraciones que lo hacen muy particular. Básicamente, éstas se refieren a cambios de su trayectoria, tal como ocurre con RFFNN, manifestándose como movimientos circulares cerrados pero con un radio de giro mayor que para las RFFNN. Con ello, es posible decir que genera una combinación deseable de velocidades y cambios de dirección de forma rápida (véase Figura 82). Resultados Experimentales 103 (a) (b) Figura 81 – (a) Representación de las actividades de los nodos y (b) sensado del controlador para una red HPNN durante la tarea de aprendizaje obtenida en el cuarto test del mejor controlador (300 generaciones). (a) (b) (c) Figura 82 – Ejemplos de trayectorias seguidas por el robot simulado para una red HPNN durante la tarea de aprendizaje obtenidas para el mejor controlador (300 generaciones; (a) El cuarto, (b) quinto, y (c) sexto test. Figura 83 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo HPNN en aprendizaje. 104 Resultados Experimentales En lo que respecta al fitness, éste es creciente y en las generaciones finales tiende a estabilizarse. Por lo tanto, es posible decir que el comportamiento final está mejor adaptado para la problemática estudiada que para otros controladores. Cabe señalar que en la Figura 82 sólo se señalan las posiciones finales de las fuentes de luz, mientras que aquellas fuentes previamente alcanzadas por el robot no son representadas. De este modo, sólo se grafica cuál fue la trayectoria del robot, siendo la misma apropiada en relación a la tarea a resolver. 5.3.3.6 Aprendizaje con Variaciones Deliberadas El mecanismo de aprendizaje empleado en [Hinton et al., 1987], está basado en una búsqueda aleatoria. Sin embargo, el aprendizaje biológico parece ser más direccional que aleatorio en cuanto a la variación sináptica (p. ej. aprendizaje Hebbiano) [Urzelai, 2000]. Una propuesta de combinar tal mecanismo direccional con evolución, presupone copiar en algún grado los cambios del entorno, los cuales ocurren más rápido que a nivel generacional. Uno de estos enfoques es el aprendizaje por refuerzo evolutivo. En [Ackley et al., 1990] se presenta un enfoque original combinando aprendizaje y evolución, capaz de extraer información del entorno para ser utilizada como supervisión del controlador. Según Ackley et al., la combinación de evolución y aprendizaje mejora el desempeño o comportamiento final del robot. Esto indica que durante las generaciones iniciales el controlador no es capaz de generar un comportamiento apropiado, pero una vez que éste aprenda tal habilidad utilizando una señal de refuerzo, mejora su desempeño con el tiempo. No obstante, en las generaciones finales la habilidad buscada está presente. Esto representa un claro ejemplo del Efecto Baldwin, dado que la habilidad adquirida mediante el aprendizaje durante la vida del controlador es gradualmente fijada en el genotipo. La red a ser utilizada en el experimento que se mostrará en esta sección, corresponde a una HPNN dado que sus características están vinculadas con el criterio adaptativo durante la vida del controlador antes señalado. Debido a su topología, se incorporaron dos nodos adicionales, los cuales proveen de entradas que indican si fue alcanzada una determinada fuente u objetivo. La activación de tales nodos adicionales (uno por cada objetivo posible para el experimento propuesto) puede tomar valores ±1. Adicionalmente, se incorpora un nodo que representa la señal de refuerzo (sección 5.3.3). Durante la evolución, dichos nodos pueden ser la causa de una mayor inestabilidad. No obstante, la evolución pudo siempre seleccionar reglas para minimizar el grado de conexión de dicho nodo adicional en relación a otros nodos. Esto ocurre cuando la señal de refuerzo lo establezca mediante una señal negativa. Las conexiones desde tales nodos adicionales hacia otros nodos en la red, se especificó como se señala en la Tabla 25. La función de fitness de esta prueba corresponde a la señalada en la Ecuación 12. Como se expresa en [Urzelai, 2000], el aprendizaje por refuerzo evolutivo decide autónomamente “cuándo” y “qué” debe ser aprendido. Inspirado en el trabajo de Togelius (sección 3.2.3), en esta sección se presentan los resultados de incorporar aprendizaje evolutivo en el problema de discernir cuál es el objetivo apropiado. Cabe aclarar que en la bibliografía disponible no se observó que se realizara esto utilizando HPNN. Por lo tanto, dicho problema reviste de un alto grado de imprevisibilidad si lo comparamos con los experimentos anteriormente descritos. Pese a ello, es posible llevarlo a cabo de forma reactiva. En cuanto al mapeo sensor-entrada de la red, éste fue el mismo que el utilizado para aprendizaje (sección 5.3.3). Resultados Experimentales 105 (a) (b) Figura 84 – (a) Representación de las actividades de los nodos y (b) del sensado del controlador para una red HPNN durante la tarea de aprendizaje con variaciones deliberadas obtenida en el sexto test del mejor controlador (1000 iteraciones). (a) (b) (c) Figura 85 – Ejemplos de trayectorias seguidas por el robot simulado para una red HPNN durante la tarea de aprendizaje con variaciones deliberadas obtenidas para el mejor controlador (1000 iteraciones); (a) El sexto, (b) séptimo, y (c) noveno test. Figura 86 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo HPNN en aprendizaje con variaciones deliberadas. 106 Resultados Experimentales Luego de realizar el experimento con fototaxis condicional, se obtuvieron los siguientes resultados: HPNN Mejor Fitness Prom. Fitness Promedio Peor Fitness Prom. Tiempo Porcentaje de Éxito Estabilidad 5.3715 2.6261 0.3776 4hs. 28’ 36’’ 10/10 250 Tabla 26 – Resultados promedios de la evolución de los neuro-controladores HPNN implementados para aprendizaje con variaciones deliberadas sobre el total de las generaciones (300 generaciones, 1000 iteraciones y 10 corridas). Como variable condicional (o variable que determina cuál va a ser el valor de entrada que indica el objetivo correcto), se utilizó una configuración similar a la descrita en fototaxis condicional (sección 5.3.1.6). Por otro lado, un número mayor de iteraciones fue utilizado con el propósito de observar cómo influye el aprendizaje por refuerzos a un nivel generacional, de manera más amplia al visto en otros experimentos. En forma breve, se señalará a continuación algunos de los resultados encontrados al variar de tipo de controlador, así como también en el porcentaje de veces que se especifica cuál va a ser el objetivo a ser alcanzado por el robot. • HPNN: 100% de selección de la variable condicional al objetivo 0 durante evolución, y 100% de selección del objetivo 1 durante la vida del controlador. Resultado: predominó un comportamiento hacia el objetivo 0, influido por lo generado durante la evolución. • HPNN: 75% de selección de la variable condicional al objetivo 0 durante evolución, y 100% de selección del objetivo 1 durante la vida del controlador. Resultado: predominó un comportamiento hacia el objetivo 0, influido por lo generado durante la evolución. • HPNN: 50% de selección de la variable condicional al objetivo 0 durante evolución, y 100% de selección del objetivo 1 durante la vida del controlador. Resultado: predominó un comportamiento hacia el objetivo 0, influido por lo generado durante la evolución. Luego de que varias veces sea alcanzado algún objetivo, comienza un comportamiento errático seguido de giros abruptos en el lugar. Probablemente, esto esté generado por variaciones sinápticas que afectaron la dinámica interna del controlador. • CTRNN: 50% de selección de la variable condicional al objetivo 0 durante evolución, y 100% de selección del objetivo 1 durante la vida del controlador. Resultado: comportamiento aceptable, pero no suficiente en comparación con RFFNN. Probablemente, los parámetros evolutivos carecieron del suficiente ajustarse al problema. • PNN: 50% de selección de la variable condicional al objetivo 0 durante evolución, y 100% de selección del objetivo 1 durante la vida del controlador. Resultado: generó un comportamiento poco aceptable en comparación con el propio para HPNN, particularmente al final de cada prueba realizada. Al principio el robot se aproximó mayoritariamente a la fuente correcta. Luego se presentaron comportamientos erráticos y oscilaciones. • RFFNN: 50% de selección de la variable condicional al objetivo 0 durante evolución, y 100% de selección del objetivo 1 durante la vida del controlador. Resultado: altamente aceptable con un 98% de éxito. Esto se debió a que la evolución generó algún tipo de especialización del controlador en cuanto a los parámetros evolutivos de la red. Resultados Experimentales • 107 FFNN: 50% de selección de la variable condicional al objetivo 0 durante evolución, y 100% de selección del objetivo 1 durante la vida del controlador. Resultado: comportamiento aceptable, pero el porcentaje de éxito en alcanzar el objetivo correcto fue el 50%. A lo largo del proceso evolutivo, utilizando una configuración de controlador homeostático como la señalada en una proporción 75% durante la evolución y 100% al objetivo primario durante las pruebas, se obtuvieron los resultados mostrados en la Tabla 26. El desempeño del controlador fue altamente satisfactorio, tal como se puede ver en la Figura 86. Nótese el incremento del desempeño de los controladores durante el proceso evolutivo a partir de la generación 200. En cuanto a la actividad de los nodos, estos se comportaron de manera semejante a la mostrada para HPNN en aprendizaje (sección 5.3.3.5). Por otro lado, el desempeño final del robot produjo una combinación altamente interesante: movimientos rápidos junto con movimientos paulatinos. Cuando el robot podía sensar el objetivo, se generaban en los actuadores las acciones correctas de aproximación, junto con una elevada velocidad. Por el contrario, cuando no era posible sensar el objetivo, el movimiento era más lento pero preciso. Un hecho que remarca la efectividad del controlador fue la forma en que era realizada la evasión del objetivo secundario (o fuente de luz que no debía de ser alcanzada). Un ejemplo de ésto se muestra en la Figura 87, dónde el robot evade una fuente de luz y se dirige a la apropiada. Figura 87 – Ejemplo de los movimientos obtenidos por un controlador HPNN durante pruebas con aprendizaje con variaciones deliberadas Como conclusión, es posible afirmar que la incidencia de aprendizaje por refuerzos en la evolución, combinado con un proceso adaptativo en la vida del controlador, es altamente efectivo en cuanto al comportamiento final buscado, no así en cuanto al cambio pleno de objetivo durante la vida del controlador en relación al propuesto durante el proceso evolutivo. Esta afirmación está basada en los resultados experimentales obtenidos. 5.4 Conclusiones En este capítulo se mostró el proceso de desarrollo de controladores neuronales con evolución monolítica. Principalmente, se presentaron los resultados de cinco tipos de neuro-controladores diferenciados por las topologías de redes neuronales que implementan. Estos desarrollos comprenden la creación de nuevas y más fuertes, o débiles, conexiones entre los componentes (nodos) de la red neuronal del controlador. Esto puede ocurrir dependiendo del tipo de controlador creado, mediante adaptaciones a escala generacional o durante el tiempo de vida en el entorno. A medida que el desarrollo generacional progresa, las relaciones entre los componentes internos de los controladores se adecuan al comportamiento deseado, incrementando además la complejidad de sus patrones comportamentales en la mayoría de los casos. Tal especialización surge como consecuencia de reacciones a acciones en el entorno, tanto en el proceso generacional como durante el tiempo de vida del 108 Resultados Experimentales fenotipo. No obstante, y bajo un enfoque acotado, es posible decir que la especialización se observa principalmente debido al proceso generacional. En cuanto a la decisión de qué tipo de red neuronal es la apropiada para desarrollar las diferentes tareas (fototaxis, evasión de obstáculos y aprendizaje), y en relación a los resultados presentados en este capítulo, es posible decir lo siguiente. Los controladores que implementan redes del tipo FFNN presentaron un comportamiento altamente satisfactorio en la mayoría de los experimentos, principalmente aquellos de carácter reactivo. De igual manera, la configuración de controlador HPNN generó soluciones a las tareas planteadas válidas en la mayoría de las oportunidades. En lo relativo al resto de las configuraciones de redes, no se destaca ninguna característica que las distinga de ser seleccionadas para implementar el controlador final. Considerando la codificación de controladores genéticamente determinados (Tabla 12) al momento de resolver el problema de navegación simple, dicho tipo de neuro-controlador produce en pocas generaciones controladores levemente mejor adaptados que aquellos controladores de sinapsis adaptativas (Tabla 15), a pesar de la similitud del desempeño observado en las diferentes pruebas experimentales. Sin embargo, es válido señalar la necesidad de realizar un análisis más profundo respecto de la codificación de sinapsis adaptativas en comparación con las representaciones genéticamente determinadas. Esto se propone como trabajo futuro. En el capítulo siguiente se presentan los resultados experim entales obtenidos con la utilización de los controladores FFNN y HPNN generados en este capítulo, a fin de desarrollar un estudio sobre un entorno realista de simulación, para luego construir un neuro-controlador complejo de un robot real. Capítulo 6 - EVOLUCIÓN D E NEURO CONTROLADORES MÚLTI-NIVEL EVOLUCIÓN DE NEURO -CONTROLADORES MULTI-NIVEL "Si buscas resultados distintos, no hagas siempre lo mismo" Albert Einstein 6.1 Introducción En el capítulo anterior se describió y analizó la materialización de diferentes comportamientos mediante evolución simulada, con el objetivo de desarrollar neuro-controladores robóticos específicos. Tal estudio provee las bases y componentes de control que implementan las capacidades del controlador final descrito en este capítulo. En la mayoría de los entornos no conocidos, la navegación es llevada a cabo de manera plenamente reactiva (véase el trabajo descrito en la sección 3.2.6). Métodos clásicos como campos potenciales [Khatib, 1986] pueden ser usados, a pesar de que acarrean algunos inconvenientes, tales como problemas de mínimos locales y situaciones de bloqueo. Por otra parte, diferentes metodologías para la generación de controladores vinculados a navegación han sido abordadas en la literatura. Algunas de ellas están referidas al ajuste automático de coeficientes atractivos y repulsivos mediante reglas difusas [Maaref et al., 1996]. Tales metodologías presentan problemas de oscilaciones en entornos estrechos, lo cual representa una limitación en su utilización específica en robótica de entornos restringidos (indoor robotics y AUV en cañones submarinos). Mejoras en dichas metodologías fueron propuestas en la sección 3.2.6 por Maaref et al. sobre un sistema de inferencia difuso inspirado en el comportamiento humano. Principalmente, dicho trabajo aborda el problema de resolver situaciones conflictivas en la navegación de robots autónomos, como en el caso de obstáculos cóncavos y convexos. Por otro lado, desde un enfoque comportamental, el problema de navegación presupone la coordinación de módulos o comportamientos en forma individual o grupal, ante diferentes estrategias de navegación frente a diversos entornos u obstáculos. Como es de esperar, la idea que subyace en dicho problema es “anticipar situaciones” de bloqueo en vez de “descubrirlas y luego actuar” [Maaref et al., 2002]. Si bien tal problema no fue abordado en el presente trabajo, se prevén futuros desarrollos para dicho fin. Por otra parte, tal como se mencionó en capítulos anteriores, una forma de afrontar la creación y coordinación de comportamientos fue propuesta en la sección 3.2.3. Dicha propuesta se denomina Evolución por Niveles y combina características de la Arquitectura por Subsumisión (sección 2.6.1) conjuntamente con un proceso evolutivo artificial. La Evolución por Niveles es utilizada en el presente capítulo para construir un controlador jerárquico que resuelve la tarea de navegación en un entorno cerrado. Debido a lo reciente de dicha propuesta de obtención de controladores evolutivos, no se ha encontrado en la bibliografía disponible un estudio tal como se desarrolla aquí. El desempeño del controlador final es evaluado en función a los resultados mostrados en el Capítulo 5 sobre un simulador simple. Posteriormente, se presentan los resultados obtenidos al utilizar el controlador al momento de ser incorporado dentro de un simulador complejo, el cual tiene la propiedad de modelar el sistema de control de un robot real Khepera. Además, se realizan pruebas en un entorno real no conocido a 110 Evolución de Controladores Multi-Nivel priori. Cabe destacar que a lo largo de este capítulo se exponen diferentes situaciones a resolver en navegación autónoma, tal como fue abordada en el trabajo señalado en la sección 3.2.6. A continuación, se describe la organización del capítulo. En la sección 6.2, se postula el contexto en el que se sitúa la metodología utilizada para el desarrollo de un controlador por niveles. Particularmente, en la sección 6.2.2 se presenta cuál fue la estrategia de coordinación de comportamientos empleada. La sección 6.2.2 detalla las etapas del desarrollo del controlador por niveles. Luego, la sección 6.2.3 se exponen los resultados experimentales en simulación compleja, al momento de evaluar al controlador desarrollado. A continuación, en la misma sección se describen diferentes situaciones en navegación de entornos no conocidos utilizando un robot real. Las secciones 6.3 y 6.4 presentan diferentes implicaciones sobre los resultados obtenidos. Finalmente, la sección 6.5 expone las conclusiones del capítulo. 6.2 Experimentos con Evolución por Niveles Uno de los mayores desafíos que afronta la RE es generar mecanismos automáticos para obtener controladores adaptativos. Esto se refiere a escalabilidad. Como se mencionó anteriormente, escalabilidad hace referencia dentro del contexto planteado a obtener controladores robóticos que puedan resolver problemas complejos en entornos variables. Algunas de las propuestas planteadas en la bibliografía para resolver dichos problemas, presentan soluciones con algún grado de inconveniente en el desempeño final del controlador (véase sección 2.6.3). Seguidamente, las diferentes etapas desarrolladas con la Evolución por Niveles implementada son expuestas. 6.2.1 Coordinación de Niveles Comportamentales En cuanto a la conexión entre comportamientos, puede decirse que la configuración seleccionada es la mostrada en la Figura 88, existiendo tres niveles neuronales (sección 4.3). En el caso que el segundo nivel de evasión de obstáculos presente una salida de referencia Sr superior a un determinado valor b, la entrada vinculada a los actuadores corresponderá a dicho nivel (S obst). En otro caso, las salidas del nivel de fototaxis serán las que generen acciones en los actuadores (S phot). V0,...,Vi V0,...,Vi V0,...,Vi Sensado Señal cond. Controlador de Evasión de Obstáculos Controlador de Fototaxis Condicional Salida de Referencia Sob st. Sr (Sr > b) Señ al de salida Controlador de Aprendizaje Condicional ((S r > b)? Sobst.:SP hot.) Figura 88 – Diagrama esquemático de la conectividad de los neuro-controladores en una Arquitectura por Subsumisión. Evolución de Neuro-Controladores Multi-Nivel Datos sensados 111 objetivo único Navegación Aprendizaje Condicional Fototaxis Condicional Obstáculo Comportamiento de evasión de obstáculos ante posible bloqueo Acciones sobre actuadores Figura 89 – Esquema global de la estrategia de navegación adoptada: pruebas experimentales con el simulador complejo. El proceso evolutivo consiste en una configuración similar a la mostrada en la sección 4.2.3, pero con modificaciones relacionadas con el tiempo de evolución de la población de controladores y con el tipo de topología neuronal. Como característica a destacar, es necesario remarcar que las funciones de fitness utilizadas no se refieren a mediciones de la distancia hacia una fuente de luz objetivo, tanto para el comportamiento de fototaxis y para el nivel de evasión de obstáculos (véase sección 5.3.1 y sección 5.3.2). En cuanto al nivel de aprendizaje (sección 5.3.3), la función de fitness correspondió a la diferencia entre las veces que se alcanzó el objetivo correcto menos las que se alcanzó otro (véase la Ecuación 11). De acuerdo a lo expuesto en la sección 2.6.3, puede decirse que con el enfoque de Evolución por Niveles la evolución de los controladores mejora. Por lo tanto, y a raíz de estos resultados, en la sección que a continuación se presenta, se prosigue con el estudio de la generación de controladores utilizando un enfoque evolutivo por niveles. Principalmente, esto se debe a que no se encuentra ninguna otra metodología mejor, capaz de combinar comportamientos dentro de una misma estructura para una tarea completa mediante evaluación simulada (véase [Téllez et al., 2004]). En la Tabla 27, se resume la metodología seguida. Método Motivaciones Descripción • Estudio inicial presentado en [Togelius, 2004]. • Comparación de la Evolución Monolítica con respecto a la Evolución por Niveles con múltiples neuro-controladores, considerando estudios con controladores simples. Hipótesis a probar • La Evolución por Niveles es un mecanismo apropiado para la generación de controladores complejos. Metodología • Verificación experimental sobre escalabilidad y robustez de neuro-controladores. • Comportamientos complejos que incluyen evasión de obstáculos, fototaxis y aprendizaje durante la vida del controlador. Verificación Experimental: Simulador simple; simulador complejo (YAKS); robot real Khepera. 112 Evolución de Controladores Multi-Nivel Experimentos Combinación de los diferentes neuro-controladores obtenidos con la Evolución Monolítica y distintos comportamientos simples, sobre una tarea compleja (comportamiento de navegación en un entorno no conocido). Datos experimentales Véase descripción en la sección 6.2.3. Resultados Obtenidos Véase figuras de la sección 6.2.3. Tabla 27 – Resumen del método experimental utilizado para el desarrollo de las pruebas con Evolución por Niveles 6.2.2 Resultados Experimentales en Simulación Simple A lo largo de la sección 6.2, se presentará la manera en que se realizó la evolución de un controlador para resolver la tarea compleja de navegación en un entorno no conocido a priori, el cual puede estar basado en la combinación de los comportamientos vistos en la sección 5.3. Este proceso correspondió a la incorporación de controladores en niveles separados en forma incremental con una organización como la señalada en la Figura 88. 6.2.2.1 Etapa 1: Incorporación del Nivel de Fototaxis Inicialmente, se evolucionó el nivel de fototaxis condicional, utilizando para ello una red del tipo FFNN. Esto se debe a que, según lo mostrado en la sección 5.2, presentó el mejor desempeño en relación a otros controladores. Básicamente, consistió en una red con la configuración señalada en la sección 5.3.1.6. [mejor: 0. 3306, promedio: 0. 2180, peor: 0. 0626, tiempo: 5’ 13’’] Figura 90 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo FFNN en fototaxis condicional con obstáculos En la Figura 90 se muestra la evolución del controlador en fototaxis condicional, obteniéndose que el mejor nivel de fitness rondó 0.3306, el promedio 0.2180, mientras que el peor 0.0626. Además, el tiempo que demoró fue 5’ 13’’26. Como es posible observar en la figura, un buen desempeño pudo ser obtenido en pocas generaciones asociadas al nivel de fitness alcanzado. Cabe destacar que dicho comportamiento fue alcanzado con la presencia de obstáculos en el entorno, y de manera que no se registraron inconvenientes en su utilización. 26 El tiempo que demoró el controlador en ser obtenido, es considerablemente menor a los tiempos señalados en la sección 5. Esto se debe a que no se realizó la toma de datos de las señales del entorno, ni de los nodos del controlador en forma gráfica. Evolución de Neuro-Controladores Multi-Nivel 6.2.2.2 113 Etapa 2: Incorporación del Nivel de Evasión de Obstáculos Seguidamente, se procedió a generar el nivel de evasión de obstáculos, con una configuración tal como la señalada en la sección 5.3.2.1. Nuevamente se indica que la configuración de red neuronal para implementar el neuro-controlador fue FFNN. Esto se debe a que presentó el mejor desempeño final para dicha tarea (sección 5.3.1). La Figura 91 muestra la evolución del controlador, obteniéndose en un tiempo de 7’ 01’’ con 0.7736, 0.5882 y 0.2625 niveles de fitness del mejor, promedio y peor controlador respectivamente. [mejor: 0.7736, promedio: 0.5882, peor: 0.2625, tiempo: 7’ 01’’] Figura 91 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo FFNN en evasión de obstáculos. 6.2.2.3 Etapa 3: Evaluaciones Parciales de los Controladores Jerárquicamente Organizados Posteriormente, se realizaron diferentes evaluaciones con ambos controladores jerárquicamente organizados. Se procedió a evolucionar el nivel de evasión de obstáculos por sobre el nivel de fototaxis. En otras palabras, se dejó fija la configuración del nivel de fototaxis y se realizó la evolución del nivel de evasión de obstáculos. Ambos, uno independientemente del otro, se comportaron tal como se especifica en la Figura 90 y Figura 91. No obstante, las pruebas experimentales arrojaron que la combinación de ambos niveles mejora el desempeño global del sistema en cuanto a la aproximación a un objetivo evadiendo obstáculos (Tabla 28). Tal conclusión surge de la comparación de resultados de la sección 5.3.2.6 y los que aquí se exponen. -- Fototaxis cond. con obstáculos -- -- Navegación con obstáculos -- Evolución Monolítico Por Niveles Monolítico Por Niveles Mejor Fitness Prom. 0.228 0.330 0.610 0.773 Fitness Promedio 0.143 0.218 0.398 0.588 Peor Fitness Prom. 0.024 0.062 0.129 0.262 Porcentaje de Éxito 9/10 9/10 9/10 10/10 Estabilidad 65 40 28 150 Tabla 28 – Resultados obtenidos en la evolución de neuro-controladores para Evolución Monolítica y por Niveles sobre el total de generaciones (300 generaciones y 10 corridas). 114 Evolución de Controladores Multi-Nivel Como se puede ver en la Figura 91, la obtención del comportamiento de evasión de obstáculos es simple de generar. Una observación a destacar es que el robot usualmente se encuentra en una situación de evasión de obstáculos cuando se dirige hacia su objetivo y su movimiento no es totalmente armonioso. Esto se debe a que el comportamiento de evasión, puramente reactivo, depende de lo que registran los sensores, y el comportamiento final (o el comportamiento que surge de la combinación ellos) depende del ángulo de incidencia del obstáculo y del objetivo. Dicho movimiento, a veces, es curvilíneo debido a que el robot intenta retomar su camino hacia su destino, encontrándose en una posición similar a la inicial, excepto que presenta un ángulo menor respecto de la posición final, lo cual mejora su postura para sensar la fuente de luz objetivo. En determinadas situaciones, puede repetirse lo antes planteado un número no definido de veces, con lo cual no existe una minimización del recorrido del robot en cuanto ir hacia el objetivo (véase Figura 92). Una posible mejora a tal fin puede orientarse a cuestiones de navegación sobre un entorno conocido [Maaref, et al., 2002]. Según esto, en función a los experimentos realizados con evasión de obstáculos, no se espera obtener un mejor desempeño en futuras pruebas sobre dicha tarea. Figura 92 – Ejemplos de trayectorias generadas con un controlador por niveles. Particularmente, en el caso de evasión de obstáculos, la red neuronal inicial, entrenada mediante evolución, es optimal. Por ejemplo, durante la evolución un conjunto de pesos sinápticos pueden acercarse al valor óptimo esperado (respecto de aquel controlador buscado que resuelva la tarea tal como se espera), posibilitando que el robot varíe de rumbo. De esta manera, es posible decir que los pesos sinápticos de una red que resuelva una tarea específica tal como se espera son óptimos, al menos en algún grado. Principalmente, y en el caso de que los pesos sinápticos no sean los óptimos, se esperaría que el robot, por ejemplo, pondere girar hacia un lado más que hacia el otro. Esto puede observarse en la última de las imágenes de la Figura 92. Por otro lado, el hecho de que ocurran tales movimientos se debe a varios factores: la combinación de red neuronal puramente reactiva (tal como la FFNN) para evasión de obstáculos, y la arquitectura de comportamiento complejo propuesta, no presupone una mejora en el desempeño del robot. Experimentos con otras configuraciones de neuro-controladores p( . ej. HPNN) en el nivel de evasión de obstáculos, causaron similares inconvenientes. Dicha afirmación está basada en los test preliminares mostrados en la sección 5.3.2. Cabe destacar, que resultados similares fueron obtenidos en el trabajo descrito en la sección 3.2.3, por lo cual se sugiere, como es de esperar, que la clave para mejorar el comportamiento final debe enfocarse en el neuro-controlador del nivel de evasión de obstáculos. Otras potenciales soluciones estarían orientadas a incorporar, por ejemplo, sub-comportamientos de evasión de obstáculos, tales como seguimiento de patrones espaciales (zócalos en paredes, o fallas geológicas en el lecho marino) a fin de generar una activación de los comportamientos durante los movimientos de evasión. De este modo, se podría crear ante determinadas circunstancias un movimiento más armonioso y preciso del robot hacia su objetivo. Además, diferentes conexiones (o reglas) entre niveles pueden ser combinadas, particularmente generando combinaciones que inhiban ciclos de movimientos como el señalado en la Figura 92, y activen comportamientos combinados para salir de situaciones no deseadas, que será motivo de futuros estudios. Evolución de Neuro-Controladores Multi-Nivel 6.2.2.4 115 Etapa 4: Incorporación del Nivel de Aprendizaje Continuando con el desarrollo del controlador final, se incorporó un nivel por sobre el de evasión de obstáculos, vinculado a aprendizaje y en relación a la función de fitness mostrada en la Ecuación 12. La configuración de dicho neuro-controlador correspondió a la señalada en la sección 5.3.3.6, a excepción de que las entradas relacionadas a los sensores (V1 ...V6 de la Tabla 25), no fueron incorporadas. Esto fue dado que el nivel de fototaxis cuenta con las entradas necesarias para la consideración de la percepción de las fuentes de luz. Se probaron dos configuraciones al respecto, FFNN y HPNN. [mejor: 2.1196, promedio: 1.2141, peor: 0.4026, tiempo: 17’ 44’’] [mejor 2.1473, promedio: 1.2130, peor: 0.3880, tiempo: 36’ 46’’] Figura 93 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo FFNN en aprendizaje condicional, por sobre los niveles de fototaxis condicional (FFNN) y evasión de obstáculos (FFNN) sin obstáculos. Figura 94 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo HPNN en aprendizaje condicional, por sobre los niveles de fototaxis condicional (FFNN) y evasión de obstáculos (FFNN) sin obstáculos. [mejor: 0.9540, promedio: 0.3105, peor: 0.1803, tiempo: 19’ 28’’] [mejor: 0.9230, promedio: 0.3000, peor: -0.1860, tiempo: 37 33’’] Figura 95 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo FFNN en aprendizaje condicional, por sobre los niveles de fototaxis condicional (FFNN) y evasión de obstáculos (FFNN) con obstáculos. Figura 96 – Performance del fitness del mejor, promedio, y peor controlador durante las diferentes generaciones. Medición realizada según la función de fitness sobre una población de controladores del tipo HPNN en aprendizaje condicional, por sobre los niveles de fototaxis condicional (FFNN) y evasión de obstáculos (FFNN) con obstáculos. Como se puede ver en las figuras anteriores, el desempeño del controlador fue muy similar en las configuraciones señaladas (aprendizaje con un controlador del tipo FFNN y HPNN). Una posible interpretación está vinculada a que sólo difieren en el nivel de aprendizaje al momento de ser probado el controlador en un entorno simulado con y sin obstáculos. Además, nótese en algún grado que los tiempos fueron menores a aquellos señalados en la sección 5.3.3 (principalmente en la Tabla 18). Esto, desde un punto de vista arquitectónico, se debe a que la evolución sólo se vinculó a una pequeña red de aprendizaje, 116 Evolución de Controladores Multi-Nivel junto con la actualización de aquellos controladores relativos a la evasión de obstáculos y a fototaxis. Además, un hecho importante de señalar es que las gráficas muestran una estabilización de la función de fitness desde generaciones tempranas. Muy probablemente, esto esté asociado a una adecuación generacional en la evolución de los controladores respecto de la función de fitness o a una convergencia de los genotipos a un mínimo local sostenida en el tiempo. Posiblemente, el último de los motivos pueda ser analizado y mejorado mediante la variación de los operadores genéticos (p. ej. tasa de mutación). Particularmente, se observó que la configuración mostrada en la Figura 95 fue superior en cuanto a la armonía de los movimientos en comparación con otras alternativas (p. ej. Figura 96), mientras que la representada para la Figura 96 generó movimientos cíclicos no deseados del robot en forma frecuente. A diferencia con el controlador de la sección 5.3.3.6 (aprendizaje con variaciones deliberadas), el fitness promedio en todos los casos fue mucho menor. Esto se debe a que el entorno es diferente, particularmente por la presencia de obstáculos, disminuyendo la posibilidad de alcanzar el objetivo. 6.2.2.5 Etapa 5: Evaluación Final de los Controladores Jerárquicamente Organizados En aquellos experimentos con entornos sin obstáculos, y en los que sí los había, se encontró una fuerte incidencia del módulo de evasión de obstáculos, lo cual se ve reflejado en la medida del fitness en los cuatro gráficos anteriores. Esto se debe a que las gráficas son similares a las mostradas en la sección 5.3.2, principalmente en la evolución de la tendencia del mejor fitness. No obstante, se puede observar que en las alternativas señaladas en pocas generaciones el controlador se estabiliza, con lo cual es posible concluir que la habilidad de aprender a identificar, en alguna medida, el objetivo apropiado es simple de generar. Tal como se pudo encontrar en la sección 5.3.3.6, el nivel de aprendizaje utilizado se obtiene sin mucha complicación. Pese a esto, un análisis más profundo revela un hecho no esperado. A continuación se presentan diferentes experimentos vinculados a aprendizaje, desarrollados con el objetivo de analizar dicha característica no esperada. Se encontró que las implementaciones generadas con el controlador FFNN y HPNN en el nivel de aprendizaje, presentan un comportamiento similar en el controlador final. Si bien la adaptación durante la vida del controlador es más propicia de ser llevada a cabo por un controlador plástico, se encontró que una configuración del tipo FFNN como la utilizada puede ser desarrollada satisfactoriamente en dicho nivel. Por lo tanto, cabe preguntarse ¿cómo una configuración de red neuronal no plástica, y sin la capacidad de adaptarse a las situaciones del entorno durante la vida del controlador, generó los mismos resultados que una red plástica? La respuesta, tentativamente, está asociada con la evolución del controlador en el nivel de aprendizaje. En este nivel, la evolución artificial generó soluciones no anticipadas antes del desarrollo de los experimentos. Con el controlador tipo HPNN, se obtuvo que la salida generada por la red proporcionaba un valor positivo cada vez que se alcanzaba el objetivo correcto (véase sección 5.3.3.6). En cualquier otro caso, a excepción de cuando se alcanzaba una fuente de luz no deseada, presentó un valor cero como salida de la red. Con ello, puede decirse que la asociación plástica encontrada entre las entradas y la salida de la red presentaba una relación directamente proporcional a los valores de “refuerzo” (cero, positivo o negativo). Lamentablemente, luego de analizar la distribución de las reglas sinápticas (reglas de Hebb), no se encontró alguna relación aparente por la selección artificial durante el proceso evolutivo. A modo general, y luego de analizar cuál fue la propuesta encontrada durante la evolución del controlador homeostático en aprendizaje, se obtuvo lo siguiente. En el controlador existió una serie de conexiones con reglas dispares. Particularmente, la conexión sináptica entre la señal de refuerzo con respecto a las neuronas ocultas, no fue una en especial. Por ejemplo, las reglas de conexión sináptica de los indicadores de que se alcanzó un objetivo (V7 y V8) y la señal por refuerzo (V0) hacia las neuronas de la capa oculta (Tabla 25), fueron (véase Figura 21 para un mayor entendimiento): V0: (-,-,-,-,-,-,-,-,-,-,-,2,0,3,2,3,1) V 7: (-,-,-,-,-,-,-,-,-,-,-,1,0,2,0,0,1) V8: (-,-,-,-,-,-,-,-,-,-,-,3,0,3,0,3,0) Evolución de Neuro-Controladores Multi-Nivel 117 siendo los números en las representaciones alelos expresando reglas sinápticas27. Por lo tanto, la correlación positiva entre las entradas y la salida de la red, si bien es notoria cuando se pone en funcionamiento el controlador, no es observada directamente en base a las reglas que gobiernan las conexiones sinápticas implicadas. En lo que respecta a las conexiones hacia los actuadores, estas fueron: m1: (0,0,-,-,-,-,-,-,-,-,-,2,3,2,1,3,2) m 2: (0,2,-,-,-,-,-,-,-,-,-,3,2,1,0,0,0) Como se puede concluir al considerar el comportamiento de las reglas mediante el funcionamiento del controlador, si la entrada de refuerzo era negativa, la conexión correspondiente se reforzaba en algún grado. Esta suposición surge principalmente de analizar los resultados obtenidos en el aprendizaje del controlador. No obstante, la actividad de la red rápidamente reforzaba las conexiones de la capa de salida, lo cual provocaba una salida estable positiva o negativa, seleccionando correctamente la conveniencia o no de la fuente de luz. Luego, al momento de intentar cambiar de objetivo durante la vida del controlador, la red siempre devolvía un valor cero de salida. Esto se generó cuando no se estaba en presencia de alguna percepción de luz, lo cual significa ir hacia el objetivo predefinido por el nivel de fototaxis condicional. La causa de tal comportamiento radicó en que el controlador no posee la capacidad de recordar cuál es el objetivo apropiado. Por tal motivo, se indica que la utilización de estados dentro del controlador de aprendizaje sería una probable solución, por ejemplo, a la característica de aprendizaje del controlador plástico. Compárese ésto con los resultados señalados en la sección 5.3.3.6 vinculados a fototaxis condicional con variación de objetivo. Otro aspecto digno de mencionar trata sobre la poca capacidad de adaptación durante la vida del controlador plástico. Particularmente, se encontró que el nivel de fototaxis dominaba en gran medida el desempeño general del controlador final. Al momento de definir que el objetivo era el mismo que mayoritariamente seleccionaba el controlad or en el nivel de fototaxis condicional, el desempeño fue como el mostrado en la sección 5.3.3.6, manteniéndose en un rango aceptable de éxito en comparación con el mejor nivel de fitness. En el caso que el objetivo difiriera del más favorecido por el nivel de fototaxis (véase sección 5.3.1.6), el desempeño final se volcó a la selección del objetivo predefinido por el nivel de fototaxis, con lo cual no pudo observarse algún tipo de adaptación significativa al nuevo objetivo. Algo similar ocurre cuando en la evolución del nivel de aprendizaje se establece un 50% de selección de cada fuente de luz, sin que nuevamente se logre una adaptación apropiada del controlador (ésto tanto para FFNN o HPNN). En las figuras que a continuación se presentan, se muestra el desempeño alcanzado según lo antes referido. (a) [mejor: 2.5200, medio: 1.4337, peor: 0.5120, tiempo: 4’ 15’’] (b) [mejor: 1.0940, medio: 0.0196, peor: -1.0020, tiempo: 3’ 16’’] Figura 97 – Performance obtenida al variar el objetivo en la evolución del controlador de aprendizaje (FFNN) asociado al nivel de fototaxis condicional. (a) Objetivo más favorecido en evolución; (b) 50% de selección de objetivo. 27 0 (Regla Plana Hebbiana); 1 (Regla Post -Sináptica); 2 (Regla Pre-Sináptica); 3 (Covarianza). 118 6.2.2.6 Evolución de Controladores Multi-Nivel Etapa 6: Análisis de las Implicancias y Discusión Un punto a señalar se vincula a la diferencia acontecida al utilizar el genotipo respecto de la red generada del mejor controlador para HPNN. Al variar la forma de considerar al controlador de acuerdo a su genoma o red neuronal, no se obtuvo un mismo comportamiento de aproximación al objetivo, principalmente esto se observó cuando se realizaron pruebas con el nivel de fototaxis condicional (sección 5.3.1.6). La utilización del genotipo o de la red neuronal acarreó una diferencia en la selección del objetivo por parte del controlador. Particularmente, para las HPNN se justifica dicho comportamiento dado su proceso evolutivo y su adaptación sináptica a una de las fuentes de luz durante la vida del controlador. Por lo tanto, como es de esperar, se generó un inconveniente a la hora de seleccionar cuál sería la alternativa a incorporar dentro del controlador por niveles. En este trabajo, se decidió que la red encontrada en la evolución de un controlador HPNN fuera seleccionada para implementar el controlador final. Por otro lado, considérese nuevamente la conectividad interna del controlador homeostático del nivel de aprendizaje, en relación con el controlador del tipo FFNN (nivel de fototaxis condicional), y éste último con el control sobre los actuadores. Además, recuérdese que el tipo de nodo utilizado en los diferentes controladores es incapaz de producir una salida sin que se produzca una entrada. Entonces, en función al comportamiento general del controlador final descrito en este capítulo, es posible diagramar algunas inferencias sobre la forma en que trabajó una parte del controlador. En la red de aprendizaje es relativamente simple de ver qué es lo que sucede cuando se detecta la presencia de una fuente de luz en el borde del campo de sensado del robot. Si sólo un sensor (p. ej. el sensor 1 de la Figura 8) fuera activado, mientras que simultáneamente el robot busca aproximarse hacia su objetivo, entonces los nodos del controlador FFNN del nivel de fototaxis reciben un estímulo (entrada positiva) de dicho sensor. Con ello, se produce un giro del robot hacia su objetivo. Al momento de que los sensores en su totalidad detecten la presencia del objetivo, entonces la red de aprendizaje tendrá como entrada un valor positivo alto, junto con una señal de refuerzo positiva. Esto genera que se refuerce internamente el controlador mediante la modificación de los pesos sinápticos, haciendo que el robot se dirija hacia dicha fuente de luz con un mayor grado de probabilidad cada vez que sea sensada. Si bien ésta es la idea que subyace en el problema de ir al objetivo, cabe preguntarse lo siguiente: ¿cuál es el motivo por el cual el controlador no se adapta apropiadamente cuando se quiere modificar el objetivo, y de este modo acostumbrarlo a uno diferente del propuesto en su evolución? La respuesta, posiblemente, se relaciona con la falta de salida de la red en la capa de aprendizaje cuando no se presentan entradas de los sensores respecto del entorno. Cuando se intentó cambiar el objetivo, la red siempre volvía hacia el objetivo predefinido por el nivel de fototaxis, posiblemente debido al tipo de neurona considerada (sección 4.2.4). Nuevamente, se indica que la utilización de estados dentro del controlador de aprendizaje, sería una probable solución a la característica de aprendizaje del simulador plástico. Finalmente, como conclusión de los resultados presentados en esta sección, puede decirse que la incidencia del aprendizaje estuvo principalmente influenciada por la adaptación generacional del controlador, considerándose el denominado Efecto Baldwin (sección 2.7.4) en vez de aquella generada durante la vida del controlador. 6.2.3 Resultados Experimentales en Simulación Compleja En la sección anterior, se presentaron diferentes evaluaciones en la evolución de un controlador por niveles. En ello, se utilizó un modelo simplificado del entorno. La razón principal fue que la utilización de modelos complejos asociados a la red puede acarrear considerables demoras en cuanto a la obtención de un controlador (véase [Nolfi et al., 2000]). Concretamente, en pruebas no especificadas en el presente trabajo, se concluyó que la incorporación de simuladores más complejos y costosos en términos computacionales, acarrearían retardos en cuanto a la generación de un control mediante evolución simulada. Es por ello que la presente sección tiene por finalidad no sólo ver cuál es el comportamiento del controlador desarrollado, sino que también validar la hipótesis de que la consideración de un modelo simple del entorno durante el proceso evolutivo es viable de utilizar, para luego proceder a la evaluación del mismo en un entorno realista. Evolución de Neuro-Controladores Multi-Nivel 119 Luego de que fueran generados los niveles de evasión de obstáculos, fototaxis condicional y aprendizaje antes descritos, se procedió de la siguiente manera. Dado que los resultados de aprendizaje fueron como los señalados en la sección anterior, y debido a que el robot real disponible no poseía la capacidad de discernir entre dos fuentes de luz determinadas, se utilizó la coordinación de evasión de obstáculos junto con fototaxis simple28 como controlador final. Además, se propuso que la coordinación de comportamientos esté asociada a un conjunto de reglas tal que funcionen como un mecanismo preestipulado de coordinación. Esto surge a partir de los resultados mostrados en la sección 6.2.2. Particularmente, el conjunto de reglas servirá como complemento a la Evolución por Niveles, dado que combinará los resultados del proceso evolutivo con un conjunto de reglas de asociación. Tales reglas buscarán generar un comportamiento de seguimiento de obstáculos (wall-seeking) a partir del nivel de evasión de obstáculos. Finalmente, la funcionalidad buscada en los diferentes experimentos con un modelo complejo del entorno, están asociados al problema de navegación en entornos no conocidos. En ello, diferentes situaciones son analizadas, tal como son planteadas en [Maaref et al., 2002], considerando un modelo del entorno como el propuesto por el simulador YAKS (sección 3.4.5). Las motivaciones para trabajar con dicho simulador son presentadas a continuación: (a) la metodología utilizada en el presente trabajo está basada en un modelo preciso de robot Khepera®, por lo que transferir el proceso de control a un simulador como el señalado no es un problema difícil de resolver a partir de YAKS; (b) Provee una interfaz de comunicación conveniente para comunicar el control a un robot real; (c) permite la separación de los módulos de control de lo que es el simulador; (d) finalmente, es apropiado el manejo de modificaciones del entorno. 6.2.3.1 Estrategias de Navegación en Entornos No-Conocidos Algunos de los inconvenientes presentados en navegación se vinculan al paso del robot por lugares estrechos o pasadizos, lo cual es una restricción para la utilidad de robots en entornos cerrados. Una posible estrategia para resolver tal problema es la navegación hasta alcanzar el espacio libre entre objetos (véase trabajo descrito en la sección 3.2.6). Esto permite evadir mínimos locales a fin de alcanzar el punto medio disponible cuando el robot pasa a través de entornos cerrados [Benreguieg et al., 1998]. Particularmente, se propone analizar el desempeño de la navegación de un robot en escenarios en los cuales se presentan obstáculos del tipo cóncavo y convexo. Debido a que las estrategias reactivas utilizadas en entornos desconocidos están basadas exclusivamente en información sensorial, la localización absoluta no es requerida. Sólo es necesaria la interacción relativa entre el robot y el entorno en el cual se encuentra. En este contexto, se busca garantizar, en alguna medida, una solución para la navegación encomendada evadiendo problemas de bloqueo. A continuación se presentan los resultados experimentales en diferentes escenarios planteados por Maaref et al. considerando el simulador YAKS (Figura 98). 28 Esto es equivalenete a fototaxis condicional con objetivo fijo, o a fototaxis condicional con el objetivo más favorecido durante el proceso evolutivo. 120 Evolución de Controladores Multi-Nivel Figura 98 – Área de prueba generada para el simulador YAKS. Escenario del tipo laberinto con fuente de luz central y obstáculos cilíndricos en las esquinas de las paredes. La finalidad de los experimentos que se presentarán, consistió en ver la capacidad del controlador en resolver estrategias de navegación de bajo costo en entornos cerrados. En este contexto, se pretendió validar la construcción del controlador según su eficiencia en navegación, dándole mayor prioridad a cuestiones de seguridad más que a optimización. La Figura 99 presenta un esquema general de la estrategia de control adoptada. Tal estrategia está basada en el hecho de que generalmente es posible abstraerse de la construcción de un mapa dentro del cual muros y otros objetos están fijos. Datos sensados Navegación Fototaxis bloqueo Obstáculo S1 Comportamiento de evasión de obstáculos ante posible bloqueo sin bloqueo S2 Comportamiento de seguimiento de pared gracias a la creación de reglas de coordinación Acciones sobre actuadores Figura 99 – Esquema global de estrategia de la navegación adoptada: pruebas experimentales con el robot real. A continuación se muestran los resultados obtenidos en diferentes situaciones con los controladores descritos en la sección 6.2.2. Particularmente, y como fue enunciado en la sección 6.2.2, se utilizará una configuración de controlador FFNN para los niveles de fototaxis y evasión de obstáculos, dada la conveniencia de ello. Evolución de Neuro-Controladores Multi-Nivel 6.2.3.1.1 121 Seguimiento de Paredes El esquema básico de seguimiento de paredes o wall-seeking29 es mostrado en la Figura 100. El objetivo a cumplir es que el robot pueda ajustarse a la forma de los muros. Este comportamiento puede ser adecuado también a la forma de los obstáculos si están presentes en el entorno. En la figura antes mencionada, aparecen algunos indicadores (cuadrados pequeños) los cuales manifiestan alguna dificultad presentada por los movimientos del robot simulado. Aquellos casos en los que aparecen dos de dichos indicadores, se quiere expresar que el controlador, por momentos, presentó una situación de bloqueo, la cual fue superada luego de maniobras realizadas por el robot para desbloquearse. Figura 100 – Comportamiento de seguimiento de paredes: experimentación con simulador YAKS En la Figura 100, es importante notar que el recorrido del robot se ajustó tanto a un lado del muro como al otro en aquellas situaciones en las que se estaba en un pasadizo. Esto puede observarse en que las gráficas de la trayectoria del robot son menos obscuras en los bordes del camino seguido. En conclusión, en la situación antes descrita el comportamiento del controlador fue aceptable. Esto expresa que cuanto más recto sea el camino por el cual el robot debió pasar, más fácil fue la decisión del controlador en cuanto al ángulo de desvió a especificar sobre los actuadores, y por ende más rápidamente el robot se movió. De esta manera, el robot logró seguir correctamente los muros a una distancia determinada en cualquiera de las formas presentadas con una trayectoria continua y armoniosa. 6.2.3.1.2 Comportamiento de Búsqueda de Objetivo En navegación reactiva la seguridad del robot es esencial. Por esta razón, es posible distinguir dos casos a tratar: • Si un obstáculo es detectado en la proximidad del robot, a uno de los lados o al frente, entonces la evasión de obstáculos posee mayor prioridad que la atracción al objetivo. • La acción de los actuadores surge como una combinación lineal entre la evasión de obstáculos y la atracción hacia el objetivo. Un ejemplo de la implementación de esta fusión sobre un modelo complejo de robot Khepera, es mostrada en la siguiente sección. 29 Wall-following generalization track. 122 Evolución de Controladores Multi-Nivel 6.2.3.1.3 Evasión de Obstáculos Convexos La tarea que a continuación se describirá, consiste en sobrepasar un área libre en un entorno tipo habitación. Para clarificar el tema, este comportamiento de navegación combina dos tipos de sub -comportamientos: un comportamiento que permite alcanzar la parte media del espacio libre disponible para pasar entre obstáculos, y otro que posibilita ir hacia el objetivo. Además, cuando el robot se está moviendo hacia su meta, y los sensores detectan un obstáculo, en este momento es necesaria una estrategia de evasión, mientras se intenta alcanzar algún punto libre para poder pasar. A tal fin, se pretende verificar si con una configuración de controlador como la señalada en la sección anterior, es posible resolver un comportamiento de navegación en un entorno tipo laberinto. Figura 101 – Comportamiento de evasión de obstáculos convexos: experimentación con simulador YAKS La Figura 101 presenta un ejemplo de navegación en un entorno simulado complejo. El controlador muestra suficiencia para realizar la tarea, pero para alcanzar su meta el robot debe ser provisto de un comportamiento de búsqueda de objetivo. Por lo tanto, se activa el comportamiento de fototaxis luego de que la evasión fuera alcanzada. Como se puede observar, el comportamiento en la situación planteada fue satisfactorio. 6.2.3.1.4 Evasión de Obstáculos Cóncavos En un entorno compuesto por obstáculos cóncavos, y teniendo como objetivo evadir situaciones de bloqueo, es de importancia combinar diferentes comportamientos. En ello, un método para superar dicho tipo de obstáculos es activar el comportamiento de seguimiento del obstáculo (contorno) para lograr rodearlo. Figura 102 – Comportamient o de seguimiento de obstáculos cóncavos: experimentación con simulador YAKS Figura 103 – Comportamiento de evasión de obstáculos cóncavos: experimentación con simulador YAKS En las figuras anteriores, el objetivo planteado es seguir las paredes a una distancia determinada, considerando los sensores definidos para el nivel de evasión de obstáculos. Como se puede notar en las figuras anteriores, el robot resuelve ambas situaciones, particularmente aquella en que el robot va hacia el centro de la fuente de luz luego de superar un obstáculo. 6.2.3.1.5 Coordinación de Comportamientos En esta sección, la estrategia completa de navegación reactiva en un entorno complejo es aplicada (como la mostrada en la Figura 99 y la descrita en la sección 6.2.3.1). Un ejemplo de los resultados obtenidos es Evolución de Neuro-Controladores Multi-Nivel 123 presentado en la Figura 104, donde el robot evade y circunda exitosamente la totalidad de los obstáculos de varias formas, antes de alcanzar su objetivo. Figura 104 – Coordinación de comportamientos: experimentación con simulador YAKS En efecto, la estrategia de seguimiento de paredes es activada en “Z1”, “Z2”, “Z3” y “Z4”. Esto es logrado a través de la coordinación de comportamientos propuesta. Además, en dichas zonas está presente la activación del comportamiento de evasión de obstáculos cuando así se requiera, p. ej. en “Z2” y “Z3”. En las zonas “Z3” como en “Z4”, se activa el comportamiento de ir hacia el objetivo (fototaxis), lo cual es reflejado por la trayectoria descrita por el robot. 6.2.3.1.6 Robustez a Variaciones Ambientales En esta sección se analiza la habilidad del controlador a adaptarse a perturbaciones ambientales [Greer, 2002]. Dos experimentos específicos fueron realizados para clarificar la viabilidad del controlador. En el primer experimento, los dos tipos de sensores (sensores de proximidad y lumínicos) fueron reducidos en un factor del 50%. El segundo experimento trata de la variación de los sensores en un incremento del sensado del 100% en cuanto a su medición. En el primer experimento, el controlador presentó un desempeño considerablemente aceptable (Figura 107) en comparación con el desempeño obtenido sin la perturbación (Figura 105). Por otra parte, el comportamiento del controlador fue afectado en mayor medida en el segundo experimento, y en la Figura 108 puede observarse al robot actuar erráticamente al momento de pasar por el corredor. En el segundo experimento se pudo observar que las variaciones del desempeño del controlador fueron mayores, dado que existía una mayor capacidad de aventurar obstáculos. Esto producía que se realizaran acciones inapropiadas a la situación a superar. Como se explicó en secciones previas, los sensores poseían un conjunto de conexiones hacia los nodos motores, las cuales pasaban por nodos intermedios. Si la señal era exitatoria o inhibitoria dentro del controlador fue una característica invariante de la morfología del controlador. Para enviar una señal desde un sensor con magnitud aumentada, el mecanismo neuronal necesitó estabilizar completamente la nueva conexión entre el sensor y el nodo implicado, lo cual no fue posible debido a que los pesos sinápticos del neuro-controlador no podían variar en el tiempo. Como consecuencia, el comportamiento del robot no fue apropiado en cuanto a la trayectoria generada considerando una trayectoria óptima hipotética. No obstante, en ambos experimentos el robot, llegó a su objetivo. 124 Evolución de Controladores Multi-Nivel Figura 105 – Comportamiento de seguimiento de obstáculos: experimentación con simulador YAKS Figura 107 – Alteraciones ambientales. Comportamiento de seguimiento de obstáculos con disminución (mitad) de la capacidad de sensado: experimentación con simulador YAKS Figura 106 – Comportamiento de seguimiento de obstáculos con la incorporación de un nuevo obstáculo: experimentación con simulador YAKS Figura 108 – Alteraciones ambientales. Comportamiento de seguimiento de obstáculos con aumento de la capacidad de sensado al doble: experimentación con simulador YAKS El hecho de estas perturbaciones ambientales, es un caso especial, el cual puede ser visto como una alteración del propio ambiente (alteraciones en la luminosidad del entorno). Como resultado, puede decirse que no se observa alguna inclinación a que el controlador pueda adaptarse a esta nueva circunstancia, a pesar de que se obtuvo una considerable cantidad de acciones satisfactorias. Principalmente, ésto se debe al tipo de neuro-controlador utilizado (FFNN), el cual no posee capacidad de adaptación durante la vida del controlador. 6.2.3.1.7 Robustez a Variaciones Morfológicas Continuando con el análisis de viabilidad del controlador en cuanto a perturbaciones, en la presente sección se muestran los resultados de la replicación de un tipo de perturbación realizado por Di Paolo [Di Paolo, 2000], en el cual se procedió a la inversión de las entradas de los sensores del robot. Un experimento similar fue desarrollado en [Greer, 2002] para controladores plásticos. Figura 109 – Alteración morfológica. Comportamiento de seguimiento de obstáculos con inversión de sensado: experimentación con simulador YAKS Evolución de Neuro-Controladores Multi-Nivel 125 El controlador al ser evaluado en cuanto a su habilidad para adaptarse a alteraciones en su morfología, fue sometido a una inversión de sus entradas, tanto en el nivel de fototaxis como en el nivel de evasión de obstáculos. El hecho de esta perturbación es un caso especial, el cual puede ser visto como una alteración de la morfología del robot o daños en los sensores. Como resultado, puede decirse que los neuro-controladores no son robustos frente a variaciones morfológicas, tal como se puede observar en la Figura 109 desde diferentes posiciones iniciales a partir de las cuales el robot comienza a moverse. Brevemente, esta situación ocurre dado que la configuración de las redes neuronales implicadas, no poseen la capacidad de adaptación durante la vida del controlador. 6.2.4 Resultados Experimentales en Entornos Reales En esta sección se presentará una breve descripción de los resultados encontrados al desarrollar experimentos sobre un robot móvil real Khepera30, así como también en simulaciones complejas previas. El controlador presentado en la sección 6.2.3 fue mantenido con el fin de ser usado en un robot real. El entorno está representado por un laberinto físico similar al utilizado para validar su desempeño durante la etapa de simulación. En la Tabla 29 se resumen los principales puntos del método a seguir. Método Descripción Motivaciones y Objetivos • Obtener un controlador útil para el control de un robot real. Análisis y ajuste de las diferencias generadas ante un entorno simulado complejo y la realidad. Hipótesis a probar • Verificar el desempeño del controlador final por niveles en un entorno simulado complejo y uno real aplicado a un robot Khepera . Replicar parcialmente experimentos propuestos en [Nelson et al., 2004]. Metodología • Utilización de la herramienta generada mediante una interfaz de control con un robot Khepera real en un entorno controlado. Verificación • Experimental: entorno real. Experimentos • Control sobre una tarea compleja en un ámbito tipo laberinto. Entorno asociado al utilizado durante pruebas simuladas. Datos experimentales • Los datos a recopilar durante el inicio de las pruebas se refieren a la caracterización de los diferentes sensores, a prestaciones del robot en cuanto a capacidad de giro y detección, y a cuantificar la influencia del entorno sobre el experimento. Resultados Obtenidos • Determinación de coeficientes de ajuste aceptables (caracterización). • Parametrización del controlador según variables ambientales. • Comportamiento del robot acorde a lo esperado según experimentos simulados. Tabla 29 – Resumen del método experimental utilizado para el desarrollo de las pruebas en un entorno real 30 Tanto las pruebas como los resultados obtenidos fueron generados en el Grupo de Inteligencia Computacional Aplicada a Robótica Cooperativa – Facultad de Ciencias Exactas y Naturales, UBA (Universidad de Buenos Aires), Argentina. 126 Evolución de Controladores Multi-Nivel El entorno real consistió de un área de 105x105 cm. delimitada por paredes de plástico blanco (telgopor) y el piso de goma compacta verde (véase Figura 110). Además, existían una serie de muros internos de acuerdo a lo mostrado en la figura antes referida. Una fuente de luz equipada con una bombilla de 75 Watts se orientaba perpendicularmente al piso del área en un extremo, aproximadamente a 3 cm. de altura. Cabe destacar que el salón donde se realizaron las pruebas, presentaba otras fuentes de luz no controladas, tales como luces cenitales tipo fluorescentes y luz natural proveniente de las ventanas del recinto. En cuanto al robot utilizado, las características del mismo pueden encontrarse en la sección 3.2. Figura 110 – Entorno experimental real y disposición de los componentes implicados. En la Figura 111 y Figura 112 se presentan las principales mediciones obtenidas con el robot Khepera® real utilizado. Dichas mediciones fueron realizadas a fin de ajustar los parámetros del controlador desarrollado en simulación. Figura 111 – Respuesta del sensor lumínico respecto de la distancia a una fuente de luz. Medición obtenida para el robot Khepera® real utilizado (distancia en mm.). Figura 112 – Respuesta del sensor de proximidad (luz infraroja reflejada) para un obstáculo en función de la distancia. Medición obtenida para el robot Khepera® real utilizado (distancia en mm.). La Figura 111 señala la influencia de la fuente de luz sobre los sensores. Esto no pretende ser una validación experimental de la especificación de dichos sensores propuesta en [Khepera, 1999], sino que corresponde a una caracterización de la influencia de la fuente de luz utilizada para ajuste de parámetros del controlador. Vale aclarar que los sensores permitían la emisión y recepción de luz infra-roja31. Se encontró 31 Para mayor información sobre los sensores, véase la especificación provista por el fabricante (nombre del componente: SFH900-2; fabricante: SIEMENS). Evolución de Neuro-Controladores Multi-Nivel 127 que existían variaciones en el sensado del entorno en cuanto a otras mediciones realizadas en diferentes instantes de tiempo bajo una aparente misma situación ambiental. Como se puede observar en la Figura 111, la medición lumínica decrece cuando la distancia a la fuente aumenta. El valor estándar en la oscuridad ronda las 450 unidades de medición (en un rango [0; 500]). La medición señalada, vinculada en algún grado a la Figura 14, sólo con un criterio conceptual, se analizó según la capacidad de sensado del robot respecto de una fuente de luz de 75 Watts. Esto se llevó a cabo sin que existiera una incidencia directa de la fuente respecto del sensor. Cabe aclarar que las mediciones buscan magnificar en alguna medida la influencia perpendicular de la luz respecto del sensor. Por otra parte, se pudo constatar que la medición de la proximidad de los obstáculos mediante la reflexión de la luz emitida, depende de dos factores: la reflectividad del obstáculo (color, tipo de superficie, etc.) y de la luz ambiente. La Figura 112 muestra la medición obtenida en cuanto a la respuesta del sensor respecto de la constitución del material de los muros (mediciones similares a las obtenidas para plástico blanco reportadas en [Khepera, 1999]). Otro punto importante a señalar es la susceptibilidad del sensado infra-rojo a fuentes externas controladas y no controladas de iluminación. En el caso de que la influencia sea significativa (p. ej. fuentes de luz próximas no frías cenitales), la variabilidad del sensado es mayor. En consecuencia, como luz ambiente se utilizó fuentes frías (luces fluorescentes) alejadas del entorno de experimentación. Básicamente, ésto se refiere a que los sensores infra-rojos (sea para medir incidencia de fuentes de luz o proximidad), son perturbados por el grado de emisión infra-roja (o calor) ambiental. Con ello se registró que la variabilidad del valor de sensado lumínico se encontraba acotado dentro del rango [72; 176] en ±140 unidades. Con respecto al sensado por proximidad, las variaciones ambientales estaban comprendidas entre ±5 unidades (en un rango entre [0;5] sin obstáculos próximos). Caracterización de los Sensores 1. Medición de luz ambiente a través de los sensores de proximidad y lumínicos (separadas cada t unidades de tiempo) 2. Determinación del promedio de las mediciones de luz ambiente para ambos tipos de sensores 3. Incorporación al entorno de un emisor infra-rojo (para sensores de luz) o incorporación de un obstáculo (para sensores de proximidad) 4. Mediciones de luz total para sensores de luz (luz ambiente y luz infraroja entrante) o mediciones infra-rojas de proximidad (luz ambiente y luz infra-roja reflejada) (separadas cada t unidades de tiempo) 5. Determinación del promedio de las mediciones de infra-rojo total de los sensores de luz y de infra-rojo total de los sensores de proximidad 6. Determinación del ajuste de las mediciones (ϖp y ϖl) Referencia 10 mediciones para cada tipo de sensor constantes de entorno ψp y ψl 1 fuente infra-roja/1 obstáculo 10 mediciones para cada tipo de sensor constante de entorno λp y λl ϖp = λp - ψp y ϖl = λl - ψl Tabla 30 – Resumen del proceso de caracterización de las mediciones de los sensores. Por otro lado, como uno de los pasos iniciales para la realización de los experimentos, se procedió a la caracterización de cada uno de los sensores del robot. Dicho proceso se realizó considerando la incidencia de la luz ambiente (no controlada) por sobre el entorno de experimentación (laberinto), procediéndose de la siguiente manera. Se tomó un muestreo de 10 tomas de datos por cada sensor lumínico. Para cada uno de ellos se obtuvo el menor y el mayor dato sensado, los cuales corresponden al rango de variación de los sensores respecto a la incidencia del entorno. Tales valores fueron relativamente similares entre el conjunto total de los sensores, por cuanto la caracterización de cada uno de ellos dentro del modelo de controlador, no fue necesaria de ser especificada por separado. En cambio, se propuso que la caracterización fuera parametrizada con un valor máximo y mínimo de variación común al grupo de sensores. Dichos valores 128 Evolución de Controladores Multi-Nivel fueron utilizados para ajustar todas las mediciones infra-rojas realizadas a fin de eliminar en promedio, por ejemplo, el ruido captado por los sensores del entorno. Referencia Valor Aproximado (promedio) 32 Sensor infra-rojo (lumínico): Rango propuesto por el fabricante Variación ambiental sin fuente cercana Ajuste en cono de sombra próximo a la fuente de luz Rango de sensores al momento de cubrirlos totalmente Rango en cercanía de fuente de luz Sensor de Proximidad: Rango propuesto fabricante Variación ambiental sin obstáculo cercano Rango de proximidad cercano (aprox. 3 mm.) [0; 1023] (<60 máx. luminosidad a 1 cm. de distancia); > 450 máx. oscuridad. [72; 176] (valor de normalización seleccionado ±140 unidades) 0,75 sobre el valor normalizado [752; 820] [65; 73] [1023; 0] [0; 5] (valor de normalización seleccionado ±5) [1023; 1011] Tabla 31 – Resumen de las mediciones realizadas vinculadas a la influencia del entorno sobre los sensores. Cabe destacar que la caracterización de los sensores lumínicos de manera conjunta, se realizó debido a que no fue requerida extrema precisión del sensado del entorno por el controlador. En otras palabras, y como se señaló anteriormente, el controlador, en algún grado, presentó características de robustez a pequeñas variaciones del ruido del entorno. Junto con la conclusión de que cada sensor se comportó relativamente de igual manera, la caracterización de los mismos fue común a todos ellos. Como es de esperar, y dado que dos sensores aparentemente idénticos no sensan de la misma forma, en el caso de que se necesite alta precisión por el controlador, será necesario realizar una caracterización individual por sensor. Figura 113 – Representación de la caracterización de los sensores de proximidad en función de la distancia Para realizar la caracterización de los sensores de proximidad, se procedió a analizar el sensado de cada uno de los ellos respecto a un obstáculo tipo pared en función de la distancia (Figura 112). Como resultado, se encontró que la medición de proximidad era similar respecto del conjunto de sensores, por cuanto la caracterización se realizó nuevamente en común a todos ellos, obteniéndose un rango de variación entre [0; 5] unidades. Cabe destacar que la incidencia de fuentes de luz no frías alteró significativamente la 32 Expresado en unidades de medición vinculadas a la descripción del conversor A/D de 10 bits señalado en la sección 4.2.2. Evolución de Neuro-Controladores Multi-Nivel 129 variabilidad del sensado al momento de anteponerle al robot un obstáculo en su proximidad (p. ej. 1,5 cm.). Por lo tanto, se procedió a anular cualquier generador infra-rojo no frío cercano al entorno de experimentación, a excepción de la fuente de luz indicada en el experimento. Tal fuente de luz se mantuvo a una distancia fija mínima del suelo a fin de disminuir el efecto infra-rojo no deseado en el ambiente. Con respecto a la medición proporcionada por los sensores de proximidad, en la Figura 16 se mostró la relación entre el sensado y el ángulo relativo a un objeto reportado por los fabricantes del robot Khepera. Dicha caracterización también fue observada en pruebas experimentales previas asociadas al desarrollo del presente trabajo. Concretamente, se pudo observar que cuando se supera los 70º entre la posición del sensor y el obstáculo, se pierde toda capacidad de percepción de dicho obstáculo. Particularmente, se ha encontrado que esto ocurrió al momento de que el robot se encontraba en un extremo libre de un muro, dado a que dicho extremo sólo tenía 1,3 cm. de ancho. De esta manera, se producía que los sensores de los costados del robot perdieran contacto con la pared al momento de realizar la acción de seguimiento de muro a fin de rodearlo. Como solución se plantearon dos experimentos secundarios. El primero se vincula al ajuste de los parámetros de ángulo de giro y velocidad en el sistema de reglas del comportamiento de seguimiento de pared. Esto acarreó una serie de pruebas hasta obtener parámetros aceptables. Se encontró, por ejemplo, que era necesario reducir el ángulo de giro aproximadamente en 0,27º (en el simulador33 44,5º; en el entorno real 44,23º) para que el robot realizara un movimiento de giro acorde hacia la derecha. No obstante, si esto se realiza en el simulador, el robot queda atascado al intentar girar en el extremo de una pared, dado a que el ángulo de giro no es el apropiado. En cambio con el ángulo original de giro en el entorno real, el robot en algún momento tiende a perder contacto con la pared en un extremo, dado que la superficie de la pared se ve reducida a un valor imperceptible por los sensores durante el movimiento de giro. De igual manera fue determinado el ángulo de giro hacia la izquierda. Otra solución se refiere a mantener los parámetros de giro propuestos en simulación, pero incorporando dentro del entorno una mayor superficie de percepción de fin de pared. La misma puede observarse en las siguientes figuras. Figura 114 – Variante propuesta como potencial solución de fin de pared Si bien el comportamiento fue el esperado (seguimiento de pared) con una circunferencia de 80 mm. de diámetro, se propuso el ajuste de parámetros antes referido como solución final. La Figura 115 muestra los resultados de tres situaciones experimentales simuladas en cuanto al desempeño del controlador. Esto fue realizado en un entorno complejo sobre un robot Khepera® con la configuración señalada en la sección 6.2.3. 33 Considerándose 45º como la trayectoria sin variación de dirección respecto de la dirección actual del robot en el entorno. Esto se debe a que los actuadores del robot fueron controlados mediante las funciones de seno y coseno del ángulo de desviación presentado por el controlador neuronal. 130 Evolución de Controladores Multi-Nivel Figura 115 – Tres situaciones simuladas utilizando un controlador por niveles durante la navegación en un entorno tipo laberinto El robot en los paneles de la Figura 115, muestra diferentes comportamientos que permiten tanto la evasión de obstáculos, fototaxis, y la evasión de objetos cóncavos y convexos, como así también el seguimiento de paredes. Como es posible observar, el agente simulado es capaz de desempeñarse apropiadamente en el entorno. Luego de encontrar un muro y alejarse de él, el robot presenta secuencias de movimientos que buscan estabilizar el control de los actuadores. Esto indica que la respuesta del neurocontrolador se ve afectada de manera directa en la información provista por los sensores. En cada panel de la Figura 116, las líneas indican el camino tomado por el robot. La posición inicial utilizada para el robot real corresponde a aquella mostrada para el agente simulado (Figura 115). Es claro que el robot real se desvía levemente del camino seguido en la simulación, luego de encontrarse con varios muros. Esto corresponde al comportamiento esperado, dado que existen diferencias entre el ángulo de aproximación y rangos de sensado dependientes de la luz ambiente, por ejemplo, en el caso de los sensores lumínicos. Además, en la Figura 116 el robot es mostrado en su posición final luego de cada corrida en el laberinto. Figura 116 – Tres vistas obtenidas a partir de una configuración de entorno real vinculadas a cada situación simulada. Por otra parte, se ha encontrado que el controlador en el entorno real es poco dinámico, pero presentó una amplia variedad de respuesta. Pese a ello, tales respuestas no fueron idénticas al momento de encontrar un muro o una fuente de luz. Por ejemplo, como se muestra en la figura siguiente, el robot simulado, si bien pasa por una zona mínima de luz, no es capaz de variar su dirección en forma plena para acercarse al centro de ella. Esto se debe al ángulo de incidencia del robot respecto al centro de la fuente. Evolución de Neuro-Controladores Multi-Nivel 131 Figura 117 – Situación en que la incidencia de la fuente de luz sobre el robot es mínima para generar un comportamiento de ir hacia el objetivo Desde un plano cualitativo, el comportamiento del robot fue similar tanto en simulación como en la realidad. Debe notarse que para una secuencia exacta de tiempo-sensado, el robot real y el simulado presentan las mismas secuencias de comandos. Por otra parte, pequeñas diferencias en las entradas del controlador (sensado) ocasionaron leves variaciones sobre los actuadores, acarreando pequeñas alteraciones en el comportamiento final del robot. Es importante notar que un controlador reactivo como el propuesto, y sin un procesamiento temporal, puede computar un conjunto acotado de entradas, con lo cual aquellas acciones de control que no surjan como consecuencia directa de las combinaciones de valores sensados del entorno no podrán ser generadas. Particularmente, se destaca que la combinación entre comportamientos generados mediante evolución simulada y reglas ó sistema de producción con encadenamiento hacia delante en el controlador final, es viable de llevar a cabo. No obstante, dichas reglas surgen, por lo general, de un proceso de prueba y error, lo cual presupone un considerable tiempo de desarrollo de la coordinación deseada entre módulos comportamentales. Mecanismos o propuestas que exploten la automatización de la coordinación entre dichos módulos, ya sea mediante evolución o a través de optimizaciones on-line de parámetros de asociación (p. ej. incidencia inhibitoria o exitatoria de un comportamiento sobre otro, o la búsqueda de parámetros auto-ajustables tales como la velocidad y ángulo de desviación del robot), pueden ser de utilidad para el programador. En la siguiente sección, se propone una posible extensión sobre dicho tema. Como conclusión de las pruebas realizadas, y luego de generar un controlador robótico real, se pudo demostrar que la aplicación y el uso de una plataforma integrada de desarrollo dentro de la RE, es posible a partir del estudio propuesto, lo cual sustenta futuros estudios. Cabe destacar que no se realizó un estudio exhaustivo del hardware disponible a fin de caracterizar cada uno de los componentes involucrados. Esto representaría un mayor grado de precisión experimental (p. ej. validar mediante fotómetro la luz ambiente en todo el entorno experimental). Otra posible mejora asociada al experimento real, puede estar vinculada a la incorporación de entradas adicionales (sensores) a los controladores a fin de que midan la luz ambiente, y de este modo ser decrementada dentro del controlador (p. ej. en las neuronas de la capa oculta). Finalmente, en cuanto a los resultados obtenidos con la metodología utilizada, una variante posible puede vincular un entorno completamente oscuro, excepto de la fuente de luz de referencia (véase [Nolfi et al., 2000, sección 6.3]). Con ello se obtendría un entorno de experimentación controlado en cuanto a la influencia del entorno. Si bien esto puede clarificar la interpretación de los resultados finales, el experimento de esta sección buscó analizar el desempeño del controlador en un entorno no completamente controlado. No obstante, no fue necesario realizar un estudio de mayor precisión debido al alcance del trabajo y a los resultados cualitativos obtenidos en la prueba final. 132 6.3 Evolución de Controladores Multi-Nivel Implicaciones más allá de la Evolución por Niveles Tradicional Si bien parece que la Evolución por Niveles es una manera confiable de obtener controladores y comportamientos emergentes en cada nivel, no es posible afirmar esto cabalmente en base a los resultados de las secciones anteriores. Es por este motivo que en el capítulo siguiente (sección 7.2.6) se analizará, en algún grado y en forma hipotética, si la evolución planteada corresponde a un mecanismo sistemático en RE para obtener “comportamientos emergentes robustos y adaptativos”. Dicho análisis no se ha observado que se llevara a cabo en la literatura dentro de RE ni en RBC y es parte del análisis propuesto en [Fernández, 2005]. Por otra parte, vale señalar que la mayoría de los experimentos desarrollados con arquitecturas de control rígidas del tipo presentado en este capítulo, presupone un conocimiento cabal de la problemática a resolver. Esto trae aparejado reglas de comportamientos pre-impuestas por el diseñador, con lo cual vale preguntarse si existen comportamientos emergentes realmente. Además, encontrar un mecanismo que permita relacionar de manera emergente sub-comportamientos en forma automática, obtendría el beneficio potencial de ser simple de definir por el diseñador del controlador. Es por este motivo es que se proponen futuros trabajos a partir del aquí presentado. A continuación se expone un planteo teórico sobre una posible mejora del sistema de coordinación entre comportamientos, a partir del controlador desarrollado y de los resultados antes presentados. 6.3.1 Optimización de la Coordinación de Comportamientos Las estrategias de navegación puramente reactivas, tales como fototaxis, seguimiento de paredes, y evasión de obstáculos, están completamente basadas en la información sensada del entorno. Si bien la evolución simulada de cada comportamiento arroja estrategias optimales, al momento de coordinar dichos módulos a través de un sistema basado en el conocimiento del programador, pueden encontrarse diferentes inconvenientes (véase sección 2.6.1). Una de las alternativas planteadas en el presente trabajo como desarrollo futuro, fue la coordinación de comportamientos auto-ajustables. Particularmente, y luego de un proceso de prueba y error al generar la coordinación utilizada, se observó que la misma acarrea un esfuerzo considerable. Como se mencionó anteriormente, es posible plantear que dicha coordinación surja de un proceso emergente, el cual someta a evolución simulada parámetros que relacionan a los comportamientos o niveles dentro de un controlador modular. Otra alternativa puede ser que tales parámetros sean adaptables durante la vida del controlador en forma on-line. En ello no sólo intervendrían características plásticas-homeostáticas, sino que también adaptaciones (optimizaciones) del tipo “lazo de control”. Si bien de alguna manera tales alternativas fueron estudiadas en trabajos no mostrados en esta tesis, los cuales exceden el alcance del presente trabajo, a continuación se propone una potencial mejora a la coordinación de comportamientos a ser implementada en corto plazo. Desde un plano adaptacionista fenotípico, en [Maaref et al., 2002] se propone un sistema de inferencia difuso auto-ajustable, el cual controla la velocidad angular y lineal de un robot. Seguidamente se propone una alternativa de acuerdo al trabajo de tesis aquí presentado vinculado al trabajo antes mencionado. El objetivo de tener un sistema auto-ajustable es generar parámetros (velocidad angular y lineal) que provean una base sobre la cual sea posible obtener un sistema de control auto-ajustable. En ello, principalmente, pueden intervenir reglas que gobiernan dicho ajuste, tal como ocurre con las reglas Hebbianas (sección 4.2.4.4). Con la utilización de mecanismos auto -ajustables de coordinación comportamental, se pueden obtener las siguientes mejoras: (a) evitar el ajuste manual de los parámetros; (b) no descartar soluciones optimales no consideradas por el programador; (c) ajuste de los parámetros de manera automática al momento de trasladar el problema de control a un entorno real, lo cual busca que el controlador se adapte a nuevas situaciones (p. ej. ruido en el entorno). Evolución de Neuro-Controladores Multi-Nivel 133 Figura 118 – Esquema de ajuste automático propuesto En la figura anterior, se representa un esquema general de ajuste, el cual es una versión simplificada de un control tipo “distal” aplicado a neuro-controladores [Jordan et al., 1991]. En dicha figura, FC representa la función costo utilizada como evaluación del grado de adaptación a realizarse. Por otra parte, SCC representa el “sistema de coordinación de comportamientos”. Principalmente, ésto corresponde a una serie de variables que intervienen en la coordinación, las cuales pueden ser ajustadas en relación al comportamiento general del controlador. De esta manera, es posible trabajar con un modelo no totalmente preciso del sistema a controlar, que en nuestro caso es la coordinación de los niveles comportamentales del controlador robótico. Por ende, no es necesario que desde un comienzo se obtenga un control especializado (véase [Renders, 1994] en un contexto neuronal, y [Saerens, 1991] en uno de control difuso). Con ello, paulatinamente, se buscaría que el propio controlador tendiera a optimizar su desempeño. 6.4 Discusión Las secciones previas presentaron los resultados de diferentes pruebas realizadas con controladores por niveles. En ello, se utilizaron los resultados previamente señalados en el Capítulo 5. Como un resultado no esperado, las redes FFNN combinadas con un proceso evolutivo apropiado, obtuvieron resultados equivalentes a las HPNN al momento de ser evolucionadas mediante la Evolución por Niveles. En experimentos con alteraciones morfológicas y ambientales, el controlador final mostró ser capaz, de alguna manera, en cumplir con sus objetivos según las nuevas circunstancias, pero desde la visión de eficiencia, esto no ocurrió. Vale señalar que la decisión de seleccionar neuro-controladores para cada nivel según el mejor desempeño en pruebas individuales (Capítulo 5), se realizó de esa forma debido a que no se disponía de una manera significativa de evaluar un controlador por niveles en un entorno no conocido. Dado que no existe información previa del entorno, no se puede determinar cuál es el camino óptimo a fin de conformar una figura de mérito a optimizar. Por lo tanto, y como una posible alternativa para afrontar dicho inconveniente, se concluye que la selección de cada nivel, basado en los mejores desempeños de diferentes configuraciones de neuro-controladores, constituye una alternativa viable de realizar según los resultados experimentales obtenidos. Al momento de comparar los resultados obtenidos al generar los controladores con un enfoque por niveles respecto de uno monolítico, es posible decir que las soluciones generadas mejoran substancialmente con el enfoque por niveles, basándose en comparaciones de fitness landscape y resultados cualitativos sobre una misma tarea a resolver. Por otra parte, reducciones temporales fueron obtenidas dependiendo del tamaño de las redes neuronales en cada nivel comportamental, incidiendo los niveles previamente congelados sobre el comportamiento que se esta evolucionando. Por lo tanto, la emergencia de comportamientos que pudo obtenerse con un enfoque por niveles generó al menos soluciones cualitativamente equivalente a aquellas obtenidas mediante un enfoque puramente monolítico. 134 6.5 Evolución de Controladores Multi-Nivel Conclusiones En este capítulo se desarrolló un controlador robótico el cual combina aspectos de la RE y determinadas características de RBC. En cuanto a su desempeño, fueron presentados diferentes experimentos simulados, como así también reales junto con predicciones e interpretaciones de los resultados obtenidos. Además, se realizaron análisis comportamentales y estructurales de los controladores respecto a las estrategias de navegación. Los mismos se enmarcaron dentro de los resultados esperados, a excepción de la tarea de aprendizaje con el controlador final. Una de las principales conclusiones es que la Evolución por Niveles es apropiada para la generación de controladores complejos. No obstante, hereda aquellas características rígidas de la Arquitectura por Subsumisión, las cuales están en función a la visión del diseñador más que a un proceso emergente de coordinación de comportamientos. Capítulo 7 - CONCLUSIONES CONCLUSIONES "Si he hecho descubrimientos […] ha sido más por tener paciencia que por cualquier otro talento" Sir Isaac Newton "No he fracasado, he encontrado diez mil maneras en las que la cosa no funciona" Benjamín Franklin 7.1 Introducción Se resumen en este capítulo las conclusiones, aportes realizados, trabajos futuros y las publicaciones generadas. Para finalizar, se seleccionan las principales recomendaciones para la generación de neurocontroladores mediante evolución simulada. 7.2 Conclusiones y Aportes Se han presentado experimentos sobre varias configuraciones de redes neuronales (FFNN, RFFNN, CTRNN, PNN, HPNN). Estas configuraciones comparten una estructura básica de toma de datos sensados del ambiente, y luego de un proceso interno, aportan una acción de control a cada actuador. La mayor parte de los experimentos muestran que las topologías de redes propuestas son independientes de suposiciones iniciales de cómo generar soluciones, es decir, las soluciones que son obtenidas por la evolución simulada emergen de dicho proceso. Esta tesis y las conclusiones que se detallan más adelante, se basan en resultados experimentales de más de 45 configuraciones de controladores. Las técnicas de obtención de controladores presentadas en esta tesis tratan de reducir el esfuerzo del diseñador, y en especial buscan no limitar, al menos parcialmente, la solución final al conocimiento específico de él. A esto le siguen ciertos temas tales como: balance entre esfuerzo y conocimiento para generar un control óptimo, aprovechamiento del poder computacional y el conocimiento de sistemas naturales para modelar sistemas artificiales. Por otra parte, y como es de esperar, un mejor control es obtenido cuando se logra un mayor grado de adaptación del controlador a la tarea a realizar. Cuanto más profundo sea el estudio de un controlador, mucho más se puede determinar las prestaciones del mismo, optimizaciones a nivel arquitectura, y los algoritmos o sistemas que pueden beneficiar su desempeño. Además, cuanto más amplio sea el análisis sobre los potenciales controladores en una tarea determinada, mayor será el grado de obtención de variantes de controladores o variantes que ayuden a encontrar un mejor desempeño del controlador final. 7.2.1 Recomendaciones para la Optimización del Desempeño Los experimentos descritos en el presente trabajo permiten generar un método heurístico para encontrar el controlador que mejor se adapte a una tarea de guiado autónomo de robots. Dos formas son las que 136 Conclusiones producen tal adaptación: una a nivel generacional (proceso evolutivo artificial) y la otra a nivel vida del controlador (proceso adaptativo fenotípico). La primera recomendación al momento de buscar mejoras en los desarrollos presentados, aunque trivial, es realizar un proceso evolutivo más extenso contemplando un número mayor de generaciones durante el proceso simulado. Otra alternativa, aunque más difícil de realizar, es considerar aprendizaje vinculado al fenotipo, es decir durante la evaluación del robot en el entorno en relación a una tarea específica. Esto último permitiría que el Efecto Baldwin guíe la emergencia del controlador mejor adaptado. Una vez determinada la tarea a realizar, existen diferentes alternativas en cuanto a la selección del tipo de neuro-controlador a evolucionar. Si la tarea implica adaptación del tipo aprendizaje, las mejores alternativas, según las experiencias realizadas, corresponden a redes auto-adaptables (tipo plásticas) o a redes fáciles de evolucionar (tipo feed-forward). Caso contrario, redes del tipo feed-forward también pueden ser utilizadas cuando la tarea no implique aprendizaje (p. ej. en tareas puramente reactivas). La codificación óptima de las arquitecturas de las redes depende de la topología que se quiera modelar. No obstante, existen dos variantes posibles: representaciones genéricas, y representaciones específicas. En esta tesis, se decidió utilizar una representación genérica de los controladores en cuanto al nivel fenotípico se refiere, particularmente al momento de modelar las interconexiones neuronales y sus pesos sinápticos. Si la topología es pequeña, no superando, por ejemplo, la interconexión total de 16 neuronas, la codificación propuesta en la sección 4.2.2 es aceptable en términos de costo computacional. No obstante, con representaciones mucho mayores, es necesario realizar un proceso de búsqueda de estructuras más adecuadas de representación. Esto se debe a que cuanto mayor sea la representación sometida a evolución, mayor será el tiempo computacional empleado. Para ejemplos de cómo influye en la evolución un número mayor de variables a actualizar, véase los tiempos señalados en la sección 5.2. 7.2.2 Observaciones a Nivel Topológico En el Capítulo 5, se han presentado experimentos con el objeto de determinar las características propias de un número significativo de redes neuronales. Con esto se buscó generar una idea práctica para mostrar al lector la realidad que subyace en cada topología de controlador. Adicionalmente, en el Capítulo 6 se han analizado los resultados de un controlador complejo en diversas situaciones o escenarios. Las conclusiones más sobresalientes entre otras son: • Proceso evolutivo: para una especificación de controlador robótico final como el desarrollado, cada módulo o nivel comportamental con mejor desempeño individual, normalmente, será el que controle un determinado comportamiento. Por lo tanto, el conjunto de controladores mejor adaptados a diferentes tareas deberá coordinarse con la finalidad de resolver una tarea compleja o problema que requiera multiplicidad de comportamientos. Esta coordinación puede ser llevada a cabo por el diseñador en cuanto a un proceso de prueba y error, aunque pueden ser aplicados criterios similares a los de evolución de controladores sobre dicha coordinación. En otras palabras, es posible someter a un proceso evolutivo artificial las relaciones entre comportamientos siguiendo algunas reglas pre-fijadas (p. ej. restricciones asociadas a un sistema experto). Esto último se propone como trabajo futuro. Si el diseñador debe elegir entre diferentes topologías en cada nivel de comportamiento, ni el desempeño individual, ni la evolución del controlador por sí solos son válidos para predecir el desempeño final del controlador. Esto depende de cómo se coordinen los comportamientos y cuando se lleve a cabo dicha coordinación, conjuntamente con un proceso de prueba y error. Cabe aclarar que la relación entre evolución y coordinación no es clara de definir. Algunas de las técnicas señaladas apuntan a realizar un proceso evolutivo paralelo de comportamientos, mientras que otras utilizan uno secuencial. Con respecto a este trabajo de tesis, se seleccionó una Evolución por Niveles (principalmente, proceso evolutivo secuencial) debido a los resultados previos expresados en [Togelius, 2004], en relación a otras formas de coordinación. Concretamente, la Evolución por Niveles secuencial obtiene mejores resultados respecto de la tarea a resolver en menor tiempo que otras técnicas de generación de controladores que impliquen escalabilidad de comportamientos, y en especial considerando la Evolución Monolítica. Conclusiones • 137 Adaptabilidad: a lo largo de las diferentes secciones, se expusieron distintos ejemplos que bajo ciertas condiciones muestran el grado de adaptación que tienen los controladores. Además, se presentó el impacto generado a partir de la variación de algunos de los parámetros del controlador (p. ej. rango de variación sensorial), como así también variaciones a nivel definición del problema. En ello, se hizo hincapié en las particularidades de las redes plásticas, dado el interés creciente de su estudio, y en redes del tipo feed-forward debido al desempeño apropiado presentado en distintos experimentos. Un punto a remarcar es que en pruebas sobre aprendizaje con controladores multi-nivel, las redes homeostáticas-plásticas y feed -forward obtuvieron resultados similares, pese a que ésto no era presupuesto. Las causas de la adaptación vista como un proceso de aprendizaje por ambas redes, obedece a un proceso adaptacionista generacional en ambos casos, y como así también a un proceso plástico en cuanto a las redes homeostáticas. Vale aclarar que este último proceso no dio los resultados esperados según se planteó en el análisis teórico de dicha red. Las causas de tal diferencia, posiblemente, sea consecuencia de la influencia generacional sobre el controlador al momento de construir el fenotipo correspondiente (neuro-controlador), produciendo que los parámetros sujetos a evolución estén adecuados a las situaciones expuestas en la evolución. Por ende, cualquier alteración significativa a tales situaciones, conlleva a una inercia al cambio. Cabe aclarar que los mecanismos plásticos pueden ser de utilidad si se consideran a la hora de elegir un proceso de auto-ajuste fenotípico, pero suscita un estudio mucho más profundo para elegirlos como alternativas de control. Los neuro-controladores, gracias a sus características de robustez, posibilitan que el proceso adaptacionista sea realizado de manera simple, pero el consumo de cálculos computacionales es alto, por cuanto las mejoras relacionadas con la codificación de los mismos es un problem a a resolver. • Emergencia: una observación importante es que la emergencia de comportamientos, principalmente a nivel controlador monolítico y en el conjunto de comportamientos, se ve beneficiada si se consideran aspectos adaptativos. Esto no sólo dentro de la topología del controlador, sino también al someter a una representación genotípica del mismo (p. ej. pesos sinápticos) a un proceso evolutivo como el propuesto. • Robustez: la existencia de unidades de cálculo autónomas (neuronas artificiales) y las relaciones entre éstas sujetas a cambios de performance (sinapsis), tiene un fuerte impacto en la adaptación, y por ende en la robustez. Las actividades internas del controlador son útiles a la hora de analizar que es lo qué sucede internamente, y para entender en alguna medida, cómo la adaptación se logra. En el caso de alteraciones ambientales, y considerando que las unidades o neuronas corresponden a funciones dependientes de las entradas, acarrean variaciones en las acciones sobre los actuadores, y en consecuencia sobre el comportamiento final del controlador. Para los experimentos realizados (sección 6.2.3.1.6 y 6.2.3.1.7 ), se encontró que los neuro-controladores fueron capaces de realizar las acciones que se esperaban. No obstante, algunas alteraciones se observaron al momento de analizar las trayectorias del robot. Con respecto a las alteraciones morfológicas, los resultados marcaron que los controladores no fueron capaces de adaptarse. • Niveles fijos: una consecuencia de la realización de los experimentos presentados, conlleva a poner en tela de juicio la influencia de tener niveles fijos durante la Evolución por Niveles luego de que estos sean obtenidos por evolución, o por el contrario que puedan incorporar adaptaciones luego de su obtención. Tales adaptaciones estarían vinculadas no sólo a la interacción de los componentes internos del controlador en un nivel específico, sino que también en función de la interacción entre controladores en una organización por niveles. La experiencia de la interacción entre comportamientos, y la definición explícita de la influencia entre comportamientos (coordinación) por parte del programador, indica que es necesario contar con mecanismos automáticos que faciliten no sólo la coordinación, sino también la adaptación de los niveles en cuanto a la tarea a ser afrontada en conjunto. La técnica descrita en la sección 4.2.3 (algoritmo genético), con una adecuación significativa en cuanto a relaciones adaptativas 138 Conclusiones entre módulos, puede ser aplicada a la coordinación de comportamientos según se estima de las pruebas preliminares realizadas a partir del presente trabajo. • Selección de topologías: una de las técnicas más convenientes de seleccionar un controlador para una determinada tarea, es basarse en resultados comparativos entre diferentes alternativas de control. La alternativa planteada por redes del tipo feed -forward son simples de implementar y entender, y además reportan, por lo general, buenos resultados, en especial en tareas puramente reactivas. Alternativas como redes plásticas y plásticas-homeostáticas ofrecen buenos resultados en cuanto a la adecuación del controlador. Esto puede ser visto en la sección 5.3.3.6. Tales alternativas ganan relevancia cuando se somete a evolución todo el controlador, ya que la combinación evolución-adaptación es potente. No obstante, cuando se realiza la evolución de una parte del controlador dejando a otras fijas, puede que el resultado final no sea del todo óptimo. Con ello se quiere expresar que la selección de las topologías no depende únicamente de la performance individual, sino que también de la grupal. 7.2.3 Resultados en Simulación Durante el Capítulo 6 se examinaron algunos experimentos que implicaron dos tipos de controladores (simple y complejo). Además, se llevaron a cabo pruebas con un robot real Khepera. Por un lado, fueron examinadas las características de evolucionar un controlador utilizando un modelo simplista de robot. Esto con el objetivo de agilizar el proceso evolutivo y evaluar la robustez de los neuro-controladores al momento de enfrentarlos con modelos de robots reales. Luego se presentó un experimento cuyos resultados no fueron del todo esperados desde el punto de vista funcional (evolución de una red de aprendizaje HPNN vs. una FFNN). Por último se analizó, entre otras cosas, el control realizado sobre un entorno real estructurado. A continuación se señalan algunos de los puntos vinculados a esto: • La representación de las diferentes estructuras utilizadas por los distintos algoritmos, así como la influencia entre ellas, son muy relevantes a la hora de generar experimentos. Por ejemplo, la definición de la evaluación del desempeño (función de fitness) sobre la representación del controlador, si bien no es aparente, trae efectos en el comportamiento final. Concretamente, cuanto más rápido y mayor sea la cantidad de ciclos (generaciones) de evaluación, potencialmente mejores resultados serán seleccionados. Por lo tanto, la representación es crítica en este problema, como así también el costo computacional asociado a ella. • La modularidad de los neuro-controladores es una característica altamente deseable para la generación de especializaciones en el comportamiento, al igual que la secuencialización de los mismos, principalmente si se considera una coordinación pre-definida por el diseñador. • La aplicación de evolución por niveles vinculados a comportamientos, ofrece importantes disminuciones del tiempo de cómputo cuando se quiere obtener un controlador para resolver una tarea compleja, y por ende del necesario para el desarrollo del controlador final. La reducción depende del tamaño de las redes que fueron congeladas en cada nivel y de la incidencia de ellas sobre el nivel que está siendo evolucionado. 7.2.4 Implicancias Los resultados del Capítulo 5 y del Capítulo 6 brindan ciertas conclusiones particularmente orientadas a la emergencia de comportamientos y al proceso adaptacionista artificial. A continuación se detallan algunas de ellas: • Mecanismo de adaptación: como se ha expuesto a lo largo de este trabajo, el proceso de adaptación (generacional o fenotípico) tiende a generar individuos “mejor adecuados o adaptados” a una tarea. Sin la existencia de dichos mecanismos (considerando sucesivas actualizaciones o variaciones de variables estructurales), la existencia de la emergencia de la adaptación comportamental no sería posible tal como se observó. Por cuanto, se postula que la emergencia de comportamientos depende del grado de adaptación interno y externo, junto con interacciones adaptativas entre los componentes de un sistema. Conclusiones 139 Desde un punto de vista evolutivo artificial, se prueba que la evolución es significativamente un mecanismo generador de adaptación. Desde el plano fenotípico, se concluye que el aprendizaje es una forma de adaptación que guía a la evolución (Efecto Baldwin). Ambos, permiten que la emergencia de individuos bien adaptados a un problema se produzca. • Evolución por Niveles: si bien la utilización de un proceso evolutivo por niveles es una alternativa viable para la construcción de controladores robóticos, es necesario extender los resultados de su desarrollo en cuanto a aspectos de coordinación entre niveles se refiere. • Neuro-Controladores Evolutivos: el estudio que se llevó a cabo presupone una serie de experimentos, los cuales aportan al estado actual del conocimiento una serie de resultados que dan base a futuros trabajos. Algunos de los temas, tales como coordinación y emergencia comportamental, necesitan ser desarrollados en profundidad. No obstante, es posible continuar el estudio planteado a partir de optimizaciones de los temas y desarrollos propuestos o llevados a cabo en este trabajo de tesis. 7.2.5 Conclusiones sobre las Herramientas de Generación de Controladores Paralelamente a los experimentos con controladores robóticos, se ha realizado un estudio básico sobre la disponibilidad de herramientas que permiten la generación de controladores de manera evolutiva (según escalabilidad y extensibilidad). Ante todo, hay que destacar que el proceso de obtención de un controlador mediante evolución simulada es un proceso lento, que requiere de bastante tiempo, y un posterior análisis de los resultados. Esto lo convierte, en muchos casos, en un método difícil de realizar, en especial dada su alta carga de tiempo guiada por prueba y error. Los resultados observados para los controladores desarrollados son bastante aceptables. En ello fue crítica la utilización de modelos simulados. En el caso de que ello no hubiese ocurrido, y al plantearse desde el inicio un estudio totalmente realista mediante la evolución de controladores evaluados con un robot real, los resultados no hubiesen sido como los presentados. Particularmente, la generación automática hubiese acarreado días de simulación y como así también la búsqueda de patrones de entrada. No obstante, resulta de interés la combinación entre procesos simulados y su eventual aplicación al control real, donde el tiempo de simulación y la generación de un control real de validación estén acotados. 7.2.6 Hipótesis sobre el Rol de la Adaptación en la Emergencia de Comportamientos A partir de los resultados obtenidos, es posible decir que los comportamientos podrían implicar procesos dinámicos emergentes jerárquicamente organizados que afectan unos a otros en forma bottom-up y topdown. La naturaleza adaptativa de los comportamientos deriva de la relación indirecta entre las propiedades de la interacción de los elementos intervinientes dentro del controlador y de los resultados emergentes de tales interacciones, y de su adecuación al entorno (véase [Fernández, 2005]). Por otra parte, un sistema comportamental puede ser difícilmente diseñado en forma planificada, mientras que puede ser efectivamente sintetizado a partir de procesos auto -organizados en donde las propiedades emergentes de las interacciones pueden ser descubiertas y mantenidas mediante procesos adaptativos basados en exploración y selección, tal como sucede con los algoritmos genéticos. Esto ha sido demostrado en el presente trabajo con ejemplos de comportamientos individuales sintetizados mediante una técnica evolutiva artificial. A tal fin, se entrenaron redes neuronales artificiales que realizaron un mapeo sensor/actuador en el robot. Por lo tanto, es posible decir que los algoritmos genéticos asociados con un proceso de adecuación al entorno, pueden ser considerados como mecanismos de diseño adaptativos y sistemáticos que generen comportamientos emergentes. En relación con esto, pruebas experimentales preliminares fueron realizadas coordinando módulos comportamentales en forma evolutiva, los cuales no fueron presentados en este trabajo de tesis. Si bien no pudo ser observado ningún patrón de coordinación entre los módulos, es posible decir que existe un conjunto de relaciones entre los ellos que permite emerger un comportamiento tal como el que fue generado en la sección 6.2.3.1. Por lo tanto, la coordinación lograda 140 Conclusiones por reglas de coordinación como así también aquella que emerge del proceso evolutivo, son coordinaciones válidas de realizar desde un plano cualitativo en función de los resultados generados. Comportamiento Global Emergente Interacciones Locales Figura 119 – Esquema general de la incidencia de la emergencia de comportamientos sobre las interacciones locales. Finalmente, se propone un estudio más profundo sobre la emergencia de comportamientos y de la adaptación en sistemas compuestos por múltiples componentes comportamentales en un único individuo, como así también en sistemas compuestos por múltiples individuos. 7.2.7 Discusión En este trabajo se han presentado resultados los cuales constituyen un aporte al diseño de neurocontroladores evolutivos dentro de la RE y la RBC. Se han desarrollado una serie de análisis comportamentales y estructurales sobre controladores luego del proceso evolutivo, conjuntamente con estrategias para la resolución de tareas. Además, se presentaron pruebas con varios tipos de redes neuronales, sobre dos clases de simuladores y dentro del mundo real. Finalmente, el controlador obtenido mediante Evolución por Niveles, fue capaz de superar una serie de problemas tanto a nivel simulado como a nivel real. Sobre la base de los resultados obtenidos y de la variedad de los experimentos, es posible concluir que el desarrollo de mecanismos evolutivos permite la consideración de componentes adaptativos de manera emergente. La Evolución por Niveles es apropiada para resolver dicha tarea. No obstante, acarrea las complicaciones de coordinación procedentes de la propuesta de Brooks (sección 2.6.1). Dentro de los aportes logrados en relación a estudios previos encontrados en la bibliografía, es posible decir que se generó un aporte experimental al estudio de “escalabilidad en RE”, implementándose estructuras de control capaces de gobernar la navegación de un agente robótico, promoviendo reusabilidad y escalabilidad de comportamientos. Para ello, se implementó una herramienta con la cual reducir los esfuerzos de obtención y definición tanto de los comportamientos como de las pruebas con controladores reales y simulados. En suma, se presentaron comparaciones desde la perspectiva científica e ingenieril, no sólo en el plano robótico sino también desde el plano bio -inspirado. En relación a esto, se llevó a cabo un planteo hipotético, el cual busca concluir cuáles son las causas de la emergencia de comportamientos (sección 7.2.6). Los resultados presentados, tanto experimentales como hipotéticos, revisten de potencial para contribuir a la obtención de mejores soluciones parciales en el diseño e implementación de controladores robóticos desde una perspectiva ingenieril, y a una mejor comprensión de la adaptación desde un enfoque científico, al menos no en forma directa. Finalmente, se espera que los experimentos propuestos puedan brindar un poco de claridad sobre las cuestiones vinculadas a emergencia y adaptabilidad, como así también a la construcción de neurocontroladores evolutivos aplicados al control de navegación de robots móviles autónomos. Conclusiones 7.2.8 141 Trabajos Futuros Como se ha mencionado anteriormente, el objetivo general de este trabajo de tesis es presentar un estudio completo de neuro-controladores para control de robots autónomos. De esta manera, se buscó dar soluciones en el diseño de los mismos. Dado que ésta es una meta ambiciosa, se ha reducido la cantidad de experimentos y evaluaciones técnicas llevadas a cabo. La ampliación de tales experimentos y estudios implica posiblemente varios temas de tesis. Las líneas de trabajo que se desprenden del presente trabajo incluirían, entre otros, los siguientes temas a desarrollar: Estudio de la adaptación y emergencia entre comportamientos. Si bien los comportamientos biológicos complejos, en su mayoría, presuponen una serie de sub -comportamientos, es posible argumentar la necesidad de coordinación de un mayor número de niveles de coordinación comportamental, y por ende la definición de estructuras de control más complejas. Cada uno de estos niveles puede ser tanto una red neuronal de mayor complejidad que las presentadas, o simplemente ser aproximadores universales del tipo feed -forward. En ello, tanto la definición del tamaño de las redes, como así también su tipo, pueden estar sometidos a un proceso evolutivo artificial. En especial, y como principal objetivo, dicho trabajo podría encaminar un estudio profundo de mecanismos adaptativos-evolutivos entre comportamientos a nivel generacional y fenotípico. Generación de mecanismos de aprendizaje en la Robótica Evolutiva. Estudiar cómo mecanismos de aprendizaje, vistos a través de procesos de adaptación, pueden ser incorporados en una arquitectura por niveles para soportar el ajuste de los sub-comportamientos, reviste de un alto interés teórico-práctico. Tales mecanismos podrían estar orientados a soportar procesos de re-aprendizaje (p. ej. cambios de objetivo a nivel fenotipo). En ello se podría estudiar el efecto que fue dilucidado en el presente trabajo de tesis, el cual se orienta a la comparación de neuro-controladores del tipo feedforward, plásticos, y homeostáticos-plásticos en aprendizaje. De este modo, se podría encontrar y proponer un estudio mayor al presentado en la sección 6.2.2. Aplicación de neuro-controladores a un sistema robótico real complejo. Como una de las posibles continuaciones del presente trabajo, es posible construir una arquitectura comportamental similar a la propuesta e implementarla en un sistema robótico real. En ello, pueden ser considerados otros tipos de componentes del robot, tales como diferentes sensores (p. ej. de visión y sonar) y lazos de control cerrado sobre componentes de navegación. Además, sería interesante que la aplicación fuera realizada en un nuevo contexto, tal como puede ser la navegación de vehículos submarinos o aéreos. Con ello, el sistema de control no estaría fuera del robot sino que dentro o parcialmente dentro de él. Finalmente, un estudio experimental simulado y principalmente real que implique la interacción de una cantidad mayor de comportamientos, así como reglas de coordinación, establecería un estudio concluyente de los objetivos y resultados planteados en el presente trabajo. Estudios sobre escalabilidad y replicación de experimentos. Una de las alternativas puede estar abocada a replicar experimentos encontrados en la literatura desde un plano evolutivo, utilizando una arquitectura por niveles tradicional. De esta manera, se podría proponer realizar aportes sobre los límites y beneficios de la utilización de dicha forma de evolución, tanto desde plano propuesto por la RBC como así también en RE. De este modo, se lograría no sólo desarrollar controladores para un número significativo de problemas, sino también constituir una base de controladores útiles para el problema de escalabilidad. Principalmente, sería de interés ver la posibilidad de resolver problemas comportamentales no resueltos con un enfoque tradicional, y buscar la forma de resolverlos a través de la evolución por niveles en base a los resultados encontrados en el presente trabajo. Estudio de la emergencia de módulos comportamentales. Estudios sobre posibles mecanismos naturales y su posterior sintetización artificial como módulos de software, pueden ser de utilidad para comprender cómo se generan comportamientos complejos sin la intervención de un diseñador, y por ende sin la restricción que ello conlleva a nivel definición de problema. De esta manera, las 142 Conclusiones interacciones individuo(s)-entorno, junto con un proceso adaptativo-evolutivo puede originar un nuevo paradigma de programación, el cual a partir de un conjunto de reglas y de un proceso evolutivo clásico origine una serie de comportamientos para resolver un problema complejo. Para ello, el estudio profundo de las arquitecturas presentadas en la sección 2.6.3 es de gran importancia. Desarrollo de un framework para la generación de neuro-controladores. Una de las principales alternativas para proseguir con el estudio presentado, es desarrollar un modelo formal de desarrollo en base a la herramienta generada en este trabajo de tesis. No sólo se debería especificar un modelo tipo framework, considerando patrones de diseño vinculados a la Ingeniería de Software, sino que además debe de poder vincularse a interfaces de control entre la aplicación y los simuladores robóticos disponibles. En suma, se deberían proveer herramientas para el diseño vía interfaz visual de los neurocontroladores, como así también diferentes tipos de interfaz de control de robots reales. En ello un análisis de la posibilidad de incluir simuladores realistas o robots reales dentro del proceso evolutivo es un punto crucial a ser desarrollado. Como principal objetivo, se buscaría formalizar un conjunto de componentes de software extensibles tanto a nivel experimentos, como así también a nivel algoritmos y topologías neuronales, junto con herramientas visuales para la toma de datos estadísticos durante la experimentación. Estudio de un controlador basado en la adaptación homeostática. Desde un plano científico, sería interesante construir un agente robótico que esté controlado por un conjunto de módulos neuronales (posiblemente en una organización por niveles) sujetos a adaptación homeostática. En ello, dispositivos variables internos son esenciales para la definición del robot, teniendo como finalidad la de “sobrevivir” en el entorno donde el robot sea capaz de mantenerse en un rango de variables internas aceptable. Si se utiliza evolución artificial para seleccionar la estabilidad interna, se podría implementar un mecanismo por medio del cual reconfiguraciones plásticas ocurran cuando las variables entren en zonas peligrosas. Además, dicho estudio podría implicar un análisis de sistemas biológicos animales a fin de reflejar sus características naturales, como por ejemplo la influencia del aprendizaje entre individuos y el aprendizaje a nivel fenotípico sobre la evolución y en relación a la genética de la descendencia del individuo. Temas como la emergencia de comportamientos, adaptación y parasitismo animal, y la Teoría del Caos serían posibles dominios a explorar. Estudio sobre la acumulación de adaptaciones. Desde un plano biológico, sabemos cómo todo individuo comienza su existencia. La ciencia nos dice que existe una continuidad de la vida, y que los seres vivos provienen de otros seres vivos. Pero cada generación es distinta a la anterior, y los cambios se acumulan a nivel generacional o fenotípico. De manera compleja, no dilucidada en su totalidad, cada uno de los individuos que viven hoy en la tierra deriva de uno mejor adaptado. Por lo tanto, un posible trabajo futuro sería desarrollar experimentos con la herramienta presentada en este trabajo de tesis los cuales busquen desarrollar controladores en un proceso adaptativo-evolutivo acumulativo. De esta forma, los posibles resultados podrían brindar un poco de luz a cómo esto puede explicar lo que ocurre en las generaciones de individuos a escala natural. Estudios sobre control adaptativo-evolutivo aplicado a múltiples componentes. Considerando un enfoque relacional entre componentes, una posible extensión del trabajo puede estar orientada a generar mecanismos de coordinación basados en relaciones simbióticas inspiradas en sistemas naturales, como en el caso del sistema inmunológico. Este estudio puede estar aplicado a la coordinación de múltiples robots y a la especificación de un control interno de cada robot. Para ello, puede desarrollarse un control jerárquico de comportamientos en cada robot sin que aspectos de comunicación explícita de directivas sea propuesto a nivel centralizado. Un primer paso para modelar conflictos entre niveles dentro de cada robot, o entre robots, podría orientarse a la definición de componentes de ponderación para resolver conflictos. Conclusiones 7.2.9 143 Aportes Realizados A continuación se especifica un resumen de los aportes generados: • Desarrollo de un “estudio incremental sobre escalabilidad comportamental en RE”, obteniendo un controlador capaz de gobernar la navegación de un agente robótico móvil, promoviendo reusabilidad y escalabilidad de comportamientos. • Implementación de una herramienta para reducir los esfuerzos de obtención y definición tanto de los comportamientos como de los experimentos con controladores, promoviendo reusabilidad y su utilización en sistemas de control robótico móvil. • Desde una perspectiva ingenieril, concreción de estudios preliminares para el Proyecto de I+D AUVI (Autonomous Underwater Vehicle for Inspections) [Acosta, 2005]. El primer hito propuesto en cuanto al sistema de navegación, fue logrado en este trabajo: desarrollo de un sistema de navegación reactivo en entornos no conocidos a priori basados en controladores neuronales dentro del área de RE. • En cuanto al problema de escalabilidad dentro de la RE considerando comportamientos complejos, o comportamientos compuestos por subcomportamientos, se logró alcanzar dicho estudio partiendo de la propuesta de Evolución por Niveles con “un número mayor de neuro-controladores”, “pruebas con un simulador complejo”, “experimentos con robótica real”, y “con un número mayor de tareas” en relación a trabajos disponibles en la literatura. 7.3 Publicaciones Relacionadas con este Trabajo Se han generado artículos vinculados a partes de este trabajo en diferentes revistas, congresos y workshops de divulgación sobre Ciencias de la Computación y Robótica. Las publicaciones más relevantes son las siguientes: • Fernández León, J. A.; Acosta, G. G.; Mayosky, M. A. “An Experimental Study of Scaling Up in Mobile Robot Motion Control using Evolutionary Neuro-controllers”. Enviado al IEEE Transactions on Robotics (IEEE T-RO). En referato. 2005. • Fernández León, J. A.; Tosini, M.; Acosta, G. G.; Acosta, N. “An Experimental Study on Evolutionary Reactive Behaviors for Mobile Robots Navigation”. Journal of Computer Science & Technology (JCS&T), Vol. 5, Nro. 4, pp. 183-188 (Paper Invitado). 2005. • Fernández León, J. A.; Tosini, M.; Acosta, G. G. “Evolutionary Reactive Behavior for Mobile Robots Navigation”. IEEE Conference on Cybernetics and Intelligent Systems (IEEE CIS). Proceedings of the 2004 IEEE CIS, Singapore, pp. 532-537. 2004. • Tosini, M.; Fernández León, J. A.; Acosta, G. G. “Controladores Evolutivos en Robots Móviles y su Sintetización en una Aplicación de Lógica Programable”. Simposio Latino Americano en Aplicaciones de Lógica Programable y Procesadores Digitales de Señales en Procesamiento de Videos, Visión por Computador y Robótica. Anales SLALP 2004 (CD-Rom), Brasil. 2004. Además, se han presentado otros resultados y exposiciones parciales en: • Fernández León, J. A.; Tosini, M.; Acosta, G. G.; Acosta, H. N. “Estudio experimental sobre Comportamientos reactivos-evolutivos en navegación de robots móviles”. Presentado al XI Congreso Argentino de Ciencias de la Computación (CACIC 2005). Entre Ríos, Argentina. 17-21/10/05. • Fernández León, J. A.; Tosini, M.; Acosta, N. “Estudio de la Adaptación de Controladores en Robótica Evolutiva”. VII Workshop de Investigadores en Ciencias de la Computación (WICC´05). Anales del WICC 2005 (CD-Rom). Río Cuarto, Córdoba, Argentina. 13-14/05/05. 144 Conclusiones • Fernández León, J. A. “Hipótesis sobre el rol de la Adaptación en la Emergencia de Comportamientos”. INCA/INTIA, Research Report INCA-RR-001-05. Departamento de Computación y Sistemas, UNCPBA. 2005. • Fernández León, J. A.; Acosta, G. G. “Controladores Neuronales en Robótica Evolutiva”. Workshop de Investigadores en Ciencias de la Computación (WICC´04). Facultad de Economía y Administración, Universidad del Comahue. Anales WICC´04 (CD-Rom), pp. 521-525. Neuquén, Argentina. 2021/05/04. • Fernández León, J. A.; Vulcano, A. S.; Tosini, M. “Estudio de una Arquitectura Modular para Control Robótico Autónomo”. Workshop de Investigadores en Ciencias de la Computación (WICC´04). Facultad de Economía y Administración, Universidad del Comahue. Anales WICC´04 (CD-Rom), pp. 488-491. Neuquén, Argentina. 20-21/05/04. • Fernández León, J. A. “Robótica Evolutiva: la Próxima Generación de Robots Autónomos”. I Workshop en Inteligencia Artificial aplicada a Robótica Móvil. Facultad de Ciencias Exactas, UNCPBA. Anales del CAFR 2004 (CD-Rom). Tandil, Buenos Aires, Argentina. 9-11/06/04. 7.4 Algunas Lecciones Aprendidas para el Diseño de Neuro-Controladores Evolutivos A modo de resumen final de los resultados de esta tesis, se presentan una serie de reglas empíricas que se deberían de considerar en el diseño de un controlador robótico basado en evolución artificial. Aquí se seleccionan aquellas reglas de aplicación inmediata por parte del diseñador. • No sobredimensionalizar el tamaño de los neuro-controladores en cada nivel de comportamiento. Utilizar un mayor número de neuronas en cada nivel implica un crecimiento lineal (o a veces exponencial) de costo computacional. Por lo tanto, esto puede implicar desechar arquitecturas que resuelvan apropiadamente una tarea. • Reducir la cantidad de generaciones a un valor que presente estabilidad generacional. Los ciclos evolutivos son la principal fuente de consumo de cálculo computacional. La manera más directa de reducirlos es a través de un estudio generacional, el cual busque estabilidad en la función de fitness a valores aceptables. Una vez que dicha estabilidad sea encontrada, es posible cortar el proceso y obtener el controlador que mejor desempeño presente. Un punto importante es que dicho criterio puede ser un buen factor para detener la evolución, en lugar de una cantidad de generaciones de antemano. • Considerar mecanismos que aceleren la evolución. Mecanismos como el aprendizaje pueden ser de gran utilidad a la hora de desarrollar controladores mejor adaptados y de manera más rápida. Además, la consideración de una arquitectura por niveles de comportamientos es beneficiosa, debido a que sólo se somete a un proceso evolutivo a una parte del controlador, desactivando partes del mismo que ya fueron generadas. • Explorar y explotar las características de adaptación. El diseño de algoritmos que adapten o ajusten sus comportamientos a la tarea a resolver, son las fuentes más directas de ahorro de poder computacional. La modularidad de los algoritmos es una de las características más deseables para la obtención de un controlador evolutivo. Definitivamente, los resultados a nivel comportamental no son suficientes para evaluar la calidad del algoritmo respecto de control. Existen otras características a tener en cuenta, como la capacidad de producir o no acciones no planeadas, y principalmente aspectos de robustez morfológica y del entorno. • Registrar siempre que sea posible. Es importante registrar siempre que sea posible tanto las entradas como las salidas del controlador. Más aún, en las señales de salida de cada controlador es conveniente registrar sus acciones a fin de ser utilizadas para potenciales análisis del comportamiento grupal de los componentes comportamentales. • En la selección del algoritmo genético, cuidar el proceso de selección. Para determinados problemas, es conveniente utilizar algoritmos genéticos basados en la selección de los mejores Conclusiones 145 adaptados. En cambio para otros, es mejor seleccionar los que peor se adapten y mantener un rango de diversidad generacional mayor. Eventualmente, debe ser estudiado en forma profunda la utilización de mecanismos tales como cruzamiento y mutación de individuos. • Diseño cuidadoso de los experimentos a realizar. Como es de esperar, se debe prestar especial interés al desarrollo de las pruebas a resolver. Particularmente, aquí debe considerarse la función de evaluación del desempeño de los controladores (función de fitness). Dicha definición conllevará posiblemente al éxito o fracaso del experimento. 7.5 Resumen de los Experimentos Desarrollados Finalmente, se presenta una tabla resumiendo las características de los experimentos desarrollados. Sección Motivación Objetivo 5.3.1 Replicar parte del experimento propuesto por Nolfi y Parisi [Nolfi et al., 1997], y principalmente el experimento presentado por Floreano y Mondada [Floreano et al., 1996a] considerando la búsqueda de objetivo (fototaxis). Obtención de controladores optimales para comportamientos simples mediante un controlador monolítico. Búsqueda del mejor neuro-controlador para cada tarea simple según el criterio de robustez y adaptabilidad dentro de un proceso evolutivo. Comparación parcial con controladores monolíticos en relación con [Togelius, 2003] y otros trabajos. Controladores: FFNN, RFFNN, CTRNN, PNN, y HPNN. 5.3.1.6 Replicar el experimento propuesto en Analizar y verificar en forma experimental [Togelius, 2003] sobre búsqueda de objetivo con la finalidad de comparar los resultados condicional (fototaxis condicional). obtenidos con otros experimentos desarrollados en [Togelius, 2003]. Verificar en forma experimental el mejor controlador obtenido durante el proceso evolutivo (sección 5.3.1) ante alteraciones del objetivo. Controlador: HPNN. 5.3.2 Replicar parte del experimento de Nolfi et al. Objetivos similares a los señalados para la [Nolfi et. al, 2000, Cap. 4] considerando la sección 5.3.1, pero enfocado en observar evasión de obstáculos. cuáles son los resultados del desarrollo de controladores considerando un entorno cerrado con obstáculos. 5.3.2.6 Replicar en parte el experimento propuesto en [Togelius, 2003] y [Nolfi et al., 2000, Cap. 4] considerando la evasión de obstáculos con objetivo (navegación). Objetivos similares a los señalados para la sección 5.3.1.6, pero enfocado en observar cuáles son los resultados del desarrollo de controladores considerando un entorno cerrado con obstáculos según la búsqueda de objetivo. Controlador: HPNN. 146 Conclusiones 5.3.3 Replicar en parte el experimento propuesto Objetivos similares a los señalados para la en [Togelius, 2003] y [Nolfi et al., 2000] sección 5.3.1, pero enfocado en observar considerando aprendizaje de objetivo. cuáles son los resultados del desarrollo de controladores considerando un aprendizaje por refuerzos. 5.3.3.6 Replicar en forma parcial el experimento Objetivos similares a los señalados en la propuesto en [Togelius, 2003] en aprendizaje sección 5.3.1.6, pero enfocado en observar con variaciones deliberadas del objetivo. cuáles son los efectos del aprendizaje por refuerzos evolutivo. Controlador: HPNN. 6.2.2 Experimentos con Evolución por Niveles. Coordinación de comportamientos en una organización por Subsumisión [Brooks, 1986]. Desarrollo sobre un simulador complejo. Comparación de la evolución monolítica con respecto a la Evolución por Niveles con múltiples redes, considerando estudios con los mejores controladores simples desarrollados en las secciones anteriores. Comparaciones con los resultados obtenidos en [Togelius, 2003]. 6.2.3.1.1 Experimentos con el controlador generado en la sección 6.2.2 sobre seguimiento de paredes en un ambiente tipo laberinto. Replicación parcial del experimento propuesto en [Maaref et al., 2002]. Desarrollo sobre un simulador complejo. El objetivo a cumplir es que el robot pueda ajustarse a la forma de las paredes, y a la forma de los obstáculos que están presentes en el entorno. 6.2.3.1.2 Repetir los experimentos previos sobre un simulador simple y realizarlo en un modelo complejo del ambiente. Comportamiento de Búsqueda de Objetivo. Se tiene por objetivo que el robot se acerque a una fuente de luz mientras evade obstáculos. Comparación con resultados en entorno simple. 6.2.3.1.3 Verificar si con una configuración por niveles Similar a la sección 6.2.3.1.2 pero con es posible generar un comportamiento de evasión de obstáculos convexos. navegación en un entorno tipo laberinto [Maaref et al., 2002][Nolfi et al., 2000]. Desarrollo sobre un simulador complejo. 6.2.3.1.4 Verificar si con una configuración por niveles Similar a la sección 6.2.3.1.2 pero con es posible generar un comportamiento de evasión de obstáculos cóncavos. navegación en un entorno tipo laberinto teniendo como objetivo evitar situaciones de bloqueo. Combinar diferentes comportamientos [Maaref et al., 2002]. Desarrollo sobre un simulador complejo. 6.2.3.1.5 Coordinar diferentes comportamientos Coordinación de Comportamientos en un [Maaref et al., 2002]. Desarrollo sobre un entorno con diferentes tipos de simulador complejo. obstáculos. 6.2.3.1.6 Verificar robustez a variaciones ambientales Establecer la habilidad del controlador a [Greer, 2002]. Desarrollo sobre un simulador adaptarse a perturbaciones ambientales. complejo. Conclusiones 147 6.2.3.1.7 Verificar robustez a variaciones morfológicas Establecer la habilidad del controlador a [Greer, 2002][Di Paolo, 2000]. Desarrollo adaptarse a perturbaciones morfológicas. sobre un simulador complejo. 6.2.4 Verificar el desempeño del controlador final por niveles en un entorno real aplicado a un robot Khepera. Replicar parcialmente experimentos propuestos en [Nelson et al., 2004]. Obtener un controlador viable para el control de un robot real. Análisis y ajuste de las diferencias generadas entre un entorno simulado complejo y la realidad. Tabla 32 – Resumen de los experimentos desarrollados, propósitos y motivaciones. Apéndice - NOTAS PARA EL USUARIO NOTAS PARA EL USUARIO Para realizar los experimentos presentados en este trabajo de tesis, se desarrolló un conjunto de clases de software, las cuales constituyen una herramienta para la generación de resultados experimentales con controladores robóticos. En este apéndice, se detallan brevemente algunas de las características de la herramienta, la cual fue mencionada a lo largo del presente trabajo. No se especificará aquella información referida a cómo utilizar la herramienta en forma completa. Sin embargo, se detalla cómo compilar la totalidad de los componentes, junto con un esquema general de la relación entre ellos. A.1. Módulos de Software Los diferentes módulos de software fueron desarrollados en el lenguaje de programación Java, por lo cual tienen la utilidad de ser usados bajo Windows y Linux, según la especificación del lenguaje. Los diferentes componentes, tales como la descripción de la funcionalidad de las redes neuronales, los correspondientes a los tests experimentales, así como también la funcionalidad de la representación del genotipo de cada controlador, son modelados como una clase abstracta. Las diferentes implementaciones de tales clases, se modelan como extensiones para luego crear instancias de las mismas. Todos los parámetros fueron especificados en el programa, y aquellos que presentaron un carácter general a varios tipos de representaciones, p. ej. el caso de la cantidad de neuronas de cada capa para las redes neuronales, fueron definidos en una clase especial denominada ResBundle.java. La interacción principal entre la herramienta y el simulador está dada a través de un conjunto de interfaces. Cada una de ellas especifica la forma de comunicación con un simulador en particular. Cabe aclarar que la definición de las mismas es extensible a otros simuladores por parte del programador. Del mismo modo, la única interacción desarrollada con el usuario fue a través de un conjunto de clases que muestran de manera gráfica los datos de un experimento, p. ej. las actividades de las neuronas y las señales de entrada y salida. Básicamente, dado que se utilizó un lenguaje orientado a objetos, se buscó modularizar cada uno de los componentes. Como es de esperar, cada uno de ellos se agrupó en paquetes de clases con funcionalidad en común (p. ej. diferentes tipos de redes neuronales). En cuanto a uno de los componentes de visualización desarrollados, la clase PlotTester.java es la encargada de graficar las señales de las neuronas o los datos sensados del entorno. 150 Apéndice Figura 120 – Principales clases implicadas con la clase NeuroController. La clase principal en la cual se especifica el test a realizar, conjuntamente con los tipos de controladores implicados, corresponde a NeuroController.java. La clase denominada EmpiricalTest.java especifica las características mínimas (métodos y definiciones de estructuras) que debe poseer la definición de un test experimental. Cada una de las clases señaladas contiene la funcionalidad concreta del componente al que modela. Por ejemplo, la definición de una red neuronal genérica (Network.java) contiene la representación de las diferentes conexiones sinápticas junto con sus pesos. Esto representa una funcionalidad común a todas las definiciones fenotípicas de las redes a generar. De manera similar, la definición del genotipo (Genotype.java) modela las distintas representaciones neuronales durante el proceso evolutivo. De esta forma, la extensión de dichas clases hereda la definición de estructuras específicas a cada clase genérica (clase abstracta), y permite que sean incorporadas definiciones adicionales. Por ejemplo, para la creación de un genotipo homeostático-plástico (GenotypeHPNN.java) se definirá una estructura vinculada a las reglas plásticas, mientras que para una representación del tipo CTRNN (GenotypeCTRNN.java) se definirán, por ejemplo, constantes temporales (véase sección 4.2.4). En la Figura 121 se muestra un diagrama de clases de la herramienta. Las principales clases son: NeuroController.java, GeneticAlgorithm.java, Network.java, Genotype.java, Neuron.java, EmpiricalTest.java y ResBundle.java 151 Apéndice Figura 121 – Diagrama de la asociación entre las principales clases desarrolladas. 152 Apéndice A.2. Interfaces con el Robot Al momento de definir un test experimental, es necesario especificar tanto la interfaz de simulación como la comunicación con el robot real. Esto se lleva a cabo de diferentes maneras. En el caso de realizar un experimento simulado, se define una interfaz de comunicación con el simulador, considerando la funcionalidad mínima necesaria representada en SimulatorInterface.java. De esta manera, cualquier experimento puede comunicarse de manera genérica con cualquier simulador disponible. Posteriormente, dependiendo de una configuración interna de dicha clase, se dirigirán los diferentes comandos de control según el simulador deseado. En ello intervendrá otro tipo de interfaz, la cual mapeará la funcionalidad provista por cada simulador para ser entendida por el test implementado. Como ejemplo de tal tipo de interfaz, la clase YAKSModel.java modela el mapeo antes referido para el simulador YAKS [Karlson, 2002]. Por otro lado, en el caso de realizar un experimento en un entorno real, se debe establecer la comunicación con el robot real, y dado que fue seleccionado el simulador YAKS modificado (véase sección 3.4.5) se procede a habilitar el seteo run_real 1, baud_rate 38400, serial_line /dev/ttyS0 del archivo de configuración de dicho simulador (p. ej. simple.opt en el directorio raíz). Así, la misma funcionalidad presentada al momento de trabajar en forma simulada, está disponible cuando se realizan pruebas en el entorno real. En la Figura 122 se muestra un diagrama de clases de la relación entre la interfaz genérica con los simuladores, asociado a una definición del test experimental. Figura 122 – Principales clases implicadas con la interfaz de simulación. Para poder interceptar los mensajes (especialmente el sensado del entorno) de un simulador o del robot real, existen una serie de comandos a ser definidos. Los principales son: communication, readProximitySensors, readLightSensors, turnRobot , advance. Estos comandos permiten captar los valores sensados, como así también enviar señales sobre los actuadores en forma de ángulo de desviación y avance. Particularmente, el método communication es el responsable dentro de la clase SimulatorInterface.java, y en su eventual instancia (p. ej. YAKSModel.java) de comunicarse vía socket a un puerto de comunicación que será leído por el simulador respectivo. En el caso que se quiera realizar la comunicación entre la aplicación de control y un simulador, se deberá modificar solamente la interfaz entre ambos componentes. Así, se reflejarán los métodos necesarios por la aplicación vinculados al simulador. 153 Apéndice Por lo tanto, resulta de gran importancia disponer de interfaces que reflejen fielmente la funcionalidad de cada simulador, junto con su respectiva documentación. Esto resulta útil con simuladores que posean depuradores internos y herramientas de visualización. En general, lo antes expresado permite extender la funcionalidad del conjunto de experimentos en función del simulador o entorno a utilizar. A.3. Definición de un Experimento Cuando se quiere llevar a cabo un test experimental, es necesario especificar los componentes intervinientes. Según el contexto planteado en este trabajo, se deberá definir que tipo de red neuronal definirá la funcionalidad de los controladores, junto con su representación genotípica. Además, será necesario precisar cuál será el criterio de evaluación del desempeño de cada controlador (función de fitness). Dicha función estará definida dentro de la clase que codifica al test. Esta clase contiene, entre otras cosas, información acerca de los métodos que captan la señal del entorno (simulado o real) junto con la sentencia de invocación a la actualización de los valores internos de la red o sentencia de generación de una señal de control. Tal señal será enviada vía interfaz con el simulador a los actuadores del robot. Por lo tanto, la clase que extenderá de EmpiricalTest.java será responsable de asociar todos los componentes que deben ser activados al ejecutarse un experimento. Para determinar cuál va a ser el experimento a ser ejecutado, y con qué algoritmo, la clase principal NeuroController.java, activará una instancia de un experimento, junto con el algoritmo encargado de seleccionar controladores en base a la definición de la función de fitness. A.4. Compilación El desarrollo de los diferentes componentes fue evolucionando a través del tiempo. Al inicio se desarrolló bajo JDK 1.3.1 y 1.4.1, pasando por herramientas gráficas que utilizan dicho compilador, hasta entornos de trabajo más avanzados. Finalmente, se decidió realizar el proyecto final bajo Borland JBuilder 7.0 Enterprise Edition. La totalidad de archivos (clases Java) que representan la funcionalidad de la aplicación, pueden ser compilados de manera conjunta utilizando comandos Java sobre la clase principal NeuroController.java. Además, y de manera más simple, es posible desarrollar un proyecto mediante JBuilder 7.0 o superior desde Windows. A.5. Seteo de parámetros Los diferentes parámetros de la aplicación están agrupados dentro de la clase ResBundle.java. Tales parámetros pueden ser modificados antes de la compilación a fin de obtener la morfología y aspectos del controlador y del entorno a ser considerados en el programa. Además, se codifican algunos parámetros intervinientes en el algoritmo genético. Algunas de las definiciones son: Parámetro Descripción INFRA_POTENC_SENSOR Factor de importancia de los sensores ELITISM Modelo de selección genético. MAXIMUM_SYNAPTIC_WEIGHT Máximo valor de peso sináptico. MINIMUN_SYNAPTIC_WEIGHT Mínimo valor de peso sináptico. 154 Apéndice INIT_SYNAPTIC_WEIGHT Proporción de inicialización de los pesos. RUNS Número de corridas. MAX_GENERATIONS Cantidad de generaciones. ITERATIONS Número de movimientos por corrida MUTATION_RATE Tasa de mutación. POPULATION_SIZE Tamaño de la población. NUMBER_OBSTACLES Número de objetos en el entorno. NUMBER_SOURCES Cantidad de obstáculos. I_NEURONS Número de neuronas de entrada. H_NEURONS Cantidad de neuronas ocultas. O_NEURONS Cantidad de neuronas de salida. INFRA_NOISE Nivel de ruido en los sensores infra-rojo. LIGHT_NOISE Nivel de ruido en los sensores de luz. Tabla 33 – Ejemplos de parámetros de programa BIBLIOGRAFIA [Abbott et al., 2004] Abbott, L. F.; Regehr W. G. Synaptic Computation. Nature, Vol. 431, pp. 796-803. 2004. [Ackley et al., 1990] Ackley, D. H.; Littman, M. L. Generalization and scaling in reinforcement learning. In Touretsky, D. S. (Ed.). Advances in Neural Information Processing Systems 2, pp. 550-557. Morgan Kaufmann, San Mateo, CA. 1990. [Acosta, 2005] Acosta, G. G. (2005). Proyecto 03027 – AUVI (Autonomous Underwater Vehicle for Inspections), 6th European Framework Programme for Research and Development, financiado por la Unión Europea, contrato MIF1-CT-2004-003027, septiembre 2004/septiembre 2007. [Ansel, 1999] Ansel, L. W. A quantitative model of the Simpson–Baldwin effect. J. Theor. Biol. 196, 197–209. 1999. [Aristoteles, 1955] Aristoteles. Aristotle: Parts of Animals. Cambridge, Mass., Hardvard University Press, pp. 103. 1955. [Arkin, 1998] Arkin, R. C. Behavior-Based Robotics. The MIT Press, Cambridge, Massachusetts, 1998. [Ashby, 1960] Ashby, W. R. Design for Brain: The Origin of Adaptive Behaviour. London: Chapman and Hall, 2nd edition, 1960. [Baker et al., 1996] Baker, G. L.; Gollub, J. B. Chaotic Dynamics: An Introduction, 2nd ed. Cambridge, England: Cambridge University Press, 1996. [Baldwin, 1896] Baldwin, J. M. A new factor in evolution. American Naturalist, 30:441-451, 1896. [Beale et al., 1990] Beale R.; Jackson, T. Neural Computing, an Introduction. Adam Hilger, Bristol, 1990. [Beer et al., 1992] Beer, R. D.; Gallagher, J. C. Evolving dynamical neural networks for adaptive behaviour. Adaptive Behavior, 1(1):91-122, 1992. [Beer, 1990] Beer, R. D. Intelligence as Adaptive Behavior: An Experiment in Computer Neuroscience. San Diego: Academic Press, 1990. [Beer, 1995] Beer, R. On the dynamics of small continuous-time recurrent neural networks. Adaptive Behaviour 3(4):471-511, 1995. [Beer, 1996] Beer, R. D. Towards the evolution of dynamical neural networks for minimally cognitive behaviour. In Maes, P.; Mataric, M. J.; Meyer, J-A.; Pollack, J. B.; Wilson, S. W., editors, From Animals to Animats 4: Prooceedings of the 4th Int. Conf. on Simulation of Adaptive Behaviour, pp. 421-429. MIT Press, 1996. [Beer, 2001] Beer, R. D. The dynamics of active categorical perception in an evolved model agent. Submitted to Behavioral and Brain Sciences, 2001. [Beer, 2003] Beer, R. D. The dynamics of active categorical perception in an evolved model agent. Adaptive Behavior, 11(4):209-243, 2003. [Belovsky, 1984] Belovsky, M. G. American Midland Naturalist, 111, pp. 209-222. 1984. [Benreguieg et al., 1998] Benreguieg, M.; Maaref, H.; Barret, C. Navigation of an autonomous mobile robot by coordination of behaviors. In Proceedings of the Third IFAC Symposium on Intelligent Agent Autonomous Vehicles, pp. 589-594, Madrid, March 25-27. 1998. [Bishop, 1995] Bishop, C. Neural Networks for Pattern Recognition. Clarendon Press, 1995. [Blynel et al., 2003] Blynel, J.; Floreano, D. Exploring the T-Maze: Evolving Learning-like Robot Behaviors CTRNNs. In Proceedings of EvoROB2003: 2nd European Workshop on Evolutionary Robotics, 2003. [Bradshaw, 1997]. Bradshaw, J. M. Software Agents. AAAI Press, Menlo Park, USA, 1990. [Braitenberg, 1987] Braitenberg, V. Vehicles – Experiments in Synthetic Psychology. The MIT Press, CA. 1987. 156 Bibliografía [Brooks, 1986] Brooks, R. A. A robust Layered control System for a Mobile Robot. IEEE Journal of Robotics and Automation, 2: 14-23, 1986. [Brooks, 1991] Brooks, R. A. Intelligence without representation. Artificial Intelligence, 47:139-159, 1991. [Brooks, 1991a] Brooks, R. A. Intelligence without reason. A.I. Memo Nro. 1293, MIT AI Laboratory. April 1991. [Brooks, 1999] Brooks, R. A. Cambrian Intelligence. Cambridge, MA: MIT Press. 1999. [Burnet et al., 1964] Burnet, A. L.; Eisner, T. Adaptación Animal. Serie Moderna de Biología. Continental (Ed.). 1964. [Calabretta et al., 2000] Calabretta, R.; Nolfi, S.; Parisi, D.; Wagner, G. Duplication of Modules Facilitates Functional Specialization. Artificial Life, 6(1), 69-84, 2000. [Cecconi et al., 1996] Cecconi, F.; Menczer, F.; Belew, R. W. Maturation and the evolution of imitative learning in artificial orgenisms. Adaptive Behavior, 4: 29-50. 1996. [Codonie et al., 1997] Codonie, W.; Hondt, K. D.; Steyaert, P.; Vercammen, A. From custom applications to domain-specific frameworks. Communications of the ACM, 40(10):71-77, 1997. [Cormen et al., 2001] Cormen, T. H.; Leiserson, C. E.; Rivest, R. L.; Stein, C. Introduction to Algorithms. Second Edition, Cambridge, MA: MIT Press, 2001. [Dale, 1994] Dale, K. Evolving Neural Network Controllers for Task Defined Robots. MSc in Knowledge-Based Systems. University of Sussex. 1994. [Darwin, 1859] Darwin, Ch. On the Origin of Species by Means of Natural Selection. Londres: Murria, 1859. El origen de las especies. Traducción de Juan Godo. Barcelona: Ediciones Zeus, 1970. [Dawkins, 1986] Dawkins, R. The Blind Wachmaker. Nueva York, W. W. Norton. 1986. Traducción al Español: El Relojero Ciego, Barcelona, RBA, 1993. [Descartes, 1637] Descartes, R. Discours de la méthode pour bien conduite sa raison et checher la verité dans les sciences, 1637. Discurso del método – Meditaciones Metafísicas. Biblioteca de los grandes pensadores. Traducción de Rodríguez Huéscar, A., 2004. [Di Paolo, 2000] Di Paolo, E. Homeostatic adaptation to inversion of the visual field sensorimotor disruptions. Proceedings of SAB 2000, MIT Press, 2000. [Di Paolo, 2002] Di Paolo, E. A. Evolving robust robots using homeostatics oscillators. Cognitive Science research paper 536, School of Cognitive and Computing Sciences: University of Sussex, 2002. [Di Paolo, 2002a] Di Paolo, E. A. Fast homeostatic oscillators induce radical robustness in robot performance. Proc. of SAB´2002, MIT Press. 2002. [Di Paolo, 2003] Di Paolo, E. A. Organismically-inspired robotics: Homeostatic adaptation and natural teleology beyond the closed sensorimotor loop. K. Murase & T. Asakura (Eds), Dynamical Systems Approach to Embodiment and Sociality, Advanced Knowledge International, Adelaide, Australia, pp 19 - 42. 2003. [Dopazo et al., 2003] Dopazo, H.; Gordon, M. B.; Perazzo, R. S.; Risau-Gusman, S. A Model for the Emergence of Adaptive Subsystems. Bulletin of Mathematical Biology, 65, Elsevier, pp. 27–56. 2003. [Elman, 1990] Elman, J. L. Finding structure in time. Cognitive Science, 14:179-211, 1990. [Encarta, 2003] Biblioteca de Consulta Microsoft® Encarta®, 2003. [Evorobot, 2000] Nolfi, S. Evorobot evorobot/ simulator.html. 2000. 1.1 – User Manual. URL: http://gral.ip.rm.cnr.it/ [Fernández et al., 2004] Fernández León, J. A.; Tosini, M. A.,; Acosta, G. G. Evolutionary Reactive Behavior for Mobile Robots Navigation. 2004 IEEE Conference on Cybernetics and Intelligent Systems (CIS), Singapore, December 1-3, 2004. Bibliografía 157 [Fernández et al., 2005a] Fernández León, J. A.; Acosta, G. G.; Mayosky, M. A. An Experimental Study of Scaling Up in Mobile Robot Motion Control using Evolutionary Neuro-controllers. Enviado al IEEE Transactions on Robotics (IEEE T-RO). En referato. 2005. [Fernández et al., 2005b] Fernández León, J. A.; Tosini, M.; Acosta, G. G.; Acosta, N. An experimental study on Evolutionary Reactive Behavior for Mobile Robots Navigation. Enviado al Journal of Computer Science & Technology (JCS&T), Vol. 5, Nro. 4, pp. 183-188 (Paper Invitado). 2005. [Fernández, 2005] Fernández León, J. A. Hipótesis sobre el rol de la Adaptación en la Emergencia de Comportamientos. INCA/INTIA, Research Report INCA-RR-001-05. Dep artamento de Computación y Sistemas, UNCPBA. 2005. [Floreano et al., 1994] Floreano, D.; Mondada, F. Automatic creation of an autonomous agent: genetic evolution of a neural-network driven robot. In D. Cliff, P. Husbands, J. Meyer and S.W. Wilson (Eds.). From Animals to Animats 3: Proceedings of Third Conference on Simulation of Adaptive Behavior. Cambridge, MA: MIT Press/Bradford Books. 1994. [Floreano et al., 1996] Floreano, D.; Mondada, F. Evolution of Plastic Neurocontrollers for Situated Agents. In P. Maes, M. Mataric, J. A. Meyer, J. Pollack & S. Wilson (Eds.). From Animals to Animats 4, Proceedings of the International Conference on Simulation of Adaptive Behavior, Cambridge, MA: MIT Press, 1996. [Floreano et al., 1996a] Floreano, D.; Mondada, F. Evolution of Homing navigation in a real mobile robot. IEEE Transaction on Systems, Man, and Cybernetics-Part B: Cybernetics, 26(3):396-407. 1996. [Floreano et al., 1997] Floreano, D.; Mondada, F. Evolutionary neurocontrollers for autonomous mobile robots. Neural Networks, 11:1461-1478, 1997. [Floreano et al., 1998] Floreano , D.; Mondada, F. Evolutionary Neurocontrollers for Autonomous Mobile Robots. Neural Networks, 11, pp. 1461-1478, 1998. [Floreano et al., 1998b] Floreano, D.; Urzelai, J. I. Evolution and learning in autonomous robots. In D. Mange and M. Tomassini, editors, Bio-Inspired Computing Systems, PPUR, Lausanne, 1998. [Floreano et al., 1999] Floreano, D.; Urzelai, J. (1999) Evolution of Adaptive-Synapse Controllers. In D. Floreano et al. (Eds.), Advances in Artificial Life. Proceedings of the 5th European Conference on Artificial Life, Berlin: Springer Verlag. (ECAL'1999). 1999. [Floreano et al., 1999b] Floreano, D.; Urzelai, J. Evolution of Neural Controllers with Adaptive Synapses and Compact Genetic Encoding. In D. Floreano, J-D. Nicoud, and F. Mondada, editors, Advances in Artificial Life. Springer Verlag, Berlin. 1999. [Floreano et al., 2000] Floreano, D.; Urzelai, J. Evolutionary Robotics with on-line self-organization and Behavioral Fitness. Neural Networks, 13, pp. 431-443, 2000. [Forde et al., 2004] Forde, S. E. ; Thompson, J. ; Bohannan, B. J. M. Adaptation varies through space and time in a coevolving host-parasitoid interaction. Nature, Vol. 431. 2004. [Gallagher, 1999] Gallagher, J. WSU Java Simulator. URL:http://gozer.cs.wright.edu/ classes/ceg499/resources/WSU_Sim_v50.zip. 1999. [Gell-Mann, 1994] Gell-Mann, M. Complex Adaptive Systems. In Morowitz H, Singer JL - The Mind, the Brain and Complex Adaptive Systems - Addison-Wesley. 1994 [Gellon, 2004] Gellon, G. El huevo y la Gallina - Manual de instrucciones para construir un animal. Colección Ciencia que Ladra..., Siglo XXI Ed., 2004. [Goldberg, 1989] Goldberg, D. E. Genetic algorithms in search, optimization and machine learning. Addison –Wesley, Redwood, Ontario, Canada, 1989. [Gómez et al., 1996] Gómez, F.; Miikkulainen, R. Incremental Evolution of Complex General Behavior. Technical report AI96-248, Austin, TX: University of Texas, 1996. 158 Bibliografía [Gómez et al., 1999] Gómez, F.; Miikkulainen, R. Solving non-markovian Control Tasks with Neuroevolution. Proceedings of the 16 th Internacional Joint Conference on Artificial Intelligence, Denver, Co, Morgan Kaufmann, 1999. [Gomi, 1998] Gomi, T. Non-Cartesian Robotics – The First 10 years. In Gomi, T. (Ed.), Evolutionary Robotics, From Intelligent Robots to Artificial Life, Katana, Canada. AAI Books, 1998. [Grau, 1994] Grau, F. Automatic definition of modular neural neworks. Adaptive Behavior, 3:151-183, 1994. [Greer, 2002] Greer, D. An Exploration of Viable Architectures for Homeostatic Robot Controllers. MSc Thesis, University of Sussex. 2002. [Harvey et al., 1996] Harvey, I.; Stone, J. V. Unicycling helps your French: spntaneous recovery of associaciations by learning unrelated tasks. Neural Computation, 8:697-704. 1996. [Harvey, 1992] Harvey, I. The SAGA cross. The mechanics of recombination for species with variable length genotypes. In R. Manner and B. Manderick (Eds.), Parallel Problem Solving from Nature 2. Amsterdam: NorthHolland, 1992. [Harvey, 1996] Harvey, I. Relearning and evolution in neural networks. Adaptive Behavior, 4(1): 1-84. 1996. [Harvey, 1997] Harvey, I. Is there another new factors in evolution? Evolutionary Computation, 4(3): 313-329. 1997. [Haykin, 1999] Haykin, S. Neural Networks, A comprehensive Foundation. Second Edition. Prentice Hall, 1999. [Hinton et al., 1987] Hinton, G.; Nowlan, S. How learning can guide evolution. Complex Systems, 1:495-502, 1987. [Holland, 1975] Holland, J. H. Adaptation in natural and artificial systems – An introductory analysis with applications to biology, control, and artificial intelligence. The University of Michigan Press, Ann Arbor, 1975. [Husbands et al., 1998] Husbands, P.; Smith, T. ; Jakobi, N.; O’Shea, M. Better living through chemistry : Evolving gasnets for robot control. Connection Science, 10:185-210. 1998. [Jennings et al., 1998]. Jennings, N. R.; Sycara, K.; Wooldridge, M. A roadmap of agent research and development. Journal of Autonomous Agents and Multi-Agents Systems, 1(1):7-38, 1998. [Jordan et al., 2001] Jordan, M. I.; Rumelhart, D. Intenal world models and supervised learning. In Proceedings of the Eighth International Workshop on Machine Learning, pp. 70-74. Ithaca, NY.1991. [Kaplan et al., 2003] Kaplan, F.; Oudeyer, P-Y. Motivational Principles for Visual Know-How Development. Proceedings of the 3rd Epigenetic Robotic Workshop, pp. 72-80, 2003. [Karlson, 2002] Karlson, J. YAKS - Yet Another Khepera Simulator . URL: http://r2d2.ida.his.se/ [Keijzer, 2001] Keijzer, F. Representation and Behavior. Cambridge, MA: MIT Press, 2001 [Khatib, 1986] Khatib, O. Real time obstacla avoidance for manipulators and mobile robot. International Journal of Robotics Research 5 (1), pp. 90-99. 1986. [Khepera, 1999] Khepera User Manual, Version 5.02. K-Team, Lausanne, 1999. [Khepera, 2004] Khepera, mini robot . K-Team. http://www.k-team.com/robots/khepera /index.html, 2004. [Logan, 1998] Logan, B. Classifying agent systems. In AAAI-98 Workshop on Software Tools for Developing Agents, Madison, Wisconsin, USA. 1998. [Maaref et al., 1996] Maaref, H.; Benreguieg, M.; Barret, C. Navigation of a mobile robot in fuzzy turned artificial potential field. In Proceedings of the IEEE/IMACS International Conference, CESA’96, Robotics and Cybernetics. pp. 189-191, Lille, July 10-13. 1996. [Maaref et al., 2002] Maaref, H.; Barref, C. Sensor-based navigation of a mobile robot in an indoor environment. In Robotics and Autonomous Systems, 38, pp. 1-18. Elsevier. 2002. [Maes, 1992] Maes, P. Learning behavior networks from experience. In F. J. Varela, P. Bourgine (Eds.), Towards a Practice of Autonomous Systems: Proceedings of the First European Conference on Artificial Life. Cambridge, MA: MIT Press/Bradford Books, 1992. Bibliografía 159 [Mataric, 1997] Mataric, M. J. Reinforcement Learning in the Multi-Robot Domain. Autonomous Robots, 4(1), pp. 73-83, 1997. [Maturana et al., 1980] Marturana, H. R.; Varela, F. J. Autopoiesis and cognition: the realization of the living. Dordrecht: Reidel, 1980. [Mayley, 1997] Mayley, G. Landscapes, learning costs, and genetic assimilation. Evolutionary Computation, 4(3):213234, 1997. [McCulloch et al., 1943] McCulloch, W.; Pitts, W. A Logical Calculus of the Ideas Immanent in Nervous Activity. Bulletin of Mathematical Biophysics, 5, 115-133, 1943. [McFarland et al., 1993] McFarland, D.; Bosser, U. Intelligent Behavior in Animals and Robots. MIT Press, Cambridge, MA. 1993. [Michell, 1996] Michell, M. An Introduction to Genetic Algorithms. MIT Press, 1996. [Minglino et al., 1995] Minglino, O.; Luna, H.; Nolfi, S. Evolving mobile robots in simulated and real environments. Artificial life, 2:417-434. 1995 [Minsky, 1988] Minsky, M. The Society of Mind. Touchtone Books. 1988. [Moravec, 1988] Moravec, H. Mind Children: the nature of robot and human Intelligence. Harvard University Press, Cambridge, MA, 1988. [Nature, 2004] Tanguy, Ch. Plasticity & Neural Computation. Nature, Vol. 431, Nro. 7010, pp. 759-803. 2004. [Nelson et al., 2004] Nelson, A. L.; Grant, E.; Galeotti, J. M.; Rhody, S. Maze exploration behaviors using an integrated evolutionary robotic environment. Elsevier. Robotic and Autonomous Systems 46, pp. 159-173, 2004. [Nesse et al., 1994] Nesse, R. M.; Williams, G. C. Why We Get Sick. Vintage Books, Random House Inc. NY. 1994. Traducción al Español: ¿Por qué enfermamos? Por Francisco Ramos. Grijalbo. 2000. [Nolfi et al., 1997] Nolfi S.; Parisi, D. Learning to adapt to changing environments in evolving neural networks. Adaptive Behavior, 5, 75-98. 1997. [Nolfi et al., 2000] Nolfi, S.; Floreano, D. Evolutionary Robotics: The Biology, Intelligence, and Technology of SelfOrganizing Machines. MA: MIT Press/Bradford Books, 2000. [Nolfi, 1996] Nolfi, S. Adaptation is a more powerful tool than decomposition and integration. In T.fogarty and G. Venturini (Eds.) Proceedings of the Workshop on Evolutionary Computing and Machine Learning, 13th International Conference on Machine Learning, Bari, 1996. [Nolfi, 1997] Nolfi, S. Using Emergent Modularity to Develop Control Systems for Móbile Robots. Connection Science, 10, 3-4, 167-183, 1997. [Nolfi, 1998] Nolfi, S. Adaptation as a more powerful than decomposition and integration: Experimental evidences from evolutionary robotics. In P. K. Simpson (Ed.), Proceedings of the IEEE International Conference on Fuzzy Systems (FUZZ-IEEE’98), New York: IEEE Press, 141-146, 1998. [Nolfi, 1999] Nolfi, S. How learning and evolution interact: the case of a learning task which differs from the evoutionary task. Adaptive Behaviour, 7(2):231-236. 1999. [Nolfi, 2002] Nolfi, S. Evolving robots able to self-localize in the environment: the importance of viewing cognition as the result of processes ocurring at different time scales. Connection Science (14) 3:231-244. 2002. [Nolfi, 2005] Nolfi, S. Behaviour as a Complex Adaptive System: On the role of Self-Organization in the Development of Individual and Collective Behaviour. Unpublished, 2005. [Parisi et al., 1992] Parisi, D.; Nolfi, S.; Cecconi, F. Learning, Behavior and Evolution. In F. Varela and P. Bourgine (Eds.). Toward a Practice of Autonomous Systems, pp. 207-216. Cambridge, MA: MIT Press. 1992. [Parker, 1998] Parker, L. E. ALLIANCE: an architecture for fault tolerance multi-robot cooperation. IEEE Transactions on Robotics and Automation. 1998. 160 Bibliografía [Pfeifer et al., 1999] Pfeifer, R.; Scheier, C. Understanding Intelligence. MIT Press, Cambridge, MA, 1999. [Potgieter, 2004] Potgieter, A. E. G. The engineering of emergence in complex adaptive systems. Doctoral Thesis. Univ. of Pretoria, 2004. http://upetd.up.ac.za/thesis/available/etd-09222004-091805/ [Prescott et al., 1999] Prescott, T. J.; Redgrave, O.; Gurney, K. Layered control architectures in robots and vertebrates. Adaptive Behavior, 7, 99-127, 1999. [Quammen, 2004] Quammen, D. ¿Estaba equivocado Darwin?. National Geographic – En Español, pp. 2-35, Noviembre 2004. [Rational, 1997] Rational Software. UML Notation Guide. Racional Software, 1997. [Renders, 1991] Renders, J. M. Biological methaphor applied to process control. PhD Dissertation. Université Libre de Bruxelles. 1994 (en Francés) [Russell et al., 1995] Russell, S.; Norvig, P. Artificial Intelligence: A Modern Approach. Prentice-Hall, Inc., 1995. [Saerens, 1994] Saerens, M. Connection approach of process control. PhD Dissertation, Université Libre de Bruxelles. 1991. (en Francés) [Sasaki et al., 1997] Sasaky, T.; Tokoro, M. Adaptation toward changing environments: Why darwinian in nature?. In P. Husbands and I. Harvey (Eds.), Proceedings of the Fourth European Conference on Artificial Life, Cambridge, MA: MIT Press, 1997. [Shoham, 1997] Shoham, A. An overview of agent-oriented programming. In Software Agents. AAAI Press, Menlo Park, USA. 1997. [Skånhaug, 2003] Skånhaug, S. R. Architectural aspects of software for mobile robot systems. Master Thesis. Norges Teknisk-Naturvitenskapelige Universitet. 2003. [Slocum et al., 2000] Slocum, A.; Downey, D.; Beer, R. Further Experiments in the Evolution of Minimally Cognitive Behavior: From Perceiving Affordances to Selective Attention. Sixth International Conference on Simulation of Adaptive Behavior, Sept. 11-15, France. 2000. [Smith, 1998] Smith, P. Explaining Chaos. Cambridge, England: Cambridge University Press, 1998. [Smithers, 1995] Smithers, T. Are autnomomous agents information processing systems? In Steels, L., & Brooks, R. (Eds.), The Artificial Life Route to Artificial Intelligence. Lawrence Erlbaum, New Haven, 1995. [Steels, 1990] Steels, L. Exploring analogical representations. In Designing Autonomous Agents, Ed. P. Maes, MIT Press, Cambridge, MA, pp. 71-88. 1990. [Storm, 2003] Storm, T. KiKS. http://www.tstorm.se/projects/kiks/. 2003 [Sutton et al., 1998] Sutton, R .S.; Barto, A. G. Introduction to Reinforcement Learning. Cambridge, MA: MIT Press. 1998. [Téllez et al., 2004] Téllez, R. A.; Angulo, C. Towards a general architecture for scaling up in evolutionary robotics. Technical Report. University of Catalonia, Spain, 2004. [Togelius, 2003] Togelius, J. Evolution of the Layers in a Subsumption Architecture Robot Controller . Master of Science in Evolutionary and Adaptive Systems. University of Sussex, UK, 2003. [Togelius, 2004] Togelius, J. Evolution of a Subsumption Architecture Neurocontroller . Journal of Intelligent & Fuzzy Systems 15:1, pp. 15-21, 2004. [Tosini et al., 2004] Tosini, M. A.; Fernández León, J. A.; Acosta, G. G. Controladores Evolutivos en Robots Móviles y su Sintetización en una Aplicación de Lógica Programable. Simposio Latino Americano en Aplicaciones de Lógica Programable y Procesadores Digitales de Señales en Procesamiento de videos, Visión por Computador y Robótica, USP São Carlos, SP, Brasil, 8-10 de Noviembre de 2004. [Tuci et al., 2003] Tuci, E., Quinn, M.; Harvey, I. An evolutionry ecological approach to the study of learning using a robot based model. Adaptive Behavior, Vol. 10, Num. ¾, pp. 201-221, 2003. Bibliografía 161 [Turney et al., 1997] Turney, P. D.; Whitley, D.; Anderson, R. The Baldwin Efect. Evolutionary Computation, 4(3), 1997. [Urzelai et al., 1998] Urzelai, J.; Floreano, D.; Dorigo, M.; Colombetti, M. Incremental robot shaping. Connection Science, 10(3-4):341-360, 1998. [Urzelai et al., 1999] Urzelai, J.; Floreano, D. Incremental Evolution with Minimal Resources. Proceedings of IKW99. 1999. [Urzelai et al., 2001] Urzelai, J.; Floreano, D. Evolution of adaptive synapses: Robots with fast adaptive behavior in new environments. Evolutionary Computation, 9:495-524, 2001 [Urzelai, 2000] Urzelai Intza, J. Evolutionary Adaptive Robots: Artificial Evolution of Adaptation Mechanisms for Autonomous Agents. Docteur These, Lausanne, EPFL, 2000. [van Gelder, 1998] van Gelder, T. The dynamical hypothesis in cognitive science. Behavioural and Brain Sciences, 21:615-665. 1998. [Varela et al., 1991] Varela, F. J.; Thompson, E.; Rosh, E. The Embodied Mind: Cognitive Science and Human Experience. Cambridge, MA: MIT Press, 1991. [Venema et al, 2001] Venema, R. S.; Spaanenburg, L. Learning feed forward multi-nets. Proceedings of ICANNGA’01, Prague. 2001 [Waddington, 1942] Waddington, C. H. Canalization of development and the inheritance of acquired characters. Nature, 150:563-565, 1942. [Wallace, 1858] Wallace, A. R. On the Tendency of varieties to depart indefinitely from the original type. J. Proc. Linn. Soc. (Zool.) 3:53-62, 1858. [Webots, 2002] K-Team Webots. http://www.k-team.com/software/ webots.html [Wooldridge, 1995] Wooldridge, M.; Jennings, N.R. Intelligent agents: Theory and practice. The Knowledge Engineering Review, 10(2):115–152. 1995. [Wooldridge, 1996] Wooldridge, M.; Jennings, N. R. Software Agents. IEEE Review, pages 17-20, 1996. [Yamauchi et al., 1994] Yamauchi, B. M.; Beer, R. D. Sequential behavior and learning in evolved dynamical neural netwoks. Adaptive Behaviour, 2(3):219-246, 1994. [Yao, 1993] Yao, X. A review of evolutionary artificial neural networks. International Journal of Intelligent Systems, 4: 203-222. 1993. [Ziemke, 2000] Ziemke, T. On “Parts” and “Wholes” of Adaptive Behavior: Functional Modularity and Diachronic Sructure in Recurrent Neural Robot Controllers. In From animals to animats 6 - Proceedings of the Sixth International Conference on the Simulation of Adaptive Behavior (SAB 2000). Cambridge, MA: MIT Press. 2000. To facilitate academic research it has referenced papers that are not restricted by copyrights whenever these are of an equal or better quality than restricted alternatives