• Aucun résultat trouvé

1Clusteringet k -means ExercicesMQIA

N/A
N/A
Protected

Academic year: 2022

Partager "1Clusteringet k -means ExercicesMQIA"

Copied!
17
0
0

Texte intégral

(1)

Exercices MQIA

1 Clustering et k-means

Exercice 1 – G´en´eralit´es sur le clustering

Q 1.1 Supposons que l’on poss`ede un corpus de N documents, combien de clustering diff´erents peuvent ˆetre trouv´es si on cherche K clusters ?

Q 1.2 Consid´erons que lesN exemples appartiennent `aK cat´egories diff´erentes et que l’on connait la fonction d’appartenance (on sait, pour chaque exemple, `a quelle cat´egorie il appartient, comme dans le cas de l’apprentissage supervis´e). Proposer une mesure qui permette l’´evaluation d’un syst`eme de clustering

Exercice 2 – Deux algorithmes de Quantification vectorielle

- Algorithme des K-moyennes - La taille du dictionnaireK est fix´ee, c’est un param`etre de l’algorithme.

• Initialiser al´eatoiremet les K prototypes.

• R´ep´eter jusqu’`a (crit`ere d’arrˆet) :

– partitionner les exemples en les affectant aux prtotypes dont ils sont le plus proche ; – red´efinir les protoypes (i.e. centres de gravit´e des partitions).

- Algorithme LBG (Linde-Buzo-Gray) -

• y un vecteur initialis´e al´eatoirement de petite norme ;

• le dictionnaire est initialis´e `a un ´el´ement, le centre de gravit´e des exemples de l’ensemble d’appren- tissage ;

• r´ep´eter jusqu’`a (crit`ere d’arrˆet) :

– d´edoubler chaque prototypex du dictionnaire enx+y,x−y;

– partitionner les exemples en les affectant aux prototypes dont ils sont le plus proche ; – red´efinir les prototypes (i.e. centres de gravit´e des partitions).

Q 2.1 Soit l’ensemble d’exemples en dimension 2 :

D={(1,3),(−2,2),(−1,2),(−3,2),(1,5),(1,4),(2,5),(2,6)}

Faire tourner l’algorithme des K-moyennes en prenant pour dictionnaire de d´epart les deux centres de gravit´e des 4 premiers et derni`ers exemples.

Q 2.2 Ecrivez le code octave de l’algorithme deK-moyennes.

Q 2.3 Faites tourner l’algorithme LBG sur les donn´ees D et ´ecrivez le code octave de l’algorithme LBG.

Q 2.4 Quels crit`eres d’arrˆet pr´econisez-vous pour les m´ethodes de QV ?

(2)

Exercice 3 – Carte auto-organisatrice (SOM)

Une carte auto-organisatrice est un r´eseau de neurones con¸cus pour l’apprentissage non-supervis´e.

Dans le cas d’une carte 2D, la carte est une grille de neurones ni,j tel que chaque neurone poss`ede un vecteur de poids not´e wi,j . Nous consid´ererons une relation de voisinage entre les neurones V : N ×N → vrai, f aux telle que v(ni,j, nk,l) = vrai ssi ni,j et nk,l sont voisins. Typiquement, les voisins du neurone ni,j sont les neurones ni−1,j, ni+1,j, ni,j−1, ni,j+1. Chaque neurone repr´esente une des classes de notre probl`eme de clustering.

L’algorithme est le suivant :

• initialiser les poids des neurones al´eatoirement.

• R´ep´eter :

– Pour chaque exemple xk

– choisir le neurone le plus proche :argmin||xk−wi,j||

– pour tous les neurones du voisinage (y compris lui-mˆeme), actualiser les poids en utilisant la r`egle : ∆wi,j =ε(t)∗(xk−wi,j).

Faire tourner l’algorithme en utilisant une grille de en carr´e de 4 neuronnes de coordonn´ees (−1,−1), (1,−1), (−1,1), (1,1) et ´ecrivez le code octave de l’algorithme.

Exercice 4 – TME : Algorithme des k-means

Q 4.1 Impl´ementer l’algorithme des k-moyennes qui prend en argument un nombrek de clusters `a isoler et une base de donn´eesX et qui retourne la classe Y des ´echantillons de la base X.

Cet algorithme est it´eratif, vous utiliserez dans un premier temps un crit`ere d’arrˆet simpliste bas´e sur le nombre d’it´erations. Apr`es avoir v´erifier rapidement que votre impl´ementation est fonctionnelle, vous d´efinirez un crit`ere bas´e sur la stabilisation de la solution. Afin d’initialiser les moyennes simplement et efficacement, on propose d’affecter al´eatoirement une classe `a tous les points de la base puis de caluler la moyenne des diff´erentes classes. Par ailleurs, vous utiliserez l’algorithme des k-ppv aveck= 1 pour partitioner la base d’exemple par rapport aux prototypes.

Q 4.2 Conduire des exp´eriences sur des bases jouets classiques et USPS en cachant les ´etiquettes.

Vous tracerez des fronti`eres de d´ecision pour les exemples 2D et comparerez les diff´erents taux de bonne classification des approches supervis´ees et non-supervis´ees.

Exercice 5 – TME : Algorithme SOM

La fonction impl´ementant la m´ethode SOM vous est donn´ee : elle prend en param`etre les dimensions de la grille, la base d’apprentissage, le facteurεde mise `a jour, la port´ee de la mise `a jour et le nombre d’it´erations `a effectuer et retourne la grille apprise.

Q 5.1 Construire une fonction de projection des donn´ees sur la grille apprise. Vous ˆetes donc capable de projeter n’importe quelle donn´ee dans un espace 2D. Cela est pratique pour la visualisation de donn´ees de grande dimension.

Q 5.1.1 Utiliser la nouvelle fonction dataset avec l’option ruban afin de construire un exemple

(3)

jouet 3D. (Vous pouvez le visualiser en utilisant plot3d `a la place de plot). Projeter ce jeu de donn´ees sur une grille SOM et visualiser le r´esultat.

Q 5.1.2 Si votre probl`eme est bien programm´e, vous pouvez passer `a l’´etape suivante : utiliser un kppv classique pour r´esoudre le probl`eme de classification ruban puis tenter de repr´esenter la fronti`ere de d´ecision sur la carte SOM.

Q 5.2 R´efl´echir sur l’impact de lanormalizationdes donn´ees. Que se passe-t-il si les neurones de la grille sont initialis´es `a des valeurs proches de 0 et que les ´echantillons sont des images dont les pixels sont cod´es entre 0 et 2 (cf USPS).

Vous disposez d’une fonction normalisation permettant de remettre une base de donn´ees `a une moyenne nulle et un ´ecart type de 1.

Q 5.3 Proposer une solution pour visualiser la projection des donn´ees USPS sur une grille 20x20.

