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].
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'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é 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.
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].
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.
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.
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.
|
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. |
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.
|
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.
|
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. |
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é.
|
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. |
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).
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.
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é.
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.
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:
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) |
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.
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é.
|
|
|
|
|
|
|
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 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).
Papiers et livres:
Sites: