48
Évaluation de la cognition dynamique artificielle : le cas de la marche d’un humanoïde Anthony Lannuzel Encadrants : Pierre De Loor, Fabrice Harrouet CERV : Centre Européen de Réalité Virtuelle EA–3883 – LISYC Laboratoire d’Informatique pour les SYstèmes Complexes Rapport de stage de Master 2 Recherche Informatique IFSIC Le 10 juin 2007

Évaluation de la cognition dynamique artificielle : le …deloor/doc/rapports/masterAnthonyLannuzel.pdf · un bilan des travaux actuels sur la cognition dynamique artificielle

Embed Size (px)

Citation preview

Évaluation de la cognition dynamiqueartificielle : le cas de la marche d’un

humanoïde

Anthony Lannuzel

Encadrants : Pierre De Loor, Fabrice Harrouet

CERV : Centre Européen de Réalité VirtuelleEA–3883 – LISYC

Laboratoire d’Informatique pour les SYstèmes ComplexesRapport de stage de Master 2 Recherche Informatique IFSIC

Le 10 juin 2007

Table des matières

Introduction 4

1 État de l’art 61.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.2 Aspects généraux de l’approche dynamique. . . . . . . . . . . . 6

1.2.1 Connexionisme et approche dynamique. . . . . . . . . . 71.2.2 Adaptabilité. . . . . . . . . . . . . . . . . . . . . . . . . 81.2.3 Aspect non linéaire de la dynamique. . . . . . . . . . . . 91.2.4 Exemples d’applications. . . . . . . . . . . . . . . . . . 9

1.3 Les réseaux de neurones de l’approche dynamique. . . . . . . . 101.3.1 Aspect de la mémoire. . . . . . . . . . . . . . . . . . . . 111.3.2 Réseaux de neurones récurrents et dynamiques. . . . . . 11

1.4 Choix d’un système d’apprentissage. . . . . . . . . . . . . . . . 121.4.1 Apprentissage par renforcement. . . . . . . . . . . . . . 131.4.2 Système de valeur. . . . . . . . . . . . . . . . . . . . . 141.4.3 Évolution génétique. . . . . . . . . . . . . . . . . . . . 16

1.5 Conclusions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2 Prototype 192.1 Simulation de la physique avec ODE. . . . . . . . . . . . . . . . 192.2 Architecture de l’humanoïde. . . . . . . . . . . . . . . . . . . . 20

2.2.1 Articulations . . . . . . . . . . . . . . . . . . . . . . . . 202.2.2 Distribution de la masse corporelle. . . . . . . . . . . . . 202.2.3 Contrôle du corps. . . . . . . . . . . . . . . . . . . . . . 21

2.3 Réseau de neurones. . . . . . . . . . . . . . . . . . . . . . . . . 222.3.1 Algorithme de mise à jour du réseau. . . . . . . . . . . . 232.3.2 Oscillations. . . . . . . . . . . . . . . . . . . . . . . . . 23

2.4 Évolution génétique. . . . . . . . . . . . . . . . . . . . . . . . . 242.4.1 Nombre de configurations possibles. . . . . . . . . . . . 252.4.2 Populations. . . . . . . . . . . . . . . . . . . . . . . . . 272.4.3 Fonction d’adaptation. . . . . . . . . . . . . . . . . . . 27

2

TABLE DES MATIÈRES 3

2.4.4 Génération d’un individu. . . . . . . . . . . . . . . . . . 292.4.5 Génération de nouvelles populations. . . . . . . . . . . . 292.4.6 Système de familles. . . . . . . . . . . . . . . . . . . . 312.4.7 Aide des nouveaux individus. . . . . . . . . . . . . . . . 34

3 Résultats 353.1 Fonction d’adaptation. . . . . . . . . . . . . . . . . . . . . . . . 35

3.1.1 Résultats des différentes fonctions d’adaptation. . . . . . 353.1.2 Dimensionnement des composantes. . . . . . . . . . . . 37

3.2 Exemple de comportement. . . . . . . . . . . . . . . . . . . . . 393.3 Importance des neurones internes. . . . . . . . . . . . . . . . . . 403.4 Adaptabilité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.4.1 Suppression d’un capteur. . . . . . . . . . . . . . . . . . 403.4.2 Mouvements du sol. . . . . . . . . . . . . . . . . . . . . 40

3.5 Comparaison par rapport à l’hexapode de Beer. . . . . . . . . . 413.5.1 Nombre de pattes et équilibre. . . . . . . . . . . . . . . 413.5.2 Nombre de connexions. . . . . . . . . . . . . . . . . . . 423.5.3 Neurones internes. . . . . . . . . . . . . . . . . . . . . . 433.5.4 Évaluation de l’adaptabilité. . . . . . . . . . . . . . . . 43

Conclusion et perspectives 45

Introduction

La cognition dynamique artificielle ([BG92], [DM02]) trouve ses originesconceptuelles dans le courant de l’énaction des sciences cognitives ([VTR93])et ses bases techniques dans la théorie des systèmes dynamiques. Il s’agit de pro-poser des modèles capables de rendre compte d’un couplage entre une entité ar-tificielle et son environnement qui soit à la source de l’autonomisation de cetteentité. L’entité est une organisation dont la structure génère un comportement, ob-servable de l’extérieur et capable d’agir sur son environnement. L’environnementpeut perturber la structure de l’organisation, ce qui aura pour effet de modifier lecomportement de l’entité elle-même. L’histoire de ce couplage va complexifier lecomportement de l’entité résultante, ce qui aura pour effetd’enrichir ses capacitéscognitives. Nous identifions deux pistes principales pour tenter d’atteindre un telobjectif. La première s’inspire de ce que F. Varela nomme lesracines biologiquesde la cognition. Issue de la vie artificielle, elle consiste àétudier la possibilité desimuler les phénomènes tels que l’autopoïèse pour exhiber l’autonomie ([BSF03],[BS04], [McM04]), le couplage et la co-évolution d’un modèle. L’autre, plus prag-matique, trouve plutôt ses origines dans l’intelligence artificielle numérique et sonlien avec les neurosciences ([AR88]). Elle consiste à élaborer des réseaux de neu-rones artificiels dont le comportement serait comparable à celui d’un système dy-namique complexe. Ce système possède des attracteurs et c’est le couplage entrel’environnement et le système qui provoque des basculements entre attracteurs,basculements dont va résulter un comportement. C’est sur cette piste que se po-sitionne le travail présenté ici. Comme nous le présenterons dans le premier cha-pitre, de nombreux travaux portent sur la mise en place de systèmes minimauxpermettant de définir des réseaux de neurones dynamiques. Les expériences vontjusqu’à montrer une adaptation du réseau à un changement de l’environnement.Les systèmes autonomes simulés actuellement sont nécessairement simples. Ainsichez Di Paolo ([DP03]) ou Beer ([BG92]), la richesse des comportements est ré-duite pour mettre en évidence une adaptation. Le cas de l’hexapode de Beer estplus complexe mais porte sur un animat dont les six pattes luidonnent un équi-libre potentiel certain. Nous cherchons à évaluer la pertinence de ces modèles pour

4

TABLE DES MATIÈRES 5

des cas plus complexes, où l’environnement est simulé de façon plus proche dumonde physique réel, avec ses imperfections et ses contraintes mécaniques. Pourcela, nous nous appuyons sur des modèles et des outils dédiésà la simulationd’univers virtuels physiques dynamiques. En plus d’apporter une expérimentationsupplémentaire pour les sciences cognitives, ces travaux peuvent contribuer à larobotique. Nous voulons également par la même occasion évaluer la possibilitéd’utiliser de tels modèles en réalité virtuelle pour autonomiser des agents ou desavatars. En effet, dans ce domaine, les environnements sontde plus en plus ouvertsdonc imprévisibles. Il est très difficile d’obtenir des agents virtuels dotés d’une au-tonomie intrinsèque. Cet objectif ambitieux ne peut être qu’une perspective à longterme. Ce travail est une première expérimentation de la mise en place d’un ré-seau de neurones dynamique pour autonomiser la marche d’un humanoïde simuléen prenant en compte des paramètres physiques et physiologiques d’un corps hu-main. Cependant notre objectif n’est clairement pas d’obtenir un humanoïde quirestitue une marche réaliste (comme le font [YLVdP07] ou encore [KB96]), maisbien d’évaluer une architecture cognitive déterminée. Le premier chapitre dresseun bilan des travaux actuels sur la cognition dynamique artificielle. Le chapitresuivant détaille l’implémentation que nous avons réalisée, tant au niveau de l’ar-chitecture physique que du réseau de neurones et de l’algorithme évolutionnaireque nous y avons implanté, tandis que le dernier chapitre retrace les résultats desexpérimentations que nous avons pu mener.

Chapitre 1

État de l’art

1.1 Introduction

Dans une première partie nous définirons cette approche et enaborderons lesaspects généraux, ainsi que certains critères qui l’opposent à une approche plusclassique mais assez proche, le connexionisme. L’utilisation des réseaux de neu-rones1 artificiels dans ces deux visions de la cognition nous amènera ensuite natu-rellement à étudier différents types de ces réseaux pour le cas qui nous concerne.Enfin, nous étudierons les manières de diriger le comportement de ces réseaux, parl’utilisation de différentes méthodes d’apprentissage, avant de conclure en déter-minant quelle application serait la plus pertinente pour mettre en œuvre l’approchedynamique, dans le cadre de l’autonomisation d’entités peuplant les environne-ments virtuels.

1.2 Aspects généraux de l’approche dynamique

