1 / 23

Cours 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 Viterbi. Le modèle du canal bruité. É tiquetage lexical On connaît les tokens, on veut deviner les étiquettes Canal bruité

cecile
Télécharger la présentation

Cours 5

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 argmaxsSP(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 argmaxsSP(s|o) = argmaxsSP(o|s) P(s) /P(o) = argmaxsSP(o|s) P(s) car P(o) ne dépend pas de s

  4. Exemple : correction orthographique e mot incorrect c mot correct On veut argmaxcCP(c|e) = argmaxcCP(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)/N N 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 p3

  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 l 2 1 1 2 3 p 1 0 1 2 3 # 0 1 2 3 4 # p n e u source : plouc cible : 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 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]))

  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] 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

  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 0,05 0,003 0,15 0,9 0,9 0,8 0,095 u # p n e 1 1 1 0,05 0,1 i m 0,05 b 0,002 r

  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) 0,05 0,003 0,15 0,9 0,9 0,8 0,095 u # p n e 1 1 1 0,05 0,1 i m 0,05 b 0,002 r

  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]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

  12. 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 0 b 0 0 0 0 0 n 0 0 a#mamn 0 0 m 0 a#m 0 0 0 p 0 0 0 0 0 # 1 0 0 0 0 # m n r u Résultat : prob[u,4] = a#mamnanraru = 0,0001

  13. n-grammes On 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)

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

  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 m2m3...mn 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 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

  18. .6 1 a p h .4 .4 .3 .6 1 .3 e t 1 i .4 Un modèle de Markov d'ordre 1

  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(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)

  20. Application à l'étiquetage On recherche l'étiquette s de race pour laquelle P(TO s|to race) est maximale argmaxsSP(TO s|to race) = argmaxsSP(to race|TO s) P(TO s) = argmaxsSP(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

  21. Exemple bigramme P(VB|DT) P(DT|#) VB DT # NN P(NN|DT) P(VB|NN) P(NN|NN) P(can|NN) P(smells|NN) P(can|VB) P(smells|VB) P(the|DT)

  22. Application à l'étiquetage Les observations sont les tokens du texte On veut argmaxsSP(s|m) où m est la séquence de tokens : argmaxsSP(s|m) = argmaxsSP(m|s) P(s) = argmaxsS1ikP(mi|si) 1ikP(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

  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] = 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

More Related