Q 5.4 Taux de bonne classificationa posteriori : affecter une classe `a chaque neurone en fonction des

´

el´ements majoritairement projet´es sur ce neurone. Calculer ensuite le taux de bonne classification des donn´ees projet´ees.

Q 5.5 Alternative : la puret´e. On consid`ere qu’un neurone est pur si toutes les donn´ees projet´ees sur ce neurone sont de la mˆeme classe. Calculer le taux de puret´e moyen sur la grille. Afin de ne pas biaiser le calcul, le taux de puret´e d’un neurone sera pond´er´e par le nombre d’´echantillon projet´e sur le neurone.

Exercice 6 – TME : Algorithme k-means pour la r´eduction de dimensionnalit´e

Faire tourner l’algorithme des k-ppv sur une base de donn´ees importante est tr`es couteux en temps de calcul (c’est par exemple le cas sur les donn´ees USPS). Afin de r´eduire la complexit´e de m´ethode, on propose de r´esumer l’information contenue dans chaque classe. Les k moyennes obtenues sont en fait des repr´esentants pour la classe `a d´ecrire.

On propose ensuite de r´ealiser un k-ppv dans l’espace des repr´esentants (les nouveaux points sont compar´es aux moyennes repr´esentatives des diff´erentes classes).

Q 6.1 Construire un script r´ealisant cette exp´erience.

Q 6.2 Quantifier l’int´erˆet de la strat´egie en terme de temps de calcul.

Q 6.3 Quantifier la perte de performance le cas ´ech´eant.

(4)

2 Estimation de densit´ es

Exercice 7 – Estimation de densit´es : crit`eres M V et M AP

On se place dans le cadre de l’apprentissage supervis´e. On dispose d’un ensemble de donn´ees d’appren- tissage E, et on cherche `a d´eterminer par apprentissage les param`etresθ optimaux d’un mod`ele M (on note le mod`ele Mθ), repr´esentant au mieux les donn´ees.

Q 7.1 Exprimer le lien entre la probabilit´e de l’ensemble de donn´ees E conditionnellement `a Mθ et la probabilit´e du mod`ele Mθ conditionnellement `a l’ensemble des donn´ees,E.

Q 7.2 En d´eduire deux crit`eres d’apprentissage possibles pour les param`etres θdu mod`ele M.

Q 7.3 A quelles conditions ces deux crit`eres sont-ils ´equivalents ?

Exercice 8 – Clustering et m´elange de lois

On souhaite estimer une densit´e de probabilit´e par un mod`ele de type m´elange de gaussiennes. La probabilit´e d’une observationxest donn´ee par :p(x) =PL

l=1Pl.p(x|λl) o`u lesPlsont les probabilit´es a priori des lois et lesp(x|λl) sont des lois gaussiennes caract´eris´ees par leur moyenneµl et leur variance σl , i.e.λl = (µl, σl).

Q 8.1 Dessiner la loi de probabilit´e pourL= 2, P1 =P2 = 0.5, etµ1 = 1, µ2 = 3, σ1 = 1, σ2= 10.

Q 8.2 Quelles est la probabilit´e a posteriori qu’un exemple x aie ´et´e produit par la gaussienne l, p(λl|x) ?

Q 8.3 Expliquer comment l’apprentissage d’un m´elange de lois peut ˆetre utilis´e pour faire du clus- tering.

Q 8.4 Ecrire le code octave d’une fonction qui prend en entr´ee un mod`ele de type m´elange de gaussiennes et un ensemble de donn´ees et qui renvoie le r´esultat du clustering de cet ensemble de donn´ees par le mod`ele.

L’en-tˆete de la fonction sera le suivant : Function [Clusters]=cluster melange(M, X) o`u M est une structure stockant les param`etres d’un mod`ele de m´elange, X est une matrice N ∗p stockant un ensemble de donn´ees (N individus en dimension p) et Clusters est un tableau de dimension N contenant les numeros de clusters de chacun des exemples deX.

Exercice 9 – Apprentisage d’un m´elange de lois et maximum de vraissemblance

On souhaite apprendre le mod`ele de l’exerceice pr´ecedent avec un crit`ere de maximum de vraisemblance (MV) sur une base d’apprentissageE ={xi}, i= 1..N.

Q 9.1 Exprimer le logarithme de la vraisemblance des donn´ees par le mod`ele en supposant que les xi sont ind´ependants.

Q 9.2 Montrer que maximiser ce logarithme ou la vraisemblance directement doit aboutir th´eoriquement

`

a la mˆeme solution.

Q 9.3 On utilise un algorithme dit algorithme EM pour l’estimation de ce m´elange de gaussiennes.

Voici une des variantes de cet algorithme :

• initialiser les param`etres (Pi, µi, σi)i=1..L;

(5)

• R´ep´eter :

– d´eterminer pour chaque xi la gaussienne qui l’a poduit avec la plus grande vraisseblance : pour i= 1..N,I(xi) =argmaxl p(λl|xi) ;

– r´e-estimer les param`etres des lois `a partir des exemples qui lui ont ´et´e affect´es : pour l = 1..L, r´e-estimerλl `a partir des{xi ∈E|I(xi) =l}

Ecrire un code octave de l’algorithme pr´ec´edent.

Q 9.4 Dans le cas o`u les matrices de covariance des lois sont fix´ees `a l’identit´e, montrer que l’algorithme pr´ec´edent est ´equivalent `a un algorithme des K-Moyennes.

Exercice 10 – TME : m´elange de gaussiennes, EM et clustering

Dans cet exercice (et pour les suivants), pour engendrer des donn´ees de clustering en 2D, vous utiliserez par exemple :

xapp = [];

mu = [1 1; 1 -1; -1 1; -1 -1];

sigma = [0.2 0.4 0.4 0.05];

n = 30;

for i=1:length(sigma)

xtmp = randn(n,2)*sigma(i)+ones(n,1)*mu(i,:);

xapp = [xapp ; xtmp];

endfor

Q 10.1 Impl´ementer l’algorithme EM bas´e sur un m´elange de gaussiennes (d´ecrit dans l’exercice pr´ecedent). Les param`etres de la fonction devront ˆetre : k, le nombre de clusters et X la base de donn´ees. La fonction retourne la classe de chacun des ´echantillons dans un vecteur Y. On rappelle qu’une distribution de probabilit´e gaussienne de dimensiondsuit la loi suivante :

p(x) = 1

(2∗π)d/2∗(det(Σ))1/2∗exp

−1

2(x−µ)Σ−1(x−µ)T

, Σ = 1

Ni=1(xi−µ)T(xi−µ)∈Rd×d Algorithme :

1. Initialisation : afin de partir de valeurs raisonnables pour les (µi, σi), nous proposons d’affecter al´eatoirement une classe `a chacun des ´echantillons et d’identifier les (µi, σi).

2. Expectation : d´eterminer la classe des ´echantillons de X.

3. Maximisation : Calculer les nouveaux param`etres des gaussiennes (phase d’optimisation du mod`ele)