Les chercheurs en intelligence artificielle (IA) se sont opposés à l’IA clas-sique2 en proposant le paradigmeanimat[Gui99, GD02], qui repose sur des ani-maux simulés sur ordinateur3. Dans ce cadre, l’environnement prend une part im-portante à l’acquisition des connaissances de l’animat. Cette approche de l’IA

1RdN2principalement symbolique, il s’agit de « cerveaux » équipés pour la circonstance, dans un

environnement construit pour la circonstance3animats complets, c’est-à-dire « incarnés » dans un systèmephysique capable d’agir dans un

monde réaliste

6

CHAPITRE 1. ÉTAT DE L’ART 7

située permet alors un couplage structurel entre l’animat et son environnement,c’est ce qui est appelé l’approche dynamique. Il s’agit pourl’animat d’évoluerdans un environnement dont il n’a pas de représentation explicite et, grâce à desbouclages internes, de se créer une propre représentation de l’environnement.

Une des caractéristiques intéressantes de la plupart des systèmes dynamiquesest qu’ils tendent à retrouver leur état initial, malgré lessollicitations de leur en-vironnement.

Idéalement, l’étude d’un animat complet se ferait dans un environnement réa-liste et imprévisible, avec le moins possible d’intervention humaine ; notammentlors de la conception, on essaie de donner le moins d’a priori possible sur la si-gnification des entrées/sorties de l’animat.

Nous orientons notre recherche vers les réseaux de neurones, car ceux-ci sontclairement les plus utilisés dans ce type d’étude. Nous étudierons ce point plus endétail dans la section1.3. Cependant cet aspect « RdN » de l’approche dynamiquemet en évidence son origine connexioniste. Il semble donc opportun de comparerces deux voies.

1.2.1 Connexionisme et approche dynamique

Agnès Guillot [Gui99] compare ainsi le connexionisme classique et l’approchedynamique :

Connexionisme Approche dynamique

Métaphore pour une Causalité linéaire : Causalité circulaire :architecture de contrôle systèmes entrées-sorties systèmes récurrents

Relations entre le Séparé, objectif. Engagé, subjectif.monde et Représentable en patterns Présentable par les actionsl’animat d’activation

Métaphore pour les Émergence d’une succes- Flot d’états continus.comportements sion d’états discrets Bifurcations non linéaires

Cerveau vs. Séparable. Les connaissancesInséparable. Co-constructioncorps/monde émergent d’une interaction des connaissances par le corps

entre le corps et le monde. et le monde dans un historiqued’interactions réciproques.

Outre l’aspect récurrent du système dynamique (voir section 1.3), on note larelation étroite entre celui-ci et son environnement, il s’agit du couplage structurel

CHAPITRE 1. ÉTAT DE L’ART 8

évoqué précédemment. Les connaissances que l’animat établit de son environne-ment ne sont valables qu’en fonction de celui-ci, et n’ont donc pas de sensapriori . On remarque également la notion de flot d’états continus, par oppositionà une succession d’états discrets, dans le cas connexioniste. Les sorties des neu-rones d’un système continu sont plutôt des oscillations, c’est ainsi que le systèmeévolue petit à petit d’un état au suivant (voir figure1.1).

FIG. 1.1 – États d’un ensemble de neurones dans un réseau récurrent, en fonctiondu temps. (image tirée de http ://www.idsia.ch/∼juergen)

1.2.2 Adaptabilité

D’après [DP03], Ashby (1960) dit que lorsque ses variables essentielles (tauxde sucre, température du sang, ...) ont des valeurs anormales, l’animal teste denouveaux paramètres comportementaux. Une fois qu’un ensemble de ces para-mètres est trouvé qui restaure la stabilité des variables essentielles, la rechercheest terminée, et l’organisme s’est adapté. On peut considérer que ces « variablesessentielles » constituent une sorte de système de valeur. Cette notion sera dé-taillée dans la section1.4.2.

Pour en revenir à l’exemple ci-dessus, les systèmes capables d’une telle réor-ganisation sont dits ultra-stables, et c’est ce que nous recherchons, dans le sens oùl’intérêt d’un système dynamique est sa capacité d’adaptation en temps réel. On se

CHAPITRE 1. ÉTAT DE L’ART 9

retrouve alors face à un dilemme entre la plasticité et la stabilité : le système doitsavoir s’adapter aux modifications de l’environnement, tout en étant assez robusteau bruit. Ces capacités sont liées à une possible dynamique non linéaire.

1.2.3 Aspect non linéaire de la dynamique

Selon [Gui99], l’architecture utilisée par [BG92] (apprentissage de la marchechez un hexapode) est adaptative, non pas par suite d’apprentissage ou par chan-gement de structure, comme ce serait le cas d’un réseau connexioniste classique,mais par sa seule dynamique non linéaire. Ainsi, lorsque lespattes de l’hexapodegrandissent progressivement pendant qu’il se déplace, l’activation de ses neuronessensoriels et moteurs lui permet d’adopter rapidement une autre démarche.

De plus, [BD02] indique qu’il ne faut pas nécessairement chercher à stabiliserla dynamique interne du système, car il s’agit d’une source de diversité pour lacréation de comportements. Les phénomènes de transition entre différentes inter-prétations sont également décrits ([BD02]) comme des phénomènes d’intermit-tences dus à des couplages entre plusieurs systèmes dynamiques non linéaires eninteraction, ce qui prouve l’intérêt de la complexité du système.

1.2.4 Exemples d’applications

Différentes études ont abouti à des apprentissages de comportements de diffé-rentes sortes :

– apprentissage de la locomotion– navigation (détection d’amers)– sélection de l’action

CHAPITRE 1. ÉTAT DE L’ART 10

Exemple Apprentissage Animat But

[BG92] Insecte hexapode Locomotion tripode[TN98] Compétition sur Robot Détection

erreur de prédiction senseurs laser d’amers[Set98] Robot batteries Sélection d’action

[RDP06] Système de valeur Robot simulé Recherche de lumière[SA02] Système de valeur Robot avec pince à Tri cubes avec

capteurs électriques bon/mauvais goût[DP03] Règles de changements Robot simulé Recherche de lumière

synaptiques (ultra-stable) avec inversion visuelle[Bee96] Robot avec Orientation, pointage et

œil et bras différenciation d’objets[HDPWQ05] Robot avec Adaptation à l’inversion

deux yeux droite-gauche

Ce tableau nous montre que ces applications de cognition dynamique, se ser-vant pour la plupart de réseaux de neurones dynamiques4, offrent une grande di-versité de types d’adaptation. En effet réaliser un tri ou s’adapter à l’inversion decapteurs visuels semblent être des comportements adaptatifs complètement dif-férents. Cependant nous pouvons dégager de ceci plusieurs composantes sem-blables, telles que la nécessité pour le système d’être pourvu d’une sorte de mé-moire des événements passés, et une certaine résistance au bruit, lorsque l’envi-ronnement n’est pas « sur mesure », et que l’animat est confronté à des problèmesannexes, comme par exemple des différences de tons dans les couleurs des cubes[SA02], selon leur exposition à la lumière (voir en1.4.2pour des explications surcette expérience). Nous allons donc maintenant étudier lesréseaux de neuronesutilisés dans ces approches, pour prendre en compte les particularités que nousvenons de citer.

1.3 Les réseaux de neurones de l’approche dyna-mique

Il existe de nombreux types de réseaux de neurones, dont les applications sonttrès variées. Il nous faut donc prendre en compte différentsaspects du système quipeuvent être discriminants pour ces types de réseaux de neurones.

Comme indiqué dans [Bee96], le système nerveux d’un animat est vu non pas

4RdND, voir section1.3.2)

CHAPITRE 1. ÉTAT DE L’ART 11

comme un système de traitement d’information, mais plutôt comme un systèmedynamique qui, en conjonction avec les dynamiques du corps de l’agent et de sonenvironnement, est capable de produire un comportement efficace dans cet envi-ronnement. Cet aspect dynamique sous-entend une évolutiondu système d’aprèsson historique, il a donc une certaine forme de mémoire.

1.3.1 Aspect de la mémoire

L’approche dynamique inclut la prise en compte du passé de l’animat, c’est-à-dire que celui-ci doit avoir une mémoire de ses propres actions (états passés). Dansce cadre, la mémoire est vue comme un processus (Elman, 1990): elle se construiten interaction avec des données du monde réel et surtout n’est pas consultableindépendamment de ces situations d’interaction [DM02].

Cette mémoire peut être conçue en se basant sur la rémanence d’informationsdue à la causalité circulaire du réseau de neurones employé.Il s’agit ici de seservir de réseaux de neurones récurrents5.

Généralement le rappel de souvenirs repose sur la résonanceentre certains mo-tifs appris et la dynamique interne. La reconnaissance (ou le rappel) d’un stimulusintervient comme une transition de phase correspondant au passage d’une dyna-mique chaotique indifférenciée (« I don’t know » state) à unedynamique rythméeplus régulière et spécifique au motif reconnu [DM02]. Les réseaux dynamiquescorrespondent bien à ce type de fonctionnement.

1.3.2 Réseaux de neurones récurrents et dynamiques

Au vu des sections précédentes, nous allons voir que l’utilisation de RdNR estadaptée.

