• Nenhum resultado encontrado

Algorithmes d’inf´erence exacte

Partie II Contributions en reconnaissance de formes 75

5.5 Inf´erence probabiliste

5.5.2 Algorithmes d’inf´erence exacte

Les algorithmes d’inf´erence exacte les plus r´eput´es sont l’algorithme de passage de messages de Pearl [Pearl 88], l’algorithme d’´elimination de Bucket [Dechter 98] et l’algorithme d’arbre de jonction [Jensen 90].

Par exemple, l’algorithme d’´elimination de Bucket [Dechter 98] consiste `a marginaliser la distribution de probabilit´e jointe d’un r´eseau, en proc´edant variable par variables. Chaque mar- ginalisation sur une variable Xi donne lieu `a une somme des probabilit´es de cette variable.

Parfois, cette somme vaudra 1, ce qui conduira `a l’´elimination de la variable Xi. On proc´edera alors `a la marginalisation sur une des variables restantes et ainsi de suite jusqu’`a ce que la distribution soit marginalis´ee.

Le probl`eme de cet algorithme est que l’ordre dans lequel les variables sont ´elimin´ees d´eter- mine la quantit´e de calcul n´ecessaire pour marginaliser la distribution de probabilit´es jointe et donc la complexit´e de l’algorithme.

L’algorithme de passage de messages [Pearl 88] est le plus courant. Nous d´etaillons cet algo- rithme dans la section ci-dessous (section 5.5.2.1), car c’est un de ceux que nous avons utilis´es dans nos approches (voir partie II).

5.5.2.1 L’algorithme de passage de messages

Dans cette technique, `a chaque nœud est associ´e un processeur qui peut envoyer des messages de fa¸con asynchrone `a ses voisins, jusqu’`a ce qu’un ´equilibre soit atteint, en un nombre fini d’´etapes. Cet algorithme ne s’applique qu’aux arbres. Donnons ici une d´efinition d’un arbre :

soit un graphe G poss´edant n nœuds.G est un arbre si et seulement si G est sans cycle et qu’il poss`ede n−1 arˆetes. Un graphe sans cycle est un graphe dans lequel il n’est pas possible de revenir `a un point de d´epart sans faire le chemin en sens inverse. Ceci engendre le fait que chaque nœud d’un arbre n’a qu’un seul parent (sauf la racine qui n’a aucun parent).

Cette m´ethode a ´et´e ´etendue aux r´eseaux quelconques pour donner l’algorithme de l’arbre de jonction qui fera l’objet de la section 5.5.2.3.

L’algorithme de passage de messages et les diff´erents types de messages sont expliqu´es ci- dessous :

– soit G(V, ε), un graphe acyclique orient´e (un arbre), o`u V est l’ensemble de nœuds, et ε celui des arcs,

– soitX ={Xv :v ∈ V}un ensemble de variables al´eatoires. Chaque variableXv correspond

`

a un nœudv du graphe. Pour chaque nœudv ∈V, on d´efinitπv, l’ensemble de ses parents dans le graphe,

– soitθ, l’ensemble de probabilit´es conditionnelles{θv}={p(xv|xπv)},v ∈V, alors le couple (G, θ) d´efinit un r´eseau Bay´esien.

– SoitE ∈X le sous-ensemble des variables observ´ees de E,

– soit Xi ∈X une variable quelconque, associ´ee au nœudi de G(V, ε),

– Soit Ni l’ensemble des nœuds parents observ´es de i, et Di l’ensemble des nœuds enfants observ´es. La figure 5.3 montre un nœudi, l’ensemble de ses nœuds parentsNi et l’ensemble de ses nœuds enfantsDi.

– soitNXi l’ensemble des variables associ´ees aux nœuds deNi etDXi l’ensemble des variables associ´ees aux nœuds de Di.

i N

i

D

i

Figure 5.3 – Sous-ensemble d’un arbre : un nœud, son parents et ses enfants

On va alors distinguer deux types de messages, λetπ : λ(Xi)∝p(DXi|Xi) et π(Xi)∝p(Xi,NXi).

De plus, soit Ei ∈E, une variable observ´ee. Alors : P(Xi|Ei =ei)∝λ(Xi)π(Xi)

Expliquons maintenant comment calculer chaque type de message : Calcul des messages λ en chaque nœud i :

Pour chaque nœud j enfant du nœud i,i. e. pour chaque variable Xj ∈DXi, o`u i,j ∈V et i 6=j, on a :

λXj(Xi =xi) =X

xj

p(Xj =xj|Xi =xi)λ(Xj =xj)

λXj(Xi = xi) signifie que l’on fait une sommation sur toutes les valeurs possibles xj de la variableXj.

Posons X ={X1,X2, . . . ,Xn}. Les messagesλse calculent de la fa¸con suivante :

