Apprentissage situé mono robot

Qu'est ce que l'apprentissage situé?

On dit qu'un agent est situé s'il acquiert des informations sur son environnement seulement par ses capteurs dans son interaction avec l'environnement. Un agent situé agit réciproquement avec son monde, tout seul sans intervention de l'homme. Il a le potentiel pour acquérir sa propre histoire. [Pfeifer and Scheier:1999:p.656]. "La connaissance humaine doit plutôt être vue comme la capacité de coordonner et de séquencer un comportement en s'adaptant dynamiquement aux circonstances toujours changeantes"[Clancey, 1995]. De même Barab parle de connaissance comme "une interaction dynamique entre le contenu et le contexte" d'une situation[Barab and Duffy, 2000].

La rupture du début des années 80

Une erreur courante est de penser que la découverte de nouvelles techniques de résolution de problèmes est un des domaines de l'apprentissage. Il n'en est rien. La recherche, découverte et développement de nouvelles techniques nécessite des techniques de résolution de contraintes et exploration d'espace que je n'aborde pas dans cette page. L'apprentissage est ici vu comme une technique d'optimisation de fonction sur un intervalle. Par exemple on peut réussir un apprentissage de la fonction sinus défini sur ] -3Π ,+3Π[ à l'aide d'un polynôme, mais on ne peut pas découvrir le concept de fonction périodique qui permet pourtant de mieux résoudre le problème. Résoudre à condition d'utiliser ce concept de la bonne manière. L'apprentissage se charge de déterminer cette "bonne manière" dans son sens le plus limité.

L'apprentisage classique

L'apprentissage a longtemps été vu selon un modèle idéaliste. Par exemple, un monde constitué de blocs et des pinces qui ne ratent jamais leur cible et un bruit ambiant inexistant. Les machines étaient sensées pouvoir apprendre des modèles compliqués. Les symboles qui représentent les blocs étaient représentés explicitement dans la mémoire du robot. Cette vision a été remise en question pas Searle, [Searle 80]

L'apprentissage situé.

L'apprentissage situé est une approche qui considère que les robots doivent effectuer leur apprentissage dans le monde dans lequel ils fonctionnent. L'apprentissage situé propose de réaliser un apprentissage en partant des contraintes du monde dans lequel la tache est à réaliser, c'est l'approche 'bottom/up'. L'apprentissage classique propose de réaliser un apprentissage dans un monde idéalisé (canonique) puis de reporter la variation du monde sur les capteurs, c'est l'approche 'top/down'. En apprentissage situé les connaissances du robot sont des abstractions analytiques, on ne peut pas toutes les inventorier.


Les apports de l'apprentisage situé

L'apprentissage situé permet d'obtenir des modèles qui sont bien adaptés à l'univers dans lequel les robots se trouvent. L'apprentissage situé à moins de prétention sur des buts élevés et des réalisations cognitives complexes, mais ce qui est réalisé est bien fait. Le but n'est pas de faire beaucoup de choses dans un monde simple mais d'en faire au moins un peu dans un monde complexe.

Pour les robots l'apprentissage est une étape qui vient après la conception. Lors de la conception le robot va recevoir des quantités de données qui le pré-adaptent à son environnement. Un robot "moteur de recherche sur Internet" n'aura pas du tout la même conception et le même schéma d'apprentissage qu'un robot de déminage en grande profondeur. Les concepteurs d'un robot devront décider des connaissances qu'ils mettront dans le robot et des connaissances que le robot devra acquérir par lui même [4].

Une nouvelle philosophie de conception

La conception même d'un robot qui fonctionne en utilisant l'apprentissage situé nécessite une philosophie différente. Il n'y a pas de solution toute faite qui fonctionne dans tous les cas, car le monde n'est jamais idéal. Il y a toujours des aléas, et il faut en tenir compte. Il faut donc faire un travail qui porte plus sur l'analyse des contraintes liées au monde plus qu'une analyse du modèle combinatoire. Évidement l'on ne peut pas complètement oublier l'un au profit de l'autre, mais l'attention à apporter de la part des concepteurs n'est pas la même.

Les interets pour les robots solitaires

L'apprentissage situé présente quelques avantages supplémentaires pour un robot solitaire.
Le robot va être capable :
  • d'éviter des erreurs qu'il aurait déjà faites par le passé. Non pas parce qu'il comprend son erreur, mais parce que statistiquement l'action qui le jette dans le problème a été pénalisée donc elle n'a pas été sélectionnée.
  • de s'adapter aux micro variations de son environnement. Éventuellement il pourra être résistant à de gros changements.
  • d'accomplir plusieurs missions simultanément même si leur réalisation dépend de paramètres qui se modifient avec ou sans action de la part du robot.
Dans un système multi-robot, si l'on considère le système dans sa globalité, alors il peut être associé à un système mono-robot à plusieurs buts.

Méthodologie pour l'apprentisage mono-robot.

Des contraintes de l'apprentissage.

Identifier les contraintes liées à un problème c'est déjà en résoudre une grande partie. Il est évident qu'un robot placé dans un environnement donné peut avoir à approximer plusieurs fonctions cibles, éventuellement antagonistes. De plus, en apprentissage situé à la différence des approches classiques, le robot est directement confronté à un monde dont les régularités sont imposées par la 'nature' et non plus par sa représentation du monde. Le robot doit donc tenir compte des mouvements du monde, même si la représentation 'canonique' ne tient pas compte d'un tel mouvement.

Les buts multiples.

Un robot immergé doit être capable d'approximer simultanément plusieurs fonctions cibles (buts). Les buts et les actions qui y mennent, simultanément ou en deux instants différents, peuvent être antagonistes. Le robot doit alors être en mesure de distinguer les caractéristiques propres à chaque but. Il doit choisir si la réalisation de ces buts est un problème d'ordonnancement de sous buts, ou bien un problème de parallélisme de ses effecteurs.

En apprentissage situé une troisième alternative est possible pour le dilemme "priorité/parallélismes": C'est l'opportunisme (greedy). Le robot ne dispose alors que de connaissances limitées et il agit uniquement quand ses actions sont le plus facile pour lui. Si chaque action contribue à l'un des buts, et que une fois un but atteint les actions nécessaires à la réalisation d'un autre but sont faisables, alors le robot peut se contenter d'une stratégie gloutonne.
Si l'on ne dispose pas de telles hypothèses alors le robot devra presque toujours utiliser des connaissances apportées à la conception. On fait de l'apprentissage pas de la découverte. Au minimum les connaissances supplémentaires devront permettre au robot d'apprendre en cours de fonctionnement une fonction lui permettant d'approcher l'ordonnancement de résolution de buts optimaux.

shema de la resolution d'action oportuniste

L'exploration gloutonne n'est pas la stratégie la plus efficace. Mais, par exemple pour le problème du voyageur de commerce (choix du point le plus proche à chaque itération), une stratégie gloutonne est sûre de donner un trajet au pire 2 fois plus long que le meilleur [1]. Ici le but est juste de visiter au moins un point de chaque catégorie.

Un monde en mouvement

Ce que l'on entend par "mouvement du monde", est une modification d'un paramètre sur lequel le robot ne peut pas agir (ou pas directement) qui résulterait en une augmentation du biais d'une ses fonctions cibles s'il essayait d'ignorer le phénomène. Par conséquent si le robot ne présente qu'un seul super but, il ne pourra que difficilement détecter un mouvement du monde (ne pouvant pas mesurer du tout le biais). Le robot doit donc être en mesure de modifier seul les associations entre sa perception et ses actions. Donc le robot doit être capable d'adapter les contextes d'utilisation des actions prévues à sa conception.

shema montrant la variation d'un univers fermer

L'agent qui assure un transfert de A à B doit réagir pour maintenir le débit d'information. Le monde ayant changé le robot doit percevoir la modification et adapter ses actions en conséquence.


Le robot doit être capable de généraliser ses associations "perception/réaction" ou au moins disposer d'une fonction lui définissant comment faire varier ses associations quand le monde change. Si cette fonction est apprise alors le robot risque de faire du sur-apprentissage situé. La différence avec le sur-apprentissage classique est que si le robot utilise de mauvaises associations, il peut après une mise à jour inadaptée de son comportement (suite à une modification du monde), ne plus être capable du tout de comprendre(*) le monde dans lequel il se trouve. En effet dans le sur-apprentissage classique, la fonction cible est quand même atteinte quand le robot se trouve dans une zone proche de ses exemples d'apprentissage. En apprentissage situé, la situation des exemples d'apprentissage peut ne même plus être reconnue.

Si les algorithmes ne sont pas auto- stabilisants; en apprentissage classique, on est certain qu'il existe une zone où le robot se comporte pas trop mal. En apprentissage situé, il existe un risque que le robot ne sache plus rien faire correctement.

sur_apprentissage_stié_et_classique

Dans cet exemple, le monde change au cours du temps. Dans le cas classique, le modèle est plus complexe et doit intégrer le temps. Le modèle situé n'a pas besoin de notion intrinsèque de temps car il est sensé s'adapter de lui même.
Le sur-apprentissage classique implique que seuls des voisinages des exemples d'apprentissage sont bien utilisés. Dans le sur- apprentissage situé, si la correction est inadaptée après un mouvement du monde, ce sont toutes les réactions situées qui deviennent inadaptées.

(*) Réagir avec une diminution asymptotique du biais.

Analyses des contraintes

Le problème de l'évaluation

Dans la plupart des systèmes [5], le monde est en mouvement mais le robot ne peut pas le détecter en utilisant un unique super but. Seul l'accomplissement de sous buts plus simples peut lui permettre de détecter un mouvement de son monde. Donc il faut une technique pour les récompenser. Cela peut être fait en favorisant l'association entre la perception et les actions dans l'algorithme d'apprentissage (par renforcement, évolution, sélection ...).

La motivation pour créer des sous buts est plus profonde. Un robot unique ne peut pas forcement savoir à quelles actions il peut associer la réussite du super but. De même si le monde change beaucoup, une technique qui a fonctionné une fois peut mener à un échec complet une seconde fois. Le problème est de savoir quelles actions il faut favoriser dans le comportement du robot. Ce problème est indécidable dans le cas général, car il y a toujours des variables cachées. De plus l'expression du super but lui même peut varier. Il est possible que la description du super but n'est pas de description canonique, ou que ce ne soit qu'un idéal (par exemple un robot qui recherche les lanceurs de pourriels sur Internet). Donc la distribution des récompenses pour les actions ayant mené au super but peut ne jamais survenir. En effet il peut être impossible de détecter l'accomplissement du super but ou bien le super but est impossible à réaliser. La fonction cible n'est pas dans l'espace de recherche, on dit que le problème est mal posé.

Opportunity dans le cratère.

Le robot aura accompli son but quand il sera sorti de ce mauvais passage. S'il utilisait une récompense uniquement pour son super but, le robot ne pourrais jamais juger ses actions avant d'avoir réussi. C'est évidement une mauvaise technique.

Cette image est sous copyrigth : © NASA.

La somme des récompenses pour l'accomplissement des sous buts permet d'adapter le robot au changement de son monde. Chaque sous but est atteint plus régulièrement et le robot peut ainsi mieux évaluer sa réussite/progression. On peut ainsi mieux récompenser les actions statistiquement bénéfiques au super but.

Cela demande plus de travail aux concepteurs du robot car ils sont obligés de discerner des sous buts raisonnables pour le robot. En effet le robot apprend mais ne découvre pas, il ne peut donc pas décider tout seul de l'existence d'un certain sous but. Par contre si les récompenses pour l' accomplissement d'un sous but peuvent être paramétrées par l'accomplissement du super but, alors le robot pourrait (selon l'algorithme utilisé) éliminer des sous buts inadaptés ou trop peu performants (à condition que les sous buts ne soient pas trop nombreux).



