Nous avons présenté différentes techniques d'apprentissage possédant chacune leurs propres spécifications : les réseaux de neurones peuvent apprendre à mimer des fonctions mathématiques à partir d'une base d'exemples, l'apprentissage par renforcement permet d'apprendre des stratégies sans intervention extérieure, ni même d'exemples, enfin les algorithmes évolutionnistes peuvent faire évoluer des comportements afin d'en améliorer les performances. Cependant ces travaux sur l'apprentissage n'étaient pas toujours appliqués à la robotique ;de plus les premiers travaux appliqués à la robotique, étaient simulées sur un ordinateur. Rapidement, des différences notables entre le monde simulé et l'environnement réel ont empêché une transposition exacte des résultats simulés vers de véritables plates-formes. C'est pour cette raison que la nécessité d'expérimenter les méthodes proposées sur de véritables robots mobiles s'est faite ressentir. Parmi les contraintes imposée : les temps d'apprentissage doivent être inférieurs aux temps de décharge des accus, les méthodes doivent être robustes vis-à-vis des pannes, de la décharge des batteries et du bruit, qu'il s'agisse aussi bien de celui des capteurs, que celui des actionneurs. Ainsi un algorithme d'apprentissage compétent dans sa version simulée pourra être totalement incompétent dans sa version réelle. On peut citer l'exemple d'un robot chargé d'une tâche d'exploration, dont l'algorithme rétribue l'action suivant la distance parcourue sans rencontrer d'obstacle. La version simulée sur ordinateur se montre très performante alors que dans le cas pratique, le robot ne fait que tourner sur lui-même, la distance étant calculée par le nombre de tours de roue l'algorithme récompense cette action pensant que le robot parcourt une grande distance sans rencontrer d'obstacle.
Comme nous l'avons vu, de nombreux algorithmes d'apprentissage automatique existent, chacun de ces algorithmes a été utilisé pour faire des réalisations dans le domaine de la robotique ou de la robotique collective. Ces algorithmes d'apprentissage peuvent être pris séparément mais nous verrons qu'ils peuvent aussi être combinés afin d'optimiser les différentes phases de l'apprentissage.
L'apprentissage par renforcement a pour objectif de maximiser la performance du système en renforçant les meilleures actions. Mais si on se base sur une suite d'actions, quelle action récompenser.
Différentes applications se basent sur l'apprentissage par renforcement :
Cette application consiste à trouver une ou plusieurs mine(s) et à rapporter le minerai à la base. C'est l'une des applications les plus courantes. Les principaux intérêts de cette tâche résident dans le fait que l'environnement n'est pas connu à l'avance, que les robots sont obligés de faire des allers-retours entre la base et la source. Le chemin emprunté par un robot chargé de minerais est renforcé afin qu'il soit préférentiellement suivit par les robots à la recherche de mines. Cet algorithme rejoint le fonctionnement des colonies de fourmis. Ces dernières déposent des phéromones sur les pistes quelles suivent, la route la plus rapide sera d'autant plus renforcée. En effet cet algorithme garantit que la route la plus rapide sera toujours choisie à partir d'un certain nombre de cycles. C'est logique, plus la route est rapide moins les agents mettent de temps et plus il y a d'agents empruntant cette route plus la route est "renforcée".
Cette application consiste à trouver un objet dans un labyrinthe simple. Les actions et choix du robot seront récompensés suivant sa capacité à trouver l'objet. Ce problème se rapproche du problème du jeu du morpion, qui ne recevait une récompense qu'à la fin d'une partie, une récompense intermédiaire ne pouvant être calculée. Ainsi dans ce cas, l'agent reçoit une récompense positive si il trouve l'objet et négative dans le cas contraire. Afin d'optimiser la recherche dans les cas futurs, la récompense peut être pondérée par un facteur temporel (expérience réalisée par un groupe d'étudiants de l'université Mc Gill à Montréal).
Les algorithmes évolutionnistes sont inspirés de l'étude du vivant et plus précisément de l'évolution darwinienne. Le principe général consiste à disposer d'une population d'individus possédant chacun une chaîne chromosomique dans laquelle est codé son comportement.
Les algorithmes évolutionnistes semblent particulièrement bien indiqués pour l'apprentissage des
systèmes multi agents. En premier lieu, il faut disposer d'une population d'individus, ce qui
est le cas dans tout système multi-robots. Ensuite, la possibilité de coder toutes sortes de
comportements dans la chaîne chromosomique ouvre un grand nombre de possibilités.
Un exemple d'application utilisant l'apprentissage par algorithmes évolutionnistes :
Le problème posé dans ce type d'application est que les robots doivent évoluer dans un environnement inconnu en s'évitant et en évitant les obstacles qu'ils peuvent rencontrer. Il ne s'agit pas de réaliser une carte mais de définir des comportements permettant aux robots de se déplacer en toute sécurité dans l'environnement. L'objectif de l'apprentissage est d'associer à chaque état la meilleure action et d'associer une récompense à l'action la mieux appropriée. Cet apprentissage est de type supervisé mais il est distribué sur la population de robots. Chaque robot possède une chaîne chromosomique qui est une concaténation de N mots {0,1} dans le sous-espace M. N est le nombre d'entrées et M le nombre de sorties. Les générations de robots vont évoluer selon les transformations de ces chaînes embarquées sous l'action des opérateurs génétiques.
Nous recherchons une estimation autonome de la performance, ainsi une capacité d'autoévaluation locale de la performance est attribuée à chaque individu qui n'est jamais conscient de la performance globale de l'ensemble de la population.
Dans le problème d'exploration étudié ici, la récompense instantanée est calculée comme étant la distance signée parcourue durant un pas élémentaire. De fait, la récompense courante associée à la stratégie en cours (liée à la chaîne chromosomique) est la distance moyenne parcourue depuis l'initialisation ou depuis le dernier changement dans la chaîne chromosomique par croisement ou mutation. Une telle récompense pénalise les trajectoires non rectilignes. Dans le cas des mutations, ces dernières sont en général réalisées de façons aléatoires.
Dans le cas présent, des règles autorisant une mutation ont été mise en place :
Pour ce qui est des croisements, la plupart des solutions existantes font généralement appel
à une communication globale entre les agents. De cette façon, l'approche traditionnelle est
utilisée : la sélection est réalisée sur l'ensemble de la population. Afin de contourner les
problèmes liés à cette approche, la solution proposée ici est basée sur des communications
locales. De cette façon, un couple de robots se rencontrant peut ainsi réaliser des croisements.
Il résultera de ces croisements deux nouveaux individus.
Les conditions formelles sont les suivantes :
Pendant un cycle sensori-moteur élémentaire, chaque agent met à jour son état courant et continue de réaliser des mutations et des croisements (si cela est possible). Les simulations ont été utilisées pour étudier l'influence de chaque paramètre sur le système, en commençant par le délai de mutation. Si celui-ci est trop court, les mutations sont réalisées fréquemment, l'espace d'état est rapidement exploré, mais les estimations sont erronées. Au contraire, lorsque le délai est long, les estimations sont excellentes, mais l'exploration de l'espace d'état est longue. Le délai entre deux croisements a également été étudié: les conclusions sont proches de celles des mutations. Si le délai est trop court, les agents vont constamment réaliser des croisements avec le même congénère. Au contraire, si ce délai est long, l'exploration de l'espace d'état est fastidieuse.
Nous avons vu différentes formes d'apprentissage automatique et certaines applications possibles. Il existe beaucoup trop d'applications de la robotique et des systèmes multi-robot pour que nous les décrivions tous ici. Nous allons cependant faire un comparatif de performances entre les différentes méthodes d'apprentissage vu dans ce document pour une tâche d'exploration d'un territoire inconnu.
La courbe continue montre les performances d'un Q-Learning classique, et la courbe en pointillés les performances modifiées grâce à l'apport d'un réseau de neurones modélisant la matrice Q. On constate que le Q-Learning dispose de caractéristiques relativement mauvaises sur l'ensemble des critères à l'exception l'optimalité. En effet, la convergence a été prouvée pour les systèmes déterministes. L'ajout d'un réseau de neurones augmente globalement les performances : la méthode s'applique dorénavant au domaine continu. La convergence est plus rapide car le réseau interpole les points non visités. La taille des données est diminuée car il ne reste que les poids synaptiques à mémoriser.
On distingue que les algorithmes génétiques proposent des performances moyennes sur l'ensemble
des critères avec toutefois un point faible : la lenteur de convergence et un point fort: la
faible taille des données mémorisées.
Pour résumer chaque algorithme d'apprentissage automatique possède ses forces et ses faiblesses,
ainsi les réseaux de neurones demandent des exemples pour pouvoir fonctionner, ils sont incapables
de générer d'eux-mêmes une stratégie permettant de résoudre un problème ou un conflit. Si
l'apprentissage par renforcement permet d'apprendre sans exemple une stratégie optimale, cette
technique demande de discrétiser l'univers en états et actions échantillonnés. Or, une quantité
importante de données doit pouvoir être stockée, ce qui peut alors être disproportionné au regard
des capacités de stockage actuelles. Enfin, si les algorithmes évolutionnistes semblent bien
appropriés à notre problématique, il n'en reste pas moins que c'est une technique supervisée.
Le point faible réside dans le rassemblement des séquences génétiques pour pouvoir réaliser les
croisements et les mutations.
Ainsi, on doit bien étudier les exigences du problème qu'on se pose, aussi bien matérielles que
fonctionnelles, avant de choisir la politique d'apprentissage à appliquer au système.
Les algorithmes d'apprentissage multi agents sont toujours utilisés sous une forme non supervisé
au niveau global. Il s'agit en fait de laisser évoluer dynamiquement le système multi agents
jusqu'à ce que celui ci atteigne un point fixe, un point d'équilibre. L'état du système alors
obtenu constitue, la solution du problème, le modèle recherché.
L'intérêt principal des systèmes multi agents dans les algorithmes d'apprentissage tient
essentiellement au fait que pour certains types de problèmes, le fait de distribuer entre plusieurs
agents la résolution, rend celle-ci nettement plus accessible que si un seul agent devait le
traiter d'un seul bloc. Pour certains problèmes, comme la recherche de modèles de coordination
entre agents pour effectuer collectivement certaines tâches, un apprentissage centralisé paraît
totalement exclu, l'apprentissage multi agents est dans des cas comme celui-ci absolument nécessaire.