Les RdNR sont différents des réseaux de neurones artificielsclassiques commele perceptron, dans le sens où les données circulent dans lesdeux sens, et passeulement des couches d’entrée vers les couches de sortie. Ceci explique le faitque d’après [BD02], un réseau récurrent peut, sous certaines conditions, entrete-nir une dynamique interne propre, même en l’absence de stimulation, tandis que,lorsqu’elles sont présentes, il peut les utiliser pour modifier (si nécessaire) sa dy-namique interne et réagir (cette réaction pouvant correspondre à une modificationimmédiate ou différée des sorties du réseau).

5RdNR

CHAPITRE 1. ÉTAT DE L’ART 12

Les réseaux de neurones récurrents à temps continu sont appelés réseaux deneurones dynamiques (RdND).

Un avantage majeur par rapport aux réseaux neuronaux récurrents à tempsdiscret avec des pas de temps fixés est l’arbitrage, autorisant de plus petits pas detemps durant les transitions de signal raides, pour un meilleur compromis entre laprécision et le temps d’exécution, alors qu’il y a aussi toujours la possibilité dechoisir les pas de temps une fois que le modèle du réseau neuronal a été généré.6

Les RdND fournissent en sortie une réponse contextuelle quitient compte nonseulement de la valeur courante présentée à son entrée mais aussi de la suite desvecteurs d’états antérieurs du réseau.

D’après [BG92], ce type de réseau est régi par un système d’équations diffé-rentielles non linéaires. L’équation d’état duièmeneurone est définie ainsi :

τidyidt =−yi +

N∑j=1

w ji σ j(y j)+ Ii(t)

où y est parfois interprété comme le potentiel moyen de la membrane du neu-rone ;σ j(ξ) = 1

1+exp[b j−ξ]est une fonction sigmoïde7 (en forme de S) qui peut

être interprétée comme la fréquence moyenne de décharge ;b est le terme de biaisqui contrôle le seuil de la décharge ;τ est une constante de temps associée auxpropriétés passives de la membrane de la cellule ;w ji représente la robustesse dela connexion dujèmeau ièmeneurone ; etIi(t) représente une entrée extérieure auréseau telle que venant d’un capteur.

[Mei96] préconise l’utilisation d’équations différentielles desecond ordre pourchaque neurone, ce qui autorise les comportements d’oscillation complexe mêmedans des réseaux de rétro-propagation simple (non récurrents). Cependant dans unpremier temps nous préférons nous limiter à des équations dupremier ordre, plussimple à mettre en place, sans exclure la possibilité d’exploiter cette option par lasuite.

1.4 Choix d’un système d’apprentissage

Il y a plusieurs façons de guider l’apprentissage d’un réseau de neurones. Dansle cas de notre étude nous sommes intéressés par l’adaptation en ligne de la dyna-

6Peter B.L. Meijer, http ://www.seeingwithsound.com/thesis.htm7[DP03] définit la fonction sigmoïde comme étantσ j(ξ) = 1

1+exp[−b j−ξ]

CHAPITRE 1. ÉTAT DE L’ART 13

mique du réseau, dans laquelle les phases d’exploration et d’exploitation ne sontpas distinctes, c’est-à-dire qu’on veut que l’animat s’adapte en même temps qu’ilagit.

Ayant défini les paramètres de l’apprentissage, de nombreuxessais doiventêtre réalisés, qui se basent chacun sur un animat dont certaines caractéristiquessont aléatoires. Pour sélectionner le meilleur individu automatiquement, nous uti-liserons l’évolution génétique. Cependant, pour qu’un individu donné s’adapte àson environnement, il doit savoir différencier parmi ses actions celles qui sontbénéfiques de celles qui sont néfastes. On en vient naturellement à utiliser destechniques d’apprentissage artificiel comme le renforcement. Nous verrons égale-ment par la suite les possibilités qu’offre un renforcementinterne, dit système devaleur.

1.4.1 Apprentissage par renforcement

Cet apprentissage par punition/récompense se fait en ligne, c’est-à-dire au furet à mesure de l’exploration du monde par l’animat.

Dans le cas de l’apprentissage par renforcement, le systèmeest fondamenta-lement impliqué dans une interaction circulaire avec son environnement. Si, enapprentissage supervisé ou non supervisé, le système apprenant extrait de l’infor-mation de son environnement, en apprentissage par renforcement, il crée l’infor-mation autant qu’il l’extrait (à l’extrême, il crée l’information qu’il extrait) de parla boucle de causalité circulaire dans laquelle il est impliqué et dans laquelle il im-plique l’environnement. La question de la relation circulaire entre un système etson environnement constitue le fondement même de l’approche dynamique. Dèslors, parmi les trois paradigmes cités8, seul l’apprentissage par renforcement per-met à un système d’acquérir un état d’équilibre par l’acquisition d’une trajectoiredynamique en relation avec un environnement donné [BD02].

Le problème est de savoir qui décide du renforcement. Doit-il être externe(arbitrage réalisé par une règle artificielle définie par le concepteur du système),fourni par l’environnement ou interne ? Nous rappelons que dans le cadre de notreapproche, il est souhaitable de laisser le plus d’autonomiepossible à l’animat.C’est pourquoi il peut être opportun de recourir à une sorte d’arbitrage interne.Nous retrouvons cette notion dans les systèmes de valeur.

8apprentissage supervisé, non supervisé, par renforcement

CHAPITRE 1. ÉTAT DE L’ART 14

FIG. 1.2 – Renforcement du système de l’animat par l’environnement

1.4.2 Système de valeur

Un système de valeur permet à l’animat de savoir ce qui est bonou mauvaispour lui, et ainsi de conserver son équilibre, les valeurs deses paramètres quilui permettent de conserver son intégrité. Le paramétrage du système de valeurne se modifie pas durant l’exploitation de l’animat, c’est-à-dire qu’il est inné.L’utilisation de l’évolution génétique (voir section1.4.3) est un bon procédé pourle déterminer.

Le système de valeur peut par exemple être intégré à la mécanique du système,qui fait que quand l’objet est poussé il reprend son orientation initiale. C’est le casde la marche passive9, où un objet poussé ne tombe pas mais marche, avance ets’arrête dans une position stable.

Sporns et Alexander ([SA02]) se servent également d’un système de valeur,pour réaliser un système neuromodulatoire.

Dans cet exemple le robot doit attraper des cubes de deux couleurs possibles.Le goût des cubes est modélisé par une conductivité ou non du matériau, et lerobot finit par faire le lien entre la couleur du cube et son goût (bon/mauvais),grâce à un système de valeur interne. Il décide ainsi directement de s’approcherou non du cube, selon l’appétit que celui-ci lui procure.

Le signal de valeur utilisé dans cet article est un composé decomposants ré-compense et aversion. Il combine les caractéristiques d’unsignal de renforcementet d’un signal de salience10.

Nous notons que l’idée du goût comme système de valeur est assez réaliste

9passive walking, [McG90]10qui démarque une donnée des autres

CHAPITRE 1. ÉTAT DE L’ART 15

FIG. 1.3 – Renforcement interne par un système de valeur

car cela représente bien une valeur innée qui existe chez lesanimaux réels. Dansun exemple assez simple où l’animat aurait à conserver un certain équilibre, onpeut considérer les capteurs proprioceptifs, qui, innés, permettent à l’individu deconnaître sa position dans l’espace. De ce point de vue, un système de valeur peutêtre apparenté un système de renforcement, mais « de l’intérieur ».

Nous pensons donc utile de différencier deux systèmes de valeur :– celui qui se base sur une donnée venant de l’extérieur, et qui peut être vu

comme un renforcement de l’intérieur (exemple du goût) ;– un autre système de valeur qui émergerait intérieurement,comme décrit

dans [RDP06], chez qui le système de valeur est appris sur la base d’unefonction d’adaptation11 qu’il finit par remplacer.

Cependant, d’après Rohde et Di Paolo ([RDP06]), un système de valeur seraittrop sensible au bruit (modifications aléatoires par évolution génétique), ce qui faitque la valeur ne s’y retrouve plus. Ils ajoutent que « une structure rigide avec unesignificationa priori peut seulement fonctionner dans les situations qui comptentsur des circonstances phylogénétiques, la génération de nouvelles valeurs dansdes situations auxquelles nos ancêtres n’auraient même pasrêvé demande uneexplication différente ». Mais il n’y a peut-être pas de raison a priori pour qu’unrenforcement soit différent d’un système de valeur sur ce point, car dans les deuxcas on a forcément une part de significationa priori. Nous ne conclurons donc passur l’impossibilité d’utiliser les systèmes de valeur dansnotre cas.

11Couramment appelée fonction de fitness

CHAPITRE 1. ÉTAT DE L’ART 16

1.4.3 Évolution génétique

Pour déterminer un bon paramétrage du système de valeur ou del’algorithmede renforcement il est donc nécessaire d’avoir recours à uneévolution génétique,qui permet de baser l’évolution sur la qualité de chaque individu. On produit unepopulation de plusieurs animats, qui évoluent durant leur vie, et qui sont comparésen fin de leur simulation. Une fonction d’adaptation permet alors de sélectionnerles meilleurs, et de créer une nouvelle population en croisant et mutant ces derniers(voir figure1.4).

FIG. 1.4 – Apprentissage et évolution génétique

En conséquence il est essentiel de déterminer la meilleure fonction d’adap-tation possible. Cependant l’approche animat veut qu’on ait le moins d’à prioripossible [Gui99]. Il est donc probablement souhaitable de choisir un critère dediscrimination extérieur, comme par exemple la durée de viede l’animat, ou laquantité de nourriture acquise. Cela dépendra bien sûr de l’exemple d’applicationchoisi. On note que les exemples cités en section1.2.4se servent d’algorithmesgénétiques, et [Bee96] explique comment encoder l’espace de recherche (ici lespoids des connexions par exemple).