Les algorithmes sont essentiellement des mathématiques, après avoir exhiber les problèmes voici ce que les mathématiciens ont inventés pour nous aider.

Les algorithmes utilisables

Après analyse des contraintes il est évident que seul des algorithmes incrémentaux pourront être utilisés. L'un des plus utilisés est l'apprentissage par renforcement (c'est un méta algorithme en fait) [6].

L'apprentissage par renforcement utilise la notion de récompense. Chaque mécanisme qui contribue aux buts du robot reçoit une récompense. La récompense peut différer en fonction du mécanisme mis en oeuvre. Par exemple si suite à une évolution, l'apparition de petites griffes sous les roues d'un robot permet d'atteindre mieux un but, la récompense (ou renforcement) pourra prendre la forme d'une augmentation des caractéristiques des griffes. Autre exemple: si le robot est un système d'identification de pourriel, si une nouvelle règle a permis une séparation optimum, la récompense peut prendre la forme d'une augmentation de la priorité de la règle.


Dans l'apprentissage par renforcement, les récompenses doivent intervenir à tous les niveaux de décision. Ceci peut correspondre aux niveaux d'abstraction du système.

Voici trois techniques courantes adaptées à l'implantation de l'apprentissage par renforcement.

  • Les algorithmes génétiques peuvent être utilisés pour effectuer un apprentissage situé. Le point délicat est le choix de la population à faire évoluer. Par exemple il peut être intéressant de faire évoluer des groupes de règles en logique floue. Où un individu est représenté par un petit groupe de règles. On peut également s'écarter un peu du contexte des algorithmes génétiques au profit d'une évolution plus proche d'un renforcement [7]. Toutes les techniques à base d'algorithmes d'évolution peuvent être intéressantes.

  • Les Perceptrons Multi-Couches sont particulièrement utiles pour implémenter les couches réactives (peu cognitives ou basses) du robot. En effet, comme il est peu probable que le PMC soit mis en service deux fois sans qu'une fonction d'évaluation de l'erreur ne soit déclenché, le réseau converge très vite vers un optimum. Si le monde change, le robot peut réadapter rapidement ses réactions. Implémenter les couches de haut niveau du robot avec un PMC est une mauvaise idée car les risques de sur-apprentissage situé avec un PMC sont très forts [8].

  • Les règles avec potentiel de fiabilité. A chaque règle on associe une ou plusieurs actions. C'est un système où toutes les actions réalisables par le robot ont été codées en dur. Cependant la décision d'application d'une règle est liée à un processus stochastique qui dépend d'un potentiel associé à chaque règle. Plus une règle a un potentiel fort, plus elle risque d'être utilisée, et donc l'action risque d'être déclenchée. On peut ajouter un système de prémices aux règles afin de crée une exécution séquentielle de certaines actions (cela n'est que rarement indispensable). A chaque évaluation d'un but les récompenses et pénalités sont attribuées aux potentiels de chaque règle en fonction des buts qui ont été atteints.


