Manuscrit These
Manuscrit These
Manuscrit These
THÈSE
Apprentissage de nouveaux
comportements: vers le
développement épigénétique d’un
robot autonome.
Matthieu Lagarde
E-mail : matthieu.lagarde@ensea.fr
Je remercie vivement Peter Dominey d’avoir accepté de présider mon jury et, avec Agnès Guillot,
d’avoir accepté de rapporter ce travail malgrè les faiblesses dont il souffre. Je souhaite égale-
ment remercier les autres membres du jury : Aude Billard, Nicolas Bredèche et Jean-Christophe
Baillie, pour le temps consacré à évaluer mes travaux.
J’aimerai également remercier tous les membres de l’équipe de Neurocybernétique qui ont chacun
contribué à l’aboutissement de ce travail. J’ai trouvé au sein de cette équipe un environnement
de travail stimulant qui m’a permis de découvrir le domaine des neurosciences computationnelles
et de librement mener des expériences sur de nombreux matériels robotiques.
Je tiens à remercier Inbar Fijalkow de m’avoir accueilli en tant que directrice du laboratoire au
laboratoire ETIS, dans lequel j’ai trouvé une ambiance particulièrement favorable.
Je souhaite également exprimer mes sincères remerciements à mes amis et collègues avec qui
se fut un plaisir de travailler et qui m’ont supporté : Mickael M, Nicolas C, Christophe G, So-
fiane B, Cyril H, Julien H, Frederic D.M, Benoit M, Adrian, Arnaud B, Philippe P, Mathias
Q, Jean-Paul B, LaurenceH, Patrick H, Laurent P, Michel J, . . .ainsi que tous ceux que j’ai oublié.
ii
Résumé
La problématique de l’apprentissage de comportements sur un robot autonome soulève de nom-
breuses questions liées au contrôle moteur, à l’encodage du comportement, aux stratégies com-
portementales et à la sélection de l’action. Utiliser une approche développementale présente un
intérêt tout particulier dans le cadre de la robotique autonome. Le comportement du robot repose
sur des mécanismes de bas niveau dont les interactions permettent de faire émerger des compor-
tements plus complexes. Le robot ne possède pas d’informations a priori sur ses caractéristiques
physiques ou sur l’environnement, il doit apprendre sa propre dynamique sensori-motrice. J’ai
débuté ma thèse par l’étude d’un modèle d’imitation bas niveau. Du point de vue du dévelop-
pement, l’imitation est présente dès la naissance et accompagne, sous de multiples formes, le
développement du jeune enfant. Elle présente une fonction d’apprentissage et se révèle alors être
un atout en terme de temps d’acquisition de comportements, ainsi qu’une fonction de communi-
cation participant à l’amorce et au maintien d’interactions non verbales et naturelles. De plus,
même s’il n’y a pas de réelle intention d’imiter, l’observation d’un autre agent permet d’extraire
suffisamment d’informations pour être capable de reproduire la tâche.
Mon travail a donc dans un premier temps consisté à appliquer et tester un modèle dévelop-
pemental qui permet l’émergence de comportements d’imitation de bas niveau sur un robot
autonome. Ce modèle est construit comme un homéostat qui tend à équilibrer par l’action ses
informations perceptives frustres (détection du mouvement, détection de couleur, informations
sur les angles des articulations d’un bras de robot). Ainsi, lorsqu’un humain bouge sa main dans
le champ visuel du robot, l’ambiguı̈té de la perception de ce dernier lui fait confondre la main
de l’humain avec l’extrémité de son bras. De l’erreur qui en résulte émerge un comportement
d’imitation immédiate des gestes de l’humain par action de l’homéostat. Bien sûr, un tel modèle
implique que le robot soit capable d’associer au préalable les positions visuelles de son effecteur
avec les informations proprioceptives de ses moteurs. Grâce au comportement d’imitation, le
robot réalise des mouvements qu’il peut ensuite apprendre pour construire des comportements
plus complexes. Comment alors passer d’un simple mouvement à un geste plus complexe pouvant
impliquer un objet ou un lieu ?
Je propose une architecture qui permet à un robot d’apprendre un comportement sous forme de
séquences temporelles complexes (avec répétition d’éléments) de mouvements. Deux modèles dif-
férents permettant l’apprentissage de séquences ont été développés et testés. Le premier apprend
en ligne le timing de séquences temporelles simples. Ce modèle ne permettant pas d’apprendre
des séquences complexes, le second modèle testé repose sur les propriétés d’un réservoir de dyna-
miques, il apprend en ligne des séquences complexes. A l’issue de ces travaux, une architecture
apprenant le timing d’une séquence complexe a été proposée. Les tests en simulation et sur robot
ont montré la nécessité d’ajouter un mécanisme de resynchronisation permettant de retrouver les
bons états cachés pour permettre d’amorcer une séquence complexe par un état intermédiaire.
Dans un troisième temps, mes travaux ont consisté à étudier comment deux stratégies sensori-
motrices peuvent cohabiter dans le cadre d’une tâche de navigation. La première stratégie encode
le comportement à partir d’informations spatiales alors que la seconde utilise des informations
temporelles. Les deux architectures ont été testées indépendamment sur une même tâche. Ces
deux stratégies ont ensuite été fusionnées et exécutées en parallèle. La fusion des réponses déli-
vrées par les deux stratégies a été réalisée avec l’utilisation de champs de neurones dynamiques.
Un mécanisme de “chunking” représentant l’état instantané du robot (le lieu courant avec l’action
courante) permet de resynchroniser les dynamiques des séquences temporelles.
En parallèle, un certain nombre de problème de programmation et de conception des réseaux
iii
de neurones sont apparus. En effet, nos réseaux peuvent compter plusieurs centaines de milliers
de neurones. Il devient alors difficile de les exécuter sur une seule unité de calcul. Comment
concevoir des architectures neuronales avec des contraintes de répartition de calcul, de commu-
nications réseau et de temps réel ? Une autre partie de mon travail a consisté à apporter des
outils permettant la modélisation, la communication et l’exécution en temps réel d’architecture
distribuées. Pour finir, dans le cadre du projet européen Feelix Growing, j’ai également participé
à l’intégration de mes travaux avec ceux du laboratoire LASA de l’EPFL pour l’apprentissage
de comportements complexes mêlant la navigation, le geste et l’objet.
En conclusion, cette thèse m’a permis de développer à la fois de nouveaux modèles pour l’ap-
prentissage de comportements - dans le temps et dans l’espace, de nouveaux outils pour maı̂triser
des réseaux de neurones de très grande taille et de discuter à travers les limitations du système
actuel, les éléments importants pour un système de sélection de l’action.
iv
Abstract
The problem of learning behaviors on an autonomous robot raises many issues related to motor
control, behavior encoding, behavioral strategies and action selection. Using a developmental
approach is of particular interest in the context of autonomous robotics. The behavior of the
robot is based on low level mechanisms that together can make more complex behaviors emerge.
Moreover, the robot has no a priori information about its own physical characteristics or on its
environment, it must learn its own sensori-motor dynamic. For instance, I started my thesis by
studying a model of low level imitation. From a developmental point of view, imitation is present
from birth and accompanies the development of young children under multiple forms. It has a
learning function and shows up as an asset in term of performance in time of behaviors acquisi-
tion, as well as a communication function playing a role in the bootstrap and the maintenance
of nonverbal and natural interactions. Moreover, even if there is not a real intention to imitate,
the observation of another agent allows to extract enough information to be able to reproduce
the task.
Initially, my work consisted in applying and testing a developmental model allowing emergence
of low level imitation behaviors on an autonomous robot. This model is built like a homeostatic
system which tends to balance its rough perceptive information (movement detection, color
detection, angular information from motors of a robotic arm) by its action. Thus, when a human
moves his hand in the robot visual field, the perception ambiguity of the robot makes it consider
the human hand as its own arm extremity. From the resulting error a immediate imitation
behavior emerges. Of course, such a model implies that the robot is initially able to associate
the visual positions of its effector with the proprioceptive informations of its motors. Thanks to
imitation behavior, the robot makes movements from which it can learn to build more complex
behaviors. Then, how to go from a simple movement to a more complex gesture which can imply
an object or a place ?
I then proposed an architecture allowing a robot to learn a behavior as a complex temporal
sequences (with repetition of elements) of movements. Two models allowing to learn sequences
have been developed and tested. The first, based on a model of the hippocampus, learns on-line
the timing of simple temporal sequences. The second, based on the properties of a dynamic
reservoir, learns on-line complex temporal sequences. Based on these works, an architecture
learning the timing of a complex temporal sequence has been proposed. The tests in simulation
and on actual robot have shown the necessity to add a resynchronization mechanism that allows
to find the correct hidden states for starting a complex sequence by an intermediate state.
In a third time, my work consisted in studying how two sensori-motor strategies can cohabit in
the context of a navigation task. The first strategy codes the behavior from spatial informations,
then the second uses temporal informations. Both architectures have been independently tested
on the same task. Then, both strategies were merged and executed in parallel. Responses of
both strategies were merged with the use of dynamical neural filed. A mechanism of “chunking”
which represents the instantaneous state of the robot (current place with current action) allows
to resynchronize the temporal sequences dynamics.
In parallel, a number of programming and design problems about neural networks have appeared.
In fact, our networks can be made of many hundreds of thousands of neurons. It becomes hard
to execute them on one computational unit. How to design neural architectures with parallel
computation, network communication and real time constraints ? Another part of my work
consisted in providing tools allowing the design, communication and real time execution of
distributed architectures. Finally, in the context of the Feelix Growing European project, I
v
contribute to integrate my work with those of the LASA laboratory of EPFL for the learning of
complex behaviors mixing navigation, gesture and object.
To conclude, this thesis allowed me to develop new models for learning behaviors - in time and
in space, new tools to handle very large neural networks, and to discuss, beyond limitations of
the current system, the important elements for an action selection system.
vi
Table des matières
1 Introduction 1
3 Apprentissage de séquences 28
3.1 Modèle neuro mimétique pour la prédiction du timing . . . . . . . . . . . . . . . 29
3.1.1 Les mémoires du cerveau . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.2 Le cervelet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.3 La boucle hippocampique . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.4 Model computationnel de l’hippocampe . . . . . . . . . . . . . . . . . . . 32
3.1.4.1 Modèle d’apprentissage de séquences temporelles simples . . . . 33
3.1.4.2 Simulations avec l’apprentissage de séquences temporelles simples 34
3.2 Modèles à réservoir de dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2.1 Les systèmes dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.2 Le chaos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.3 Echo States Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2.4 Tests avec les Echo States Networks . . . . . . . . . . . . . . . . . . . . . 41
3.3 Modèle d’apprentissage de séquences temporelles complexes . . . . . . . . . . . . 48
3.3.1 Le contexte interne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3.2 Apprentissage d’états internes . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.2.1 Mécanisme de compétition . . . . . . . . . . . . . . . . . . . . . 52
vii
Table des matières
viii
Table des matières
6.3 Cas pratique : un robot mobile qui classe et range des objets selon leur taille . . 117
6.3.1 La navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
6.3.2 L’objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.3.3 Le geste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.3.4 Test de la navigation en fonction de l’objet . . . . . . . . . . . . . . . . . 120
6.3.5 Test sur un robot mobile rangeant des objets . . . . . . . . . . . . . . . . 123
6.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
9 Annexes 145
9.1 Annexe A : Les robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
9.1.1 Sony Aibo/URBI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
9.1.2 Le Robulab10 de Robosoft . . . . . . . . . . . . . . . . . . . . . . . . . . 148
9.2 Annexe B : Un cou artificiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
9.2.1 Test préliminaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
9.2.2 Cou artificiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
ix
Chapitre 1
Introduction
1
Chapitre 1: Introduction
Cette thèse a pour objectif d’illustrer comment un robot autonome peut apprendre des com-
portements complexes. Mes travaux cherchent à montrer comment à partir des interactions de
mécanismes de bas niveau, des comportements plus complexes peuvent émerger. Ainsi je mon-
trerai comment une architecture neuronale inspirée des structures du cerveau des mammifères,
peut permettre à un robot d’apprendre à partir de sa propre dynamique une tâche combinant
la navigation, l’objet et le geste. Nous verrons comment l’ajout de dynamiques internes peut
permettre à un robot Aibo d’apprendre le timing de séquences complexes de gestes. Nous étu-
dierons à travers une tâche de navigation sur un robot mobile équipé d’une caméra et d’une
boussole électronique, comment cette première boucle sensori-motrice peut cohabiter avec une
seconde apprenant des associations lieux-actions. J’introduirai un mécanisme de chunks pour re-
synchroniser les dynamiques temporelles à partir des informations spatiales. Cette thèse soulève
de nombreuses questions liées, d’une part au contrôle moteur, à l’encodage des comportements,
aux stratégies comportementales et à la sélection de l’action et d’autre part, aux outils permet-
tant la conception, la communication et l’exécution en temps réel d’architectures parallèles.
Au cours de la seconde moitié du XXe siècle, l’informatique à connu un essor fulgurant. La puis-
sance de calcul et la quantité de mémoire disponible ne cessent de croı̂tre permettant d’exécuter
des algorithmes de plus en plus complexes. De plus, les avancées en miniaturisation des circuits
électroniques permettent de facilement embarquer de plus en plus de puissance de calcul. Néan-
moins, cette miniaturisation se heurte à des limites physiques, c’est pourquoi ces dix dernières
années le principal facteur de la croissance de la puissance de calcul est le nombre d’unités de
calcul (processeur multi coeurs, réseau d’ordinateurs). Néanmoins, cette multiplication des uni-
tés de calcul impose de nouvelles méthodes de programmation pour réaliser du calcul parallèle
tout en gardant l’intégrité des données traitées. En effet, la programmation parallèle soulève des
problèmes liés à la concurence des accés aux données, mais également à la communication des
différentes unités de calcul pour réaliser un traitement cohérent.
L’augmentation de la puissance de calcul permet l’exécution d’applications de plus en plus com-
plexes. L’intelligence artificielle bénéficie donc de cette puissance pour réaliser plus rapidement
des traitements sur de nombreux paramètres. Néanmoins, selon l’approche adoptée, les besoins
en terme de performance ne sont pas nécessairement la puissance de calcul disponible en tant
que telle, mais comment les données sont traitées. Dans le cadre de la robotique, la conception
d’un contrôleur peut être réalisé suivant différentes approches.
La première, est la décomposition du contrôleur en modules successifs. Cette approches consiste
en une succession de modules traitant les flux de données provenant des capteurs du robot pour
finalement appliquer les commandes aux moteurs. Par exemple, les senseurs percoivent certaines
informations de l’environnement. Ces données sont transmises à un module de modélisation
qui les tranforme en une représentation interne de l’environnement. Cette représentation est
ensuite transmise à un module de planification qui fournit les actions souhaitées. Finallement,
ces actions sont transmises à un module de contrôle des moteurs pour les appliquer. Une telle
approche demande alors une importante puissance de calcul pour que ce traitement en série
prenne un temps suffisament faible pour permettre un contrôle cohérent et sûr du robot (le
contrôleur prend une minute de calcul pour éviter un obstacle proche, il y aura collision avant
même que les actions appropriées soient effectivement appliquées.).
Une seconde approche est apportée par les architectures de subsomption [Brooks, 1986]. Chaque
module de cette architecture est un comportement. Chacun des modules reçoit en entrée les
informations provenant des capteurs et fournit en sortie les actions souhaitées. Pour sélection-
ner l’action finale et appliquer les commandes motrices correspondantes, chaque comportement
possède un niveau de priorité. Supposons un contrôleur composé de deux modules exécutés en
2
Chapitre 1: Introduction
parallèle : un premier de basse priorité qui lorsque le robot ne perçoit rien de particulier qui
fournit l’action d’avancer tout droit, et un second module de plus haute priorité dont le com-
portement est de se diriger vers de la nourriture lorsqu’il en détecte. Alors le comportement du
robot sera par défaut d’avancer tout droit. Lorsqu’il détectera de la nourriture, il se dirigera
vers celle-ci. Un avantage notable de la parallèlisation des comportements est que si l’un est en
défaut, le robot peut continuer dans une moindre mesure, à évoluer dans l’environnement, piloté
par un autre. Une telle architecture nécessite plutôt des capacités de calculs en parallèle pour
efficacement réaliser les traitements de chacun des modules.
Chacune des deux approches ont leur philosophie. Dans la première, un module réalise une partie
d’un traitement, alors que dans la seconde, un module est un comportement parmi d’autres
dans un répertoire hierarchisé. Dans le cadre de la robotique épigénétique, nos architectures de
contrôle s’inspirent du système nerveux animal. Une question qui se pose est : comment concevoir
correctement une architecture de contrôle d’un robot lui permettant d’apprendre de nouveaux
comportements ?
Lorsque l’on s’intéresse à la robotique sociale, on peut dégager deux principaux objectifs : l’as-
sistance et le divertissement. Même si les applications peuvent être très différentes (assistance
aux personnes, assistance au combat, robot jouet), l’idée est de concevoir un robot intelligent
capable d’évoluer dans l’environnement physique, et de s’adapter à l’environnement social des
humains qui l’entourent. Nous pouvons alors dégager deux approches possibles pour le dévelop-
pement de tels robots. Une première consiste à pré-programmer ou “scripter” les comportements.
Cette approche descendante de l’intelligence artificielle trouve de nombreuses applications aussi
bien dans des jeux vidéos que pour certains robots industriels. Néanmoins, une telle approche
sous entend que le modèle mécanique du robot est connu et que l’environnement ne change
pas ou peut alors être modélisé sans erreur, car ces programmes sont peu adaptatif. Or, il est
très difficile de parfaitement décrire un environnement dans sa globalité sans tenir compte de
sa dynamicité. Généralement, les applications adoptant cette approche visent non seulement à
développer le contrôleur du robot, mais également à formater son environnement pour assurer
au mieux le bon fonctionnement du robot. La seconde approche, adoptée dans cette thèse, dite
ascendante, vise à permettre à des robots à apprendre et s’adapter dans un environnement a
priori inconnu. L’enjeu est fondamentalement différent, car il ne s’agit plus de pré-programmer
les comportements du robots et de décrire l’environnement. Il s’agit de donner les capacités
suffisantes au robot à s’adapter non seulement à l’environnement dans lequel il évolue, mais
également à sa propre mécanique. C’est alors l’ensemble des ces capacités qui permet de faire
émerger des comportements plus complexes. Une question qui se pose est : quels sont les méca-
nismes minimaux et génériques permettant à un robot d’apprendre des comportements dans un
environnement inconnu ? Les animaux et l’homme ont la capacité d’apprendre de nouveaux com-
portements dans un environnement a priori inconnu (l’idée d’une decription de l’environnement
“pré-cablée” dans le système nerveux paraı̂t peu probable.). Les études menées aussi bien sur
l’homme en psychologie que sur les animaux en éthologie, ainsi qu’en neurobiologie, apportent de
nombreuses données sur l’organisation du système nerveux et leurs implications dans différents
comportements observés. Dans ce cadre, les réseaux de neurones artificiels sont un outil idéal
pour le développement d’un contrôleur de robot biologiquement inspiré. En effet, ces réseaux
permettent de reproduire plus ou moins fidèlement le fonctionnement de différentes structures
neuronales. Grâce à la plasticité des synapses, les réseaux de neurones peuvent permettre à un
robot de s’adapter à un environnement inconnu et apprendre de nouveaux comportements.
Bien que les dispositifs et les outils actuels permettent le développement de contrôleurs de
robots, il reste à résoudre la question de l’adaptation et de l’autonomie comportementale. Com-
3
Chapitre 1: Introduction
ment s’affranchir des situations supervisées pour pouvoir interagir de manière naturelle ? Dans
ce contexte un modèle développemental qui permet l’émergence de comportements d’imitation
de bas niveau sur un robot Aibo est appliqué et testé dans le chapitre 2. Nous verrons ensuite
sous quelle forme un comportement peut être mémorisé. Le chapitre 3 propose alors d’encoder
un comportement comme une succession d’événements sensori-moteur, sous la forme d’une sé-
quence temporelle complexe de gestes sur un robot Aibo. Il faut aussi lier ces séquences avec
les états ou catégories appris dans l’environnement. Le chapitre 4 présente alors deux stratégies
possibles permettant à un robot mobile équipé d’une caméra et d’une boussole électronique de
naviguer. La première permet à un robot de se déplacer dans l’environnement en utilisant des
informations spatiales. La seconde utilise des informations temporelles permettant à un robot
d’apprendre la succession de ses déplacements. Le chapitre 5 présente un modèle dans lequel les
stratégies spatiale et temporelle sont fusionnées et exécutées en parallèle. Une étude est alors
réalisée sur la coopération et la compétition de ces stratégies afin de discuter les éléments impor-
tants d’un système de sélection de l’action. Enfin, le chapitre 6 présente les outils développés et
utilisés pour concevoir et exéctuter en temps réel de très grandes architectures neuronales distri-
buées sur plusieurs unités de calculs. Ces outils ont permis d’intégrer mes travaux avec ceux du
laboratoire LASA (Learning Algorithms and Systems) de l’EPFL (Ecole Polytechnique Fédérale
de Lausanne) permettant ainsi à un robot mobile équipé d’un bras robotique d’apprendre des
comportements combinant la navigation, le geste et l’objet.
4
Chapitre 2
Du développement sensori-moteur à
l’imitation : une approche
épigénétique
5
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
Dans le contexte de l’apprentissage de comportements sur un robot, la question qui se pose est :
comment un robot peut-il apprendre un comportement ? Une première possibilité est de laisser le
robot apprendre seul, essayant de découvrir la solution en explorant l’ensemble des associations
possibles, de lier par exemple les lieux, les objets, les actions. Bien sur, cette méthode demande
beaucoup de temp avant que la solution soit trouvée, le temps de l’exploration et de la découverte
étant directement dépendant du nombre d’associations possibles, de la séquence à apprendre et
des catégories à constituer(reconnaı̂tre un lieu, un objet, généraliser des actions) pour “agréger”
les différents éléments qui constituent le comportement. Si une telle solution est acceptable dans
le cadre d’environnements bien définis (simulations, lieux ou objets sont segmentés a priori,
actions déjà codées sous forme de symboles), elle devient inapropriée dans un environnement
réel et riche.
Que ce soit en robotique ou en psychologie, la capacité d’imitation est apparue très tôt comme
l’élément qui permet d’accélérer l’apprentissage d’un agent grâce à l’observation de l’autre, cette
observation réduisant fortement l’espace d’exploration pour découvrir et “assembler” les éléments
du comportement [Bandura, 1971]. Dans ce cadre, l’imitation se révèle être alors un atout certain
en terme de temps d’acquisition de nouveaux comportements.
L’imitation permet d’envisager l’autre comme un “outil social” qui permet la découverte rapide
de propiétés intéressantes de l’environnement physique [Dautenhahn, 1995]. Dautenhahn illustre
ce principe d’“outil social” par un robot dont la seule capacité de suivi (sans notion évoluée de ce
qu’est l’autre, sans notion évoluée de “soi”) amorce la découverte de régions de “récompense” dans
un environnement vallonné parcouru par des robots mobiles. L’imitation permet par l’observation
d’accéder à des comportements de plus haut niveau [Kuniyoshi, 1994a,Billard et al., 1998,Hayes
et Demiris, 1994]. L’imitation est enfin une interface homme machine intuitive et accessible par
quiconque [Cheng et Kuniyoshi, 2000, Mataric, 2000, K. Dautenhahn, 2002].
Néanmoins, un des grands défis de l’imitation reste de comprendre les mécanismes mis en jeu
qui permettent de lier “ce que fait l’autre” avec “ce que je peux faire”. Cette problématique
trouve le nom de problème de correspondance (corresponding problem) et a été évoqué par
Nehaniv [Nehaniv et Dautenhahn, 2002].
Ce problème des correspondances dissimule pour moi un second problème en robotique auto-
nome, celui du lien entre le contrôle moteur et l’apprentissage d’un comportement aussi simple
soit il (par exemple une séquence de déplacements ou de gestes, même sans signification particu-
lière). En d’autre terme, comment passer du mouvement à l’action (et vice versa), de la simple
commande motrice au comportement ?
La littérature nous fourni nombre de modèles pour le contrôle moteur. J’évoquerai plus particu-
lièrement dans ce chapitre ceux qui permettent d’effectuer le contrôle d’un bras de robot dans
l’espace visuel. Beaucoup de travaux de recherche se concentrent sur l’apprentissage de compor-
tement mais possédent en pré-requis une simplification des espaces de travail (exosquelette pour
l’adaptation des données motrices, dispositif externe de vision pour le calcul du modèle inverse
des commandes du robot, etc).
Existe-t-il une hiérarchie si forte entre un “étage” où serait encodé le comportement et un “étage”
d’execution de la commande et quelle est la place des transformations nécessaires (espace visuel,
espace de travail, espace de contrôle) ?
J’aborderai ainsi ce chapitre par ce qui est pour moi le révélateur de cette question fondamentale :
la différence en psychologie et en robotique de deux niveaux d’imitation. Selon certains [Schaal,
1999, Heyes, 2001], le premier niveau concerne une imitation accessible de l’être humain seul,
centré sur la définition de l’imitation véritable. Le second niveau regroupe un ensemble plus large
de comportements partagés par l’homme (notamment le très jeune enfant) et certains animaux.
6
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
Ce bas niveau fait intervenir des mécanismes perception-action comme l’apprentissage sensori-
moteur, la valence du stimulus, l’attention de l’observateur se porte sur l’objet manipulé par
l’imité [Spence, 1937, Thorpe, 1963] ou sur le lieux dans lequel l’imité réalise l’action [Roberts,
1941]), l’émulation [Whiten et Ham, 1992,Byrne et Russon, 1998] qui concerne l’augmentation de
la saillance de certains buts après l’observation d’un congénère atteignant ce but et la facilitation
de la réponse [Bandura, 1971] où l’attention de l’observateur porte sur les actions réalisées par
un congénère, alors la probabilité de faire les mêmes actions augmente.
Par la suite, j’emprunterai une démarche développementale en reprenant les principes de la proto-
imitation, destinée à montrer comment un homéostat, muni de l’ambiguı̈té de la perception est
capable de faire émerger un comportement d’imitation immédiate de gestes sans notion de soit,
de l’autre ni d’informations a priori sur les transformations entre espace de travail, espace visuel
et commande motrice. Enfin, je discuterai les limitations de cette architecture et notamment le
codage visuo-moteur appris par le robot, pour proposer un principe de codage plus adapté à
l’apprentissage de comportement. Un des principaux avantage de ce nouveau codage est d’être
similaire pour le contrôle d’un bras de robot à plusieurs degrés de liberté ou pour l’utilisation
d’un robot mobile (chapitre 4 et 5).
7
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
mentale plus élaborée. Ca serait à partir du 18ème mois que le jeune enfant atteindrait le stade
de l’imitation représentative - dimension centrale du processus symbolique [Piaget, 1970].
De manière similaire en robotique, une grande partie des travaux se sont concentrés sur l’appren-
tissage par observation en utilisant essentiellement la vision et des algorithmes d’apprentissage
non supervisé [Kuniyoshi, 1994b, Kuniyoshi, 1994a, Bakker et Kuniyoshi, 1996, Gaussier et al.,
1998]. Cette méthode d’apprentissage se déroule en trois temps. Dans un premier temps, le robot
observe le démonstrateur réalisant la tâche. Durant cette phase, le robot enregistre les informa-
tions nécessaires qui lui permettront de restituer le comportement. Ensuite, le robot traite les
données afin de les transposer à ses propres effecteurs. Une fois ce traitement réalisé, le robot
restitue le comportement préalablement observé sans intervention extérieure. Une approche sou-
vent adoptée de l’apprentissage par l’observation repose sur un ensemble de symboles [Pardowitz,
2007,Pardowitz et al., 2007]. Ces symboles représentent un répertoire d’actions reconnues par le
robot qui sont ensuite appariés avec les actions motrices (figure 2.1).
AFFA8C737DB
Fig. 2.1: Modèle d’apprentissage par imitation. A partir de l’observation, le robot reconnait des symboles corres-
pondant à des actions. Ces symboles sont ensuite couplés avec des actions motrices à réaliser.
8
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
Dans [Schaal et al., 2001,Ijspeert et al., 2002a,Schaal et al., 2007] les auteurs apprennent un geste
à un robot humanoı̈de. Pour effectuer cet apprentissage, le démonstrateur est équipé de capteurs
au niveau des articulations qui permettent de mesurer l’angle de chacune des articulations. Ce
dispositif permet alors de faire la correspondance de dynamiques sensori-motrices de systèmes
physiques différents (l’homme vs le robot). Lors de la phase d’apprentissage, l’expert réalise le
mouvement qu’il souhaite faire apprendre au robot. Pendant qu’il réalise le mouvement, toutes
les mesures d’angles au niveau des articulations sont enregistrées. A partir de ces données le
robot apprend le geste puis le reproduit.
Dans les travaux de [Calinon et Billard, 2007], une expérience similaire a été réalisée sur un
robot humanoı̈de HOAP31 . Dans ces travaux, les auteurs traitent également du problème de
correspondance. En effet, lors de l’apprentissage, les données enregistrées le sont à partir du
corps humain du démonstrateur, elles sont ensuite traitées pour que le robot reproduise le geste
avec ses propres effecteurs. Par conséquent, le geste reproduit peut être plus ou moins différent
de celui de la démonstration. Pour traiter ce problème, les auteurs ajoutent au robot la capacité
à être corrigé en ligne par l’expert qui le manipule durant la reproduction. Le robot apprend
plus rapidement la tâche à réaliser grâce à cette interaction avec l’humain. On peut alors parler
d’apprentissage coopératif. Lors de cette phase de correction, l’expert manipule le robot qui est
alors en mode passif, c’est-à-dire que le robot se laisse manipuler. Grâce à cette coopération, le
robot devient plus performant dans la tâche qu’il doit réaliser.
Néanmoins, l’utilisation d’équipements plus direct que la vision ne permet pas de s’abstraire du
problème de la correspondance entre ce que le robot perçoit et ses propres effecteurs. De plus,
l’apprentissage se déroule hors ligne et nécessite donc que le robot ait toutes les informations
relatives au geste avant de réaliser l’apprentissage et de pouvoir le reproduire.
9
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
certaine catégorie de neurones du cerveau qui présentent une activité à la fois lorsqu’un individu
exécute une action spécifique sur un objet et lorsqu’il observe un autre individu (en particulier
de son espèce) exécuter cette même action, d’où le terme miroir. En neurosciences cognitives, ces
neurones miroirs sont supposés jouer un rôle dans des capacités cognitives liées à la vie sociale
comme la capacité à imiter ou l’empathie. Cependant, rien ne permet de dire si la réponse de ces
neurones possède un caractère “inné”, ou concerne le résultat d’un apprentissage sensorimoteur
qui aurait lieu pendant les premiers mois de vie. Mais si les neurones mirroirs nécessitent un
apprentissage préalable alors un problème se pose, car ils ne peuvent pas être à la fois la cause
et la conséquence d’un même apprentissage. Enfin, il est à noter que les neurones miroirs ne
concernent pas les gestes faciaux envoyés lors d’imitation néo-natale.
D’un point de vue développemental, l’imitation immédiate peut alors servir de point de départ
pour permettre à un robot d’apprendre des comportements simples à partir desquels des com-
portements plus complexes pourront être appris. La question qui se pose alors est : comment un
comportement d’imitation immédiate peut-il émerger d’un robot ?
2.1.4 Proto-imitation
Supposons un contrôleur capable de commander de manière cohérente un système oeil-bras, c’est
à dire qu’il est capable d’associer la vision de l’extrêmité avec la propriocetion correspondant
aux positions de son bras pour atteindre un quelconque point dans l’espace de travail. On fait
également l’hypothèse que le robot ait un système visuel simple, pouvant par exemple seulement
détecter les zones de mouvement. Le robot pourra suivre une main, l’extrêmité de son bras ou un
objet qui se déplace dans son champ visuel, mais il ne sera pas capable (sans autres informations)
de les différencier (pas de notion de soi ou de l’autre). Enfin, supposons que le contrôleur du
robot est un homéostat qui tend à tout moment à équilibrer par l’action ses perceptions, c’est
à dire la vision et la proprioception. Si un humain bouge sa main dans le champ de vision du
robot, ce dernier détectera une zone en mouvement, comprise comme la position de l’extrêmité
de son bras, qui induira une erreur avec la position de son bras (figure 2.2).
CCD
Detection
du mouvement
β
α
Controller
Controller
Fig. 2.2: Illustration d’un mécanisme simple de proto-imitation. A gauche : un contrôleur neuronal apprend les
associations visuo-motrices de l’espace de travail. L’apprentissage se déroule pendant une phase d’exploration
aléatoire dans l’espace sensori-moteur. A droite : une fois les associations sensori-motrices apprises, un simple
décalage mécanique de la caméra induit une confusion entre la main agitée par un utilisateur et la position du
bras robotique. Cette confusion génère une erreur que le contrôleur corrige en déplaçant le bras de robot vers la
main agitée. Le système peut ainsi imiter la trajectoire de la main de l’utilisateur et un observateur dire que le
robot “imite” les gestes de l’utilisateur.
Le robot tentera alors de minimiser cette erreur en déplaçant son bras vers la zone de mouvement.
Si l’expérimentateur continue de bouger sa main, alors le robot réalisera les mêmes mouvements
10
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
6789A97B
C98DEFFEEF219FE E55ED5
123452
6789A97B
65765971E6A9CE
Fig. 2.3: Mécanisme d’homéostat visant à minimiser l’erreur entre les informations visuelles et les informations
motrices du bras robotique.
Néanmoins, pour permettre l’émergence d’un comportement d’imitation, le robot doit au préa-
lable apprendre à associer les positions visuelles avec les informations proprioceptives de son bras
de manière à contrôler de manière cohérente son bras. Ce problème implique de s’intéresser à la
construction des primitives motrices qui composent le répertoire d’actions et de leur adaptation
aux changements. Dans ce cadre, il est alors indispensable de s’intéresser au niveau inférieur du
contrôle moteur : comment apprend-on à contrôler son bras ?
11
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
F6EBB6C
DBEA99A7A921B9A 36789A A55A5
BCDA5EA
123452
F6EBB6CF56F5B61AFBDA
752E
Fig. 2.4: Contrôleur réalisant le calcul de l’erreur entre la position visuelle de la cible et la position du bras dans
l’espace moteur. La position de la cible est transformée dans l’espace moteur avec l’utilisation d’un modèle inverse
Pour réaliser une transformation de l’espace visuel vers l’espace moteur du robot, une méthode
fréquemment utilisée est le modèle inverse. Cette méthode impose alors d’avoir a priori un
modèle de la mécanique du bras, de définir une matrice de transformation de la position visuelle
vers l’espace moteur du bras (généralement une matrice Jacobienne du bras robotique). Même
si cette méthode donne une réponse, il n’y a pas de gestion des ambiguı̈tés ; c’est à dire lorsque
plusieurs positions angulaires du bras sont possibles pour une même position de l’espace visuel.
Pour palier ce problème, il est alors nécessaire d’avoir une ou plusieurs caméras extérieures.
6FBCB6D
EBFA99A7A921B9A A55A5 36789A
BDEA5FA
123452
36789A
7B5A1C 6FBCB6D565B61ACBEA
752F
Fig. 2.5: Contrôleur réalisant le calcul de l’erreur entre la position visuelle de la cible et la position du bras
dans l’espace visuel. La position du bras est transformée dans l’espace visuel avec l’utilisation d’un modèle direct.
L’erreur à appliquer sur les moteurs est alors transformée dans l’espace moteur.
Pour réaliser la transformation de l’espace moteur vers l’espace visuel, il faut déterminer la
position de tous les points du bras à partir des informations motrices. Le modèle direct est alors
généralement utilisé, mais cette méthode implique également de connaı̂tre a priori le modèle
mécanique du bras. De plus, après que l’erreur ait été calculée dans l’espace visuel, les commandes
motrices résultantes doivent généralement être retransformées vers l’espace moteur. Néanmoins,
cette méthode peut se révéler plus simple pour le calcul de l’erreur, car dans ce cas il est réalisé
dans l’espace visuel à deux ou trois dimensions, alors que dans l’espace moteur il serait fait dans
un espace à six dimensions pour un bras robotique à six degrés de liberté (en supposant qu’il y
ait une dimension par degré de liberté).
Dans le cadre d’apprentissage par imitation sur un robot autonome, je ne souhaite pas faire
un tel a priori, car le robot doit pouvoir s’adapter à sa mécanique ou, d’une autre manière, le
modèle doit pouvoir être le même quelque soit la mécanique du bras utilisé.
Dans [Albus, 1975], l’auteur présente un modèle baptisé Cerebellar Model Articulation Control-
ler (CMAC) permettant le contrôle d’un bras robotique de manière adaptative. Le modèle est
composé d’un vecteur d’entrée pour chaque articulation à contrôler dont les composantes sont
les informations sensorielles, motrices, ainsi que l’identifiant de la commande désirée. Ce vecteur
représente alors une adresse mémoire dans laquelle sont stockées les poids synaptiques. En sortie,
un neurone fait la somme des poids pour délivrer la commande motrice au moteur. Il y a un
neurone de sortie par articulation. L’adaptation se fait par modification des poids synaptiques
12
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
CD
AB
68947 68947
68947 AB
EEF 1234567 1471234567 EEF
Fig. 2.6: A. Modèle VITE. TPC est un vecteur sur lequel est projeté la cible. PPC est un vecteur sur lequel
est projeté la position courante de l’articulation. DV est un vecteur différentiel entre TPC et PPC. GO est un
signal qui permet de moduler la vitesse de l’articulation. B. Modèle de deux circuit VITE permettant un contrôle
semblable au contrôle musculaire.
Ce modèle se compose de deux vecteurs dans lesquels chaque composante représente une position
d’une articulation et d’un vecteur différentiel. Sur le premier vecteur est projetée la position cible
(TPC) à atteindre, sur le second est projetée la position courante de l’articulation (PPC). Le
vecteur différentiel (DV) est la différence entre le vecteur TPC et PPC à chaque instant. Cette
13
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
Fig. 2.7: Représentation neuronale du modèle d’Amari. Le champ neuronal se présente comme une carte 1D de
neurone ayant des connexions récurrentes et des connexions locales. Les connexions locales du neurone x sur ses
voisins sont ici représentées par la Différence de Gaussiennes (DOG) w.
différence est multipliée par un signal GO qui permet de moduler la vitesse du mouvement de
l’articulation sans en perturber la forme. Une fois cette opération réalisée, le résultat est alors
intégré dans le vecteur PPC qui ensuite génère la commande motrice à appliquer. Dans [Hersch
et Billard, 2006], les auteurs utilisent un couple de contrôleurs VITE en parallèle pour réaliser
un contrôle plus robuste et stable d’un bras robotique. Un premier contrôleur permet alors de
calculer la commande dans l’espace angulaire du bras, alors que le second permet de calculer la
commande dans l’espace cartésien. Ces deux commandes sont ensuite soumises à un mécanisme
de contrainte de cohérence. Ce mécanisme permet d’assurer que la configuration angulaire désirée
du bras fournie par le premier contrôleur VITE corresponde effectivement à la position désirée
fournie par le second contrôleur VITE.
Néanmoins, le modèle VITE ne tient pas compte des informations proprioceptives, mais se
contente d’intégrer la nouvelle position courante dans le calcul de l’erreur (dans le vecteur DV).
Par conséquent, le contrôle du bras peut ne plus correspondre au mouvement désiré.
Les propriétés dynamiques du champ neuronal en font un outil idéal pour le contrôle moteur d’un
robot autonome. La propriété de mémoire ainsi que les capacités de filtrage associées permettent
l’utilisation d’informations relativement bruitées en entrée ou incomplètes dans le temps. C’est
précisément cette propriété qui permet de conserver des comportements robustes à des entrées
bruitées. Cet effet mémoire permet de garder l’activité sur une certaine durée même s’il n’y a
pas d’informations en entrée.
Le calcul de l’activité de chaque neurone x se fait selon l’équation d’Amari [Amari, 1977] :
f (x, t)
Z
τ· = −f (x, t) + I (x, t) + h w(z) · g (f (x − z, t)) dz (2.1)
dt z∈Vx
La fonction f (x, t) représente l’activité du neurone x à l’instant t. I (x, t) représente les entrées
du système, c’est à dire la stimulation qui peut être appliquée en différents points du champ. La
constante de temps τ représente le taux de relaxation du système. Vx est le voisinage du neurone
x dans lequel les interactions excitatrices et inhibitrices modélisées par la fonction w (Différence
de Gaussiennes (DOG) représentée figure 2.7) sont prises en compte. Ces interactions latérales
modélisent les connexions fortes locales qui définissent une topologie sur le champ neuronal.
Chaque neurone x possède des voisins z par lesquels il est susceptible d’être coactivé de façon
excitatrice - créant ainsi une zone d’attraction - ou inhibitrice - créant une zone de répulsion -
14
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
Fig. 2.8: Illustration du mécanisme d’extraction en présence d’une stimulation (en rouge). L’entrée visuelle stimule
le champ neuronal et engendre un attracteur dont la dérivée par rapport à l’orientation est utilisée pour calculer
la commande en vitesse du robot en direction de l’attracteur.
(selon w) en fonction de leur activité (g() étant la fonction de transfert non linéaire -généralement
une fonction continue par morceaux à seuil- de chaque neurone), et de leur distance.
Pour être correctement utilisées, les informations en sortie du champ neuronal sont traitées par
un mécanisme d’extraction (readout, figure 2.8). Ce mécanisme permet d’exploiter les attracteurs
et répulseurs formés par le champ neuronal pour le contrôle moteur. Le champ neuronal conserve
la topologie des entrées. Le calcul de la dérivée spatiale de l’activité du champ neuronal exprime
les valeurs des vitesses à appliquer aux articulations du robot pour aller vers la cible ou au
contraire s’en éloigner. Cette dérivée est exprimée avec la même topologie que celles des entrées
du champ neuronal. Les vitesses sont ensuite directement envoyées sur les moteurs du robot.
Ce mécanisme permet à chaque moteur placé dans l’“axe” des entrées de contribuer au déplace-
ment de l’effecteur (tête, bras) vers la cible (activité de la stimulation visuelle). Néanmoins, si
l’extraction de la commande est aisée (même valeur de vitesse envoyée à tous les moteurs d’un
même axe), il est nécessaire d’être capable de connaı̂tre la position de l’effecteur à contrôler
(orientation du robot, position de l’extrêmité) dans l’espace de calcul du champ de neurones
(dans cet exemple l’espace visuel). Le parti pris est d’effectuer les calculs dans l’espace des
entrées pour obtenir une commande indépendante du nombre de degrés de liberté de l’effecteur.
15
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
Pour se construire une représentation interne, le robot doit apprendre sa coordination visuo-
motrice. Ce type d’apprentissage permet d’effectuer un changement d’espace en passant de
l’espace proprioceptif (informations motrices) à un espace visuel. De cette manière, le robot est
capable de pouvoir situer l’extrémité de sa patte dans son espace visuel uniquement à partir
de ses informations motrices [Andry, 2002b]. Le résultat de ce mécanisme peut être assimilé à
l’apprentissage du modèle direct par le robot mais également au modèle inverse par l’utilisation
de champs neuronaux et de mécanismes d’extractions de la commande motrice.
L’espace moteur du bras étant plus important que l’espace visuel, le robot doit être également
capable de suivre grâce aux moteurs de la tête du robot, l’extrémité de son bras de manière à
l’avoir constamment dans son champ visuel.
6789A97BCD98EFFCF
FA539A4CFC2C62AAF F65216BA7F2
A8B6BA7CB8DFFFF653B64F2266F
1A3327F3A65B1F
123 2
F55FE5 123 2
652789A5326BA7 F55FD5
CB8DAE3A65B1F
6789A97BC65765971F6A9DF
A. FC2CAAF B. A8B6BA75A5BA1F6BCFF2266F
Fig. 2.10: Les deux homéostats composant l’architecture. A. Les informations motrices de la tête sont exprimées
dans le même système de coordonnées que la vision, leur comparaison est possible directement. B. Les informa-
tions motrices du bras sont exprimées dans un système de coordonnées différent de la vision. Un apprentissage
des associations visuo-motrices est alors nécessaire pour réaliser la transformation qui permet la régulation des
informations de l’homéostat.
L’architecture intègre alors deux types d’homéostats représentés figure 2.10. Le premier est
nécessaire au contrôle de la tête (suivi de l’extrêmité de la patte) et le second pour la coordination
visuo-motrice).
16
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
il peut déterminer à partir des informations motrices où se trouve le stimulus dans l’espace de
ces senseurs. Dans ce travail, le robot traite des stimuli visuels qui sont ensuite associés aux
informations motrices du bras. Le modèle se compose d’une carte visuelle en deux dimensions
(macro carte) sur laquelle est projetée la position visuelle de l’extrémité de la patte et pour
chaque position visuelle, une carte proprioceptive en une dimension (micro carte) catégorisant
les informations proprioceptives de la patte du robot. (figure 2.11).
Le système étant équipé d’une seule caméra, il ne peut donc pas traiter d’informations en trois
dimensions. Par contre, n’ayant aucune contrainte sur les mouvements du bras (hors contraintes
physiques), l’extrémité peut se trouver n’importe où dans l’espace. Par conséquent le système
doit être capable de catégoriser plusieurs postures du bras pour une même position visuelle de
l’extrémité. Cette catégorisation est alors réalisée sous forme de carte auto organisatrice sur les
micro cartes (figure 2.12).
V Xi Zi D54829
EF
12345637489 1 k
7A85654B7C2D784239 Yi Yi
ϴ1
E
ϴ2
Fig. 2.12: Modèle d’une “colonne”. Lors de l’apprentissage, la colonne reçoit en entrée un stimulus visuel (V)
sur un lien inconditionnel (US). Ce stimulus permet alors l’apprentissage des informations motrices (θ1 , θ2 ) par
modification des poids sur les liens conditionnels (CS). Les neurones (Yi1 , . . ., Yik ) de la micro carte correspondant
à cette colonne catégorise alors la posture du bras.
L’activité des neurones Y est proportionnelle au calcul de distance entre le vecteur courant des
informations motrices θ et les valeurs des poids associés W :
1
Yik = (2.2)
1 + |θj − Wjk |
17
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
avec Yik le kime neurone de la micro carte associé à la iime colonne. Chaque micro carte calcul
un gagnant :
gagnanti = argmaxk∈n (Yik ) (2.3)
L’apprentissage se fait en fonction de la topologie des connexions locales des micro cartes.
La fonction d calcule la distance entre le kime micro neurone et le micro neurone gagnant de la
micro carte. La fonction δ est une différence de gaussiennes qui modélise les interactions locales
entre les micro neurones. ε est une constante d’apprentissage qui détermine la force de mise à
jour des poids. Le neurone Xi déclenche l’apprentissage selon la règle :
si Vj .Wji > θ
Xi = {0 sinon (2.5)
Lorsqu’aucune entrée visuelle n’est active en entrée de la carte sensori-motrice, seule les infor-
mations motrices peuvent engendrer une réponse sur la colonne associée. Elles entraı̂nent alors
une activité sur la micro carte associée, dont le maximum est propagé sur le macro-neurone Zi .
Chaque neurones Zi est ensuite mit en compétition avec ceux de la carte sensori-motrice :
1 si Zi′ = maxj∈n (Zj′ )
Zi = {0 sinon (2.7)
3AC2E7E3B
A17E
3AC6A713B
4EA9 7E437E
53 4E71A
4EA9 7E437E
7B 4E71A
Comme le montre le figure 2.13, les images capturées par une caméra, sont traitées par un
groupe de neurones qui extrait les informations visuelles. Ces informations sont alors projetées
horizontalement et verticalement sur deux vecteurs (figure 2.14) dont la taille correspond au
18
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
123453678
9A7B453678
C4A365DE4
9A7B453678F7A6783DE4
Fig. 2.14: Schéma des connexions entre le groupe de détection (mouvement ou de couleur selon l’expérience) et les
groupes de projections horizontales et verticales. Les poids des connexions ont été choisis de manière à toujours
rester dans l’intervalle [0,1] pour une activité en entrée bornée.
champ visuel local du robot ; c’est à dire à une capture. Pour chaque vecteur seule l’activité
maximale est récupérée suivant l’équation :
gagnanti = {0potentiel
sinon
i si potentieli > Seuil
(2.8)
avec potentieli l’activité en entrée du ième neurone du groupe. Ensuite, les neurones gagnants
sont mis en compétition pour choisir les N neurones les plus activés.
Ces activités maximales sur chacune des deux dimensions définissent pour le robot la position
de l’extrémité de son effecteur. Si nous prenons l’exemple de mouvements humains du bras, la
zone où le mouvement est maximum est justement la main, c’est à dire l’extrêmité du membre.
Le mouvement de la main bénéficie de la sommation des vitesses de mouvements du poignet,
du coude, de l’épaule, voire du corps. De plus, lorsque le robot bouge la tête, alors il perçoit
son propre mouvement. Il est nécessaire de ne pas traiter ce mouvement, car il ne correspond
pas à celui d’un geste. J’ai utilisé la solution trés simple : quand le robot perçoit son propre
mouvement, l’activité est présente sur la majorité de l’image. J’ai alors ajouté deux groupes (un
pour chaque axe) dont le rôle est d’inhiber l’activité lorsqu’elle est trop importante. De cette
manière, il n’y aura pas d’autre traitement sur cette activité indésirable. En d’autres termes,
seul un mouvement localisé et inférieur à une intensité donnée est détectée par le capteur de
vision (mouvement de l’extrêmité de sa patte ou du bras d’un autre). Les activités gagnantes
sont alors repositionnées sur deux vecteurs qui représentent non plus le champ visuel local, mais
le champ visuel global du robot ; c’est à dire partout où le robot peut voir (figure 2.15).
Ce repositionnement est réalisé à partir des informations motrices, du débattement des moteurs
et des angles d’ouvertures horizontales et verticales de la caméra. Les informations du moteur Pan
sont donc utilisées pour repositionner horizontalement la position et les informations motrices
du moteur Tilt pour le repositionnement vertical. Ce traitement permet alors de déterminer où
se trouve le centre de la vision locale du robot. Ensuite, les activités des neurones gagnants sur
les vecteurs du champ visuel local sont reportées sur les vecteurs du champ visuel global.
Finalement, les informations en sortie de ce système permettent de localiser une activité par-
ticulière dans l’espace visuel global du robot. Ces informations vont stimuler des champs de
neurones dynamiques pour permettre au robot d’amener son effecteur vers l’activité perçue.
19
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
E19FD1
123456785679AB5CD678C7EAC
E1DB576C54457F3AE52BDF5
E1978576A2
Fig. 2.15: Espace visuel du robot. Il s’agit d’une carte en deux dimensions représentant le champ visuel global
accessible à la caméra du robot montée sur les moteurs du cou.
Fig. 2.16: Model d’extraction de la commande motrice de la tête du robot permettant le suivi de l’extrémité de
sa patte.
Dans mes travaux, j’utilise deux champs de neurones dynamiques sous forme de deux cartes
de neurones 1D correspondant à l’axe vertical et horizontal (axes des informations visuelles
projetées comme vu dans la section précédente)(figure 2.16). Ces cartes sont stimulées par des
cartes de même dimension (connexions de 1 vers 1) dont chaque neurone représente l’intensité
de la stimulation.
L’utilisation du mécanisme “readout” permet d’extraire la commande motrice en vitesse à appli-
quer sur les moteurs en fonction de la position désirée et de la position courante de l’effecteur.
Lors de l’apprentissage de la coordination visuo-motrice, l’effecteur contrôlé est la tête du robot
pour qu’il puisse garder sa patte au centre de la vision.
La position des moteurs à déplacer (tête dans notre configuration) étant connu dans l’espace
d’entrée, alors la valeur de la dérivée à cette position correspond à la vitesse à appliquer sur les
moteurs pour se rapprocher de l’attracteur (mécanisme d’extraction vu figure 2.8). En appliquant
cette commande, la position du de la tête change, et donc une nouvelle vitesse sera extraite
de la dérivée. De cette manière, la commande motrice va permettre au robot de se rapprocher
progressivement de l’attracteur en alignant sa position sur celle de la cible. Le signe de la dérivée
défini le sens dans lequel il faut que la tête du robot aille pour se rapprocher de l’attracteur. De
cette manière, si la tête va trop loin, il repartira dans l’autre sens pour toujours se rapprocher
de la cible.
20
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
1234567A
123456 12345679
123 B5C54
Fig. 2.17: A gauche : Illustration des articulations utilisées avec les valeurs minimum et maximum en degrés. A
gauche est représenté l’espace horizontal (le “Pan”). A droite est représenté l’espace vertical couvert par la tête
(le “tilt”) et la nuque. A droite : Illustration des articulations utilisées avec les valeurs minimum et maximum de
chacune. A gauche, le moteur 1 de l’épaule représente l’espace couvert horizontalement par la patte du robot. A
droite est représenté l’espace couvert verticalement au niveau du moteur 0 “l’épaule” et du “coude” du robot.
3
Bras robotique de Neuronics
4
Le champ visuel global vertical a un maximum équivalent à la somme des deux articulations permettant un
mouvement vertical ; c’est à dire 44 + 2 = 46˚ maximum. Avec un champ de vision de 28˚ horizontalement et de
22˚ verticalement, on obtient donc un champ de vision global de 90˚+ 28˚= 118˚ de largeur par (44˚− (−16˚)) +
(2˚− (−79˚)) + 22˚= 163˚ de hauteur.
21
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
Le débattement des articulations de la patte du robot (figure 2.17) ont été volontairement réduits,
pour éviter les problèmes de casse mécanique. En effet, dans certaines positions le robot peut
venir à toucher sa tête avec sa patte et forcer pour essayer d’aller plus loin. Pour cet apprentissage,
la patte va être déplacée par un programme extérieur à l’application. Ce programme a pour but
d’amener la patte du robot à différentes positions couvrant un maximum d’espace dans le champ
visuel global du robot. Pour obtenir cette couverture de l’espace, chacun des degrés de liberté de
la patte se déplacera d’un dixième de son amplitude. Par exemple, pour l’articulation générant
un mouvement horizontal :
pas = (anglem ax − anglem in)
(2.9)
10
En faisant ce calcul pour les 3 articulations de la patte, on obtient ainsi : 10 ∗ 10 ∗ 10 = 1000
positions par lesquelles la patte se déplacera. A chaque position, la patte s’arrête 5 secondes le
temps que l’apprentissage se fasse correctement. Le robot va donc apprendre les informations
motrices de la patte pour chacune des positions où elle se trouve ; pas nécessairement l’une des
1000 positions, mais également des positions intermédiaires.
Fig. 2.18: Photos du robot en cours d’apprentissage sensori-moteur. La patte est guidée par un programme
extérieur bougeant la patte sur 1000 positions dans l’espace global. Notre architecture permet au robot de garder
sa patte dans son champ visuel afin d’associer la position visuelle de sa patte avec ses informations proprioceptives.
Pour cet apprentissage, les micro cartes associées à chaque position de la carte sensori-motrice
du macro-colonne, sont composées de 6 micro neurones. Le modèle va donc faire l’apprentissage
sur 118 ∗ 163 ∗ 3 ∗ 6 = 346212 liens.
Une fois l’apprentissage terminé, les tests consistent à placer le centre de vision du robot à
certaines positions, de manière à ce qu’il positionne sa patte dans son champ de vision. Aprés
plusieurs observations, j’ai pu constater que le robot ne répondait pas correctement ; il n’amenait
pas sa patte dans son champ de vision, mais il la bougeait sur des positions éloignées. Il est
également arrivé que le robot se retrouve dans une situation de blocage comme le montre la
figure 2.19. Ces comportements résultaient de l’utilisation de 3 degrés de liberté pour la tête et
la patte du robot.
La première cause vient directement de la résolution de l’espace global. Durant l’apprentissage,
le robot n’a pas appris sur toutes les positions où sa patte est passée. Ceci est dû à la faible
résolution angulaire des positions dans l’espace global, alors que le robot n’est pas aussi précis
dans les valeurs appliquée aux articulations (de 2˚à 3˚d’erreur sur les angles ordonnés). Le très
grand nombre de positions possibles dans l’espace global implique aussi un temps conséquent de
22
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
1234567869ABACD
Fig. 2.19: Situation dans laquelle le robot est bloqué due à une rotation supplémentaire du champ visuel de la
caméra (foncé) qui ne permet plus l’extraction de commandes motrices cohérentes
calcul qui créé une latence ; le robot n’apprend donc pas sur un certains nombre de positions in-
termédiaire. Après plusieurs jours, l’apprentissage de la coordination visuo-motrice n’était donc
pas complet laissant ainsi de nombreux “trous” dans la carte visuo-motrice. Par conséquent,
lorsque le robot exploite la carte visuo-motrice, des positions visuelles éloignées répondent et en-
gendrent des commandes motrices ne permettant pas de rejoindre la position désirée. Il faudrait
donc continuer l’apprentissage pour que le robot puisse complètement terminer sa coordination
visuo-motrice.
La solution est qu’il est possible d’échantillonner l’espace global en divisant par 2 le nombre de
positions. Cet échantillonnage paraı̂t suffisant vis-à-vis des erreurs des valeurs sur les articulations
sans pour autant empêcher la détection de la couleur à l’extrêmité de sa patte. La deuxième
cause vient de l’articulation de la nuque (pour la tête) du robot. En effet, même si ce moteur
permet un déplacement vertical de la tête, il ne peut finalement pas être tout simplement sommé
avec le moteur Tilt permettant un déplacement suivant le même axe. Le moteur de la nuque
portant les moteurs Pan et Tilt, il induit une rotation du plan correspondant au champ visuel
du robot lorsque celui-ci regarde sur le coté. Cette rotation ne permet alors plus de garder la
correspondance des repères de la tête avec celui de la patte. Par conséquent, les commandes
motrices extraites par l’architecture ne réalisent pas le mouvement désiré. Une solution serait
de tenir compte de cette rotation, par exemple de l’apprendre, pour que le robot puisse extraire
des commandes motrices cohérentes, mais ce problème sort du cadre de mes travaux. J’ai donc
décidé de passer sur deux degrés de liberté pour la tête et la patte du robot en ne considérant
plus que les moteurs “pan” et “tilt” de la tête et les moteurs 1 et 2 de la patte.
23
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
diminution du temps de calcul sur notamment le groupe qui permet d’apprendre les associations
visuo-motrices. La diminution du temps de calcul est expliquée par une forte diminution du
nombre de poids à apprendre6 . Une fois les modifications effectuées dans le modèle, l’apprentis-
sage sensori-moteur a été entièrement refait7 .
12345679
12345674567
123456 12345678
123
Fig. 2.20: Illustration des degrés de liberté du robot : 2 pour la tête et 2 pour la patte.
A nouveau, j’ai testé ce nouvel apprentissage en faisant centrer la patte du robot dans son champ
visuel (figure 2.21).
Fig. 2.21: Illustration du robot ayant sa patte dans son champ visuel local
24
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
Fig. 2.22: En jouant sur l’ambigüité de la perception, le robot voit la main de l’humain comme si c’était sa patte.
Le robot agissant comme un homéostat, il cherche alors à corriger l’erreur entre la position de ce qu’il voit et la
position fournie à partir de ces informations motrices. Alors on observe que le robot imite le geste de l’humain
avec sa patte.
peut alors déplacer sa main dans le champ visuel du robot. La vision du robot étant ambigüe,
il ne fait pas la différence entre la main de l’humain et sa propre patte. L’architecture étant
construit comme un homéostat, il va alors chercher à garder l’équilibre entre ce qu’il voit et
ses informations motrices. A partir de la perception de la main de l’humain, le robot corrige
alors l’erreur entre la position qu’il voit et la position fournie à partir des informations motrices.
Finalement, on observe le robot imiter avec sa patte le geste que l’humain est en train de réaliser
devant lui (figure 2.22).
2.4 Discussion
Pour faire émerger un comportement d’imitation, le robot doit au préalable apprendre sa coor-
dination visuo-motrice. Dans la pratique, un tel apprentissage prend plusieurs heures, plusieurs
jours, voir plusieurs semaines suivant la complexité du robot (nombre de degrés de liberté du
bras, échantillonnage de l’espace visuel global) avant que cet apprentissage soit exploitable. Ce
temps d’apprentissage reste acceptable comparé au processus équivalent chez le jeune enfant
pour qui il dure plusieurs années. Néanmoins, malgré le temps pris par ce processus, l’appren-
tissage n’est pas toujours complet. En effet, des tests réalisés en simulation (simulation d’une
caméra montée sur deux moteurs Pan et Tilt et d’un bras à six degrés de liberté) ont montré que
certaines zones de l’espace visuel global du système simulé n’étaient pas suffisamment apprises
(figure 2.23). Par conséquent, lorsque le robot simulé devra exploiter les informations relatives
à cette zone, elles seront erronées et entraı̂nera un comportement inapproprié du bras simulé.
Des tests sur la méthode d’apprentissage ont été alors réalisés avec un stagiaire [Bailly, 2007]
afin d’essayer de limiter ce problème. Ce test consiste à faire diminuer la vitesse d’apprentissage
par paliers et à modifier le voisinage de chaque neurone des micro cartes impactées par l’ap-
prentissage. De cette manière, le premier apprentissage permet de placer en un coup (vitesse
d’apprentissage à 1 avec un voisinage impactant tous les neurones d’une micro carte) chaque
micro carte sur les zones du plan sphérique visuel qu’elles doivent coder (figure 2.24.A) cor-
respondant à un apprentissage “le bras tendu”. Puis, dans sur les paliers suivant, la vitesse
d’apprentissage et le voisinage sont diminués progressivement de manière à répartir de plus en
plus finement, les neurones de chaque micro cartes dans l’espace (figure 2.24.B, C et D).
Ce test met en évidence que l’apprentissage s’effectue dans un premier temps, d’une manière
grossière puis s’affine. L’apprentissage converge alors de manière plus efficace en répartissant
mieux les neurones dans l’espace global. Ce processus pourrait être comme une sorte de matu-
ration de structures cérébrales telle qu’elle a pu être mise en évidence pour les aires visuelles
primaires [Hubel et Wiesel, 1965] ou alors aires motrices. Des travaux en cours au laboratoire
visent à chercher de nouveaux algorithmes pour permettre au robot d’estimer la position de
25
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
Fig. 2.23: Coupe verticale de l’espace visuel global mettant en évidence une zone de l’espace non suffisamment
apprise (zone encerclée). Le squelette rouge est le bras simulé (trois degrés de liberté). Chaque point dans l’espace
est un neurone codant pour sa position dans l’espace.
A. B. C. D.
Fig. 2.24: Evolution de l’apprentissage en quatre paliers avec des micro cartes de 10 neurones A. premier palier :
eps = 1 et voisinage = 5 B. second palier : eps = 0.25 et voisinage = 4 C. troisième palier : eps = 0.05 et
voisinage = 3 D. quatrième palier : eps = 0.01 et voisinage = 2
son effecteur dans l’espace global sans pour autant avoir appris au préalable les associations
sur toutes les positions visuelles. Ces travaux reposent sur un nombre limité d’attracteurs (une
dizaine) définis dans l’espace moteur. Ces attracteurs sont associés à des positions visuelles par-
ticulières sur une carte visuo-motrice. Alors, lorsque le bras doit rejoindre une position visuelle,
le stimulus visuel va activer plus ou moins fortement les différents attracteurs voisins en fonc-
tion de leur distance au stimulus. Grâce à ce mécanisme, le robot peut découvrir de nouvelles
positions visuelles non apprises auparavant. Ces travaux permettraient d’accélerer énormément
le temps d’apprentissage. Une seconde étape d’amélioration serait d’apprendre les associations
attracteurs-mouvements du bras. Ce modèle se rapproche alors des travaux réalisés en naviga-
tion permettant à un robot de se déplacer dans l’environnement en apprenant des associations
lieux-actions qui seront utilisées dans les chapitres 4 et 5.
2.5 Conclusion
Dans ce chapitre, j’ai montré comment l’imitation pouvait émerger de mécanismes plus bas
niveau en me concentrant sur les modèles d’asservissement visuels. J’ai ensuite appliqué et testé
un modèle qui permet l’émergence de comportement d’imitation bas niveau. Ce modèle est
construit comme un homéostat qui tend à équilibrer par l’action ses informations perceptives
frustres (détection du mouvement ou de la couleur). Ce modèle implique que le robot ait au
préalable associé les positions visuelles de son effecteur avec les informations proprioceptives de
26
Chapitre 2: Du développement sensori-moteur à l’imitation : une approche
épigénétique
ses moteurs.
Les tests ont été réalisés sur un robot Aibo mécaniquement différent d’autres robots utilisés avec
le même modèle [Andry et al., 2002]. Ceci a permis de montrer que le modèle est indépendant
des propriétés mécaniques du robot. J’ai alors pu tester les limites du modèle (espace de travail
trop petit, patte trop grosse dans le champ de vision). Les résultats en simulation avec un bras
à six degrés de liberté ont mis en évidence un temps de convergence de l’apprentissage trop
important (plusieurs années).
Cependant, grâce au comportement d’imitation immédiate, le robot est capable de réaliser des
mouvements. Ces mouvements peuvent être appris sous forme de séquences pour permettre au
robot d’apprendre des comportements plus complexes.
27
Chapitre 3
Apprentissage de séquences
28
Chapitre 3: Apprentissage de séquences
B8B35DA
12345
CD8E5465372
8987ABA762 122345165372
123 125
Fig. 3.1: Illustration d’un modèle d’apprentissage de séquence associant un événement aux événements antérieurs
mémorisés.
Dans une version simple, il est possible d’apprendre une séquence en associant un événement
à l’événement précédent ; c’est-à-dire avec une mémoire d’un seul événement. Dans ce cas l’as-
sociation apprise entre deux événements est une transition. De cette manière, en présentant un
événement, le système prédira le suivant.
Ce type de modèle permet d’apprendre des séquences simples, c’est à dire des séquences com-
posées d’événements présents une seule et unique fois. En effet, dans une séquence comportant
plusieurs fois un même élément, la reconnaissance seule de cet événement ne permet pas de choi-
sir ses différents successeurs. L’événement n’est qu’un observable ambigu. Pour lever l’ambiguı̈té,
il est alors nécessaire d’ajouter de l’information.
Dans la suite, deux modèles seront proposés. Un premier modèle apprenant des séquences tem-
porelles simples et un second reposant sur un réservoir de dynamiques. Ces deux modèles per-
mettent d’aborder deux grandes familles d’apprentissage de séquences. L’une basée sur l’associa-
tion rapide d’événements et l’autre basée sur un réservoir de dynamiques. Pour finir un modèle
tirant partie de la richesse de dynamiques pour l’apprentissage rapide de séquences temporelles
complexes sera proposé.
29
Chapitre 3: Apprentissage de séquences
catégories : la mémoire à long terme et la mémoire à court terme. La mémoire à court terme est
aussi appelée mémoire de travail, car nous l’utilisons en permanence. Les éléments stockés dans
ce type de mémoire ont une persistence très courte (quelques secondes) et le nombre d’éléments
mémorisés est limité. A contrario, la mémoire à long terme permet de stocker beaucoup plus
d’éléments et sur de bien plus grandes périodes, voire de manière différente pendant toute une
existence.
On trouve également plusieurs distinctions faites selon le type d’information stockée. On diffé-
rencie la mémoire épisodique de la mémoire sémantique et la mémoire déclarative de la mémoire
procédurale. Comme son nom l’indique, la mémoire épisodique permet de se souvenir d’épisodes
particuliers de notre vie. La mémoire sémantique permet de stocker des informations beaucoup
plus abstraites comme des concepts, des symboles. La mémoire procédurale nous permet d’ac-
quérir des savoir-faire. Elle est beaucoup plus liée aux actions motrices que nous réalisons. Quant
à la mémoire déclarative, elle nous permet d’exprimer nos souvenirs.
Ici, j’ai volontairement mis à plat différentes mémoires, mais elles ne sont pas indépendantes,
elles sont chacune liées à d’autres structures cognitives, d’autres mémoires. Une question faisant
encore débat aujourd’hui est : quelles structures cognitives jouent un rôle dans quel type de
mémoire ? Mes travaux ne portant pas sur l’étude des modèles neurobiologiques de la mémoire,
je ne vais pas détailler ici les différents travaux animant les débats sur cette question. Néanmoins,
je ferai une rapide présentation du cervelet et de l’hippocampe structures inspirant certaines
propriétés des modèles que j’utiliserai dans ce chapitre.
3.1.2 Le cervelet
Le cervelet est situé en dessous des hémisphères cérébraux et en arrière du tronc cérébral, en
particulier, en arrière du bulbe rachidien et de la protubérance (figure 3.2.A).
978215B575D F8215B575D 9B148215B575D
D2F3C 62DBA1AD8 83A7AB5
123145E5C 1577375CE5
1577375CE5E12345678 12345678
F293
F293E18B857753 F293 F293E3
723753E5D
5FD578C 9D5
5627A2B65C
Fig. 3.2: A) Localisation du cervelet dans le cerveau. B) Schémas des connexions du cervelet.
30
Chapitre 3: Apprentissage de séquences
Purkinje (figure 3.2.B). Les cellules de Golgi et les cellules granulaires reçoivent les informations
de la moelle (tonus) et du cortex (motricité) par les fibres moussues. Ces deux types de cellules
sont inteconnectées via des connexions exitatrices partant des cellules granulaires vers les cellules
de Golgi et des connexion inhibitrices dans le sens inverse. Puis, les cellules granulaires projettent
leurs axones, appelés fibres parallèles, vers la couche molléculaire. La couche molléculaire est
composée d’inter-neurones inhibiteurs nommés cellules étoilées ou en corbeille qui transmettent
les activités aux cellules de Purkinje. La couche des cellules de Purkinje reçoit les informations de
la couche molléculaire et du bulbe rachidien (équilibre) via les fibres grimpantes. Les cellules de
Purkinje envoient les activités vers les noyaux cérébelleux pour les transmettre aux différentes
structures impliquées dans l’équilibre (bulbe), la motricité (cortex via thalamus) et le tonus
musculaire (moelle). Le cervelet reçoit les informations de l’intention d’un mouvement du cortex
moteur et retourne à ce dernier les caractéristiques nécessaires à l’execution de ce mouvement.
Le cervelet joue alors un rôle important dans la mémorisation de comportements moteurs [Doya,
2000] et dans le timing de ces mouvements [Ivry et al., 2002]. Le micro circuit entre les cellules
granulaires et les cellules de Golgi permettraient la gestion du timing dans le cervelet [Buonomano
et Mauk, 1994].
Fig. 3.3: A gauche : localisation de l’hippocampe (en rouge) dans le cerveau. A droite : structures composant
l’hippocampe
31
Chapitre 3: Apprentissage de séquences
Fig. 3.4: Représentation schématique du modèle de l’hippocampe extrait de [Banquet et al., 1997]
Ici, EC reçoit des informations des aires corticales et les fusionne. Ces informations sont en-
suite transmises à DG ainsi qu’aux cellules pyramidales de CA3. Dans ce modèle, on suppose
que les cellules granulaires de DG constituent une base de temps qui permettent de maintenir
une activité temporelle. Les liens récurrents de CA3 permettent la reconstruction de formes et
l’association d’une forme arrivant de EC avec une précédente forme. CA3 est donc capable d’ap-
prendre et restituer des séquences. La forme arrivant de EC est maintenue dans DG. La forme
reconnue par CA3 est ensuite intégrée par CA1 permettant la reconnaissance de configurations
ou de séquences. Puis l’information intégrée par CA1 est traitée par le subiculum.
32
Chapitre 3: Apprentissage de séquences
41 123
Fig. 3.5: Modèle d’apprentissage de séquence temporelle simple inspirée de structures de l’hippocampe. EC est
l’entrée du modèle. DG maintient l’activité d’une entrée sur EC grâce à ses cellules granulaire. CA3 apprenant
les associations entre l’état précédent maintenu dans DG et l’état courant venant de EC (connexions de un vers
tous doublement barrées). Se référer à la figure 3.8 pour le détail des connexions
Lorsqu’une première entrée est présente dans EC, celui-ci la transmet à CA3. Le groupe DG
n’ayant pas encore d’activité, CA3 n’apprend pas d’associations. L’activité sur EC est également
transmise au groupe DG. Ce dernier est organisé en bancs de neurones chacun correspondant à
une trace de l’activité sur EC. L’activité de chacun des neurones de DG suit l’équation :
1 (t − mj )2
ActDG
j,l (t) = · exp − (3.1)
mj 2 · σj
où l correspond à l’indice de la cellule activée sur la ligne, j est l’indice de la ligne, mj est une
constante de temps et σj son écart type associé. t est le temps en millisecondes. Les activités des
cellules d’une ligne (représentées figure 3.6), se répartissent ainsi au cours du temps et repré-
sentent une trace sur plusieurs secondes de l’activation “EC” passée (le temps exact dépendant
du nombre de cellules de la ligne et des constantes σj choisies).
Lorsqu’une seconde entrée est présente sur EC, l’activité est transmise au groupe CA3 qui dé-
clenche l’apprentissage d’une transition entre l’activité maintenue dans DG et l’activité transmise
par EC. La modifications des poids lors de l’apprentissage a lieu sur les connexions entre DG
et CA3 et consiste en la normalisation des activités de DG dans les poids de connexions avec le
neurone de CA3 activé par EC. L’apprentissage se fait en un coup suivant l’équation :
ActDG
DG(j,l)
j,l
DG 2
si ActDG
j 6= 0
WCA3(i,j) = ( j,l ) (3.2)
P
j,l Act
inchangé sinon
33
Chapitre 3: Apprentissage de séquences
Fig. 3.6: Courbes d’activité de 6 cellules d’un banc de neurones du groupe temporel DG activé à t = 485 s.
DG(j,l)
avec WCA3(i,j) le poids de la connexion entre le banc de neurones j du groupe DG et le neurone i
de CA3. ActDG j,l l’activité du neurone l du banc j du groupe DG. Ainsi, le rappel de la transition
apprise (c’est-à-dire l’activation du neurone sur CA3) ne pourra avoir lieu que si la somme des
activités des cellules de DG est égale à celle rencontrée lors de l’apprentissage.
41 123
41 123
789ABC887D78E
A. B.
Fig. 3.7: A) Architecture neuronale utilisée en simulation. Le rebouclage entre la sortie du groupe CA3 et l’entrée
du groupe EC est réalisé par une connexion directe entre ces groupes. B) Architecture neuronale utilisée lors
d’expériences sur des robots. Le rebouclage entre la sortie du groupe CA3 et l’entrée du groupe EC est réalisé par
l’environnement ou la proprioception.
34
Chapitre 3: Apprentissage de séquences
E145F967FAD
Par exemple, pour une séquence “0 1” apprise (figure 3.9), un neurone de “CA3” apprendra la
transition “0” → “1”.
2
91B15
1 2
A. 1234567819AB1CDE5F B.
Fig. 3.9: A) Exemple d’une séquence d’états “0 1” apprise. B) Capture d’une simulation consistant à reproduire
la séquence “0 1”. L’état “0” déclenche un évènement qui est ensuite détecté par le groupe “EC” puis mémorisé par
le groupe “DG”. Le groupe “CA3” déclenche la transition correspondante et prédit l’état suivant de la séquence
en sortie ; c’est-à-dire “1”.
A travers cet exemple très simplifié, on se rend compte que cette architecture est capable d’ap-
prendre des transitions permettant de rejouer une séquence. Les propriétés dynamiques des
neurones du groupe “DG” permettent de maintenir l’activité de l’état du passé au delà d’une
itération. Par conséquent, une séquence “0 1” peut être apprise avec des intervalles de temps
différents. Pour matérialiser ces intervalles, je noterai le caractère “-” signifiant qu’il n’y a pas
eu de nouvel évènement et que l’état précédent est maintenue en mémoire. De cette manière,
dans la séquence “0 - 1” signifie que l’activité de l’état “0” est maintenue dans le groupe “DG”
jusqu’à l’arrivée de l’état “1”. De la même manière, la séquence “0 - - 1” montre que l’état “0”
sera maintenue plus longtemps en mémoire. Ainsi, plus il y a d’états “-”, plus l’état précédent
est maintenue en mémoire. Ainsi la séquence peut être encodée de différentes manières (figure
3.10) : “0 - 1”, “0 - - - 1”, etc.
Le modèle simulé ici possède la propriété de permettre de débuter une séquence par n’importe
quel état qui la compose. Cette propriété résulte de l’encodage de séquences par apprentissage
des transitions. Par exemple, pour une séquence comme “0 - - 1 - - - - 2” , lorsqu’on donne l’état
“1” à l’architecture, elle prédira l’état “2” en respectant le timing de la transition “1”→“2” (figure
35
Chapitre 3: Apprentissage de séquences
2 2
91B15
91B15
1 1
1 2 3 1 2 3
A. 1234567819AB18CD5E B. 1234567819AB18CD5E
12345678 12345678
Fig. 3.10: Apprentissage et reproduction de la même séquence “0 1” avec deux intervalles de temps différent. A)
Séquence apprise avec deux itérations entre les états “0” et “1”. B) Séquence apprise avec quatre itérations entre les
états “0” et “1”. C) Captures des simulations lors de la reproduction de chacune des séquences. Lorsque le groupe
“CA3” déclenche la transition, le premier état “0” a été mémorisé moins longtemps (en bas à gauche) lorsque la
séquence a été apprise avec deux itérations entre les états que lorsqu’elle a été apprise avec quatre itérations entre
les états (en bas à droite).
3.11).
4
3 3
91B15
12324
2 2
1 1
1 21 31 1 5 21 25 31 35 41
A. 1234567819AB18CD5E B. 2567489A21B32ACD4E
Fig. 3.11: A) Séquence “0 1 2” apprise avec 12 itérations entre l’état “1” et l’état “2”. B) Reproduction de la
séquence “0 1 2” en débutant la séquence au milieu avec l’état “1”. 11 itérations plus tard, l’architecture déclenche
la transition “1”→”2” permettant la prédiction de l’état “2”.
Cette architecture suppose que chaque état qui compose la séquence est unique. Si une séquence
comporte deux fois un même état, alors l’architecture apprendra deux transitions à partir de
cet état. Intuitivement, on peut penser que l’architecture réalisera la prédiction de deux états.
Par exemple, pour une séquence “0 1 0 2”, le groupe “CA3” apprendra les transitions “0”→“1” et
“0”→“2”. On s’attend alors, lorsque l’état “0” est donné, que le groupe “CA3” prédise les états
“1” et “2” au même moment. Tout d’abord, l’apprentissage n’est pas seulement réalisé sur les
transitions, mais sur les intervalles de temps des transitions.
Dans le cas de tests en simulation avec l’architecture utilisée jusqu’alors (figure 3.7.A), deux
36
Chapitre 3: Apprentissage de séquences
cas de figure sont possibles. Le premier, apparait dans le cas où les deux transitions ‘0”→“1”
et “0”→“2” ont le même timing. Dans ce cas, l’architecture aura le comportement décrit précé-
demment, c’est-à-dire que le groupe “CA3” prédira les deux états “1” et “2” au même moment
(figure 3.12). Si un tel cas de figure se trouve dans une séquence plus longue, alors la suite de la
séquence dépendera du choix de l’état prédit en fonction de la compétition entre les états prédits,
du bruit en sortie, etc. Dans ce cas, le résultat ne sera pas déterministe. Le deuxième cas de figure
apparait dans le cas où la première transition a un timing plus court que la deuxième. Dans ce
cas, l’apprentissage de la deuxième transition ne s’effectuera pas. En effet, lors de la seconde
présentation de l’état “0”, le groupe “CA3” déclenchera la prédiction de l’état “1” correspondant
à la première transition apprise. Comme l’architecture considérée ici à une connexion de retour
de la sortie du groupe “CA3” vers le groupe “EC”, cette prédiction sera réinjectée en entrée. La
séquence continuera donc à partir de l’état “1” et ne correspondra pas à la séquence d’origine.
On voulait faire apprendre “0 1 0 2” et finalement on obtiendra la séquence erronée “0 1 0 1 . . .”.
Fig. 3.12: Capture d’une simulation lors de la reproduction d’une séquence complexe “0 1 0 2”. Lors de la
reproduction, L’état “0” est donné en entrée de l’architecture. Le groupe “CA3” déclenche les deux transitions
“0”→”1” et “0”→”2”.
Cette limitation du modèle ne permet donc pas d’apprendre des séquences complexes (avec la
répétition d’un même état). Pour apprendre des séquences plus complexes, il est nécessaire de
lever l’ambiguı̈té de l’état “0” en créant des états “0a” (pour la première apparition de l’état
“0”) et “0b” (pour la seconde apparition de l’état “0”) et les rendre observable. Une réponse est
apportée par les modèles reposant sur les propriétés de réservoirs de dynamiques pour apprendre
des séquences complexes.
37
Chapitre 3: Apprentissage de séquences
123451 674381
456149784
3.2.2 Le chaos
Cette branche des mathématiques permet d’étudier le comportement de certains systèmes dy-
namiques. On retrouve les systèmes chaotiques dans divers domaines comme l’étude des dyna-
miques des fluides [Tritton et Gollub, 1978], l’étude des mouvements des satellites dans le système
solaire [Kuang et Tan, 2000] ou même dans l’étude des phénomènes météorologiques [Waelbroeck,
38
Chapitre 3: Apprentissage de séquences
1995]. De la même manière, les systèmes chaotiques permettent également le contrôle de com-
portements d’un robot [Li et al., 2008].
Un système dynamique est dit chaotique s’il est sensible aux conditions initiales. La moindre
variation sur l’état initial pourra engendrer une dynamique complètement différente. Par contre,
pour le même état initial, les dynamiques seront exactement les mêmes. Cette propriété en fait
donc un système déterministe. Un système chaotique possède un attracteur composé d’une infi-
nité de cycles périodiques instables. Par apprentissage, il est possible d’associer un cycle limite
stabilisé avec une entrée [Daucé et Doyon, 1998,Quoy et al., 2001,Berthouze et Tijsseling, 2006].
Dans le cadre de la robotique, l’objectif est de faire converger le système vers une dynamique
comportementale particulière. Dans [Duran et al., 2007], les auteurs proposent un modèle repo-
sant sur des systèmes chaotiques pour le contrôle d’un oeil simulé. L’objectif de ce modèle est
de réaliser un suivi de cible.
5DF85
1231456C512DEB985
1231456789AB985
Fig. 3.14: Modèle ReST composé de deux couches. La couche primaire reçoit des activités spatio-temporelles en
entrée. La couche secondaire a une dynamique chaotique grâce aux connexions récurrentes. L’activité de la couche
primaire dépend alors des activités d’entrée ainsi que des activités de la couche chaotique. Par soucis de clareté,
toutes les connexions ne sont pas représentées ; le réseau est entièrement connecté.
Dans [Daucé et al., 2002], les auteurs proposent un modèle de réseau de neurones chaotiques
composé de deux couches interconnectées. La première couche sert d’interface d’entrée. La se-
conde couche possède une dynamique spontannée (figure 3.14). Ce modèle permet d’apprendre
des signaux spatio-temporels. Des signaux spatiaux, car il sont transmis sur une population de
neurones définissant un espace (par exemple une image visuelle projetée sur la couche d’entrée.).
Des signaux temporels, car par l’intermédiaire des connexions récurrentes et des connexions de
retour de la couche chaotique vers la couche d’entrée, les activités à chaque instant dépendent
des activités générées par les signaux précédents. Le modèle “Resonant spatio-temporal lear-
ning” (ReST) peut donc apprendre des séquences temporelles. Ce modèle apprend sur toutes
les connexions suivant une règle hebbienne à temps discret. Le timing strict (non constant)
entre les mouvements du robot et l’apprentissage limite son utilisation à des environnements
très contraints. L’apprentissage diminue la dimensionnalité de la couche chaotique pour qu’elle
converge vers un régime particulier représentatif des entrées. Cependant, il est difficile de déter-
miner quand l’apprentissage doit être stoppé le rendant inapproprié pour un robot autonome.
Par contre, les propriétés apportées par l’utilisation d’un réservoir de dynamiques sont tout à fait
intéressantes pour resynchroniser la reproduction de séquences temporelles complexes à partir
d’informations sensorielles.
Ces propriétés sont également présentes dans les echo state networks (ESN). J’ai étudié ce modèle
récent de plus près pour l’apprentissage de séquences complexes.
39
Chapitre 3: Apprentissage de séquences
AC265AC45679
1234516789 AB43C167D9
45A14EBC467F9
Fig. 3.15: Modèle d’un réseau Echo State Network (ESN) avec une couche d’entrée de dimension K, un réservoir
de dynamiques de dimension N et une couche de sortie de dimension L = 1.
Les activités des neurones du réservoir de dynamiques sont mises à jour suivant l’équation :
avec x(n) l’état du réservoir de dimension N au temps n. u(n) est l’état de la couche d’entrée de
dimension K. y(n) est l’état de la couche de sortie de dimension L. f une fonction sigmoı̈de. W
est la matrice N xN des poids des connexions entre les neurones du réservoir. W in est la matrice
KxN des poids des connexions entre la couche d’entrée et le réservoir. W f b est la matrice N xL
des poids des connexions entre la couche de sortie est le réservoir.
L’apprentissage est réalisé sur les connexions entre le réservoir et la couche de sortie. Toutes
les autres connexions ont des poids non modifiables et choisis aléatoirement. L’apprentissage est
réalisé hors ligne. Durant une première phase le réseau est entraı̂né avec le signal qu’on souhaite
lui faire apprendre. Les activités des différentes couches sont enregistrées pour permettre de
réaliser l’apprentissage, le calcul des poids des connexions modifiable (entre le réservoir et la
couche de sortie) n’est pas réalisé directement par le réseau pendant la simulation, mais en
dehors. L’apprentissage consiste à réaliser une régression linéaire sur le signal de sortie désiré.
Le calcul des poids modifiables peut être réalisé par une pseudoinverse :
′
W out = (S + D) (3.5)
40
Chapitre 3: Apprentissage de séquences
Une fois le calcul des poids terminé, ils sont chargés sur les connexions entre le réservoir et la
couche de sortie. Finalement, la séquence apprise peut être reproduite.
Le fonctionnement permet d’associer deux signaux différents. Mais il est facile de permettre au
modèle d’apprendre l’équivalent de transitions d’un état y(n − 1) à l’état y(n) suivant.
123456789A
3B163C25378DA
Fig. 3.16: Modèle d’un réseau Echo State Network (ESN) permettant l’apprentissage de séquence avec un réservoir
de dynamiques de dimension N et une couche de sortie de dimension L.
La séquence à apprendre est donnée sur la couche de sortie qui est ensuite transmise au réservoir
par les connexions de retour. En phase d’apprentissage, les connexions allant du réservoir à
la couche de sortie sont initialisées à zéro. Tous les tests présentés par la suite avec les ESNs
ont été réalisés avec les mêmes matrices de connexions, aussi bien pour les connexions internes
au réservoir que pour les connexions allant de la couche de sortie au réservoir. La valeur des
connexions internes du réservoir ont été reprises du rapport technique [Jaeger, 2001]. Il est
nécessaire que ces poids vérifient des propriétés très précises pour que la dynamique du réseau
soit suffisament riche. Le réservoir est composé de 400 neurones. La matrice des poids comporte
donc 400 ∗ 400 = 1600 poids. 98.75% des connexions ont un poids à 0, 0.625% des connexions
ont un poids de 0.4 et 0.625% des connexions ont un poids de −0.4. La distribution de ces poids
est faites aléatoirement et reste la même pour les phases d’apprentissages et de reproduction de
séquences. La séquence étant un signal “analogique” - dont les états sont des activités variant
entre 0 et 1 - la couche de sortie ne contient qu’un seul neurone. Par conséquent, entre la couche
de sortie et le réservoir il y a 1 × 400 poids qui sont assignés aléatoirement avec des poids allant
de −2 à 2.
Dans les ESNs, le réservoir de dynamiques joue le rôle de mémoire à court terme. On se rend
compte de cette propriété en observant les activités des neurones du réservoir lorsque l’on ap-
plique un signal impulsionnel en entrée (figure 3.17).
De manière à rester cohérent avec le modèle d’apprentissage de séquences temporelles vu pré-
cédemment, les états “0”, “1” et “2” sont transformés en signaux analogiques suivant la relation
suivante :
etatsequencetemporelle
etatesn = (3.6)
nbetats − 1
avec etatsens la valeur du signal, etatsequencetemporelle l’état de la séquence et nbetats le nombre
d’états total pouvant composer une séquence. Ici nbetats vaut 4. Par conséquent, ce qui était
les états “0”, “1” et “2” pour l’apprentissage de séquences temporelles devient “0”, “0.333333”
41
Chapitre 3: Apprentissage de séquences
2 4 5 5 27
23
5 6 6
4
3A4
6
7 7
5
7
3 3 6
3A5
3 7
17 17
17 3
3A6
16 16 17
16
16
15 15
15
3A7
15
14 14 14
14
4 4
6 6
7
5 5
7 6 7 6
3
7 7
3 3
17 3 3
17 17
17 17
16
16 16 16 16
15 15
15
15 15
14 14
14 14 123 14 123
3 73 63 53 43 233 3 73 63 53 43 233 3 73 63 53 43 233 3 73 63 53 43 233 3 73 63 53 43 233
8 9 6 5 7
6 9
7 2
6
9
7
2
3
7 7
2
3
2 12
3
12 3
3
12 17
12 17 17
17
17 19
19
19 16
19
16
16
16
16
15
18 18
18 18
15 15 15 14 15
3 73 63 53 43 233 3 73 63 53 43 233 3 73 63 53 43 233 3 73 63 53 43 233 3 73 63 53 43 233
4 6 4 5 4
5
5 5
7 6
6
6 6
7 3 7
3 7 7
17 3
17 3 3
16 16 17
17 17
15
15 16
16 16
14
123 14 15 15 15
3 73 63 53 43 233 3 73 63 53 43 233 3 73 63 53 43 233 3 73 63 53 43 233 3 73 63 53 43 233
8 4 4 5 5
8 8
6
5 5 6
6
9
9
9
6 6
7 7
7
2
2 7 7 2
3
3
3 12
3 3
12
17
12
17
17 17 19
17
19 16
19 16 16 16 18
3 73 63 53 43 233 3 73 63 53 43 233 3 73 63 53 43 233 3 73 63 53 43 233 3 73 63 53 43 233
Fig. 3.17: Activités de 24 neurones (sur 400 neurones) choisis arbitrairement du réservoir de dynamiques. L’activité
résulte d’un signal sous forme d’impulsion avec une activité de 1 (première courbe en haut à gauche).
et “0.666666” pour les ESNs. Par souci de lisibilité, je garderai dans cette section la notation
adoptée dans la section précédente en notant les états “0”, “1”, etc.
Lors de la phase d’apprentissage, il est indispensable de répéter un nombre suffisant de fois la
séquence que l’on souhaite faire apprendre. Ceci pour deux raisons : la première, pour que les
dynamiques du réservoir aient le temps de converger vers un état stable. La seconde pour que
l’apprentissage soit stable. Par exemple, pour une séquence simple de deux états comme “0 1” il
faut environ 50 itérations avant que les dynamiques du réservoir se stabilisent sur un état stable
(figure 3.18).
Durant la phase d’apprentissage de la séquence “0 1”, les activités des neurones du réservoir sont
enregistrées dans un fichier, ainsi que celles de la séquence à apprendre. Ensuite, le calcul des
poids allant du réservoir à la couche de sortie est réalisé suivant l’équation 3.5 avec le programme
Scilab. Pour réaliser l’apprentissage, les activités des 50 premières itérations ne sont pas prises
en compte, car durant cette période les dynamiques du réservoir ne sont pas encore stables.
Une fois le calcul terminé les poids sont chargés sur les connexions et la simulation est relancée.
Durant la phase de reproduction, la séquence est présentée durant les 50 premières itérations.
Ensuite le signal correspond aux activités que l’architecture calcule. On observe que la séquence
est correctement reproduite. Malgré le fait que le signal ne soit plus forcé, l’architecture continue
de le reproduire en sortie. (figure 3.19).
Comme le montre la figure 3.17, le réservoir est capable de maintenir une activité durant une
courte période lorsqu’il n’y a plus d’activité présente en entrée. Cette propriété peut alors per-
mettre d’apprendre un certain timing entre les états. Par exemple, avec une séquence du type
“1 - 2” où “-” représente l’absence d’activité en entrée, les ESNs sont capable de restituer la
séquence avec le même timing (figure 3.20).
42
Chapitre 3: Apprentissage de séquences
126
125
124
123
6 63B
A. 1
1
532
31 41 51 61 711
6374 639
632 637
5 638
635
1634 63B4
637
639
6
63B
632
1635 638
15 6324
1632 6
637 632
163B 1632
1534 6354
1637 632
1637
635
1634
6
1638
12 6364
1638
1632 1639
163A 6
B.1234
6 26 76 86 96 566
1639
6 26 76 86 96 566
1637
6 26 76 86 96 566
16364
6 26 76 86 96 566
15
6 26 76 86 96 566
Fig. 3.18: A) Activité du signal donné à l’architecture. B) Activités de 5 neurones du réservoir de dynamiques
choisis arbitrairement. On observe que les dynamiques mettent environ 50 itérations avant de converger vers un
état stable.
7 7
126 126
125 125
124 124
123 123
6 63B
A. 1
1 31 41 51
532
61 711 B. 1
1 31 41
6374
51 61 711
639
632 637
5 638
635
1634 63B4
637
639
6
63B
632
1635 638
15 6324
1632 6
637 632
163B 1632
1534 6354
1637 632
1637
635
1634
6
1638
12 6364
1638
1632 1639
163A 6
C. 1234
6 26 76 86 96 566
1639
6 26 76 86 96 566
1637
6 26 76 86 96 566
16364
6 26 76 86 96 566
15
6 26 76 86 96 566
Fig. 3.19: A) Activité du signal donné à l’architecture durant les 50 premières itérations. B) Activité de sortie.
Durant les 50 premières itérations, ce signal est forcé par le signal en A. Ensuite le signal correspond aux activités
que l’architecture calcule. On observe que la séquence est correctement reproduite. C) Activités de 5 neurones
du réservoir de dynamiques choisis arbitrairement. On observe que les dynamiques sont identiques à la phase
d’apprentissage.
7 7 7
12345167 12345678973A16B9
126 1234567588921 126 126
8394AB7AC7DC BC3D17BCC36E4511BF6
125 125 125
A. 1
1 31 41 51 61 711 B. 1
1 31 41 51 61 711 C. 1
1 31 41 51 61 711
Fig. 3.20: A) Activité du signal fourni à l’architecture durant la phase d’apprentissage. Ce signal représente la
séquence “0 - 1” B) Activité du signal fourni à l’architecture durant la phase de reproduction. Le signal est fourni
durant les 50 premières itérations. C) Activité de sortie de l’architecture. Durant les 50 premières itérations, ce
signal est forcé par le signal en B. Ensuite le signal correspond aux activités que l’architecture calcule. On observe
que la séquence est correctement reproduite malgré que le timing soit plus long pour le premier état “0”.
43
Chapitre 3: Apprentissage de séquences
Si les ESNs permettent d’apprendre le timing des transitions, cette propriété reposant sur le
temps de convergence vers un état stable est limitée. En effet, plus ce temps est long, plus les
dynamiques du réservoir se seront dissipées jusqu’à la présentation d’un nouvel état. Comme vu
précédemment sur la figure 3.17, les dynamiques du réservoir sont maintenues durant environ
50 itérations. Maintenant, si l’on considère une séquence composée de deux états “2” et “1” avec
un intervalle de 50 itérations entre les deux états, alors on constate lors de la reproduction que
le réseau restitue la séquence à partir de sa propre dynamique, si la séquence est ré-amorcée
pendant 200 itérations. On observe aussi que le signal de sortie se déforme au fil du temps
(figure 3.21).
7 7 7
12345167 12345678973A16B9
1234567588921
126 126
8394AB7AC7DC 126 BC3D17BCC36E4511BF6
A. 1
1 311 411 511 611 7111 B. 1
1 311 411 511 611 7111 C. 1
1 311 411 511 611 7111
Fig. 3.21: A) Activité du signal fourni à l’architecture durant la phase d’apprentissage. Ce signal représente une
séquence “2 - 1” avec un intervalle de 50 itérations pendant lesquelles l’état “2” est maintenu avant de présenter
l’état “1” au réseau. B) Activité du signal fourni à l’architecture durant la phase de reproduction. Le signal est
fourni durant les 200 premières itérations. C) Activité de sortie du réseau. Durant les 200 premières itérations,
ce signal est forcé par le signal en B. Ensuite le signal correspond aux activités que le réseau calcule. On observe
que la séquence n’est pas reproduite correctement ; elle se déforme au fil du temps.
Dans la section précédente, j’ai pu montrer que le modèle d’apprentissage de séquences tempo-
relles simples permet de restituer la suite d’une séquence lorsqu’on fournit non pas le premier
état de la séquence, mais un état au milieu de la séquence. D’une certaine manière, cette pro-
priété est une resynchronisation extrêmement frustre permettant la restitution de la suite de la
séquence. Cette propriété de resynchronisation est également présente dans les ESNs, mais pour
des raisons différentes. Tout d’abord, pour que les ESNs apprennent une séquence, celle-ci doit
être fourni non pas une seule fois, mais plusieurs fois (de manière répétitive). Par conséquent,
du point de vue du réservoir, une fois les dynamiques stabilisées, il n’y a pas vraiment de début,
de fin ou même de milieu d’une séquence. De plus, une fois que les dynamiques du réservoir ont
convergé vers un état stable, elles n’en sortent plus tant que les activités d’entrée respectent la
séquence.
Pour mettre en évidence cette propriété, nous considérons une séquence plus complexe que celles
testées jusqu’ici. Le nombre d’états nbetats dans ce test est fixé à 6. En suivant la correspondance
fournie par l’équation 3.6, les différentes activités “0”, “0.2”, “0.4”, “0.6”, “0,8” correspondent
respectivement aux états “0”, “1”, “2”, “3” et “4”. Nous faisons apprendre la séquence “2 3 2 0 1 4
3 4 0”, puis lors de la phase de reproduction, le signal est redonné, mais directement au milieu
de la séquence au non pas par le premier état (figure 3.22). Une fois les dynamiques du réservoir
stabilisées, le réseau restitue correctement la séquence qui a été apprise.
Comme le montre la séquence testée ici, les ESNs permettent l’apprentissage de séquences com-
plexes ; c’est à dire des séquences dans lesquelles un même état peut apparaı̂tre plusieurs fois.
En effet, dans la séquence “2 3 2 0 1 4 3 4 0” seul l’état “1” est unique. Cette propriété vient
du fait que les dynamiques du réservoir ne dépendent pas seulement de l’activité présente en
entrée à un instant donné, mais également des états précédent qui représentent l’historique de
44
Chapitre 3: Apprentissage de séquences
7 7 7
A. 1
1 31 41 51 61 711 B. 1
1 31 41 51 61 711 C. 1
1 31 41 51 61 711
Fig. 3.22: A) Activité du signal fourni à l’architecture durant la phase d’apprentissage. Ce signal représente une
séquence composée de neuf états “2 3 2 0 1 4 3 4 0”. B) Activité du signal fourni à l’architecture durant la phase
de reproduction. Le signal est fourni durant les 50 premières itérations. On remarque que le signal fourni est
temporellement décalé par rapport à celui donné lors de la phase d’apprentissage en A. C) Activité de sortie de
l’architecture. Durant les 50 premières itérations, ce signal est forcé par le signal en B. Ensuite le signal correspond
aux activités que l’architecture calcul. On observe que la séquence est correctement reproduite.
la séquence.
Comme je l’ai montré jusqu’ici, les ESNs ont des propriétés intéressantes qui permettent d’ap-
prendre des séquences temporelles complexes. Mais dans le contexte d’apprentissage de com-
portements sur des robots que l’on souhaite autonomes et interactifs, l’apprentissage hors ligne
ne convient pas. Alors, comment apprendre en ligne avec des ESNs ? Pour l’apprentissage hors
ligne donné par [Jaeger, 2001], l’algorithme utilisé réalise une régression linéaire. L’objectif de
l’apprentissage est de trouver les poids permettant de corréler l’état des dynamiques du réservoir
avec la sortie désirée - l’état de la séquence - à chaque instant. Ceci revient à trouver les inva-
riants des dynamiques du réservoir pour chacun des états d’une séquence. J’ai alors utilisée une
descente de gradient stochastique minimisant l’erreur quadratique moyenne (LMS - Least Mean
Square) [Widrow et Hoff, 1960] qui permet de réaliser cet apprentissage en ligne. L’utilisation
de cette règle d’apprentissage avec les ESNs a déjà été discutée rendant compte que l’appren-
tissage pouvait ne pas converger ou en tout cas mettre énormément de temps [Lukosevicius et
Jaeger, 2009]. Néanmoins les auteurs montrent que l’apprentissage en ligne avec une règle de
type Recursive Least Square (RLS) converge plus rapidement mais avec un coup calculatoire
plus important. Toutefois, un apprentissage de type LMS reste possible et est utilisé dans les
tests présentés dans cette section.
L’activité Acts du neurone s de la couche de sortie est calculée suivant l’équation :
nbres
X
P ots = Actr .wrs (3.7)
r=1
Acts = f (P ots ) (3.8)
avec nbres le nombre de neurones dans le réservoir, Actr l’activité du neurone r du réservoir
et wrs le poids de la connexion entre le neurone r du réservoir et le neurone s de la couche de
sortie. La fonction f est une fonction lineaire entre 0 et 1. Les poids des connexions modifiables
sont calculés suivant :
∆wrs = ε(P ots .(Sds − P ots )) (3.9)
ε la vitesse d’apprentissage et Sds la sortie désirée sur le neurone s de la couche de sortie.
Etant donné que l’apprentissage est en ligne, il est nécessaire de modifier l’architecture de manière
à ce que le réseau de neurone n’apprenne pas d’informations erronées. En effet, jusqu’ici, les
activités fournies étaient imposées à la couche de sortie, puis grâce aux connexions de retour
45
Chapitre 3: Apprentissage de séquences
vers le réservoir, ces activités alimentaient les dynamiques. Dans le cas de l’apprentissage en ligne,
la couche de sortie ne fournit pas directement les états de la séquence au réservoir. J’ai séparé
le signal correspondant à la séquence que je désire faire apprendre et le signal qui alimente
les dynamiques du réservoir (figure 3.23). En phase de reproduction, le réservoir est d’abord
alimenté par la couche d’entrée en attendant que les dynamiques aient convergées vers un état
stable, puis le réservoir est alimenté par la couche de sortie par l’intermédiaire des connexions
de retour vers la couche d’entrée. De plus, les couches d’entrée et de sortie ne comportent plus
un unique neurone, mais chacune un vecteur de neurones, car les états d’une séquence ne sont
plus les activités du neurone d’entrée, mais l’activation ou non de neurones dans un vecteur de
neurones. Enfin, de manière à stopper l’apprentissage de la couche de sortie lorsqu’il n’y a plus
de signal imposé, une connexion de neuromodulation est ajoutée : si cette neuromodulation est
à 1, alors la couche de sortie apprend, si elle est à 0 alors l’apprentissage est arrêté.
AC265AC45679
3
45A14EBC467F9
1234516789 AB43C167D9
214BB3CB2
Fig. 3.23: Modèle modifié des ESNs qui permet l’apprentissage en ligne de séquences temporelles complexes.
L’apprentissage est réalisé sur les connexions entre le réservoir et la couche de sortie suivant la règle LMS.
Pour ce test, je reprend l’exemple de la séquence complexe “2 3 2 0 1 4 3 4 0” où chaque état est
l’index du neurone dans les vecteurs des couches d’entrée et de sortie. Comme l’apprentissage
est réalisé durant 1500 itérations, la connexion de retour entre la couche de sortie et la couche
d’entrée est complètement inhibée par la neuromodulation. Après l’itération 1500, la séquence
n’est plus fournie par le professeur et la neuromodulation tombe à 0. Par conséquent le système
calcule les états prédits en sortie uniquement à partir des dynamiques du réservoir.
S’il est possible d’apprendre en ligne avec un ESN, ce n’est pas sans contrepartie. En effet, pour
que l’apprentissage se fasse correctement, la vitesse d’apprentissage doit être très basse. Dans
l’exemple testé ici, la vitesse d’apprentissage ε = 0.0005 dans l’équation 3.9. Il faut environ 800
itérations (figure 3.25) de la phase d’apprentissage pour que les poids des connexions modifiables
entre le réservoir et la couche de sortie se stabilisent. Par conséquent, comme la séquence est
composée de 8 éléments, il faut donc la présenter environ 100 fois avant qu’elle soit correctement
apprise.
En conclusion, les ESNs permettent d’apprendre des séquences temporelles complexes. Le réser-
voir de dynamiques apporte des propriétés intéressantes qui permettent de maintenir en mémoire
un état (mémoire à court terme), ainsi que la possibilité de resynchroniser sur une séquence qui
ne débute pas son premier état. Néanmoins, dans le contexte d’apprentissage de comportement
46
Chapitre 3: Apprentissage de séquences
21 21 21
A A A
9 9 9
8 8 8
7 7 7
6 6 6
5 5 5
4 4 4
3 3 3
2 2 2
A. 1
1 31 51 71 91 211
1
2571 2591 2611 2631 2651
1
5A11 5A31 5A51 5A71 5A91 6111
7 7 7
B.21
1
1 31 41 51 61 711
1
21
7451 7461 11 31 41
1
4911
21
4931 4941 4951 4961 8111
A A A
9 9 9
8 8 8
7 7 7
6 6 6
5 5 5
4 4 4
3 3 3
2 2 2
C. 1
1 31 51 71 91 211
1
2571 2591 2611 2631 2651
1
5A11 5A31 5A51 5A71 5A91 6111
Fig. 3.24: A) Séquence “2 3 2 0 1 4 3 4 0” que l’on désire faire apprendre à l’architecture. A partir de l’itération 1500,
la séquence n’est plus fournie par le professeur. L’architecture calcule les états de sortie à partir des dynamiques du
réservoir. B) Activité de la neuromodulation qui permet d’inhiber les connexions de retour durant l’apprentissage
lorsque son activité est à 1. A partir de l’itération 1500, l’activité tombe à 0. Par conséquent, les liens de retour
ne sont plus inhibés et l’apprentissage est stoppé. C) Activité de sortie de l’architecture. Jusqu’à l’itération 1500
les états actifs sont ceux fournis par le professeur. A partir de l’itération 1500, les états sont ceux qui sont prédis.
On observe alors que la séquence est correctement reproduite, même au bout de 5000 itérations.
sur des robots, le modèle souffre de quelques faiblesses. La première est qu’il est nécessaire que la
séquence soit compacte ; c’est-à-dire que le temps entre deux états doit rester très court. De plus,
dans le cas de l’apprentissage en ligne, le temps d’apprentissage est très important et implique de
répéter un grand nombre de fois la même séquence en boucle. Dans le cadre d’un apprentissage
avec un humain, ce nombre de répétitions peut être fastidieux. De la même manière, les ESNs
restituent la séquence en boucle et pas seulement une seule fois. De plus, il est assez compliqué
de déterminer les poids des connexions du réservoir.
47
Chapitre 3: Apprentissage de séquences
23227
23222A
123228 232287
232224
1232286 23228
232286
232227
123227 232229
2
23228
1232276 23222A
1232227
123225 232224
1232224
232226
123224 1232229 2 2
2 622 8222 8622 7222 7622 5222 5622 4222 4622 6222 2 622 8222 8622 7222 7622 5222 5622 4222 4622 6222 2 622 8222 8622 7222 7622 5222 5622 4222 4622 6222 2 622 8222 8622 7222 7622 5222 5622 4222 4622 6222
Fig. 3.25: Evolution des poids de quatre connexions entre le réservoir et la couche de sortie choisis arbitrairement.
On observe qu’il faut environ 800 itérations avant que l’apprentissage se stabilise. La séquence étant composée de
8 éléments, cela signifie qu’il faut présenter environ 100 fois la séquence avant qu’elle soit effectivement apprise.
48
Chapitre 3: Apprentissage de séquences
92ABC59
1231456171485
5DBA859 12DB5EB5
Fig. 3.26: Le modèle SRN permet d’apprendre des séquences complexes. Ce modèle apporte un contexte permet-
tant de différencier les éléments d’une séquence ambigüe [Servan-Schreiber et al., 1989].
8729184
12324567289784
4A92684
Fig. 3.27: Le modèle TRN permet d’apprendre des séquences complexes tout en respectant le timing entres
les différents éléments d’une séquence. Comme le modèle SRN, ce modèle apporte un contexte mais dynamique
permettant de différencier les éléments d’une séquence ambigüe grâce à la connexion récurrente sur les états
internes.
Dans [Dominey, 2005], l’auteur ajoute au modèle TRN un réseau Abstract Temporal Recurent
1
Robot chien de Sony
2
Robot humanoı̈de japonais developpé par le groupe Humanoid Research Group de l’Intelligent Systems Re-
search Institute appartenant à l’AIST (National Institute of Advanced Industrial Science and Technology)
3
Robot mobile de K-Team
4
Bras robotique à base de servo moteurs
49
Chapitre 3: Apprentissage de séquences
Network (ATRN) entre la couche d’entrée et celle de sortie permettant d’apprendre des règles sé-
mantiques à partir des séquences apprises. Cette nouvelle partie du modèle mémorise un nombre
prédéfinis d’élément d’une séquence qui sont ensuite comparé aux éléments courants. En repre-
nant l’exemple donné par l’auteur, avec une mémoire de trois élément, une séquence ABCBAC
sera représentée par “u u u -2 -4 -3” avec “u” représentant que l’état n’a pas était rencontré pré-
cédemment et “-N” dénotant que l’élément a été rencontré N éléments plus tôt. Ce mécanisme
permet alors au modèle de s’abstraire du contenu des séquences. Si ce mécanisme s’applique bien
aux problèmes du langage, il peut être également pertinent pour des séquences motrices. Cepen-
dant, appliqué directement à mes travaux, l’ajout d’un tel mécanisme paraı̂t peu pertinent, car
les éléments des séquences sont des orientations.
Ces travaux montrent que l’ajout d’un contexte permet de supprimer l’ambiguı̈té des états
que l’on retrouve plusieurs fois dans une séquence. Lorsque le contexte est dynamique, il permet
d’être représentatif d’un historique plus riche (dans le sens ou cet historique n’est pas uniquement
l’entrée précédente) de la séquence. Cela permet de différencier l’élément courant de la séquence
aux précédents. D’une certaine manière, ce contexte codant pour l’historique de la séquence
permet au système de se “localiser” dans la séquence et d’une certaine manière dans le temps.
L’ajout d’information permet alors la transformation des états cachés en états observables.
50
Chapitre 3: Apprentissage de séquences
Fig. 3.28: Oscillateur à 2 neurones de type CTRNN. Le neurone de gauche est le neurone excitateur, celui de
droite est inhibiteur. Les connexions terminant par une flèche sont des connexions excitatrices. La connexion se
terminant par un rond est une connexion inhibitrice.
l’oscillateur. On remarque qu’en modifiant l’activité sur les entrées u1 et u2, une augmentation de
l’amplitude des oscillations sur les 600 premiers pas de temps, puis un écrasement de l’amplitude
par la suite.
A. B.
Fig. 3.29: à gauche : Illustration de l’activité des neurones excitateurs et inhibiteur d’un oscillateur. Au départ,
X = 1 et Y = 1, u1 = 0 et u2 = 0 et la constante de temps h = 0.1 A droite : Illustration de l’activité des deux
neurones (excitateur et inhibiteur) d’un oscillateur. Au départ X = 0 et Y = 0. La constante de temps h = 0.1.
Les entrées u1 = 1 et u2 = 1. Ces 2 entrées sont chacune incrémentées de 1 tous les 200 pas de temps. C’est le
changement d’activité sur les entrées u1 et u2 qui modifie le comportement des oscillations.
51
Chapitre 3: Apprentissage de séquences
1234556789A2 BCD5EF498
B7A82
Fig. 3.30: Modèle du réseau de neurones qui couple chacune des entrées avec un oscillateur. Toutes les connexions
ont des poids fixent.
52
Chapitre 3: Apprentissage de séquences
C3AFC42674FC
1234556789A2
E
BC7AD82
E22F34674FC2
Fig. 3.31: Modèle du réseau de neurones utilisé pour associer chaque entrées avec la configuration des oscillateurs.
Pour des raisons de lisibilité, tous les liens ne sont pas représentés. Les connexions sur lesquelles est réalisé
l’apprentissage sont en pointillées. Les poids des connexions en trait plein sont fixes.
U S = wi ∗ x i (3.14)
4 4
1234556789ABE
23C 23C
23B 23B
23A
23A
239
239 238
238 237
237 236
236 235
235 234
234 2
2 1234
1234
4
4 23C
23C 23B
23B 4 23A
23A
4 23C 239
AB D 23C
23B
23A
239
238
ABE
789
23B 23A 238
789
237
239
12345 238 237 236 235
237
236
6 1234239 238 237 236 236
6
55 55678 235 234 235
5
9ABD 2 1234 12342 12345
235
56789 234 4 234
123
234 2 2
A. ABC 1234 1234
B.
Fig. 3.32: A) Dynamique générée par 3 oscillateurs. B) Associations des états d’une séquence à différent instants
de la dynamique.
53
Chapitre 3: Apprentissage de séquences
Le groupe associatif codant les états internes devient alors l’entrée du réseau d’apprentissage de
séquence temporelle. Comme le montre la figure 3.31, une entrée permet de recruter trois neu-
rones différents. Cette quantité correspond au choix de la connectivité des liens inconditionnels
entre le groupe d’entrée et le groupe associatif.
Le mécanisme associatif assure de recruter un nouvel état interne à chaque état d’une séquence
(A, B, C ou D). La connectivité entre le groupe d’entrée et le groupe associatif a été choisie de
manière a ce que pour chaque état du groupe d’entrée il y ait le même nombre d’états internes
possibles que le mécanisme de compétition. Il est possible de changer la connectivité de ces liens
pour permettre d’avoir plus d’états internes et éviter des erreurs lorsqu’un état est répété un
grand nombre de fois dans une même séquence.
J’ai testé les mécanismes de compétition et de recrutement associatif dans une architecture
permettant d’apprendre des séquences en simulation et dans une application robotique.
54
Chapitre 3: Apprentissage de séquences
100
675689AB5CD586DF5D155C1658131B958
90
80
70
60
50
40
"C1"
30
"C2"
20
"C3"
10
"C4"
0
2 3 4 5 6 7
3445675689AB5CD56ECF5679495C1
Fig. 3.33: C1 : première architecture : apprentissage de séquences simples. Les courbes des trois jeux de séquences
sont superposées, car l’architecture a les mêmes performances. C2 : seconde architecture : apprentissage de sé-
quences complexes avec le mécanisme de compétition. La courbe montre les performances de l’architecture avec le
second jeu de séquences (variation du timing entre les états pouvant aller jusqu’à 5%). C3 : seconde architecture :
apprentissage de séquences complexes avec le mécanisme de compétition. La courbe montre les performances de
l’architecture avec le troisième jeu de séquences (variation du timing entre les états pouvant aller jusqu’à 10%).
C4 : troisième architecture : apprentissage de séquences complexes avec le mécanisme associatif. Les courbes des
trois jeux de séquences sont superposées, car l’architecture à les mêmes performances.
même état est présenté avec un timing différent, il sera associé avec deux oscillateurs différents
et donc ce n’est pas le même état interne qui gagnera.
Grâce au mécanisme de recrutement, la troisième architecture a de meilleures performances avec
100% des séquences qui ont été testées. La variation appliquée sur le timing entre les états des
séquences n’a pas d’effet sur les performances de l’architecture.
A. B.
Fig. 3.34: A) Illustration de la séquence désirée débutant à partir du point. B) La patte du robot Aibo est
manipulée passivement. Le robot apprend alors la succession des orientations à partir des informations motrices
de sa patte avant gauche.
Le robot utilisé est un Aibo ERS75 . Dans cette application, la patte avant gauche du robot est
utilisée. La séquence de gestes est apprise au robot en manipulant passivement la patte (figure
3.34.B). La figure 3.34.A montre la séquence que j’ai apprise au robot. Dans cette application
seule l’architecture de séquences temporelles complexes avec le mécanisme associatif est utilisée.
5
Robot chien de Sony
55
Chapitre 3: Apprentissage de séquences
Durant la phase d’apprentissage, la patte avant gauche du robot est manipulée passivement. Les
figures 3.35.X-apprentissage et 3.35.Y-apprentissage sont les enregistrements durant l’apprentis-
sage des positions motrices de chacun des deux moteurs de la patte du robot (un moteur pour
les mouvements horizontaux et un moteur pour les mouvements verticaux). Durant la démons-
tration du mouvement, le réseau de neurone apprend en ligne et en un coup la succession des
orientations de l’extrémité de sa patte grâce aux informations motrices de sa patte (propriocep-
tion). Donc, les entrées du modèle sont les orientations de la patte.
Pour amorcer la reproduction de la séquence par le robot, le premier état de la séquence (“bas”)
est donné au système. Comme Aibo ne peut pas être manipulé une fois ses moteur actifs, cet état
est envoyé directement au robot. Une fois la séquence amorcée, le robot rejoue seul la séquence
(figure 3.35, en haut). Avec cet état d’amorçage, le modèle prédit le prochain état ; c’est-à-dire
la prochaine orientation et envoie la commande motrice correspondante au robot.
0.95 0.65
0.8
0.7
0.6
0.9
0.7
0.55
0.85
0.65
0.6 0.5
angle
angle
angle
angle
0.8
0.5 0.45
0.6
0.75
0.4
0.4
0.7
0.35
0.55
0.3 0.65 0.3
0.5 0.5
0.1
0 0
0 0.5 1 0 0.5 1
Fig. 3.35: En haut : Aibo reproduit la séquence apprise Au centre : X-apprentissage et Y-apprentissage sont
respectivement les informations motrices horizontales et verticales pendant que le robot apprend la séquence.
X-restitution et Y-restitution sont les informations motrices durant la reproduction de la séquence. Sur la figure
Y-restitution, le premier mouvement n’est pas reproduit (non prédit), mais il est fourni par l’expérimentateur
pour amorcer la restitution de la séquence. Les axes horizontaux sont le temps en itérations et les axes verticaux
sont les angles des moteurs de la patte du robot.
3.4 Conclusion
Dans ce chapitre, j’ai présenté le cervelet et l’hippocampe comme structure du cerveau permet-
tant l’acquisition de nouveaux comportements. J’ai développé et testé deux modèles permettant
l’apprentissage de séquences temporelles. Le premier apprend en ligne le timing de séquences
temporelles simples (séquences n’ayant pas d’éléments répétés). Le second modèle repose sur les
propriétés d’un réservoir de dynamiques, il apprend en ligne des séquences complexes. Néan-
moins, les modèles reposant sur des réservoirs de dynamiques nécessitent une certaine période
de stabilisation des dynamiques. Par conséquent, durant cette période les réponses en sortie ne
56
Chapitre 3: Apprentissage de séquences
correspondent pas à la séquence apprise. Finalement, une architecture apprenant le timing d’une
séquence complexe a été proposée. Avec l’ajout de dynamiques internes, l’architecture permet
de créer des états cachés. Ceux-ci sont recrutés permettant d’économiser le nombre de neurones
pour apprendre une séquence complexe. Il permettent de lever les ambigüités des séquences (sé-
quences ayant des éléments répétés). Les tests en simulation et sur robot ont montré la nécessité
d’ajouter un mécanisme de resynchronisation permettant de retrouver les bons états cachés pour
permettre d’amorcer une séquence complexe par un état intermédiaire.
7C8A1D9EE78BE9C1874318141A13
B2A9726D1DABDB61 81AACA16D4B2CAB9416
7689AAB31C46 53B3DEB665
87431
F9126D1DD146DD272D79BA16
F9126D1DD146D37C6D79BA16
Fig. 3.36: modèle proposant les structures pouvant être impliquées dans l’aprentissage de séquences temporelles
complexes. Les dynamiques générées par les oscillateurs proviendraient des ganglions de la base via le cortex.
L’apprentissage des états internes est réalisé dans le cortex (entrée de l’hippocampe ou du cervelet). Les états
sont mémorisés dans les cellules granulaire et l’apprentissage des transitions entre les états en entrée et ceux en
mémoire est réalisé par les cellules pyramidales de la corne d’Ammon (CA3) ou les cellules de Purkinje pour le
cervelet.
57
Chapitre 4
58
Chapitre 4: Apprentissage de propriétés spatiales et temporelles
59
Chapitre 4: Apprentissage de propriétés spatiales et temporelles
(where). Ensuite, en associant chaque cellules de lieu à une direction, le robot peut se déplacer
dans son environnement (figure 4.2) [Giovannangeli et Gaussier, 2007,Giovannangeli et Gaussier,
2008].
5B5CB14CBF
E78CBF AC47D
A1B
1672895
1B332F4
B5C4F2CBF 3B76434F8
Fig. 4.2: Modèle permettant à un robot de naviguer à partir d’information visuelles. Des amers (information du
what) sont appris à partir de vues locales grâce aux images capturées par une caméra. En parallèle, les azimuts
(information du where) correspondant à la position angulaire de chacun des amers sont calculés à partir des
informations proprioceptives (boussole électronique et direction de la tête (moteur pan)). Le what et le where sont
ensuite fusionnés dans un tenseur (groupe “fusion”). Ce tenseur est ensuite appris et permet d’encoder un nouveau
lieu (groupe “lieux”). Les lieux sont finalement associés aux informations proprioceptives (boussole électronique)
du robot.
60
Chapitre 4: Apprentissage de propriétés spatiales et temporelles
Fig. 4.3: Illustration du mouvement de la caméra. A gauche, la caméra parcours un panorama complet, alors qu’à
droite elle parcours la moitié d’un panorama. Chaque neurone du vecteur autour de la caméra code pour une
position de la caméra. La zone en gris clair est le champs de capture de la caméra. La zone en gris foncé illustre
l’angle total. Les déplacements de la caméra se font selon les flèches.
en continu une mémoire dynamique. Le fait que les informations ne soient pas toutes capturées
pour la même position induit un “bruit” qui ne perturbe pas le réseau de neurones de navigation,
car on se contente de mettre en competition des cellules de lieu (leur activité change en fonction
de la trajectoire, mais pas leur rang). Pour chaque capture, l’architecture extrait des points
d’intérêts ainsi que leurs positions dans le panorama visuel.
Fig. 4.4: Exemple de point d’intérêts extraits d’un demi panorama. Le robot calcul le gradient de chaque vue
capturée. Quatre points d’intérêts sont extrais du gradient. Chacun des points d’intérêt ainsi que ses voisins est
converti en coordonnées log-polaire.
Cette transformation s’inspire de la répartition des capteurs de la rétine ainsi que de l’aspect
rétinotopique de la projection de la rétine sur le cortex visuel. Par le caractère polaire, elle
apporte une certaine robustesse aux faibles variations d’assiette du robot (effet de quantification
360˚/32 ≈ 10˚) par rapport à la rotation centrale. Le caractère radial logarithmique apporte
une certaine robustesse face aux changements d’échelle. Le résultat de cette transformation est
appelé vue locale. Les vues locales sont ensuite apprises par un vecteur de neurones. Chaque
neurone est un amer codant l’information du “what”.
61
Chapitre 4: Apprentissage de propriétés spatiales et temporelles
L’activité d’un neurone codant un amer fournit un niveau de confiance sur la reconnaissance de
la vue locale courante. L’activité lk d’un neurone k ayant appris une vue locale dans l’image du
gradient est donnée par la formule suivante :
nI IL m L
αL 1 X X
IL
lk = f ( . (1 − kwij,k − ActL
ij k)) (4.1)
nI L .mI L
i=1 j=1
L 1
f α (x) = [x − αL ]+ (4.2)
1 − αL
avec nI L et mI L respectivement le nombre de lignes et le nombre de colonnes des imagettes
I L est le poids synaptique entre le point i, j de la vue locale courante et le k eme
log-polaire. wij,k
neurones du groupe. ActL ij est l’activité du ij
eme point de la vue locale courante compris dans
L
l’intervalle [0,1]. f α (x) est une fonction d’activation qui rehausse la dynamique des réponses
(αL est un seuil de reconnaissance), avec la fonction [y]+ telle que [y]+ = y si y > 0 sinon 0.
Dans l’architecture que j’utilise, αL = 0.8 (en dessous de 0.8, l’activité des neurones n’est pas
significative. La dynamique est entre 0.8 et 1).
6789A761B43 12345
B2183F1AE43 841CB3DE
Fig. 4.5: Illustration de la chaı̂ne de traitement d’un point d’intérêt. A partir du gradient d’une capture, un amer
est appris à partir de l’imagette en log-polaire. L’apprentissage est réalisé sur les connexions en pointillés. Pour
des raisons de lisibilité, toutes les connexions ne sont pas représentées.
avec RkL un signal de recrutement du neurone k qui vaut 1 lors de l’apprentissage, sinon 0. Le
principe du recrutement d’un neurone k du groupe consiste à faire passer RkL à 1 en même
temps qu’un signal de vigilance V tel que V = 0, 1. Pour que le robot apprenne rapidement,
l’apprentissage est ici réalisé en un coup. Néanmoins, le signal de recrutement RkL pourrait être
calculé de manière à permettre d’adapter un neurone déjà appris, ou alors d’en recruter un
nouveau.
En plus de cette information, la position de chaque point d’intérêt dans le panorama visuel est
extraite et recalée par rapport à un référentiel absolu en tenant compte de la rotation de la
caméra. Le référentiel est fourni par une boussole électronique donnant la distance en degrés
par rapport au nord. La boussole agit alors comme une proprioception du robot. Avec un tel
mécanisme, quelque soit la rotation du robot dans un même endroit, il traitera le même pano-
rama. La position des points d’intérêt dans un panorama visuel fourni les azimuts codant une
information de “where”.
62
Chapitre 4: Apprentissage de propriétés spatiales et temporelles
spatiale des amers. Cette fusion réalise un ET analogique. Les neurones du tenseur caractérisent
un point (ou une région) dans l’espace landmark-azimut. L’apprentissage d’un neurone du tenseur
suit les équations suivantes :
LM
∆ωak = Γ1 (ll (t)) · RkM (t) (4.4)
AM
∆ωlk = Γ1 (θa (t)) · RkM (t) (4.5)
avec Γ1 (x) = 1 si x ≥ 1 sinon 0 (fonction rampe). ll et θa respectivement le leme landmark et
le aeme azimut. RkM est un signal de recrutement du keme neurone. RkM = 1 si le neurone k est
le neurone recruté, sinon 0. Une fois l’apprentissage réalisé, les activités des neurones mk du
tenseur M codent la configuration spatiale d’amers d’un panorama appris. Chaque élément du
tenseur répond proportionnellement au couple landmark-azimut suivant :
nL
X
LM
Lk (t) = ωlk (t).ll (t)
l=1
nΘ
X
AM
Ak (t) = ωak (t).θa (t)
a=1
LM (t) et ω AM (t) respectivement les poids des connexions entre le leme landmark et le keme
avec ωlk ak
neurone du tenseur et des connexions entre le aeme azimut et le keme neurone du tenseur (ωlk LM
AM
et ωak sont initialisés à 0). nL et nΘ sont le nombre de landmarks et azimut recrutés.
De plus, la réponse de chaque neurones mk du tenseur dépend d’une mémoire à court terme
(STM) et des nouveaux landmarks Lk et azimuts Ak . La mémoire à court terme est utilisée pour
maintenir les activités du tenseur M durant tout le traitement d’un panorama complet.
h i+
M
mk (t) = max Lk (t) · Ak (t), λ (t).mk (t − dt ) − rk (t) (4.6)
avec rk (t) un signal de remise à zéro de l’activité du neurone k du tenseur au début de l’explo-
ration du panorama visuel. Un terme d’oubli λM (t) est appliqué sur l’activité du keme neurone
du tenseur. Une fois que le panorama visuel entier est appris, le robot apprend une cellule de
lieu p. Cet apprentissage est réalisé en un coup suivant la règle suivante :
P
∆ωkp = Γ1 (mk (t)) · RpP (t) (4.7)
P poids binaires initialisés à 0 des connexions entre le k eme neurone du tenseur et le peme
avec ωkp
neurone du vecteur des cellules de lieu. L’algorithme de recrutement est le même que celui utilisé
dans les équations 4.4 et 4.5. L’activité d’une cellule de lieu résulte du calcul de la distance entre
le tenseur appris et le tenseur courant. Donc l’activité Pp de la peme cellule de lieu est exprimée
comme suit :
nM
!
1 X
P
Pp (t) = ωkp(t)mk (t) (4.8)
Wp
k=1
avec P (t)
ωkp qui exprime le fait que le keme
neurone du tenseur a été utilisé pour encodé la cellule
de lieuPp. Le nombre de neurone du tenseur utilisé par la peme cellule de lieu est donné par
Wp = nk=1 M P avec n
ωkp M le nombre de neurones recrutés dans le tenseur.
63
Chapitre 4: Apprentissage de propriétés spatiales et temporelles
12 32
Fig. 4.6: A) Salle d’expérience avec 25 marques à égale distance (90 cm). 25 lieux sont appris régulièrement
sur chaque marque. B) Test de la réponse des cellules de lieu appris en A. Une compétition entre tous les lieux
engendre le pavage de l’environnement.
Un lieu appris dans un lieu A réponds à son maximum en A et créé un large champ décroissant
autour de A. Un tel système est capable d’apprendre plusieurs régions de l’environnement.
Par conséquent, le robot peut se localiser visuellement grâce aux cellules de lieu. Ces cellules
réagissent dans des régions particulières de l’environnement.
382781A68F8A23772E57
DCCE2F855D271A68F8A2B2F
13D55842772E57FA45
12334325
BA42B2F
62738249
D55A18DF8A5
38249BA42B2F5
1ABCD55
68E21F8A
Fig. 4.7: Apprentissage associatif de lieux-mouvements. Une fois l’apprentissage réalisé, la cellule ayant la plus
forte activité permet de restituer le mouvement que le robot doit réaliser.
L’activité Acta du neurone a du groupe des associations lieux-mouvements est calculé suivant
64
Chapitre 4: Apprentissage de propriétés spatiales et temporelles
l’équation :
nblieux
X
P ota = Actl .wla (4.9)
l=1
Acta = f (P ota ) (4.10)
avec nblieux le nombre de neurones codant les cellules de lieu, Actl l’activité du neurone l du
groupe des cellules de lieu et wla le poids de la connexion entre le neurone l du groupe des
cellules de lieu et le neurone a du groupe des associations lieux-mouvements. La fonction f est
une fonction identité.
L’apprentissage est réalisé sur les connexions entre les cellules de lieu et le groupe des associations
lieux-mouvements suivant l’équation :
nbdirection
X
Sda = Actd .wda (4.11)
d=1
∆wla = wla + ε(Sda ∗ Actl ) (4.12)
avec ε la vitesse d’apprentissage. Ici ε = 1, car nous sommes dans le cadre d’un apprentissage
en un coup. Sda est l’activité de la sortie désirée pour le neurone a du groupe des associations
lieux-mouvements calculée à partir de l’activité Actd du neurone d du groupe des directions. wda
est le poids entre les groupes des directions et le groupe des associations lieux-mouvements.
65
Chapitre 4: Apprentissage de propriétés spatiales et temporelles
a. b.
Fig. 4.8: Apprentissage de trajectoires par correction de la dynamique du robot. Le robot avance à vitesse constante
de manière réflexe. Le professeur corrige le robot en modifiant la dynamique du robot. Chaque flèche représente une
correction appliquée par le professeur. Donc le robot apprend une association entre le lieu et le mouvement courant.
A) L’architecture apprend une ronde précise et après un tour de correction par le professeur (flèches blanches)
le robot reproduit la trajectoire de manière autonome (flèches noires). B) Après trois tours d’apprentissage (les
flèches montrent où le robot a appris de nouvelles associations lieux-mouvements), le professeur ne corrige plus le
robot.
La figure 4.8.B montre quelle trajectoire (lignes orange) le robot doit suivre ainsi que les endroits
où il a appris de nouvelles associations lieux-mouvements (flèches bleues). Dans cette expérience
le robot apprend non pas sur un seul tour, mais jusqu’à ce qu’il reproduise la trajectoire de
manière autonome : trois tour dans cette expérience. Au fur et à mesure des tours, le professeur
à de moins en moins besoin d’intervenir pour apprendre au robot à suivre la bonne trajectoire.
Les erreurs de généralisation du premier tour servent à contre balancer les premiers vecteurs
appris de manière à créer un véritable bassin d’attraction grâce à la compétition entre lieux.
3
12B
12A
129
128
127
126
125
124
123
1
3
F
12B
12A
129
1 123 128
127 4
C
124 125 126
126 127 125
CDEF 128 129
12A 12B
124
123
EF
C3 31
CD
9A29AB2C597B26
C211D6E5
2AB567D7B26 7D78B675A658 1234515678
Fig. 4.9: Modèle permettant d’apprendre des séquences temporelles complexes de mouvements. Lors de la détection
d’un nouveau mouvement à partir des informations proprioceptives (boussole électronique), le nouvel état (nouvelle
orientation au sol) est associé à la dynamique interne pour créer un nouvel état caché. Cet état permet alors
l’apprentissage d’une nouvelle transition avec l’état précédent (présent en mémoire à court terme). Le nouvel état
est ensuite gardé en mémoire à court terme à la place du précédent. A chaque nouveau mouvement détecté, le
contexte fourni par la dynamique interne est appris sur les connexions entre le neurone de resynchronisation actif
et les neurones de “contexte”. De cette manière, lors de la restitution de la séquence, ce mécanisme permet de
resynchroniser la dynamique interne permettant alors de retrouver le bon état caché
66
Chapitre 4: Apprentissage de propriétés spatiales et temporelles
6C1D72FE2412
A51E2FE2
E
21
2
1
3
12B
12A
129
CDEFC5 128
127
126
125
124
123
1
3
12B
12A
129
1 123 128
127
124 125 126 CDEFC4
126 127 125
128 129 124
CDEFC3 12A 12B 123
31
891DC327C1E2412
Fig. 4.10: Modèle permettant d’apprendre les états de la dynamique interne en les associant à des neurones de
resynchronisation. A chaque événement, le neurone de resynchronisation actif passe au suivant. Lorsqu’un signal
externe est détecté, alors il active le neurone correspondant à ce signal. L’apprentissage des contextes est réalisé sur
les poids des connexions double barrées (connexions de un vers tous). Les flèches non barrées sont des connexions
de un vers un dont le poids est fixe.
A chaque événement, le neurone actif dans le groupe passe au suivant. Lorsqu’un signal externe
est actif, alors le neurone correspondant devient actif.
L’activité Actc du neurone c du groupe apprenant les contextes à partir des neurones de resyn-
chronisation est calculée suivant l’équation :
nbresynchro
X
Actc = f ( Acti .wic ) (4.13)
i=1
2
Robot chien de Sony
67
Chapitre 4: Apprentissage de propriétés spatiales et temporelles
avec nbresynchro le nombre de neurones dans le groupe de resynchronisation. Acti est le ieme
neurone du groupe de resynchronisation et wic le poids de la connexion entre le ieme neurone
du groupe de resynchronisation et le ceme neurone du groupe de contexte. f () est une fonction
identité.
Lorsqu’un nouvel événement arrive et que le neurone de resynchronisation n’a pas encore été
associé à un contexte, alors l’apprentissage est réalisé suivant l’équation :
nboscillateur
X
P otc = Actj .wjc (4.14)
j=1
∆wic = wic + ε.P otc ; (4.15)
avec P otc le potentiel du neurone c du groupe de contexte calculé à partir des activités des
oscillateurs. nboscillateur est le nombre d’oscillateurs qui génère la dynamique interne. Actj
l’activité de l’oscillateur j dans le groupe de la dynamique interne. wjc est le poids de la connexion
entre l’oscillateur j et le neurone c du groupe de contexte.
68
Chapitre 4: Apprentissage de propriétés spatiales et temporelles
123245675835419A7BC74
2
2
123245DB27EB74
6FB3D9A75DB27EB7
2
1
1 211 311 411 511 611 711 811
Fig. 4.11: Apprentissage d’une séquence temporelle simple. La séquence testée ici est “1 2 0”. Sur le graphique
du haut, l’état “1” est en vert, l’état “2” en bleu et l’état “0” en rouge. Sur le graphique des états internes, chaque
couleur représente un état interne différent. Les couleurs n’ont aucun lien avec les états qui composent la séquence.
Le graphique du bas montre les activités des neurones des oscillateurs qui génèrent la dynamique interne. Ici aussi
les couleurs n’ont pas de lien avec les états de la séquence ni les états internes. Lors de la reproduction, la
séquence débutera par le deuxième état : l’état “2”. La ligne en pointillés permet de mettre en évidence l’état de
la dynamique interne lors de l’apparition de l’état “2” de la séquence.
123245A85B3541CD87E8
2
1
46F73B5828978
2
1
2
12324567289784
1
A736CD856728978
2
1
1232591A62
2
1
311 411 2111 2211 2511 2611 2711
Fig. 4.12: Reproduction d’une séquence temporelle simple. La séquence qui a été apprise est “1 2 0”. L’état “1” est
en vert, l’état “2” en bleu et l’état “0” en rouge. Sur le graphique du haut on observe que l’état fourni pour amorcer
la séquence est l’état “2”. La séquence est donc amorcée non pas par le premier état qui la compose mais par un
état intermédiaire. Le second graphique montre à quel moment le signal externe est survenu pour permettre de
resynchroniser la dynamique interne. Le troisième graphique montre les états internes actifs à différents moments.
Le quatrième graphique montre les activités des neurones des oscillateurs qui génèrent la dynamique interne. Le
graphique du bas montre l’état prédit par l’architecture. On observe que lorsque l’état “2” est fourni, un état
interne est actif, mais il ne correspond pas à celui qui a été appris précédemment. A ce moment, la dynamique
interne reste inchangée et continue d’évoluer. Lorsque le signal de resynchronisation arrive, alors la dynamique
interne est modifiée revenant dans l’état à laquelle elle a été apprise précédemment. Au même moment, le signal
de resynchronisation réactive l’état “2” de la séquence et permet de réactiver le bon état interne. L’architecture
peut ensuite déclencher la prédiction de l’état suivant de la séquence, l’état “0”.
d’une séquence est détecté en entrée de l’architecture. Une question se pose : que se passe-t-
69
Chapitre 4: Apprentissage de propriétés spatiales et temporelles
il si plusieurs séquences sont apprises successivement ? Pour répondre à cette question, nous
considérons deux séquences ayant des états communs. La première est “1 2 3 4”, la seconde est
“6 7 2 3 8”.
123245A85B3541CD87E85F 123245A85B3541CD87E85
2 2
1 1
12324567289784
2 2
1 1
A736CD856728978
2 2
1 1
1 311 41 1 51 1 611 2111 2411 2511 2611 3111 3311
Fig. 4.13: Apprentissage successif de deux séquences temporelles : “1 2 3 4” (première ligne à gauche) et “6 7 2
3 8” (première ligne à droite). Ces séquences ont deux éléments communs. Chacun des éléments appris entraı̂ne
l’apprentissage d’états cachés (seconde ligne). On observe alors que les états cachés appris sont différents pour les
éléments communs. La dernière montre l’état des dynamiques internes durant l’apprentissage des deux séquences.
La figure 4.13 montre les deux séquences apprises. Dans un premier temps, les deux séquences
sont présentées successivement ; c’est à dire qu’il n’y a pas de remise à zéro de la dynamique
interne entre les deux séquences. Tout au long de cette phase, l’architecture est en mode ap-
prentissage. Pour chacun des états des deux séquences présentées en entrée, un état interne est
créé à partir du contexte de la dynamique interne au même moment. Ce contexte est lui même
associé à un neurone de synchronisation.
La figure 4.14 montre la reproduction des deux séquences. De manière à mettre en évidence le
mécanisme de resynchronisation, la phase de reproduction débute arbitrairement par la seconde
séquence. Dans un premier temps, un signal externe est envoyé permettant ensuite la resynchro-
nisation. Le premier état qui compose la deuxième séquence est alors fourni. Lors de la détection
de cet état, le contexte de la dynamique est restauré, ce qui permet de retrouver l’état interne
qui avait été appris précédemment. L’architecture peut finalement prédire l’état suivant. Grâce
à l’ajout d’une connexion récurrente entre la sortie prédite et l’entrée de l’architecture, l’état
prédit est directement détecté en entrée de la séquence. Le contexte de la dynamique est alors
restauré, l’état interne retrouvé puis détecté pour finalement prédire l’état suivant qui compose
la séquence. Cette enchainement est répété jusqu’à la fin de la séquence où il n’y aura plus de
prédiction.
Néanmoins, après la fin de l’apprentissage de la seconde séquence, il n’y a plus d’états présenté
en entrée et donc pas de transition apprise. Lors de la fin de l’apprentissage de la première
séquence, la présentation de la seconde séquence à apprendre s’enchaine directement. L’effet
constaté est donc que lorsqu’on amorce la reproduction de la première séquence, l’architecture
reproduit correctement la première séquence suivi de la seconde (figure 4.15). Une raison possible
à cet effet peut s’expliquer au niveau des neurones du groupe de resynchronisation. En effet, ils
sont tous liés à leurs successeurs à la manière d’une chaine qui a été pré câblé (figure 4.16).
70
Chapitre 4: Apprentissage de propriétés spatiales et temporelles
123245675835419A7BC75D 123245675835419A7BC75E
2 2
1 1
4FB3A5727B74
2 2
1 1
123245C3C14
2 2
1 1
6B3F9A75FB27B7
2 2
1 1
16FC2FB457B542F7
2 2
1 1
3311 3 411 3511 3611 7111 7311 7411 7511 7611 4111 4111 4311 4411 4511 4611 8111 8311 8411 8511
Fig. 4.14: Reproduction des deux séquences précédemment apprises. La seconde séquence est tout d’abord repro-
duite (à gauche), puis la première (à droite). Avant d’amorcer la reproduction d’une séquence en particulier en
fournissant le premier état, un signal externe est donné (seconde ligne) de manière à resynchroniser les dynamiques
internes pour la séquence souhaitée. La troisième ligne montre les états cachés répondant à chaque élément dé-
tecté. On remarque alors qu’ils correspondent bien à ceux qui ont été créés lors de l’apprentissage. Chaque élément
détecté en entrée déclenche la resynchronisation des dynamiques internes (quatrième ligne) afin de retrouver l’état
caché correspondant. Finalement, on observe que les éléments prédits en sortie (cinquième ligne) correspondent
effectivement bien à la séquence apprise. Chaque élément prédit est détecté en entrée grâce à un lien de retour.
123245675835419A7BC75D7EDF6A27
126
125
124
123
1
4811 8111 8811 5111 5811 9111
Fig. 4.15: Séquence reproduite lors du réamorçage de la première séquence. Une fois la séquence reproduite, on
observe que la seconde s’enchaine juste après. En effet, l’apprentissage ayant été actif durant l’apprentissage des
deux séquences, une transition liant le dernier état de la première séquence avec le premier état de la seconde
a été apprise. Par conséquent, lorsque la prédiction du dernier élément de la première séquence est détecté, il
entraı̂ne la prédiction du premier élément de la seconde séquence et ainsi de suite avec les transitions suivantes
de la seconde séquence.
Cet effet de combinaison de deux séquences successives, peut aussi être dû au fait que le groupe
“CA3” qui apprend les transitions entre les états d’une séquence, apprend justement la tran-
sition entre le dernier état de la première séquence et le premier état de la seconde séquence.
Une solution pour séparer les deux séquences serait de ne pas apprendre cette transition. Mais
ajouter un signal qui permette de déclencher ou non l’apprentissage d’une transition pose la
question de comment le système détecte le début et/ou la fin d’une séquence, mais aussi de
détecter si la transition est nouvelle ou non. Il nous est donc apparu plus correct de laisser ce
problème potentiel et de faire l’hypothèse que le lien appris problématique pourra être oublié si
des apprentissanges concurrents ont lieu.
L’apport de neurones de synchronisation permet d’amorcer la reproduction d’une séquence pas
71
Chapitre 4: Apprentissage de propriétés spatiales et temporelles
FDB3D2562
FDB3D2562
123456718593AB985
39C5ADE
2EB21523
Fig. 4.16: Représentation schématique de deux séquences apprises mettant en évidence les connexions entre les
signaux externes et le groupe de resynchronisation, ainsi que les connexions internes au groupe de resynchronisa-
tion. Les flèches en pointillé ne sont pas des connexions, mais montrent quel neurone de resynchronisation permet
de réamorcer la séquence correspondante.
seulement par son premier élément, mais également par un état au milieu. En combinant ce
mécanisme avec les états internes qui permettent de lever l’ambigüité (présence d’un même état
plusieurs fois dans une séquence), il est possible d’apprendre plusieurs séquences ayant des états
communs. On peut faire un parallèle avec des modèles de navigations reposant sur l’utilisation
d’une carte cognitive, ici le groupe de synchronisation joue d’une certaine manière le rôle d’une
carte cognitive pré câblée. Là où chaque noeud d’une carte cognitive peut représenter une tran-
sition de lieux (état spatial), ici chaque noeud de synchronisation représente un contexte de la
dynamique interne (état temporel). On peut alors imaginer que les connexions entre les noeuds
de synchronisation soient apprises de la même manière que peuvent l’être les noeuds d’une carte
cognitive. En phase d’utilisation, en faisant l’hypothèse qu’une diffusion est réalisée entre les
différents noeuds pour permettre de rejoindre un but/motivation, cette carte cognitive “tempo-
relle” pourrait permettre de choisir quelle séquence amorcer à partir de l’objectif à atteindre (De
futurs travaux visent à étudier les problématiques liées à la construction de cartes cognitives).
72
Chapitre 4: Apprentissage de propriétés spatiales et temporelles
Fig. 4.17: Expérience de navigation avec le modèle d’apprentissage de séquences temporelles. La trajectoire
claire est le chemin appris au robot. La trajectoire foncée, est le chemin reproduit par le robot. Les flèches
sur la trajectoire claire montrent où le robot a appris chaque transition entre son orientation précédente et son
orientation courante. Plus la distance entre deux changements d’orientation est grande, plus le timing entre deux
transitions est long. Les flèches foncées montrent où le robot à déclenché les prédictions lui permettant de prendre
l’orientation correspondante.
du robot. Cette dérive s’explique par la différence du contrôle du robot par le professeur et celle
du robot lui même. Durant l’apprentissage, le professeur influe sur la dynamique du robot en lui
imposant de tourner. Lors de ce processus, le professeur modifie l’orientation du robot jusqu’à ce
que le robot soit dans la bonne direction. Ce temps passé à tourner fait alors partie du timing de
la nouvelle transition qui va être apprise. Durant la phase de reproduction, le robot va déclencher
la prédiction de la prochaine direction à prendre. Il prédit donc une position angulaire cible qu’il
doit atteindre. La dérive est donc due à la différence entre le timing appris qui inclut le temps
de rotation du robot et celui qui est prédit auquel il faut ajouter le temps de rotation du robot
(en plus du temps de rotation qui a été appris) suite à cette prédiction.
4.3 Conclusion
Dans ce chapitre, j’ai présenté deux architectures permettant d’apprendre une même tâche de
navigation. La première permet d’encoder le comportement sous forme d’associations lieux-
mouvements. Les expériences ont montrées que la précision de la trajectoire est de l’ordre de
l’étendue des réponses des cellules de lieux. La trajectoire est donc directement dépendante de
leurs profils. Cependant, la résolution et le nombre de cellules de lieux peuvent-être changés [Gio-
vannangeli et al., 2006,Giovannangeli, 2007]. Travaillant en environnement ouvert, la trajectoire
du robot peut facilement être modifiée par une personne passant prés du robot (évitement
d’obstacle). La seconde architecture encode la trajectoire sous forme de séquences temporelles
de mouvements. Dans le cadre de l’application de l’apprentissage de séquences temporelles com-
plexes appliquée à une tâche de navigation, j’ai proposé un mécanisme de resynchronisation des
dynamiques internes à partir de signaux externes. Ce mécanisme permet alors de retrouver les
états cachés précédemment appris. Ceci permet également d’amorcer une séquence par un état
au milieu, ou même d’apprendre plusieurs séquences. Avec une telle architecture, le robot est
73
Chapitre 4: Apprentissage de propriétés spatiales et temporelles
sensible aux perturbations (pas d’évitement d’obstacles). L’ajout d’une intégration de chemin
pourrait permettre au robot de revenir sur la trajectoire en cas de perturbations. Cependant,
un mécanisme de resynchronisation de la séquence sensori-motrice reste nécessaire pour que le
robot puisse retrouver la séquence sensori-motrice et correctement restituter la trajectoire.
Chacun des deux modèles s’inspirent de propriétés de la boucle hippocampique et permettent à
un robot d’apprendre un même comportement suivant une stratégie spatiale ou temporelle. Cette
inspiration commune soulève alors la question de la cohabitation de ces stratégies dans un seul
modèle pour permettre à un robot d’apprendre et de restituer un comportement spatio-temporel.
74
Chapitre 5
75
Chapitre 5: Fusion des comportements
Dans le cadre de ma thèse, j’ai développé un modèle permettant d’apprendre des séquences gestes
sur un robot Aibo1 , ainsi que des séquences de déplacements sur un robot mobile Robulab102
équipé d’une boussole électronique jouant le rôle de proprioception. J’ai également développé
un modèle de navigation qui permet à un robot de se déplacer en associant des lieux à des
mouvements.
Les modèles développés s’inspirent tous les deux de structures du cerveau et plus particuliè-
rement de la boucle hippocampique et du cervelet. Ayant une source d’inspiration commune,
comment ces deux modèles peuvent-ils cohabiter dans un seul et unique système ? Exécuter
ces deux mécanismes (séquences et associations sensori-motrices) en parallèle pose également la
question de la fusion et/ou de la sélection des réponses de chacun. En effet, alors qu’à chaque
instant chacun peut délivrer une réponse correspondant à un mouvement à réaliser, comment
une architecture peut-elle permettre à un robot de réaliser un comportement cohérent ?
La sélection de l’action est un mécanisme dont le rôle est de choisir l’action à réaliser parmi
un ensemble d’actions possible en fonction d’un objectif donné [Tyrrell, 1993, Girard et al.,
2002,Girard et al., 2005]. On peut distinguer différents types de travaux permettant la sélection
de l’action. Il y a les travaux qui se basent sur la construction et l’utilisation d’un plan permettant
alors de planifier ses actions en fonction d’un but à atteindre. Dans le cadre d’études dans
une tâche de navigation, les plans sont représentés sous la forme de cartes représentant plus
ou moins explicitement l’environnement. On peut alors distinguer les cartes métriques et les
cartes topologiques [Meyer et D., 2003]. D’autres travaux proposent des modèles réposant sur
un ensemble de comportements hierarchisés ayant chacun des priorités [Brooks, 1986]. Enfin des
modèles proposent d’apprendre par renforcement les bonnes actions prédites pour une situation
particulière [Khamassi et al., 2006].
5.1 Subsomption
Une approche dite classique de l’intelligence artificielle repose sur une décomposition en modules
chaı̂nés traitant les flux sensoriels en série. Les flux sensoriels sont récupérés par un module de
perception qui sont ensuite transmis à un module de représentation interne de l’environnement,
puis à partir de cette représentation, un module de plannification détermine l’action à réaliser
qui est donné à un module de contrôle des degrés de liberté du robot. Par conséquent, plus le
comportément désiré est complexe, plus les traitement réalisés sur les flux sensoriel deviennent
long et complexes. Les architectures de subsomption proposent une structure hiérarchique de
modules comportementaux simple et en parallèle. Les différents niveaux hierarchiques ont chacun
une priorité sur les autres garantissant ainsi la viabilité du système. Chaque module reçoit les
flux sensoriels et chacun délivre une réponse sur l’action à réaliser. Les calculs réalisés sur les
flux sensoriels sont extrêmement simple et rapide permettant de respecter des contraintes de
temps, tout en permettant à un robot d’exhiber des comportements complexes.
Dans [Brooks, 1986], l’auteur décompose le comportement d’un robot mobile en plusieurs niveaux
de comportements parmi lesquels :
– 0 : évitement d’obstacles
– 1 : naviguer sans but/motivation particulière
– 2 : explorer l’environnement en se dirigeant vers des lieux visible
– 3 : Construire une carte de l’environnement et planifier les trajectoires d’un lieu à un autre.
– 4 : Notifier de changements dans l’environnement “statique”
1
Robot chien de Sony
2
Plateforme mobile de Robosoft
76
Chapitre 5: Fusion des comportements
Dans ces travaux, ces différents comportements sont hiérarchisés du niveau 0 (bas niveau, com-
portement réflexe) au niveau n (haut niveau) comme le montre la figure 5.1 tiré de l’article de
l’auteur.
12345671
1234567C
1234567B
1234567A
12345679
Fig. 5.1: Schémas d’architecture de subsomption. Les comportements sont organisés en hiérarchie. Ceux de bas
niveau on des priorités plus hautes que ceux de haut niveaux.
Les comportements de bas niveaux ont alors une priorité plus forte que ceux de haut niveau. En
effet, à choisir entre entrer en collision avec un obstacle et continuer à explorer l’environnement,
il est préférable pour le robot d’éviter l’obstacle.
Ce type de modèle implique de définir a priori les priorités des comportements sur les autres.
Dans le contexte d’étude d’un modèle développemental pour un robot, je ne fais pas d’hypothèse
sur la priorité d’une boucle sensori-motrice sur une autre. Je pars de l’hypothèse que le processus
de sélection de l’action est appris pendant le développement. Néanmoins, ce type d’architecture
offre des éléments intéressants sur les aspects de temps réel et de contraintes de temps de réaction
que nous avons introduit dans notre simulateur (voir chapitre 6)
77
Chapitre 5: Fusion des comportements
Fig. 5.2: Illustration des ganglions de la base dans le cerveau ainsi que ces différents composants. Image Marc
Savasta (INSERM Grenoble)
Néanmoins, le circuit indirect joue également un rôle en modulant le circuit direct au niveau du
GPi à travers les noyaux sous-thalamique.
2A6
AB4C4D58
8AE4A5D
E
41CE218
7C4748 1234567
82589AB4C4DEF5
Fig. 5.3: Modèles mettant en avant les circuits direct et indirect dans les ganglions de la base. A) Le circuit direct
est composé d’une boucle impliquant le cortex, le striatum, le GPi, le thalamus et reviens vers le cortex. B) Le
circuit indirect est composé d’une boucle impliquant le cortex, le striatum, le GPe, le STN, le thalamus et reviens
vers le cortex.
5.3 Acteur-critique
Dans les travaux de Schultz réalisés sur le singe, l’auteur a mis en évidence que les neurones do-
paminergétiques déchargent d’une manière similaire à l’algorithme d’apprentissage TD [Schultz,
1998]. En neurosciences computationnelles, les ganglions de la base ont souvent été modélisés
78
Chapitre 5: Fusion des comportements
par un modèle appelé Acteur-Critique [Joel et al., 2002]. Comme son nom l’indique, ce modèle
se compose de deux parties principales : la partie acteur et la partie critique (figure 5.4). La
partie acteur représente l’ensemble des commandes motrices pouvant être exécutées. Quant à la
partie critique, elle a la fonction de fournir un signal de renforcement (positif ou négatif) qui
permet d’évaluer les actions réalisées et ainsi sélectionner les actions motrices appropriées.
A313B
123456 26737854
466456912
2CDD1EF4
DC36724
4E76CEE4D4E3
Fig. 5.4: Le modèle acteur-critique comporte deux parties. L’acteur propose les différentes actions à exécuter à
partir d’états arrivant d’autres structures comme l’hippocampe à travers le subiculum. L’évaluateur ou critique
reçoit également les états, mais permet de prédire quelle sera la récompense pour chaque action potentiellement
exécutable. L’estimation de la récompense va alors permettre de sélectionner quelle action sera réalisée menant à
la récompense la plus forte.
79
Chapitre 5: Fusion des comportements
80
Chapitre 5: Fusion des comportements
2C24B 1233456738
1234 A854BB62CC6B58
9A6BC2924BC
567A6 7DE9274F6E8
A1
12565
C8BC4A27498DA
6CC4526924BC 6CC4526924BC
E28D74D878B9C 9A6BC2924BC74D878B9C
74D878B9C
DC24BCE85924B
3A43A24583924B
8B2A4BB878B9
Fig. 5.5: Modèle général permettant l’apprentissage d’associations sensori-motrices et l’apprentissage de séquences.
Ce modèle est composé du traitement bas niveau de la vision, de l’hippocampe permettant la reconnaissance
multimodale, de l’apprentissage de transitions et d’un niveau sensori-moteur qui associe les réponses délivrées
par l’hippocampe aux informations proprioceptives. Ces associations permettent de délivrer les mouvements à
réaliser.
2C24B 1233456738
1234 A854BB62CC6B58
9A6BC2924BC
567A6 7DE9274F6E8
A1
12565
C8BC4A27498DA
6CC4526924BC 6CC4526924BC
E28D74D878B9C 9A6BC2924BC74D878B9C
74D878B9C
DC24BCE85924B
3A43A24583924B
8B2A4BB878B9
Fig. 5.6: Modèle permettant l’apprentissage d’associations sensori-motrices. Ce modèle est composé du traitement
bas niveau de la vision, d’une partie de l’hippocampe permettant la reconnaissance de lieux et d’un niveau
sensori-moteur qui associe les lieux reconnus par l’hippocampe aux informations proprioceptives. Ces associations
permettent de délivrer les mouvements à réaliser. Les blocs grisés sont les parties du modèle général qui ne sont
pas utilisés par l’apprentissage d’associations lieux-mouvements
d’apprendre des propriétés spatiales. L’apprentissage de séquences permet d’apprendre des pro-
priétés temporelles. Le comportement est alors encodé sous forme de dynamiques spatiales d’un
coté, et sous forme de dynamiques temporelles de l’autre.
Comment ces stratégies sont-elles utilisées ? Ces stratégies fournissent chacune leurs propres
réponses quant aux mouvements à réaliser. Comment ces réponses sont-elles traitées ? Comment
réaliser la fusion ?
81
Chapitre 5: Fusion des comportements
2C24B 1233456738
1234 A854BB62CC6B58
9A6BC2924BC
567A6 7DE9274F6E8
A1
12565
C8BC4A27498DA
6CC4526924BC 6CC4526924BC
E28D74D878B9C 9A6BC2924BC74D878B9C
74D878B9C
DC24BCE85924B
3A43A24583924B
8B2A4BB878B9
Fig. 5.7: Modèle permettant l’apprentissage de séquences temporelles. Ce modèle est composé de l’hippocampe qui
reçoit en entrée les informations proprioceptives et qui permet l’apprentissage de transitions et d’un niveau sensori-
moteur qui associe les transitions reconnues par l’hippocampe aux informations proprioceptives. Ces associations
permettent de délivrer les mouvements à réaliser. Les blocs grisés sont les parties du modèle général qui ne sont
pas utilisés par l’apprentissage de séquences.
9A6B518
2C24B 1233456738
1234 A854BB62CC6B58
1233456738 9A6B518
9A6BC2924BC
567A6 7DE9274F6E8
A1 A854BB62CC6B58
9A6BC2924BC
7DE9274F6E8
12565
C8BC4A27498DA
6CC4526924BC 6CC4526924BC
E28D74D878B9C 9A6BC2924BC74D878B9C
74D878B9C
DC24BCE85924B
3A43A24583924B
8B2A4BB878B9
Fig. 5.8: Modèle permettant l’apprentissage de séquences temporelles et l’apprentissage d’associations lieux-
mouvements en parallèle. Ce modèle est composé de deux “tranches” d’hippocampe. La première tranche permet
d’apprendre les propriétés temporelles d’une tâche. La deuxième tranche permet quant à elle l’apprentissage de
propriétés spatiales.
82
Chapitre 5: Fusion des comportements
commande
associations
lieux-mouvements
commande
somme dϕ extraction
commande dϴ commande
séquences
temporelles
Fig. 5.9: Modèle de fusion/sélection des commandes de deux stratégies. Les stratégies d’associations lieux-
mouvements et de séquences temporelles fournissent chacune une commande à exécuter. Les deux commandes
sont des positions sur un champ de neurones. Elles sont ensuite sommées dans un champ de neurones dynamiques.
Puis une dérivée spatiale est réalisée sur le champ et finalement un mécanisme d’extraction de la commande finale
envoie la commande en vitesse à réaliser. La commande dépendra à la fois de l’activité du champ et de la position
de l’effecteur dans l’espace de la commande.
avec en entrée S(φ, t) qui apporte de l’énergie au champ de neurones. Le champ réalise une
diffusion spatiale avec un noyau d’interaction W (∆φ) et il intègre temporellement son activité
grâce au premier terme. Dans mes travaux, le noyau d’interaction utilisé est une différence
de Gaussiennes (figure 5.10.B). Ce noyau permet la fusion d’entrées proches grâce à sa partie
positive et la sélection d’entrées éloignées grâce à ses parties négatives.
129 23222B
23222A
128
232229
127
232228
126
232227
125 232226
232225
124
232224
123
2
1 1232224
A. 1 71 311 371 411 471 511 B. 2 82 422 482 522 582 622
Fig. 5.10: A) Gaussienne utilisée pour créer un attracteur autour d’une position particulière. B) Différence de
gaussienne utilisée comme noyau d’interaction dans le champ de neurones dynamiques.
83
Chapitre 5: Fusion des comportements
correspondant sur le champ dérivé est extraite. Cette activité est alors une commande motrice
en vitesse à réaliser.
12345426 12345426
72BCD65A 7489A
127
1264
126
1254
125
1234
123
1 41 311 341 511 541 611
12117
12116
72EED6FAE25C47A
A5CD45A 12115
12113
812113
812115
812116
812117
1 41 311 341 511 541 611
Fig. 5.11: Exemple d’extraction de la commande motrice à partir de la sortie du champ de neurones dynamiques.
L’activité du champ de neurone (courbe à gauche) est centrée sur la position à atteindre (ligne noire continue).
Ensuite, une dérivée spatiale (courbe à droite) est réalisée sur cette activité. A partir de la position courante (ligne
noire en pointillés), alors la commande motrice est extraite (encerclée en noire) de la dérivée spatiale.
Le même mécanisme est donc utilisé lors de la présence de deux entrées (figure 5.12). Lorsque
deux entrées proches sont présentes, alors comme je l’ai montré précédemment, elles sont fusion-
nées en un seul attracteur. Dans ce cas, le mécanisme d’extraction de la commande motrice est
similaire à celui présenté au-dessus.
Quand les deux entrées sont suffisamment distantes, c’est à dire au-delà de ∆, alors deux attrac-
teurs sont en compétition. De la même manière, une dérivée spatiale est réalisée sur l’activité du
champ de neurones. Ensuite, à partir de la position courante, la commande motrice est extraite
de cette dérivée. On remarque alors que la convergence ou non vers un attracteur est dépendante
de la distance qui nous en sépare. Le robot convergera vers l’attracteur le plus proche. C’est
donc cette distance par rapport aux attracteurs qui permet la sélection de l’action à réaliser.
84
Chapitre 5: Fusion des comportements
12334567 12334567
4882194A9258B 8D75178
C97DEF32D7375A8 A7327CC78
1276
1275
1274
1273
127
1236
1235
1234
1 81 911 981 311 381 711
121138
121198
121118
A121118
A121198
12334567
7EA49A7
A121138
1 81 911 981 311 381 711
289A925
12D45A7
Fig. 5.12: Exemple d’extraction de la commande motrice à partir de la sortie du champ de neurones dynamiques.
L’activité du champ de neurone (courbe à gauche) forme deux attracteurs centrés sur les commandes fournies par
les deux stratégies association lieux-mouvements et séquences temporelles (lignes noires continues). Ensuite, une
dérivée spatiale (courbe à droite) est réalisée sur cette activité. A partir de la position courante (ligne noire en
pointillés) la commande motrice est extraite (encerclée en noire) de la dérivée spatiale. La direction vers laquelle
la position converge est alors celle qui mène à l’attracteur le plus proche.
3
19A
196
BF188195
123454367
198 3 197
19A 1952
123454367
389
311
45
A7B
81 81 81
BC43
6781
71
C436
71 71
6D1
61
9AB
61 61
D1 3
421
4EF
AEA134EFB8BF8
7
4C4B18CD62 AEA134EFB8BF8
5E
Fig. 5.13: A) L’activité d’entrée change de position toutes les 20 itérations. Durant cette période, l’entrée est
maintenue active. B) A chaque instant, l’entrée est convoluée avec une gaussienne qui permet de créer un attracteur
autour de la position d’entrée. C) L’activité de cet attracteur est ensuite traitée par le champ de neurones
dynamiques. La “bulle” d’activité du champ de neurones suit le déplacement de l’entrée.
le déplacement ne se fait pas brusquement, mais l’attracteur “glisse” vers la nouvelle position.
Dans le test réalisé ici, au départ les deux entrées sont à la même position. Puis elles s’éloignent
progressivement chacune vers les extrémités opposées du champ de neurones (figures 5.14.A
et 5.14.C). Comme le test précédent, les entrées sont convoluées par une gaussienne (figures
5.14.B et 5.14.D). Ces deux attracteurs sont alors ensuite sommés dans le champ de neurones
85
Chapitre 5: Fusion des comportements
3 19A
197
123454367
123454367
123454367
371 19A
192
389
361
3F
361
341 196 197
341
311
A
87
7BC
81 194
D4
81 196
436
71 193
36
71 195
61 1
1
D1
61 511
421 511 41 411 421 194
349
41
34E
321 411 311 321
1 311 1 21 193
21
C
1
DCFA9CF7
F
DEF87
1
A.
7
898AB1349CDEF B. A134EFB8BF8
7
1
AE 371
361
38
341
9
3 311
A7
19A 81
BC4
123454367
198 3 197
123454367 71
36
192 19A
197 61
D1
198 196 197 421 511
41
34E
196 321 411
197 195 192 1 21 311
F7
1
BF8DEF87
194 194 196
E. AEA134EFB8
1 196 193
195
1
194 194
193
1
371 1
371
3F
361
3F
361
8
341
8
311 341
7D
81 311
7D
436
71 81
4 36
71
1
61
511 61
1
421
13
41 411 511
321 41 421
34 9
1 311 411
49C
21 7 321
DEFDCFA9CF
1 1 311
C. 21
C7
898AB1349C DCFA9CF7
1
D.
7
898AB1349CDEF
Fig. 5.14: A) et C) L’activité d’entrée de chaque stratégie change de position toutes les 20 itérations. Durant
cette période, les entrées sont maintenues actives. B) et D) A chaque instant, les entrées sont convoluées avec une
gaussienne qui permet de créer un attracteur autour de la position d’entrée. E) Les activités de chaque attracteur
sont sommées dans un champ de neurones dynamiques.
Dans ce test, on observe comment deux entrées sont fusionnées ou séparées. Au début de la
simulation, les deux entrées sont fusionnées en un seul attracteur sur le champ de neurones
dynamiques. Malgré que les deux entrées commencent à se séparer, le champ garde toujours un
seul attracteur d’activité. Quand les entrées deviennent distantes (bifurcation), alors l’attracteur
sur le champ “éclate” en deux attracteurs qui correspondent aux deux entrées.
On a alors ici des propriétés de fusion et de sélection. En effet, lorsque deux entrées sont proches,
alors le champ de neurones dynamiques les fusionne en un seul attracteur. Lorsque les entrées
sont distantes, alors il y a deux attracteur. C’est finalement le mécanisme utilisé pour extraire
la commande motrice qui défini vers quel attracteur le robot va converger.
86
Chapitre 5: Fusion des comportements
1233456789AB7CC7
2CBA127CC7E
123
56789AB7CC7 1233456789AB7CC7
4CC21A4BA25C8
DA7EF32E97375BC
C2337 7FB41BA25
1233456789AB7CC7
1233456789AB7CC7
CE7517C8
B7327DD7C
Fig. 5.15: Modèle de fusion des stratégies avec l’ajout de la gestion des commandes en vitesse linéaire. Les
connexions se terminant par un cercle noir sont inhibitrices. L’architecture suit deux règles pour gérer les com-
mandes conflictuelles. La première est que la commande du professeur prend le dessus sur les deux autres stratégies.
La seconde est qu’entre les deux stratégies, celle qui demande au robot d’avancer est prioritaire.
est un élément de cette matrice qui est ensuite séparé en vecteur vitesse et vecteur d’orientations.
69DC982A64
8AE2DFC982A4
2FFCA64
D2D82698764 42D986 2D86A9C982A
DB46C36A63D2A6 DB46C36A63D2A6 4B36A6496F2D65564
12344256 4B36A64
96F2D65564 2D86A9C982A
C4428C982A4
5863F2376F6A94
7896446 C4428C982A4
58ABC8D6 D2389
5863F2376F6A94 789644658ABC8D6
4B36A6496F2D65564
DB46C36A63D2A6 42D986
DB46C36A63D2A6
789644658ABC8D6
C4428C982A4
5863F2376F6A94
Fig. 5.16: Illustration du traitement des informations motrices. Les informations proprioceptives (boussole et vi-
tesse linéaire) sont fusionnées dans une matrice multiplicative. Cette matrice est ensuite apprise dans les stratégies
de séquences temporelles et d’associations lieux-mouvements. Lors de la restitution des commandes motrices par
ces deux stratégies, chacune des matrices est séparée en deux vecteurs d’orientations et de vitesses linéaires. Ces
différentes commandes sont alors traitées comme expliqué précédemment.
Dans mes travaux, la précision des orientations traitées par chacune des stratégies est différente.
En effet, la stratégie de séquences temporelles sous échantillonne les orientations de manière plus
importante que la stratégie d’associations lieux-mouvements. La raison de ce processus est le coût
computationnel de la stratégie de séquences temporelles. En effet, la quantité de neurones codant
les transitions d’états explose rapidement. Dans mon architecture, les orientations sur 360˚sont
codées sur 18 neurones multipliés par 3 neurones codant pour la vitesse linéaire. Donc ces 54
mouvements possible sont ensuite multipliés par le nombre d’états cachés permettant de lever
les ambiguı̈tés des séquences, donc 54 ∗ 3 = 162 neurones codant les états cachés. Finalement,
le groupe des transitions est le nombre d’états caché au carré, c’est à dire 162 ∗ 162 = 26244
87
Chapitre 5: Fusion des comportements
transitions pour le groupe des transitions seulement. Il est alors difficilement imaginable de coder
les orientations sur 360 neurones. Pour fusionner/sélectionner les commandes des deux stratégies
sur un champ de neurones, les réponses doivent être au même format. C’est pour cela qu’en sortie
de la stratégie de séquences temporelles les réponses sont suréchantillonnées.
Avant de tester l’execution en parallèle des deux stratégies de navigation, il reste à résoudre
la question de la resynchronisation des dynamiques temporelles. Je propose dans la section
suivante un mécanisme de “chunking” qui permet au robot de resynchroniser la séquence de ses
déplacements par rapport à la détection d’événement complexe (le chunk).
88
Chapitre 5: Fusion des comportements
définir la situation dans laquelle se trouve le robot par rapport à la tâche qu’il doit accomplir.
5863
8AE2DFC982A4
D2D82698764
1 123456
12344256
1
7896446
58ABC8D6
Fig. 5.17: Modèle d’apprentissage de chunks à partir des informations proprioceptives et du lieu courant. Chacun
de ces chunks code pour une situation particulière du robot.
Les chunks sont donc construit à partir du lieu courant dans lequel se trouve le robot, ainsi
qu’à partir des informations proprioceptives (figure 5.17). Ces informations sont fusionnées dans
un tenseur d’états. Ce tenseur regroupe alors les différents états possibles dans lesquels le robot
peut se trouver à chaque instant. Un chunk apprend alors ce tenseur suivant l’équation suivante :
avec Γ1 une fonction rampe, ωec (initialisé à 0 et qui prend des valeurs binaire 0, 1) le poids des
connexions entre le eeme neurone du tenseur d’états et le neurone c recruté qui code le chunk.
Acte est l’activité du eeme neurone du tenseur d’état. Rc est un signal de recrutement du ceme
neurone. Rc = 1 si le neurone c est le neurone recruté, sinon 0.
L’activité Cc du ceme chunk est exprimée comme suit :
nbetats
X
Cc (t) = ωec (t)Acte (t) (5.3)
e=1
avec ωec (t) le poids de la connexion entre le eeme neurone du tenseur et le ceme chunk et nbetats
le nombre de neurones du tenseur d’états.
Les activités des chunks sont alors transmises au groupe de resynchronisation de séquence.
En phase d’apprentissage, lorsqu’un chunk devient actif, il est alors associé à un neurone de
resynchronisation. Cette association est alors réalisée suivant l’équation :
avec Γ1 une fonction rampe, ωcr (initialisé à 0 et qui prend des valeurs binaire 0, 1) le poids des
connexions entre le ceme chunk et le neurone de resynchronisation r. Actc est l’activité du ceme
chunk. Rr est un signal de recrutement du neurone de resynchronisation r. Rr = 1 si le neurone
r est le neurone recruté, sinon 0.
Une fois l’apprentissage terminé, lorsqu’un chunk devient actif, le neurone de resynchronisation
associé est alors actif et déclenche la resynchronisation de la séquence comme je l’ai décrit dans
le chapitre 4.
89
Chapitre 5: Fusion des comportements
2DA25B
2DA25B
D89258C71A925
12334567
2975A4A925
123 567
12334567
4882194A9258B
C97DEF32D7375A8
Fig. 5.18: Dispositif de contrôle ad hoc des différentes stratégies par l’utilisateur. Ce contrôle est réalisé par le
professeur à partir de boutons permettant d’inhiber une ou plusieurs stratégies.
90
Chapitre 5: Fusion des comportements
12334567
28A9127887D
12334567
12334567
4882194A9258B
C97DEF32D7375A8
12334567
8D75178B
A7327CC78
Fig. 5.19: Modèle de fusion des stratégies avec l’ajout du professeur (joystick) modifiant la dynamique du robot.
La commande du professeur a un poids supérieur (flèche plus épaisse) de manière à ce que le professeur puisse
imposer au robot la direction à prendre.
91
Chapitre 5: Fusion des comportements
56
1
2
3
4
89 8A 8B 8C
1 2 3 4
76 7
123
124
125
126
1 71 61 81 51 91 41
89 8A 8B 8C
Fig. 5.20: Apprentissage de quatre associations lieux-mouvements indépendamment des unes des autres. A) Durant
cette phase d’apprentissage, la stratégie de séquences temporelles n’apprend rien. Dans le lieu “A”, le robot apprend
à “avancer ver le bas”, en “B” à “avancer vers la droite”, en “C” à “s’arrêter” et en “D” à avancer vers le “haut”. B)
Activités des cellules de lieux correspondant aux quatre lieux appris.
robot est de nouveau kidnappé pour être remis sur le lieu “D”. Un cache est placé sur la caméra
du robot (figure 5.22).
7
56 76 1 2 3 4
2 3 123
124
125
1 4 126
1
81 88 41 48 91 98 31 38 A1
Fig. 5.21: Le robot est kidnappé pour être placé dans le lieu “D”. A) Il exécute alors le mouvement associé à ce lieu
“avancer vers le haut”. Puis lorsqu’il reconnaı̂t les lieux suivants, il exécute de la même manière les mouvements
qui y sont associés (“avancer vers la droite”, “avancer vers le bas” puis “s’arrêter”). Durant cette phase, le robot
apprend à travers la stratégie de séquences temporelles, la succession des changements de mouvements grâce aux
informations proprioceptives. B) Activités des cellules de lieux reconnues par le robot.
Ce cache empêche alors le robot de reconnaı̂tre visuellement les lieux. Par conséquent la stratégie
d’association lieux-mouvements ne peut plus fournir de réponses. Le robot navigue en aveugle
comme s’il était dans le noir (couper la lumière en pleine expérience aurait eu le même effet).
La figure 5.23.a montre la trajectoire réalisé par le robot à partir de la stratégie de séquences
temporelles seule. Les activités des transitions déclenchant les prédictions des mouvements sui-
vants montrent que le robot réalise effectivement les quatre mouvements précédemment appris
(figure 5.23.b).
Si cette expérience permet de tester comment une stratégie peut prendre le dessus sur l’autre, elle
ne permet pas de voir ce qui va se passer en cas de conflit (stratégies fonctionnant en parallèle)
92
Chapitre 5: Fusion des comportements
12 32
Fig. 5.22: Un cache est placé sur la caméra du robot de manière à ne pas permettre la reconnaissance de lieux. Le
robot est donc aveugle, comme s’il devait se déplacer dans le noir. Par conséquent, seule la stratégie de séquences
temporelles permet de restituer la trajectoire.
12 32
7
123
124
125
126
1
5811 8111 8811 4111 4811
Fig. 5.23: Le robot est de nouveau kidnappé pour être placé dans le lieu “D”. A) Trajectoire restitué par le robot
avec la stratégie de séquences temporelles. B) Activités des transitions déclenchant (lorsque l’activité est à son
maximum) successivement la prédiction des états suivants.
93
Chapitre 5: Fusion des comportements
Fig. 5.24: Trajectoire désirée dans une salle d’expérience. Cette trajectoire est apprise par le robot. La trajectoire
est composée d’un point de départ à l’arrêt (cercle noir vide), de trois directions (trois flèches) avec le robot qui
avance et d’un point d’arrêt (cercle plein) dans lequel le robot doit s’arrêter.
A.
B18819
BDF2672FA95E
BDF2672FA95E
1234567819AB18CD5E
B. 1234567819AB18CD5E C.
Fig. 5.25: A) Trajectoire (flèches noires) apprise par le robot. A chaque changement d’orientation, la stratégie
de séquences temporelles apprend une nouvelle transition et la stratégie d’associations lieux-mouvement apprend
un nouveau lieu où se trouve le robot et y associe le mouvement (orientation) courant. B) Carte des orientations
prises par le robot durant l’apprentissage de la trajectoire. C) Activité du champ neuronal correspondant aux
différentes orientations du robot.
Les deux derniers mouvements ne sont pas différenciable sur les orientations, car seule la vitesse
linéaire a changée (le robot restant dans la même orientation). Par conséquent, dans les résultats
que je présente dans cette étude, on pourra distinguer trois orientations et non quatre.
La figure 5.26 montre les différentes orientations associées à des lieux et restituées durant la
phase d’apprentissage. On peut observer que les orientations prédites par les associations lieux-
94
Chapitre 5: Fusion des comportements
B18819
BDF2672FA95E
BDF2672FA95E
1234567819AB18CD5E
A. 1234567819AB18CD5E B.
Fig. 5.26: Activités d’un champ de neurones ayant pour entrée les réponses délivrées par la stratégie d’asso-
ciations lieux-mouvements. A) Carte des orientations délivrées par la stratégie d’associations lieux-mouvements
durant l’apprentissage de la trajectoire. B) Activité du champ neuronal correspondant aux différentes orientations
délivrées par la stratégie d’associations lieux-mouvements.
A.
B18819
BDF2672FA95E
BDF2672FA95E
1234567819AB18CD5E
B. 1234567819AB18CD5E C.
Fig. 5.27: A) Trajectoire restituée par le robot (flèches noires) superposée à la trajectoire apprise (flèches rouges)
B) Carte des orientations (à partir de la boussole électronique jouant le rôle d’information proprioceptive du
robot en terme d’orientations) prises par le robot durant la reproduction de la trajectoire. C) Activité du champ
neuronal correspondant aux différentes orientations du robot.
95
Chapitre 5: Fusion des comportements
B18819
BDF2672FA95E
BDF2672FA95E
1234567819AB18CD5E
A. 1234567819AB18CD5E B.
B18819
BDF2672FA95E
BDF2672FA95E
1234567819AB18CD5E
C. 1234567819AB18CD5E D.
Fig. 5.28: Activités d’un champ de neurones ayant pour entrée les réponses délivrées par les stratégies d’associa-
tions lieux-mouvement (A. et B.) et de séquence temporelles (C. et D.) A) Carte des orientations délivrée par la
stratégie d’associations lieux-mouvements durant la reproduction de la trajectoire. B) activité du champ neuronal
correspondant aux différentes orientations délivrée par la stratégie d’associations lieux-mouvements. C) Carte des
orientations délivrée par la stratégie de séquences temporelles durant la reproduction de la trajectoire. D) activité
du champ neuronal correspondant aux différentes orientations délivrée par la stratégie de séquences temporelles.
La figure 5.28 montre les réponses (les orientations) de chacune des deux stratégies. On constate
alors que seule la stratégie d’associations lieux-mouvements a fourni l’intégralité des commandes
qui ont permis de restituer la trajectoire correctement.
Pour vérifier que la stratégie de séquences temporelles a bien appris la trajectoire et qu’elle
permet de la restituer, je kidnappe une nouvelle fois le robot pour le remettre à son point de
départ dans le même état que dans la phase d’apprentissage. J’inhibe alors les réponses de la
stratégie d’associations lieux-mouvements sans pour autant en empêcher la reconnaissance de
lieux. Par conséquent le robot n’a plus de commande à appliquer. Le professeur amorce le début
du comportement de manière à fournir le premier élément de la séquence, puis laisse le robot
libre de ses actions.
Grâce à la reconnaissance des différents lieux et des informations proprioceptives du robot (orien-
96
Chapitre 5: Fusion des comportements
tation et vitesse linaire), les différents chunks correspondants s’activent permettant ainsi la re-
synchronisation de la séquence. La figure 5.29 montre les orientations prises par le robot durant
la reproduction de la séquence. On constate que le robot a bien réussi à reproduire la trajectoire
avec une certaine dérive. En effet, la trajectoire reproduite est dilatée par rapport à celle qui a
été apprise pour les raisons expliquées dans le chapitre 4 section 4.2.4.
A.
B18819
BDF2672FA95E
BDF2672FA95E
1234567819AB18CD5E
B. 1234567819AB18CD5E C.
Fig. 5.29: A) Trajectoire restituée avec les réponses de la stratégie de séquences temporelles (flèches noires)
superposée à la trajectoire restituée précédemment (flèches bleues) et à la trajectoire apprise (flèches rouges).
B) Carte des orientations (à partir de la boussole électronique) prises par le robot durant la reproduction de
la trajectoire avec la stratégie de séquences temporelles seule à fournir les commandes motrices. C) Activité du
champ neuronal correspondant aux différentes orientations du robot.
La figure 5.30 montre les commandes (en orientation) prédites par la stratégie de séquences
temporelles. On remarque alors que cette stratégie permet de restituer les bonnes commandes
permettant de reproduire la trajectoire correctement. Mais alors, pourquoi cette stratégie n’a-t-
elle pas répondue lors de la phase de reproduction précédente ?
97
Chapitre 5: Fusion des comportements
B18819
BDF2672FA95E
BDF2672FA95E
1234567819AB18CD5E
A. 1234567819AB18CD5E B.
Fig. 5.30: Activités d’un champ de neurones ayant pour entrée les réponses délivrées par la stratégie de séquences
temporelles. A) Carte des orientations délivrées par la stratégie de séquences temporelles durant la reproduction de
la trajectoire. B) Activité du champ neuronal correspondant aux différentes orientations délivrées par la stratégie
de séquences temporelles.
prentissage, lorsque le professeur corrige l’orientation du robot, le temps que le robot tourne
jusqu’à détecter la nouvelle orientation est compris dans le timing de la transition apprise. La
seconde raison pour origine le temps nécessaire à reconnaı̂tre des lieux. En effet, le robot ne
peut se localiser dans un lieu qu’après avoir observé son panorama visuel. Dans mes travaux,
ce temps est d’environ trois secondes. Comme décrit précédemment, la resynchronisation d’une
séquence dépend du mécanisme de chunking. L’activité des chunks dépendent eux même du lieu
dans lequel se trouve le robot. Par conséquent, durant cette période de temps, le robot continue
son mouvement courant sans que la séquence soit resynchronisée. Ces deux raisons ont alors
comme conséquence la dilatation de la trajectoire reproduite. Donc cette stratégie répond plus
tard que le timing “observé” durant la phase d’apprentissage. Finalement, comme la stratégie
d’associations lieux-mouvements répond plus tôt que celle de séquences temporelles, il est cohé-
rent que le robot exécute essentiellement ces commandes. Ce changement précoce d’orientation
est alors détecté en entrée de la stratégie de séquences temporelles qui par conséquent n’a pas eu
le temps de déclencher de prédiction. Mais ici, le test réalisé ne permet pas de se rendre compte
des propriétés de fusion/sélection du champ de neurones dynamiques.
98
Chapitre 5: Fusion des comportements
rones dynamiques en moyennant les deux réponses. Par conséquent, le robot n’appliquera pas les
commandes de l’une ou l’autre des stratégies, mais la moyenne des deux. Finalement, le robot
part alors dans une nouvelle orientation qui n’a pas été apprise, la séquence temporelle est alors
corrompue. La seule possibilité pour le robot de pouvoir récupérer la trajectoire sera alors de se
retrouver dans un lieu connu et dans la même orientation que celle associée à ce même lieu pour
réenclencher la stratégie temporelle.
B18819
B18819
BDF2672FA95E
1234567819AB18CD5E
A.
BDF2672FA95E
1234567819AB18CD5E
B18819
C.
BDF2672FA95E
1234567819AB18CD5E
B.
Fig. 5.31: A) Activités du champ neuronal correspondant aux réponses délivrées par la stratégie de séquences
temporelles. B) Activités du champ neuronal correspondant aux réponses délivrées par la stratégie d’associations
lieux-mouvements. C) Activités du champ neuronal dynamique dans lequel les réponses des deux stratégies sont
fusionnées. On remarque alors que tant que les réponses des deux stratégies sont très proches (voir identique),
les attracteurs de chacun sont fusionné en un seul. Lorsque la stratégie d’associations lieux-mouvements prédit
la commande suivante, alors les réponses des chacune des stratégies sont distantes. L’attracteur du champ de
neurones dynamiques est alors la moyenne des deux réponses.
Dans le précédent test, j’ai mis en évidence les propriétés de fusion et de moyennage des réponses
fournies par les deux stratégies, mais pas leur sélection. En effet, ici même si les réponses sont
distantes, les attracteurs sont suffisamment larges pour se fusionner. L’architecture travaille
donc sur des attracteurs en basse résolution. Pour effectivement tester les propriétés de sélection
du champ de neurones dynamiques, il faudrait que l’architecture travaille en haute résolution.
Autrement dit, le noyau d’interaction (la différence de gaussiennes) doit alors permettre de créer
des attracteurs de plus petite taille. Une conséquence de cette modification est que le robot peut
être en dehors de la zone d’attraction et donc ne plus converger vers l’attracteur. Pour permettre
au robot de rejoindre un attracteur même s’il n’est pas dans le champ d’attraction, il fera la
sélection sur l’attracteur le plus fort et le plus proche.
Pour mettre en évidence la propriété de sélection du champ de neurones dynamiques, le ro-
bot apprend une trajectoire en “T”. Pour permettre à chacune des stratégies d’apprendre deux
trajectoires différentes, l’apprentissage de l’une est désactivée pendant que l’autre apprend. De
cette manière, la stratégie d’associations lieux-mouvements apprend une première partie de la
trajectoire (figure 5.32.A) et la stratégie de séquences temporelles apprend la seconde partie
dont l’orientation finale est opposée à la précédente (figure 5.32.B). La figure 5.32.E montre les
orientations prises par le robot durant l’apprentissage.
99
Chapitre 5: Fusion des comportements
A. B.
7
7
122 121 133
126
126
125
125
BF18819 E4BB4C
124 124
123 123
1
1
8 31 3711 3311 11 3411 11 3511 3A11
C. 1234567819AB18CD5E D. 456789AB4CDE4BF8
51AB19F82
B55C8B18CD5 51AB19F82
823C232D15 592D2561234CA225
BDF2672FA95E
BDF2672FA95E
E. 1234567819AB18CD5E 1234567819AB18CD5E
Fig. 5.32: Apprentissage d’une trajectoire en forme de “T”. A) Le robot apprend une première partie du de la
trajectoire avec la stratégie d’associations lieux-mouvements : “tout droit” puis “tourner à droite”. B) Le robot
apprend la seconde partie de la trajectoire avec la stratégie de séquences temporelles (flèche noires) : “tout droit”
puis “tourner à gauche”. Cette trajectoire est superposée avec la trajectoire apprise par la stratégie d’associations
lieux-mouvements (flèches rouges). C) Activités des lieux appris durant l’apprentissage avec la stratégie d’associa-
tions lieux-mouvements. D. Etats cachés créés par la stratégie de séquences temporelles. E) Orientations (récupérée
grâce à la boussole) sur un champ de neurones prises par le robot durant les deux phases d’apprentissage.
Lors de la reproduction de la trajectoire, le robot est kidnappé pour être remis au point de départ
puis débute la reproduction de la trajectoire (figure 5.33.A). La première partie étant commune
aux deux trajectoires, les deux stratégies proposent la même orientation. Les attracteurs sont
donc fusionnés en un seul. Lors de la seconde partie de la trajectoire, on remarque que le robot
a sélectionné celle de la stratégie d’associations lieux-mouvements, mais avec un certain retard.
Regardons alors plus précisément les réponses de chacune des deux stratégies ainsi que les
orientations effectivement prises par le robot grâce à la boussole électronique (figure 5.33.B). On
observe que la stratégie de séquences temporelles répond en premier (figure 5.33.B ligne bleue),
mais que le robot ne se dirige pas vers ce nouvel attracteur. En effet, la stratégie d’associations
lieux-mouvements ayant toujours son attracteur à la même position angulaire, il est le plus
proche de la position actuelle du robot, donc il y reste (figure 5.33.B entre la ligne bleue et la
ligne verte). Ensuite, la seconde stratégie fournit sa réponse (figure 5.33.B ligne verte) pour le
100
Chapitre 5: Fusion des comportements
12345678539ABC
D915DFE95
959F8ED5619645
9FFD67FBBF45C
1DEEDA
12345678539ABC
BC
9A
53
78
D5
56
BD91DA3E5
B67
34
1BBFE1DEF2B EDA9
12
1DEF
4E5F552DB 2BC
12345678539ABC
12345678539ABC
BD91DA3E5
BA525B
D5F95445B
D5B67EDA91DEF2BC D5B67EDA91DEF2BC
Fig. 5.33: A) Le robot reproduit la trajectoire (flèches noires). Cette trajectoire est superposés à celle apprise
par la stratégie d’association lieux-mouvements (flèches rouges) et celle de séquences temporelles (flèches bleues).
On observe alors que lorsque le robot arrive à l’endroit où il doit prendre la décision de soit tourner à droite soit
tourner à gauche, le mouvement sélectionné est de tourner à droite. B) Orientations sur un champ de neurones
prises par le robot durant la reproduction de la trajectoire (en haut). Ces mouvements réalisés par le robot sont
comparés aux prédictions des stratégies d’associations lieux-mouvements (au centre) et de séquences temporelles
(en bas). On remarque que la seconde stratégie prédit l’orientation suivante en premier (ligne bleue), mais que le
robot reste sur son orientation actuelle. Lorsque la seconde stratégie fournie sa réponse (ligne verte), le robot se
trouve durant une courte période avec un seul attracteur fort (celui de la première stratégie) ; il commence donc
à se diriger vers cet attracteur. Puis lorsque le second attracteur à atteint une amplitude maximum (ligne rose),
il est le plus proche de la position actuelle du robot. Par conséquent le robot sélectionne finalement cet attracteur
comme orientation à atteindre. C) Activité du champ de neurones dynamiques durant la phase de reproduction
avec les différentes phases de sélection décrites précédemment.
prochain état. Les propriétés dynamiques du champ de neurones ne permettent pas que le nouvel
attracteur soit entièrement créé immédiatement, mais croı̂t progressivement (figure 5.33.C entre
la ligne verte et la ligne rose). Par conséquent, à ce moment précis, le robot va commencer à
se diriger vers l’orientation prédite par la stratégie de séquences temporelles, car elle est à son
activité maximale, même si elle est la plus éloignée. Une fois le second attracteur à son activité
maximale (figure 5.33.C après la ligne rose), le robot prend finalement la décision de tourner à
droite suivant la réponse de la stratégie d’associations lieu-mouvement. La règle définit a priori
que le robot ira rejoindre l’attracteur le plus fort et le plus proche, permettant alors au robot
de choisir l’attracteur créé par la stratégie d’associations lieux-mouvement. Finalement, le robot
choisit de tourner à droite, mais avec le timing de la stratégie de séquences temporelles (figure
5.33.B ligne verte).
5.12 Discussion
Le premier test a permis de montrer comment deux stratégies sensori-motrices reposant sur
des informations de sources différentes peuvent se compléter. Ce test repose sur une succession
d’apprentissages et de restitutions des mouvements qui est déclenchée par le professeur. Mais ces
résultats suggèrent aussi que notre architecture est capable de ré-apprendre un comportement
sous un format différent (de le ré-encoder) sur la base de sa propre reproduction. Se posent alors
des questions du point de vue développement. Il y a-t-il une stratégie qui se développe avant
l’autre ? Se développent-elles en même temps ?
Le second test a permis de mettre en évidence les limitations de chacune des deux stratégies. La
101
Chapitre 5: Fusion des comportements
stratégie d’associations lieux-mouvements répond d’une manière générale plus tôt que l’endroit
où l’apprentissage a été réalisé. Comme expliqué précédemment, cette limitation est due à la
généralisation dans l’espace des cellules de lieux. Quant à la stratégie d’apprentissage de sé-
quences temporelles, elle répond généralement bien plus tard que le moment de l’apprentissage.
Comme expliqué précédemment, ce retard est essentiellement dû au temps de resynchronisation
de la séquence, mais aussi au fait que le temps durant lequel le robot tourne est compris dans
le timing d’une transition lors de l’apprentissage. Pour que le robot reproduise plus précisément
une trajectoire, il est alors nécessaire qu’il puisse corriger les apprentissages passés. Dans [Gio-
vannangeli, 2007], l’auteur permet à un robot de rester sur une trajectoire avec une certaine
précision. La trajectoire n’est plus une succession de lieux-mouvements (figure 5.34.A), mais un
attracteur créé par un ensemble de lieux autour de la trajectoire dont les mouvements associés
gardent le robot sur la trajectoire (figure 5.34.B). Ceci implique que la trajectoire soit apprise
après plusieurs apprentissages.
12 32
En ce qui concerne la stratégie de séquences-temporelles, des travaux sont en cours pour per-
mettre l’adaptation du timing des transitions pour moyenner plusieurs itérations d’apprentissage.
Néanmoins, une difficulté non négligeable est de conserver l’intégrité des séquences apprises. En
effet, quand le robot est corrigé d’une démonstration sur l’autre, le réseau devra prendre en
compte l’impact des corrections sur le timing de la séquence.
Le troisième test a permis de mettre en évidence les propriétés de fusion et de sélection du
champ de neurones dynamiques. Ces propriétés dépendent de la taille du noyau d’interaction
qui permet de créer des attracteurs plus ou moins grand. On a pu alors remarquer que lorsque les
attracteurs sont très grands, il n’y avait pas de sélection possible, les attracteurs sont toujours
fusionnés. Par conséquent le champ de neurones dynamiques ne fait que moyenner des attracteurs
distants. Lorsque que les attracteurs sont de plus petite taille, le robot peut alors converger vers
l’un ou l’autre des attracteurs. Pour permettre au robot de rejoindre un attracteur distant,
une règle a été définie a priori permettant le choix de l’attracteur le plus proche. Pour retirer
cette règle, une amélioration possible serait que le robot travaille en multi-échelles avec des
attracteurs de différentes tailles. Les attracteurs seraient alors très grands (basse résolution)
102
Chapitre 5: Fusion des comportements
au départ, puis rétréciraient (haute résolution). Une solution permettant un tel fonctionnement
serait que les différences de gaussiennes (DoG) soient créées dynamiquement par l’architecture.
Il est également imaginable que la résolution des attracteurs soient définie par un paramètre de
vigilance. Dans mes travaux, les réponses de chacune des stratégies sont binaires, donc tous les
attracteurs ont la même force d’attraction. Une autre amélioration possible serait que chacune
des stratégies ait une saillance permettant alors la création d’attracteurs plus ou moins fort. La
sélection de l’action pourrait se faire en fonction de la distance et de la force d’attraction. Les
saillances des réponses des différentes stratégies pourraient être le résultat d’un apprentissage
par renforcement. Ce renforcement pourrait alors provenir de structures de plus haut niveau tel
que le cortex cérébral qui réaliserait alors un “priming” sur les structures de plus bas niveau.
La saillance des réponses des stratégies spatiales et temporelles pourrait provenir du niveau
d’activité de ces réponses. En effet, les réponses de la stratégie d’associations lieux-mouvements
pourraient être pondérées par le niveau d’activité des cellules de lieux. L’activité des réponses
de la stratégie de séquences temporelles pourraient être pondérées par la proximité au moment
du déclenchement d’une prédiction.
Dans mes travaux, le modèle traite d’un coté les réponses d’une stratégie temporelle et de
l’autre d’une stratégie spatiale. On peut alors se poser la question de la pertinence de fusion-
ner/sélectionner des informations de nature différente. En effet, la stratégie d’association lieux-
mouvements informe sur l’endroit où réaliser l’action alors que la stratégie de séquences tempo-
relles informe sur quand réaliser l’action. Néanmoins, le modèle que je présente avec les deux
boucles hippocampiques n’est pas complet. En effet, on remarque que pour la stratégie d’associa-
tions lieux-mouvement, il n’y a pas de transitions de lieux. Ces transitions coderaient alors des
transitions de lieux permettant d’informer sur quand changer de lieu. Cette information serait
alors de même nature que les séquences sensori-motrices permettant ainsi une fusion/sélection
de réponses homogènes. Si ici ces transitions de lieux explicitent des aspects temporels sur les
cellules de lieux, la même question se pose alors sur la stratégie de séquences temporelles : com-
ment expliciter des aspects spatiaux de cette stratégie ? En effet, pour rester cohérent avec le
modèle, l’information serait en amont des transitions, c’est à dire dans les états d’entrée et/ou
dans les états cachés. A priori, cette information ne peut pas se trouver sur les états d’entrée,
car à partir des informations proprioceptives seules, il paraı̂t difficile de se localiser. En effet,
le robot peut avoir une orientation de 30˚ aussi bien dans un couloir quand dans une salle. Par
contre, les états cachés sont plus riches en informations. En étant associés à une dynamique in-
terne dont l’état dépend de chunks qui répondent sur les lieux reconnus en plus des informations
proprioceptives, ils peuvent permettre de fournir une information de nature spatiale dépendante
des actions passées du robot. Alors, tout comme les lieux sont associés à des mouvements, les
états cachés pourraient l’être également. Finalement, les réponses prédites par la reconnaissance
de lieux et les réponses qui pourraient être prédites par la reconnaissance d’un contexte interne
auraient une nature suffisamment homogène pour permettre leur fusion/sélection.
De la même manière, on peut également se poser la question de la pertinence de simuler l’hip-
pocampe en deux tranches distinctes. En effet, ces deux tranches pourraient être fusionnées en
une seule hippocampe permettant de traiter des informations multimodales plus riches. Cette
structure ne coderait plus pour des informations précises comme des lieux ou des informa-
tions proprioceptives, mais pour une sorte de contexte sensori-moteur composé, entre autre, de
lieux/informations proprioceptives représentant le contexte instantané dans lequel se trouve le
robot par rapport à son environnement. Ces informations provenant des différentes modalités
proviendraient alors des différents cortex (préfrontal, visuel, auditif, etc) et se fusionneraient
tout ou partie dans le cortex ehtorinal en entrée de l’hippocampe (figure 5.35). Le cortex pré-
103
Chapitre 5: Fusion des comportements
A95EDF85D59EB A95EDFC9ED53
A95EDFD957D A95EDF9CBE9D957D B75DC9E5A7AD88CDEB75D
123456
97D95BD
72ABA
12
3 67889ABC8D E57BEC E6BBC
4546
97DDE5BD
7289
B79DBBD
Fig. 5.35: Modèle de structures du cerveau pouvant être concernées par les différents mécanismes utilisés. Le
cortex sensoriel traite les informations visuelles. Les informations visuelles sont séparées en deux voies what et
where, puis fusionnées dans le cortex enthorinal (EC) permettant ainsi de coder des lieux. EC reçoit également
les informations motrices du thalamus à travers le cortex somatosensoriel et les chunks du cortex préfrontal.
EC transmet ses informations à l’hippocampe pouvant les mémoriser sous forme de transitions. Les prédictions
de l’hippocampe sont envoyées aux ganglions de la base par l’intermédiaire du striatum. Puis une fois l’action
finale sélectionnée par les ganglions de la base, elle est transmise au cortex moteur ainsi qu’aux aires motrices
supplémentaires pour être appliquée sur les effecteurs.
frontal étant fortement interconnecté aux structures sous-corticales coderait alors l’équivalent
de chunks. En effet, un chunk (sous forme de neurone ou de réseau de neurones) serait une sorte
de contexte interne dans lequel l’action sélectionnée serait présente via les connexions provenant
du thalamus. Ainsi par les connexions du cortex préfrontal vers les structures sous-corticales, les
chunks seraient une modalité supplémentaire ; une sorte de senseur de l’état interne. Néanmoins,
cela n’empêche pas de voir fusionner et/ou sélectionner les réponses de différentes structures.
L’execution en parallèle de deux stratégies de navigation nécessite l’utilisation d’outils adaptés.
En effet, une telle architecure est composée de plusieurs centaines de milliers de neurones et
elle est executée sur plusieurs unités de calcul en parallèle. De plus, la stratégie de navigation
spatiale (associations lieux-mouvements) étant reprise dans le cadre de l’intégration de travaux,
l’architecture doit être suffisament souple pour permette la suppression et l’ajout de nouvelles
voies de catégorisation.
104
Chapitre 6
105
Chapitre 6: Réseaux de neurones temps réel distribués
Les réseaux de neurones que nous avons présenté dans cette thèse sont conçus comme des boucles
perception-action (PerAc, [Gaussier et al., 1998]). Chaque boucle est une combinaison d’une voie
réflexe et d’une ou plusieurs voies de catégorisation. La décision finale est une commande envoyée
aux moteurs du robot. Généralement, chaque voie correspond à une fonctionnalité propre (ap-
prentissage temporel, apprentissage spatial, etc). Chaque voie possède sa “constante de temps”
et sa propre vitesse d’apprentissage et d’exécution, les différentes voies doivent donc pouvoir
fonctionner de manière asynchrone les unes par rapport aux autres. Néanmoins, différentes voies
peuvent communiquer entre elles, par exemple le mécanisme de “chunking” vu précédemment,
où l’information de la voie d’apprentissage spatial permet de resynchroniser les dynamiques de
la voie d’apprentissage temporel. Par conséquent, les voies doivent pouvoir échanger des infor-
mations, généralement non bloquante. De plus, on souhaite pouvoir ajouter ou retirer facilement
une voie entière (toute une chaı̂ne de traitement) du réseau sans que la dynamique des autres
voies ne soit altérée (sans parler d’un ajout ou retrait à chaud). On désire juste conserver une dy-
namique similaire indépendamment de la charge globale du processeur. Enfin, viennent s’ajouter
les contraintes propres au contrôle d’un robot impliquant une utilisation du temps réel contrainte
par le matériel embarqué, tout en gardant des commandes cohérentes malgré la répartition du
traitement sur plusieurs unités de calculs.
Donc il est indispensable d’avoir un outil qui permette de répartir de très grands réseaux de
neurones sur plusieurs unités de calculs. Paralléliser le traitement, soulève les questions du temps
de traitement, ainsi que leur fusion/sélection lors de la décision finale. Comment simuler plusieurs
structures en parallèle ?
Aujourd’hui, il existe plusieurs outils permettant de concevoir et simuler des réseaux de neu-
rones artificiels. SNNS (Stuttgart Neural Network Simulator) [Zell et al., 1993] sauvegarde de la
description du réseau de neurones dans un fichier texte générée par une interface graphique. Le
projet initialement écrit en langage C a évolué en langage Java sous le nom de JavaNNS depuis
2006. La différence avec les simulateurs cités précédemment est que SNNS permet de distribuer
le calcul sur des machines de calcul distantes. Ceci est rendu possible par l’utilisation d’appel
de procédures distantes, plus connu sous l’acronyme RPC (Remote Procedure Call).
L’un des outils les plus populaire est Matlab qui permet, à travers des boites à outils, de simuler
des réseaux de neurones artificiels [Demuth et Beale, 2006]. Matlab est un outil mathématique
performant qui permet entre autre de réaliser facilement les calculs matriciels. L’une des forces
de ce logiciel est sa communauté active qui étend les fonctionnalités avec divers algorithmes de
traitement d’images, d’apprentissages, etc. D’autres outils dédié à la conception et à la simulation
de réseaux de neurones artificiels sont librement distribué comme YANNS (Yet Another Neural
Network Simulator) [Boné et al., 1998] et Aspirine/Migraine [Leighton, 1994] qui définissent leur
propre langage de description de réseaux de neurones et fournissent le programme permettant de
simuler le réseau décrit. D’une manière générale, ces outils imposent de se former à leur langage
respectif pour permettre de les utiliser efficacement.
GENESIS [Beeman et al., 2007] est un simulateur de réseaux de neurones artificiel créé pour
simuler des neurones proche des neurones biologiques. Dans ce programme, le choix a été fait de
simuler avec une granularité fine. Contrairement aux simulateurs vu précédemment qui assignent
une fonction à un groupe de neurones, ici chaque neurone est divisé en plusieurs compartiments.
La modélisation est réalisée par un langage propre au programme. Il est possible de distribuer un
réseau de neurone sur plusieurs unités de calcul en utilisant PGENESIS. PGENESIS repose sur
PVM (Parallel Virtual Machine) pour répartir le calcul sur plusieurs unités de calcul. Dans ce
cas, le programme exécute plusieurs processus GENESIS, chacun simulant une partie du réseau
de neurones. La communication entre chaque processus s’effectue par envoi de messages assuré
106
Chapitre 6: Réseaux de neurones temps réel distribués
Fig. 6.1: Processus de développement d’un réseau de neurones artificiels pour le contrôle d’un robot. Le dévelop-
pement débute à partir de modèles de structures du cerveau (aires visuelles, boucle hippocampique, fonctions du
cervelet, etc). Chaque structure est assimilée à un ensemble de fonctions et joue un rôle (apprentissage, filtrage,
etc) dans le fonctionnement global du modèle. A partir de ce modèle, les fonctions (aussi appelé groupes de neu-
rones) sont réparties en plusieurs réseaux de neurones artificiels conçus avec l’outil Coeos. Durant l’expérience sur
le robot, chacun des réseaux de neurones artificiels est exécuté avec Promethe sur une unité de calcul. L’ensemble
doit respecter des contraintes de temps de manière à assurer un contrôle correct du robot.
par PVM. Cette gestion de la répartition du calcul a pour conséquence d’alourdir le langage du
logiciel et implique que l’utilisateur ait des connaissances particulières dans le domaine du calcul
parallèle.
Ikaros [Balkenius et al., 2009] est un simulateur dont l’objectif est de permettre la simulation
de structures du cerveau. La modélisation se fait par modules. Un module est un morceau de
code qui peut aussi bien définir un neurone, une région du cerveau ou toute autre chose. Chaque
module possède des entrées et sorties lui permettant de communiquer avec d’autres modules.
Les données transmises sont des tableaux de nombres flottants. Un premier point important de
ce simulateur est de faciliter grâce aux modules, la répartition du calcul sur plusieurs unités
de calcul. La communication entre les modules est gérée par une couche réseau sur des sockets
standard de type BSD. Un autre point fort de ce programme est la possibilité de directement
s’interfacer avec du matériel robotique. Ceci permet de directement tester un modèle sur un
107
Chapitre 6: Réseaux de neurones temps réel distribués
robot dans l’environnement réel. Ikaros intègre également une gestion de contraintes temps réel
reposant sur le standard Posix avec l’utilisation du multithreading via la libraire pthread (Posix
thread). Cette gestion du temps réel permet d’assurer une certaine qualité sur le contrôle de
robots. Par contre, Ikaros n’offre pas la possibilité de développer un modèle - des modules - via
un outil particulier. La description du modèle est faite dans des fichiers au format XML.
Cette liste de simulateurs de réseaux de neurones est loin d’être exhaustive. Elle rend compte
de la nécessité d’outils adaptés aux contraintes de la simulation (batch vs temps réel, modèles
statistiques vs neurobiologiquement plausible) et des choix à faire a priori comme la granula-
rité de la simulation. De plus, pour faire face à la consommation de calcul qui croı̂t avec la
complexité des simulations, on se rend compte qu’il est souvent nécessaire d’utiliser un grand
nombre d’unités de calcul. Souvent, cette partie du simulateur n’est pas développée par les créa-
teur du programme, mais repose sur des librairies existantes n’ayant pas de spécificités ni pour
les réseaux de neurones, ni pour les flux de données qui y transitent.
Durant ses travaux, Philippe Gaussier à initié le développement d’un couple de programmes
qui permettent la modélisation de réseaux de neurones avec Leto et leur simulation avec Pro-
methe [Gaussier, 1992]. Les réseaux de neurones sont développés graphiquement via Leto. Il
permet de créer des groupes de neurones et des liaisons entre ces groupes. Les groupes peuvent
être configurés pour permettre de définir le nombre de neurones qu’ils contiennent ainsi que di-
vers paramètres relatifs aux algorithmes qu’ils vont exécuter. Les liaisons permettent différentes
connectivités entre les neurones de deux groupes (figure 6.2). Il y a quatre types de liaison :
de un neurone vers tous ceux du groupe destinataire, de un neurone vers un voisinage, de un
neurone vers un du groupe destinataire et aléatoirement de un neurone vers ceux du groupe
destinataire.
Fig. 6.2: Illustration des différents types de connexions entre deux groupes de neurones. A) Connexions de 1
vers 1. Les neurones du premiers groupes sont connectés a ceux du second groupe aux mêmes positions (mêmes
indexes). B) Connexions de 1 vers tous. Chaque neurone du premier groupe est connecté à tous les neurones du
second groupe. C) Connexions de 1 vers un voisinage Chaque neurone du premier groupe est connectés à celui du
second groupe à la même position ainsi qu’à un certain nombre (paramétrable) de ses voisins. D) Connexions de
1 vers aléatoire. Chaque neurone du premier groupe est connecté aléatoirement à ceux du second groupe.
Un réseau de neurones compilé avec Leto est ensuite exécuté par Promethe. Promethe est le si-
mulateur qui ordonnance et exécute les groupes de neurones (l’activité des neurones) et l’appren-
tissage (le poids des connexions entre les neurones des groupes). Avec la complexité croissante
des architectures de contrôle, ces programmes ont évolué pour permettre la modélisation et la
108
Chapitre 6: Réseaux de neurones temps réel distribués
109
Chapitre 6: Réseaux de neurones temps réel distribués
110
Chapitre 6: Réseaux de neurones temps réel distribués
Fig. 6.3: A gauche : exemple d’ordonnancement des groupes de neurones sans contraintes de temps réel (sans
jetons temps réel). Le groupe “B” attend la fin de l’exécution du groupe “A”, puis débute son traitement. Lorsque le
groupe “B” a terminé, le groupe “C” s’exécute à son tour. Une fois que le groupe “C” (en fin de chaı̂ne de traitement)
a terminé, une nouvelle vague de calcul est générée avec l’exécution du groupe “A”. A droite : ordonnancement
avec une contrainte de temps de 100ms : la contrainte n’est pas respectée durant l’exécution du groupe “B”. Le
groupe générant les jetons temps réel attend la fin de l’exécution du groupe “B”, annule l’exécution du groupe
“C” en détruisant ses jetons temps réel et génère de nouveaux jetons relançant ainsi une nouvelle vague de calcul
(tâche A).
111
Chapitre 6: Réseaux de neurones temps réel distribués
Comme évoqué précédemment, les jetons temps réel ne circulent que dans les groupes faisant
parti d’une même “branche”. Or, dans une architecture faisant cohabiter plusieurs stratégies en
parallèle, il y a plusieurs branches (cf. les voies de catégorisation citées précédemment). Pour
soumettre plusieurs branches à des contraintes de temps, il est possible de créer plusieurs groupes
temps réel permettant ainsi à différentes branches de s’exécuter avec différentes fréquences. Avec
un tel mode de fonctionnement, il est indispensable de faire un choix sur comment doit s’exécuter
un groupe lorsque deux branches se fusionnent. Pour permettre de répondre à ce problème,
Promethe offre une gestion de priorités sur les jetons temps réel. Ces priorités permettent de
définir à quelle fréquence va être exécuté la suite du réseau lorsque deux branches de traitement
se rejoignent et donc quelle va être la contrainte de temps à respecter.
Fig. 6.4: Illustration montrant le fonctionnement de la gestion des jetons temps réel suivant leur priorité. Le
groupe recevant les jetons de deux branches soumises à différentes contraintes de temps est soumis à la même
contrainte que celle qui a la priorité la plus haute.
112
Chapitre 6: Réseaux de neurones temps réel distribués
la simulation. Pour une execution temps réel, il fallait systèmatiquement parcourir la file d’at-
tente, la vider pour ne récupérer que le dernier message valide. De plus, la déscription du macro
réseau est spécifiée dans un fichier texte ayant pour extension “comm.prt” (“prt” pour “port”, car
le fichier contient les ports de connexion ou points d’entrées des différents réseaux de neurones).
Ce fichier est écrit à la main par les développeurs. Il doit contenir deux sections : une qui permet
de localiser chaque partie de l’architecture neuronale et une décrivant les liens réseaux (exemple
6.2).
Exemple 6.1: Exemple de fichier décrivant la répartition des différentes parties d’un réseau de neurones. La section
“network” permet de localiser où se trouve les différentes parties de l’architecture. La section “link” permet de
décrire les liens entre chacune de ces parties.
6.2.1 Coeos
L’augmentation régulière de la taille et le nombre de structures simulées a eu pour conséquence
l’augmentation du nombre de réseaux de neurones à distribuer et le nombre de liens permettant
de faire communiquer ces différents réseaux. Décrire la répartition à la main est donc devenu
fastidieuse et source de nombreuses erreurs : liens réseaux manquant ou erronés induisant des
erreurs difficiles à détecter. Dans le cadre d’expériences robotiques importantes, ces erreurs ont
un impact sur le temps de développement très important. De la même manière que Leto permet
de faciliter le développement de réseaux de neurones, Coeos permet de faciliter la répartition
d’un macro réseau. D’une manière générale, Coeos permet de faciliter le passage à l’échelle (figure
6.5) en proposant une vue globale d’une architecture répartie (figure 6.6).
11 56174
56172
56173
1 2 3
113 114
Fig. 6.5: Illustration de différents niveaux de modélisation de réseaux de neurones artificiels. A) Modélisation
neurones par neurones. B) Modélisation par groupes de neurones (Leto). C) Modélisation de réseaux de neurones
répartis (Coeos).
113
Chapitre 6: Réseaux de neurones temps réel distribués
Pour spécifier la répartition d’un macro réseau, il suffit d’ajouter chaque réseau de neurones
dans Coeos, de les assigner à une machine de calcul et de créer les liens entre ces parties. Les
liens entre les groupes de deux réseaux de neurones différents sont appelés des liens réseaux. A
partir de cette description graphique, il est alors possible de générer le fichier “comm.prt” qui
sera donné au simulateur Promethe. Coeos permet de sauvegarder le macro réseau dans deux
fichiers au format XML. Le premier fichier dont l’extension est “.net” permet de sauvegarder la
liste des réseaux de neurones, à quelle machine de calcul ils sont assignés et les liens réseaux qui
les lient. Le second fichier a pour extension “.cpt” et permet de sauvegarder la liste des machines
de calcul sur lesquelles sont executés les réseaux de neurones.
Leto ne permettant le développement que d’un réseau de neurones mono-machine, il est rapide-
ment devenu difficile de travailler avec une grande quantité de fenêtres. C’est pour quoi toutes
les fonctionnalités de Leto ont été fusionnées dans Coeos. Grâce à un mécanisme d’onglets inté-
gré dans Coeos, il est possible de rapidement naviguer dans les réseaux de neurones d’un macro
réseau (figure 6.6).
A. B.
Fig. 6.6: A) Capture d’écran de l’interface de Coeos. L’outil permet l’affichage global d’une architecture neuronale
distribuée sur le premier onglet. Chacun des onglets suivant permet l’affichage des différents réseaux de neurones.
B) Architecture logicielle de Coeos. Le programme a été développé suivant différents niveau. Le niveau le plus
bas permet de lire et écrire les fichiers décrivant les réseaux de neurones (format de fichier interne), ainsi que
la description des connexions entre les réseaux de neurones (format XML). Le moteur (Core) de Coeos permet
d’organiser les données lues en mémoire afin de les traiter (ajout, suppression, paramétrage, etc). Le niveau
supérieur permet d’afficher graphiquement les données lues afin de permettre au développeur d’agir dessus.
Dans de grandes architectures ayant plusieurs dizaines de liens réseaux, il est alors rapide d’en
oublier ou même de définir plusieurs liens avec le même identifiant ; ce qui peut poser de sérieux
problèmes lors de l’exécution sans même le savoir. De manière à éviter ce genre de problème,
Coeos propose une fonctionnalité qui permet de vérifier tous les réseaux de neurones d’un macro
réseau qui ont été ajoutés. Durant cette vérification, le programme repère les groupes de com-
munication et crée les liens réseaux correspondants. En cas de problème, Coeos ne crée pas les
liens et renvoie un message d’erreur au développeur l’informant du problème rencontré (manque
d’un groupe d’entrée ou de sortie ; groupe d’entrée ou de sortie en double pour un même lien
réseau).
Finalement, avec l’utilisation de Coeos, il devient plus simple de gérer la répartition d’une archi-
tecture neuronale : il suffit d’ajouter les différentes réseaux de neurones qui composent le macro
réseau, de générer automatiquement les liens et de sauvegarder. Il n’est alors plus indispensable
d’être expert dans le développement d’applications réparties. Malgré tout, il est toujours néces-
114
Chapitre 6: Réseaux de neurones temps réel distribués
saire que le développeur lance chaque réseau de neurones sur les machines de calculs spécifiées
dans Coeos. L’intérêt de la solution actuelle est de pouvoir facilement arrêter ou relancer un
réseau de neurones à chaud sans devoir redémarrer toute l’application (le robot pouvant par
exemple continuer à rouler en évitant les obstacles en attendant que l’on modifie son réseau
de neurones gérant la vision). Une fonctionnalité future de Coeos devrait alors permettre le
déploiement automatique d’architectures distribuées.
6.2.2 Communications
Le simulateur Promethe intègre une couche de communication qui lui permet de communiquer
à travers le réseau. Cette couche de communication réseau utilise des descripteurs réseaux (so-
ckets) BSD avec les protocoles TCP/IP. Pour permettre la recopie de l’activité d’un groupe de
neurones en entrée dans le réseau de neurones en sortie, un ensemble de groupes particuliers
de communication réseau ont été ajoutés. Le passage des messages à travers le macro-réseau
peut être synchrone ou asynchrone grâce à des liens bloquants ou non bloquants (reprenant les
fonctionnalités disponibles sur le verrou PVM).
Le protocole doit non seulement permettre aux différents simulateurs de communiquer, mais
également d’être un maximum robuste et d’informer l’utilisateur en cas de problème réseau tout
en minimsant les perturbations induites par la parallélisation. La couche de communication doit
être la moins consommatrice possible en ressources et en temps de calcul. Il est indispensable
que les messages soient les plus simples et informatifs possibles.
1231456D5382DEA5
1234 5262782
12314567829212A5
B3C
Fig. 6.7: Architecture de la gestion des communications réseau. Le réseau de neurone peut utiliser des groupes
particulier afin d’envoyer ou recevoir des activités neuronales à travers le réseau à d’autres partie de l’architecture
distribuée. Les données transmises par ces fonctions sont transmises suivant un protocole (défini en interne de la
couche de communication) puis envoyées sur le bus de communication (TCP/IP).
Pour permettre une adaptation facile des communications réseau à d’autres protocoles (UDP,
etc), la couche de communication a été abstraite. Elle comprend notamment trois niveaux. Le
niveau le plus haut est la couche neuronale (fonctions visibles de l’utilisateur), puis il y a la
couche protocole et la couche du bus de communication (figure 6.7).
115
Chapitre 6: Réseaux de neurones temps réel distribués
permettent un meilleur paramétrage. Cette nouvelle manière de paramétrer les groupes permet
aussi de facilement ajouter des options futures. Les options du groupe d’émission de message
“f send” sont :
– “-ack” : l’émission est bloquante. Le reste du réseau de neurone contenant ce groupe est bloqué
tant qu’un message d’acquittement n’est pas reçu de l’émetteur. Il est possible de spécifier un
temps d’attente limité en secondes avec l’option “-timeout”
– “-timeout=t” : cette option permet de spécifier combien de temps doit attendre le groupe avant
de signaler une erreur de non réception de messages.
Par défaut, le groupe “f send” est non bloquant, c’est à dire qu’il n’attend pas de confirmation
de réception des messages. Le groupe en réception des messages réseaux offre plusieurs options :
– “-ack” : lorsque le groupe de réception a terminé de traiter le message, il envoie un message
d’acquittement informant l’émetteur que tout s’est bien passé.
– “-block” : la réception est bloquante. Le réseau de neurones contenant ce groupe est bloqué
tant qu’un message n’est pas reçu de l’émetteur. Il est possible de spécifier un temps d’attente
limité en secondes avec l’option “-timeout”
– “-raz=x” : Au début de chaque exécution du groupe “f recv”, les neurones sont tous remis à
zéro. Si “x” est précisé (entier naturel) alors la remise à zéro se fera après “x” exécutions du
groupe. Cette option permet de limiter les effets de mémoire des activités précédentes en cas
de non réception des messages pendant “x” itérations.
– “-next” : cette option permet de supprimer le dernier message reçu avant l’exécution du groupe
et d’attendre le prochain. Ceci permet à l’application de traiter les activités neuronales les
plus récentes. En effet, sans cette option, rien ne garantit que le message reçu ne date pas de
plusieurs secondes ou plusieurs minutes, etc.
– “-timeout=t” : cette option permet de spécifier combien de temps doit attendre le groupe avant
de signaler une erreur de non réception de messages.
Par défaut, un groupe de réception “f recv” est non bloquant sans remise à zero et n’envoie pas
de messages d’acquittement.
Fig. 6.8: Format des données transmises sur le réseau. En plus des données relatives aux activités neuronales, des
informations sur la taille, l’identification du message, sur la date d’envoie du message, sur le nom de la connexion
concernée et sur le comportement de la communication (à travers des flags) sont ajoutés afin de permettre de
réaliser un contrôle d’intégrité de la communication (arrivée du message tardif ou non attendu) ainsi qu’un contrôle
sur le temps dans la perspective d’utilisation de communications temps réel.
La couche protocole s’occupe des connexions avec les autres simulateurs. Pour permettre de
spécifier quel est le groupe destinataire des activités de neurones artificiels transmises, une chaı̂ne
de caractères correspondant au nom du lien est ajoutée.
A l’initialisation des connexions, chaque simulateur tente de se connecter aux autres à partir des
informations données dans le fichier “comm.prt”. Que les connexions réussissent ou échouent,
116
Chapitre 6: Réseaux de neurones temps réel distribués
chaque simulateur lance ses serveurs. En effet, comme il n’y a pas d’ordre de lancement des
simulateurs, il est indispensable que chacun se mette en attente de connexions des autres. Par
conséquent, chacun des simulateurs est en même temps client et serveur des autres simulateurs
(fonctionnement peer to peer). Que ca soit en tentant de se connecter ou en réceptionnant une ten-
tative de connexion d’un autre Promethe, la couche protocole réalise un échange de messages de
connexion. Donc, en plus des échanges d’informations sur les activités, il y a des types de messages
particuliers pour s’assurer du bon fonctionnement de la communication. Pour ceci, un champ
“flags” est rempli à chaque échange entre deux simulateurs. Ce champ peut prendre plusieurs
types qui permettent de définir le type de message dont il s’agit. Il peut s’agir d’une demande
de connexion (MSG CONNECT), d’une confirmation de connexion (MSG CONNECT OK),
d’un refus de connexion (MSG CONNECT REFUSED), d’un message simple (MSG) ou d’un
message avec accusé de réception (MSG ACK).
Cette couche ajoute un identifiant unique pour chaque message envoyé. Cet identifiant permet
au récepteur de vérifier qu’il attendait effectivement cet identifiant, et d’avertir l’utilisateur en
cas de problème. Pour permettre de répondre à des besoins tenant compte de contraintes de
temps, on retrouve parmis les informations de cette couche un “timestamp”. Cette information
est le temps machine en secondes et microsecondes au moment ou le message est construit et
émis. Ceci a pour but de prendre en compte le temps de circulation des flux d’activités entre
les différentes réseaux de neurones. En effet, il peut être inapproprié qu’un réseau de neurone
traite des messages trop vieux qui n’ont plus de sens par rapport au contrôle du robot dans un
environnement changeant.
6.3 Cas pratique : un robot mobile qui classe et range des objets
selon leur taille
Le développement de Coeos a permis de répondre à un nouveau besoin qui est celui des ar-
chitectures neuronales de plus en plus importantes. Mais si la répartition permet de gagner en
performances, elle perme également de simplifier l’intégration de divers travaux. Dans la perspec-
tive de permettre toujours plus de comportements et de comportements plus complexes, dans le
cadre du projet européen Feelix Growing, une partie de mes travaux ont été intégré, en collabo-
ration avec Florient d’Halluin, avec les travaux du laboratoire LASA (Learning Algorithms and
Systems) de l’EPFL (Ecole Polytechnique Fédérale de Lausanne) portant sur l’apprentissage de
gestes avec un bras robotique, sous la direction de Aude Billard.
Dans ce contexte, nous voulons que le robot soit capable de naviguer d’un lieu “A” vers un lieu
“B” ou “C”. Le choix du lieu de destination est alors réalisé en fonction de la taille de l’objet
pris par le robot. En chaque lieu, le robot doit également faire un geste particulier. Ce scénario
implique alors que le robot (figure 6.9) soit capable de naviguer, d’attraper un objet et de faire
des gestes.
6.3.1 La navigation
L’architecture (figure 6.10) qui a fait l’objet de cette intégration est composée de la gestion des
entrées/sorties avec le matériel robotique (“robot”), du contrôle des mouvements de la caméra et
de la caméra (“head control”, de la gestions de la boussole électronique (“compas”), du traitement
bas niveau de la vision (“focuspoints”), de la stratégie d’associations lieux-mouvements (“lieuxac-
tions”), du champs de neurones dynamique (“nf”) ainsi que du contrôle sur les mouvements du
robot (“pf”).
117
Chapitre 6: Réseaux de neurones temps réel distribués
Fig. 6.9: Dispositif expérimental. Le robot est composé d’une plateforme mobile, d’un bras robotique, d’une
caméra montée sur deux moteurs en configuration Pan-Tilt et d’une boussole électronique. Le robot embarque un
ordinateur ainsi qu’un routeur sans fil WiFi pour communiquer avec les trois machines de calcul distantes.
A7C79 E
D7CB2
1
3 4
2
C7FF7B2
67DE3F 123456789A7B 76FE789F B236978F
A7C79 8
7F96B3FF2
63DA3
D792AF
12345675
Fig. 6.10: Architecture telle qu’elle a été découpée. Le réseau de neurones “robot” lit les valeurs de la boussole
électronique, du joystick et les informations odométriques du robot mobile. Ce réseau à également le rôle d’envoyer
les commandes motrices au robot mobile. Le réseau “compas” à pour fonction de traiter les valeurs de la boussole
électronique et de renvoyer ces informations à différents autres réseaux de neurones. “pf” pour “préfrontal” reçoit
essentiellement les entrées du joystick et renvoie des signaux permettant le déclenchement de l’apprentissage et
le contrôle des boucles sensori-motrices. Les signaux permettant de déclencher les apprentissages sont transmis
à “head control” qui récupère les informations proprioceptives des moteurs Pan-Tilt ainsi que les images de la
caméra. Elle reçoit également les valeurs de la boussole à travers la partie “compas”. “focuspoints” reçoit les
informations proprioceptives (Pan-Tilt et boussole), le signal d’apprentissage et les images de la caméra. Ce
réseau de neurones réalise un traitement bas niveau consistant à extraire les informations what et where et les
fusionner dans un tenseur. Ce dernier est transmis au réseau “lieuxactions” avec les informations de la boussole
et odométriques du robot pour apprendre un nouveau lieu et l’associer au mouvement courant. Lorsque ce réseau
répond un mouvement a réaliser, celui-ci est envoyé à “nf” qui après fusion/sélection, envoie la commande motrice
finale à “robot” pour être appliquée sur les moteurs. “nf” reçoit des signaux inhibiteurs permettant d’inhiber
certaines boucles sensori-motrices.
Le réseau de neurones “robot” lit les valeurs de la boussole électronique et du joystick du robot
mobile. Ce réseau à également le rôle d’envoyer les commandes motrices au robot mobile. Le
réseau “compas” à pour fonction de traiter les valeurs de la boussole électronique et de renvoyer
ces informations à différents autres réseaux de neurones. “pf” reçoit essentiellement les entrées du
118
Chapitre 6: Réseaux de neurones temps réel distribués
6.3.2 L’objet
Une première phase du travail d’intégration était de permettre l’intégration du contrôle d’un
bras robotique Katana1 pour la préhension d’objets. Ce travail à également été développé sous
la forme d’architecture neuronale avec Coeos. Si techniquement cela facilite l’intégration, il y
a une cohérence globale à garder. La cohérence globale de l’architecture intégrée repose sur le
modèle des boucles sensori-motrices PerAc.
L’objectif de l’intégration de ces travaux est de permettre à un robot d’apprendre et restituer
des comportements mêlant la navigation, le geste et l’objet. Cette intégration pose la question
de l’enchainement de ces différents comportements. Quand déclencher la prise ou le dépot d’un
objet ? Pour simplifier le problème, il a été décidé que le robot détectera un objet à partir de
son diamètre mesuré par proprioception lors de la prise. Par défaut le robot a sa pince grande
ouverte. des capteurs infrarouges permettent de détecter la présence d’objet dans la pince, puis
de déclencher sa fermeture. Le robot peut détecter deux types d’objets : ceux de grande taille
(pince moyennement ouverte) et ceux de petite taille (pince presque fermée).
Dans l’architecture, le comportement de la pince est pré câblé : si les capteurs de la pince ne
détectent rien, alors la pince est grande ouverte. Lorsque les capteurs détectent la présence d’un
objet, alors la pince se ferme jusqu’à ce que les capteurs de pression soient actifs. La prise et
le dépot des objets se fait dans des zones particulière de l’environnement. Pour matérialiser
cette nouvelle possibilité dans l’architecture, les associations lieux-mouvements permettant la
navigation se voient enrichies par l’ouverture de la pince en lieu-pince-mouvement. De cette ma-
nière, dans une zone de l’environnement, plusieurs associations peuvent être apprises, mais seule
l’ouverture de la pince peut permettre la différenciation entre ces associations. Ce mécanisme a
permis de réaliser un test intermédiaire afin de vérifier le comportement de navigation du robot
avec des informations supplémentaire destiné à un autre type de comportement.
6.3.3 Le geste
Répartir une architecture ne signifie pas que ce sont des modules indépendants qui sont exécutés.
En effet, même si la répartition d’une architecture permet une grande modularité, la répartition
se fait principalement sur la parallélisation des boucles sensori-motrices. Dans le cadre du projet
européen Feelix Growing, mes travaux et ceux du LASA de l’EPFL ont été intégré. Le défi ici
1
bras robotique Neuronics
119
Chapitre 6: Réseaux de neurones temps réel distribués
est d’intégrer des travaux qui sont par nature complètement différents. En effet, d’un coté mon
architecture repose sur des réseaux de neurones développés en langage C, de l’autre les travaux
reposent sur un programme séquentiel développé en C++. Ces travaux gèrent leurs propres
boucles de calcul pour apprendre plusieurs démonstrations d’un geste. De plus, pour reproduire
le geste, le programme pré-calcul les mouvements à réaliser directement avec les librairies du
constructeur du bras robotique. Dans mes travaux, les boucles de calculs sont la succession
des vagues de calculs du réseau de neurones et à chaque vague, de nouvelles commandes sont
envoyées aux moteurs du bras robotique. Alors comment intégrer ces travaux sans en dénaturer
l’intérêt scientifique ?
Les travaux du LASA consistent à permettre à un bras robotique d’apprendre par démonstra-
tion (manipulation passive du bras) un geste désiré. Dans un premier temps, l’objectif était de
permettre la communication des deux programmes. Comme je l’ai expliqué précédemment, le
simulateur de réseaux de neurones promethe embarque une librairie de communication réseau
(libcomm). Cette librairie a alors été utilisée pour réaliser cette communication. Le programme
du LASA n’ayant pas été fait pour communiquer en réseau avec d’autres processus, il a fallu
développer une interface logicielle permettant la communication réseau. Cette interface à pour
objectif d’être intégré avec le programme du LASA afin de permettre la communication entre
les travaux de chaque partie. Par conséquent, cette interface a été développée en langage C++
intégrant le protocole de communication de la libcomm. Une fois ce travail terminé, il a été alors
possible de déclencher les apprentissages de différentes démonstrations et la reproduction d’un
geste à partir d’activités de neurones.
Dans un second temps, l’objectif était d’intégrer ces travaux avec mon architecture neuronale. Le
choix qui a été fait est que le programme du LASA ne soit pas un simple module, mais considéré
comme l’équivalent d’un réseau de neurone géré par Promethe. Pour réaliser cette intégration, le
programme du LASA ne communique plus directement avec le bras robotique, mais seulement
avec le reste de l’architecture neuronale qui se charge d’envoyer les ordres aux moteurs du bras.
Cette intégration a impliqué une modification profonde du programme du LASA qui, d’une part,
ne gère plus ces propres boucles de calcul et d’autre part, ne pré-calcule plus les mouvements
du bras ; le programme devait fonctionner de manière itérative. Les boucles ont donc été retirées
pour se conformer aux vagues de calcul du simulateur. Le programme à également été modifié
pour permettre un calcul de commandes en vitesse à chaque vague à partir des informations
motrices du bras robotique reçues du réseau de neurones.
Une autre partie du travail a été de permettre l’apprentissage et la reproduction de plusieurs
gestes et non d’un seul. Pour ce faire, l’approche la plus simple a été adoptée : instancier plu-
sieurs fois la même classe (dans le sens objet C++) où chaque instance permet d’apprendre
plusieurs apprentissage par démonstration d’un même geste et pouvoir le reproduire plusieurs
fois. Pour identifier chacune des instances, un neurone particulier était associé à une instance.
Par conséquent, pour permettre l’apprentissage de trois geste, un groupe de trois neurones été
ajouté.
120
Chapitre 6: Réseaux de neurones temps réel distribués
7A52
12324 CCEFD5F 7A
623CEF
1
3 4
2
32B992EF
A25B972CD49 ECFB854C2D9
526789
12324 DA
294C5E8C99F
C9C2D
58618
D864F8
12324F8 D878D2F8
624FB19
12345675 DAF8
F94F9 !"#
52D412E DA3189
3189
12324CBF
Fig. 6.11: Architecture de contrôle qui intègre les travaux de navigation et ceux du contrôle du bras pour la réa-
lisation de gestes (LASA). Les travaux du LASA sont alors intégrés comme une partie de l’architecture neuronale
dans une boucle sensori-motrice.
professeur) ou à l’arrivée devant un carton (détecté grâce aux ultrasons frontaux du robot), le
robot apprend une nouvelle association lieu-pince-mouvement.
23BCDE32613AFA 23BCDE32627
67893A 67893A
123452367893A
Fig. 6.12: Le robot apprend à se rendre vers le carton du centre. Lorsqu’il y arrive, le professeur lui donne un
gros objet. Le professeur apprend au robot la direction dans laquelle il doit partir (vers le carton de droite) pour
aller déposer l’objet. Une fois arrivé devant le carton de droite, le professeur retire l’objet de la pince du robot.
Ensuite, le professeur apprend au robot à retourner à son point de départ et réalise un apprentissage similaire
avec un petit objet à aller déposer sur le carton de gauche.
Dans l’expérience (figure 6.13), le robot évolue dans une zone d’environ 5 mètre de longeur par
3 mètre de largeur. Le robot apprend à venir dans la zone du carton du centre, il y apprend une
121
Chapitre 6: Réseaux de neurones temps réel distribués
nouvelle association avec la pince grande ouverte. Le professeur simule la prise d’un gros objet
et dirige le robot vers l’endroit où il doit apporter l’objet. Le robot apprend alors une nouvelle
association avec la pince moyennement ouverte. Le robot arrive dans la zone du carton de gauche
et il y apprend une nouvelle association avec pince moyennement ouverte. Le professeur simule
alors le dépot de l’objet puis dirige le robot sur la suite de la trajectoire ; le robot apprend alors
une nouvelle association et ainsi de suite jusqu’à la fin de l’apprentissage.
Fig. 6.13: Le robot apprend à attraper un objet sur le carton du centre et le relâche sur le carton de droite
ou de gauche en fonction de la taille d’un objet. Le robot détecte la taille de l’objet à partir des informations
proprioceptives de la pince (plus l’objet est gros, plus la pince est ouverte). Dans ce test, l’ouverture de la pince
est simulée et fournie par le professeur. Lorsque le robot n’a pas d’objet dans sa pince, alors la pince est ouverte
à son maximum. Une fois l’objet relâché, le robot apprend à revenir à son point de départ. A chaque changement
de direction (corrigée par le professeur) ou à l’arrivée devant un carton (détecté grâce aux ultrasons frontaux
du robot), le robot apprend une nouvelle association lieu-pince-mouvement. Devant le carton du centre, le robot
apprend alors trois associations (quand il arrive devant pince ouverte, quand il a attrapé un objet de petite taille
et quand il a attrapé un objet de grosse taille). Devant les cartons de gauche et de droite, il a appris devant chacun
deux associations (quand il arrive devant et quand il a déposé l’objet).
Une fois l’apprentissage réalisé, le robot est alors capable de restituer le comportement (figure
6.14). Le robot se rend alors vers le carton du centre. A cet endroit, trois associations avaient
été apprises, mais une seule avec la pince grande ouverte, donc il ne bouge pas. Lorsque le robot
attrape un objet (le professeur fournit un signal simulant l’objet), une autre association parmi
les trois est gagnante. En fonction de la taille de l’objet, le robot se dirige vers le carton de
gauche ou de droite. A chacun de ces endroits, deux associations avaient été apprises, mais une
seule avec un objet dans la pince. Le robot dépose alors l’objet (le professeur simule l’ouverture
de la pince), la seconde association est gagnante. Puis le robot continue la tâche en revenant
vers le carton du centre pour y prendre un nouvel objet.
122
Chapitre 6: Réseaux de neurones temps réel distribués
Fig. 6.14: Le robot reproduit seul la tâche apprise. Il arrive devant le carton central. A cet endroit, trois associations
avaient été apprises, mais seul une avec la pince grande ouverte, donc il ne bouge pas. Lorsque le robot attrape
un objet de petite taille (le professeur fournit alors un signal simulant l’objet), une autre association parmi les
trois est gagnante. Il se dirige alors vers le carton de gauche. A cet endroit, deux associations avait été apprises,
mais seul une avec la pince faiblement ouverte. Le robot dépose alors l’objet (le professeur simule l’ouverture de
la pince), la seconde association est gagnante. Puis le robot continue la tâche en revenant vers le point de départ.
Il retourne donc vers le carton du centre pour attraper un nouvel objet de grosseur plus importante (le professeur
envoie alors le signal simulant l’objet), le robot se dirige alors vers le carton de droite où il relâche l’objet.
123
Chapitre 6: Réseaux de neurones temps réel distribués
62
A2 52
92 42
82 32
72 12
Fig. 6.15: Le robot apprend à se rendre vers le carton du centre (1). Lorsqu’il y arrive, le professeur lui donne
un objet de grosse taille, puis lui apprend qu’il doit réaliser un premier geste (2). Le professeur apprend au robot
la direction dans laquelle il doit partir (vers le carton de droite) pour aller déposer l’objet (3). Une fois arrivé
devant le carton de droite, le professeur apprend au robot qu’il doit réaliser un second geste, puis retire l’objet
de la pince du robot pour lui apprendre à le relâcher (4). Ensuite, le professeur apprend au robot à retourner à
son point de départ (5) et réalise un apprentissage similaire avec un petit objet à aller déposer sur le carton de
gauche (6, 7, 8, 9).
à le relâcher. Ensuite, le professeur apprend au robot à retourner à son point de départ et réalise
un apprentissage similaire avec un petit objet à aller déposer sur le carton de droite. Une fois
l’apprentissage terminé, le robot est alors capable d’aller chercher un objet, de faire un geste
particulier, d’aller le déposer sur un carton en fonction de la taille de l’objet, puis de revenir
vers le carton du centre, de prendre un objet et ainsi de suite. Finallement, le robot a appris à
ranger des objets en fonction de leur taille tout en réalisant des gestes. Cette expérience à durée
environ 1 heure sans que le robot échoue dans sa mission.
6.4 Conclusion
Dans ce chapitre j’ai présenté les outils de conception et de simulation de réseaux de neurones
artificiels temps réel. Ces outils permettent de concevoir et d’exécuter de très grand réseaux de
neurones composées de plusieurs centaines de milliers de neurones.
En plus de modéliser des architectures neuronales, Coeos permet de définir graphiquement la
répartition des différents réseaux de neurones d’une architecture sur plusieurs unités de calculs.
Ce processus de répartition s’effectue par de simples glisser-déposer. Coeos propose donc une
vision globale d’une architecture distribuée. Cette vue globale permet de fournir au concepteur
des informations sur la charge (en nombre de réseaux de neurones de l’architecture) de chacune
des unités de calcul, mais également la charge en communication (en nombre de canaux) entre les
différents réseaux de neurones. Ces informations visent non seulement à apporter des informa-
tions purement technique sur une architecture, mais également à permettre de tester comment
124
Chapitre 6: Réseaux de neurones temps réel distribués
125
Chapitre 6: Réseaux de neurones temps réel distribués
robot pouvant entrainer l’échec de la tâche. La distribution d’une architecture a donc un impact
non négligeable sur les algorithmes et sur leur validation. L’utilisation de communications non
bloquante, permet d’exécuter à différentes fréquences plusieurs boucles sensori-motrices en pa-
rallèle et d’étudier comment plusieurs réponses asynchrones peuvent être fusionnées. Là où l’on
peut voir un problème (modification du comportement d’une architecture), on peut également
voir de nouvelles possibilités (exécution de boucles sensori-motrices en parallèle).
126
Chapitre 7
Conclusion et perspectives
127
Chapitre 7: Conclusion et perspectives
Cette thèse m’a permis de développer à la fois de nouveaux modèles pour l’apprentissage de
comportements - dans le temps et dans l’espace -, de nouveaux outils pour maı̂triser des réseaux
de neurones de très grande taille. A travers les limitations du système actuel, ces travaux m’ont
permis de discuter les éléments importants pour un système de sélection de l’action.
128
Chapitre 7: Conclusion et perspectives
même architecture. Dans un premier temps, j’ai montré comment une stratégie peut en complé-
ter une autre lorsqu’une modalité (la vision) est en défaut. J’ai ensuite étudié comment peut être
réalisée la fusion et la sélection de l’action avec un champ de neurones dynamique. Les tests ont
permis de mettre en évidence les limitations de chacune des stratégies. La principale limitation
est l’apprentissage non adaptatif des stratégies. Les travaux en cours visent à améliorer en ce
sens les algorithmes. J’ai mis en évidence que les propriétés de fusion et de sélection dépendent
principalement de la taille des attracteurs générés par les réponses des différentes stratégies. Je
discute alors de rendre dynamique la taille des attracteurs. Elle pourrait varier à partir d’un
paramètre de vigilance. Ce paramètre proviendrait de structures de plus haut niveau régulant le
comportement du robot à partir de motivations/buts particuliers. De plus, la force d’attraction
pourrait être pondérée par la saillance des réponses des différentes stratégies représentant alors
un niveau de confiance sur chacune des réponses. J’ai discuté également de la pertinence de
traiter des informations hétérogènes (temporelles vs spatiales) et de considérer l’hippocampe en
deux tranches distinctes. Je discute alors d’une fusion des deux tranches en une seule. L’en-
semble des informations (visuelles, motrices, dynamiques internes) pourraient se fusionner en
entrée de l’hippocampe dans le cortex enthorinal. Ce nouveau code pourrait alors être associé
à un mouvement comme cela est fait avec les associations lieux-mouvements. Ceci constituerait
alors un comportement réactif (réponses rapides). L’hippocampe permettrait l’apprentissage de
séquences temporelles de ces codes prédisant alors la suite du comportement du robot. Ceci
constituerait un comportement proactif (réponses à plus long terme). Néanmoins, cette fusion
ne résout pas la question de la sélection de l’action.
7.2 Perspectives
Les tests réalisés sur l’émergence d’un comportement d’imitation de bas niveau a montré que
l’apprentissage de la coordination visuo-motrice ne convergeait pas complètement. En effet, l’as-
sociation des informations proprioceptives du bras robotique est réalisée uniquement pour une
position visuelle précise codée sous forme d’un neurone. D’une position visuelle à l’autre, il est
alors possible de ne pas retrouver une posture proche du bras. Cette partie du travail fait ac-
tuellement l’objet de travaux avec l’utilisation de nouveaux algorithmes utilisant des attracteurs
dans l’espace moteur activés par des sensations visuelles.
Les tests réalisés sur la fusion/sélection de l’action ont permis de mettre en évidence les limi-
tations des deux stratégies utilisées (associations lieux-mouvements et séquences temporelles).
La première limitation provient de l’apprentissage des séquences temporelles. En effet, celui-ci
est réalisé en un coup et n’est plus modifiable par la suite. Il est alors indispensable que cette
stratégie soit adaptative de manière à prendre en compte les mouvements finaux du robot après
une prise de décision. Cette adaptation implique alors de faire converger les apprentissages sur le
bon timing. Un tel algorithme d’apprentissage est alors très complexe. En effet, s’il peut paraı̂tre
trivial de modifier des poids de connexions, il faut tout d’abord que le système soit capable de
détecter ce qu’il doit modifier et quand. Par exemple, l’architecture a appris la transition “1 - 2”
et on veut corriger le robot pour qu’il apprenne “1 - - - 2”. Le robot détecte “1”. Après un certain
temps, le robot va déclencher “2”, il applique alors la commande correspondante. Le professeur
voit alors le robot faire “2”, mais trop tôt alors il le corrige et le remet en “1”. Comment l’archi-
tecture peut elle détecter que la correction du professeur correspond à l’état précédent et pas à
la suite de la séquence ? Cette détection peut alors être en partie traitée par le mécanisme de
resynchronisation qui permet de retrouver les états cachés. Alors en faisant l’hypothèse que le
robot est capable de retrouver l’état dans lequel il était, comment retrouve-t-il le timing duquel
129
Chapitre 7: Conclusion et perspectives
il doit repartir ?
Les dynamiques internes utilisées pour la création des états cachés des séquences temporelles
sont générées par un ensemble d’oscillateurs. Ces oscillateurs permettent d’apporter un contexte
interne suffisamment riche pour lever les ambiguı̈tés des séquences, mais il en résulte néanmoins
une dynamique cyclique. Une amélioration possible serait de remplacer ces oscillateurs par un
réseau exhibant une dynamique chaotique. Une telle dynamique à un état différent à chaque
instant ; ceci apporterait donc la richesse suffisante pour la création des états cachés. De plus, une
dynamique chaotique étant déterministe, elle permettrait alors d’être utilisée avec le mécanisme
de resynchronisation.
Les dynamiques internes permettant la resynchronisation des séquences temporelles reposent
sur un mécanisme de création de chunks. Dans mes travaux, ces chunks sont engramméspar des
neurones. Une évolution du modèle serait alors d’étudier dans quelle mesure un tel mécanisme
est neurobiologiquement plausible, sous quelle forme ces chunks peuvent exister : sont-ils codés
par des neurones élémentaires ou sous forme de réseaux plus complexes ?
La stratégie d’associations lieux-mouvement ne permet pas de reconnaı̂tre rapidement un lieu.
En effet, l’apprentissage et la reconnaissance d’un lieu sont calculés après chaque panorama
visuel balayé par la caméra. Or, ce temps de balayage est important puisqu’il est d’environ sept
secondes. Il serait intéressant de ne plus faire la reconnaissance de lieux après chaque panorama,
mais après chaque prise de vue. Si l’amélioration de la vitesse du balayage du panorama permet
de reconnaı̂tre plus rapidement un lieu, elle ne permet pas au robot d’avancer beaucoup plus
vite. En effet, lorsque la vitesse du robot est trop importante, la caméra restitue des images
floues. Il y a alors ici un problème technologique. Il serait alors intéressant d’avoir des caméras
permettant de capturer plusieurs centaines d’images par secondes contrairement au matériel
actuel qui permet trente images par seconde au maximum.
Du coté de la reconnaissance de lieux, une fois qu’un lieu est appris, il n’est plus modifié. Si
l’environnement change nettement (objets déplacés ou même lumière du jour changeante), alors
le lieu n’est plus reconnu et le robot doit en apprendre un nouveau. Il serait intéressant que cette
stratégie puisse adapter un lieu déjà appris aux changements environnementaux.
La stratégie d’associations lieux-mouvements permet l’adaptation des mouvements dans les dif-
férents lieux déjà appris. Mais un robot devant apprendre plusieurs tâches (aller manger, aller
boire) peut être mené à associer plusieurs mouvements à un même lieu. Un tel mécanisme en-
traı̂ne une ambiguı̈té sur le mouvement à réaliser. Il est imaginable de lever cette ambiguı̈té à
partir de motivations permettant de rejoindre un but particulier. Se pose alors la question de
l’influence des motivations. Biaisent-elles la reconnaissance des lieux ? En effet, il ne paraı̂t pas
insensé que les cellules de lieux menant à de la nourriture aient une activité amplifiée par la
sensation de faim du robot. Cela suppose qu’en chaque lieu les mouvements associés sont en
direction des lieux menant à la nourriture. Les motivations biaisent-elles les mouvements pré-
dits ? Cela revient alors à ne plus seulement associer un lieu avec un mouvement, mais à associer
un lieu et une motivation avec un mouvement. En faisant l’hypothèse qu’en un lieu il est pos-
sible d’associer plusieurs mouvements, les motivations pourraient être utilisées pour amplifier
sélectivement l’activité du mouvement correspondant.
Une perspective interessante de mes travaux est le développement d’un modèle pour la sélection
de l’action. Comme les tests l’ont montrés, la fusion seule des réponses des différentes stratégies
permet une prise de décision, mais sans permettre au robot d’atteindre un objectif particu-
lier. Il y a alors deux améliorations qui pourraient permettre la prise de décision. La première
est l’ajout d’une valeur de confiance sur les réponses des différentes stratégies. Cette valeur de
confiance modulerait les activités des différentes réponses à partir de renforcements passés. Mais
130
Chapitre 7: Conclusion et perspectives
ce renforcement ne peut pas seulement “noter” des réponses motrices, car dans l’absolu, “aller à
gauche” n’est jamais un mauvais mouvement. Alors, on sent bien qu’ici il manque d’autres in-
formations permettant l’évaluation du comportement. Les stratégies prédisent les mouvements
à réaliser à partir d’informations sensorielles et/ou proprioceptives. Ces informations forment
alors un contexte plus ou moins riche qui permet au robot de se localiser dans son comporte-
ment actuel. Le renforcement d’un mouvement prédit pourrait aussi se faire par rapport à ce
contexte sensoriel. Ceci reviendrait à rendre les différentes stratégies adaptatives comme évoqué
précédemment en modulant leurs poids à partir d’un signal de renforcement. Mais cela pose la
question de définir proprement ce signal de renforcement. En effet, on peut imaginer au moins
deux réponses à cette question. La première, est que le renforcement est fourni par le professeur
soit directement en donnant un signal “c’est bien” ou “ce n’est pas bien”, soit en corrigeant le ro-
bot (le tirer avec une laisse). Dans les deux cas, le robot évaluerait chacune des stratégies avec la
correction fournie. La seconde solution serait que le robot détermine seul le renforcement à partir
des informations (sensorielles) à sa disposition lui permettant d’évaluer s’il se rapproche ou non
de son objectif. Cette seconde solution implique alors d’introduire une notion de but [Hasson et
Gaussier, 2010].
Dans mes travaux, la sélection de l’action est réalisée par une règle donnée a priori (aller vers
l’attracteur le plus proche). Une première amélioration serait de ne plus donner de règle sur
comment sélectionner le bon mouvement. La taille des attracteurs pourrait être modifiée dyna-
miquement. Une première implémentation consisterait à faire grandir les attracteurs jusqu’à ce
qu’ils attirent le robot. Dans un second temps, on pourrait introduire un paramètre de vigilance
permettant de contrôler la taille des attracteurs. Plus le robot serait vigilent, plus les attracteurs
rétréciraient et réciproquement. De cette manière, un attracteur permettant au robot d’aller sa-
tisfaire un manque de nourriture pourrait être grossi par une motivation particulière, alors que
des attracteurs ne répondant pas à une satisfaction particulière pourraient être diminués. De
cette manière, ce ne serait plus directement le plus proche attracteur/but qui serait choisi, mais
le plus pertinent vis à vis d’une motivation.
Au cours de mes travaux, j’ai développé des outils permettant la modélisation, la communi-
cation et l’exécution de réseaux de neurones répartis sur plusieurs unités de calcul. Ces outils
ont permis de concevoir de très grandes architectures neuronales réparties en une vingtaine de
réseaux de neurones. Si maintenant les outils permettant leur développement existe, il manque
des outils permettant leur déploiement, leur monitoring/debug et le traitement des résultats
obtenus. Il faudra faire particulièrement attention que de tels outils ne perturbent pas l’exécu-
tion des architectures, car ils impliquent des communications réseaux (monitoring distant) et
des accès disque dur (sauvegarde de résultats). De plus, les différents outils utilisés fonctionnent
sur le système d’exploitation Linux en environnement utilisateur (et non en mode noyau), ce
qui implique que ces différents accès font des appels systèmes qui consomment un temps non
négligeable sur les exécutions. Il faut alors non seulement faire attention aux communications,
mais aussi au respect des contraintes de temps réel des architectures. Aujourd’hui, les différents
réseaux d’une architecture sont déployés manuellement par les chercheurs. Ceci demande alors
un effort non négligeable pour ne pas oublier de déployer tel ou tel réseau de neurones après
l’avoir modifié. De plus, lors de l’exécution de l’architecture, le lancement de chaque réseau en
mode “debug” (avec visualisation des activités de neurones sur une interface graphique) ou en
mode aveugle doit être décidé a priori. Il devient de plus en plus difficile de visualiser effica-
cement les activités d’une architecture neuronale lorsqu’il y a une fenêtre pour chaque réseau
distribué. Pour visualiser vingt réseaux de neurones répartis sur quatre machines de calcul, il
faudrait cinq grands écrans par machine ; donc vingt écrans. Ceci n’est absolument pas réaliste
131
Chapitre 7: Conclusion et perspectives
surtout quand l’une des machines se trouve sur le robot même. Il est alors nécessaire de mettre
en place un nouvel outil de monitoring à distance. Cet outil, de la même manière que Coeos
pourrait fonctionner sur un mécanisme d’onglets. Un premier onglet serait une vue globale de
l’architecture permettant de visualiser la bonne exécution de chacun des réseau à travers un
jeu de couleurs (un réseau de neurones en rouge serait en défaut alors qu’en vert pour signifier
que tout va bien. On peut imaginer des couleurs intermédiaires pour d’autres niveaux d’erreur).
D’autres onglets pourraient permettre de visualiser en même temps des activités de différents
groupes de neurones répartis sur plusieurs machines. D’autre part, pour traiter correctement
les résultats, les différentes machines de calculs utilisées pour exécuter une même architecture
doivent être synchronisées manuellement sur un serveur de temps (service ntp : net time proto-
col). Cette phase manuelle est indispensable pour s’assurer au maximum de pouvoir recouper
les différentes activités des neurones entre elles pour pouvoir les traiter de manière cohérente.
Finalement, de tel outils peuvent paraı̂tre secondaires, car ils ne sont pas nécessaires au bon fonc-
tionnement du robot, mais ils sont vitaux pour le chercheur qui doit s’en assurer et sortir des
résultats le démontrant. La parallélisation d’une architecture neuronale soulève la question de la
resynchronisation des boucles sensori-motrices. En effet, l’utilisation d’une horloge externe est
acceptable pour la publication de résulats et le monitoring. Mais pour le fonctionnement même
d’une architecture, c’est la dynamique des neurones qui doit permettre la resynchronisation des
boucles sensori-motrices sans horloge extérieure.
132
Chapitre 8
Références bibliographiques
133
Bibliographie personelle
Chapitre de livre
[Lagarde et al., 2010] Lagarde, M., Andry, P., Gaussier, P., Boucenna, S., and Hafemeister, L.
(2010). Proprioception and imitation : on the road to agent individuation. In Sigaud, O. and
Peters, J., editors, From Motor Learning to Interaction Learning in Robots, volume 264, pages
43–63. Springer.
134
Bibliographie personelle
135
Références
[Albus, 1975] Albus, J. S. (1975). A new approach to manipulator control : the cerebellar
model articulation controller (cmac. Journal of Dynamic Systems, Measurement, and Control,
97:220–227.
[Alexander et al., 1986] Alexander, G. E., DeLong, M. R. et Strick, P. L. (1986). Parallel
organization of functionally segregated circuits linking basal ganglia and cortex. Annual
Review of Neuroscience, 9:357–381.
[Amari, 1977] Amari, S. (1977). Dynamic of pattern formation in lateral-inhibition type by
neural fields. Biological Cybernetics, 27:77–87.
[Andry, 2002a] Andry, P. (2002a). Thèse : Apprentissage et interactions via imitation : appli-
cation d’une approche développementale à la robotique autonome.
[Andry, 2002b] Andry, P. (2002b). Thèse : Apprentissage et interactions via imitation : applica-
tion d’une approche développementale à la robotique autonome. Thèse de doctorat, University
of Cergy-Pontoise.
[Andry et al., 2002] Andry, P., Gaussier, P. et Nadel, J. (2002). From visuo-motor coor-
dination to imitation : an autonomous robot perspective. In Workshop on Dynamic Motor
representations, Institut Henri Poincaré, IHP, France. Conférence invitée.
[Arrowsmith et Place, 1990] Arrowsmith, D. et Place, C. (1990). An Introduction to Dyna-
mical Systems. Cambridge University Press.
[Bailly, 2007] Bailly, D. (2007). Apprentissage non supervisé d’association visuo-motrices pour
un robot autonome. Rapport technique, ETIS.
[Bakker et Kuniyoshi, 1996] Bakker, P. et Kuniyoshi, Y. (1996). Robot see, robot do : An
overview of robot imitation. In In AISB96 Workshop on Learning in Robots and Animals,
pages 3–11. springer.
[Balkenius et al., 2009] Balkenius, C., Morén, J., Johansson, B. et Johnsson, M. (2009).
Anticipatory models in gaze control : a developmental model. Adv. Eng. Informat.
[Bandura, 1969] Bandura, A. (1969). Social learning theory of identificatory processes. Hand-
book of socialization theory and research, pages 213–262.
[Bandura, 1971] Bandura, A. (1971). Psychological Modeling : Conflicting Theories.
[Banquet et al., 1997] Banquet, J. P., Gaussier, P., Dreher, J. C., Joulain, C., Revel,
A., Günther, W. et Modélisation, N. E. (1997). Space-time, order, and hierarchy in
fronto-hippocampal system : A neural basis of personality. In In Mattews, G., (Ed.), Cogni-
tive Science Perspectives on Personality and Emotion. Elsevier Science BV, pages 123–189.
Elsevier Science BV.
[Beeman et al., 2007] Beeman, D., Wang, Z., Edwards, M., Bhalla, U., Cornelis, H. et
Bower, J. (2007). The genesis 3.0 project : a universal graphical user interface and database
136
Références
137
Références
[Corke, 1994] Corke, P. I. (1994). Visual control of robot manipulators – a review. In Visual
Servoing, pages 1–31. World Scientific.
[Daucé et Doyon, 1998] Daucé, E. et Doyon, B. (1998). Novelty learning in a discrete time
chaotic network. In Proceedings of International Conference on Artificial Neural Networks
(ICANN), volume 2, pages 1051–1056.
[Daucé et al., 2002] Daucé, E., Quoy, M. et Doyon, B. (2002). Resonant spatiotemporal
learning in large random recurrent networks. Biological Cybernetics, 87(3):185–198.
[Dautenhahn, 1995] Dautenhahn, K. (1995). Getting to know each other - artificial social
intelligence for autonomous robots. Robotics and Autonomous System, 16(2-4):333–356.
[Degallier et al., 2006] Degallier, S., Santos, C., Righetti, L. et Ijspeert, A. (2006). Mo-
vement generation using dynamical systems : a humanoid robot performing a drumming task.
In IEEE-RAS International Conference on Humanoid Robots (HUMANOIDS06).
[Demuth et Beale, 2006] Demuth, H. et Beale, M. (2006). Neural Network Toolbox : For Use
with MATLAB. Mathworks.
[Dolle et al., 2008] Dolle, L., Khamassi, M., Girard, B., Guillot, A., et Chavarriaga,
R. (2008). Analyzing interactions between navigation strategies using a computational model
of action selection. volume Spatial Cognition VI, pages 71–86. Springer.
[Dominey, 2005] Dominey, P. F. (2005). Emergence of grammatical constructions : evidence
from simulation and grounded agent experiments. Connection Science, 17(3-4):289–306.
[Dominey et al., 1995] Dominey, P. F., Arbib, M. A. et Joseph, J.-P. (1995). A model of
cortico-striatal plasticity for learning oculomotor associations and sequences. Journal of Cog-
nitive Neuroscience, 7(3):311–336.
[Dominey et Ramus, 2000] Dominey, P. F. et Ramus, F. (2000). Neural network processing of
natural language : I. sensitivity to serial, temporal, and abstract structure of language in the
infant. Language and Cognitive Processes, 15(1):45–85.
[Doya, 2000] Doya, K. (2000). Complementary roles of the basal ganglia and the cerebellum in
learning and motor control. Current opinion in neurobiology, 10(6):732–739.
[Duran et al., 2007] Duran, B., Metta, G. et Sandini, G. (2007). Emergence of smooth pur-
suit using chaos. Self-Adaptive and Self-Organizing Systems, International Conference on,
0:269–272.
[Durbin et Rumelhart, 1989] Durbin, R. et Rumelhart, D. E. (1989). Product units : a com-
putationally powerful and biologically plausible extension to backpropagation networks. Neu-
ral Comput., 1(1):133–142.
[Elman, 1990] Elman, J. L. (1990). Finding structure in time. Cognitive Science, 14(2):179–211.
[Gaussier, 1992] Gaussier, P. (1992). Simulation d’un système visuel comprenant plusieurs
aires corticales : Application à l’analyse de scènes. Thèse de doctorat, University of Paris Sud
Centre d’Orsay.
[Gaussier et al., 1997] Gaussier, P., Moga, S., Banquet, J. et Quoy, M. (1997). From
perception-action loops to imitation processes : A bottom-up approach of learning by imi-
tation. In Socially Intelligent Agents, pages 49–54, Boston. AAAI fall symposium.
[Gaussier et al., 1998] Gaussier, P., Moga, S., Banquet, J.-P. et y, M. Q. (1998). From
perception-action loops to imitation processes. Applied Artificial Intelligence (AAI), 1(7):701–
727.
138
Références
139
Références
140
Références
141
Références
[Moga, 2001] Moga, S. (2001). Imiter : une nouvelle voie pour l’apprentissage de robots auto-
nomes. Thèse de doctorat, Thèse de l’Université Cergy-Pontoise.
[Moga et Gaussier, 1999] Moga, S. et Gaussier, P. (1999). A neuronal structure for learning
by imitation. In Floreano, D., Nicoud, J.-D. et Mondada, F., éditeurs : Lecture Notes
in Artificial Intelligence - European Conference on Artificial Lif e ECAL99, pages 314–318,
Lausanne.
[Muller et al., 1996] Muller, R. U., James B Ranck, J. et Taube, J. S. (1996). Head direction
cells : Properties and functional significance. Current Opinion in Neurobiology, 6(2):196–206.
[Münch et al., 1994] Münch, S., Kreuziger, J., Kaiser, M. et Dillmann, R. (1994). Robot
programming by demonstration (rpd) - using machine learning and user interaction methods
for the development of easy and comfortable robot programming systems. In Proceedings of
the 24th International Symposium on Industrial Robots, pages 685–693.
[Nadel, 1986] Nadel, J. (1986). Imitation et communication entre jeunes enfants. Presse Uni-
versitaire de France, Paris.
[Nadel et Potier, 2002] Nadel, J. et Potier, C. (2002). Imitez, imitez, il en restera toujours
quelque chose : le statut developpemental de l’imitation dans le cas d’autisme. ENFANCE
PARIS, 54:76–85.
[Nehaniv et Dautenhahn, 2002] Nehaniv, C. L. et Dautenhahn, K. (2002). The correspon-
dence problem. pages 41–61.
[O’Keefe et Dostrovsky, 1971] O’Keefe, J. et Dostrovsky, J. (1971). The hippocampus as
a spatial map. preliminary evidence from unit activity in the freely-moving rat. Brain Res,
34(1):171–175.
[Pardowitz et al., 2007] Pardowitz, M., Knoop, S., Dillmann, R. et Zollner, R. (2007).
Incremental learning of tasks from user demonstrations, past experiences, and vocal comments.
SMC-B, 37(2):322–332.
[Pardowitz, 2007] Pardowitz, M. ; Dillmann, R. (2007). Towards life-long learning in household
robots : the piagetian approach. In 6th IEEE International Conference on Development and
Learning, Proceedings.
[Pearce et al., 1998] Pearce, J. M., Roberts, A. D. L. et Good, M. (1998). Hippocampal
lesions disrupt navigation based on cognitive maps but not heading vectors. IN, 396:75–77.
[Piaget, 1945] Piaget, J. (1945). La formalisation du symbole chez l’enfant. Imitation, jeu et
rêve. Image et représentation. Neuchatel ; Paris : Delachaux et Niestlé.
[Piaget, 1970] Piaget, J. (1970). Structuralism. page 153.
[Pollack, 1990] Pollack, J. B. (1990). Recursive distributed representation. Artificial Intelli-
gence, 46:77–105.
[Quoy et al., 2001] Quoy, M., Banquet, J.-P. et Daucé, E. (2001). Learning and control with
chaos : From biology to robotics. Behavioral and Brain Sciences, 24(05):824–825.
[Quoy et al., 2000] Quoy, M., Moga, S., Gaussier, P. et Revel, A. (2000). Parallelization of
neural networks using PVM. Lecture Notes in Computer Science, 1908:289–296.
[Rizzolatti et al., 1996] Rizzolatti, G., Fadiga, L., Gallese, V. et Fogassi, L. (1996). Pre-
motor cortex and the recognition of motor actions. Cognitive Brain Research, 3:131–141.
[Roberts, 1941] Roberts, D. (1941). Imitation and suggestion in animals. bulletin of animal
behaviour. 1:11–19.
142
Références
[Schaal, 1999] Schaal, S. (1999). Is imitation learning the route to humanoid robots ? Trends
in cognitive sciences, 3(6):232–242.
[Schaal et al., 2007] Schaal, S., Mohajerian, P. et Ijspeert, A. (2007). dynamics systems
vs. optimal control - a unifying view, pages 425–445. Numéro 165.
[Schaal et al., 2001] Schaal, S., Vijayakumar, S., D’Souza, A., Ijspeert, A. et Nakanishi,
J. (2001). real-time statistical learning for robotics and human augmentation. In international
symposium on robotics research.
[Schöner et al., 1995] Schöner, G., Dose, M. et Engels, C. (1995). Dynamics of behavior :
Theory and applications for autonomous robot architectures. Robotics and Autonomous Sys-
tems, 16(4):213–245.
[Schultz et al., 2000] Schultz, S., Panzeri, S., Rolls, E. et Treves, A. (2000). Quantitative
analysis of a Schaffer collateral model, chapitre 14, pages 257–272. Cambridge University
Press.
[Schultz, 1998] Schultz, W. (1998). Predictive reward signal of dopamine neurons. J Neuro-
physiol, 80(1):1–27.
[Servan-Schreiber et al., 1989] Servan-Schreiber, D., Cleeremans, A. et McClelland,
J. L. (1989). Learning sequential structure in simple recurrent networks. pages 643–652.
[Siapas et Wilson, 1998] Siapas, A. G. et Wilson, M. A. (1998). Coordinated interactions
between hippocampal ripples and cortical spindles during slow-wave sleep. 21(5):1123–1128.
[Simon, 1974] Simon, A. H. (1974). How big is a chunk ? Science, 183(4124):482–488.
[Spence, 1937] Spence, K. W. (1937). Experimental studies of learning and the higher mental
processes in infra-human primates. Psychological Bulletin, 34(10):806–850.
[Thorpe, 1963] Thorpe, W. (1963). Learning and instinct in animals. Cambridge, MA : Har-
vard University Press.
[Tritton et Gollub, 1978] Tritton, D. J. et Gollub, J. P. (1978). Physical Fluid Dynamics.
American Journal of Physics, 46:441–441.
[Tyrrell, 1993] Tyrrell, T. (1993). The use of hierarchies for action selection. Adapt. Behav.,
1(4):387–420.
[Vanni-Mercier et al., 2009] Vanni-Mercier, G., Mauguière, F., Isnard, J. et Dreher, J.
(2009). The hippocampus codes the uncertainty of cue-outcome associations : an intracranial
electrophysiological study in humans. Neuroscience, 29(16):5287–5294.
[Waelbroeck, 1995] Waelbroeck, H. (1995). Deterministic chaos in tropical atmospheric dy-
namics. the Atmospheric Sciences, 52(13):2404–2415.
[Whiten et Ham, 1992] Whiten, A. et Ham, R. (1992). On the nature and evolution of imita-
tion in the animal kingdom : reappraisal of a century of research. In Slater, P., Rosenblatt,
J., Beer, C. et Milinski, M., éditeurs : Advances in the study of behavior, pages 239–283,
San Diego, CA. Academic Press.
[Widrow et Hoff, 1960] Widrow, B. et Hoff, M. (1960). Adaptive switching circuits. In IRE
WESCON Convention Record, volume 4, pages 96–104.
[Zazzo, 1957] Zazzo, R. (1957). Le problème de l’imitation chez le nouveau-né. Enfance, 2:135–
142.
[Zell et al., 1993] Zell, A., Mamier, G., Hübner, R., Schmalzl, N., Sommer, T. et Vogt,
M. (1993). Snns : An efficient simulator for neural nets. In MASCOTS ’93 : Proceedings of the
143
Références
144
Chapitre 9
Annexes
145
Chapitre 9: Annexes
1234567368279A782BA1C7
1DE621365BA9F16257CC7
1
3 4
2
Fig. 9.1: Schémas mettant en évidence le rôle de la couche d’abstraction matériel. Cette couche permet le contrôle
de tout type de matériel robotique avec une même architecture neuronale
146
Chapitre 9: Annexes
12345675
1DE621365BA9F16257CC7
27867
1234567368279A782BA1C7
1667A67
64271979
2BDB695DB
23765BA
5A6722BF9C1667A67
Fig. 9.2: Schémas détaillant le fonctionnement de la communication avec le robot Aibo utilisant le langage URBI.
La couche neuronale fait appelle à la couche d’abstraction matérielle pour accéder au robot. La couche matérielle
envoie alors une requête au robot puis se met en attente. Lorsque le thread de réception a reçue les données, il
interrompt l’attente, débloquant ainsi la suite de l’exécution de l’architecture neuronale.
– f speed joint permet d’envoyer une commande en vitesse à un moteur particulier défini par
une chaı̂ne de caractère. Cette fonction récupère la valeur d’un neurone du groupe de neurone
précédent (entre −1 et 1, le signe définissant le sens de rotation) et la transmet à la couche
d’abstraction matérielle.
– f joint get proprio permet de récupérer la valeur proprioceptive d’un moteur particulier défini
par une chaı̂ne de caractère. La valeur récupérée (entre 0 et 1) est alors l’activité du neurone
de ce groupe.
– f sensor permet de récupérer la valeur d’un capteur particulier défini par une chaı̂ne de ca-
ractère. La valeur récupérée (entre 0 et 1) est alors l’activité du neurone de ce groupe.
– f grabimages permet de récupérer une image d’une caméra particulière définie par une chaı̂ne
de caractère.
Toutes ces fonctions font uniquement des appels à la couche d’abstraction matérielle du simula-
teur. C’est cette couche qui se charge d’envoyer et recevoir les requêtes au matériel même. Dans
le cas d’Aibo, la communication asynchrone implique que la couche matérielle envoie la requête
puis attende sur un sémaphore (figure 9.2). Lorsque le thread de réception reçoit la donnée
attendu, alors il termine l’attente. Ce mécanisme est indispensable pour répondre au fonction-
nement synchrone des groupes de neurones tout en s’assurant que l’information attendue soit
effectivement disponible.
Dans le cadre du projet européen Feelix Growing, nous devions adapter nos algorithmes pour un
robot humanoı̈de Nao3 . Pour faciliter l’intégration de Nao avec le simulateur, le choix a été fait
de réutiliser les fonctions développées pour le robot Aibo. De la même manière que le robot Aibo,
Nao communique avec le simulateur avec le langage URBI (en cours de développement à cette pé-
riode, la caméra avait de faibles performances). De manière à permettre au constructeur d’amélio-
rer la gestion de la caméra de Nao, j’ai développé un programme permettant de tester les perfor-
mances de la caméra du robot avec différents paramètres. Ce programme a alors permis de com-
parer les performances de la caméra d’Aibo avec celle de Nao, puis d’améliorer les performances de
la caméra de Nao. Ce programme a été mis sous licence GPL (General Public License) (téléchar-
geable à l’adresse http ://www-etis.ensea.fr/Equipes/Neuro/telechargement/AiboCam.tar.gz/view).
3
Robot humanoı̈de Aldebaran
147
Chapitre 9: Annexes
148
Chapitre 9: Annexes
E6EF 1EDF4343F87!73DF7F
1234325
123456789AB
123467389 57434
7A3
C87D38E6EF9A4 57434
A7B7C7DD 7A3
7DE3"7843%6&D3'A3A&4(
7DE3D7D3"3#3$%6&D 7DE3"7843)6&D3'A3A&4(
Fig. 9.3: Schémas détaillant le fonctionnement de la communication entre les différents ordinateurs et les maté-
rielles robotiques. Les trois machines de calcul sont connectées avec une bande passante de 1 Gbps à un routeur
sans fil via des câbles Ethernet. Les deux routeurs sans fil permettent de faire communiquer les machines de
calculs avec le matériels embarqués sur le robot avec une bande passante de 54Mbps. Le robot embarque deux
ordinateurs (La Robubox contrôlant la plateforme mobile à bas niveau et l’ordinateur ajouté dans le coffre). Ces
deux ordinateurs sont connectés directement l’un à l’autre via un câble Ethernet avec une bande passante de 100
Mbps. L’ordinateur ajouté dans le coffre, ainsi que le bras robotique sont tous les deux connectés au routeur sans
fil via des câbles Ethernet avec une bande passante de 100 Mbps.
FA
FDCD
B2F6F82
9F8B
F2A63B4712345678
12A6792CA6CCA75647
9BA6478569AB2CDE364
92B67379ABC72BDE
Fig. 9.4: A) Schémas de la boite contenant les cartes électroniques. Dans le fond de la boı̂te (en haut) sont fixés le
basicstamp et la carte mini SSCII. Sur un étage au dessus (en bas) la carte d’alimentation. B) Schémas détaillant
le montage de la caméra, des deux moteurs en configuration Pan-Tilt, de la boussole électronique, de la boite
contenant les cartes électroniques ainsi que du coffre du robulab10
Pour permettre le bon fonctionnement des architectures de contrôle pour la réalisation de tâches,
149
Chapitre 9: Annexes
il a fallu ajouter sur le robot une caméra montée sur deux moteurs en configuration Pan-Tilt, une
boussole électronique et les cartes électroniques permettant la communication entre l’ordinateur
et les matériels(figure 9.4). Ce matériel se trouve essentiellement sur le coffre de la plateforme
mobile. Les cartes électroniques (un basicstamp9 pour la lecture des valeurs de la boussole, une
carte mini SSCII pour l’envoi des consignes motrices aux moteurs et une carte d’alimentation
permettant d’alimenter ces différents matériels) sont regroupées dans une boite faisant office de
cou pour le robot. L’alimentation des cartes électronique et du matériel y étant connecté (moteurs
Pan-Tilt, boussole électronique) est fournie par une batterie au plomb de 12 volts située dans le
coffre. Un connecteur vingt cinq broches permet de relier la batterie à la carte d’alimentation
ainsi que l’ordinateur dans le coffre aux cartes électroniques. Ce montage permet de rendre plus
facilement amovible l’ensemble du matériel (caméra, boussole, moteurs, cartes électroniques).
Les moteurs ainsi que la caméra sont fixés sur la boite contenant les cartes électroniques. La
boussole électronique est fixée en haut d’un mat (permettant d’éviter les parasites générés par
les moteurs du montage Pan-Tilt) lui même fixé entre le coffre et la boite.
9
Carte programmable Parallax
150
Chapitre 9: Annexes
Fig. 9.5: Photo du joystick monté sur le robot mobile. Ce montage permet de se rendre compte du comportement
du robot lorsqu’il est tiré avec une laisse par le professeur.
Dans un premier temps, avant de se lancer dans la construction du cou artificiel, un simple
joystick a été fixé sur le robot. Une laisse a été attachée autour du manche du joystick. De
cette manière, lorsque le professeur tire sur la laisse, le manche du joystick est tiré dans la
direction du professeur. En testant ce dispositif, on se rend alors compte que le joystick n’est
pas tiré soit à droite soit à gauche comme cela est fait lorsque le joystick est en main, mais
il également tiré vers l’avant (le professeur se trouve devant le robot). Cet effet n’a pas de
grandes conséquences si ce n’est que le débattement utilisé est finalement plus restreint que
le débattement total du joystick. Ceci a impliqué une légère modification logicielle pour tenir
compte de ce changement de débattement. Globalement, ce dispositif fonctionne correctement
et permet de corriger la trajectoire du robot (Lorsque le professeur tire la laisse dans la direction
désirée, le robot va suivre cette direction en tournant). Finalement, lorsque le robot se trouve
dans la bonne direction, alors le joystick revient en position centrale.
151
Chapitre 9: Annexes
12 32
Fig. 9.6: Illustration du montage du cou artificiel sur le robot. A) Partie haute du robot avant l’installation du
cou. Elle est composée d’une boite contenant différentes cartes électronique (en blanc), d’un moteur (en noir) qui
permet de tourner la caméra (en vert) sur un panorama. B) Partie haute du robot après l’installation du cou
artificiel. Le cou se compose d’un anneau (en gris) autour duquel la laisse est attachée, d’un mini joystick (en
bleu) et d’un ressort (en rouge à droite) permettant le retour en position initiale.
floues et les angles des points d’intérêt seraient modifiés. Par conséquent, la caméra reste fixée
à son support (la boite électronique) et le cou vient s’ajouter autour (figure 9.7).
Fig. 9.7: Vue du dessus du montage du cou artificiel. De manière à rendre plus claire le schéma, les supports sur
lesquels sont fixés le joystick et le ressort ainsi que ceux sur lesquels reposent l’anneau du cou n’apparaissent pas
ici. Du côté gauche de l’anneau, le manche du joystick (en bleu) est entouré par une bague (en orange), celle-ci
étant fixé au cou grâce à deux vis. Du côté droit de l’anneau, le ressort (en rouge) est fixé à une bague (en orange)
également fixé à l’anneau du cou grâce à deux vis. Au centre de l’anneau, le montage Pant-Tilt (en gris foncé)
supportant la caméra (en vert). Ce montage est indépendant du cou artificiel, il est directement fixé à la boı̂te
contenant les cartes électronique (grand rectangle blanc)
Cette première version du cou artificiel a été montée sur le robot mobile comme indiqué précé-
demment (figure 9.8). La laisse était attachée autour du cou du robot de manière à permettre
au professeur de tirer le robot dans la direction désirée. Les premiers tests ont essentiellement
porté sur les aspects mécaniques du cou. Ils ont mis en évidence que le montage souffrait d’un
problème bloquant. En effet, la trop grande proximité du joystick et du ressort avec l’anneau du
cou empêche certains mouvements du cou : lorsque l’on tire sur le cou, le joystick ou le ressort
font rapidement contact avec l’anneau.
152
Chapitre 9: Annexes
Fig. 9.8: Photo de la première version du cou artificiel monté sur un robot mobile tenu en laisse.
La conception du cou a alors été repensée de manière à ne plus avoir ce problème. Le nouveau
montage a particulièrement été centré sur la position du joystick de manière à ce qu’il se trouve
au centre de l’anneau du cou. Cette nouvelle contrainte a impliqué de revoir comment le montage
Pan-Tilt ainsi que la caméra pouvait être fixé sans gêner le comportement des algorithmes qui
les exploitaient. De plus, il a également fallu revoir le dispositif permettant le retour du cou en
position initiale en retirant le ressort précédemment sur un des côtés de l’anneau du cou. Ces
nouvelles contraintes ont été intégrées dans le nouveau cou artificiel (figure 9.9).
2 32 12
Fig. 9.9: A) Illustration du montage du cou artificiel sur le robot. Le support inférieur du cou est fixé à la boı̂te
contenant les cartes électroniques de la même manière que le montage Pan-Tilt l’est avec le support supérieur.
De cette manière, le cou est un seul et unique bloc amovible. B) Une fois le cou monté sur le robot, en vue de
dessus, seule la caméra ainsi que son support sont visibles. C) Sous le support de la caméra, le montage du cou
artificiel. Le manche joystick (en bleu) est guidé par deux lamelles (en orange) qui sont fixées à l’anneau du cou
(en gris). De cette manière, lorsque le professeur tire sur le cou, les lamelles entraı̂ne le manche du joystick. Pour
revenir en position initiale, quatre ressorts ont été monté “couchés” qui lorsque le cou est tiré, bloquent sur des
entretoises métalliques (quatre points noirs).
Avec ce nouveau dispositif, le montage Pan-Tilt avec la caméra est fixé à un nouveau support
(support supérieur du cou). Ce support n’est pas mobile, il est directement fixé au support
inférieur lui même fixé à la boite contenant les cartes électroniques. Entre ces deux supports se
trouve le montage du cou artificiel. Le manche du joystick se trouve maintenant au centre du cou
permettant ainsi d’éviter tout contact avec l’anneau. Pour entraı̂ner le manche, deux lamelles
153
Chapitre 9: Annexes
ont été perpendiculairement fixées à l’anneau du cou. Chacune des lamelles a un trou en son
centre laissant passer le manche du joystick. Pour permettre le retour en position initiale, quatre
ressorts en position couchée sont fixés aux extrémités des lamelles. En faisant contact avec les
quatre entretoises (fixant les supports supérieur et inférieur), ce mécanisme permet le retour en
position initiale. Un des avantages de cette nouvelle version du cou est qu’il est fabriqué en un
bloc. Ceci permet de le rendre beaucoup plus facilement amovible, d’autant plus que les attaches
avec la boite contenant les cartes électroniques sont identiques à celles de la caméra.
En plus du dispositif avec le joystick, cette version du cou artificiel accueille une série de huit
capteurs de pression. Ces capteurs sont disposés autour de l’anneau couvrant ainsi la quasi
totalité de la surface extérieure de l’anneau. De manière à permettre une certaine “élasticité”,
ces capteurs sont placés entre deux mousses de 4mm chacune. Ce nouvel ensemble n’est pas
fixé directement à l’anneau du cou, mais il est suffisamment proche de son périmètre pour être
serré suffisamment pour ne pas tourner autour de l’anneau. L’ajout de ces capteurs résulte d’une
réflexion faite sur les éléments constitutifs d’un cou. En effet, si un joystick permet de savoir
dans quelle direction le robot est tiré, il est difficile d’affirmer qu’un mécanisme équivalent est
plausible. De manière à permettre de tester comment le robot peut être dirigé, les capteurs ont
donc été ajoutés. Le traitement des valeurs retournées par l’ensemble des capteurs est ensuite
laissé libre au développeur de l’architecture de contrôle. La carte électronique permettant de
recueillir les valeurs des capteurs n’étant pas terminée, le dispositif tactile n’a pu être testé. En
ce qui concerne la partie mécanique du cou, un nouveau problème est apparu lors des premiers
tests. Lorsque le professeur tire sur la laisse, tout se déroule correctement : le cou est tiré dans
la bonne direction et entraı̂ne le joystick correctement. Mais lorsque le professeur tire la laisse
en tournant, alors l’anneau du cou tourne également. Cette rotation de l’anneau n’a aucune
influence supplémentaire sur le joystick n’est donc pas répercutée sur la direction prise par le
joystick. Ce problème n’était pas apparu avec la version précédente du cou, car les positions du
joystick et du ressort fixés à l’anneau et diamétralement opposés empêchaient cette rotation. Ce
nouveau problème ne permet donc pas d’exploiter correctement le cou artificiel tel quel.
Fig. 9.10: A) Illustration du montage du cou artificiel sur le robot. Le support inférieur accueil un jeu de glissières
(en violet) permettant les translations du cou, mais retirant la rotation indésirable. B) Sous le support de la
caméra, le montage du cou artificiel. Pour plus de clarté, les éléments constituant le précédent montage ont été
rendu moins opaques. On observe alors mieux le montage de l’anneau du cou sur les deux jeux de glissières (en
violet).
Il est apparu que ce nouveau problème n’était pas simple à régler. En effet, la majorité des
solutions pouvant résoudre ce problème implique de bloquer ou fortement limiter la mobilité de
154
Chapitre 9: Annexes
l’anneau. Ce qui n’est pas acceptable, car tout l’intérêt du cou artificiel est perdu. Néanmoins,
une solution semble viable. Elle consiste à fixer l’anneau sur un jeu de glissières (figure 9.10).
L’anneau serait alors fixé sur un premier jeu de deux glissières. Ces glissières seraient alors
elles même fixées sur deux autres glissières positionnées à la perpendiculaire des premières. Ce
nouveau dispositif permettrait alors de permettre tous les mouvements en translation du cou
et de supprimer toutes rotations de celui-ci. Ce montage reste aujourd’hui à réaliser, mais il
ne remettrait nullement en cause le dispositif actuel. Les glissières constitueraient un “étage”
supplémentaire du dispositif global sur le support inférieur du cou.
155