Home    About me    Publications    Blog    Undergrad memories

Fabio Ruini's blog

'cause Italians blog better

Archivio per maggio, 2010

An Incremental Approach to the Evolutionary Design of Autonomous Controllers for Micro-unmanned Aerial Vehicles

Ancora una volta ce l’abbiamo fatta. Questa volta con quasi quattro orette di ritardo rispetto alla deadline ufficiale (ma ne scontiamo una per via del fuso orario europeo), ma il paper per TAROS 2010 e’ stato ufficialmente sottomesso. In questo momento sono troppo fuso per riuscire a scrivere qualcosa di pur vagamente sensato. Quindi mi limito a copia/incollare l’abstract dell’articolo e mettervi a disposizione il link da dove potete scaricarlo nel caso in cui vogliate darci un’occhiata. Non garantisco sulle parti che ho scritto nelle ultime ore.

The work presented herein aims to provide a quantitative measure of the impact deriving from the adoption of an incremental approach to evolution within the context of Evolutionary Robotics. Notwithstanding the large amount of published researches relying on incremental evolution, little quantitative analysis have been performed so far to provide the answer to a basic question: is incremental evolution beneficial for evolutionary approaches to autonomous robotics? The application we use as testbed is a computer-based model of MAV (Micro-unmanned Aerial Vehicles) autonomous navigation. Either single individuals embedding a neural network controller or teams made of several MAVs are subjected to different tasks across a simulated three-dimensional world. These tasks are: (1) navigation to a target area, (2) tracking of a moving target, and (3) execution of a behaviour requiring spatial and temporal coordination among members of the same team. The results obtained are compared with those generated via direct evolution. There are no evidences of systematic advantages deriving from the adoption of an incremental evolution approach.

Share

Discussions on incremental evolution