Plutôt que d'encoder directement la connaissance du domaine, l'apprentissage situé la cache dans le renforcement. Il existe de nombreuses méthodes pour l'attribution de la récompense, notamment des méthodes qui tiennent compte de l'influence de chacune des actions utilisées. Mais ces méthodes dépassent le cadre de ce tutoriel.

Le mécanisme de prévision.

Voici l'un des points qui fait la spécificité de l'approche mono-robot sur l'approche multi-robot. A un niveau d'abstraction supérieur plusieurs robots considérés comme un unique système peuvent disposer d'une telle propriété émergente. Mais dans ce cas l'on ne peut plus vraiment parler de multi-robots.

Le mécanisme de prévision consiste en un système qui reçoit une copie des ordres envoyés aux effecteurs et qui essaie de déterminer si l'action entreprise va réussir ou non. L'utilisation de ce mécanisme permet d'obtenir un système capable de détecter le mouvement du monde. Le système s'il donne de bon résultat (après un apprentissage) va permettre la mise en place d'un système de planification (non linéaire, comme dans les graphes de plans (pas comme Strips)). Chaque noeud du plan pouvant être étiqueter de deux probabilités. Une probabilité de se déclencher et une probabilité de succès.

Ce système donne de bons résultats (dans les couches hautes des contrôleurs) quand le robot se retrouve confronté à une situation dont il n'a pas d'exemples proches. Cela peut être utile pour initialiser l'apprentissage d'une nouvelle commande. S'il le robot est dans un monde ou beaucoup de ses commandes sont à usage unique, le système est alors très rentable. Ce mécanisme demande de grosses ressources combinatoires, aussi l'implantation demande plus de travail dans un système distribué.