Q 10.2 Dans un premier temps, vous utiliserez des donn´ees artificielles gaussiennes en deux dimen- sions. Vous ferez tourner l’apprentissage `a plusieurs reprise pour juger la stabilit´e de la m´ethode et vous comparerez les r´esultats avec l’algorithme desk-means.

Q 10.3 Afin d’´evaluer la qualit´e des r´esultats, vous utiliserez les m´ethodesgenerateGridetplotIsocontours disponibles sur le site web de l’UE.

Q 10.4 Vous utiliserez ensuite le jeu de donn´eesIris.

(6)

Exercice 11 – Vraisemblance et ´evaluation de k en clustering

Dans la fonction pr´ec´edente, vous ajouterez une variable score `a retourner. Cette variable contiendra la log-vraisemblance du mod`ele : Vlogθ =Pn

i=1lnp(xi, θ), avec : p(xi|θ) =Pk j=11

kp(xij)

Vous effectuerez une s´erie d’exp´eriences dans une double bouclefor: vous ferez varierket pour chaque k vous effectuerez nexp exp´erience afin de contre-balancer l’initialisation al´eatoire. Pour chaque s´erie d’exp´erience, vous garderez la meilleure vraisemblance. Apr`es avoir justifi´e le fait de ne garder que la plus forte vraisemblance, vous tracerez la courbe des meilleures vraisemblances en fonction de k.

Exercice 12 – M´elange de gaussiennes et EM vs PMC en apprentissage supervis´e

Dans un probl`eme de classification supervis´ee comme vous en avez trait´e dans les semaines pass´ees, l’id´ee est d’estimer la densit´e de probabilit´e de chacune des classes de points. Une fois les mod`eles construits, il suffit pour chaque nouveau point de trouver la classe la plus probable.

Q 12.1 Pour chaque classej, vous estimerez les param`etresθj ={k,{θ1,· · ·, θk}}j en maximisant la vraisemblance : Vlogθ =PnCj

i=1lnp(xi ∈Cj|θ).

Q 12.2 Pour chaque pointx, vous estimerez la probabilit´e d’appartenance `a un mod`elej, c’est `a dire la probabilit´e d’appartenance `a une classej.

Q 12.3 Vous comparerez les taux de bonne classification sur des probl`emes jouets et sur des probl`emes r´eels (donn´ees du site web de l’uv).

(7)

3 Chaˆınes de Markov

Une chapine de Markov est un automate `a ´etats finis d´efini par : – un ensemble d’´etats ;

– un ensemble de probabilit´es d’´etats initiaux ;

– un ensemble de probabilit´es de transitions entre ´etats.

Il s’agit d’un g´en´erateur al´eatoire de s´equences.

On consid`ere des chaˆınes de Markov permettant de mod´eliser la m´et´eo. Une chaˆıne permet de mod´eliser la m´et´eo dans une ville. Un ´etat d’une chaˆıne correspond au climat observ´e pour un jour donn´e (Soleil, Nuage ou Pluie) dans la ville. Chaque jour, on change d’´etat suivant la loi de probabilit´es de transitions associ´ee `a l’´etat courant. On prendra comme convention que l’´etat 1 correspond `a Soleil, l’´etat 2 `a Nuage, l’´etat 3 `a Pluie.

Exercice 13 – Probabilit´e d’une s´equence, g´en´eration al´eatoire d’une s´equence

On suppose que les param`etres de la chaˆıne de Markov pour Paris sont les suivants (dans l’ordre les observations sont S N P) :

– probabilit´es initiales : Π = [0.2,0.3,0.5]

– probabilit´es de transitions : A=

0.2 0.4 0.4 0.3 0.4 0.3 0.2 0.3 0.5

Q 13.1 Calculez la probabilit´e de la s´equence d’´etats suivante : N, N, S, N, N, P, P, N, P, S, S, P.

G´en´eralisez au cas quelconque d’une s´equence.

Q 13.2 On souhaite utiliser la chaˆıne de Markov pr´ec´edente pour g´en´erer al´eatoirement une s´equence de climats journaliers.

Pour cela, on utilise la proc´edure suivante : on consid`ere une distribution de probabilit´es sur un ensemble fini d’´ev´enements E = {e1, . . . , eN} possibles. Cette distribution est donc d´efinie par des probabilit´es associ´ees aux ´ev´enementsp(e1), . . . p(eN), avecP

p(ei) = 1.

Pour tirer un ´ev´enement au hasard informatiquement avec une distribution de ce type (tirage type roulette), on d´ecoupe le segment [0,1] en autant de tranches qu’il y a d’´ev´enements, la tranche correspondant `aei ayant une largeur ´egale `ap(ei). Ensuite, on utilise un g´en´erateur al´eatoire uniforme entre 0 et 1, et on regarde dans quelle tranche on tombe. L’´ev´enement tir´e al´eatoirement est celui correspondant `a la tranche dans laquelle on tombe . On utilise cette proc´edure pour tirer au hasard le premier ´etat, puis la transition `a partir de cet ´etat, etc ... Les nombres donn´es par le g´en´erateur al´eatoire (entre 0 et 1) sont : 0.21,0.63,0.92,0.87,0.01,0.35,0.01,0.43,0.55. Quelle est la s´equence de climats journaliers g´en´er´ee avec ces tirages ?

Q 13.3 Ecrire le code octave d’une fonction prenant en param`etres une chaˆıne de Markov et une longueur de s´equence et qui produit une s´equence d’observations g´en´er´ee par la chaine.

Q 13.4 Ecrire le code octave d’une fonction prenant en param`etres une chaˆıne de Markov et une s´equence d’observations, et qui produit en sortie la probabilit´e de la s´equence par la chaˆıne.

(8)

Exercice 14 – Exemple de classification avec des CMs

On vous donne la s´equence de climats journaliers suivante (S, S, P, P, N, S) et on vous demande en quelle ville (Paris ou Marseille) cette s´equence a ´et´e observ´ee. Pour cela, on dispose de deux chaˆınes de Markov, l’une correspondant au climat de Paris, l’autre au climat de Marseille. Les param`etres de ces deux chaˆınes sont les suivants :

Π = [0.2,0.3,0.5] Π = [0.5,0.3,0.2]

Paris : A=

0.2 0.4 0.4 0.3 0.4 0.3 0.2 0.3 0.5

 Marseille : A=

0.5 0.3 0.2 0.4 0.4 0.2 0.2 0.5 0.3

Exercice 15 – Apprentissage des param`etres d’une chaˆıne de Markov

On observe une s´equence d’observations et on souhaite apprendre les param`etres de la chaˆıne de Markov qui a g´en´er´e cette s´equence d’observations. Soit la s´equence de symboles suivante : P N S P N S P.

Q 15.1 D´eterminez les fr´equences d’apparition des symboles et celle des bigrammes (suite de deux symboles). En d´eduire les param`etres de la chaˆıne de Markov permettant de mod´eliser le processus sous jacent qui a g´en´er´e la s´equence pr´ec´edente. Dressez la matrice de transition d’ordre 1.

Q 15.2 Ecrire le code octave d’une fonction d’apprentissage d’une CM qui prend en param`etres une s´equence d’apprentissage et qui produit la CM qui maximise la vraisemblance de cette base.

