cours 5 formule de bayes programmation dynamique automates à poids algorithme "avant"...
TRANSCRIPT
![Page 1: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/1.jpg)
Cours 5
Formule de Bayes
Programmation dynamique
Automates à poids
Algorithme "avant"
n-grammes
Modèles de Markov
Modèles de Markov cachés
Algorithme de Viterbi
![Page 2: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/2.jpg)
Le modèle du canal bruité
Étiquetage lexicalOn connaît les tokens, on veut deviner les étiquettesCanal bruitéUne information inconnue vient d'une source et passe par un
canal de communication bruitéOn obtient une autre information (observation o)On veut deviner l'information originale sCorrection orthographiqueInformation originale : le texte correctObservation : le texte avec les fautesOn veut deviner le texte correct
![Page 3: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/3.jpg)
Formule de Bayes
P(s|o)probabilité que l'information originale soit s sachant que l'observation est ovaleur : entre 0 et 1
argmaxsS P(s|o)la valeur de sS pour laquelle P(s|o) est maximal
P(s|o) P(o) = P(o|s) P(s)formule de Bayes
argmaxsS P(s|o) = argmaxsS P(o|s) P(s) /P(o)
= argmaxsS P(o|s) P(s)car P(o) ne dépend pas de s
![Page 4: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/4.jpg)
Exemple : correction orthographique
e mot incorrect c mot correct
On veut argmaxcC P(c|e) = argmaxcC P(e|c) P(c)On calcule P(e|c) P(c) pour tous les c proches de eP(c)Corpus d'apprentissage avec des mots correctsP(c) = nb_occ(c)/NN nombre de mots dans le corpusP(e|c)Corpus d'apprentissage avec erreursOn classe les erreurs en suppressions, insertions, substitutions et
transpositionsOn compte le nombre d'erreurs pour chaque lettre ou paire de
lettresOn en déduit une approximation de la probabilité de chaque erreur
![Page 5: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/5.jpg)
Distance d'édition
Dans le modèle précédent, pour simplifier le calcul de P(e|c), on suppose qu'il y a une seule erreur par mot
Il peut y avoir plusieurs erreurs par mot
Distance d'édition entre c et e
nombre minimal d'opérations (suppressions, insertions, substitutions) nécessaires pour passer de c à e
Exemple : la distance entre plouc et pneu est 3
plouc pnouc pneuc pneu
Si la probabilité d'une erreur est p et s'il y a 3 erreurs, une approximation de P(e|c) est p3
![Page 6: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/6.jpg)
Programmation dynamique
Algorithme de calcul de la distance d'éditionSi pneuc fait partie d'un chemin minimal de plouc à pneu, alors ce
chemin doit commencer par un chemin minimal de plouc à pneuc
Matrice de distancescuol 2 1 1 2 3p 1 0 1 2 3# 0 1 2 3 4
# p n e usource : plouc cible : pneu
![Page 7: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/7.jpg)
Programmation dynamiquedistance[i,j] = distance minimale entre les i premiers caractères de la
source et les j premiers caractères de la cible
c 5 4 4 4 3
u 4 3 3 3 2
o 3 2 2 2 3
l 2 1 1 2 3
p 1 0 1 2 3
# 0 1 2 3 4
# p n e u
distance[i, j] := min(distance[i-1,j]+cost_inst(cible[i]),
distance[i-1,j-1]+cost_subst(source[j],cible[i]),
distance[i,j-1]+cost_suppr(source[j]))
![Page 8: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/8.jpg)
Programmation dynamiqueCalculer les valeurs de distance[i,j] dans un certain ordre :
distance[i-1,j], distance[i-1,j-1] et distance[i,j-1] doivent être disponibles quand on calcule distance[i,j]
c 5 4 4 4 3
u 4 3 3 3 2
o 3 2 2 2 3
l 2 1 1 2 3
p 1 0 1 2 3
# 0 1 2 3 4
# p n e u
![Page 9: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/9.jpg)
Automates à poidsUn automate des erreurs sur le mot pneu (à partir d'un corpus
d'apprentissage ou d'un modèle de causes d'erreurs)
Le poids représente la probabilité qu'on passe par cette transition quand on sort de cet état
# p n e u0,9 0,8 0,095 0,9
m0,05 b0,05 r i
0,05 0,15 0,003
0,0020,1
1 1 1
![Page 10: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/10.jpg)
Calculer la probabilité d'une séquenceApplication : calcul de P(e|c) pour la correction orthographiqueUne séquence e correspond à un ou plusieurs chemins de l'automateOn fait la somme des probabilités correspondant à ces cheminsPour chaque chemin, on fait le produit des poidsAlgorithme "avant" (forward algorithm)
# p n e u0,9 0,8 0,095 0,9
m0,05 b0,05 r i
0,05 0,15 0,003
0,002 0,11 1 1
![Page 11: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/11.jpg)
Algorithme "avant"Programmation dynamique
Source : les états de l'automate à poids
Cible : l'observation e
prob[s,j] : probabilité d'observer les j premiers mots de e en suivant un chemin de l'automate allant jusqu'à l'état s
prob[s,j] = q prob[q,j-1]aqsbsj
aqs : poids de la transition de l'état q à l'état s
bsj vaut 1 si l'état s correspond à ej, 0 sinon
Les états de l'automate à poids doivent être classés de telle sorte que toutes les sources des transitions entrant dans s soient avant s
![Page 12: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/12.jpg)
Algorithme "avant"prob[s,j] = q prob[q,j-1]aqsbsj
i 0 0 0 0 0
u 0 0 0 0 a#mamnanraru
r 0 0 0 a#mamnanr
e 0 0 0 0 0b 0 0 0 0 0
n 0 0 a#mamn 0 0
m 0 a#m 0 0 0p 0 0 0 0 0# 1 0 0 0 0
# m n r u
Résultat : prob[u,4] = a#mamnanraru = 0,0001
![Page 13: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/13.jpg)
n-grammesOn cherche à deviner un token en connaissant les précédents
P(mk|m1m2...mk-1) probabilité de mk après m1m2...mk-1
On se limite aux n-1 tokens précédents : P(mk|mk-n+1...mk-1)
On utilise des statistiques sur les suites de n tokens (n-grammes)
On fait les statistiques à partir d'un corpus (apprentissage supervisé)
n = 2 (bigrammes) : après le, bain est plus probable que objets
P(bain|le) > P(objets|le)
P(mk|mk-1) = nb_occ(mk-1mk)/nb_occ(mk-1)
n = 3 (trigrammes) : après dans le, bain est plus probable que calculer
P(bain|dans le) > P(calculer|dans le)
P(mk|mk-2mk-1) = nb_occ(mk-2mk-1mk)/nb_occ(mk-2mk-1)
![Page 14: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/14.jpg)
n-grammesProbabilité d'une séquence de tokens avec un modèle trigramme
P(m1m2...mk-1mk) = 1ik P(mi|mi-2mi-1)
Les probabilités sont souvent très faibles
Les produits de plusieurs probabilités encore plus
On utilise les logarithmes des probabilités
On additionne au lieu de multiplier
Plus n est élevé :
- plus les probabilités sont faibles
- plus les n-grammes sont nombreux (exponentiel)
- plus la prédiction est efficace
![Page 15: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/15.jpg)
n-grammesGénération aléatoire avec un modèle n-grammeOn couvre l'espace de probabilités [0,1] avec tous les n-grammes
(chacun occupe un espace proportionnel à sa probabilité)On choisit un nombre aléatoirement entre 0 et 1 et on écrit le n-
gramme qui contient ce nombrePour choisir le mot suivant, on couvre [0,1] avec tous les n-grammes
qui commencent par m2m3...mn et on en choisit un aléatoirementetc.Modèle unigramme de ShakespeareTo him swallowed confess near both. Which. Of save on trail for are
ay device and rote life haveModèle bigramme de ShakespeareWhat means, sir. I confess she? then all sorts, he is trim, captain.
![Page 16: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/16.jpg)
n-grammesModèle trigramme de ShakespeareSweet prince, Falstaff shall die. Harry of Monmouth's grave.Modèle 4-gramme de ShakespeareKing Henry. What! I will go seek the traitor Gloucester. Exeunt some
of the watch. A great banquet serv'd in;Modèle bigramme du Wall Street JournalLast December through the way to preserve the Hudson corporation
N.B.E.C. Taylor would seem to complete the major central planners one point five percent of U.S.E. has already old M.X. corporation of living on information such as more frequently fishing to keep her
Modèle trigramme du Wall Street JournalThey also point to ninety nine point six billion dollars from two
hundred four oh six three percent of the rates of interest stores as Mexicon and Brazil on market conditions.
![Page 17: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/17.jpg)
Modèle de MarkovModèle de probabilités dans lequel la probabilité de mk ne dépend que
des n éléments qui précèdent (modèle de Markov d'ordre n)
P(mk|m1m2...mk-1) = P(mk|mk-n...mk-1)
On le représente par un automate à poids
Chaque état de l'automate correspond à un n-gramme
Le poids de la transition de m1m2...mn à m2m3...mn+1 est P(mn+1| m1m2...mn)
Un modèle d'ordre n correspond donc à un modèle n+1-gramme
![Page 18: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/18.jpg)
Un modèle de Markov d'ordre 1
1
.4
1
.3.3
.4
.6 1
.6
.4
te
ha p
i
![Page 19: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/19.jpg)
Modèle de Markov cachéLes observations o sont distinctes des états s de l'automate
La probabilité de o ne dépend que de l'état courant :
P(o|s) probabilité d'observer o quand on est dans l'état s
P(s|q) probabilité de passer dans l'état s quand on est dans l'état q
Pour une suite d'états :
P(s1s2...sn) = P(s1)P(s2|s1)P(s3|s2)...P(sn|sn-1)
Pour une suite d'états et d'observations :
P(o1o2...on|s1s2...sn,) = P(o1|s1)P(o2|s2)...P(on|sn)
![Page 20: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/20.jpg)
Application à l'étiquetageOn recherche l'étiquette s de race pour laquelle P(TO s|to race) est
maximale
argmaxsS P(TO s|to race) = argmaxsS P(to race|TO s) P(TO s)
= argmaxsS P(race|s) P(s|TO)
s = NN
P(race|NN) P(NN|TO) = 0,00041 * 0,021 = 0,000007
s = VB
P(race|VB) P(VB|TO) = 0,00003 * 0,34 = 0,00001
Conclusion
L'étiquette correcte de race dans to race est probablement VB
![Page 21: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/21.jpg)
Exemple bigramme
# DT NNVB
P(DT|#)
P(NN|DT) P(VB|NN)
P(VB|DT)
P(the|DT)
P(NN|NN)
P(can|VB)P(smells|VB)
P(can|NN)P(smells|NN)
![Page 22: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/22.jpg)
Application à l'étiquetageLes observations sont les tokens du texte
On veut argmaxsS P(s|m) où m est la séquence de tokens :
argmaxsS P(s|m) = argmaxsS P(m|s) P(s)
= argmaxsS 1ikP(mi|si) 1ikP(si|si-n+1...si-1)
On estime ces valeurs à l'aide d'un corpus étiqueté (apprentissage supervisé) :
P(mi|si) = nb_occ(mi, si)/nb_occ(si)
P(si|si-n+1...si-1) = nb_occ(si-n+1...si-1si)/nb_occ(si-n+1...si-1)
Pour trouver la meilleure valeur de s : algorithme de Viterbi
![Page 23: Cours 5 Formule de Bayes Programmation dynamique Automates à poids Algorithme "avant" n-grammes Modèles de Markov Modèles de Markov cachés Algorithme de](https://reader036.vdocuments.pub/reader036/viewer/2022062511/551d9db6497959293b8dafe0/html5/thumbnails/23.jpg)
Algorithme de ViterbiProgrammation dynamique
Source : les états du modèle de Markov
Cible : l'observation m
prob[s,j] : probabilité maximale d'observer les j premiers mots de m en suivant un chemin de l'automate allant jusqu'à l'état s
prob[s,j] = maxq (prob[q,j-1]aqsbsj)
aqs : P(s|q)
bsj : P(mj|s)
Une fois la matrice remplie, on retrouve un chemin qui a donné la probabilité maximale dans la dernière colonne et on en déduit les états correspondants