1.5 Conclusions

Cette étude nous a permis de mettre en avant les différents choix à réaliser pourla conception d’un animat en se basant sur l’approche dynamique de la cognitionartificielle.

Le conceptanimatintègre une volonté de réalisme dans la simulation, ce quinous amène à utiliser, dans notre modélisation, un moteur physique.

CHAPITRE 1. ÉTAT DE L’ART 17

Nous pensons que l’apprentissage de la marche est un prétexte crédible à l’éva-luation de l’adaptabilité dynamique d’un animat. Dans cette optique nous propo-sons la modélisation d’un bipède marchant sur un plan d’une certaine inclinai-son. Puis un changement dans la pente doit nous montrer si le système adapte saméthode de marche à l’évolution des conditions environnementales, pour main-tenir son équilibre12. Pour cela, l’utilisation d’un système de valeur paraît judi-cieuse, et nous pensons aux capteurs proprioceptifs qui, présents chez l’hommedans l’oreille notamment, lui donnent des indications sur sa position et sa vitessepar exemple. Il s’agira donc dans un premier temps d’un système valeur du type« externe » (voir section1.4.2), basé sur des données externes, c’est-à-dire quel’information proprioceptive est donnée par le moteur physique directement. Sicette approche réussit nous tenterons d’utiliser un système de valeur « interne »,en faisant en sorte que le système calcule un équivalent aux données propriocep-tives de l’environnement, ce qui correspondrait plus au système de valeur décritpar [RDP06].

Nous préconisons naturellement l’utilisation de RdND, quipermettront decontrôler les angles entre les différents segments des pattes, ainsi que Beer les uti-lisait dans son hexapode [BG92]. Cependant si nous voulons simuler un systèmeréellement dynamique, il faut que l’animat puisse avoir un effet sur l’environne-ment, en réponse aux perturbations de ce dernier. Dans le casde la marche il estpeut-être envisageable de modifier le sol par exemple.

FIG. 1.5 – Évolution de l’environnement d’un bipède, ici la pente du sol. Lesneurones sont dessinés à titre indicatif, et il en faut bien sûr plus que le nombreindiqué.

Nous tâcherons également de prendre en compte une remarque de Beslon etDaucé ([BD02]), qui indiquent, à propos de l’approche dynamique, que « ladé-marche proposée consiste à éloigner le concepteur de l’agent qu’il conçoit (c’est-

12Un réseau de neurones non dynamique permettrait sans doute d’avoir un bipède qui marche,mais sans doute pas dans un environnement qui change et n’estpas celui de l’apprentissage.

CHAPITRE 1. ÉTAT DE L’ART 18

à-dire de limiter autant que possible l’influence du concepteur sur la forme queprend la « connaissance » de l’agent). La principale intervention du concepteurconsiste à placer l’agent en situation d’interaction dans un environnement... et àl’y laisser, livré à lui-même. »

Chapitre 2

Prototype

2.1 Simulation de la physique avec ODE

La simulation graphique s’appuie sur OpenGL pour le rendu 3D, ainsi que surODE1, un moteur physique simulant des forces comme la pesanteur,les collisionsentre objets, ainsi que les articulations, modélisées par des joints. Nous avons toutd’abord tenté d’utiliser le moteur physique Newton2, puis nous sommes passésà ODE, qui convenait plus à notre utilisation, du point de vuedu contrôle desjoints. Il nous fallait en effet des articulations molles, qui pouvaient se plier ouse déplier sous l’action du poids des objets. Newton ne nous permettait pas celafacilement. Le bipède pouvait donc tomber mais restait raide. De plus au niveauperformances ODE est bien plus rapide. De plus nous souhaitions appliquer unecommande en couple aux joints, plus proche de la réalité. Newton nous permettaituniquement d’indiquer l’angle du joint, et ne pouvait donc pas nous convenir. Lefait qu’il s’agisse d’un Logiciel Libre, sous licences LGPLet BSD (contrairementà Newton qui est simplement gratuit), nous a également permis de modifier lecode de la bibliothèque, enlevant un paramètre aléatoire dans l’ordre de gestiondes joints, qui faisait qu’une simulation n’était pas déterministe, et empêchait ainsiune comparaison pragmatique des différents individus (voir section2.4).

1Open Dynamics Engine : http ://ode.org/2http ://www.newtondynamics.com/

19

CHAPITRE 2. PROTOTYPE 20

2.2 Architecture de l’humanoïde

2.2.1 Articulations

L’humanoïde représenté fig.2.1 possède comme articulations les épaules, lescoudes, les hanches, les genoux et les chevilles. Les articulations des coudes etdes genoux possèdent un seul degré de liberté, tandis que lesépaules, les hancheset les chevilles en possèdent deux, ce qui permet des mouvements plus réalistes aubipède, et lui évite de tomber sur le côté. Chaque articulation possède des anglesminimum et maximum bien définis (voir tab.2.1), ce qui empêche au bipède deréaliser des mouvements irréalistes.

Articulation Angle minimum Angle maximum

Cou 0 0Épaule (axe 1) −π/3 2π/3Épaule (axe 2) 0 π/2Coude 0 4π/5Hanche (axe 1) −π/6 3π/4Hanche (axe 2) 0 π/6Genou −π/2 0Cheville (axe 1) −π/4 π/6Cheville (axe 2) −π/4 π/4

TAB. 2.1 – Angles autorisés pour les articulations

2.2.2 Distribution de la masse corporelle

Comme nous nous trouvons dans la situation d’un pendule inversé, la répar-tition de la masse dans le corps est cruciale. Pour avoir un meilleur équilibre (audétriment de la crédibilité du point de vue de l’anthropomorphisme), nous avonsréduit la masse du tronc pour que son orientation ne déséquilibre pas l’individu.On se retrouve alors avec seulement les jambes et les pieds à équilibrer, le troncne servant qu’à les relier. Voir un exemple de dimensionnement des masses quenous avons utilisées dans le tableau2.2.

CHAPITRE 2. PROTOTYPE 21

Membre Masse

Tête 1Tronc 5Bras 5Avant bras 5Cuisse 10Jambe 10Pied 14

TAB. 2.2 – Exemple de dimensionnement des masses de l’humanoïde

2.2.3 Contrôle du corps

Les articulations sont contrôlées par les sorties de certains neurones du réseau(voir section2.3), qui fournissent la valeur du couple à appliquer à chaque joint.En retour, après calcul des contraintes et des nouvelles positions par le moteurphysique, certains neurones prennent comme valeur d’entrée Ii(t) l’angle d’unearticulation dans un axe donné (en plus des sorties des autres neurones auxquelsils sont connectés), d’autres la vitesse de la tête (dans lestrois axes du repère) ouencore la force de collision entre le pied (un au talon et deuxà la pointe) et le sol.

Entrées Nombre Unité

Accélération de la Tête 3×1 m.s−2

Angles des coudes 1×2 rad.Angles des épaules 2×2 rad.Angles des hanches 2×2 rad.Angles des genoux 1×2 rad.Angles des chevilles 2×2 rad.Force de collision du pied au sol 3×2 Newton

Sorties Nombre Unité

Couples sur les coudes 1×2 N.mCouples sur les épaules 2×2 N.mCouples sur les hanches 2×2 N.mCouples sur les genoux 1×2 N.mCouples sur les chevilles 2×2 N.m

TAB. 2.3 – Liste des entrées et sorties du réseau de neurones sur l’humanoïde.

CHAPITRE 2. PROTOTYPE 22

FIG. 2.1 – Articulations possibles de l’humanoïde.

2.3 Réseau de neurones

Concrètement, le réseau de neurones est constitué de plusieurs tableaux, dontchaque case correspond à un neurone. Par exemple le tableau tau contient lesconstantes de temps des neurones.tau[n]correspond alors à la constante de tempsdu nièmeneurone. Il en va de même pour les biais des neurones avecbiais[n],leursentrées externes (un seul capteur par neurone) avecentree[n]et la valeur cou-rante de leur potentiel (sortie du neurone) avecnetUnit[n].Nous retrouvonségalement la fonction sigmoïde de chaque neuronesigma[n](recalculée à chaquepas).

Les poids des liaisons inter-neuronales sont contenus dansune matrice NxN(avec N le nombre de neurones du réseau), oùpoids[v][n]correspond à la liaisonde v vers n.

CHAPITRE 2. PROTOTYPE 23

Voici les valeurs que peuvent prendre les paramètres du réseau, déterminéesde manière empirique.

– w ji : le poids de la liaison entre un neurone et un autre est compris entre -50et 50 ;

– τi : la constante de temps d’un neurone est comprise entre 0 et 200 ;– yi(t) : la valeur de sortie d’un neurone est comprise entre -10 et 10;– b j , ouθ j : le biais de la fonction sigmoïde est compris entre -30 et 50 ;

Les valeurs de sortie des neurones moteurs sont ensuite multipliées par le couplemaximal applicable à leur articulation, ce qui permet, avecdes bornes similairespour les sorties des neurones, d’avoir une commandes en couple adaptée à chaquearticulation. Les détails de ces couples se trouvent dans letableau2.4. Si les va-

Articulation Axe Couple (N.m)

Épaule 1 15Épaule 2 15Coude 25Hanche 1 50Hanche 2 50Genou 50Cheville 1 25Cheville 2 10

TAB. 2.4 – Couples applicables aux articulations, à multiplierpar la valeur desortie du neurone, entre -10 et 10.