Q 15.3 Ecrire le code octave d’une fonction d’apprentissage d’une CM qui prend en param`etres une base d’apprentissage de s´equences et qui produit la CM qui maximise la vraisemblance de cette base.

Exercice 16 – Apprentissage des param`etres d’un m´elange de chaˆınes de Markov

On observe des s´equences d’observations et on souhaite apprendre les param`etres d’un m´elange de chaˆıne de Markov qui a g´en´er´e cet ensemble de s´equences d’observations.

Q 16.1 En vous inspirant de l’algorithme des K-Moyennes imaginer une strat´egie pour r´ealiser un tel apprentissage.

Q 16.2 Ecrire le code octave correspondant.

Exercice 17 – TME : exp´erimentations sur les donn´ees V´elib

Q 17.1Impl´ementation des fonctions vues en TD

Q 17.1.1 Ecrivez le code correspondant `a la g´en´eration d’un ensemble deN s´equences de longueur T par une chaine de Markov pass´ee en param`etre. La chaine est stock´ee dans un array contenant le vecteurP I et la matriceA.

Q 17.1.2 Ecrivez le code pour l’apprentissage d’une chaˆıne `a partir d’une base d’apprentissage.

On veut tester l’apprentissage d’une chaˆıne de Markov en utilisant les fonctions pr´ec´edentes pour une chaˆıne de Markov que vous d´efinirez vous mˆeme (telle que celle vue en TD).

(9)

Q 17.1.3 D´efinissez un crit`ere de comparaison entre une chaˆıne g´en´eratrice et une chaˆıne apprise.

Q 17.1.4 Tracez l’´evolution du crit`ere en fonction de la taille de la base d’apprentissage.

Q 17.2Pr´esentation des donn´ees

Nous vous fournissons des donn´ees correspondant au syst`eme de v´elos Velib `a Paris (www.velib.fr).

On dispose d’informations sur le nombre de v´elos disponibles pour chaque station et pour des relev´es

`

a peu pr`es r´eguliers (environ tous les 1/4 d’heure), pour un jour d’Octobre 2007.

– Les donn´ees de la journ´ee vous sont fournies sous la forme d’une matrice. Il y a autant de lignes qu’il y a eu de relev´es dans la journ´ee, et autant de colonnes qu’il y a de stations Velib.