Présentation de quelques essais réalisés en laboratoire.

Le fourrage dans monde simple [Maja J Mataric:Reward function for accelerated learning]

Voici un problème posé dans un monde simplifié. Le monde est composé de deux zones. Une petite zone représente la maison des robots et une autre beaucoup plus grande représente le reste du monde. Le monde est fermé par des murs blancs, et partout le sol est plat. Les robots peuvent distinguer leur maison car le sol en cet endroit est de couleur différente. Le but est que les robots apprennent à ramener le plus efficacement possible des blocs (de la nourriture et ils peuvent la soulever seuls) dans leur maison. Les robots sont capables de distinguer les autres robots, mais ils ne communiquent pas entre eux. Les robots sont complètement autonomes. Les robots disposent également de quelques procédures pré-construites. Les robots sont capables de détecter quand un bloc de nourriture se trouve entre leurs pinces. Et selon qu'ils sont à la maison ou non les robots déclenchent automatiquement la levée ou la descente de leur charge.


Le super but des robots est : "Ramener le maximum de nourriture à la maison".
Même si l'espace d'état semble assez réduit, il s'agit dans la pratique d'un problème assez compliqué car le bruit ambiant est très important, et la tache à apprendre n'est pas déterministe.

Pour ce problème l'approche par apprentissage situé conseille l'utilisation d'un algorithme à base de renforcement par règles(avec des potentiels). Les contrôleurs de robots sont alors modifiés pour tenir compte de sous buts jugés utiles par les concepteurs (Mataric en l'occurrence).
Les robots disposent de trois sous buts:

  1. Éviter les obstacles, notamment les autres robots.
  2. Charger et décharger la nourriture dans les bons endroits.
  3. Minimiser la distance avec leur maison.