Terzo weekend in quel di Losanna e terzo weekend che devo passare di fronte al computer per via di una qualche deadline. Non e’ esattamente un grande inizio. Questa e’ la volta del paper da sottomettere entro domani sera per TAROS 2010 (che, lo so, se non fosse stato per l’estensione della deadline avrei dovuto averlo gia’ finito un mese fa, ma tant’e'). Al momento sto aspettando i risultati delle ultimissime simulazioni in esecuzione sui server di Plymouth (che avevo trovato un po’ trafficati e la cosa ha quindi richiesto piu’ tempo del previsto), ma il paper e’ ormai pronto. Ieri e oggi li ho passati a mettere a posto la parte introduttiva e di literature review, attingendo da una marea di papers. Il risultato, una volta tanto, mi sembra molto soddisfacente. Al punto che lo condivido qui con voi, nel caso in cui abbiate commenti da fare o suggerimenti da consigliarmi (pregasi considerare che manca ancora una revisione linguistica e che, quello che trovate qui sotto, e’ tutto scritto a sentimento).

human-evolution

Introduction

Focusing on the domain of evolutionary computation, for ‘incremental evolution’ – as concisely stated by Barlow [1] – we refer to “the process of evolving a population on a simple problem and then using the resulting evolved population as a seed to evolve a solution to a related problem of greater complexity”.

The inspiration for this approach clearly comes from biological evolution. Animal species (and this is particularly true for humans) have acquired over the time the ability to perform extremely complex tasks. These abilities have not appeared from the middle of nowhere at a certain stage during the evolution, rather they have been progressively built up on top of simpler behaviours. If it is true that these simple behaviours have been sometimes quite evident in their manifestations (e.g., in order to learn how to run, the humans have gone through a complex series of sequential steps involving standing on their legs, walking, etc.) this is not always the case. Sometimes, in fact, these underlying capabilities needed as prerequisites for the development of more complex behaviours remained ‘silent’ over the time, i.e. not expressed in form of explicit behaviours before abruptly appearing. This is what has been demonstrated by Gould introducing the concept of ‘punctuated equilibrium’ [2], a phenomena that later on has been easily identified among many others areas outside the biological evolution domain, such as the introduction of government policies [3], the diffusion of technological innovations [4], etc. Both continuous/progressive evolution and punctuated equilibrium dynamics (see for example the classic work by Lindgren [5] can be seen as result of computer-simulated evolutionary processes.

In the work presented herein we propose the application of an incremental approach to evolution for an Evolutionary Robotics [6] model, aimed to the development of autonomous controllers for MAVs (Micro-unmanned Aerial Vehicles). Incremental evolution can be seen as a way to force the evolutionary algorithm used to generate a continuous evolutionary dynamics, thus better directing the evolution toward the desired goal, At the same time it allows avoiding the long periods of stasis typical of punctuated equilibrium-like dynamics that might make complicated evaluating the intermediate solutions emerged for a complex problem.

The remainder of this paper is structured as follows. In the opening section we provide a brief introduction about the usage of incremental approaches within the robotics and, more specifically, Evolutionary Robotics (ER) fields. Section II describes the functioning of the ER model employed as basis for the work presented herein and show the results obtained by non-incremental evolutionary runs of the corresponding computer simulator. Section III illustrates the characteristics of the incremental approach adopted and illustrates the results it has generated, performing a comparison with those obtained through direct evolution. The results are then discussed in details in Section IV, and the following conclusions are drawn in Section V.

Incremental evolution in autonomous robotics

The idea of using an incremental approach to evolution is very well known in the autonomous robotics and evolutionary computation fields. Gomez and Miikkulainen [7] describe the advantages of incremental evolution already back in 1997, mentioning among others the possibility offered by this approach for evolving behaviours otherwise not obtainable, as well as the better generalisation capabilities exhibited by controllers designed following this paradigm. But the origin of incremental evolution can be dated back even further. Rodney Brooks, for example, taking inspiration from his previous work on behavior-based robotics, was among the firsts to propose an incremental approach to be used within the genetic programming domain in 1992 [8]. This should not be surprising taking into account the fact that Brook’s subsumption architecture itself [9] could be easily seen as a way to mimic incremental evolution, building increasingly complex behavioural modules on top of simpler ones. A tribute must then be payed to Inman Harvey’s and his research group in Sussex for their studies on the SAGA (Species Adaptation GAs) framework [10]. Thanks to its work, Harvey’s group – that could be considered the ‘father’ of the incremental approach to evolution in autonomous robotics – has provided a coherent theoretical framework for incremental evolution. Framework that has been used by a significant number of researchers all over the world as basis for their works.

During more recent times, Mouret and Doncieux [11] have attempted to make order into the field, providing a classification of the possible approaches to incremental evolution in autonomous robotics in four categories: (1) ‘staged evolution’, (2) ‘environmental complexification’, (3) ‘behavioural decomposition’, and (4) ‘fitness shaping’. Staged evolution employs multiple fitness functions that correspond to multiple sub-tasks of increasingly difficulty: the population is initially evolved to perform the simplest task, then the fitness function is modified leading to the solution of the second task, and so on. Environmental complexification is similar to staged evolution, but the complexity of the task can be modified continuously operating on certain parameters. Behavioural decomposition (also called modular evolution) relies on the decomposition of a neural controller into separate task-based sub-controllers, each of these is evolved independently from the others. An evolutionary algorithm then combine all of these modules into a master neurocontroller. Finally, fitness shaping uses a weighted sum of multiple evaluation criteria in order to create a fitness gradient that evolution tries to follow.

As from the above classification, incremental evolution does not necessarily involve a progressive complexification of the controller architecture, although this is frequently the case especially when neural network are employed. Usages of this approach are abundant in literature. A good example consists in Stanley and Miikkulainen’s work [12], where they present the NEAT (NeuroEvolution of Augmenting Topologies) method, a framework for evolving neural network topologies along with synaptic weights. The results they have obtained applying NEAT on a reinforcement learning task used as benchmark demonstrate how this approach can outperform those based on fixed neural networks topologies. In Stanley’s case, the topology of the network changes over time following evolutionary dynamics. But it is also common the case in which is the experimenter who decides the topology the ‘global’ controller must have, manually joining various sub-modules dedicated to different functions. Togelius [13] (also reviewed in [14]) provides a further classification based on the possible ways in which different neural modules could be incrementally attached to an existing controller. He defines ‘incremental evolution’ as the evolution of a one layer network using multiple fitness functions, ‘modularised evolution’ as the evolution of multiple layers or multiple networks with a single fitness function, and ‘layered evolution’ as the evolution of a multi-layered network using multiple fitness functions, specific for each layer. On this basis, Tomko and Harvey [14] have pointed out that it is also of fundamental importance to consider how new units/modules are connected to the main controller during incremental evolution. Their findings highlight the detrimental effect generated by the use of random large connection weights, rather suggesting the linkage of additional neural modules using connection weights with zero values.

As reviewed by recent researches carried out by Petrovic [15][16], many works that can be found within the abundant Evolutionary Robotics literature have employed, to different extents, an incremental approach to evolution. The topics are as differentiate as possible: from the control of unmanned aerial vehicles [1] to 6-legged robots [17], passing through artificial vision systems [18] and autonomous learning [19]. Though, most of the published works simply justify the reason for using an evolutionary approach as consequence of non-better specified ‘issues’ in evolving the desired behaviour through direct evolution. Rarely a quantitative analysis of the advantages coming from the adoption of an incremental approach is provided. One of the few exceptions to this trend consists in the work carried out by Walker [20], who performs an accurate comparison between the performances generated by a direct and an incremental methods for a multi-variable symbolic regression problem. Walker interestingly takes into account the full ‘computational costs’ of both approaches, intended as the number of evaluations of the fitness formula required by the two alternatives. The results he collected demonstrate that no significant advantages in terms of full computational costs are guaranteed by the adoption of an incremental approach. Another recent interesting study, leading to similar evidences, is the one carried out by Christensen and Dorigo [21] comparing the performances generated by two popular approaches to incremental evolution (behavioral decomposiition and environmental complexity increase) against the results obtained through several non-incremental evolutionary algorithms. According to their results none of the incremental evolutionary strategies performs any better than the non-incremental approach. This stream of criticisms seems to have had an effect also on a fierce supporter of the incremental approach as Harvey, that in his already mentioned work states how – according to the analysis carried out – incremental evolution seems to outperform direct evolution only under specific conditions.

In conclusion literature presents results supporting both the arguments, with a recent increase in the number of works that look at the phenomena with a skeptical eye. Anyway, the impression is that it is still extremely difficult to provide a definitive answer to the dilemma whether incremental evolution is ‘better’ or not than direct evolution. The study presented herein aims to give an additional contribute to the topic, with the awareness of not being able to provide any conclusive answer.

References

[1] G. Barlow, C. Oh, and E. Grant, “Incremental evolution of autonomous controllers for unmanned aerial vehicles using multi-objective genetic programming,” Proceedings of the 2004 IEEE Conference on Cyber- netics and Intelligent Systems, 2004.
[2] S. Gould, The Structure of Evolutionary Theory. Belknap Press of Harvard University Press, 2002.
[3] F. Baumgartner and B. Jones, Agendas and Instability in American Politics. The University of Chicago Press, 1993.
[4] C. Loch and B. Huberman, “A punctuated-equilibrium model of technology diffusion,” Management Science, vol. 45, no. 2, pp. 160– 177, 1999.
[5] K. Lindgren, “Evolutionary phenomena in simple dynamics,” Artificial Life II, pp. 295–312, 1991.
[6] S. Nolfi and D. Floreano, Evolutionary Robotics. The Biology, Intel- ligence, and Technology of Self-Organizing Machines. Cambridge, MA: MIT Press, 2000.
[7] F. Gomez and R. Miikkulainen, “Incremental evolution of complex general behavior,” Adaptive Behavior, no. 5, pp. 317–342, 1997.
[8] R. Brooks, “Artificial life and real robots,” Toward a Practice of Autonomous Systems: Proceedings of the First European Conference on Artificial Life, pp. 3–10, 1992.
[9] R. Brooks, “A robust layered control system for a mobile robot,” IEEE Journal of Robotics and Automation, vol. 2, no. 1, pp. 14–23, 1986.
[10] I. Harvey, “Artificial evolution: A continuing saga,” Evolutionary Robotics. From Intelligent Robotics to Artificial Life, vol. 2217, pp. 94–109, 2001.
[11] J.-B. Mouret, S. Doncieux, and J.-A. Meyer, “Incremental evolution of target-following neuro-controllers for flapping-wing animats,” From Animals to Animats 9. Proceedings of SAB 2006, the 9th International Conference on Simulation of Adaptive Behavior, pp. 606–618, 2006.
[12] K. Stanley and R. Miikkulainen, “Evolving neural networks through augmenting topologies,” Evolutionary Computation, vol. 10, no. 2, pp. 99–127, 2002.
[13] J.Togelius,“Evolution of a subsumption architecture neurocontroller,” Journal of Intelligent and Fuzzy Systems, vol. 15, no. 1, pp. 15–20, 2004.
[14] N. Tomko and I.Harvey, “Do not disturb: Recommendations for incremental evolution,” Proceedings of ALIFE XII, the 12th International Conference on the Synthesis and Simulation of Living Systems, 2010.
[15] P. Petrovic, “Overview of incremental approaches to evolutionary robotics,” Proceedings of the 1999 Norwegian Conference on Com- puter Science, pp. 151–162, 1999.
[16] P. Petrovic, “A step towards incremental on-board evolutionary robotics,” Proceedings of SCAI’01, the Seventh Scandinavian Conference on Artificial Intelligence, pp. 3–12, 2001.
[17] D. Filliat, J. Kodjabachian, and J.-A. Meyer, “Incremental evolution of neural controllers for navigation in a 6-legged robot,” Proceedings of the Fourth International Symposium on Artificial Life and Robotics, 1999.
[18] I. Harvey, P. Husbands, and D. Cliff, “Seeing the light: Artificial evolution, real vision,” From Animals to Animats 3, Proceedings of SAB 1994, the 3rd International Conference on Simulation of Adaptive Behaviour, pp. 392–401, 1994.
[19] E. Tuci, M. Quinn, and I. Harvey, “An evolutionary ecological approach to the study of learning behavior using a robot-based model,” Adaptive Behavior, vol. 10, no. 3-4, pp. 201–221, 2002.
[20] M. Walker, “Comparing the performance of incremental evolution to direct evolution,” Proceedings of the 2nd International Conference on Autonomous Robots and Agents, pp. 119–124, 2004.
[21] A. Christensen and M. Dorigo, “Incremental evolution of robot controllers for a highly integrated task,” From Animals to Animats 9, pp. 473–484, 2006.

Share

Mario AI Competition

Mentre raccoglievo materiale per il paper che sto scrivendo riguardo all’applicazione di un approccio evolutivo incrementale al mio simulatore di MAVs, mi sono imbattuto nella pagina di tale Julien Togelius, della University of Copenhagen, interessato ad un suo articolo pubblicato nel 2004. Bazzicando all’interno della sua home page mi sono trovato un link interessante. Un collegamento che porta alla pagina dedicata alla Mario AI Competition 2009, una competizione patrocinata da IEEE Consumer Electronics Society Games Innovation Conference 2009 ed IEEE Symposium on Computational Intelligence and Games che si e’ tenuta in due tranche tra agosto e settembre dello scorso anno. Scopo della contesa, molto semplicemente, quello di sviluppare un controller intelligente per Infinite Mario Bros, un clone open source dello storico platform di casa Nintendo.

Infinite Mario Bros

La competizione ha riscosso un discreto successo (e, se l’avessi saputo per tempo, ci avrei partecipato di corsa pure io!), con personaggi che hanno proposto soluzioni anche molto complesse (vedi ad esempio il controller proposto da Robin Baumgarten, una dimostrazione di come sia possibile rendere incredibilmente complicato un task relativamente semplice). Un report dei contributi sottomessi lo si puo’ trovare qui e qui. Ovviamente, anche i sorgenti di tutti i controller (rigorosamente sviluppati in Java) sono liberamente scaricabili. La Mario AI Competition e’ stata riproposta anche per il 2010, ma ancora una volta sono arrivato lungo in quanto a tempistiche. Chissa’, magari il prossimo anno ce la faro’.

Purtroppo, non essendo pratico di applet Java per il web, non sono riuscito a trovare il modo di embeddare il gioco di cui si parla all’interno di questo post. Nel caso voleste farci una partitina, comunque, tutto cio’ che e’ necessario fare e’ puntare il vostro browser al link: http://www.mojang.com/notch/mario/index.html.

Share

Primi pezzi di un controller autonomo

Giornata piuttosto incoraggiante quella di oggi. Durante una sessione di pranzo/brainstorming con i colleghi del laboratorio abbiamo messo a punto gli ultimi dettagli ed abbozzato un piano di lavoro per il periodo che trascorrero’ qui all’EPFL. Come gia’ accennato post addietro, l’obiettivo della mia visita e’ quello di sviluppare un algoritmo di flocking e poi testarlo in reale utilizzando un certo numero di MAVs (probabilmente fino a 10, quindi un numero piuttosto significativo). Una cosa che, stando alla letteratura, ancora non e’ stata fatta con successo al di fuori delle simulazioni. Il software che utilizzavo a Plymouth sta venendo man mano riadattato al nuovo compito ed il processo sta andando piu’ velocemente di quanto avessi previsto (forse forse inizio a capire come funziona Irrlicht?). Al punto che oggi pomeriggio ho provveduto a scrivere un primo pezzo del controller di flocking. Si tratta di una funzione preliminare, ovviamente, che si occupa di mantenere il MAV entro i confini di un certo ambiente di riferimento. Poche righe di codice, ma che al momento sembrano funzionare (anche se andranno poi rifinite adattandole alle caratteristiche fisiche del robot usato). Qui sotto e’ comunque possibile vedere il risultato. 5 MAVs che viaggiano in maniera indipendente e che non escono (quasi mai) dai confini dell’ambiente.

Flight paths followed by 5 MAVs attempting to stay at the centre of a given environment

Lunedi’ si faranno le prime prove di volo con un aeroplanino utilizzante un mio controller. Nel frattempo mi installo Parallels ed una qualche distribuzione Linux per poter poi andare di cross-compiling sul software da trasferire sul robot. Si preannuncia qualcosa di interessante. Cosi’ come si preannuncia interessante il fatto che dovro’ richiedere il permesso di soggiorno per starmene qui. Cosa alla quale non avevo pensato, ma che in effettivamente ha senso considerato che non sono in un Paese parte dell’Unione Europea. Non so se tecnicamente posso essere considerato un clandestino sino a quando non mi sistemero’ da un punto di vista burocratico. Nel caso sarebbe un’altra esperienza da mettere a CV.

Share

Poker Tracker for Mac

A distanza di tempo si torna a parlare di poker su queste pagine. Purtroppo non si tratta di poker giocato (il mio ultimo live risale al 19 aprile scorso, con la vittoria al £15+4 deep stack del Grosvenor di Plymouth; al momento mi sto limitando, di tanto in tanto, a qualche sessione on line di heads-up prevalentemente su Gioco Digitale, che ho trovato terreno relativamente agevole), ma quasi. Ho infatti scoperto, assolutamente per caso, che gia’ da un botto di tempo (fine 2007, addirittura!) e’ disponibile una versione beta di Poker Tracker che gira in maniera nativa su Mac.

Poker Tracker 3 (splash screen)

Nonostante il programma in questione sia stato soppiantato dal piu’ recente Hold’em Manager, che moltissimi grinder sembrano preferire, si tratta comunque di un gran bel pezzo di software. Avendo poi il sottoscritto una licenza e, soprattutto, un database di circa 170,000 mani, era mio preciso dovere quello di installarlo. I risultati sono stati un po’ deludenti. Ci sono molti bug (in merito ai quali gli utenti/amministratori del forum ufficiale rispondono pero’ in maniera veloce ed efficiente), l’importazione dei file di history generati dalle poker room .it (per via dell’utilizzo del simbolo dell’€) non funziona bene ed il tutto non e’ propriamente velocissimo. Pero’ funziona. Con tanto di HUD che, questo si’, almeno su Full Tilt sembra girare piuttosto bene (su Stars non l’ho provato, mentre mi dicono non funzioni su Gioco Digitale per via di un presunto bug nel software delle room del network OnGame). Cosi’ come il replayer, che e’ veloce e non mi ha ancora dato il benche’ minimo problema.

Poker - Texas Hold'Em on Full Tilt Poker - Royal flush replayed through Poker Tracker (beta) for Mac

Se siete utenti Mac alla ricerca di un software nativo, meno limitato rispetto a Poker Copilot, Poker Tracker e’ quello che fa per voi.

Share

Pagina successiva »