Académique Documents
Professionnel Documents
Culture Documents
Olivier Aycard
E-Motion group
Université Joseph Fourier
http://emotion.inrialpes.fr/aycard
Plan du cours
• Intérêts
• Réseaux bayesiens naïfs
• Apprentissage de réseaux bayesiens naïfs
• Présentation du TP
1
Intérêts
• On cherche à déterminer l’état d’un système ou la classe d’un objet
à partir d’un ensemble d’observations sur le système ou l’objet;
=> Problème de diagnostic ou de catégorisation
• On utilise pour cela un réseau bayesien;
• Exemple : déterminer l’état d’une voiture à partir du diagnostic du
garagiste.
V P(V) P(D V)
V = non V=
défectueuse défectueuse
V = non 0,7 D = non 0,8 0,1
défectueuse
défectueuse
D = défectueuse 0,2 0,9
V = défectueuse 0,3
D
• D : « le diagnostic détecte la voiture comme non défectueuse »
ou « le diagnostic détecte le voiture comme défectueuse »;
• V : « la voiture est non défectueuse » ou « la voiture est
défectueuse »;
• C’est l’état réel de la voiture qui influence le résultat du
diagnostic (et pas le contraire).
2
Intérêts : Modélisation du problème de diagnostic avec un réseau
bayesien naïf(2/2)
V P(V) P(D V)
V = non V=
défectueuse défectueuse
V = non 0,7 D = non 0,8 0,1
défectueuse
défectueuse
D = défectueuse 0,2 0,9
V = défectueuse 0,3
D
• P(D, V) = P(V) x P(D|V)
• P(D = non défectueuse | V = non défectueuse) et P(D = défectueuse | V = défectueuse)
représentent le taux de diagnostic juste;
• P(D = non défectueuse | V = défectueuse) et P(D = défectueuse | V = non défectueuse)
représentent le taux de diagnostic faux;
V P(V)
P(D V)
D
P(V ) × P( D V )
P(V D ) = = αP(V ) × P( D V )
P ( D)
P (V = défecteuse D = défectueuse) =α ' P(V = défectueuse) × P( D = défectueuse V = défectueuse) = 0.3 × 0.9α ' = 0.27α '
P (V = non défecteuse D = défectueus e) =α ' P (V = non défectueus e) × P( D = défectueus e V = non défectueus e ) = 0.7 × 0.2α ' = 0.14α '
P(V = non défecteuse D = défectueuse) + P(V = défectueuse D = défectueuse) = 0.21α '+0.14α ' = 0.41α ' = 1
1
0.41α ' = 1 ⇔ α ' =
0.41
0.27 0.14
P (V = défecteuse D = défectueuse) = ≈ 0.66 P (V = non défecteuse D = défectueus e) = ≈ 0.34
0.41 0.41
3
Intérêts : utilisation du réseau bayesien pour faire un diagnostic
(phase d’inférence)
V P(V)
P(D V)
V = non V=
V = non 0,7 défectueuse défectueuse
D = non 0,8 0,1
défectueuse défectueuse
V = défectueuse 0,3 D = défectueuse 0,2 0,9
D
P(V ) × P( D V )
P(V D ) = = αP(V ) × P( D V )
P ( D)
P(V = défecteuse D = non défectueuse) =α ' ' P(V = défectueuse) × P( D = non défectueuse V = défectueuse) = 0.3 × 0.1α ' ' = 0.03α ' '
P(V = non défecteuse D = non défectueuse) =α ' ' P(V = non défectueuse) × P( D = non défectueuse V = non défectueuse) = 0.7 × 0.8α ' ' = 0.56α ' '
P(V = non défecteuse D = non défectueuse) + P(V = défectueuse D = non défectueuse) = 0.56α ' '+0.03α ' ' = 0.59α ' ' = 1
1
0.59α ' = 1 ⇔ α ' =
0.59
0.03 0.56
P (V = défecteuse D = non défectueuse) = ≈ 0.05 P (V = non défecteuse D = non défectueus e) = ≈ 0.95
0.59 0.59
Plan du cours
• Intérêts
• Réseaux bayesiens naïfs
– Avec une observation;
– Avec plusieurs observations;
• Apprentissage de réseaux bayesiens naïfs
• Présentation du TP
4
Réseaux bayesiens naïfs avec une observation :
modélisation(1/2)
• On cherche à déterminer l’état d’un système ou la classe d’un objet
à partir d’une observation sur le système ou l’objet;
• On utilise pour cela un réseau bayesien;
C
P(C , O) = P (C ) × P (O C )
O
• C : « l’objet appartient à la classe c1» ou « l’objet appartient à la
classe c2 »;
• O : « on observe que l’objet appartient à la classe c1 » ou « on
observe que l’objet appartient à la classe c2 »;
C
P(C , O) = P (C ) × P (O C )
O
• P(O = c1 | C = c1) et P(O = c2 | C = c2) représentent le taux de
« bonne » classification;
• P(O = c1 | C = c2) et P(O = c2 | C = c1) représentent le taux de
« mauvaise » classification;
5
Réseaux bayesiens naïfs avec une observation : inférence
C
P(C, O) = P(C ) × P(O C )
O
• A partir d’une observation sur l’objet, on cherche la classe
d’appartenance de notre objet :
P(C O ) = αP(C ) × P(O C ) P (C = c1 O = c1 ) = αP (C = c1 ) × P (O = c1 C = c1 )
P (C = c2 O = c1 ) = αP (C = c2 ) × P(O = c1 C = c2 )
P(C = c1 O = c2 ) = αP (C = c1 ) × P(O = c2 C = c1 )
P(C = c2 O = c2 ) = αP(C = c2 ) × P(O = c2 C = c2 )
6
Réseaux bayesiens naïfs avec plusieurs observations :
modélisation(2/3)
• De plus, cette solution est très facile à mettre en œuvre et les tables
de probabilités sont « petites »
P (C , O1 ,..., ON ) = P (C ) × P (O1 ,..., ON C )
C
N
P(C , O1 ,..., ON ) = P(C ) × ∏ P(Oi C )
i =1
O1 … ON
7
Réseaux bayesiens naïfs avec plusieurs observations :
inférence
C
N
P(C , O1 ,..., ON ) = P (C ) × ∏ P(Oi C )
i =1
O1 … ON
A partir de plusieurs observations sur l’objet, on cherche la classe
d’appartenance de notre objet :
N
P(C O1 ,..., ON ) = αP (C ) × ∏ P(Oi C )
i =1
Plan du cours
• Intérêts
• Réseaux bayesiens naïfs
• Apprentissage de réseaux bayesiens naïfs
– à partir de données complètes
– Evaluation de l’apprentissage
– Sélection des variables
– Amélioration de la structure d’un réseau
bayesien naïf
• Présentation du TP
e-Motion Group ©2007
Olivier.aycard@imag.fr 16
8
Apprentissage de réseaux bayesiens naïfs
C
N
P(C , O1 ,..., ON ) = P(C ) × ∏ P(Oi C )
i =1
O1 … ON
La structure d’un réseau bayesien naïf est toujours la même,
donc on cherche à estimer les tables de probabilités à partir de
données;
Pour chaque ensemble d’observations, un expert nous donne la
classe correspondante de l’objet
=> On parle d’apprentissage supervisé ou catégorisation
V
P(V = défectueuse)= 3/10
P(V = non défectueuse) = 7/10
9
Exemple : cas de deux observations : un ensemble de points dans
le plan(1/2)
C
P (C , X , Y ) = P (C ) × P ( X C ) × P (Y C )
X Y
• On a 10 points qu’on veut classer
en 2 classes;
• On utilise un réseau bayesien naïf;
• On approxime P(X|C) et P(Y|C)
par des gaussiennes.
X Y
X Y C
2 7 1
3 6 1
5 8 1
6 8 1
5 4 2
8 4 2
6 5 2
9 5 2
7 6 2
9 6 2
10
Exemple : cas de deux observations : évaluation de l’apprentissage
• On prend d’autres points dans le plan
(dont on connaît la classe), et on compare
avec la classification faite par le réseau
bayesien naïf;
c1 c2
c1 2 0
c2 0 2
taux 100% 100%
Sélection de variables
C
N
P(C , O1 ,..., ON ) = P(C ) × ∏ P(Oi C )
i =1
O1 … ON
On cherche à savoir parmi les variables O1,…ON celles qui influencent le plus
la classe C lors de l’inférence P(C|O1,…,ON). Pour cela, on mesure le niveau
de dépendance entre C et chaque Oi.
On calcule l’information mutuelle entre C et chaque Oi :
P (C , Oi )
I (C , Oi ) = ∑ P (C , Oi ) × log
C ,Oi P (C ) P (Oi )
11
Sélection de variables : exemple du diagnostic de voiture
P (V , D1 , D2 ) = P (V ) × P ( D1 V ) × P ( D2 V )
D1 D2
J’ai maintenant 2 garagistes. Je cherche à savoir lequel me donne le meilleur
diagnostic.
P(D2 V)
P(V)
P(D1 V)
V = non V=
V = non V= défectueuse défectueuse
V = non 0,7 défectueuse défectueuse D2 = non 0,6 0,4
défectueuse D1 = non 0,8 0,1 défectueuse
V = défectueuse 0,3 défectueuse D2 = défectueuse 0,4 0,6
D1 = défectueuse 0,2 0,9
V V = non
défectueuse
0,7
V = défectueuse 0,3
P(D1 V)
P(D2 V)
V = non V= V = non V=
défectueuse défectueuse défectueuse défectueuse
D1 D2 D1 = non
défectueuse
D1 = défectueuse
0,8
0,2
0,1
0,9
D2 = non
défectueuse
0,6 0,4
P (V , D1 , D2 ) = P (V ) × P ( D1 V ) × P ( D2 V )
12
Sélection de variables : exemple du diagnostic de
voiture(2/2) P(V)
V V = non
défectueuse
0,7
V = défectueuse 0,3
P(D1 V)
P(D2 V)
V = non V= V = non V=
défectueuse défectueuse défectueuse défectueuse
D1 D2 D1 = non
défectueuse
D1 = défectueuse
0,8
0,2
0,1
0,9
D2 = non
défectueuse
0,6 0,4
P (V , D1 , D2 ) = P (V ) × P ( D1 V ) × P ( D2 V )
C L’hypothèse d’indépendance
entre les observations est
généralement fausse (hypothèse
naïve)
O1 O2 … O3 O4
C
En identifiant les dépendances
entre les observations, on peut
créer un arbre entre les
observations
O1 O2… O3 O4
13
Amélioration de la structure du réseau bayesien naïf :
passage à un Tree Augmented Naive Bayes(2/2)
Plan du cours
• Intérêts
• Réseaux bayesiens naïfs
• Apprentissage de réseaux bayesiens naïfs
• Présentation du TP
14
Apprendre à reconnaître un visage dans une image
Utilisation d’un réseau bayesien naïf pour reconnaître un visage dans une
image, à partir de la couleur de sa peau
1. Modélisation : on va utiliser un réseau bayesien naïf qui va définir
le lien entre les points du visage (et ceux qui n’appartiennent pas
au visage) et la distribution de probabilités sur les couleurs de ces
points;
2. Apprentissage : à partir d’un ensemble d’images, on estime les
tables de probabilités;
3. Inférence : on se sert du réseau bayesien naïf pour déterminer pour
chaque point sa probabilité d’appartenir au visage ou pas (sachant
les informations sur la couleur du point)
15
Réseau bayésien naïf modélisant le problème
P
P( P, R, V , B) = P( P) × P( R P) × P(V P) × P( B P)
R V B
• P : le point appartient au visage ou pas (variable booléenne);
• On va travailler avec des composantes RVB normalisées;
R V B
R= V= B=
R +V + B R +V + B R +V + B
• R : le pourcentage de rouge dans le point (variable entière entre 0 et 100);
• V : le pourcentage de vert dans le point (variable entière entre 0 et 100);
• B : le pourcentage de bleu dans le point (variable entière entre 0 et 100);
e-Motion Group ©2007
Olivier.aycard@imag.fr 31
16
Apprentissage du réseau bayesien naïf(2/2)
P
Il suffit de compter
R V B
P R V B
P(P = vrai)= 2/10
1 250 10 20 P(P = faux) = 8/10
1 248 12 25
0 150 50 12 P(R = 250 | P = vrai) = ½
0 23 50 89 P(R = 248 | P =vrai) =1/2
0 56 50 46
P(V = 50 | P = faux) = 3/8
0 89 70 35
0 5 56 98
0 200 149 233
0 200 235 57
0 150 56 34
∑ P(P
x, y
x, y = vrai Rx , y = r , Vx , y = v, Bx , y = b) × x ∑ P( P
x, y
x, y = vrai Rx , y = r , Vx, y = v, Bx , y = b) × y
X= Y=
∑ P(P x, y = vrai Rx, y = r , Vx , y = v, Bx , y = b) ∑ P( P
x, y
x, y = vrai Rx , y = r , Vx , y = v, Bx , y = b)
x, y
17
Utilisation du réseau bayesien naïf pour la reconnaissance d’une
personne
Pour chaque point d’une nouvelle image, on calcule sa probabilité
d’appartenir au visage ou pas;
P( P = vrai R = r , V = v, B = b) = α × P( P = vrai ) × P( R = r P = vrai) × P(V = v P = vrai) × P( B = b P = vrai)
P( P = faux R = r ,V = v, B = b) = α × P( P = faux) × P( R = r P = faux) × P(V = v P = faux) × P( B = b P = faux)
∑ P(P
x, y
x, y = vrai Rx , y = r , Vx , y = v, Bx , y = b) × x ∑ P( P
x, y
x, y = vrai Rx , y = r , Vx, y = v, Bx , y = b) × y
X= Y=
∑ P(P x, y = vrai Rx, y = r , Vx , y = v, Bx , y = b) ∑ P( P
x, y
x, y = vrai Rx , y = r , Vx , y = v, Bx , y = b)
x, y
∑ P(P
x, y
x, y = vrai Rx , y = r , Vx , y = v, Bx , y = b) × x ∑ P( P
x, y
x, y = vrai Rx , y = r , Vx, y = v, Bx , y = b) × y
X= Y=
∑ P(P x, y = vrai Rx, y = r , Vx , y = v, Bx , y = b) ∑ P( P
x, y
x, y = vrai Rx , y = r , Vx , y = v, Bx , y = b)
x, y
18
Eléments de programmation pour le TP
• Le TP se fait en C sous linux à l’aide de la librairie OpenCV
(http://opencvlibrary.sourceforge.net/);
• Cette librairie nous sert à lire une image au format « jpg » ou
« gif » et à stocker ses composantes RVB dans un tableau;
• Elle nous sert aussi à créer une image à partir d’un tableau
contenant les composantes RVB.
Conclusion
• Les réseaux bayesiens naïfs sont une méthode
de catégorisation;
• L’apprentissage est supervisé : besoin de données étiquetées;
• Bien que l’hypothèse d’indépendance des
observations soit généralement fausse, les réseaux donnent de
bons résultats;
• On peut augmenter la qualité du modèle : TAN;
• Applications : reconnaissance et suivi de visage avec une
webcam, anti SPAM, …
19