Algorithme forward-backward

De testwiki
Aller à la navigation Aller à la recherche

Modèle:Sources

Image d'un réseau de neurones de type perceptron multi-couches, mettant en avant le calcul de la valeur du neurone (i3,o4)

En informatique, l'algorithme forward-backward, ou algorithme progressif-rétrogressif, est un algorithme pour calculer la probabilité d'une séquence observée dans le contexte des modèles de Markov cachés.

L'algorithme commence par effectuer un calcul progressif des probabilités, un calcul « en avant », qui donne la probabilité d'obtenir les k premières observations dans une séquence donnée, en terminant dans chaque état possible du modèle de Markov.

Il effectue également ensuite un calcul rétrogressif des probabilités, qui représente la probabilité d'obtenir les autres observations ultérieures à un état initial. Ces deux ensembles de probabilités peuvent être combinés pour obtenir à tout instant la probabilité de l’état caché, sachant la séquence totale des événements observés. L'algorithme forward-backward peut donc être utilisé afin de trouver les états les plus probables pour un modèle de Markov à n'importe quel instant.

Présentation

L'algorithme se déroule en trois étapes :

  1. Calcul progressif des probabilités ;
  2. Calcul rétrogressif des probabilités ;
  3. Calcul des « probabilités lissées ».

Les étapes progressives et rétrogressives sont souvent appelées « passage de message en avant » et « passage de message en arrière ». Cela vient de la façon dont l'algorithme traite les séquences observées. D'abord, l'algorithme avance en commençant à la première observation de la séquence pour aller jusqu'à la dernière, et ensuite repart en arrière jusqu'à la première. À chaque observation, une probabilité est calculée, et sera utilisée pour le prochain calcul de probabilité de l'observation suivante. Pendant le passage de retour, l'algorithme effectue également l'étape de « lissage ». Cette étape permet à l'algorithme de tenir compte de toutes les observations effectuées au préalable afin d'obtenir des résultats plus précis.

Calcul progressif des probabilités

La description suivante utilise comme matrices de base des matrices de probabilités plutôt que des matrices de distribution de probabilité. On transforme la distribution de probabilité d'un modèle de Markov caché en une notation matricielle comme suit : Les probabilités de transition 𝐏(XtXt1) d'une variable aléatoire donnée Xt qui représente tous les états possibles d'un modèle de Markov caché seront représentés par la matrice 𝐓, où l'indice de lignes, i, représentera l'état de départ; et où l'indice de colonne, j, représente l'état d'arrivée. Ainsi, 𝐓i,j=𝐏(Xt=jXt1=i) L'exemple ci-dessous représente un système ou la probabilité de rester dans l'état 1 si on y est déjà est de 70 % et la probabilité de transition de l'état 1 vers l'état 2 est de 30 %. La probabilité de passer de l'état 2 à l'état 1 est de 60 %, et celle de rester dans l'état 2 est de 40 %. La matrice de transition s'écrit donc :

𝐓=(0.70.30.60.4)

Dans un modèle de Markov typique, on multiplierait un vecteur d'état πt par cette matrice pour obtenir les probabilités πt+1 pour l'état suivant.

πt+1=πt𝐓 .

Dans les modèles de Markov cachés, l'état est inconnu et l'on observe uniquement les événements associés avec les états possibles. Une matrice d'événements est de la forme :

𝐁=(0.90.10.20.8)

et décrit les probabilités d'observer des événements étant donné un état particulier. Chaque élément bi,j représente la probabilité d’observer l’événement j dans l’état i. Dans l'exemple ci-dessus, l'événement 1 sera observé 90 % du temps pendant lequel on se situe dans l'état 1, alors que l'événement 2 a une probabilité de 10 % de se produire dans cet état. Par contre, l'événement 1 sera observé seulement 20 % du temps si l'on est dans l'état 2 et l'événement 2 a 80 % de chances de se produire. Étant donné un vecteur d'état (π), la probabilité d'observer un événement j est donnée par :

𝐏(O=j)=iπibi,j

Cela peut être représenté sous forme matricielle en multipliant le vecteur d'état (π) par une matrice d'observation (𝐎𝟏) qui contient seulement des éléments sur sa diagonale. Chaque entrée représente la probabilité de l'événement observé étant donné chaque état. Si l'on continue l'exemple précédent, une observation de l'événement 1 serait donné par:

𝐎𝟏=(0.90.00.00.2)

Cela nous permet de calculer les probabilités associées à la transition vers un nouvel état et en observant un nouvel événement donné. On définit la suite (𝐟𝟎:𝐭)t{0𝐓} en fonction du vecteur initial d’état π0:

𝐟𝟎:𝟎=π𝟎,

𝐟𝟎:𝟏=π𝟎𝐓𝐎𝟏,

𝐟𝟎:𝐭=𝐟𝟎:𝐭𝟏𝐓𝐎𝐭


Pour chaque valeur de t, le vecteur 𝐟𝟎:𝐭 représente en fonction de π0 la probabilité de transition à chaque état et en observant l'événement donné. C'est-à-dire :

𝐟𝟎:𝐭(i)=𝐏(O1,O2,,Ot,Xt=i)(1)

On appelle probabilités vers l’avant la suite (𝐟𝟎:𝐭)t{0𝐓} .

Notons at la somme des éléments de ce vecteur-ligne :

at=i=1nf0:t(i).