– Si la variable Xi est observ´ee, alors λ(Xi) est un vecteur de taille ´egale au domaine de Xi,i. e. le nombre de valeurs possible que la variableXi peut prendre. Ce vecteur vaut 0 partout sauf `a la place de la valeur observ´ee o`u il vaut 1.

– Si le nœud i est une feuille de l’arbre, alors le vecteurλ(Xi) vaut 1 partout.

– Sinon,λ(Xi =xi) =Q

XjDXi λXj(Xi =xi) Calcul des messages π en chaque nœud i :

Soit j l’unique nœud parent de i,i. e.soitXj ∈ NXi, o`u i,j ∈V eti 6=j. On a πXi(Xj =xj) =π(Xj =xj) Y

XkDXi Xi

λXk(Xj =xj)

PosonsX ={X1,X2, . . . ,Xn}. Les messages π se calculent de la fa¸con suivante :

– Si la variableXi est observ´ee, alorsλ(Xi) =π(Xi) est un vecteur de taille ´egale au domaine de Xi,i. e.le nombre de valeurs possible que la variableXi peut prendre. Ce vecteur vaut 0 partout sauf `a la place de la valeur observ´ee o`u il vaut 1.

– Si le nœudi est la racine de l’arbre (i. e. sii n’a pas de parent), alors π(Xi) =p(Xi) – Sinon,π(Xi =xi) =P

xjp(Xi =xi|Xj =xjXi(Xj =xj)

5.5.2.2 Exemple de propagation d’un message par l’algorithme de Pearl

Dans cette section, nous allons d´erouler l’algorithme de passage de messages de Pearl, que l’on vient d’expliquer, sur un exemple simple, pour bien en comprendre le principe :

Enonc´´ e de l’exemple :

Reprenons le r´eseau Bay´esien repr´esent´e de la figure 5.1 :

Figure 5.4 – Exemple d’un r´eseau Bay´esien `a 3 variables La description des nœuds est donn´ees ci-dessous :

– Le nœud Pluie repr´esente la variable al´eatoire discr`ete M. Cette variable est qualitative et prend ses valeurs dans le domaine{nulle =m0,moyenne=m1,forte =m2}

– La variableFleurs repr´esente la variable al´eatoire discr`eteF. Cette variable est qualitative et prend ses valeurs dans le domaine{bonnepousse=Bo,mauvaisepousse =Ma}

– Le nœudRandonnee repr´esente la variable al´eatoire discr`eteR. Cette variable est qualita- tive et prend ses valeurs dans le domaine {oui =O,non=N}

Les tables de probabilit´es conditionnelles des variables M, F et R sont donn´ees dans les tableaux 5.1, 5.2 et 5.3 respectivement.

Arriv´ee d’une nouvelle observation :

Supposons que l’on a une nouvelle observation de la valeurm2 sur la variable M. Par contre, on n’observe pas du tout les autres valeursm0 et m1.

Cette observation s’appelle´evidence et on ´ecriteM ={0,0,1}.

On souhaiterait savoir comment les autres variables vont r´eagir ´etant donn´ee cette observa- tion.

M P(M) m0 0.30 m1 0.60 m2 0.10

Table 5.1 – Table de probabilit´es de la variableM P(R|M) O N

m0 0.85 0.15 m1 0.50 0.50 m2 0.05 0.95

Table 5.2 – Table des probabilit´es conditionnelles de la variableR ´etant donn´ee la variableM Pour ce faire, on va propager le message que fournit l’´evidence.

Commen¸cons par calculer les messages au niveau de la variable observ´ee, car le calcul des messagesλetπ, au niveau des variables observ´ees, est un cas trivial :

Calcul des messages λ et π au nœud observ´e M : – Calcul des messages λ et π :

M est observ´e. On a donc λ(M) =π(M) =

 0 0 1

– Le message `a transmettre `a l’enfant R est calcul´e comme suit : πR(M) =π(M)·λF(M) =

 0 0 1

·λF(M =m2) Or,

λF(M =m2) =P

f p(F =f|M =m2)λ(F =f) =

p(F =Bo|M =m2)λ(F =Bo) +p(F =Ma|M =m2)λ(F =Ma) = 0.90∗1 + 0.10∗1 = 1

DoncπR(M) =

 0 0 1

·1 =

 0 0 1

– De mˆeme, le message `a transmettre `a l’enfant F est calcul´e comme suit : πF(M) =π(M)·λR(M) =

 0 0 1

On peut ensuite calculer les messages au niveau des deux autres nœuds R et F. Les deux autre nœuds sont des feuilles de l’arbre. Le calcul des messages λ sera donc trivial au niveau de ces nœuds. On peut traiter R et F dans n’importe quel ordre car aucun de ces nœuds n’est racine de l’arbre, et aucun de ces nœuds n’est observ´e.

P(F|M) Bo Ma m0 0.20 0.80 m1 0.75 0.25 m2 0.90 0.10

Table5.3 – Table des probabilit´es conditionnelles de la variable F ´etant donn´ee la variable M

Calcul des messages λet π au nœud R :

– Calcul du message λ :

R est une feuille donc on a λ(R) = 1

1

– Calcul du message π :

R n’est ni une variable observ´ee, ni la racine de l’arbre. On a donc : π(R) =p(R|M).πR(M) =

0.85 0.5 0.05 0.15 0.5 0.95

·

 0 0 1

, soitπ(R) = 0.05

0.95

– Enfin, on aP(R|M =eM)∝λ(R)·π(R) = 0.05

0.95

On peut en conclure que l’observation d’une pluie forte peut conduire (avec un risque de 5%), `a l’annulation d’une randonn´ee.

