Examen M2R Sciences Cognitives « Cognition Bayésienne » J. Diard & P. Bessière 27 / 01 / 2011 (durée 2h) Note : les exercices sont indépendants et peuvent être traités dans n’importe quel ordre ; documents et calculatrices autorisées. Exercice 1 : « modèle de fusion capteur / modèle de perception multi-sensorielle » Question 1 : Rappelez la structure d’un Programme Bayésien : quelles sont les étapes pour définir un Programme Bayésien ? R : cf. le cours. Question 2 : Un robot dispose de N capteurs S1 , S2 , . . . , SN . Chacun de ces capteurs fournit une information sur une grandeur V de l’environnement. Rappelez le Programme Bayésien de fusion capteur qui permet de calculer la distribution sur V sachant les valeurs lues sur les capteurs (pour rappel, ce Programme est aussi appelé « modèle de perception multi-sensorielle » dans le domaine de la modélisation du vivant). R : Le Programme Bayésien de fusion capteur a été couvert en cours ; pour rappel, la décomposition est P (V S1 S2 . . . SN ) = P (V )P (S1 | V )P (S2 | V ) . . . P (SN | V ) . Idéalement, la réponse est présentée sous la forme d’un PB, dont on vient de rappeler la forme à la question précédente (c’est-à-dire, avec les variables, puis la décomposition, etc.). Question 3 : Quelle hypothèse est au cœur de ce modèle ? Comparez ce modèle avec celui qui ne ferait pas cette hypothèse : que gagne-t-on, et que perd-on, en faisant cette hypothèse ? R : On gagne en facilité d’écriture (un produit de termes, tous identiques), et en espace mémoire requis ; on perd en temps de calcul (un produit plutôt qu’à un accès dans un tableau, si le modèle complet était tabulé en mémoire), et en pouvoir d’expression du modèle (certaines dépendances ne peuvent plus être exprimées). 1 Exercice 2 : lois de succession de Laplace Les lois de succession de Laplace sont des distributions de probabilité. Leur domaine est un support discret quelconque ; pour simplifier cet exercice, on considère que le support est une variable X, dont la valeur est un entier compris entre 1 et k : X = {1, 2, 3, . . . , k}. On suppose avoir un ensemble de N observations sur la variable X. De ces N observations, on ne mémorise que le nombre de fois ni que chaque valeur i a été observée : le cas (X = 1) a été observé n1 fois, le cas (X = 2) a été observé n2 fois, etc. Evidemment, la somme de tous les ni est égale à N . Définition La loi de succession de Laplace sur X, au vu des N données, est une distribution de probabilité définie par : P (X = i) = ni + 1 . N +k Question 1 : Rappelez la forme que prend la loi de succession de Laplace dans les cas suivants : • lorsque aucune donnée n’a encore été observée (N = 0) ; • lorsqu’un très grand nombre de données a été observé (N très grand par rapport à k). R : Lorsque N = 0, cela implique que tous les ni sont aussi 0, et donc : P (X = i) = ni + 1 1 = . N +k k La loi de succession de Laplace, avant d’avoir vu la première donnée, est identique à une distribution de probabilité uniforme (discrète). Lorsque N est très grand par rapport à k, N + k devient proche de N ; aussi, ni + 1 devient proche de ni (sauf cas pathologiques, non développés ici). On obtient donc : P (X = i) = ni + 1 ni ≈ . N +k N La loi de succession de Laplace, lorsqu’il y a beaucoup d’observations, est très proche d’une distribution des fréquences ni /N , c’est-à-dire d’un histogramme. Dans la suite de cet exercice, on va s’intéresser à généraliser la définition des lois de succession de Laplace de plusieurs manières. Pour le premier cas, on remarque que la formule définissant la loi de succession de Laplace est un cas particulier de la formule suivante : P (X = i) = ni + W , N + kW où W est un réel positif quelconque. Le cas précédent était donc le cas où W = 1. 2 Question 2 : Supposons que W = 10−6 . Quelle est la forme initiale de la distribution (N = 0) ? Que devient la distribution après avoir observé la première donnée ? R : On obtient : ni + W W 1 = = , N + kW kW k et la forme initiale est toujours une distribution de probabilité uniforme. P (X = i) = Supposons que la première observation est le cas X = a. Alors, on obtient : ( 1+W 1+10−6 P (X = a) = 1+kW = 1+k.10 −6 ≈ 1 . 10−6 0+W P (X 6= a) = 1+kW = 1+k.10−6 ≈ 0 La loi de succession de Laplace, dans ce cas, est quasiment identique à une distribution de probabilité Dirac, centrée sur la première valeur observée. Question 3 : Supposons que W = 106 . Quelle est la forme initiale de la distribution (N = 0) ? Que devient la distribution après avoir observé la première donnée ? R : De la même manière que précédemment, on obtient : P (X = i) = ni + W W 1 = = , N + kW kW k et la forme initiale est toujours une distribution de probabilité uniforme. Supposons que la première observation est le cas X = a. Alors, on obtient : ( 1+106 106 1 1+W = 1+k.10 P (X = a) = 1+kW 6 ≈ k.106 = k . 6 6 0+W 10 10 1 P (X 6= a) = 1+kW = 1+k.10 6 ≈ k.106 = k La loi de succession de Laplace, dans ce cas, est quasiment identique à une distribution de probabilité uniforme, après la première observation. Question 4 : Au vu des réponses aux questions 2 et 3, donnez une interprétation du paramètre W . R : Les questions précédentes montrent les propriétés suivantes. Premièrement, lorsque W est très petit, la loi de succession de Laplace se transforme très vite, et passe de sa forme initiale uniforme, pour converger vers une distribution très contrainte par les données. Deuxièmement, lorsque W est très grand, la loi de succession de Laplace ne se transforme que très lentement, et il faudra accumuler beaucoup d’observation avant de s’écarter de la forme initiale, uniforme. En conséquence, W a deux interprétations, qui sont équivalentes : W est soit proportionnel au « poids » de la forme initiale (du prior) de la distribution, soit inversement proportionnel à la vitesse d’apprentissage. Note : Dans la littérature, le paramètre W a parfois le nom de « equivalent sample size », c’est-à-dire la taille d’un jeu de données virtuel qu’on imaginerait avoir observé avant d’observer la vraie première donnée. 3 On peut généraliser encore plus les lois de succession de Laplace : on se Pkdonne k paramètres p1 , p2 , . . . , pk , on note P la somme de ces paramètres P = i=1 pi , et on redéfinit la formule des lois de succession de Laplace en : P (X = i) = n i + W pi . N + WP Le cas précédent était donc le cas où tous les pi étaient égaux. Question 5 : Quelle est la forme initiale de la distribution (N = 0) ? Quelle est la forme de la distribution après avoir observé un grand nombre de données (N très grand par rapport à W P ) ? Au vu des réponses précédentes, donnez une interprétation de l’ensemble des paramètres pi . R : Initialement, on a : P (X = i) = W pi pi ni + W pi = = . N + WP WP P La loi de succession de Laplace, dans sa forme initiale, est donc une distribution discrète, dont la forme est entièrement définie par les paramètres pi . En revanche, lorsqu’on a observé un grand nombre de données (N très grand par rapport à W P ), on a : P (X = i) = n i + W pi ni ≈ . N + WP N Dans ce cas, les paramètres initiaux pi n’interviennent plus, et on a convergé vers une distribution de probabilité dictée par les observations. On peut donc interpréter les pi comme définissant la forme a priori de la loi de succession de Laplace. Cette généralisation permet d’avoir une distribution quelconque pour cette forme initiale, et non plus seulement une distribution uniforme (au prix d’un plus grand nombre de paramètres libres à définir). Exercice 3 : programmation bayésienne d’un robot On dispose d’un robot mobile, le Koala, qui est le grand frère du Khepera : il fait environ 30 cm de long et 25 cm de large (voir Figure 1, à gauche). Il dispose de 16 capteurs infrarouges, similaires à ceux du Khepera, mais de plus longue portée. De ces capteurs, on tire, grâce à des fonctions déterministes, deux variables qui décrivent la direction Dir et la proximité P rox de l’obstacle le plus proche. Le Koala est piloté par ses vitesses de rotation V rot et de translation V trans. Comme il est plus gros, on peut l’équiper d’une « tête » et d’un « oeil » : une caméra est posée sur une petite plate-forme motorisée, qui tourne de gauche à droite. On note θ cet angle à un instant donné. La caméra est fournie avec un logiciel de traitements d’images en temps réel, qui permet de trouver, dans 4 Figure 1: A gauche : photo du robot Koala. A droite : le logiciel de traitement d’images utilise les couleurs des pixels pour identifier les objets, grâce aux zones contiguës de couleur homogène. Ici, la balle (rouge) est détectée à la position X = 30, Y = 25 (à droite et en haut). l’image, où se trouve un objet d’une couleur donnée. Par exemple, on peut savoir la position X, Y dans l’image, du centre d’un objet rouge (voir Figure 1, à droite). Dans cet exercice, on contrôle le Koala en utilisant le Programme Bayésien π, dont une partie est montrée Figure 2. On y voit les domaines de définition des variables utilisées, la décomposition et les formes paramétriques. Tous les paramètres étant fixés, il n’y a pas de phase d’apprentissage. Les questions et inférences sont discutées dans les questions, ci-dessous. Les domaines des variables sont tous discrets. Les trois variables X, θ et V rot représentent des orientations ; X est une orientation par rapport à la direction de la caméra, et θ et V rot, par rapport à l’axe central du robot. Dans tous les cas, une valeur négative indique « à gauche », 0 indique « au centre / droit devant », et une valeur positive indique « à droite ». Les bornes inférieures et supérieures pour ces variables sont différentes : les fonctions f1 et f2 servent à faire les changements de repères adéquats. La variable P rox décrit la proximité d’un obstacle, qui varie entre 0, pour un objet très loin, et 15 pour un objet très proche. Enfin, la vitesse de translation V trans vaut entre 0 lorsque le robot n’avance pas et 10 lorsque le robot avance à vitesse maximum. Dans le Programme Bayésien π, on remarque que le terme P (V trans | P rox) est défini de différentes manières, selon la valeur de P rox. Lorsque il y a un objet très proche (P rox ≥ 10), la loi de contrôle sur V trans est une gaussienne très piquée, centrée sur la valeur 0. En conséquence, le robot n’avance pas. Dans le cas contraire, si un objet est loin (P rox < 10), la gaussienne sur V trans est centrée sur une valeur élevée (8) : en conséquence, le robot avance à grande vitesse. Question 1 : Dessinez le réseau bayésien correspondant au Programme Bayésien π. 5 Spécification Variables X ∈ {−50, −49, −48, . . . , 50} θ ∈ {−90, −80, −70, . . . , 90} V rot ∈ {−10, −9, −8, . . . , 10} P rox ∈ {0, 1, 2, . . . , 15} V trans ∈ {0, 1, 2, . . . , 10} Décomposition P (X θ V rot P rox V trans) = P (X)P (θ | X)P (V rot | θ)P (P rox)P (V trans | P rox) Formes Paramétriques P (X) ← Uniforme X ∗ 90 et σ1 = 10 P (θ | X) ← Gµ1 ,σ1 (θ), avec µ1 = f1 (X) = 50 θ P (V rot | θ) ← G (V rot), avec µ = f (θ) = 90 ∗ 10 et σ2 = 2 µ ,σ 2 2 2 2 P (P rox) ← Uniforme si P rox ≥ 10 : Gµ3 ,σ3 (V trans), avec µ3 = 0 et σ3 = 0, 01 P (V trans | P rox) ← si P rox < 10 : Gµ3 ,σ3 (V trans), avec µ3 = 8 et σ3 = 1 Figure 2: Programme Bayésien π, utilisé pour piloter le robot Koala. Le symbole π, qui devrait apparaître en partie droite de chaque terme probabiliste, est omis pour simplifier la notation. On rappelle que la notation Gµ,σ (A) représente la distribution de probabilité gaussienne, de moyenne µ et d’écart-type σ, approximée sur le domaine discret de la variable A. R : Le réseau bayésien est montré Figure 3. Question 2 : On écrit un programme de contrôle, qui se base sur des questions posées au Programme Bayésien π. Ce programme de contrôle est résumé dans le pseudo-code suivant : proxt ← lire_capteur(P rox) tirer V transt selon P (V trans | P rox = proxt ) xt ← traitement_image_camera tirer θt selon P (θ | X = xt ) tirer V rott selon P (V rot | θ = θt ) Les valeurs V transt et V rott ainsi obtenues sont ensuite envoyées au moteur du Koala, ce qui le fait éventuellement se déplacer. Décrivez, en quelques phrases, le comportement obtenu. R : C’est un suivi d’objet rouge : la tête s’oriente dans la direction de l’objet, le corps du robot s’oriente dans la direction de la caméra, et on avance quand l’objet est loin, on avance pas lorsque l’objet est proche. Question 3 : On souhaite modifier le comportement ci-dessus pour que le robot ne tourne jamais sur place : s’il n’avance pas, il ne doit pas non 6 X Prox θ Vtrans Vrot Figure 3: Réseau bayésien correspondant au Programme Bayésien donné (question 1). plus tourner. Proposez une modification du Programme Bayésien π pour réaliser cela : dessinez le nouveau réseau bayésien, et réécrivez les parties de π que vous modifiez (votre solution doit être exprimée en termes probabilistes, et non dans le programme de contrôle en pseudo-code). R : Deux solutions sont équivalentes : on attend soit un terme P (V rot | V trans), soit un terme P (V rot | P rox). Le réseau bayésien de la première solution est montré Figure 4. La décomposition devient : P (X θ V rot P rox V trans) = P (X)P (θ | X)P (V rot | θ V trans)P (P rox)P (V trans | P rox) . Le terme P (V rot | θ V trans) est alors défini en fonction de la valeur de V trans en partie droite : si V trans est 0, alors V rot suit une distribution gaussienne très piquée, et centrée sur 0, sinon, elle est inchangée par rapport à la définition initiale. Cela se note : P (V rot | θ [V trans = v]) θ Gµ2 ,σ2 (V rot), avec µ2 = f2 (θ) = 90 ∗ 10 et σ2 = 2, lorsque v 6= 0 ← Gµ2 ,σ2 (V rot), avec µ2 = 0 et σ2 = 0, 01, lorsque v = 0 Question 4 : On modifie les deux dernières lignes de l’algorithme de contrôle. Celui-ci devient : proxt ← lire_capteur(P rox) tirer V transt selon P (V trans | P rox = proxt ) xt ← traitement_image_camera tirer V rott selon P (V rot | X = xt ) Ecrivez l’inférence bayésienne qui permet de calculer le terme P (V rot | X = xt ). Décrivez, en quelques phrases, le rapport entre cette inférence et le pseudo-code initial de la question 2. 7 . X Prox θ Vtrans Vrot Figure 4: Réseau bayésien correspondant au Programme Bayésien modifié (question 3). R : La réponse dépend de la version du Programme Bayésien que l’on considère. Si on prend la version initiale, l’inférence donne : X P (V rot | X = xt ) = P (V rot | θ)P (θ | X = xt ) . θ Dans la version modifiée donnée à la question 3, en revanche, la réponse est plus compliquée : X P (V rot | θ V trans)P (θ | X = xt ) P (V rot | X = xt ) = . P (V trans | P rox)P (P rox) θ,V trans,P rox Dans les deux cas cependant, la différence principale est la sommation sur la variable θ, pour déterminer la valeur de V rot sachant la valeur de X. En d’autres termes, le pseudo-code initial approximait cette sommation par le tirage d’une valeur intermédiaire θt . (Cf. le cours sur la différence entre propagation des incertitudes vs. la décision.) Question 5 : Toujours en utilisant le pseudo-code de contrôle de la question 4, on étudie maintenant deux variantes π1 et π2 du Programme Bayésien π. Dans π1 , on modifie l’écart-type σ1 de la gaussienne du terme P (θ | X) : σ1 vaut 1 dans π1 (elle devient ainsi très piquée, et peut être assimilée à une distribution Dirac). Quel est le comportement obtenu en utilisant π1 ? R : Dans ce cas, la sommation sur θ se fait, et, sous la sommation, il y a un produit d’un facteur quasi-Dirac, P (θ | X), et d’un facteur qui est une gaussienne P (V rot | θ). Dans cette sommation, quasiment tous les termes sont 0, à cause de la distribution Dirac. Le seul terme non-nul est celui donné par le Dirac ; en d’autres termes, P (θ | X) « désigne » une valeur θt de θ, pour laquelle on consulte ensuite P (V rot | θ = θt ). Ainsi, ce calcul, bien qu’il se base sur une sommation, est en fait équivalent à faire un tirage intérmédiaire, comme dans le pseudo-code initial. En conséquence, on obtient un comportement similaire (le robot suit l’objet rouge). 8 Question 6 : Dans π2 , on modifie la forme paramétrique du terme P (θ | X) de π : au lieu d’une gaussienne (à un seul pic), ce terme est maintenant une distribution de probabilité à deux pics, l’un centré sur f1 (X), et l’autre sur −f1 (X) (imaginez la gaussienne initiale et son « miroir » par rapport à θ = 0). Ces deux pics sont plus piqués que la gaussienne initiale (avec σ1 petit, comme dans π1 ). Quel est le comportement obtenu en utilisant π2 ? Identifiez un défaut qu’à ce comportement par rapport au comportement initial de π, et décrivez en quelques phrases une solution possible. R : Ici en revanche, le terme P (θ | X) ne désigne plus qu’une seule valeur de θ. La loi de commande sur V rot obtenue se basera parfois sur la bonne valeur de θ, et parfois, sur son image miroir par rapport à θ = 0. En d’autres termes, le robot sera parfois attiré par l’objet rouge, et parfois repoussé par l’objet rouge. Comme les deux pics sur P (θ | X) sont de même taille, ces deux tendances seront également représentées dans le comportement final. Il y a alors deux cas à considérer : • Si l’objet rouge est déjà en face du robot, θ et −θ sont proches, et donc les deux comportements sont peu différents : le suivi d’objet, dans ce cas, devrait fonctionner. • Si l’objet rouge est excentré, en revanche, on combine alors deux comportements très différents : la sommation donnera une solution intermédiaire, consistant à aller tout droit (comme l’âne de Buridan, attiré à force égale par deux ressources, et qui, au final, n’en atteint aucune). Une solution éventuelle consiste à abandonner la sommation (moyenner deux comportements antinomique a peu de sens, dans ce cas), et revenir à un tirage intermédiaire ; ensuite, il faut s’assurer qu’on n’oscille pas en permanence entre les deux comportements. Un filtre bayésien permettrait de mémoriser le choix des pas de temps précédents, afin d’obtenir une consistance au cours du temps (quitte à appliquer le mauvais comportement). Cette solution est une ébauche : seule l’expérimentation sur un robot réél permet de trancher (la solution dépend de la dynamique de l’environnement, des constantes de temps du programme bayésien, etc.) 9