• Aucun résultat trouvé

Génération de séquences d’observations à partir du graphe de HMM

3.3 Adaptation de l’apprentissage des HMM aux contraintes des modèles DEVS

3.3.3 Génération de séquences d’observations à partir du graphe de HMM

La simulation du graphe de HMM repose sur l’application d’un algorithme de génération de séquence d’observations sur chaque HMM qui compose le graphe. L’algorithme de génération de séquences standards des HMM est initialement conçu pour générer des séquences d’observations en se basant exclusivement sur l’alphabet de symbole V ainsi que sur la matrice de probabilité d’émission de symbole B. En effet, cet algorithme est en réalité une procédure itérative gérée par

des tirages aléatoires. Il peut être utilisé pour la génération de séquences de HMM de type 0, c’est à dire dont le HMM provient d’un modèle sans entrée. Il est vrai que dans ce cas, l’algorithme de génération de séquences standards des HMM suffit.

Algorithme 23 Algorithme de génération de séquences d’observations pour un HMM représentant un modèle sans entrée

PROCÉDURE: Générateur standard ENTRÉES: λ = (π, A, B)

Tirage d’un état initial Si suivant les probabilités π Scourant← Si devient l’état courant

Tirage d’un symbole vk∈ V suivant les probabilités bi,k seq← vkajout du symbole tiré à la séquence d’observations Tantque Scourant6= Sf inal faire

Tirage d’un état futur Sj suivant les probabilités ai j

Scourant ← Sjdevient l’état courant

Tirage d’un symbole vk suivant les probabilités bi j

seq← seq ∪ {vk} ajout du symbole tiré à la séquence d’observations Fin Tantque

Sorties: seq

La création du graphe de HMM génère l’apparition de connexions entre les HMM qui le com-pose. Pour l’algorithme23, les séquences peuvent être générées sans problème car il ne dépend pas d’informations extérieures. Lors de la simulation d’un modèle DEVS, les modèles à entrées multiples reçoivent des événements de la part de modèles émetteurs. Certains modèles à entrées multiples restent dans un état "infini" tant qu’aucun événement ne vient les perturber. Ces parti-cularités liées au formalisme DEVS doivent être prises en compte lors de la simulation du graphe de HMM. Dans notre cas, les événements correspondent aux séquences de durées {di}. Lorsqu’un symbole ∞ est émis par un état du HMM, celui-ci reste en attente d’un événement à l’image d’un modèle atomique DEVS. Si un événement apparaît, il est traité et le HMM sort de son état "infini". Au contraire si un événement apparaît alors qu’aucun symbole ∞ n’a été émis, celui-ci est ignoré. La prise en compte de ces informations a nécessité la modification de l’algorithme de génération de séquences. Contrairement au générateur de séquences d’un HMM conventionnel, celui-ci est piloté par la présence du symbole ∞ et l’apparition d’événements. L’algorithme24présente les modifications apportées au générateur de séquences d’observations pour tendre vers un modèle DEVS classique.

Le déroulement de la simulation du graphe de HMM s’effectue en suivant la structure du graphe. Prenons l’exemple de la figure 3.8, pour que le modèle 2 soit simulé il est nécessaire de connaître les entrées auxquelles il est soumis. Ces entrées sont elles-mêmes générées par les HMM 0 et 1. La simulation du HMM 2 aura forcement lieu après la simulation des HMM 0 et 1. Cette relation de dépendance nécessite le respect d’une certaine logique lors de l’exécution des algorithmes de génération de séquences dans le graphe de HMM. Pour cela, il est nécessaire de restructurer le graphe de HMM de façon à garantir le respect de l’ordre des générations de séquences. Le non respect de cet ordre provoquerait à coup sûr des erreurs lors de la génération de séquences, ce qui fausserait totalement la pondération du graphe de modèle. La restructuration du graphe consiste à disposer les sommets en couche, ce qui garantit que tout HMM d’une couche est exécutable à condition que tous les HMM de la couche précédente ont été simulés. Cette restructuration garantit le bon déroulement de la simulation du graphe de modèle.

Algorithme 24 Algorithme de génération de séquences d’observations pour un HMM représentant un modèle avec entrée

PROCÉDURE: Générateur adapté aux modèles avec entrées

ENTRÉES: λ = (π, A, B), D dates d’arrivées des événements externes, tmaxtemps d’arrêt I= 0 est l’index de la date courante contenue dans D

Tirage d’un état initial Si suivant les probabilités π Scourant← Si devient l’état courant

Tirage d’un symbole vk∈ V suivant les probabilités bi,k seq← vkajout du symbole tiré à la séquence d’observations tlast= 0 temps durant lequel le HMM est en attente

Tantque t < tmaxfaire t= 0

Tirage d’un état futur Sj suivant les probabilités ai j

Scourant ← Sjdevient l’état courant Si Scourant= Sf inal Alors

Tirage d’un nouvel état initial Sj suivant les probabilités π Scourant← Sjdevient l’état courant

Finsi

Tirage d’un symbole vk suivant les probabilités bi j

Si vk6= ∞ Alors

seq← seq ∪ {t − tlast+ vk} ajout du symbole {vk+ le temps passé en attente } à seq tlast← t t← t + vk Tantque DI≤ t faire I← I + 1 Fin Tantque Sinon t← DI I← I + 1 Finsi Fin Tantque Sorties: seq

HMM. Celui-ci commence en ré-indexant tous les sommets ne possédant pas d’arcs entrants. Ces sommets forment la première couche de la nouvelle structure du graphe. Ensuite, pour chaque arc sortant de la première couche, on étudie le sommet auquel il est rattaché. Si ce sommet est uniquement dépendant d’un sommet d’une des couches précédentes alors il est ré-indexé et attri-bué à la couche suivante. Au contraire, si ce sommet possède des arcs entrants provenant d’autres sommets, il n’est pas modifié tant que les sommets dont il dépend ne l’ont pas été. Ce processus est réitéré tant que tous les sommets du graphe n’ont pas été ré-indexés.

Algorithme 25 Algorithme de ré-indexation des sommets du graphe en couche pour la génération de séquence des HMM

PROCÉDURE: Ré-indexation en couche ENTRÉES: G(V, E)

Gcopie= G copie du graphe Id= 0 indice de réindexation Pour chaque v dans V faire

Si v ne possède pas d’arc entrant Alors l’indice du sommet v dans Vcopiedevient Id verrouillage du sommet v dans V

Id= Id + 1 Finsi

Fin pour

Tantque des sommets v sont disponibles faire Pour chaque v dans V non verrouillé faire

Si v possède des arcs entrants Alors

recherche des sommets {vi} ∈ V aux extrémités des arcs entrants Si tous les {vi} ∈ V sont verrouillés Alors

l’indice du sommet v dans Vcopiedevient Id verrouillage du sommet v dans V

Id= Id + 1 Finsi Finsi Fin pour Fin Tantque G= Gcopie Sorties: G

3.4 Validation des approches d’apprentissage de la dynamique des

Documents relatifs