at représente l’intégrale de f0:t sur toutes les valeurs possibles de l’état Xt, c’est-à-dire la probabilité totale pour l'observation des événements donnés indépendamment de l'état final. (la vraisemblance de l'observation) :

at=𝐏(O1,O2,,Ot).(2)

Le coefficient at nous permet de normaliser le vecteur de probabilité de telle sorte que la somme de ses entrées soit égale à 1. On pose :

𝐟^𝟎:𝐭=at1𝐟𝟎:𝐭

On peut interpréter le vecteur 𝐟^𝟎:𝐭 comme suit :

𝐟^𝟎:𝐭(i)=𝐟𝟎:𝐭(i)at=𝐏(O1,O2,,Ot,Xt=i)𝐏(O1,O2,,Ot)=𝐏(Xt=i|O1,O2,,Ot)

Nous constatons donc que le vecteur de probabilité normalisé par le facteur d'échelle at nous donne la probabilité d'être dans chacun des états à l'instant t, sachant les observations précédentes.


En pratique, on calcule at par récurrence en normalisant à chaque étape le vecteur de probabilité de telle sorte que sa somme des entrées soit à 1, en appliquant la formule de récurrence :

𝐟^𝟎:𝐭=ct1 𝐟^𝟎:𝐭𝟏𝐓𝐎𝐭

ct représente un facteur d'échelle. Il est clair que s=1tcs=at.

Calcul rétrogressif des probabilités

Le calcul progressif nous a permis de connaître la probabilité d’observer les t premières observations et du t-ième état en fonction de la distribution de probabilité de l’état initial. En prolongeant ce calcul jusqu’à la fin, on peut calculer la probabilité d’observer toutes les observations et de l’état final. On peut tenter un calcul similaire, en arrière : Cherchons à déterminer :

𝐛𝐭:𝐓(i)=𝐏(Ot+1,Ot+2,,OT|Xt=i)

C'est-à-dire, qu’à partir d’un état Xt donné, nous cherchons à calculer la probabilité de toutes les observations futures. Ce calcul peut s’effectuer de proche en proche, en commençant par t=T, puis en calculant t=T-1, etc. C’est pourquoi on donne à ce calcul le nom de calcul rétrogressif. Le dernier élément 𝐛𝐓:𝐓(i) est un cas dégénéré. il correspond à la probabilité de ne pas effectuer d’observation après le dernier état T. On a donc :

𝐛𝐓:𝐓=[1 1 1 ]T

Nous pouvons définir toute la suite par récurrence :

𝐛𝐭𝟏:𝐓=𝐓𝐎𝐭𝐛𝐭:𝐓

Nous pourrions normaliser ce vecteur, mais ce n’est généralement pas ce que l’on fait. Comme chaque vecteur représente la probabilité de la séquence des événements à venir étant donné un état particulier initial, la normalisation de ce vecteur serait équivalente à l'application du théorème de Bayes pour trouver la vraisemblance de chaque état initial en fonction des événements futurs.

Calcul des «probabilités lissées»

Intéressons-nous au produit 𝐟𝟎:𝐭(i)𝐛𝐭:𝐓(i) :

𝐟𝟎:𝐭(i)𝐛𝐭:𝐓(i)=𝐏(O1,O2,,Ot,Xt=i)𝐏(Ot+1,Ot+2,,OT|Xt=i) =𝐏(O1,O2,,Ot,Xt=i)𝐏(Ot+1,Ot+2,,OT|Xt=i,O1,O2,,Ot)

D'après l'indépendance conditionnelle de O1:t et Ot+1:T sachant Xt.

Ainsi,

𝐟𝟎:𝐭(i)𝐛𝐭:𝐓(i)=𝐏(O1,O2,,OT,Xt=i).(3)

Posons γ𝐭(i)=𝐟𝟎:𝐭(i)𝐛𝐭:𝐓(i)aT.

D’après (2) et (3), il vient que :

γ𝐭(i)=𝐏(Xt=i|O1,O2,,OT).

Les valeurs γ𝐭(i) fournissent la probabilité d'être dans l’état i à l’instant t . En tant que telles, elles sont utiles pour déterminer l'état le plus probable à tout moment. Il convient de noter, cependant, que le terme « état le plus probable » est quelque peu ambigu. Alors que l'état le plus probable est le plus susceptible d'être correct à un moment donné, la séquence des états probables individuellement n'est pas susceptible d'être la séquence globalement la plus probable. Cela parce que les probabilités pour chaque point sont calculées indépendamment les unes des autres. Ces calculs ne prennent pas en compte les probabilités de transition entre les états, et il est donc possible d'obtenir deux états à deux moments (t et t +1) qui soient à la fois les plus probables à ces instants mais qui aient une probabilité très faible de se produire successivement, parce que 𝐏(Xt=i,Xt+1=j)𝐏(Xt=i)𝐏(Xt+1=j). On peut déterminer la séquence la plus probable des états qui ont produit une séquence d'observations donnée en utilisant l'algorithme de Viterbi.

En pratique, on ne calcule pas directement les valeurs 𝐛𝐭:𝐓, mais des valeurs normalisées par les coefficients issus du calcul progressif.

On utilise la relation de récurrence :

𝐛^𝐭𝟏:𝐓=ct1𝐓𝐎𝐭𝐛^𝐭:𝐓.

Ce vecteur de probabilité normalisé est lié à la précédente valeur par :

𝐛^𝐭:𝐓(i)=𝐛𝐭:𝐓(i)s=t+1Tcs.

Avec ces valeurs modifiées, on a : γ𝐭(i)=𝐟^𝟎:𝐭(i)𝐛^𝐭:𝐓(i).

Références

Modèle:Traduction/Référence

Articles connexes

Modèle:Portail