Apprentissage de modèles de comportements pour le
Transcription
Apprentissage de modèles de comportements pour le
Apprentissage de modèles de comportements pour le contrôle d’exécution en robotique Guillaume Infantes Félix Ingrand Malik Ghallab LAAS-CNRS 7, Avenue du Colonel Roche, 31077 Toulouse Cedex 4, France {infantes,felix,malik}@laas.fr Résumé L’exécution robuste de tâches robotiques est un problème ouvert. Dans la plupart des cas, ces tâches mettent en œuvre des comportements complexes combinant différentes fonctionnalités (comme la perception, la localisation, le planification de trajectoires et leur exécution). Ces comportements sont souvent programmés avec la robustesse du comportement en objectif, et non pour la définition d’un modèle de haut niveau utilisable par un planificateur de tâches ou un contrôleur d’exécution. Nous proposons d’apprendre des modèles de comportement en tant que processus stochastiques structurés : des réseaux bayésiens dynamiques (DBN). Précisément, le formalisme DBN nous permet d’apprendre et de contrôler les comportements avec des paramètres de contrôle. Nous avons testé notre approche sur un robot réel, où nous avons appris sur un grand nombre de tests un modèle de navigation complexe en utilisant une version modifiée de l’algorithme “Expectation Maximization” pour les DBNs. Le DBN résultant est ensuite utilisé pour contrôler le comportement de navigation et nous montrons que pour certains objectifs (comme éviter les cas d’échecs et optimiser la vitesse) le contrôleur basé sur le DBN appris se comporte bien mieux (un ordre de grandeur de moins d’échecs) que le contrôleur programmé. Nous montrons aussi une façon d’obtenir un apprentissage incrémental du DBN. Nous pensons que l’approche proposée reste générique et peut être utilisée pour d’autres systèmes autonomes et pour apprendre des comportements complexes autres que la navigation . 1 Introduction L’exécution de tâches pour des systèmes autonomes est un processus complexe : des rovers d’exploration doivent pouvoir planifier et exécuter correctement leurs missions scientifiques ; des robots guides de musée doivent exécuter avec robustesse leur plan de visites pour des visiteurs intéressés par un sujet donné ; les robots personnels doivent planifier et exécuter les tâches de tous les jours pour les personnes âgées qu’ils aident, etc. . .Les briques de base de ces plans, les tâches et actions, sont complexes. Ces comportements ont en général une complexité intrinsèque (par exemple la navigation nécessite la localisation, la perception, la planification de trajectoire). De plus, en général aucun modèle explicite n’existe pour caractériser comment il se comporte dans des environnements variés. Finalement, même si un modèle déterministe de ces comportements existe, il peut ne pas être approprié pour gérer le non-déterminisme in- trinsèque de l’environnement. Dans ce cas, il faut gérer un problème de planification avec des modèles de mauvaise qualité pour les actions, ou parfois sans modèle du tout. Des systèmes peuvent être modélisés en tant que modèles de Markov cachés (HMM) [20]. Dans ce type de modèle, l’état interne est caché à l’observateur, qui peut voir uniquement l’ observation représentant les effets du système sur l’environnement. Ce type de modèles stochastique s’est montré bien adapté pour la reconnaissance de la parole [20], pour modéliser des activités humaines [17], pour reconnaître des expressions de visages [7], pour faire de la reconnaissance de gestes[23], de plan probabilistes [4] et pour apprendre des cartes métriques ou topologiques [15]. Dans [9], les auteurs présentent une approche pour modéliser des actions robotiques utilisant des HMMs. Dans ce cas, le HMM résultant peut être utilisé pour reconnaître ou planifier les actions modélisées. Cependant, cette représentation ne permet pas un contrôle fin de l’exécution de l’action. Un aspect des actions complexes que nous voulons traiter est que certaines de ces activités peuvent être contrôlables. Trouver les paramètres adéquats en fonction de l’environnement courant et du but peut être un problème ardu si aucun modèle de l’action sousjacente n’est disponible. Ainsi, nous voulons apprendre des modèles d’actions suffisamment riches pour nous permettre de les utiliser pour reconnaître, planifier, contrôler ou superviser l’action. Nous proposons d’apprendre des modèles d’actions en tant que processus structurés : des réseaux bayésiens dynamiques (DBN) [8]. Nous détaillons comment de tels modèles peuvent être obtenus à partir d’expérimentations réelles. Nous montrons alors comment ils peuvent être utilisés pour contrôler l’action elle-même pendant l’exécution. Nous montrons également comment ceci peut être inclus dans un contrôleur plus général capable de superviser l’action (pour éviter des échecs) et de décider quand le modèle doit être raffiné pour de nouvelles situations. La prochaine section présente un comportement complexe à modéliser et adapter. Nous présentons alors comment on peut apprendre un tel modèle stochastique structuré. La section suivante présente comment utiliser un tel modèle appris, suivie de résultats obte- nus sur un robot réel. Nous concluons alors par une discussion sur les travaux en cours ainsi que sur des perspectives à poursuivre. Cet article est une version française de [11] et une version longue de [12]. 2 Modéliser et adapter un comportement robotique Pour expérimenter, nous avons modélisé une navigation robotique, basée sur l’évitement réactif d’obstacles ND1 [18]. Une vue schématique de cette modalité de navigation est représentée sur la figure 1(a). Le télémètre laser donne un ensemble de points représentant les obstacles devant le robot. Ces points sont utilisés pour construire une carte locale autour du robot par le module aspect. ND utilise la position courante du robot pour calculer le but en coordonnées locales au robot. Ensuite, grâce à ce but local et à la carte locale, il calcule une consigne en vitesse qui vise à déplacer le robot vers le but tout en évitant les obstacles. Cette modalité est utilisée sur notre B21R (figure 1(b)). LASER RANGE FINDER DATA TYPE 2D_POINTS MODULE ASPECT LOCAL MAP ODOMETRY SEGMENT−BASED LOCALIZATION POSITION GOAL ND SPEED_REFERENCE (a) Modalité de navigation (b) Robot F IG . 1 – Le RWI B21R modifié pour être un guide de musée [6] 2.1 Structure d’une tâche de navigation Un contrôleur de navigation peut être vu en tant que “boîte noire” prenant en entrée une position du but relative, et des données sur l’environnement et donnant en sortie des consignes en vitesses à exécuter par le robot. On peut modéliser ce comportement par un état interne caché du robot, sous forme de variables cachées. Les paramètres de contrôle de la navigation sont observables et influencent l’état interne. Cet état interne influence également l’environnement, car celui-ci est mesuré par des capteurs du robot : si le robot va dans un cul-de-sac, l’environnement va lui paraître extrêmement encombré, par exemple. La structure générale peut être vue sur la figure 2. Choisir les variables est très dépendant du processus à modéliser. Les paramètres de contrôle sont donnés par le 1 Remarquons que malgré le fait que ND a été partiellement développé dans notre laboratoire, il est tellement complexe et si difficile à régler qu’aucun modèle n’existe pour superviser contrôler ou planifier son exécution. F IG . 2 – DBN abstrait pour une tâche de navigation contrôleur de navigation, il faut choisir avec soin les variables d’environnement représentant des paramètre importants pour les décisions faites par le processus de contrôle. Dans notre tâche de navigation réactive, l’encombrement de l’environnement doit être pris en compte, ainsi que l’obstacle le plus proche, car il influence grandement le cap futur du robot. D’un autre coté, on n’inclut pas la position du robot, de façon à ce que le modèle puisse être utilisé à d’autres endroits que celui ou l’apprentissage a eu lieu. Les effets de la tâche de navigation à reconnaître sont les états d’ échec et de succès , mais nous cherchons également à contrôler plus finement le comportement d’un point de vue qualitatif : certains comportements sont couronnés de succès, mais sous-optimaux. Nous incluons également autant de variables que possible pouvant nous donner des indications sur l’état interne, afin que le processus d’apprentissage soit le plus efficace possible. Enfin, on pourrait également modéliser l’utilisation de ressources comme la batterie. 2.2 Instanciation Pour notre tâche de navigation, les paramètres contrôlables sont : les deux paramètres d’élargissement du robot : une surface représente le robot (et les obstacles y sont complètement interdits) ; et une zone de sécurité plus large où on cherche à limiter le nombre d’obstacles ; les vitesses maximales linéaires et angulaires permises ; un facteur de linéarité entre les deux vitesses données par le générateur de mouvement.2 Les variables d’environnement choisies sont : l’encombrement de l’environnement, défini comme une somme des distances aux plus proches obstacles autour du robot ; l’angle à l’obstacle le plus proche ; la distance à l’obstacle le plus proche ; le nombre total de segments dans la carte locale et le nombre de vallées où la navigation est possible. Les variables observables conséquence de la navigation 2 Les vitesses linéaire et angulaire sont mutuellement contraintes par une fonction polynomiale qui influence le type de trajectoire produite. sont : les vitesses linéaire et angulaire courantes du robot ; ses accélérations linéaire et angulaire courantes ; la variation de la distance au but (estimée par une distance euclidienne) ; le pourcentage de la mission ; la stratégie courante choisie par ND ; l’état général parmi début, fin, échec, normal ; l’ adéquation à l’environnement humain du comportement3 . Toutes les variables sont discrétisées (en classes de 3 à 6 valeurs). Le nombre d’observations différentes possibles est de plus de 15 × 109 . Ceci nous permet de dire que même avec un jeu de données très important, toutes les observations possibles ne pourront pas être rencontrées, ceci menant à de nombreux liens non-informés dans le DBN. Nous verrons plus bas comment gérer ce genre de DBN creux pour la prise de décision. 3 Apprentissage de DBN Pour apprendre un DBN, nous utilisons une adaptation de l’algorithme Expectation-Maximization (EM) défini pour les modèles de Markov cachés [20]. Les adaptations pour rendre cet algorithme efficace pour les DBNs ne sont pas triviales : nous avons besoin de maintenir un “état courant cru”, c’est-à-dire une hypothèse probabiliste sur les affectations possibles des variables car elles sont fortement corrélées. Nous proposons d’approximer l’état courant cru sous forme de filtre particulaire à nombre de particules variable. 3.1 Algorithme Expectation Maximization Un DBN λ est défini par un ensemble de variables (cachées ou observables), un ensemble de valeurs possibles pour chaque variable, et un ensemble de liens causaux probabilistes entre les variables [8]. Une observation O est une séquence d’instanciations de toutes les variables observables de λ. Un bon modèle λ pour O donne un P (O|λ) élevé (probabilité d’apparition ou likelihood de l’observation). Dans le cadre DBN, λ peut être optimisé pour l’observation soit en modifiant sa structure soit les probabilités attachées aux liens causaux étant donnée une structure. L’algorithme EM gère les variables cachées, mais pas la structure du modèle. Dans le cas des HMMs, EM calcule d’abord les probabilités d’être dans chaque état caché à chaque instant, puis chaque probabilité de transition, et la probabilité de faire chaque observation depuis chaque variable cachée, ceci pour chaque pas de temps. Ceci est généralement appelé la phase d’ ”Expectation”. Pour un DBN, l’état caché devient une instanciation des variables correspondantes, ainsi que l’observation. L’état doit être approximé en tant qu’état courant cru. De plus, les variables observables ne sont pas séparées des cachées, donc la probabilité de faire une observation ne doit pas être calculée depuis les variables ca3 Certains comportements amènent au succès, mais peuvent être considérés comme trop agressifs pour des humains auprès du robot, ou au contraire trop timides et donc trop lents. Cette valeur doit être données par l’opérateur lors de la phase d’apprentissage. chées, mais depuis l’ensemble de l’état courant cru. Ensuite on peut mettre-à-jour les probabilités de transition pour maximiser P (O|λ) ; et on recommence les phases d’Expectation et de maximisation. Il est démontré que cet algorithme converge vers un maximum locale de P (O|λ). 3.2 Définitions Soient qi avec i ∈ [1..N ] les N variables du DBN. Chaque variable qi peut prendre les valeurs Sij , et V a(i) = {Sij } est l’ensemble des Vi différentes valeurs possibles pour la variable qi . On a donc Vi = card(V a(i)). Pour un DBN, on doit considérer une transition non depuis une valeur de la variable cachée vers une autres comme pour les HMMS, mais depuis un ensemble de variables parentes vers une seule variables. On note P a(i) l’ensemble des instanciations possibles des parents causaux de qi , et qP a(i) les parents de qi . Une instanciation est alors : σi = (Si0j0 , Si1j1 ...Sik jk ) ∈ P a(i) avec {qi0 , qi1 , ..., qin } = qP a(i) sont les parents de qi . Une probabilité de transition sera alors : a(σi , ij ) = P (qP a(i) = σi , qi = Sij ) avec σi ∈ P a(i), et Sij la j ime valeur que peut prendre qi . On note qit la valeur prise par la variable qi à l’instant t et Ot l’observation faite à l’instant t, d’où nous définissons la probabilité de voir Ot sachant qit = Sij : bij (Ot ) = P (Ot |qit = Sij ) et la probabilité de voir Ot sachant qit = Sij et P a(i) = σi à l’instant t : bij ,σi (Ot ) = P (Ot |qP a(i)t = σi , qit = Sij ) Nous définissons également la probabilité que la variable qi prenne la valeur Sij à l’instantt, sachant toute la séquence d’observation O = (O1 ...OT ), et le modèle λ : γt (ij ) = P (qit = Sij |O, λ) De la même façon, la probabilité d’une transition à l’instant t est : ξt (σi , ij ) = P (qP a(i)t = σi , qit = Sij ) Le problème pour la phase d’Expectation est de calculer efficacement tous les γt et ξt . Ceci est fait en utilisant les algorithmes récursifs Forward-Backward. 3.3 Algorithmes Forward et Backward L’ algorithme Forward Backward nous permet de calculer les probabilités voulues en utilisant un schéma de passage de message, où les deux messages sont les probabilités que la variable qi prenne une de ses valeurs possibles Sij sachant respectivement le début de la séquence d’observations O1 , .., Ot et sa fin Ot+1 , .., OT . Message avant. Le message avant pour une variable est défini comme la probabilité d’atteindre une valeur Sij de la variable qi à l’instant t et de voir le début de la séquence d’observations O1 ...Ot : On pondère ensuite cette probabilité par la probabilité d’avoir qk = Skl partant de qi = Sij : αt (ij ) = P (O1 ..Ot , qit = Sij |λ) où σk ∈ P a(k) et ij ∈ σk . On calcule ensuite la moyenne sur les instanciations possibles et sur les Skl . On obtient : Il faut propager cette valeur récursivement sur t. Mais comme les transitions sont d’un ensemble de variables vers une seule, on doit définir le même message avant pour un instanciation de variables : a(σk , kl )bkl ,σk (Ot )βt (kl ) Ft (k, ij ) = σi ∈P a(i) Et on peut alors calculer récursivement αt (ij ) pour chaque variable pour chaque pas de temps, en partant des parents à l’instant 1 et en propageant le message. Message arrière. Le message arrière est la probabilité de voir la fin de la séquence d’observations Ot+1 ...OT connaissant la valeur Sij de la variable qt à l’instant t : βt (ij ) = P (Ot+1 ..OT |qit = Sij , λ) Pour calculer cette valeur, on doit regarder chaque enfant de la variable qi , mais on n’a pas d’information sur les autres parents de cette enfant. Donc on ne peut pas faire d’hypothèse sur les différentes instanciations des parents et nous choisissons alors de faire une moyenne. Soient Ch(i) les enfants de la variable qi . Pour chaque enfant qk de qi , on construit l’ensemble σk où σk ∈ P a(k) et ij ∈ σk . Ensuite on calcule la probabilité de voir l’observation à l’instant t et on la multiplie par la probabilité de voir les observations après t. Cela donne : bkl ,σk (Ot )βt (kl ) a(σk , kl )bkl ,σk (Ot )βt (kl ) Vk .Ck où Ck = card({σk ∈ P a(k), ij ∈ σk }) Finalement, βt (ij ) est la somme sur chaque enfant de qi avec qi = Sij de cette moyenne, ce qui donne : ij ∈σi Le coefficient Bt (σi ) (qui dépend implicitement de l’historique des observations O1 ...Ot ) est une pondération sur les différents états courant possibles. Il est nécessaire car les σi n’ont pas la même probabilité (les composantes de σi sont fortement corrélées). Pour faire de l’inférence exacte, il faudrait calculer ce Bt (σi ) en prenant en compte toute l’historique, ce qui amènerait à une complexité exponentielle en t. Nous proposons d’approximer ce calcul en maintenant un filtre particulaire qui nous donne une approximation de l’état courant cru du processus (voir [16] pour avoir une vue d’ensemble des techniques d’approximation de l’état courant cru). Cet état courant cru nous donne un poids relatif des instanciations des variables. On a alors simplement : X αt (ij ) = αt (σi )a(σi , ij )bij ,σi (Ot ) X σk ∈ P a(k) l∈V a(k) ij ∈ σk αt (σi ) = P (O1 , ..., Ot , σi |λ) Alors on calcule ces valeurs : Y αt (σi ) = [ αt (ij )]Bt (σi ) X βt (ij ) = X Ft (k, ij ) k∈Ch(i) 3.4 Maximisation On peut alors calculer ξt (σi , ij ) comme : ξt (σi , ij ) = αt (σi )a(σi , ij )bij ,σi (Ot )βt (ij ) P (O|λ) Et on obtient la nouvelle probabilité de transition : P ξt (σi , ij ) ā(σi , ij ) = t K où K est un facteur de normalisation. Cette étape calcule un nouveau modèle λ0 , et on a P (O|λ0 ) > P (O|λ). Donc P (O|λ) est maximisé par cette étape. Avec ce nouveau modèle, on peut recommencer la phase d’Expectation, qui va mener à de différents α, β et ξ et mettre à jour de nouveau le modèle. Ce processus converge vers un maximum local de P (O|λ). 3.5 Notes sur l’implémentation La principale difficulté pour implémenter cet algorithme est que les α et β tendent exponentiellement vite vers zéro avec t. Pour les HMMs, un processus de mise-à-l’échelle est proposé [20] pour résoudre ce problème. Dans le cadre des DBNs , on doit étendre cette mise à l’échelle pour plusieurs variables. On prend un facteur d’échelle pour chaque valeur Sij de chaque variable qi et pas pour chaque qi , ce qui semble correct car pour chaque j, toutes les P (qi = Sij ) n’ont pas forcément le même ordre de grandeur. Cette mise à l’échelle est appliquée après chaque calcul des α et β, car des dépassements peuvent apparaître à l’intérieur même d’un pas de temps. Pour les mêmes raisons, P (O|λ) peut dépasser la précision de n’importe quelle machine ; donc il ne faut pas considérer cette probabilité, mais log[P (O|λ)]. Cette valeur est appelée le loglikelihood de l’observation. Des débordement peuvent aussi apparaître en calculant ā(σi , ij ), suivant la précision utilisée, et avoir certaines probabilités de transition artificiellement collées à zéro empêche l’algorithme de converger. Choisir une bonne représentation pour l’état courant cru est critique pour le comportement correct de l’algorithme. Une représentation à plat sur les variables perdrait toutes les corrélations, menant à une très mauvaise approximation. D’un autre coté, maintenir un état courant cru exact implique de garder toutes les corrélations le long du temps, et donc serait exponentiellement complexe [3]. Approximer l’état courant cru avec un filtre particulaire semble être un bon compromis. Mais comme la taille de l’espace des hypothèses est très grande, nous avons choisi de faire varier le nombre de particules car la probabilité de voir l’observation sachant l’état courant cru peut devenir très faible. Nous maintenons cette probabilité changeant le nombre de particules de façon à ce qu’elle soit du même ordre de grandeur que la probabilité de voir la première observation. 3.6 Apprentissage de structure L’algorithme EM ne met à jour que le probabilités de transition, sans toucher à la structure du DBN. Un algorithme a été proposé [10] pour ajouter dans la boucle des changements de structure. Le principal problème est alors d’évaluer efficacement la nouvelle structure connaissant la courante. De plus, cet algorithme effectue uniquement une recherche locale dans l’espace des structures, et donc un optimum global est dur à atteindre. L’algorithme GES [5] a été proposé pour trouver une structure optimale pour un réseau bayésien. Cependant, cette technique repose sur des statistiques sur l’espace d’observations, et n’est donc pas adapté à un espace d’observations aussi large que le notre. Dans notre cas, la structure globale est connue. En vue de faire décroître la taille du DBN et d’accélérer l’apprentissage, nous pensons utiliser ces techniques uniquement sur les variables cachées (et leurs liens causaux). Pour l’instant, nous utilisons la structure décrite dans la section Résultats. 3.7 Proposition d’apprentissage incrémental Un problème ouvert pour l’apprentissage de modèles stochastiques est la possibilité d’ajouter de l’information dans un modèle précédemment appris. Ceci est difficile car l’apprentissage est une recherche locale, et l’algorithme doit prendre en compte toutes les observations avec une pondération égale. Nous proposons l’algorithme suivant : on apprend d’abord un modèle λ1 sur un jeu de données (O1 ..Oi ). Ensuite on apprend λ2 sur (Oj ..On ), en prenant λ1 comme point de départ de la recherche locale de λ2 4 . Quand ceci est fait, on somme simplement λ1 et λ2 . Pour que cette sommation marche, elle doit être faite après chaque itération de EM, c’est-à-dire que le DBN sommé doit être utilisé 4 Remarquons que λ a été appris depuis un point de départ aléatoire. 1 Donc les phases d’apprentissage suivantes doivent être meilleures que la première, car le point de départ n’est pas aléatoire mais représente une partie du processus à modéliser. pour la maximisation et non uniquement pour l’expectation. Nous pensons que ceci est dû au fait que sinon le rôle des variables cachées peut être échangé autrement, perdant leur “sens”. Si la sommation est faite uniquement entre les différentes phases, le DBN nouvellement appris n’est optimisé que dans l’espace des nouvelles observations et part trop loin du précédent. Dans ce cas, la somme des deux DBNs ne reflète pas la réalité de l’espace de l’union des observations. 4 Adaptation du comportement Une utilisation possible du modèle présenté dans la section 2.1 est de trouver des paramètres optimaux pour le générateur de mouvement ND, en fonction de l’environnement. ND est habituellement utilisé avec un jeu de paramètres fixe, qui n’est pas optimal pour toutes les situations. Nous cherchons à obtenir une adaptation fine des paramètres du contrôleur, modélisé en tant que DBN, pour optimiser la navigation elle-même. Nous devons introduire des utilités dans certaines de nos variables en fonction d’un critère d’optimalité. Nous devons donner de fortes récompenses à des valeurs de variables qui vont mener à des comportement désirés, et des coûts à des valeurs menant à de mauvais comportements. Typiquement, on doit éviter la valeur échec du comportement général, et nous voulons atteindre la valeur fin. Nous introduisons également un critère secondaire sur l’adéquation à l’environnement humain. Parmi deux comportement à succès, nous préférons celui où la valeur normal de l’ adéquation l’environnement humain apparaît souvent et voulons éviter celui ou apparaissent souvent les valeurs agressif et timide. Toutes ces utilités sont données en tant que valeurs scalaires, donc nous devons donner de plus grandes valeurs à la variable état général, et de plus petites au critère secondaire, pour éviter le cas où le robot pourrait obtenir des récompenses en ayant un comportement correct par rapport aux humains mais conduisant à un échec. Un schéma général d’un tel adaptateur de comportement peut être vu sur la figure 3. F IG . 3 – Schéma général d’un adaptateur de comportement 4.1 Décision Pour cette application les aspects temporels sont primordiaux. Le processus de commande fonctionne à une fréquence de 2.5 Hertz. L’adaptateur de comportement fonctionne à une fréquence de 1.66 Hz pour la collecte des observations, mais nous n’avons pas besoin de changer les paramètres de ND à une aussi haute fréquence. Typiquement, les changements de paramètres devraient avoir lieu au plus souvent à 0.5 Hertz, sinon le système autonome pourrait faire preuve d’un comportement trop instable. De fait, le problème que nous avons à résoudre est différent d’une approche par réseau décisionnel dynamique (DDN) [24], où les décisions sont prises après chaque nouvelle observation, et le résultat est un arbre de décision associant à chaque séquence d’observation une séquence de décision synchronisée. De plus, le facteur de branchement pour l’arbre de décision serait trop élevé. Nous avons donc besoin d’une stratégie complètement différente : nous considérons que quand on prend une décision, elle va rester la même pour un certain temps. De cette façon, nous évaluons chaque décision sur un horizon donné, et choisissons la meilleure. Le DBN construit inclut un modèle d’évolution de l’environnement, donc nous pouvons prédire précisément ce qui va arriver dans le futur. Partant d’un état courant cru pour l’instant courant, nous pouvons inférer à partir du DBN des états crus futurs pour chaque jeu de paramètres et déduire les récompenses correspondantes. L’état courant cru est représenté par un filtre particulaire, chaque particule étant une hypothèse pondérée sur les valeurs des variables. Quand on infère une particule le long du temps, on peut calculer l’utilité espérée en sommant simplement les récompenses rencontrées par la particule. Ceci peut être fait pour quelques étapes dans le futur (ce qui donne des espérances imprécises) ou jusqu’à ce que toutes les particules atteignent un état final (défini par les valeurs fin et échec de la variables état général). La taille de l’estimation de l’état cru (le nombre de particules, d’hypothèses) est alors un facteur critique pour prendre des décisions en temps contraint ; pour résoudre ce problème, nous échantillonnons l’état courant cru pour focaliser les prédictions sur les hypothèses les plus probables. 4.2 Méta-Décision Nous introduisons un facteur de confiance dans chaque probabilité de transition. Ce facteur de confiance est le nombre de mises-à-jour de la probabilité de transition durant l’apprentissage. Ceci nous permet de différencier une équiprobabilité due à une transition jamais rencontrée d’une informative. Quand on infère les particules pour prédire les utilités espérées des décisions, on collecte également les facteurs de confiance des transitions que les particules ont empruntés. Si une particule a une haut facteur de confiance, cela signifie que cette particule a rejoué un jeu de données d’apprentissage, alors que si le facteur est bas, la particule est passé par des transitions jamais apprises. Donc la décision doit être prise dans un espace à deux dimensions : utilité × confiance. Si l’on préfère prendre une décision avec une haute confiance, cela va mener à rejouer une observation déjà vue, et le robot va exploiter son modèle. Au contraire, si on choisit une décision avec une facteur de confiance faible, cela va mener vers des transitions jamais vues dans notre modèle, rendant le comportement du robot plus “explorateur”, avec un plus grand risque d’échecs. On rencontre donc ici d’une façon originale ici le compromis classique “exploration contre exploitation” pour des agents qui apprennent. 5 5.1 Résultats Apprentissage de comportement de navigation La gestion du modèle est implémentée sur une architecture robotique réelle [1], sur un B21R. Les données scalaires sont classifiées en utilisant l’algorithme “k-means” [14] de façon à obtenir quelques classes. La structure du graphe est la suivante : – dans le même pas de temps, chaque variable d’environnement est liée à chaque variable cachée, chaque variable cachée est liée à chacune des autres cachées, et chaque variable cachée est connecté à chaque variable observable conséquence du processus ; – d’un pas de temps t à t+1, chaque variable est liée à ellemême, et chaque variable contrôlable est liée à chaque variable cachée. Nous avons effectué près de 120 navigations du robot dans différents environnements, en choisissant au hasard les paramètres de contrôles à des fréquences variables ; ce qui nous donne quelques centaines de mètres de navigation dans des environnements encombrés, avec des personnes autour du robot. L’opérateur devait donner les valeurs de la variables d’adéquation à l’environnement humain (parmi correct, agressif, timide). Il disposait également d’un bouton d’échec pour stopper les navigations avant des collisions éventuelles. Un cas d’échec était également automatiquement détecté quand le robot n’arrivait pas à bouger pendant un certain temps. Le nombre de vecteurs d’observations obtenu est autour de 7 000. Cependant, il ne couvre pas du tout la totalité de l’espace d’observations. L’apprentissage du DBN prend quelques minutes par itération de Expectation-Maximization. Le DBN appris se stabilise après moins de 10 itérations. Comme EM est une recherche locale, nous utilisons un DBN “conservatif” comme point de départ, ce qui signifie que les probabilités que les variables changent de valeur est assez faible (autour de 15%). Afin d’évaluer la qualité du DBN appris, nous apprenons le DBN sur toutes les observations sauf une, et essayons de prédire cette observation. Ceci est fait en inférant un filtre particulaire sur le DBN, choisissant la particule la plus probable, et comparant les observations de cette particule aux vraies. L’observation globale est rarement exac- tement la même, mais dans la plupart des cas la particule permet de déduire la plupart des variables observables. On peut voir les résultat de ce processus d’évaluation sur la tableau 4. On remarque que les résultats prédits sont nettement meilleurs qu’une prédiction au hasard. variable cluttering angle of obstacle dist. to obstacle # segments # valleys v w dv dw ∆ dist. to goal % mission srtategy general adequation average random guess 33.3 25.0 25.0 33.3 33.3 33.3 25.0 33.3 33.3 33.3 33.3 20.0 25.0 33.3 29.0 dbn 87.3 86.4 88.5 81.6 79.9 90.8 79.0 91.9 92.2 77.8 97.1 84.8 96.4 92.5 87.6 nettement visible dans nos expérimentations, alors que ce n’est pas du tout le cas pour les paramètres choisis à la main. L’accélération globale de la navigation sera quantifiée dans de futurs travaux. La collecte d’observation peut être faite en même temps que l’adaptation active du comportement ; la prochaine étape sera alors de décider quand le robot doit utiliser des bons comportements ou des comportements étendant la variété des observations. 5.3 Apprentissage incrémental Afin d’évaluer l’algorithme d’apprentissage incrémental, nous avons appris un DBN en 5 phases comme expliqué dans la section Incremental Learning. Chaque phase utilise 20% des observations. Sur la figure 5, les phases sont numérotées sur l’axe des abscisses. L’axe des ordonnées représente le log-likelihood obtenu. La ligne supérieure montre le log-likelihood obtenu en une seule phase d’apprentissage (utilisant toutes les observations). Si le DBN résultant n’est pas aussi bon que celui appris en une seule fois, la différence est très faible. -40000 single learning incremental learning incremental without summing every step -50000 F IG . 4 – Tableau des bonnes prédictions à un coup (%) -60000 5.2 -70000 log-likelihood On a utilisé pour ces tests trois variables cachées d’arité trois, mais il semble qu’augmenter ces valeurs permet d’améliorer les résultats, mais malheureusement rend l’apprentissage trop complexe du fait de la nature quasicomplète de la structure. Nous avons à gérer près d’une centaine de liens causaux, ce qui rend les calculs très lourds. L’apprentissage structurel devrait nous permettre d’alléger l’apprentissage quantitatif. -90000 -100000 -110000 -120000 Contrôle Le niveau décisionnel de l’adaptateur de comportement a été implémenté en utilisant OpenPRS [13]. L’état courant cru est maintenu tout au long de la navigation, et quand un choix doit être fait, il est échantillonné de façon à limiter la taille du filtre particulaire pour la prédiction. Dans nos expérimentations du contrôle, les décisions étaient prises à une période fixe de 2 secondes, changeant les paramètres du contrôleur dynamiquement, sans stopper le mouvement du robot. Ainsi la navigation se comporte mieux qu’avec les paramètres par défaut réglés à la main habituellement utilisés sur ce robot, et bien mieux qu’avec des paramètres aléatoires. Typiquement, durant la phase d’apprentissage avec des paramètres aléatoires, un tiers des navigations se terminaient par un échec dû à une collision ou un blocage, alors que ce genre d’échecs n’apparaît qu’une fois sur 10 lors du contrôle basé sur le DBN, en utilisant un jeu de paramètres non présent dans ceux appris (comportement exploratoire). De plus, dans la phase d’apprentissage, nous avons étiqueté comme correct les paramètres produisant de grosses accélérations lorsque le robot arrive sur une large zone libre, et ce comportement était -80000 0 20 40 60 percentage of seen observation 80 100 F IG . 5 – Incremental learning likelihoods 6 Conclusion et Discussion Nous avons présenté une approche novatrice pour apprendre des modèles DBN d’un comportement robotique complexe. Dans notre contexte, où nous voulons apprendre un modèle dans lequel les variables contrôlables restent observables, les DBNs sont préférables aux HMMs. Nous avons développé une version modifiée de EM pour les DBNs. Nous avons présenté notre adaptateur de comportement, et comment il peut être utilisé pour apprendre un modèle et l’utiliser en ligne. Cette approche a été implémentée et testée avec succès sur une plate-forme robotique. Nous avons montré que, pour une tâche de navigation assez complexe, nous avons pu apprendre un modèle qui, utilisé pour changer dynamiquement les paramètres contrôlables, se comporte bien mieux qu’un jeu de paramètres habituel, ou encore qu’un jeu à changements aléatoires. Ces travaux sont très poches de ceux de [17], où les auteurs essaies de modéliser des activités humaines avec des DBNs dits hiérarchiques. Notre approche essaie de traiter plus de variables, et des données incomplètes. De plus, nous proposons une manière directe d’utiliser ces modèles pas uniquement pour le diagnostic, mais pour contrôler le processus lui-même. Dans [19], les auteurs apprennent à reconnaître des comportements robotiques qui correspondent à des opinions humaines, mais ils insistent plus sur “comment construire des variables qui aient un sens” que sur l’utilisation de ce genre de modèle. L’utilisation proposée est plus du domaine de la planification de tâches classique [21]. Nous proposons une méthode efficace pour mélanger apprentissage et prise de décision. Notre approche est dans le même esprit que [2], où les auteurs modélisent un système en temps que réseaux de neurones ou d’arbres d’induction, puis prennent des décisions grâce à un processus décisionnel de Markov, pour de la navigation robotique autonome. Nous proposons une approche plus intégrée, où le mécanisme de prises de décision est beaucoup plus proche du modèle lui-même. De plus, il nous permet de prendre en compte des variables cachées, c’est-à-dire une structure plus complexe pour le modèle lui-même. Nous proposons une façon de construire un modèle utilisant plus de caractéristiques que celui proposé. Dans [22] les auteurs présentent une méthode originale pour optimiser l’exécution de tâches. Les tâches de haut niveau sont construites avec un nombre de paramètres qui doit être optimisé pour une exécution correcte. Des modèles de performance sont appris pour les paramètres de contrôle sous forme d’arbres de règles, mais la plupart du travail nécessaire est fait à la main. Notre approche est automatisée, et les modèles construits sont plus expressifs (bien que difficilement lisibles), à cause de la présence de variables cachées. De plus, les modèles que nous construisons sont probabilistes, alors que dans ces travaux ce n’est pas le cas. Le point commun entre notre approche et la leur et qu’elles vont nécessiter de grosses puissances de calcul quand il s’agira de mélanger différentes tâches complexes. Pour le long terme, nous gardons à l’esprit que les comportements appris ne sont pas seulement utilisables pour contrôler l’exécution, mais également pour être pris en compte par un planificateur de haut niveau capable de choisir parmi un ensemble de comportements. Malgré notre application à une tâche de navigation autonome pour un robot guide de musée, nous pensons que cette approche reste applicable pour d’autres comportements, et pourrait être utilisée pour d’autres systèmes autonomes. Références [1] R. Alami, R. Chatila, S. Fleury, M. Herrb, F. Ingrand, M. Khatib, B. Morisset, P. Moutarlier, and T. Siméon. Around the lab in 40 days... In Proceedings of ICRA, 2000. [2] T. Belker, M. Beetz, and A. Cremers. Learning action models for the improved execution of navigation plans. Robotics and Autonomous Systems, 38(3-4) :137–148, 2002. [3] X. Boyen and D. Koller. Tractable inference for complex stochastic processes. In Proceedings of UAI, 1998. [4] H. Bui. A General Model for Online Probabilistic Plan Recognition. In Proceedings of IJCAI, 2003. [5] D. Chickering. Optimal structure identification with greedy search. Journal of Machine Learning Research, 3 :507–554, 2002. [6] A. Clodic, S. Fleury, R. Alami, M. Herrb, and R. Chatila. Supervision and interaction. In Proceedings ICAR, pages 725–732, 2005. [7] I. Cohen, N. Sebe, L. Chen, A. Garg, and T. S. Huang. Facial Expression Recognition from Video Seqences : Temporal and Static Modelling. Computer Vision and Image Understanding : Special Issue on Face Recognition, 91 :160–187, 2003. [8] T. Dean and K. Kanazawa. A model for reasoning about persistence and causation. Computational Intelligence, 5(3) :142–150, 1990. [9] M. Fox, M. Ghallab, G. Infantes, and D. Long. Robot introspection through learned hidden markov models. Artificial Intelligence, 170(2) :59–113, february 2006. [10] N. Friedman. The bayesian structural em algorithm. In Proceedings of UAI, 1998. [11] G. Infantes, F. Ingrand, and M. Ghallab. Learning Behaviors Models for Robot Execution Control. In Proceedings of ECAI, 2006. [12] G. Infantes, F. Ingrand, and M. Ghallab. Learning Behaviors Models for Robot Execution Control. In Proceedings of ICAPS, 2006. [13] F. Ingrand, R. Chatila, R. Alami, and F. Robert. PRS : A High Level Supervision and Control Language for Autonomous Mobile Robots. In Proceedings of ICRA, 1996. [14] T. Kanungo, D.M. Mount, N.S. Netanyahu, C.D. Piatko, R. Silverman, and A.Y. Wu. An efficient k-means clustering algorithm : analysis and implementation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 24(7) :881–892, July 2002. [15] S. Koenig and R. G. Simmons. Passive Distance Learning for Robot Navigation. In Proceedings of International Conference on Machine Learning (ICML), 1996. [16] D. Koller and R. Fratkina. Using learning for approximation in stochastic processes. In Proceedings of ICML, 1998. [17] L. Liao, D. Fox, and H. Kautz. Learning and Inferring Transportation Routines. In Proceedings of AAAI, 2004. [18] J. Minguez, J. Osuna, and L. Montano. A "Divide and Conquer" Strategy based on Situations to achieve Reactive Collision Avoidance in Troublesome Scenarios. In Proceedings of ICRA, 2004. [19] T. Oates, M. D. Schmill, and P. R. Cohen. A method for clustering the experiences of a mobile robot that accords with human judgements. In Proceedings of IJCAI, 2000. [20] L. R. Rabiner. A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition. Proceedings of the IEEE, 77(2) :257–286, February 1989. [21] Matthew D. Schmill, Tim Oates, and Paul R. Cohen. Learning planning operators in real-world, partially observable environments. In Proceedings of ICAPS, 2000. [22] F. Stulp and Michael Beetz. Optimized execution of action chains using learned performance models of abstract actions. In Proceedings of IJCAI, 2005. [23] A. Wilson and A. Bobick. Hidden Markov Models for Modeling and Recognizing Gesture Under Variation. International Journal of Pattern Recognition and Artificial Intelligence, 15(1) :123–160, 2001. [24] N.L. Zhang, R. Qi, and D. Poole. A computational theory of decision networks. International Journal of Approximate Reasoning, 11(2) :83–158, 1994.