leurs de sortie sont normalisées, les valeurs d’entrée ne lesont pas. Une valeurimportante en entrée n’est pas gênante, étant donné la capacité du neurone sen-seur à l’atténuer, via sa constante de temps.

2.3.1 Algorithme de mise à jour du réseau

L’évolution des neurones se fait selon l’équation donnée ensection1.3.2. Ledéroulement de la mise à jour du réseau est décrit dans l’algorithme1.

2.3.2 Oscillations

Les bouclages internes au réseau lui permettent d’oscillersans modificationdes entrées extérieures.

CHAPITRE 2. PROTOTYPE 24

Algorithme 1 Mise à jour du réseau de neurones. Ici voisin représente successive-ment tous les neurones, y compris celui duquel on calcule la sortie, car il possèdeégalement une liaison vers lui-même.ENTRÉES: netUnitsOld[], tau[],biais[], poids[][],entree[]SORTIES : netUnitsNew[]

pour (neurone= 0;neurone< nbNeurones;neurone++) fairesigma[neurone]← 1/(1+exp(biais[neurone]−netUnitsOld[neurone]))

fin pourpour (neurone= 0;neurone< nbNeurones;neurone++) faire

variation←−netUnitsOld[neurone]pour (voisin= 0;voisin< nbNeurones;voisin++) faire

variation← variation+ poids[voisin][neurone]∗sigma[voisin]fin pourvariation← variation+entree[neurone]netUnitsNew[neurone]← netUnitsOld[neurone]+variation/tau[neurone]

fin pour

On remarque que des valeurs très petites de la constante de tempsτ entraînentdes oscillations en dents de scie, d’un état saturé à l’autre(voir fig. 2.3). Nousconstatons que les oscillations de la figure2.2sont plus fluides et plus complexes,et nous pouvons repérer les liens entre ces oscillations et les mouvements de l’in-dividu (voir fig. 3.2). Cependant les saturations qui peuvent être observées surcette figure ne sont pas nécessairement néfastes. [Bee06] indique que les circuitssaturés peuvent être permutables en différents modes dynamiques, selon les en-trées externes.

2.4 Évolution génétique

Dans l’algorithme d’évolution, un individu est caractérisé par un tuple desparamètres de ses neurones (biais, constantes de temps, poids des liaisons). Nousallons voir dans une première partie que le travail d’optimisation de l’algorithmeévolutionnaire est très complexe car le nombre de configurations possibles est trèsgrand. Après avoir défini les populations nous aborderons différentes fonctionsd’adaptation avant d’étudier les différents processus quientrent en compte dansla génération d’une nouvelle population, tels que les mutations, les croisements,ainsi qu’un système permettant de conserver la diversité dela population.

CHAPITRE 2. PROTOTYPE 25

FIG. 2.2 – Oscillations typiques d’un réseau de neurones dynamique.

2.4.1 Nombre de configurations possibles

En prenant par exemple le cas d’un individu n’ayant pas de bras et possé-dant pour chaque côté deux degrés de liberté à la hanche, un augenou, deux àla cheville, il y a dix axes à gérer, ce qui nécessite dix neurones effecteurs et dixneurones senseurs.

Outre ces vingt neurones, le réseau possède trois neurones senseurs indiquantla vitesse de la tête dans les trois directions, ainsi que trois neurones prenant enentrée la pression de chaque pied avec le sol (un au talon et deux à la pointe).

Le réseau est donc constitué de vingt-neuf neurones3, un nombre assez élevé,et qui rend l’évolution génétique fastidieuse. Connaissant les plages de valeursque peuvent prendre les paramètres du réseau, nous pouvons calculer le nombrede configurations possibles. La valeur de sortieyi(0), au démarrage du réseau, estégale à zéro. En considérant l’utilisation des seules valeurs entières, le nombre deconfigurations possibles pour un réseau de N neurones est donc :

3Nous n’ajoutons pas dans un premier temps de neurones « cachés », n’ayant ni capteur exté-rieur ni sortie commandant une articulation, dans un souci de temps de calcul. Par la suite nous enintégrerons, pour en étudier l’effet sur les performances(voir section3.3).

CHAPITRE 2. PROTOTYPE 26

FIG. 2.3 – Oscillations saturées avec une constante de temps très petite.

C = (δw×N×N)× (δτ×N)× (δb×N)

soit avecN = 29,δw = 100,δτ = 200 etδb = 80 dans notre cas :

C = 3.2.1013

Soit avec une moyenne de trente secondes par génération de 500 individus, en-viron 62 000 ans. Il n’est donc pas envisageable de tester toutes les configurationspossibles. Le recours à une évolution génétique semble êtreun moyen dont il n’estpas aisé de mesurer l’efficacité. C’est d’ailleurs ce que fait Beer qui a essayé diffé-rents algorithmes évolutionnaires, y compris des tirages purement aléatoires, pourconstater que malgré le nombre de combinaisons possibles, il semblerait que lenombre de solutions valables soit tel que l’algorithme évolutionnaire puisse assezfacilement trouver une solution. Cependant dans notre cas nous ignorons la pro-portion de solutions valables. Ceci nous a posé de nombreux problèmes abordéspar la suite.

CHAPITRE 2. PROTOTYPE 27

2.4.2 Populations

Nous utilisons des populations de 500 individus comme [BG92], ce qui per-met d’avoir une assez grande diversité (pour les croisements notamment) avec untemps de génération raisonnable (environ 30 secondes par génération, sur un IntelP4 à 3.20GHz).

Il faut parfois attendre plusieurs milliers de générationsavant d’avoir une mo-dification bénéfique de la configuration du réseau. La figure2.4montre l’évolutiontypique de l’adaptation (décrite ci-dessous) moyenne de lapopulation et de celledu meilleur individu en fonction du nombre de générations.

FIG. 2.4 – Évolution de l’adaptation moyenne et de celle du meilleur individu aucours des générations.

2.4.3 Fonction d’adaptation

Il y a de nombreuses façons de rétribuer les individus qui marchent, mais larétribution idéale devrait quasiment décrire le mouvementattendu (poulaine dé-crite par le pied humain par rapport à la hanche par exemple),ce qui est laborieux.Il faut alors tenter de définir simplement les critères qui permettront de recon-

CHAPITRE 2. PROTOTYPE 28

naître les individus intéressants, sans exiger un type de marche bien défini. Voiciquelques fonctions que nous avons testées :

– durée de vie de l’individu : si l’individu reste longtemps debout, il réaliseun bon score ;

– nombre de pas réalisés : les individus sélectionnés sont ceux qui soulèventleurs pieds et les reposent ;

– vitesse moyenne de chute : on calcule la moyenne de la vitesse de la têtedans l’axe vertical, qu’on cherche à faire tendre vers zéro.Les individus quirestent longtemps sans tomber auront donc un meilleur score;

– distance parcourue par les pieds ;– distance parcourue par le tronc ;– distance parcourue par les pieds pondérée par l’inclinaison du corps : nous

considérons la distance parcourue par les pieds, et y retranchons la distanceabsolue entre les pieds et le tronc (voir fig.2.5) ;

FIG. 2.5 – Différentes composantes de la fonction d’adaptationf = fd - ∆.

– distance du tronc et nombre de pas : la distance effectuée etle nombre depas réalisés sont comparés à la taille de pas idéale. Plus on s’en rapprocheet moins le score lié à la distance parcourue est diminué ;

– alternance de contact des pieds avec le sol (voir fig.2.6) ;Naturellement ce ne sont pas des choix exclusifs, car la plupart d’entre-eux nesont pas incompatibles. Cependant le mélange de plusieurs paramètres introduitune nouvelle complication, l’équilibrage des coefficientsentre ces composantes.Ce problème est discuté dans la section3.1.

CHAPITRE 2. PROTOTYPE 29

FIG. 2.6 – Alternance des contacts des pieds avec le sol.

2.4.4 Génération d’un individu

Un individu créé au hasard a des paramètres compris dans les bornes préciséesen2.3. Les valeurs de sortie des neurones àt = 0 étaient au début tirées au hasard,mais cela n’a pas de sens physique et augmente encore l’espace d’états à scruter.Nous avons donc décidé de fixer ces valeurs à zéro.

2.4.5 Génération de nouvelles populations

Une fois les individus de la population notés via la fonctiond’adaptation, ongarde le meilleur tiers pour la génération suivante. On prend également des copiesdes meilleurs individus de ce tiers qu’on croise entre-eux ou qu’on mute. En com-plétant avec de nouveaux individus dont les paramètres sonttirés au hasard, onobtient notre nouvelle population. Ce processus est schématisé en fig.2.7. Dansun soucis de gain de temps, les individus qui ne sont ni mutés ni croisés ne sontpas simulés à nouveau, la simulation étant déterministe ilsobtiendraient nécessai-rement le même score. On leur donne donc automatiquement leur score précédent.

Mutations

Les mutations permettent d’explorer finement l’espace de recherche autourde solutions existantes. Elles consistent en une variationaléatoire d’un certainnombre de paramètres caractérisant l’individu. Nous avonschoisi de réaliser desmutations relatives, c’est-à-dire qu’elles augmentent oudiminuent la valeur d’unparamètre dans un intervalle prédéfini. Les mutations absolues (remplacement

CHAPITRE 2. PROTOTYPE 30

FIG. 2.7 – Génération d’une nouvelle population

d’une valeur par une autre tirée au hasard) sont plus radicales et ne permettentpas aussi bien l’exploration de l’espace proche de l’individu à muter. Le tauxde mutation est de 5% pour chaque paramètre des neurones (biais, constante detemps, poids des liaisons), avec des amplitudes maximales de variation valant 1/10des plages de valeurs respectives de ces paramètres. Les mutations s’appliquentà une copie du meilleur 1/6 de la population, qui sert à la création de la nouvellegénération.

