IFT 615 – Intelligence artificielle Raisonnement probabiliste - réseaux bayésiens Froduald Kabanza Département d’informatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift615
Sujets couverts C’est quoi un réseau bayésien (RB)? structure d’un RB calcul de probabilités dans un RB Indépendance conditionnelle dans un RB Inférence dans un réseau bayésien inférence exacte inférence approximative Sujet plus poussés apprentissage automatique des réseaux bayésiens IFT615 Froduald Kabanza
Réseaux bayésiens On a vu les bases du raisonnement probabiliste et de la théorie des probabilité à partir d’une table des probabilités conjointes, comment calculer toute autre probabilité On a utilisé un exemple simple (MalDeDent, Croche, Carie) on aurait pu considérer le cas de la détection de « pourriels » AuteurInconnu : l’auteur du courriel est inconnu ContientMotListeNoire : le courriel contient un mot d’une « liste noire » Pourriel : le courriel est un pourriel souvent, on aura besoin de centaines de variables aléatoires la table des probabilités ne pourra pas être stockée en mémoire Dans ce cours, on va voir une façon plus efficace de construire un modèle de raisonnement probabiliste IFT615 Froduald Kabanza
Réseaux bayésiens Les réseaux bayésiens (RB) sont un mariage entre la théorie des graphes et la théorie des probabilités Un RB permet de représenter les connaissances probabilistes d’une application donnée : par exemple, les connaissances cliniques d’un médecin sur des liens de causalité entre maladies et symptômes Les RB sont utiles pour modéliser des connaissances d’un système expert ou d’un système de support à la décision, dans une situation pour laquelle : la causalité joue un rôle important (des événements en causent d’autres) mais notre compréhension de la causalité des événements est incomplète (on doit recourir aux probabilités) IFT615 Froduald Kabanza
Application : diagnostique médical Déterminer la maladie d’un patient, sachant des symptômes On peut avoir une maladie mais montrer seulement un sous-ensemble des symptômes possibles Age Gender Exposure- to-Toxics Smoking Cancer Cancer la capacité du corps humain à maintenir un taux de calcium normal – on peut détecter un cancer en mesurant le taux de calcium Cancer influence le fait d’avoir un tumeur au poumon Serum- Calcium Lung- Tumor IFT615 Froduald Kabanza
Applications Diagnostique : P(Causes | Symptômes) Symptom Diagnostique : P(Causes | Symptômes) Prédictuon : P(Symptomes | Causes) Classification : max P(Classe |Données) classe Prise de décision avec un diagramme d’influence (réseau bayésien + fonction d’utilité) À quoi servent les réseaux bayésiens? IFT615 Froduald Kabanza
Application : diagnostique médical Pathfinder (version 4) en accord avec un panel d’experts 50 fois sur 53 prédictions aussi bonnes que celles des experts qui ont développé le système M. Pradhan, G. Provan, B. Middleton, M. Henrion, UAI 1994 IFT615 Froduald Kabanza
Application : prédiction du traffic routier JamBayes : système de prédiction du trafic routier à Seattle Smartphone application. Clock graphics are used to display time until a congested bottleneck will clear (red) and the time until a bottleneck that is currently open will become congested (green). Started as a project at Microsoft. Then licenced to Inrix startup. Horvitz, Apacible, Sarin and Liao, UAI 2005 IFT615 Froduald Kabanza
Applications Système Vista de la NASA Système APRI de AT&T Bell Labs support au diagnostique en temps réel des pannes du système de propulsion des navettes spatiales Système APRI de AT&T Bell Labs détections des fraudes et des mauvais payeurs pour les factures de téléphone Assistant Microsoft Office 95/97 Classification de documents détection de pourriels IFT615 Froduald Kabanza
Syntaxe Un RB est un graphe orienté acyclique dont les nœuds sont des variables aléatoires et les arcs représentent des dépendances (par exemple des causalités) probabilistes entre les variables et des distributions de probabilités conditionnelles (locales) pour chaque variable étant donnés ses parents Carie MalDeDents Croche IFT615 Froduald Kabanza
Exemple Considérons la situation suivante : je suis au travail, et mes voisins Marie et Jean m’ont promis de m’appeler chaque fois que mon alarme sonne mon voisin Jean m’appelle pour me dire que mon alarme sonne parfois il confond l’alarme avec la sonnerie du téléphone par contre ma voisine Marie ne m’appelle pas toujours parfois elle met la musique trop fort parfois mon alarme se met à sonner lorsqu’il y a de légers séismes comment conclure qu’il y a ou non un cambriolage chez moi? On peut représenter ce problème par un RB IFT615 Froduald Kabanza
Exemple Variables aléatoires : Cambriolage Séisme Alarme JeanAppelle MarieAppelle Cambriolage Séisme Alarme MarieAppelle JeanAppelle IFT615 Froduald Kabanza
Exemple La topologie du RB modélise les relations de causalité P(C) .001 P(S) .002 La topologie du RB modélise les relations de causalité Un arc d’un nœud X vers un nœud Y signifie que la variable X influence la variable Y un cambriolage peut déclencher l’alarme un séisme aussi l’alarme peut inciter Jean à appeler idem pour Marie Une table de probabilités conditionnelles (TPC) donne la probabilité pour chaque valeur du nœud étant donnés les combinaisons des valeurs des parents du nœud (c’est l’équivalent d’une distribution) Cambriolage Séisme C S P(A|C,S) T T .95 T F .94 F T .29 F F .001 Alarme MarieAppelle JeanAppelle A P(M|A) T .70 F .01 A P(J|A) T .90 F .05 IFT615 Froduald Kabanza
Définitions Cambriolage Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) T T .95 T F .94 F T .29 F F .001 A P(J|A) T .90 F .05 A P(M|A) T .70 F .01 P(C) .001 P(S) .002 S’il y a un arc d’un nœud Y vers un nœud X, cela signifie que la variable Y influence la variable X Y est appelé le parent de X Parents(X) est l’ensemble des parents de X Si X n’a pas de parents, sa distribution de probabilités est dite inconditionnelle ou a priori Si X a des parents, sa distribution de probabilités est dite conditionnelle Si X est une variable observée, ont dit que c’est une évidence ou une observation. IFT615 Froduald Kabanza
RB avec des variables continues PDF(D) PDF(S) … … Dans ce cours, on considère uniquement des RB avec des variables discrètes : les TPC sont spécifiées en énumérant toutes les entrées Mais les RB peuvent aussi supporter les variables continues : les probabilités conditionnelles sont spécifiées par des fonctions de densité de probabilités (PDF) exemples : distance entre voleur et le capteur de mouvement force du séisme sur l’échelle de Richter Distance Voleur ForceSéisme D S P(A|C,S) <1 >4 .95 <1 <4 .94 >1 >4 .29 >1 <4 .001 Alarme MarieAppelle JeanAppelle A P(M|A) V .70 F .01 A P(J|A) V .90 F .05 IFT615 Froduald Kabanza
Autres appellations Il y a d’autres appellations pour les RB : Cambriolage Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) V V .95 V F .94 F V .29 F F .001 A P(J|A) V .90 F .05 A P(M|A) V .70 F .01 P(C) .001 P(S) .002 Il y a d’autres appellations pour les RB : réseaux de croyance (belief networks) modèle graphique dirigé acyclique Les RB font partie de la classe plus courante des modèles graphiques IFT615 Froduald Kabanza
Sémantique Un RB est une façon compacte de représenter des probabilités conjointes Par définition, la probabilité conjointe de X1 et X2 est donnée par la distribution P(X1,X2), pour une valeur donnée de X1 et X2 La distribution conditionnelle de X1 sachant X2 est notée P(X1| X2) P(X1,X2) = P(X1 | X2) P(X2) Soit X = {X1, …, Xn}, l’ensemble des variables d’un RB : P(X1, …, Xn) =i = 1 P(Xi | Parents(Xi)) En d’autres mots, la distribution conjointe des variables d’un RB est définie comme étant le produit des distributions conditionnelles (locales) Seules comptent les probabilités de chaque variable connaissant ses parents, pour calculer la distribution jointe. n IFT615 Froduald Kabanza
Calcul de probabilité conjointe Nous avons vu qye, quelque soit l’ensemble de variables X = {X1, …, Xn}, par définition : P(X1, …, Xn) = P(Xn | Xn-1, …, X1) P(Xn-1, …, X1) = P(Xn | Xn-1, …, X1) P(Xn-1 | Xn-2, …, X1) … P(X2|X1) P(X1) = i = 1 P(Xi | Xi-1, …, X1) Pour un RB : P(X1, …, Xn) =i = 1 P(Xi | Parents(Xi)) ceci est cohérent avec l’assertion précédente pour autant que Parents(Xi) soit l’ensemble de {Xi-1, …, X1} ainsi, un RB est en fait une façon de représenter les indépendances conditionnelles n n Pour satisfaire la condition que Parents(Xi) est un sous-ensemble de {Xi-1, …, X1}, on étiquette les nœuds du RB dans un ordre cohérent avec la relation d’ordre partielle implicite dans la topologie du RB. IFT615 Froduald Kabanza
Exemple : probabilité conjointe Cambriolage Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) T T .95 T F .94 F T .29 F F .001 A P(J|A) T .90 F .05 A P(M|A) T .70 F .01 P(C) .001 P(S) .002 P(X1, … ,Xn) = i = 1 P(Xi | Parents(Xi)) P(j, m, a, ¬c, ¬s) = P(j|a) P(m|a) P(a| ¬ c, ¬ s) P(¬ c) P(¬ s) = .90 * .70 * .001 * .999 * . 998 ≈ .00062 n P(J=j, M=m, A=a, C=¬c, S=¬s) est aussi noté P(j, m, a, ¬c, ¬s) IFT615 Froduald Kabanza
Exemple : probabilité marginale Cambriolage Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) T T .95 T F .94 F T .29 F F .001 A P(J|A) T .90 F .05 A P(M|A) T .70 F .01 P(C) .001 P(S) .002 P(¬c, a) = Σm Σj Σs P(J=j,M=m,a,¬c,S=s) = Σm Σj Σs P(j|a) P(m|a) P(a| ¬ c, s) P(¬c) P(s) = Σs Σj Σm P(j|a) P(m|a) P(a| ¬ c, s) P(¬c) P(s) = Σs Σj P(j|a) P(a| ¬ c, s) P(¬c) P(s) Σm P(m|a) = Σs P(a| ¬ c, s) P(¬c) P(s) Σj P(j|a) = P(a|¬c,s) P(¬c) P(s) + P(a|¬c,¬s) P(¬c) P(¬s) = .29 * .999 * .002 + .001 * .999 * .998 ≈ 0.0016 = 1 = 1 IFT615 Froduald Kabanza
Probabilité marginale P(C) .001 P(S) .002 P(¬ c, a) = Σm Σj Σs P(J=j,M=m,a,¬c,S=s) = Σs P(a| ¬ c, S=s) P(¬c) P(S=s) Pour les probabilités marginales, on peut ignorer les nœuds dont les descendants ne sont pas les nœuds observés JeanAppelle et MarieAppelle et leurs descendants ne sont pas observés, alors on peut les ignorer Séisme est un ancêtre de Alarme, alors on doit le marginaliser explicitement Cambriolage Séisme C S P(A|C,S) T T .95 T F .94 F T .29 F F .001 Alarme MarieAppelle JeanAppelle A P(M|A) T .70 F .01 A P(J|A) T .90 F .05 IFT615 Froduald Kabanza
Indépendance conditionnelle dans un RB Cambriolage Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) V V .95 V F .94 F V .29 F F .001 A P(J|A) V .90 F .05 A P(M|A) V .70 F .01 P(C) .001 P(S) .002 Relation entre grand-parent et enfant étant donné le parent sont indépendants si parent observé. Exemples : Cambriolage et MarieAppelle sont dépendants a priori mais ils sont indépendants étant donné Alarme : P(M|A,C) = P(M|A) si A est connu, C n’intervient pas dans le calcul connaître A « bloque » le chemin entre M et C Exemples similaires avec Cambriolage -> Alarme -> JeanAppelle ou Sésime -> Alarme -> JeanAppelle, etc. Si on voit l’indépendance entre deux variables (Cambriolage et MarieAppelle) on pourrait dire qu’observer Alarme bloque le chemin entre les deux variabes. IFT615 Froduald Kabanza
Indépendance conditionnelle dans un RB Cambriolage Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) V V .95 V F .94 F V .29 F F .001 A P(J|A) V .90 F .05 A P(M|A) V .70 F .01 P(C) .001 P(S) .002 P(M|A,C) = P(M,A,C) / P(A,C) = Σs P(M,A,C,S=s) Σs P(A,C,S=s) = Σs P(M|A) P(A|C,S=s) P(S=s) P(C) Σs P(A|C,S=s) P(S=s) P(C) = P(M|A) Σs P(A|C,S=s) P(S=s) P(C) = P(M|A) Note: Par définition, P(A,M,C) = Σj Σs P(M,A,C,J=j,S=s) Cependant, comme nous l’avons vu, nous pouvons ignorer les variables dont les descendants ne sont pas observés. C’est le cas de J. Nous n’avons pas besoin de marginaliser sur J. On a donc P(A,M,C) = Σs P(M,A,C,S=s) IFT615 Froduald Kabanza
Indépendance conditionnelle dans un RB Cambriolage Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) V V .95 V F .94 F V .29 F F .001 A P(J|A) V .90 F .05 A P(M|A) V .70 F .01 P(C) .001 P(S) .002 P(M|A,C) = P(M,A,C) / P(A,C) = Σs P(M,A,C,S=s) Σs P(A,C,S=s) = Σs P(M|A) P(A|C,S=s) P(S=s) P(C) Σs P(A|C,S=s) P(S=s) P(C) = P(M|A) Σs P(A|C,S=s) P(S=s) P(C) = P(M|A) En fait, la simplification est possible parce que grâce à l’observation de A, j’ai réussi à séparer la contribution de la probabilité de MarieAppelle et Alarme en une partie qui dépend seulement de M (P(M|A)) et une partie qui ne dépend pas de M. IFT615 Froduald Kabanza
Indépendance conditionnelle dans un RB Cambriolage Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) V V .95 V F .94 F V .29 F F .001 A P(J|A) V .90 F .05 A P(M|A) V .70 F .01 P(C) .001 P(S) .002 Relation entre deux enfants étant donné un parent: sont indépendants si parent observé Exemples : JeanAppelle et MarieAppelle sont dépendants à priori mais ils sont indépendants étant donné Alarme : P(M|A,J) = P(M|A) si A est connu, J n’intervient pas dans le calcul connaître A « bloque » le chemin entre J et M Encore une fois, si on voit l’indépendance entre deux variables (JeanAppelle et MarieAppelle) on pourrait dire qu’observer Alarme bloque le chemin entre les deux variabes. IFT615 Froduald Kabanza
Indépendance conditionnelle dans un RB Cambriolage Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) V V .95 V F .94 F V .29 F F .001 A P(J|A) V .90 F .05 A P(M|A) V .70 F .01 P(C) .001 P(S) .002 P(M|A,J) = P(M,A,J) / P(A,J) = Σs Σc P(M,A,J,S=s,C=c) Σs ΣcP(A,J,S=s,C=c) = Σs Σc P(J|A) P(M|A) P(A,S=s,C=c) Σs Σc P(J|A) P(A,S=s,C=c) = P(M|A) Σs Σc P(J|A) P(A,S=s,C=c) = P(M|A) IFT615 Froduald Kabanza
Indépendance conditionnelle dans un RB Cambriolage Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) V V .95 V F .94 F V .29 F F .001 A P(J|A) V .90 F .05 A P(M|A) V .70 F .01 P(C) .001 P(S) .002 P(M|A,J) = P(M,A,J) / P(A,J) = Σs Σc P(M,A,J,S=s,C=c) Σs ΣcP(A,J,S=s,C=c) = Σs Σc P(J|A) P(M|A) P(A,S=s,C=c) Σs Σc P(J|A) P(A,S=s,C=c) = P(M|A) Σs Σc P(J|A) P(A,S=s,C=c) = P(M|A) Encore une fois, l’observation de Alarme m’a permis deséparer la probabilité conjointe sur MarieAppelle et JeanAppelle en une partie qui ne dépend que JeanAppelle étant donné Alarme et MarieAppelle étant donné Alarme. C’est ça qui permet la simplification permettan d’ignorer la variable JeanAppelle. IFT615 Froduald Kabanza
Indépendance conditionnelle dans un RB Cambriolage Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) V V .95 V F .94 F V .29 F F .001 A P(J|A) V .90 F .05 A P(M|A) V .70 F .01 P(C) .001 P(S) .002 Relation entre deux parents étant donné un enfant sont indépendants si enfant non observé Exemples : Cambriolage et Séisme sont indépendants à priori mais ils sont dépendants étant donné Alarme P(C|A,S) n’est pas simplifiable, parce que P(A|C,S) n’est pas simplifiable ne pas connaître A « bloque » le chemine entre C et S IFT615 Froduald Kabanza
Indépendance conditionnelle dans un RB Cambriolage Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) V V .95 V F .94 F V .29 F F .001 A P(J|A) V .90 F .05 A P(M|A) V .70 F .01 P(C) .001 P(S) .002 P(C|A,S) = P(C,A,S) / P(A,S) = P(A|S,C) P(S) P(C) Σc P(A|S) P(S) P(C) Pour calculuer P(C,A,S) on peut ignorer J et M parce que J et M n’ont pas de descendants parmi les variables observées. IFT615 Froduald Kabanza
Indépendance conditionnelle dans un RB Cambriolage Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) V V .95 V F .94 F V .29 F F .001 A P(J|A) V .90 F .05 A P(M|A) V .70 F .01 P(C) .001 P(S) .002 De ces trois dernières règle, émane une règle plus générale: un nœud est indépendant de ses non-descendants, étant donné ses parents exemples : Cambriolage et Séisme sont indépendants a priori mais ils sont dépendants étant donné Alarme P(C|A,S) n’est pas simplifiable, parce que P(A|C,S) n’est pas simplifiable ne pas connaître A « bloque » le chemine entre C et S IFT615 Froduald Kabanza
Indépendance conditionnelle dans un RB : Couverture de Markov Soit la couverture de Markov (Markov blanket) MB(X) d’un nœud X, c’est à dire : les parents de X les enfants de X et les parents des enfants de X Le nœud X est conditionnellement indépendant des autres nœuds (hors de la couverture de Markov), étant donné les nœuds de la couverture de Markov : P(X|MB(X),Others) = P(X|MB(X)) La couverture de Markov est décrite dans le manuel du cours mais elle est moins générale que la D-séparation. Couverture de Markov de X IFT615 Froduald Kabanza
Indépendance conditionnelle dans un RB : D-séparation D-séparation : critère général pour décider si un nœud X est indépendant d’un nœud Y, étant donnés d’autres nœuds Z = {Z1, ..., Zm} X est indépendant de Y sachant Z si tous les chemins non-dirigés entre X et Y sont bloqués par Z Un chemin est bloqué s’il contient au moins un noeud N qui satisfait une ou l’autre des conditions suivantes : il inclue un noeud ou , où N ∈ {Z1, ..., Zm} il inclue un noeud et N ∉ {Z1, ..., Zm}, et aucun des descendants de N appartient {Z1, ..., Zm}. N N D-separated (ici “D” veut dire “directionnel”; on tient compte de l’orientation des flèches). À valider: D-séparation est une condition nécessaire pour l’indépendence, mais pas suffisante. C.à.d., si X et Y sont d-séparé par Z alors X est indépendant de Y sachant Z . Par contre, si X et Y ne sont d-séparé par Z on ne peut pas forcément conclure que X est dépendant de Y sachant Z . N IFT615 Froduald Kabanza
Exemple Est-ce que Age et Gender sont indépendants ? Age Gender Exposure- to-Toxics Smoking Cancer Oui. Dans cette question, il ne s’agit pas d’indépendence conditionnel. Il s’agit d’indépendence à priori. Z est l’ensemble vide. Serum- Calcium Lung- Tumor IFT615 Froduald Kabanza
Exemple Est-ce que Age et Gender sont indépendants ? chemin 1 est bloqué au niveau de Smoking Smoking et ses descendants Cancer, Serum-Calcium et Lung-Tumor ne sont pas observés Age Gender Exposure- to-Toxics N Smoking Cancer Smoking et ses descendants Cancer, Serum-Calcium et Lung-Tumor ne sont pas observés. Autrement dit, Z est vide ici. Serum- Calcium Lung- Tumor IFT615 Froduald Kabanza
Exemple Est-ce que Age et Gender sont indépendants ? Réponse : oui chemin 1 est bloqué au niveau de Smoking Smoking et ses descendants Cancer, Serum-Calcium et Lung-Tumor ne sont pas observés chemin 2 est aussi Cancer même raisons Réponse : oui Age Gender Exposure- to-Toxics N Smoking Cancer N Serum- Calcium Lung- Tumor IFT615 Froduald Kabanza
Exemple Est-ce que Age et Lung-Tumor sont indépendants sachant Smoking ? Age Gender Exposure- to-Toxics Smoking Cancer Non. Chemin qui passe par Exposure-to-Toxics n’est pas bloqué Serum- Calcium Lung- Tumor IFT615 Froduald Kabanza
Exemple Est-ce que Age et Lung-Tumor sont indépendants sachant Smoking ? chemin 1 est bloqué au niveau de Smoking Smoking est observé Age Gender Exposure- to-Toxics Smoking N Cancer Serum- Calcium Lung- Tumor IFT615 Froduald Kabanza
Exemple Est-ce que Age et Lung-Tumor sont indépendants sachant Smoking ? chemin 1 est bloqué au niveau de Smoking Smoking est observé chemin 2 n’est pas bloqué Exposure-to-Toxics n’est pas observé Cancer n’est pas observé Réponse : non Age Gender Exposure- to-Toxics Smoking N Cancer non chemin qui passe par Exposure-to-Toxics n’est pas bloqué Pas observé c.à.d. pas dans Z. N N Serum- Calcium Lung- Tumor IFT615 Froduald Kabanza
Exemple Est-ce que Exposure-to-Toxics et Smoking sont indépendants sachant Age et Lung-Tumor? Age Gender Exposure- to-Toxics Smoking Cancer Non. Lung-Tumor crée une dépendance Serum- Calcium Lung- Tumor IFT615 Froduald Kabanza
Exemple Est-ce que Exposure-to-Toxics et Smoking sont indépendants sachant Age et Lung-Tumor? chemin 1 est bloqué au niveau de Age Age est observé Age Gender Exposure- to-Toxics Smoking N Cancer Serum- Calcium Lung- Tumor IFT615 Froduald Kabanza
Exemple Est-ce que Exposure-to-Toxics et Smoking sont indépendants sachant Age et Lung-Tumor? chemin 1 est bloqué au niveau de Age Age est observé chemin 2 n’est pas bloqué Cancer ne bloque pas le chemin puisque Lung-Tumor, un de ses descendants, est observé Réponse : non Age Gender Exposure- to-Toxics Smoking N Cancer non Lung-Tumor est observé. Il crée une dépendance. N Serum- Calcium Lung- Tumor IFT615 Froduald Kabanza
Requête dans un RB L’usage principal d’un RB est de calculer les probabilités a posteriori, étant donné un événement observé un événement est une assignation de valeurs à certaines variables d’observation ex. : sachant le résultat d’une batterie de test, quelle est maintenant la probabilité qu’un patient ait une maladie X ? On va noter X l’ensemble de variables pour lesquelles on fait une requête ex. : la patient a la maladie X E l’ensemble des variables d’observation et e les valeurs observées ex. : Ei = ei est le résultat d’un test Y l’ensemble des variables cachées (qui ne sont pas observées) ex. : Yi est le résultat de tests qui n’ont pas été faits Une requête est l’inférence de P(X|e), où e est une assignation de valeurs aux variables dans E IFT615 Froduald Kabanza
Requête dans un RB Exemple : Comment fait-on un tel calcul? Cambriolage Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) V V .95 V F .94 F V .29 F F .001 A P(J|A) V .90 F .05 A P(M|A) V .70 F .01 P(C) .001 P(S) .002 Exemple : P(Cambriolage | JeanAppelle = vrai, MarieAppelle = vrai ) = [ 0.284, 0.716 ] Comment fait-on un tel calcul? inférence exacte (prohibitif) par énumération inférence approximative par échantillonnage avec les méthodes Monte-Carlo (plus efficace) méthode de rejet IFT615 Froduald Kabanza
Inférence par énumération On veut calculer la distribution sur les variables de requêtes sachant les observations P(X|e) = α P(X,E=e)= α Σy P(X, e, y) Les termes P(X, e, y) peuvent s’écrire comme le produit des probabilités conditionnelles du réseau On peut donc calculer la réponse à une requête P(X|e) dans un RB, simplement en calculant les sommes des produits des probabilités conditionnelles du RB normalisant ces sommes de façon à obtenir une distribution qui somme à 1 Les ensembles des variables X, E et Y couvrent ensemble tous les noeuds complexité en temps : O(d |X|+|Y|), avec d la taille du plus grand domaine complexité en espace : O(d|X|), pour stocker la distribution IFT615 Froduald Kabanza
Exemple 1 P(Cambriolage | JeanAppelle = vrai, MarieAppelle = vrai) Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) V V .95 V F .94 F V .29 F F .001 A P(J|A) V .90 F .05 A P(M|A) V .70 F .01 P(C) .001 P(S) .002 P(Cambriolage | JeanAppelle = vrai, MarieAppelle = vrai) noté P(C | j, m) Les variables cachées sont Séisme et Alarme P(C | j, m) = α P(C, j, m) = α Σs Σa P(C, s, a, j, m) = P(C) Σs Σa P(s) P(a|C,s) P(j|a) P(m|a) = P(C) Σs P(s) Σa P(a|C,s) P(j|a) P(m|a) Note : s et a prennent toutes les valeurs possibles pour S=s et A=a ne pas confondre avec j et m qui sont des observations fixes (J=vrai et M=vrai) Voir la note 5 en bas de la page 505 dans le livre. IFT615 Froduald Kabanza
Exemple 1 (suite) Structure de l’expression representée par l’équation P(c | j, m)= α * P(c) ΣsP(s) Σa P(a|c,s) P(j|a) P(m|a) b-> c e ->s Note: ici, b-> c : burglary -> cambriolage e-> s : earthquake -> seisme Aussi, l’expression est pour une valeur fixe (vraie ou faux) de la variable C (Cambriolage), donc je l’ai mis en miniscule. Il faudrait calculer pour C=vrai et C=faux pour avoir la distribution poir P(C|j,m). IFT615 Froduald Kabanza
Exemple 1 (suite) Cambriolage Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) V V .95 V F .94 F V .29 F F .001 A P(J|A) V .90 F .05 A P(M|A) V .70 F .01 P(C) .001 P(S) .002 On calcule pour C = vrai P(c | j, m) = α P(c) Σs P(s) Σa P(a|c,s) P(j|a) P(m|a) = α * 0.001*(0.002*(0.95*0.90*0.70+ 0.05*0.05*0.01)+ 0.998*(0.94*0.90*0.70+ 0.06*0.05*0.01)) = α * 0.00059224 Et C = faux P(┐c | j, m) = α P(┐c) Σs P(s) Σa P(a| ┐c,s) P(j|a) P(m|a) = α * 0.0014919 α = 1 / (0.00059224 + 0.0014919) Donc, P(C | j, m) = [0.284, 0.716] Je n’ai pas vérifié les chiffres, je les ai prises telles quelles du livre. Ça me semble quand même l’inverse, c.-à-d., P(C =vrai | j, m) = 0.716 et P(C=false | j, m) = 0.284. Refaire les calculs et vérifier. IFT615 Froduald Kabanza
Exemple 2 : Évaluation par énumération Requête : Calculer P(T=vrai|F=faux, M=vrai) Variables connues : F = faux M = vrai Variables inconnues : H O F M P(H|F,M) 0.5 V 1.0 0.01 0.02 F M P(O) 0.6 H O Énumération des valeurs possibles des variables cachées (2*2) T H O P(H|F,M) * P(O)*P(T|H,O) = F 0.0 * 0.4 * 0.1 V 0.0 * 0.6 * 0.5 1.0 * 0.4 * 0.5 0.20 1.0 * 0.6 * 1.0 0.60 TOTAL 0.80 On énumère les valeurs possibles des variables cachées, en ayant fixée la valeur des variables d’interrogation (T=vrai) et des variables observées (F=faux, M=vrai) (en rouge). Note, on a P(H|F=faux,M=vrai)=1. Donc, on ne peut pas avoir H=faux. C’est pour cela que les deux premières lignes ont P(H|F,M) mis à 0. H O P(T|H,O) F 0.1 V 0.5 1.0 IFT615 Froduald Kabanza
Exemple 3 : Évaluation par énumérations Requête : Calculer P(T=vrai|M=vrai) Variables connues : M = vrai Variables inconnues : H O F F M P(H|F,M) 0.5 V 1.0 0.01 0.02 F M P(F) 0.2 P(O) 0.6 H F H O P(F)*P(H|F,M)*P(O)* P(T | H, O) = 0.8 * 0.0 * 0.4 * 0.1 V 0.8 * 0.0 * 0.6 * 0.5 0.8 * 1.0 * 0.4 * 0.5 0.16 0.8 * 1.0 * 0.6 * 1.0 0.48 0.2 * 0.98 * 0.4 * 0.1 0.00784 0.2 * 0.98 * 0.6 * 0.5 0.0588 0.2 * 0.02 * 0.4 * 0.5 0.0008 0.2 * 0.02 * 0.6 * 1.0 0.0024 TOTAL 0.71 O T H O P(T|H,O) F 0.1 V 0.5 1.0 IFT615 Froduald Kabanza
Exercice Soit le RB ayant les tables de probabilités conditionnelles suivantes Dessinez le graphe du RB. Calculez P(A=faux | E=vrai). Dites si B et E sont indépendants sachant F. Pourquoi? Dites si E et F sont indépendants sachant A et C. Pourquoi? IFT615 Froduald Kabanza
Inférence par élimination des variables Même principe que l’inférence par énumération, mais on évite les répétions de calculs déjà faits (comme en programmation dynamique) Voir section 14.4.2 du livre: P(c | j, m)= P(c) ΣsP(s) Σa P(a|c,s) P(j|a) P(m|a) / α b-> c e ->s IFT615 Froduald Kabanza
Inférence approximative Les méthodes d’inférence exactes sont inefficaces le problème d’inférence dans un RB est NP-Complet Les méthodes d’inférence approximatives sont plus pratiques en général, on n’a pas besoin d’un calcul exact des probabilités pour qu’une conclusion tirée d’un RB soit correcte les méthodes approximatives assignent des valeurs aux variables aléatoires en fonction des TPC associées à ces variables ces assignations sont basées sur des simulations stochastiques, plutôt que des observations réelles IFT615 Froduald Kabanza
Méthode de rejet (rejection sampling) Pour estimer P(X=x|e) Générer des échantillons complets à partir de la distribution spécifiée par le RB Rejeter tous les échantillons qui ne correspondent pas à l’observation e. Estimer P(X=x|e) en comptant combien de fois X=x se produit dans les échantillons restant. Autremet dit: P(X=x|e) = α Σy P(X=x, e, y) ≈ freq(x,e) / Σx’ freq(x’,e) = freq(x,e) / freq(e) Cette technique est appelée méthode de rejet (rejection sampling) le problème avec cette méthode est que si E=e est très rare selon le RB, il y aura peu d’échantillons qui correspondront à cette observation d’autres méthodes sont plus efficaces et nécessitent moins d’échantillons pour obtenir une bonne estimation voir la section 14.5 dans le livre P(X=x|e) = α Σy P(X=x, e, y) ≈ freq(x,e) / Σx’ freq(x’,e) = freq(x,e) / freq(e) où freq(x,e) est le nombre de fois que X=x et E=e a été échantillonné et freq(e) = Σx’ freq(x’,e) est le nombre de fois que E=e IFT615 Froduald Kabanza
Exemple Requête : Calculer P(T=vrai|M=vrai) Variables connues : M = vrai Variables inconnues : H O F F M P(H|F,M) 0.5 V 1.0 0.01 0.02 F M P(F) 0.2 P(O) 0.6 H F H O T # rand()<0.2 rand()<P(H|F,M) rand()<0.6 rand()<P(T|H,O) 1 faux vrai 2 3 4 5 6 7 8 Average of T=vrai 6/8 = 0.75 O T Ici, je montre seulement les échantillons où M=vrai (variable observée). Les autres échantillons sont rejetées. Par conséquent, la variable M n’apparait pas dans ma table. Pour chaque échantillon, je simule le réseau bayésien en suivant sa topologie, en commençant par les variables sans parents. Par exemple, pour échantilloner F, imaginer que j’ai un générateur de nonmbre aléatoire sur l’intervalle [0,1], s’il me retourne une valeur inférieur ou égale 0 0.2, j’assigne F à vrai, sinon à faux. H O P(T|H,O) F 0.1 V 0.5 1.0 Plus qu’il y a d’échantillon, plus l’erreur d’estimation est faible. (Vrai réponse : 0.71) IFT615 Froduald Kabanza
Exemple 2 : Décomposition en polytree Requête : Calculer P(T=vrai|M=True) Variables connues : M = True Variables inconnues : H O F F M P(H|F,M) 0.5 T 1.0 0.01 0.02 F M P(F) 0.2 P(O) 0.6 H 1 O 1 F P(F)*P(H | F,M) = 0.8*1.0 0.8 T 0.2*0.02 0.004 Total 0.804 T 2 2 H O P(H)*P(O)*P(T|H,O) = F 0.196*0.4 * 0.1 0.00784 T 0.196*0.6 * 0.5 0.0588 0.804*0.4 * 0.5 0.1068 0.804*0.6 * 1.0 0.4824 TOTAL 0.71 H O P(T|H,O) F 0.1 T 0.5 1.0 IFT615 Froduald Kabanza
Types d’interrogations d’un RB Cambriolage Séisme Alarme JeanAppelle MarieAppelle C S P(A|C,S) V V .95 V F .94 F V .29 F F .001 A P(J|A) V .90 F .05 A P(M|A) V .70 F .01 P(C) .001 P(S) .002 Diagnostique (on connaît les effets, on cherche les causes) P(Cambriolage|JeanAppelle=vrai) garder à l’esprit qu’on a des arcs « causes / effets ». Prédiction (étant données les causes, quels sont les effets) P(JeanAppelle|Cambriolage=vrai) Probabilité conjointe ou marginale P(Alarme) IFT615 Froduald Kabanza
Construction d’un RB Comment bâtir un RB afin de modéliser un environnement/problème donné? On a besoin de spécifier 2 choses: La structure (graphe) du réseau (quelles indépendances peut-on supporter) Les table de probabilités (quelles relations entre les variables de l’environnement?) IFT615 Froduald Kabanza
Spécifier les tables de probabilités d’un RB Si on a un ensemble de données où tous les noeuds Xi sont observés, c’est facile : P(Xi = x| Parents(Xi) = p ) ≈ freq(x,p) / Σx’ freq(x’,p) On fait ce calcul pour toutes les valeurs x de Xi et toutes les valeurs p de ses parents possibles pour éviter d’avoir de probabilités à 0, on peut initialiser freq(x,p) = δ à une petite constante δ (ex. : δ=1) Carie MalDeDents Croche IFT615 Froduald Kabanza
Exemple Supposons que l’on souhaite diagnostiquer une carie à l’aide du RB suivant: MalDeDents: le patient a mal aux dents Croche: la sonde s’accroche dans les dents Carie: le patient a une carie Supposons qu’on collecte un ensemble de données sur 120 patients où 70 des 120 patients avaient une carie P(Carie=vrai)=(70+1)/(70+1+52+1)=0.52 Carie MalDeDents Croche Ici delta=1 IFT615 Froduald Kabanza
Exemple Supposons maintenant que dans mes données de 120 patients, Parmi les 70 qui avaient une carie 65 avaient mal aux dents 51 ont la sonde qui s’accrochait P(MalDeDents=vrai|Carrie=Vrai)=(65+1)/(65+1+5+1)=0.92 P(Croche=vrai|Carie=vrai)=(51+1)/(51 + 1 + 19 + 1)=0.72 Carie MalDeDents Croche Ici delta=1 IFT615 Froduald Kabanza
Exemple Supposons que dans mes données de 120 patients, Parmi les 52 qui n’avaient pas de carie 10 avaient mal aux dents La sonde ne s’accrochait pour aucun d’eux P(MalDeDents=vrai|Carrie=faux)=(10+1)/(10+1+42+1)=0.20 P(Croche=vrai|Carie=faux)=(0+1)/(0 + 1 + 52 + 1)=0.02 Carie MalDeDents Croche Ici delta=1 IFT615 Froduald Kabanza
Spécifier les tables de probabilités d’un RB Si on a un ensemble de données où certaines des variables ne sont pas observées, on doit utiliser des méthodes plus sophistiquées. Algorithme EM (voir section 20.3.2) Jusque là dans mon exemple j’ai supposé que l’on observait toutes les variables du RB. Pour des cas complexes, en général, on ne peut pas observer toutes les variables. Pour l’exemple, supposer que parfois le le dentiste n’a plus sa sonde… IFT615 Froduald Kabanza
Construction de la structure du RB Choisir un ordre des variables X1, … ,Xn Pour i = 1 to n : ajouter Xi au réseau choisir les parents X1, … ,Xi-1 tels que P(Xi | Parents(Xi)) = P(Xi | X1, ... Xi-1) ce choix garantit que : P(X1, … ,Xn) = i =1 P(Xi | X1, … , Xi-1) (chain rule) = i =1 P(Xi | Parents(Xi)) (par construction) Pour construire un bon RB, sa structure doit refléter les indépendances conditionnelles du problème Dans quel ordre ajouter les nœuds au réseau? mettre les « causes racines » d’abord, ensuite les nœuds qu’ils influencent directement n n Causes racines c.à-d. causes premières IFT615 Froduald Kabanza
Exemple Supposons qu’on ordonne les variables comme suit : M, J, A, C, S P(J|M) = P(J)? MarieAppelle JeanAppelle Pour illustrer, supposons que plutôt que de mettre Cambriolage et Seisme comme cause racine, je choisi de mettre MarieAppelle et JeanAppelle. Non: si marie appelle, jean va probablement appeler IFT615 Froduald Kabanza
Exemple Supposons qu’on ordonne les variables comme suit : M, J, A, C, S P(J|M) = P(J)? Non P(A|J,M) = P(A|J)? P(A|J,M) = P(A)? MarieAppelle JeanAppelle Alarme Non: si les deux ont appelé, y a plus de chance que l’alarme ait bel et bien été déclenchée que si seulement un a appelé IFT615 Froduald Kabanza
Exemple Supposons qu’on ordonne les variables comme suit : M, J, A, C, S P(J|M) = P(J)? Non P(A|J,M) = P(A|J)? P(A|J,M) = P(A)? Non P(C|A,J,M) = P(C|A)? P(C|A,J,M) = P(C)? MarieAppelle JeanAppelle Alarme Cambriolage Oui. IFT615 Froduald Kabanza
Exemple Supposons qu’on ordonne les variables comme suit : M, J, A, C, S P(J|M) = P(J)? Non P(A|J,M) = P(A|J)? P(A|J,M) = P(A)? Non P(C|A,J,M) = P(C|A)? Oui P(C|A,J,M) = P(C)? P(S|C,A,J,M) = P(S|A)? P(S|C,A,J,M) = P(S|A,C)? MarieAppelle JeanAppelle Alarme Cambriolage Séisme Non: marie et jean n’observe pas s’il y a un cambriolage, mais seulement si y a une alarme par contre, l’alarme est normalement déclenchée pour un cambriolage IFT615 Froduald Kabanza
Exemple Supposons qu’on ordonne les variables comme suit : M, J, A, C, S P(J|M) = P(J)? Non P(A|J,M) = P(A|J)? P(A|J,M) = P(A)? Non P(C|A,J,M) = P(C|A)? Oui P(C|A,J,M) = P(C)? Non P(S|C,A,J,M) = P(S|A)? P(S|C,A,J,M) = P(S|A,C)? MarieAppelle JeanAppelle Alarme Cambriolage Séisme Non: si l’alarme sonne mais que y a pas eu de cambriolage, alors y a probablement eu un séisme IFT615 Froduald Kabanza
Exemple Supposons qu’on ordonne les variables comme suit : M, J, A, C, S P(J|M) = P(J)? Non P(A|J,M) = P(A|J)? P(A|J,M) = P(A)? Non P(C|A,J,M) = P(C|A)? Oui P(C|A,J,M) = P(C)? Non P(S|C,A,J,M) = P(S|A)? Non P(S|C,A,J,M) = P(S|A,C)? Oui MarieAppelle JeanAppelle Alarme Cambriolage Séisme IFT615 Froduald Kabanza
Exemple Déterminer l’indépendance conditionnelle est très difficile dans le sens non causal par exemple, en médecine, des études ont démontré que les experts préfèrent donner des probabilités dans le sens causal (pathologie → symptôme) plutôt que dans le sens diagnostique Un réseau avec des dépendance diagnostiques (effet → cause) est généralement moins compacte dans le cas présent : 1 + 2 + 4 + 2 + 4 = 13 nombres pour représenter les tables de probabilité conditionnelle du réseau au lieu de 10 pour la première version Généralement il est plus pratique de représenter les dépendances dans le sens causal plutôt que dans le sens diagnostique : causes effets hypothèses évidences pathologies symptômes Ceci réduit le nombre de dépendance dans le RB. Aussi c’est plus facile de donner les probabilités d’avoir une évidence étant donné la cause, plus tôt que l’inverse. IFT615 Froduald Kabanza
Génération automatique de la structure du RB Quoi faire si on n’a pas accès à un expert pour nous donner un bon graphe de RB ? On peut aussi tenter d’obtenir la structure du RB à partir de données, à l’aide de la recherche locale (par exemple Hill Climbing) : on débute avec un graphe acyclique aléatoire comme graphe courant on obtient ses tables de probabilités à partir des fréquences d’observation du graphe courant on utilise la recherche locale pour générer des graphes successeurs du graphe courant on obtient les tables de probabilités du graphe successeur on remplace le graphe courant par le successeur s’il est « meilleur » on retourne à 2. jusqu’à un certain critère d’arrêt IFT615 Froduald Kabanza
Génération automatique de la structure du RB On génère des successeurs à partir des modifications au graphe suivantes l’ajout d’un arc la suppression d’un arc l’inversion d’un arc . . . ajout inversion suppression IFT615 Froduald Kabanza
Génération automatique de la structure du RB La fonction objectif à maximiser par la recherche locale est : Σt log P(X1 = x1t,...,Xn=xnt) - M (log T) / 2 {x1t,..., xnt} est la tième donnée de mon ensemble de T données M est le nombre de paramètres requis par les tables de probabilités conditionnelles du réseau bayésien On cherche donc un graphe qui explique bien les données (leur donne une haute probabilité) qui est compacte (qui a peu de paramètres) Pour en savoir plus : voir section 20.2.5 log probabilité des données complexité du graphe IFT615 Froduald Kabanza
Diagrammes d’influence Un diagramme d’influence (DI) est une extension d’un RB avec en plus des nœuds de décision et des nœuds d’utilité les nœuds habituels d’un RB sont appelés des nœuds chance on ajoute : des nœuds de décision représentant une prise de décision des nœuds d’utilité représentant l’utilité (coût ou degré de désirabilité) des nœuds chance influencés par les actions Ainsi on peut modéliser des prises de décision simples pour des décisions complexes (séquentielles), les processus de décision markoviens sont généralement préférables Les diagrammes d’influence sont aussi appelés réseaux de décision (decision networks) IFT615 Froduald Kabanza
Exemple Parapluie Temps TrainerParapluie Bonheur Prévision Prendre / Ne pas prendre Parapluie pluvieux pluvieux .4 .6 Temps TrainerParapluie P(trainer | prendre) = 1 P(trainer, prendre) = 1 Bonheur Prévision Temps Prévision P(P|T) pluvieux ensoleillé .3 pluvieux pluvieux .7 pluvieux ensoleillé .8 pluvieux pluvieux .2 U(trainer, pluvieux) = 25 U(trainer, pluvieux) = -20 U(trainer, pluvieux) = -100 U(trainer, pluvieux) = 100 IFT615 Froduald Kabanza
Évaluation des diagrammes d’influence Mettre à jour les variables d’observation Pour chaque valeur possible d’un nœud décision change le nœud décision pour lui donner cette valeur calcule les probabilités a posteriori des parents des nœuds utilités calcule l’utilité espérée résultante pour l’action Retourne l’action avec la plus grande utilité Pour en savoir plus : section 16.5 IFT615 Froduald Kabanza
Valeur de l’information Parfois un agent est amené à prendre des décisions sans posséder toute l’information Un aspect important de la prise de décision est de déterminer les questions à poser pour chercher de l’information (pour obtenir des observations E=e) La valeur d’une information pour une action dépend de deux choses : est-ce que l’obtention d’une observation particulière E=e augmenterait grandement notre utilité espérée est-ce que cette observation est vraisemblable Les inférences sur les DI permettent de déterminer les questions qui apportent le plus d’information, pour chaque action Pour en savoir plus : section 16.6 Permet de savoir à quel point une question va permettre d’augmenter l’utilité d’une action, pour toute action IFT615 Froduald Kabanza
Logiciels SMILE / GeNIe (http://genie.sis.pitt.edu/) IFT615 SMILE : librairie C++ GeNIe : interface graphique IFT615 Froduald Kabanza
Résumé Un RB est un graphe orienté, acyclique, représentant des connaissances causales, et reflétant les dépendances conditionnelles entre des variables La topologie du réseau (arcs entres les variables) et les TPC donnent une représentation compacte de la distribution conjointe des probabilités Les connaissances du réseau (liens de causalité et probabilités) sont généralement obtenus avec l’aide d’un expert pour des applications concrètes, ceci peut être très laborieux IFT615 Froduald Kabanza
Objectifs du cours Algorithmes et concepts recherche locale la recherche locale peut servir à apprendre une bonne structure de réseaux bayésien à partir de données et automatiquement découvrir de possibles relations causes/effets satisfaction de contraintes agents intelligents logique la logique permet de raisonner rationnellement dans un environnement déterministe le raisonnement probabiliste permet de raisonnement rationnellement dans un environnement stochastique raisonnement probabiliste recherche à deux adversaires - les slides devraient être mises en ligne le mercredi de chaque semaine recherche heuristique IFT615 Froduald Kabanza
Vous devriez être capable de... Décrire ce qu’est un réseau bayésien : qu’est-ce que la topologie représente quelle est la distribution conjointe associée à un réseau bayésien Étant donné un réseau bayésien : calculer une probabilité conjointe, marginale, conditionnelle dire si deux variables sont (conditionnellement) indépendantes Décrire comment on apprend les paramètres d’un réseau bayésien à partir de données apprend la structure d’un réseau bayésien à partir de données IFT615 Froduald Kabanza