L'algorithme d'apprentissage produit et maintient un ordonnancement total sur les comportements adaptés à chaque situation, exprimé sous la forme d'une matrice A(c,b). Les valeurs de cette matrice changent après un renforcement. Les valeurs sont mises à jour de manière asynchrone à la réception des renforcements.

Composante Recompense
E(c,t) "Event" Saisir la nourriture (+1)
Laisser la nourriture en dehors de la maison (-1)
Laisser la nouritture à  la maison (+1)
I(c,t) "Intruder" La distance à  un obstacle diminue (DistanceObstacle - DistanceSécurité)
Les autres cas (0)
H(c,t) "Homing" Eloignement de la maison (-1)
Rapprochement de la maison (+1)
Afin de préserver l'approche 'bottom-up' de l'apprentissage, la récompense globale est la somme des trois récompenses. L'algorithme de renforcement est donc :
R(c,t) = E(c,t) + I(c,t) + H(c,t)
A(c,t) = ∑ R(c,t) où t vaut [1..T]


L'algorithme de commande


Ce qui suit est l'algorithme complet de commande à employer pour apprendre forager. Le choix de comportement est induit par les événements, qui peuvent être déclenchés :
  1. extérieurement : Le robot se trouve sur le chemin d'un autre.
  2. intérieurement : Le robot pense qu'il doit retourner à la maison.
  3. par des estimateurs de progrès : Le mécanisme d'estimation d'interférence détecte une absence de progrès et termine le comportement courant.