– Par ailleurs on vous fournit les coordonn´ees (longitude et latitude) de chacune des stations, coor- donn´ees `a partir desquelles vous pouvez d´eterminer la proximit´e entre stations (un plot des stations (longitude, latitude) vous affiche la carte des stations).

– Pour terminer, le fichier No Stations vous fournit une table [no, noreel] permettant d’´etablir la correspondance entre les num´eros de stations dans les donn´ees que nous vous fournissons (Les stations ont ´et´e renum´erot´ees de 1 `a 848 pour faciliter les traitements) et les num´eros de stations r´eels (i.e. ceux que vous pouvez r´ecup´erer sur le site de Velib). Le num´ero de station r´eel commence par l’arrondissement (de 1 `a 20 ). Pour info, le fichier Liste Stations Avec Nomsvous liste l’ensemble de toutes les stations velib (932), avec leurs num´eros r´eels, coordonn´ees, et adresses.

– Le nombre de stations (848) ne correspond pas au nombre r´eel de stations (932) certaines stations

´

etant soit en disfonctionnement lors de la collecte des donn´ees, et d’autres stations ´etant trop particuli`eres pour ˆetre trait´ees ici (e.g. mobiles). Il peut ˆetre int´eressant de ne pas utiliser les donn´ees brutes mais de les discr´etiser, de les normaliser, etc.

Q 17.3Classification des stations par arrondissement

Q 17.3.1 Cr´eez une base de donn´ees des stations du 4`eme et du 16`eme arrondissements en utilisant un codage brut du nombre de v´elos disponibles.

Q 17.3.2 Apprenez une chaˆıne de Markov pour chacun des deux arrondissements en utilisant une partie de la base pour l’apprentissage et le reste pour le test. `A quel taux pouvez vous reconnaˆıtre l’arrondissement d’une station `a partir de l’´evolution des v´elos disponibles ?

Q 17.3.3 Essayez en changeant le codage. On utilise maintenant des donn´ees diff´erentielles en s’int´eressant `a l’´evolution de la diff´erence entre le nombre de v´elos disponibles `a un instant donn´e et

`

a l’instant pr´ec´edent. Cela change-t-il les r´esultats ?

Q 17.3.4 Essayez en changeant encore le codage. Par exemple on peut avoir un ´etat pour une paire (tranche horaire, nombre de v´elos disponibles) qui permet d’introduire une information temporelle dans le mod`ele.

Q 17.4Apprentissage d’un m´elange de chaˆınes pour l’ensemble des stations

Q 17.4.1 On souhaite maintenant apprendre un m´elange de chaines de Markov d’ordre 1. Utilisez le code octave vu en TD pour cela.

Q 17.4.2 Utilisez la chaˆıne apprise pour clusteriser les stations.

Q 17.4.3 Tracez la carte des stations avec des couleurs diff´erentes pour chaque cluster. Identifiez- vous des groupes coh´erents de stations (stations proche d’une gare, stations en haut d’une cˆote, stations utilis´ees pour rentrer le soir apr`es le cin´ema, ...) ?

Q 17.4.4 On change le codage et on s’int´eresse maintenant `a des donn´ees diff´erentielles. Cela change-t- il les r´esultats ?

(10)

4 Mod` eles de Markov Cach´ es

On a ´etudi´e pr´ec´edemment les Chaˆınes de Markov (CMs). Ce sont des mod`eles al´eatoires g´en´eratifs de s´equences. Les CMs peuvent ˆetre utilis´ees pour faire de la mod´elisation de s´equences, de la pr´evision, de la classification de s´equences, etc. On se propose dans ce TD d”´etudier les Mod`eles de Markov Cach´es (MMCs). Ce sont, eux aussi, des mod`eles al´eatoires g´en´eratifs, mais plus puissants que les CMs.

Exercice 18 – Exemple de mod´elisation de climat

On a utilis´e pr´ec´edemment une CM pour mod´eliser des s´equences de climats journaliers (Soleil, Nuage, Pluie). Les observations ´etaient les climats journaliers et correspondaient aux ´etats de la CM. Nous allons maintenant changer de point de vue. On consid`ere que le climat (Soleil, Nuage, Pluie) est une observation qui d´epend d’un certain nombre K de facteurs (par exemple la pression atmosph´erique, la temp´erature, ...).

Dans un souci de simplification on consid`ere que ces facteurs ne peuvent prendre qu’un nombre fini de valeurs (pression forte, mod´er´ee, faible par exemple ⇒ 3 valeurs) et on consid`ere toutes les com- binaisons possibles de valeurs des K facteurs. Imaginons qu’il y ait N K-uplets possibles. Alors on mod´elisera le processus par un MMC `a N ´etats. Et, dans chaque ´etat, toutes les observations (Soleil, Nuage, Pluie) pourront ˆetre observ´ees mais avec des probabilit´es variables (on parlera de probabilit´es d’´emission associ´ees aux ´etats).

Dans un MMC, les ´etats sont en nombre fini, et l’enchaˆınement des ´etats est r´egi par une chaˆıne de Markov d’ordre 1. Par contre les ´etats ne sont pas directement observables, ils caract´erisent d’une certaine fa¸con l’´etat interne du processus. A chaque ´etat est associ´ee une loi de probabilit´e d’´emission, qui correspond aux probabilit´es d’observer les diff´erentes observations (Soleil, Nuage, Pluie) lorsque l’on est dans cet ´etat.

On suppose qu’on dispose d’un mod`ele de Markov mod´elisant la m´et´eo. Les observations sont Soleil, Nuage, Pluie. Le mod`ele poss`ede 2 ´etats mod´elisant les divers ´etats conditionnant le climat (deux configurations de temp´erature / pression etc). A chaque ´etat est associ´ee une loi de probabilit´e d’´emission sur les observations,P(obs|etat).

On suppose que les param`etres de la chaˆıne de Markov sont les suivants :

• probabilit´es initiales : Π = (0.5,0.5)

• probabilit´es de transitions : A=

0.6 0.4 0.1 0.9

• probabilit´es d’´emission :

pour l’´etat 1 :p(o|s1) = [0.5,0.2,0.3], p(S|s1) = 0.5,p(N|s1) = 0.2,p(P|s1) = 0.3 pour l’´etat 2 :p(o|s2) = [0.1,0.3,0.7], p(S|s2) = 0.1,p(N|s2) = 0.3,p(P|s2) = 0.6

Q 18.1 Un MMC est un mod`ele de g´en´eration al´eatoire de s´equences. On peut g´en´erer une s´equence d’observations al´eatoirement de la fa¸con suivante :

• Initialisation :

– niveau ´etat : on tire un ´etat initial au hasard avec la loi de probabilit´es des probabilit´es d’´etats initiaux de la CM. Cet ´etat est l’´etat courant.

– niveau observation : on tire al´eatoirement une observation avec la loi de probabilit´e d’´emission associ´ee `a l’´etat courant.

• It´eration :

(11)

– niveau ´etat : on tire al´eatoirement le nouvel ´etat courant avec la loi de probabilit´e d´efinie par les probabilit´es de transitions `a partir de l’´etat courant.

– niveau observation : on tire al´eatoirement une observation avec la loi de probabilit´e d’´emission associ´ee `a l’´etat courant.

On utilise la mˆeme proc´edure que celle d´ecrite pour les CMs pour tirer au hasard avec une loi de probabilit´e discr`ete.

On vous donne la s´equence de nombres tir´es al´eatoirement avec un g´en´erateur al´eatoire informatique (uniforme entre 0 et 1) : 0.1 0.55 0.45 0.3 0.01 0.23 0.98 0.54 0.78 0.89

D´eterminez la s´equence d’´etats et d’observations g´en´er´ees.

NB : En r`egle g´en´erale, on observe un ph´enom`ene (s´equence de climats journaliers par exemple) mais on ne connaˆıt pas la s´equence d’´etats sous-jacente. C’est pourquoi on dit que ce sont des Mod`eles de Markov Cach´es.

Q 18.2 Ecrire une fonction octave qui produit al´eatoirement une s´equence pour un mod`ele donn´e en param`etre.

Q 18.3Exploitation du mod`ele : calcul de la probabilit´e d’une s´equence d’observations.

Calculer la probabilit´e de la s´equence N, S, S, P, P. Ecrire le code octave de calcul de la probabilit´e d’une s´equence d’observations.

Q 18.4Exploitation du mod`ele : d´ecodage.

Calculer la s´equence d’´etats la plus probable pour cette s´equence d’observations. Ecrire le code octave pour l’algorithme de Viterbi. Ecrire une fonction de calcul approxim´e de la probabilit´e d’une s´equence qui renvoie le max sur tous les chemins possibles de la probabilit´e jointe de la s´equence d’observations et de la s´equence d’´etats.

Exercice 19 – Mod´elisation d’exp´eriences avec un d´e truqu´e

Q 19.1 On consid`ere un d´e truqu´e, les probabilit´es des six faces sont : 0.1,0.1,0.1,0.2,0.2,0.3.

D´eterminez un MMC qui permette de mod´eliser des s´equences de tirages avec ce d´e : Nombre d’´etats, probabilit´es initiales et matrice de probabilit´es de transitions.

Q 19.2 On consid`ere maintenant deux d´es truqu´es et une pi`ece truqu´ee. Les d´es ont des probabilit´es de faire apparaˆıtre les faces 1 `a 6 ´egales `a [0.1,0.1,0.1,0.2,0.2,0.3] pour le d´e 1 et [0.3,0.2,0.1,0.2,0,0.2]

pour le d´e 2. La pi`ece a une probabilit´e 0.4 de tomber sur Pile et 0.6 sur Face.

Une personne observe la proc´edure suivante pour g´en´erer des s´equences de nombres de 1 `a 6 (elle ne vous communique que la s´equence des faces des d´es tir´es).

– Elle commence par tirer au hasard avec la pi`ece (Pile = d´e 1 ; Face = d´e 2) le d´e avec lequel il tirera le prochain nombre.

– Avec ce d´e, il tire un nombre.

– Avec la pi`ece il d´etermine avec quel d´e il tirera le prochain nombre. Avec ce d´e il tire un nombre, etc...

D´eterminez un MMC (architecture et param`etres) permettant de mod´eliser ce processus.

Remarque : les MMCs sont une instance demod`eles `a ´etats, dont le comportement est donn´e par les deux ´equations suivantes : st = f(st−1) +et, ot = g(st) +εt o`u st d´esigne l’´etat du processus, et ot l’observation g´en´er´ee `a cet instant. Les MMcs sont un mod`ele `a ´etats particulier dans lesquels l’´etat est discr´etis´e .

(12)

Exercice 20 – Extrait examen juin 2004, Mod´elisation de s´equences d’observations On ne consid`ere que des observations discr`etes, i.e. appartenant `a un ensemble fini Σ d’observations possibles.

On consid`ere un alphabet `a 4 symboles Σ = {a, b, c, d} et une base de donn´ees d’apprentissage con- stitu´ee de 4 s´equences X={aaba, aabc, aaca, aacb}.

Q 20.1 Dessinez un mod`ele de Markov cach´e (en explicitant les probabilit´es de transition et les lois de probabilit´es d’´emission) qui maximise la vraisemblance de X. Ce mod`ele est-il unique ? Que vaut la vraisemblance de chacune des s´equences calcul´ee par votre mod`ele ? Que vaut la vraisemblance de X calcul´ee par votre mod`ele ?

Q 20.2 Donnez des indications succinctes sur la fa¸con de construire un MMC maximisant un ensemble de s´equences X quelconque.

On consid`ere maintenant les ensembles de s´equences E1 = {ab}, E2 = {(ab)}, E3 = {(ab)}, E4 ={anban, n∈N}, o`u x repr´esente l’ensemble des s´equences constitu´ees d’un nombre quelconque de r´ep´etitions dex, etxnrepr´esente la s´equence constitu´ee de n r´ep´etitions de x.

On dit qu’un MMC accepte une s´equencesparticuli`ere si la probabilit´e descalcul´ee par le MMC est non nulle.

Q 20.3 Peut-on construire un mod`ele de Markov (chaˆıne de Markov ou MMC) acceptant l’ensemble de s´equences E1? Si la r´eponse est oui, explicitez le MMC, sinon expliquez succinctement pourquoi.

Q 20.4 Idem pourE2? Idem pourE3? Idem pourE4?

Exercice 21 – Syst`eme de reconnaissance de l’´ecriture manuscrite en ligne par HMM Attention: Les quantit´es pour lequel le nom est pr´ec´ed´e d’un # (par exemple, #NIV, #NE etc), sont susceptibles d’ˆetre modifi´ees lors des tests que vous effectuerez pour mettre au point votre syst`eme.

Vous devez donc faire attention, pour ces variables particuli`erement, `a utiliser des noms de variables dans vos programmes.

Q 21.1Acquisition de donn´ees

But :Affichage de trac´es de lettres isol´ees acquis avec une tablette graphique.

On vous fournit des fichiers Lettre Num´ero.sig o`u Lettre est le caract`ere ´ecrit ( a `a z ), Num´eroest le num´ero du trac´e (1 `a 10).

Ces fichiers contiennent le signal pr´etrait´e de mani`ere `a transformer les signaux acquis dans l’´etape pr´ec´edente de fa¸con `a les normaliser, avant de les traiter dans le syst`eme de reconnaissance. Plusieurs

´

etapes sont n´ecessaires, d´ecrites ci-dessous :

• Il faut d’abord lisser le signal par un filtre interpolateur du type : P oint(t) = [P oint(t−1) + 2∗ P oint(t) +P oint(t+ 1)]/4

• Il faut normaliser le signal par la m´ethode des boˆıtes englobantes. Pour cela, il faut d´eterminer les ordonn´ees minimum et maximum du signal, ymax et ymin, puis d´eterminer l’´echelle de la normali- sation pour que le signal apr`es normalisation soit compris entre les ordonn´ees 0 et 1, enfin mettre `a l’´echelle le signal en appliquant la mise `a ´echelle sur les points du trac´e (en abscisse et en ordonn´ee).

• Il faut r´e-´echantillonner le signal spatialement. Cela consiste `a s´electionner les points dans le trac´e de fa¸con `a ce que deux points cons´ecutifs soient distants l’un de l’autre d’une valeur fixe, ´egale `a 1/8. Cela signifie qu’un trac´e vertical sera repr´esent´e par 9 points.

Le principe est de consid´erer la trace ´ecrite ´etir´ee selon l’axe des x, puis de r´epartir les points de

(13)

mani`ere uniforme. Si size est la distance entre les points, alors le nombre de segments ´egaux (i.e.

le nouveau nombre de points) est donn´e par : nsteps=ceil(Lmax/size), o`u : Lmax =long(jmax) = Pjmax

i=1 d(Pi, Pi−1) repr´esente la longueur cumul´ee totale de la trace ´ecrite. Puis on r´eestime la dis- tance entre deux points `a partir de nsteps connaissant Lmax :step=Lmax/nsteps.

L’algorithme est le suivant :

– Pour chaque nouvelle abscisse (le long de la trace ´etir´ee) donn´ee par : pos = k ∗step, pour k= 0..nsteps−1, chercher le point Pj+1 de la trace le plus proche de cette position et v´erifiant pos < long(j+ 1).

– Estimer alors les coordonn´ees du nouveau point P0(x0, y0) ayant la position pos sur l’axe des longueurs, par interpolation lin´eaire :PjP0= (long(j+1)−long(j))PjPj+1 ∗(pos−long(j)).

• Pour finir, on proc`ede `a l’extraction de caract´eristiques.

Q 21.1.1Discr´etisation des angles.Les angles sont cod´es entre 0 et 360˚. Vous devez quantifier ces angles, ce qui permettra d’utiliser des HMMs discrets beaucoup plus simples `a mettre en oeuvre.

On discr´etise les angles de 0˚ `a 360˚ en #NIV (par exemple 12) niveaux r´epartis uniform´ement entre 0 et 360˚. Apr`es cette ´etape de pr´etraitements, le signal d’une lettre est repr´esent´e par une s´equence de num´eros (compris entre 1 et #NIV).

Vous pouvez invoquer cette proc´edure de discr´etisation `a chaque fois que vous traitez un signal de lettre ou bien r´ealiser cette ´etape une fois pour toutes, en sauvegardant tous les signaux discr´etis´es dans de nouveaux fichiers de nom Lettre Num´ero.pre par exemple.

Q 21.1.2 Affichage des trac´es. Ecrire une proc´edure d’affichage d’un trac´e, en utilisant le fait que les angles d’un signal correspondent `a des angles de la tangente `a la courbe en des points

´

equidistants spatialement. Il suffit donc de calculer le sinus et le cosinus d’un angle en un point pour connaˆıtre le d´eplacement en x et en y jusqu’au prochain point. Testez sur quelques trac´es.

Q 21.2Programmation de mod`ele markoviens en inf´erence

On s’int´eressera essentiellement `a des MMCs de topologie Gauche-Droite, i.e. il existe un ´etat initial, un ´etat final, les transitions autoris´ees sont d’un ´etat vers lui-mˆeme et d’un ´etat vers le suivant. On vous demande d’´ecrire des fonctions de base d’utilisation de mod`eles Markoviens cach´es de topologie standard et de topologie GD, pour des observations discr`etes (la loi d’´emission dans un ´etat est une table), ou r´eelles en dimension 1 (les lois d’´emission sont gaussiennes). On vous demande d’´ecrire les fonctions suivantes pour les diff´erents types de mod`eles envisag´es :

– g´en´eration d’une s´equence

– de calcul de la probabilit´e d’une s´equence (approximation par le max, travail en log) – de d´ecodage d’une s´equence.

Q 21.3Tests avec des mod`eles d´efinis `a la main

Dans un premier temps vous d´efinirez des mod`eles `a la main et chercherez `a d´efinir des param`etres probables pour diff´erents caract`eres. Vous mettrez en place des fonctions permettant le calcul de performances sur vos donn´ees.

Evaluer le comportement de votre syst`eme de reconnaissance de lettres isol´ees en testant d’une part sur les signaux appris (#NA premiers exemples par lettre), d’autre part sur les signaux non appris (autres exemples par lettre).

Pr´esentez vos r´esultats sous la forme d’une matrice de confusion de la forme suivante [Cij]i,j o`u Cij

(14)

de reconnaissance global, i.e. le pourcentage d’exemples qui sont bien reconnus.

Evaluez l’importance du nombre d’´etats, et du nombre de niveaux de discr´etisation sur le taux de reconnaissance.

Q 21.4Apprentissage de mod`ele de lettres isol´ees.

But : Programmer des Mod`eles de Markov pour les caract`eres isol´es.

On choisira des MMCs de topologie Gauche-Droite, i.e. il existe un ´etat initial, un ´etat final, les transitions autoris´ees sont d’un ´etat vers lui-mˆeme et d’un ´etat vers le suivant. Le nombre d’´etats (#NE) est `a fixer de fa¸con heuristique, de 3 `a 10.

L’apprentissage du syst`eme consiste `a apprendre ind´ependamment le mod`ele de chaque caract`ere. Le mod`ele d’un caract`ere est appris `a partir d’un ensemble de trac´es d’apprentissage du caract`ere, les

#NA (5 par exemple) premiers trac´es.

L’apprentissage sera r´ealis´e grˆace `a un algorithme de type Viterbi, qui est une approximation de l’algorithme standard (Baum-Welch) des MMCs. Pour apprendre le mod`ele MMC d’une lettre, on utilisera l’algorithme suivant :

• Initialiser le mod`ele MMC

• It´erer (plusieurs passages de la base d’apprentissage) – Pour chaque exemple de la base d’apprentissage

– En utilisant le MMC actuel, segmenter le signal de l’exemple avec le MMC (i.e. assigner chaque trame `a un ´etat du MMC). Utiliser l’algorithme de Viterbi. M´emoriser les observations associ´ees

`

a chaque ´etat (i.e. ´emises dans l’´etat) ainsi que les transitions entre ´etats et l’´etat initial.

– R´e-estimer les param`etres de chaque ´etat du MMC, ce qui donne un nouvel MMC.

– On recalcule les probabilit´es de transition par des comptages. La probabilit´e de transition d’un

´

etat e vers un ´etat s est recalcul´ee par le rapport entre le nombre de transitions observ´ees de l’´etat e vers l’´etat s et le nombre de stationnements dans l’´etat e (i.e. le nombre de transitions

`

a partir de e).

– On r´e-estime la probabilit´e d’´emission d’un symbole dans un ´etat par le rapport entre le nombre de fois o`u le symbole est ´emis par l’´etat et le nombre total de symboles ´emis par l’´etat.

• Jusqu’`a crit`ere d’arrˆet (stabilisation de la vraisemblance, #it´erations maximum atteint, etc)

L’initialisation est une phase essentielle de l’apprentissage de tels mod`eles. Une bonne fa¸con de faire consiste `a faire une premi`ere passe en segmentant lin´eairement les trac´es, et `a estimer les param`etres du mod`ele `a partir de ces segmentations.

NB : L’initialisation d’un MMC Gauche Droite est g´en´eralement r´ealis´ee par un alignement lin´eaire des s´equences d’apprentissage sur les ´etats du MMC.

Q 21.5Programmation de mod`ele de lettres isol´ees.

Evaluer le comportement de votre syst`eme de reconnaissance de lettres isol´ees en testant d’une part sur les signaux appris (#A premiers exemples par lettre), d’autre part sur les signaux non appris (autres exemples par lettre).

Evaluez l’importance du nombre d’´etats, et du nombre de niveaux de discr´etisation sur le taux de reconnaissance. Utilisez une proc´edure de cross-validation pour obtenir des r´esultats plus fiables. Vous pouvez ´egalement relacher la structure gauche-droite des mod`eles en autorisant des sauts entre deux

´

etats non cons´ecutifs dans un mod`ele.

(15)

5 Mod` eles de Markov Cach´ es - apprentissage

Exercice 22 – Mise en jambe

Q 22.1Formalisation de l’apprentissage d’un MMC.

G´en´eralement on apprend un MMC `a partir d’une base de donn´ees d’apprentissage non ´etiquet´ee, c’est-`a-dire constitu´ee d’un ensemble de s´equences d’observations, mais sans les s´equences d’´etats associ´ees. On commence par se placer dans ce cadre.

Q 22.1.1 On suppose que l’on dispose d’une base d’apprentissage d’une seule s´equenceBA={O1}.

Quelle propri´et´e satisfait le mod`ele λqui maximise la vraisemblance des donn´ees d’apprentissage ?

Q 22.1.2 On suppose que l’on dispose d’une base d’apprentissage deN s´equencesBA={O1, O2, ..., ON}.

Quelle propri´et´e satisfait le mod`ele λqui maximise la vraisemblance des donn´ees d’apprentissage ? Q 22.1.3 On consid`ere maintenant le cas d’une base de donn´ees d’apprentissage ´etiquet´ee, c’est-

`

a-dire constitu´ee d’un ensemble de couples (s´equence d’observations, s´equence d’´etats). On suppose que l’on dispose d’une base d’apprentissage ´etiquet´ee deNs´equencesBA={(O1, Q1),(O2, Q2), ...,(ON, QN)}.

Quelle propri´et´e satisfait le mod`ele λqui maximise la vraisemblance des donn´ees d’apprentissage ? Q 22.2Difficult´e de l’apprentissage d’un MMC.

On consid`ere le cas d’une base de donn´ees d’apprentissage non ´etiquet´ee. On vous fournit la s´equence d’observations O = (1,2,1,1,3,2) produite par un mod`ele Markovien, mais on ne vous dit pas par quel type de mod`ele (nombre d’´etats etc) cette s´equence a ´et´e produite, ni la s´equence d’´etats corre- spondante.

Q 22.2.1 Quel mod`ele Markovien maximise la vraisemblance de la s´equence O (nombre d’´etats, lois de probabilit´e de transitions et d’´emission) ? Quel est son pouvoir de g´en´eralisation ?

Q 22.2.2 En supposant que la s´equence a ´et´e g´en´er´ee par un mod`ele MMC `a 1 ´etat, quels sont les param`etres de ce mod`ele ?

Q 22.2.3 On suppose que cette s´equence a ´et´e g´en´er´ee par un MMC `a deux ´etats. Proposez des param`etres pour ce mod`ele. Pouvez-vous prouver que votre mod`ele est localement optimal ? Vous commencerez par d´efinir ce que signifie localement optimal.

Q 22.3Apprentissage en pr´esence de donn´ees ´etiquet´ees.

On change de cadre maintenant et on suppose que l’on vous fournit comme corpus d’apprentissage des donn´ees ´etiquet´ees, c’est-`a-dire un ensemble de couples (s´equence d’observations, s´equence d’´etats).

On consid`ere une base d’apprentissage constitu´ee d’une s´equence BA = {(O = (1,2,1,1,3,2), Q = (1,1,1,2,2,2))}et on vous demande le MMC qui maximise la vraisemblance de cette base d’appren- tissage.

Q 22.3.1 Quel est le nombre d’´etats du MMC ?

Q 22.3.2 Quels sont les param`etres du mod`ele optimal ? Pouvez-vous d´emontrer son optimalit´e ? On g´en´eralise maintenant en consid´erant une base d’apprentissage ´etiquet´eeBA={(O1, Q1), . . . ,(ON, QN)}.

Q 22.3.3 Comment trouve-t-on le nombre d’´etats du mod`ele optimal ?

Q 22.3.4 Comment d´etermine-t-on les param`etres de ce mod`ele optimal ? D´ecrire l’algorithme pour r´ealiser cela (sans l’´ecrire en octave).

(16)

Exercice 23 – Apprentissage de mod`eles de Markov

Q 23.1Par alignement lin´eaire pour les mod`eles gauche-droite.

On consid`ere un mod`ele Markovien de structure Gauche-Droite (c’est-`a-dire dont le seul ´etat initial est le premier, le seul ´etat final est le dernier, et de matrice de probabilit´es de transitions diagonale sup´erieure.

Une strat´egie simple pour apprendre un tel mod`ele `a partir d’une base non ´etiquet´ee consiste `a aligner lin´eairement les s´equences d’observations sur le mod`ele gauche droite, c’est-`a-dire que chaque ´etat produit le mˆeme nombre d’observations dans une s´equence donn´ee. Et de supposer que ces s´equences d’´etats sont les vraies s´equences d’´etats.

Q 23.1.1 Que donne cette strat´egie pour un mod`ele `a 2 ´etats appris sur la base BA = {O = (1,1,1,2), Q= (1,1,1,1,2)}? Le mod`ele obtenu est-il optimal ?

Q 23.1.2Ecrire un code octave qui impl´emente cette strat´egie d’apprentissage.

Q 23.2Apprentissage par Baum-Welch simplifi´e.

On consid`ere une version simplifi´ee de l’algorithme classique dit de Baum-Welch qui est utilis´e pour maximiser la vraisemblance d’un corpus d’apprentissage non ´etiquet´e. Cet algorithme simplifi´e consiste

`

a it´erer la r´e-estimation des param`etres du mod`ele `a l’aide d’un algorithme de type EM (mˆeme famille de mod`eles queK-Moyennes). `A une it´eration donn´ee, on dispose d’une estimation des param`etres du mod`ele, et on en cherche de nouveaux, meilleurs. Pour cela, on utilise deux ´etapes :

– on estime les variables cach´ees, cad la s´equence d’´etats qui a produit chacune des s´equences d’ap- prentissage par d´ecodage (algorithme de Viterbi r´ealis´e avec les anciens param`etres) ;

– on maximise la vraisemblance avec les donn´ees compl`etes (s´equences d’observations et s´equences d’´etats). Cela donne une nouvelle estimation des param`etres du mod`ele.

On vous demande d’´ecrire le code octave n´ecessaire `a la mise en œuvre de cet algorithme pour un mod`ele Gauche-Droite. Pour cela vous pouvez partir de la fonction de haut niveau suivante.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% X = base de s´equences (une par ligne)

% K = nb ´etats

% V = Nb symboles

% MMC GD Discret

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function M=ApprendMMCGD(X, K, V) M=InitMMCGD(X,V,K);

N=size(X)(1); % Nb s´equences app Ite=1;

IteMax=10;

while (Ite<IteMax)

Stats=InitZerosMMC(V, K);

PI=Stats{1};

A=Stats{2};

B=Stats{3};

for i=1:N

StatsTemp=CompteMMC(M, X(i,:),K);

PI = PI + StatsTemp{1};

A = A + StatsTemp{2};

B = B + StatsTemp{3};

(17)

end;

%lissage

M= reestimeMMCGD(A,B,PI);

Pmoy= CalculeProbaBaseMMCGD(M,X);

Ite+=1;

end;

end;

Identifiez le rˆole des diff´erentes fonctions et les ´ecrire.

Q 23.3Astuces num´eriques.

L’impl´ementation de MMC pose souvent des probl`emes num´eriques. C’est notamment le cas pour le calcul des quantit´es alpha n´ecessaires pour calculer la vraisemblance d’une s´equence par un mod`ele donn´e.

Q 23.3.1 Rappelez les formules de r´ecurrences sur les quantit´esαt(i) =p(xt1, qt=i)

Q 23.3.2 Imaginez le type de probl`eme que l’on peut rencontrer en calculant ces quantit´es et pourquoi ?

Q 23.3.3 Imaginez des solutions pour rem´edier `a ce probl`eme.

Q 23.4Apprentissage par Baum-Welch.

La simplification dans l’algorithme de l’exercice 6 vient du fait qu’`a chaque it´eration, on estime les variables cach´ees, cad la s´equence d’´etats qui a produit chacune des s´equences d’apprentissage, puis on suppose que ces s´equences d’´etats sont les vraies s´equences. En r´ealit´e l’algorithme de Baum Welch it`ere le calcul d’une distribution sur les variables cach´ees, puis se sert de cette distribution pour d´eterminer les nouveaux param`etres.

Q 23.4.1 En supposant que vous disposez d’une distribution sur les variables cach´ees sous la forme de probabilit´es suivantes : γt(i) =p(qt=i|oT1, λ) etγt(i, j) =p(qt=i, qt+1 =j|oT1, λ), d´eterminez les param`etres du nouveau mod`ele.

Un algorithme tout `a fait semblable `a celui permettant de calculer lesα (mais qui part det=T pour remonter `at= 1) permet de calculer des probabilit´es du type βt(i) =P(xTt+1|qt=si, λ).

Q 23.4.2 Montrez queγ peut s’exprimer en fonction de quantit´esα etβ.

Q 23.4.3 En d´eduire un algorithme pour calculer lesγ.

Références

Documents relatifs

Quelles sont les caract´eristiques observ´ees sur le march´e pour les produits spot et forward que le mod`ele 2 facteurs permet de reproduire?. Quels effets ne permet-il pas

On suppose que l’on observe seulement le nombre de particules dans le r´ecipient A au cours du temps, et que l’on d´esire estimer le nombre total de particules. Et construire

Pour les sommes de type II, on doit faire la diff´erence entre la somme des carr´es relative aux erreurs dans le mod`ele avec les seuls effets de F 2 et la mˆeme somme dans le

A chaque alignement, est associ´ e un score (simple ici) suivant: pour chaque position on associe 0 si les 2 bases sont identiques, +1 si les deux bases sont diff´ erentes et +3 s’il

Cette sonde est constitu´ee d’un cˆ able coaxial analogue au pr´ec´edent et d’une tˆete de sonde comprenant une r´esistance R s de 9 MΩ en parall`ele avec un condensateur C

On g´ en´ erera ce mod` ele en utilisant comme regresseurs (x ij ) des r´ ealisations ind´ ependantes de va- riables uniformes sur [−1, 1] qui seront fix´ ees une bonne fois pour

On rappelle qu’un plan d’exp´ eriences est dit E-optimal lorsqu’il minimise la plus grande valeur propre de la matrice de variance-covariance de l’estimateur du maximum

centr´ ees de variance σ 2 0 (mais ce ne sont pas n´ ecessairement