Croisement

D’après [BG92] (p.103), le croisement dans un réseau de neurones n’est paspertinent, du fait qu’il soit possible d’obtenir des configurations différentes qui secomportent de la même manière. Ainsi des neurones de réseauxdifférents situés àla même place dans le réseau n’auront pas les mêmes paramètres, et ne sont doncpas interchangeables. Le croisement de deux bons individuspeut donc produirede mauvais individus. Cependant Beer déclare sans l’expliquer que les évolutions

CHAPITRE 2. PROTOTYPE 31

réalisées avec croisement sont plus efficaces, et il s’en sert par la suite. On peutsupposer que des individus ayant une configuration assez proche peuvent bénéfi-cier de ce procédé, qui revient donc en quelque sorte à une mutation relative, caril est probable que des individus possédant une configuration ressemblante aientcertains paramètres qui divergent seulement un peu.

Par conséquent, après avoir sélectionné le meilleur sixième de la population,nous en croisons chaque individu avec une partie d’un autre individu de ce mêmesixième (voir fig.2.8). Chaque individu subit donc un croisement potentiel de tousses paramètres avec ceux de l’individu auquel il est croisé (choisi aléatoirement).Le nombre de neurones concernés par le croisement d’un paramètre et l’indice dupremier neurone croisé sont choisis au hasard. Ensuite les neurones suivants sontmutés, dans la quantité nécessaire (voir fig.2.9).

FIG. 2.8 – Croisements à l’échelle de la population

2.4.6 Système de familles

Après plusieurs générations, le système de croisements/mutations étant éli-tiste, nous avons constaté que la plupart des individus étaient très similaires (cephénomène d’uniformisation de la population est la dérive génétique), et cettefaible diversité entraînait un ralentissement de l’évolution, les croisements pou-vant s’annuler et les mutations pouvant entraîner la création d’individus simi-laires. Pour contourner ce phénomène nous utilisons un système de familles deconfigurations : lors de la création d’une nouvelle population, nous trions les deuxmeilleurs tiers de l’ancienne population selon la similarité de leur réseau : des ré-seaux proches seront mis dans une même famille. Cette comparaison est faite de

CHAPITRE 2. PROTOTYPE 32

FIG. 2.9 – Croisements à l’échelle de l’individu. Ici on croise le biais mais enréalité tous les paramètres (constante de temps, poids des liens synaptiques) sontcroisés.

la manière suivante : on compare l’individu à classer au meilleur individu de cha-cune des familles existantes en réalisant la somme des carrés des différences dechaque paramètre (constante de temps, biais, poids des liaisons) de chaque neu-rone du réseau par rapport à celui de la référence de la famille. Si cette sommeest inférieure à un seuil prédéfini, ils peuvent être de la même famille. Cepen-dant chaque famille ne peut avoir qu’un nombre prédéfini d’individus. Cela évited’avoir un seuil trop grand qui mettrait tous les individus dans la même famille.Si aucune famille ne correspond à la somme d’un individu, il peut en créer unenouvelle, tant que le nombre maximum de familles n’est pas atteint. Sinon il neva dans aucune famille. A la fin de ce tri on compte le nombre d’individus n’ayantpas de famille (et ne pouvant donc pas être utilisés pour la prochaine génération).Nous avons besoin d’un tiers de la population originale. Si la quantité d’individusdans les familles est trop faible nous recommençons le tri enaugmentant le seuil,ce qui permettra à des individus moins semblables de se retrouver dans les mêmesfamilles. A l’inverse si tous les individus sont rangés et que le nombre maximumde familles n’a pas été atteint, on diminue le seuil et on recommence le tri.

Ensuite nous prenons les meilleurs de chaque famille (pour une population de500 individus nous avons 30 familles, une valeur qui nous permet d’avoir une cer-taine diversité tout en conservant une certaine quantité des meilleurs (500/30), né-cessaire pour que les croisements et mutations puissent se faire sur un échantillon

CHAPITRE 2. PROTOTYPE 33

de qualité de la population). Cela nous permet d’assurer la diversité des individusde la population, tout en gardant une bonne partie des meilleurs. Naturellement ceprocédé fait que certains bons individus peuvent ne pas êtresélectionnés (dans lecas où de nombreux individus de cette famille ont déjà été choisis), tandis que desindividus moins bons, appartenant à un autre groupe, peuvent accéder à la généra-tion suivante. Nous empêchons un individu dont la famille à laquelle il correspondest complète d’en créer une autre, ce qui aurait pour effet d’obtenir plusieurs fa-milles similaires de bons individus, et par la même occasionsupprimerait l’intérêtde ce procédé. Cette méthode nous permet par exemple, dans lecas de deux indi-

FIG. 2.10 – Algorithme de gestion des familles

CHAPITRE 2. PROTOTYPE 34

vidus notés sur la distance parcourue par leur pieds, de ne pas éliminer d’embléecelui qui fait deux petits pas, tout en gardant bien sûr le meilleur qui en fait ungrand. Ainsi au fil des générations ces deux individus peuvent évoluer en parallèle(et même contribuer l’un à l’évolution de l’autre par le biais des croisements), etcelui qui faisait deux pas peut parvenir à en enchaîner un plus grand nombre, pourfinalement battre l’individu qui se contente du grand pas quile fait tomber.

Ce procédé est relativement similaire à celui de gestion de population dansle cadre des algorithmes évolutionnaires proposé par [PSS03], où une distance,calculée d’après les paramètres des individus, doit être respectée entre eux, pourgarantir une certaine diversité de la population.

2.4.7 Aide des nouveaux individus

Après plusieurs générations, les meilleurs individus se sont améliorés par lebiais des mutations et des croisements. Cela rend difficile l’arrivée de concurrentsdifférents tirés au hasard, qui, s’ils ne sont pas dans les meilleurs de l’une desfamilles, ne seront pas sélectionnés. Ils n’auront alors pas l’occasion de s’amélio-rer, et d’arriver au score des meilleurs. Pour éluder ce phénomène, nous gardonssystématiquement la meilleure partie des individus qui sont âgés de moins de 50générations (un choix numérique qui laisse une certaine chance aux jeunes indi-vidus, tout en permettant un renouvellement régulier des individus mal classés),pour leur permettre d’évoluer un peu avant d’être éventuellement rejetés.

Chapitre 3

Résultats

L’environnement mis en place est donc relativement configurable (nombred’articulations, tailles et masses des membres, nombre de neurones dans le ré-seau, etc.). Cela nous a permis d’effectuer des essais en modulant ces paramètres,et en laissant à l’algorithme génétique le soin de modifier les paramètres internesau réseau de neurones. Nous aurions également pu le laisser déterminer le nombrede neurones à utiliser mais cela aurait agrandi considérablement l’espace de re-cherche, ce que ne permettait pas notre contrainte de temps.Nous avons doncle plus souvent utilisé le nombre minimal de neurones, c’est-à-dire que tous lesneurones avaient soit une entrée physique (capteur d’angled’une articulation, devitesse de la tête ou de collision d’un pied avec le sol) soit une sortie physique(commande en couple d’une articulation).

Les masses des membres auraient également pu être déterminées par algo-rithme génétique mais nous n’avons pas eu assez de temps pourréaliser des testsexhaustifs. Nous avons cependant pu étudier différentes fonctions d’adaptation,ainsi que l’évolution des comportements en fonction des modifications apportéesà l’individu et à son environnement.

3.1 Fonction d’adaptation

3.1.1 Résultats des différentes fonctions d’adaptation

Nous avons fait face à de nombreux problèmes concernant la fonction d’adap-tation. En effet le plus souvent l’évolution génétique dirige le réseau vers un maxi-mum local qui correspond au critère de l’adaptation, sans correspondre réellement

35

CHAPITRE 3. RÉSULTATS 36

à nos attentes. Ceci est dû à différents éléments que nous tentons d’analyser ici.Nous reprenons les fonctions d’adaptation citées en section 2.4.3en indiquant lesprincipaux problèmes auxquels elles nous confrontent.

– durée de vie de l’individu : cette fonction d’adaptation nous donne des in-dividus qui restent droits et ne bougent pas. Or nous voulonsdes individusqui marchent, ou au moins fassent des pas ;

– nombre de pas réalisés : les individus sélectionnés sont ceux qui marchentsur place. Pour éviter ce phénomène de marche statique, il faut définir cequ’est un pas, en fonction de la distance entre les pieds ;

– vitesse moyenne de chute :le problème est que les meilleurssont ceux quiarrivent à sauter, même si ils tombent immédiatement après ;

– distance parcourue par les pieds : on constate que les individus tentent defaire le plus grand pas possible, et n’essaient pas forcément d’avancer lereste de leur corps ;

– distance parcourue par le tronc : les premiers individus sélectionnés sontceux qui sautent en avant, et vont donc plus loin que ceux qui tombentdirectement. Cependant au bout de nombreuses générations apparaissentdes individus qui font un pas ou deux, et battent ceux qui sautaient. Onconsidère donc que cette simple fonction d’adaptation est appropriée pource que nous recherchons. Cependant dans le cas de nos expérimentationsnous n’avons pas toujours le temps de laisser un nombre très important degénérations se réaliser. Dans ce cas et avec cette fonction d’adaptation lesindividus qui tombent en avant sont mieux notés que ceux qui font un paset tombent en arrière ;

