Université Paris 7 - M1 Ingénierie Informatique Année 2016-2017 TD de Introduction à l’Intelligence Artificielle n◦ 9 Réseaux Bayésiens Soient X1 , ..., Xn des variables aléatoires discrètes, et soit Vi = {vi1 , . . . , vili }, pour 1 ≤ i ≤ n, l’ensemble des valeurs possibles de la variables Xi . La lois jointe de X1 , ..., Xn est donnée par une table de Πni=1 li T lignes, spécifiant pour chaque vecteur v1k1 ∈ V1 , . . . , vnkn ∈ Vn la probabilité de l’événement ni=1 Xi = viki Tn (remarque: pour calculer P( i=1 Xi = viki ) il sera utile de vérifier l’indépendance des variables, et dans les cas de dépendance, d’utiliser les probabilités conditionnelles). Exercice 1 Calcul d’une lois jointe En sortant par temps nuageux, je prend mon parapluie une fois sur deux (PP). Si je le prend, il pleut (PL) une fois sur dix, sinon neuf fois sur dix. Par ailleurs, si j’ai pris mon parapluie j’ai deux chances sur trois de l’oublier quelques parts (PO). Donner la lois jointe des variables booléennes PP, PL, PO. A partir de la lois jointe de X1 , ..., Xn , on peut calculer facilement P(E) pour n’importe quel événement E concernant X1 , ..., Xn : il suffit de calculer la somme des probabilités des lignes de la table de la lois jointe de X1 , ..., Xn où l’événement en question se produit. La probabilité d’un événement conditionnel E|V est donnée par la somme des probabilités des lignes où E et V se produisent, divisée par la somme des probabilités des lignes où V se produit. Exercice 2 Utilisation d’une lois jointe A partir de la lois jointe de l’exercice 1, calculer: 1)P(PL); 2) P(PL, PO); 3) P(PP|PL) ... Il est clair que le calcul de la lois jointe est simplifié par des hypothèse d’indépendance entre les Xi : Définition: Xi est indépendante de X j si P(Xi = vik |X j = vmj ) = P(Xi = vik ), pour tout vik ∈ Vi , vmj ∈ V j . T Si, par exemple, les variables X1 , . . . , Xn sont toutes indépendantes entre elles1 , on a P( ni=1 Xi = viki ) = Πni=1 P(Xi = viki ) Exercice 3 Un exemple de lois jointe avec peu de dépendance On lance quatre fois une pièce. Si le résultat est Pile à chaque fois, on gagne 15 euros, sinon on perd 1 euro. Donner la lois jointe de L1 , L2 , L3 , L4 , G, où Li est la variable aléatoire associée au i-ème lancer, et G le gain. Les réseaux bayésiens permettent de représenter de manière intuitive et compacte les relations de dépendance existantes entre les variables aléatoires pertinentes à l’étude d’un problème/phénomène donné2 . La donnée des probabilités conditionnelles réliant chaque variable du réseau à ses parents, permet de calculer la lois jointe de l’ensemble des variables du réseau, et donc aussi toutes les probabilités conditionnelles intéressantes pour l’étude du problème/phénomène en question3 . 1 Bien évidemment, il s’agit là d’un cas limite: la modélisation via les réseaux bayésiens concerne des phénomènes/événements corrélés. 2 On peut penser à de problèmes de décision/diagnostique/planification/... 3 Toutefois, le calcul de la probabilité jointe à partir d’un réseau bayésian est complexe: il a été montré par G. F. Cooper en 1987 que dans le cas général, il s’agit d’un problème NP-difficile. 1 Définition: Un réseau bayésien est un graphe orienté acyclique G = (V, E), où V est l’ensemble des noeuds du réseaux et E l’ensemble de ses arcs. Chaque noeud représente une variable aléatoire discrète. À chaque noeud x est associé la distribution de probabilité conditionnelle P(x|pa(x)), oà pa(x) désigne l’ensemble des prédécesseurs immédiat de x dans G. Par exemple, voici le réseau bayésien relatif au jeu de l’exercice 3: L1 L2 L3 L4 G P(G = 15|L1 = L2 = L3 = L4 = Pile) = 1 P(G = −1|L1 = b1 , L2 = b2 , L3 = b3 , L4 = b4 ) = 1 si ∃i : bi 6= Pile Exercice 4 Deux réseaux bayésiens Dessiner le réseau bayésien modélisant la situation décrite dans l’exercice 1, puis celui modélisant la situation décrite dans l’exercice 9. Dans un réseau bayésien, pour détecter l’indépendence de deux variables, on considère les chemins non orientés qui les relient. Il existe trois forme possibles pour un chemin de longueur deux: HT (Head to Tail), TT (Tail to Tail) et HH (Head to Head): X Y Y Z HT X X Z TT Z Y HH Exercice 5 Calcul de lois jointes sur des petits réseaux bayésiens Pour chacun des réseaux ci-dessus, supposons que X,Y, Z soient des variables aléatoires booléennes, que P(W ) = 0.5 pour chaque variable W n’ayant aucun parent dans le graphe, que la probabilité conditionnelle associée à chaque arc W → V soit P(V |W ) = 0.5, P(V |¬W ) = 0.2 dans les cas HT et TT, et finalement que, dans le cas HH, on ait P(Y |X, Z) = P(Y |¬X, ¬Z) = 0.5 et P(Y |X, ¬Z) = P(Y |¬X, Z) = 0.2. Donner la lois jointe de X,Y, Z dans les trois cas. Deux variables sont inter-dépendentes s’il existe un chemin qui les relie et qui ne contient aucun souschemin de la forme HH; deux variable non inter-dépendantes sont séparées. Exercice 6 Séparation dans un réseau bayésien On considère le réseaux (sans probabilités conditionnelles, pour le moment): 2 S M L R T Pour chaque paire de variables, dire si elles sont inter-dépendentes ou séparées. Si deux variables X,Y sont séparées, alors P(X = v|Y = w) = P(X = v) et donc P(X = v,Y = w) = P(X = v)P(Y = w). Dans certains cas, deux variables dépendantes deviennent séparées si on augmente notre connaissance (par instanciation d’autre variables). Par exemple, dans les réseaux HT et TT ci-dessus, X et Z deviennent indépendantes si on instancie Y : P(X|Y, Z) = P(X|Y ) et P(Z|Y, X) = P(Z|Y ). Donc P(X, Z|Y ) = P(X|Y )P(Z|Y ). Il est possible, par ailleurs, que l’instanciacion d’une variable rende inter-dépendantes deux variables qui ne l’étaient pas: par exemples dans HH, si on instancie Y , X et Z deviennent dépendantes. Ceci motive la définition suivante: d-séparation: Soient V et W deux noeuds d’un réseau bayésien et soit d un ensemble de noeuds du réseau. On dit que V et W sont d-dépendantes s’il existe un chemin qui les relie et qui est tel que: • pour tout sous-chemin X → Y → Z, Y 6∈ d. • pour tout sous-chemin X ← Y → Z, Y 6∈ d. • pour tout sous-chemin X → Y ← Z il existe un descendant de Y qui appartient à d, l’ensemble des descendants de Y étant l’ensemble de sommets reliés à Y par un chemin orienté de longueur ≥ 0 (donc Y est un descendant de Y ). V et W sont d-séparés si un tel chemin n’existe pas. Deux ensemble de sommets v, w sont d-séparés si pour tout V ∈ v et pour tout W ∈ w, V et W sont d-séparés. Remarque: deux variables sont inter-dépendentes si et seulement si elles sont 0-dépendantes. / Elles sont séparées si et seulement si elles sont 0-séparées. / Exercice 7 d-séparation dans un réseau bayésien Dans le réseau de l’exercice 6, pour chaque paire de variables différentes de L, dire si elles sont {L}dépendantes ou {L}-séparées. Si deux variables X,Y sont {Z}-séparées, alors P(X = v|Y = w, Z = u) = P(X = v|Z = u) et donc P(X = v,Y = w, Z = u) = P(X = v|Z = u)P(Y = w|Z = u)P(Z = u). Inférence de probabilités dans un réseau bayésien: L’inférence dans un réseau bayésien est le calcul des probabilités a posteriori dans le réseau, étant donné des nouvelles informations observées. Ainsi, étant donné un ensemble d’évidences (de variables instanciées) Y , le problème de l’inférence dans G = (V, E) est de calculer P(X|Y ) avec X ⊂ V , Y ⊂ V . Si Y est vide (aucune évidence), cela revient à calculer P(X). Les informations de dépendance/séparation sont essentielles pour calculer la lois jointe d’un réseau bayésien: considérons par exemple le réseau: 3 Xn → Xn−1 → . . . → X1 comportant n variables booléennes X1 ,...,Xn disposées dans une chaîne, et supposons de vouloir calculer P(X1 , ..., Xn ) (c.à.d la probabilité que les n variables valent toutes 1). Si on sélectionne X1 , on a P(X1 , ..., Xn ) = P(X1 |X2 , ..., Xn )P(X2 , ..., Xn ). Or, vu que X1 est {X2 }-séparée de toute autre variable du réseau, on a P(X1 |X2 , ..., Xn ) = P(X1 |X2 ). Il nous reste à calculer P(X2 , ..., Xn ) = P(X2 |X3 , ..., Xn )P(X3 , ..., Xn ). Vu que X2 est {X3 }-séparée de toute autre variable du réseau, on a P(X2 |X3 , ..., Xn ) = P(X2 |X3 ). En itérant ce processus, on obtient P(X1 , ..., Xn ) = P(X1 |X2 )P(X2 |X3 ) . . . P(Xn−1 |Xn )P(Xn ) Remarquer que toutes les probabilités conditionnelles de la dernière équation sont données explicitement dans le réseau. Exercice 8 Inférence de probabilités à partir d’un réseau bayésien (I) Les données suivantes complètent le réseau de l’exercice 6 (toutes les variables sont booléennes4 : P(S) = 0.3, P(M) = 0.7, P(L|S, M) = 0.1, P(L|S, ¬M) = 0.2, P(L|¬S, M) = 0.3, P(L|¬S, ¬M) = 0.6, P(R|M) = 0.2, P(R|¬M) = 0.5, P(T |L) = 0.3, P(T |¬L) = 0.8. Remarque: les 10 probabilités données ci-dessus suffisent à calculer la lois jointe des 5 variables du réseau, là où 25 − 1 = 31 probabilités jointes sont nécessaires pour donner explicitement la lois jointe. 1. Calculer P(S, ¬M, L, ¬R, T ) Exercice 9 Inférence de probabilités à partir d’un réseau bayésien (II) Chacun a des bonnes chances5 de réussir ses études (RE). Si on réussit ses études on a huit chances sur dix de trouver un travail intéressant (T I), sinon une chance sur trois. On a par ailleurs une chance sur un million de gagner au loto (GL). Si on trouve un travail intéressant ET on gagne au loto on a neuf chances sur dix d’être heureux (EH), Si on trouve un travail intéressant OU on gagne au loto on a deux chances sur trois d’être heureux, sinon on a une chance sur deux d’être heureux. 1. en analysant la dépendance/séparation dans le réseau bayésien de la deuxième partie de l’exercice 4, calculer: • la lois jointe de RE, GM pour une personne donnée. • la lois jointe de RE, GM pour une personne donnée, dont on sait qu’elle est heureuse. • la lois jointe de RE, GM pour une personne donnée, dont on sait qu’elle est heureuse et qu’elle a un travail intéressant. 2. Donner la lois jointe des variables booléennes RE, T I, EH, GL, par inférence à partir du réseau bayésien de la deuxième partie de l’exercicie 4. 4 les variables peuvent être interprétées comme suit: T: Le cours commence à 10:35. L: L’enseignant arrive en retard (Late). R: Le sujet de l’enseignement est la Robotique. M: Manuela enseigne. S: il fait beau (Sunny). 5 A vous de choisir P(RE). 4