Calcul des messages λet π au nœud F :

– Calcul du message λ :

F est une feuille donc on aλ(F) = 1

1

– Calcul du message π :

F n’est ni une variable observ´ee, ni la racine de l’arbre. On a donc : π(F) =p(F|M)·πF(M) =

0.20 0.75 0.90 0.80 0.25 0.10

·

 0 0 1

, soitπ(R) = 0.90

0.10

– Enfin, on aP(F|M =eM)∝λ(F)·π(F) = 0.90

0.10

On peut en conclure que l’observation d’une pluie forte peut conduire (avec un risque de 10%), `a la pousse des fleurs.

5.5.2.3 Algorithme d’arbre de jonction

Le probl`eme de l’algorithme de passage de messages de Pearl est qu’il ne s’applique qu’aux arbres. Une g´en´eralisation a donc ´et´e propos´ee : l’algorithme d’arbre de jonction [Jensen 90], qui permet de faire de l’inf´erence sur n’importe quel type de graphe.

Cet algorithme peut ˆetre vu comme une combinaison des id´ees de l’algorithme d’´elimination et l’algorithme de passage de messages. L’id´ee de base est de transformer le graphe acycliqueG du r´eseau en un arbre non orient´eT. Cette transformation op`ere en trois ´etapes :

– la premi`ere ´etape est la moralisationdu grapheG. Elle consiste `a«marier»deux `a deux les parents de chaque nœud, en les reliant par un arc non orient´e. A l’issue de cette ´etape, il reste encore des arcs orient´es entre chaque nœud et chacun de ses parents. On finit de moraliser le graphe en enlevant des directions de chaque arc orient´e. On aboutit alors au graphe moralis´eGm.

– La deuxi`eme ´etape est la triangulation du graphe Gm. Cette ´etape consiste `a extraire de Gm un ensemble de cliques de nœuds. Une clique est un sous-graphe du graphe Gm dont tous les nœuds sont connect´es deux `a deux. Le grapheGt obtenu est triangul´e quand l’ensemble de ses nœuds peuvent ˆetre ´elimin´es. Un nœud peut ˆetre ´elimin´e s’il appartient

`

a une clique dans le graphe.

– Cette derni`ere ´etape correspond `a la construction de l’arbre de jonction. A partir du graphe Gt obtenu `a l’issue de la triangulation, le probl`eme est de calculer l’arbre couvrant de poids minimum. Pour ce faire, on va proc´eder `a l’´elimination des nœuds qui font partie d’une clique. Ce processus d’´elimination n’est pas sans rappeler l’algorithme d’´elimination de Bucket. L’arbreT obtenu est un arbre non orient´e, dans lequel les nœuds sont des cliques.

L’algorithme de passage de messages est ensuite lanc´e sur cet arbre de jonctionT et permet de calculer les probabilit´es marginales de tous les nœuds pour chaque clique. La complexit´e de cet algorithme est d´etermin´ee par la plus grande clique.

Pour r´esumer, les algorithmes d’inf´erence exacte calculent les probabilit´es marginales en exploitant syst´ematiquement la structure graphique. On cherche `a exploiter l’information d’in- d´ependance conditionnelle encod´ee par les arcs, dans les graphes.

De nombreux mod`eles graphiques probabilistes, comme les mod`eles de Markov cach´es, ou les r´eseaux dont le graphe est d´ej`a un arbre ont affaire `a ce type d’algorithmes. Mais le probl`eme de ces algorithmes est leur complexit´e, d´ependante de la taille des graphes, du fait que les graphes sont fortement connect´es ou non.

Pour pallier ce probl`eme, on peut utiliser des m´ethodes d’inf´erence approximative, qui ont une complexit´e moindre. De la mˆeme fa¸con que l’on manipule des probabilit´es initiales inexactes, car elles sont souvent issues d’une estimation, obtenue grˆace `a des m´ethodes d’apprentissage de param`etres (voir section 5.4), les m´ethodes d’inf´erence approximative vont fournir des probabi- lit´es a posteriori (ce sont les probabilit´es obtenues par inf´erence) approximatives.