– distance parcourue par les pieds pondérée par l’inclinaison du corps (voirfig. 2.5) : cette fonction avantage les individus qui restent sur place parrapport à ceux qui avancent mais ne restent pas droits ;

– distance du tronc et nombre de pas : il arrive que l’humanoïde réalise plu-sieurs petits pas sur place puis tombe en avant, ce qui lui donne des pointspour les deux critères, mais ne correspond pas à nos attentes;

– alternance de contact des pieds avec le sol (voir fig.2.6) un individu dontles pieds restent au sol obtient un score de plus de 50%, ce quipeut entraî-ner une mauvaise appréciation de ce paramètre, notamment lors de l’utilisa-tion de plusieurs composantes pour la définition de la fonction d’adaptation,comme nous allons le voir dans la prochaine partie.

CHAPITRE 3. RÉSULTATS 37

3.1.2 Dimensionnement des composantes

Les différentes composantes de la fonction d’adaptation doivent être finementdosées, pour éviter que l’une d’entre elles prenne le dessussur les autres. Nousprenons ici la dernière fonction d’adaptation utilisée, qui prend en compte à lafois le fait que les pieds suivent le schéma décrit dans la figure 2.6, la distanceparcourue par les pieds et la hauteur maximale des pieds à chaque pas. Après avoirnormalisé ces différentes composantes dans l’intervalle [0 ;1], nous leur attribuonsdes coefficients selon l’importance que nous leur donnons. Voici les équations desdifférentes composantes :

f ootStepsFitness=N

∑t=1

(pg(t)+ pd(t))2N

(3.1)

Avec pg(t) = 1 (resp.pd(t) = 1) si le pied gauche (resp. droit) est posé oulevé en suivant les données indiquées en fig.2.6et N le nombre de points de com-paraison. Le pied est considéré posé si au moins l’un de ses trois capteurs indiqueune collision avec le sol.

torsoFitness= min(torsoDistance

nbSteps×stepSize,1) (3.2)

Nous devons borner la valeur de cette deuxième composante à 1, car un indi-vidu réalisant un trop grand pas ne doit pas être privilégié.

f ootHeightFitness=nbSteps

∑s=1

min(maxFootHeight,1)

nbSteps(3.3)

Ici maxFootHeightcorrespond à la valeur de la hauteur maximale atteinte parun pied durant un pas, divisée par la hauteur de pas idéale.

f itness= α× f ootStepsFitness+β× torsoFitness+ γ× f ootHeightFitness(3.4)

Ici nous souhaitons privilégier le respect de l’alternancedes pieds, puis la hau-teur des pas, et enfin la distance parcourue. Nous affectons donc des coefficientsdécroissants dans cet ordre. En observant les meilleurs individus, nous regardonsles proportions dans lesquelles ces trois composantes interviennent, et si l’ordre

CHAPITRE 3. RÉSULTATS 38

désiré n’est pas respecté, nous modifions les coefficients correspondants. La fi-gure3.1nous montre l’évolution conjointe du score global et de ses composantes,pour le meilleur individu. Les valeurs sont exprimées en pourcentage de la valeurmaximale pour chaque composante. Les coefficients appliqués ici sontα = 50,β = 5, etγ = 1, valeurs déduites de manière empirique après des dizainesd’essais.Ces proportions nous permettent de favoriser largement le respect de l’alternancedes pas, tout en gratifiant les individus qui lèvent les piedset, dans une moindremesure, ceux qui avancent. Ceci se traduit sur le graphique par une proximité descourbes de l’alternance des pas et du score global, peu influencé par les autresparamètres. On remarque cependant des croisements entre les courbes, ceci s’ex-pliquant par le fait que des individus de familles différentes obtiennent des scoressimilaires avec des points forts différents. Le dimensionnement des composantes

FIG. 3.1 – Évolution du score et de ses composantes.

d’une fonction d’adaptation pourrait aussi être sujet à uneévolution, qui étudieraitl’impact des modifications de leurs coefficients sur le scoretotal, mais il faudraitalors un autre moyen de vérifier que l’attitude vers laquelletendent les individusest celle souhaitée. Finalement cette évolution devrait sefaire sous la directiond’une fonction d’adaptation secondaire, et le problème n’en serait probablementpas simplifié.

CHAPITRE 3. RÉSULTATS 39

3.2 Exemple de comportement

La figure3.2décrit l’évolution des sorties des neurones en fonction de la pos-ture de l’humanoïde. On observe clairement la corrélation entre les oscillationset les mouvements. Nous ne nous intéressons dans cet exemplequ’aux mouve-ments des jambes, c’est pourquoi les bras sont absents, ce qui diminue fortementle nombre de paramètres à définir, et diminue le temps de l’évolution.

FIG. 3.2 – Positions de l’humanoïde et états du réseau correspondants.

CHAPITRE 3. RÉSULTATS 40

3.3 Importance des neurones internes

En ajoutant des neurones internes, qui permettent de matérialiser des gran-deurs « déduites » et non mesurées physiquement, nous constatons que l’évolutiondes populations vers des individus compétents n’est pas nécessairement plus ra-pide. Même s’il y aa priori plus de solutions du fait des inversions de rôles entreles neurones internes, l’espace de recherche est aussi plusgrand. Il faut aussi noterque l’algorithme évolutionnaire se base sur le hasard au niveau de l’explorationde l’espace, il nous faudrait donc plus d’expériences pour pouvoir en déduire defaçon certaine une conséquence à l’ajout de neurones dans lavitesse d’adaptation.

3.4 Adaptabilité

3.4.1 Suppression d’un capteur

Nous avons tenté d’évaluer l’adaptabilité du réseau, en observant le compor-tement d’un réseau auquel on enlève un capteur, par rapport àson comportementnormal. Nous voyons sur la figure3.3 que le réseau contenant dix neurones in-ternes est beaucoup moins sensible au retrait du capteur du genou droit que leréseau qui en contient vingt. Ceci s’explique par le fait quela configuration dupremier réseau le rend moins dépendant de ce capteur (poids plus faible entrele neurone d’entrée et les autres). Par contre la tendance s’inverse concernant lecapteur de la collision du pied gauche. En répétant l’opération avec des réseauxau même nombre de neurones internes on obtient des résultatsdifférents, ce quimontre que la sensibilité du réseau à la perte d’un capteur est dépendante, non pasdu nombre de neurones internes, mais de la configuration de ceréseau.

Nous avons également réalisé les mêmes expériences avec un humanoïde auxarticulations limitées (pas de coudes, un seul degré de liberté aux hanches et auxchevilles) pour réduire le nombre de neurones, et voir si l’ajout de neurones in-ternes apporte une modification plus significative dans ce cas, mais au vu descourbes, similaires à celles de la figure3.3, cela ne semble pas être le cas.

3.4.2 Mouvements du sol

De même qu ’en3.4.1, lorsqu’on décide de mettre le sol en pente, l’individucompétent sur un sol plat ne s’adapte pas, et les différencespar rapport aux adap-

CHAPITRE 3. RÉSULTATS 41

30

40

50

60

70

80

0 5 10 15 20

Etat normalRetrait capteur acceleration de la tete en X

Retrait capteur angle du genou droitRetrait capteur collision du pied gauche (capteur 3)

FIG. 3.3 – Évolution de l’adaptation des réseaux en fonction du nombre de neu-rones internes (0, 10 ou 20) et des retraits de capteurs.

tations originales ne sont pas liées au nombre de neurones internes, comme nousle confirme la figure3.4.

3.5 Comparaison par rapport à l’hexapode de Beer

Il semble intéressant d’étudier les similarités et différences entre notre ap-proche et celle de [BG92], qui réalise un hexapode dont la marche est comman-dée par un réseau de neurones dynamiques également. Le tableau3.1 résume lesprincipaux points de divergence des deux études.

3.5.1 Nombre de pattes et équilibre

Notre humanoïde possède deux jambes, ce qui lui permet très difficilement dese tenir en équilibre, comme nous l’avons vu en section2.2.2. L’hexapode, quantà lui, en possède six, ce qui en facilite l’équilibre. Il n’a qu’à poser trois de ses

CHAPITRE 3. RÉSULTATS 42

20

30

40

50

60

70

80

0 5 10 15 20

Etat normalRotation sol +Pi/8Rotation sol -Pi/8

FIG. 3.4 – Évolution de l’adaptation des réseaux en fonction du nombre de neu-rones internes (0, 10 ou 20) et de la rotation du sol d’avant enarrière.

pattes formant un triangle autour de son centre de gravité pour rester en équilibre.Il possède donc un équilibre statique, contrairement au bipède dont l’équilibre estdynamique, c’est-à-dire qu’il doit constamment se rééquilibrer.

3.5.2 Nombre de connexions

Les deux individus possèdent un nombre de neurones relativement similaire(30 pour l’hexapode, entre 30 et 45 pour le bipède), cependant la complexité del’évolution génétique est plutôt liée au nombre de connexions entre ces neurones.Beer indique que si tous les neurones de l’hexapode étaient inter-connectés, il yaurait 990 paramètres à définir, ce qui n’était pas faisable en pratique. Il a doncsupposé que les modules de cinq neurones de chaque patte pouvaient être confi-gurés de la même manière. En mettant alors seulement quelques connexions entreces modules, il a obtenu un ensemble de seulement 40 paramètres à définir. Celaréduit considérablement l’espace de recherche de l’algorithme évolutionnaire, etlui permet de converger rapidement vers une solution. Dans notre cas l’utilisationde la symétrie aurait probablement été envisageable pour une partie des neurones,

