La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

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 Viterbi

2 Le modèle du canal bruité Étiquetage lexical On connaît les tokens, on veut deviner les étiquettes Canal 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 s Correction orthographique Information originale : le texte correct Observation : le texte avec les fautes On veut deviner le texte correct

3 Formule de Bayes P(s|o) probabilité que l'information originale soit s sachant que l'observation est o valeur : entre 0 et 1 argmax s S P(s|o) la valeur de s S pour laquelle P(s|o) est maximal P(s|o) P(o) = P(o|s) P(s) formule de Bayes argmax s S P(s|o) = argmax s S P(o|s) P(s) /P(o) = argmax s S P(o|s) P(s) car P(o) ne dépend pas de s

4 Exemple : correction orthographique emot incorrectcmot correct On veut argmax c C P(c|e) = argmax c C P(e|c) P(c) On calcule P(e|c) P(c) pour tous les c proches de e P(c) Corpus d'apprentissage avec des mots corrects P(c) = nb_occ(c)/NN nombre de mots dans le corpus P(e|c) Corpus d'apprentissage avec erreurs On classe les erreurs en suppressions, insertions, substitutions et transpositions On compte le nombre d'erreurs pour chaque lettre ou paire de lettres On en déduit une approximation de la probabilité de chaque erreur

5 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 p 3

6 Programmation dynamique Algorithme de calcul de la distance d'édition Si pneuc fait partie d'un chemin minimal de plouc à pneu, alors ce chemin doit commencer par un chemin minimal de plouc à pneuc Matrice de distances c u o l21123 p10123 #01234 #pneu source : plouccible : pneu

7 Programmation dynamique distance[i,j] = distance minimale entre les i premiers caractères de la source et les j premiers caractères de la cible c54443 u43332 o32223 l21123 p10123 #01234 #pneu 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]))

8 Programmation dynamique Calculer 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] c54443 u43332 o32223 l21123 p10123 #01234 #pneu

9 Automates à poids Un 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 #pne u 0,90,80,095 0,9 m 0,05 b r i 0,15 0,003 0,002 0,1 111

10 Calculer la probabilité d'une séquence Application : calcul de P(e|c) pour la correction orthographique Une séquence e correspond à un ou plusieurs chemins de l'automate On fait la somme des probabilités correspondant à ces chemins Pour chaque chemin, on fait le produit des poids Algorithme "avant" (forward algorithm) #pne u 0,90,80,095 0,9 m 0,05 b r i 0,15 0,003 0,002 0,1 111

11 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]a qs b sj a qs : poids de la transition de l'état q à l'état s b sj vaut 1 si l'état s correspond à e j, 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

12 Algorithme "avant" prob[s,j] = q prob[q,j-1]a qs b sj i00000 u0000 a #m a mn a nr a ru r000a #m a mn a nr e00000 b00000 n00a #m a mn 00 m0a #m 000 p00000 #10000 #mnru Résultat : prob[u,4] = a #m a mn a nr a ru = 0,0001

13 n-grammes On cherche à deviner un token en connaissant les précédents P(m k |m 1 m 2...m k-1 ) probabilité de m k après m 1 m 2...m k-1 On se limite aux n-1 tokens précédents : P(m k |m k-n+1...m k-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(m k |m k-1 ) = nb_occ(m k-1 m k )/nb_occ(m k-1 ) n = 3 (trigrammes) : après dans le, bain est plus probable que calculer P(bain|dans le) > P(calculer|dans le) P(m k |m k-2 m k-1 ) = nb_occ(m k-2 m k-1 m k )/nb_occ(m k-2 m k-1 )

14 n-grammes Probabilité d'une séquence de tokens avec un modèle trigramme P(m 1 m 2...m k-1 m k ) = 1 i k P(m i |m i-2 m i-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

15 n-grammes Génération aléatoire avec un modèle n-gramme On 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 nombre Pour choisir le mot suivant, on couvre [0,1] avec tous les n-grammes qui commencent par m 2 m 3...m n et on en choisit un aléatoirement etc. Modèle unigramme de Shakespeare To him swallowed confess near both. Which. Of save on trail for are ay device and rote life have Modèle bigramme de Shakespeare What means, sir. I confess she? then all sorts, he is trim, captain.

16 n-grammes Modèle trigramme de Shakespeare Sweet prince, Falstaff shall die. Harry of Monmouth's grave. Modèle 4-gramme de Shakespeare King 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 Journal Last 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 Journal They 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.

17 Modèle de Markov Modèle de probabilités dans lequel la probabilité de m k ne dépend que des n éléments qui précèdent (modèle de Markov d'ordre n) P(m k |m 1 m 2...m k-1 ) = P(m k |m k-n...m k-1 ) On le représente par un automate à poids Chaque état de l'automate correspond à un n-gramme Le poids de la transition de m 1 m 2...m n à m 2 m 3...m n+1 est P(m n+1 | m 1 m 2...m n ) Un modèle d'ordre n correspond donc à un modèle n+1-gramme

18 Un modèle de Markov d'ordre te h a p i

19 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(s 1 s 2...s n ) = P(s 1 )P(s 2 |s 1 )P(s 3 |s 2 )...P(s n |s n-1 ) Pour une suite d'états et d'observations : P(o 1 o 2...o n |s 1 s 2...s n,) = P(o 1 |s 1 )P(o 2 |s 2 )...P(o n |s n )

20 Application à l'étiquetage On recherche l'étiquette s de race pour laquelle P(TO s|to race) est maximale argmax s S P(TO s|to race) = argmax s S P(to race|TO s) P(TO s) = argmax s S P(race|s) P(s|TO) s = NN P(race|NN) P(NN|TO) = 0,00041 * 0,021 = 0, 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

21 Exemple bigramme # DT NN VB 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)

22 Application à l'étiquetage Les observations sont les tokens du texte On veut argmax s S P(s|m) où m est la séquence de tokens : argmax s S P(s|m) = argmax s S P(m|s) P(s) = argmax s S 1 i k P(m i |s i ) 1 i k P(s i |s i-n+1...s i-1 ) On estime ces valeurs à l'aide d'un corpus étiqueté (apprentissage supervisé) : P(m i |s i ) = nb_occ(m i, s i )/nb_occ(s i ) P(s i |s i-n+1...s i-1 ) = nb_occ(s i-n+1...s i-1 s i )/nb_occ(s i-n+1...s i-1 ) Pour trouver la meilleure valeur de s : algorithme de Viterbi

23 Algorithme de Viterbi Programmation 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] = max q (prob[q,j-1]a qs b sj ) a qs : P(s|q) b sj : P(m j |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


Télécharger ppt "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."

Présentations similaires


Annonces Google