Toutes les fois qu'un événement est détecté, l'ordre d'exécution des instructions suivant est exécuté :
  1. Le renfort approprié est fourni pour la paire courante de condition-comportement,
  2. Le comportement courant est exécuté,
  3. Un autre comportement est choisi.

Les comportements sont choisis selon la règle suivante :
  1. Choisir un comportement non essayé s'il en est de disponible,
  2. Choisir autrement le meilleur comportement.

Les résultats

Les résultats obtenus montrent très clairement la supériorité de l'apprentissage par renforcement qui utilise trois sous buts par rapport à l'apprentissage qui n'utilise qu'un seul but global ou à des stratégies codées 'à la main'. La conclusion à retenir est que l'on peut créer de bon systèmes d'apprentissage situés en utilisant des algorithmes d'apprentissage par renforcement disposant de plusieurs sous buts. Le travail de découverte des sous buts est reporté sur le concepteur (No Free Lunch Theorem.); mais ce travail est le plus rentable.


Robots Socially Situated Learning

Si de nos jours le terme 'situé' dénote plutôt les systèmes qui interagissent avec leur environnement, à l'origine (contrairement à la définition de Pfeifer et Scheier [10]) il s'agit de systèmes sociaux avec éventuellement des aspects culturels. Le social pouvant être vu comme un cas particulier d'interaction avec un environnement réactif, doté de capacités cognitives [9]. Être situé c'est beaucoup plus que de faire de l'interaction. Nous allons voir qu'un robot social situé est obligé de faire de l'apprentissage situé.

angry calm disgust happy interest sad surprise

Des émotions chez les robots.[3]

Le but est de ne pas ajouter de contrainte sur l'humain lors de sa communication avec une machine. L'un des problèmes que le robot devra résoudre dynamiquement en fonction du lieu où il est déployé est : Suis-je considéré comme un ami ou bien comme un autre appareil d'éléctro-ménager/industriel?. De la résolution de cette question peut dépendre l'interprétation des ordres et autres perceptions que le robot va recevoir. Le robot doit apprendre les limites que lui imposent le fonctionnement (vie) en société. En terme d'apprentissage par renforcement la résolution de cette question est vue sous l'angle d'un nouveau sous but. On considère que le robot ne découvre pas de nouveaux sous buts, et que la diversité des situations qui peuvent émerger d'un monde social rend impossible l'émergence d'un comportement raisonnable.

Afin de pouvoir répondre à cette question le robot doit être capable de déterminer des sous buts dans le décodage des relations sociales. La difficulté est que la réponse évolue à mesure que le temps passe.

Kismet à trois modalités d'expressions :
  1. L'intonation de la voix.
  2. Les expressions du visage.
  3. Les positions du cou.

Kismet ne parle aucune langue, mais il peut emmetre des sons avec une connotation émotionnelle. Mais il "comprend" de l'anglais (de l'américain).
Pour parer à la combinatoire très importante de l'espace d'état qu'il rencontre Kismet dispose de 9 ordinateurs (de 4 à 500 MHz [1998]) fonctionnant sous Qnx (vision temps réelle), Linux (reconnaissance et synthèse vocale) et NT (moteur de réaction émotionnel).


Tous ces détails font l'objet d'un apprentissage commun, mais avec des sous buts différents.[01 www]
UN TRAVAIL CONNEXE :
Des artefacts aux humains[2]

Références

Papiers et livres:

Sites:

Valid HTML 4.01! Valid CSS!