CHAPITRE 3. RÉSULTATS 43

mais le gain en calcul aurait été moins important, car Beer divise le temps derecherche concernant les modules (sans les connexions entre modules) par six.

3.5.3 Neurones internes

Dans l’hexapode, chaque module de cinq neurones contient trois neuronesmoteurs et deux neurones dont le rôle n’est pas spécifié, et qui correspondentdonc aux neurones internes évoqués précédemment. Les cinq neurones possèdentégalement une entrée (pondérée) indiquant l’angle de la patte. Dans notre cas cetteméthode d’application des entrées ne serait pas réaliste car nous n’avons pas divisénotre architecture en modules. Il nous faudrait donc reliertous les capteurs à tousles neurones, ce qui ne semble pasa priori réaliste, en termes de complexité.

Bipède Hexapode

Nombre de pattes 2 6Équilibre Dynamique StatiqueNombre de neurones30-45 30Architecture du RdN Tous les neurones Modules par pattes,

sont reliés reliés entre euxÉvolution Sur tous les neuronesSur un module, les

autres étant similaires

TAB. 3.1 – Tableau récapitulatif des différences entre les deuxexpérimentations.

3.5.4 Évaluation de l’adaptabilité

Beer évalue l’adaptabilité du réseau en enlevant un capteurà une patte et enobservant que l’individu compense ce manque par ses neurones internes. La diffé-rence par rapport aux expérimentations que nous avons effectuées dans le mêmesens (section3.4.1), est qu’il supprime le capteur durant la phase d’évolution.Chaque individu est testé une fois avec le capteur et une foissans, et son scoreest la moyenne des deux scores obtenus. Ainsi il obtient des individus qui saventmarcher avec tous leurs capteurs mais aussi lorsqu’on en enlève un. Ceci expliqueles difficultés que nous avons eues avec les individus que nous avions, en leurenlevant des capteurs ou en modifiant la pente du sol. Il nous paraît alors intéres-sant de reprendre ces expériences en prenant en compte ces perturbations durantl’apprentissage.

CHAPITRE 3. RÉSULTATS 44

Nous allons donc faire évoluer des individus sur un sol dont la pente variealéatoirement au cours du temps, en essayant non pas de les faire marcher, maissimplement de tenir en équilibre. Ceci nous permettra, si l’évolution se révèleconcluante, d’obtenir des individus qui s’adaptent à la pente du sol, par le biais deneurones internes jouant le rôle de valeurs internes. Ces expériences sont en courset nous pourrons probablement en présenter les résultats lors de la soutenance dustage.

Conclusion et perspectives

Nous avons tenté au cours de cette étude d’évaluer les possibilités qu’offre unréseau de neurones dynamique dans le cadre de la marche d’un humanoïde, sanstoutefois parvenir à des résultats réellement concluants concernant cette applica-tion, bien que les mouvements réalisés correspondent approximativement à unemarche. Nous sommes donc loin de ce qu’obtiennent [YLVdP07] et [KB96], maisil faut garder à l’esprit que le but de notre étude n’était pasd’obtenir un modèlede marche pour la réalité virtuelle, mais d’évaluer les possibilités de l’approchedynamique pour animer des agents autonomes.

Par contre du point de vue de la cognition dynamique artificielle nous avonstraité un cas beaucoup plus complexe que ceux habituellement évalués et nousobtenons tout de même certains résultats (adaptation à 70% de l’adaptation maxi-male avec un nombre de générations relativement faible, 3 500 au lieu de 10 000pour [BG92]), nous avons également mis en place un environnement très modu-lable à base de moteur physique, et notre travail sur les algorithmes évolution-naires (notamment le système de familles) et les fonctions d’adaptation nous per-met à présent de partir d’une base solide pour réaliser de futures expérimentations.

Les problèmes rencontrés nous ont permis de mettre l’accentsur des pro-blématiques que nous avions sous-estimées, et auxquelles il serait intéressant deconsacrer des travaux plus poussés. Parmi celles-ci nous retiendrons particulière-ment la question de la gestion des populations de l’algorithme évolutionnaire, ladéfinition de la fonction d’adaptation ainsi que la définition qualitative et quanti-tative des entrées et sorties du réseau de neurones, qui constituent l’interface entrecelui-ci et son environnement.

On note qu’au niveau de l’algorithme évolutionnaire lui-même, il y aurait ma-tière à tenter différentes stratégies. On pourrait par exemple définir une fonctiond’adaptation qui sélectionne les individus réalisant un pas, puis repartir de ces in-dividus en utilisant une fonction d’adaptation par laquelle les individus sont censésfaire deux pas. Cette approche incrémentale du but à atteindre pourrait peut-êtreaccélérer l’évolution, en supposant qu’un individu réalisant un pas est plus enclin

45

CHAPITRE 3. RÉSULTATS 46

qu’un autre à en réaliser deux.

Sur le même principe il serait peut-être utile de faire évoluer des individus quitiennent en équilibre, puis partir de ceux-ci pour les fairemarcher. Cette approcheressemble à ce qui se passe chez les bipèdes réels, bien que l’apprentissage soitnon plus une évolution génétique, mais plutôt un apprentissage de type hebbien,méthode envisageable à la suite d’un algorithme évolutionnaire par exemple.

L’étude à proprement parler des réseaux de neurones dynamiques, une foisles éléments précédents définis, nous paraît très complexe avec un réseau de cettetaille (de 899 paramètres avec un réseau de 29 neurones à 2703avec un réseaude 51 neurones), qui nécessiterait des simplifications. C’est d’ailleurs ce que fait[BG92], qui met en place de nombreuses symétries dans son réseau. Dans notrecas ces symétries étant plus difficiles à réaliser, il faudrait trouver un autre moyende simplification, peut-être en ne connectant pas toujours tous les neurones entre-eux, et en déterminant ces connexions par évolution génétique.

La plasticité telle qu’elle est introduite par [DP03] pour créer un système ultrastable pourrait également être tentée, et nécessiterait d’introduire des règles demodification des poids des connexions, les paramètres de cesrègles étant eux-mêmes déterminés par l’algorithme évolutionnaire, et l’ultra stabilité pourrait parexemple être orientée sur l’équilibre.

Bibliographie

[AR88] Anderson, J.A. and Rosenfeld, E.Neurocomputing : Foundationsof research. 1988.

[BD02] Beslon, G. and Daucé, E.Modularité et apprentissage dans lesréseaux de neurones récurrents. 2002.

[Bee96] Beer, R.D. Toward the evolution of dynamical neuralnetworks forminimally cognitive behavior. 1996.

[Bee06] Beer, R.D. Parameter space structure of continuous-time recurrentneural networks.Neural Computation, (18) :3009–3051, 2006.

[BG92] Beer, R.D. and Gallagher, J.C. Evolving dynamical neural networksfor adaptive behavior.Adaptive Behavior, 1(1) :91–122, 1992.

[BS04] Bourgine, P. and Stewart, J. Autopoiesis and cognition. ArtificialLife, 10 :327–345, 2004.

[BSF03] Beurier, Grégory, Simonin, Olivier, and Ferber, Jacques. Un mo-dèle de système multi-agent pour l’émergence multi-niveau. Tech-nique et Science Informatiques, 22(4) :235–247, 2003.

[DM02] Daucé, E. and M., Quoy.Mémoire dynamique et planification.2002.

[DP03] Di Paolo, E. Organismically-Inspired Robotics : HomeostaticAdaptation and Natural Teleology Beyond the Closed SensorimotorLoop. 2003.

[GD02] Guillot, A. and Daucé, E., editors.Traité de Sciences Cognitives :Approche dynamique de la cognition artificielle. Hermès, Paris,France, 2002.

[Gui99] Guillot, A. Pour une approche dynamique des animats. Hermès,Paris, France, 1999.

[HDPWQ05] Harvey, I., Di Paolo, E., Wood, R., and Quinn, M.EvolutionaryRobotics : A New Scientific Tool for Studying Cognition. 2005.

47

BIBLIOGRAPHIE 48

[KB96] Ko, H. and Badler, N. Animating human locomotion in real-timeusing inverse dynamics, balance and comfort control.IEEE Com-puter Graphics and Applications, 2(16) :50–59, 1996.

[McG90] McGeer, T. Pasive dynamic walking. 1990.

[McM04] McMullin, B. Thirty years of computational autopoiesis : A review.Artificial Life, 10 :277–295, 2004.

[Mei96] Meijer, P. B. L. Neural network applications in device and subcir-cuit modelling for circuit simulation. 1996.

[PSS03] Prins, C., Sevaux, M., and Sörensen, K. A genetic algorithm withpopulation management. (ga|pm) for the carp. 2003.

[RDP06] Rohde, M. and Di Paolo, E. "value signals" and adaptation : Anexploration in evolutionary robotics. 2006.

[SA02] Sporns, O. and Alexander, W.H.Neuromodulation and plasticity inan autonomous robot. 2002.

[Set98] Seth, A.K. Evolving Action Selection and selective attention wi-thout actions, attention or selection. 1998.

[TN98] Tani, J. and Nolfi, S.Learning to perceive the world as articulated :an approach for hierarchical learning in sensori-motor systems.1998.

[VTR93] Varela, F.J., Thompson, E., and Rosch, E.L’inscription corporellede l’esprit. Seuil, 1993. Traduit de l’Anglais par Véronique Have-lange.

[YLVdP07] Yin, K., Loken, K., and Van de Panne, M. Simple biped locomotioncontrol. 2007.