Digital Data Processing – Traitement Numérique des Données 1 © Y. Bennani
Digital Data Processing
Traitement Numérique des Données
Younès BENNANI Full Professor
Master of Science in Informatics
Specialities
Data Mining, Analytics, and Knowledge Discovery (EID
2) Programming Tools and Safety (PLS)
Digital Data Processing – Traitement Numérique des Données 2 © Y. Bennani
4 • Traitement de données structurées en séquences
• Alignement Temporel Dynamique Dynamic Time Warping : DTW
• Modèles de Markov Cachés
Hidden Markov Models (HMM)
Digital Data Processing – Traitement Numérique des Données 3 © Y. Bennani
Problématique
0.23 1.21 1.20 1.23 0.10 0.12 2.49 1.19 1.34 0.58 1.22 2.30 4.65 5.82 4.91 3.16 2.25 4.01 0.82 2.28 1.01 0.09 1.22 0.23 0.14 1.11 0.02 1.32 0.11 0.47 0.63 0.86 0.70 0.51 0.34 0.13 0.87 0.56 0.53 0.29 0.38 0.38 0.31 0.09 1.52 1.35 1.49 3.81 2.33 1.34 1.45 3.70 3.08 5.01 3.27 3.40 2.23 2.56 2.15 0.90
……….
0.37 1.78 0.40 0.45 1.32 0.40 0.13 0.11 0.78 2.36 0.31 1.28 1.40 0.00 0.18 0.71 0.04 0.91 0.79 0.22 0.69 1.00 1.08 1.48 2.44 3.39 3.09 4.08 5.48 3.61 0.47 1.68 2.35 1.04 0.63 0.87 0.80 0.63 0.35 0.10 1.42 2.14 0.57 1.21 1.64 0.20 0.07 0.64 0.41 0.12 0.93 0.29 1.12 0.60 0.28 2.17 0.18 0.09 1.33 1.00
……….
0.40 0.68 0.27 1.39 1.03 0.32 1.23 0.50 0.11 0.87 1.27 4.41 3.51 4.88 4.66 5.71 2.72 0.95 1.94 0.47 0.47 1.21 1.12 0.57 1.12 0.12 0.10 0.20 3.10 0.34 1.18 0.43 0.30 0.07 0.99 0.75 1.11 1.35 1.63 0.10 0.81 1.59 0.69 1.16 4.22 4.98 4.52 2.54 5.60 4.66 0.25 0.66 0.75 0.19 0.31 0.21 1.19 0.55 1.43 0.29 0.07 0.62 0.14 1.33 1.87 1.48 0.02 0.58 0.93 0.40
3.64 0.14 0.07 0.32 1.09 0.03 0.19 0.50 1.22 0.42 1.27 0.62 0.34 0.58
2.23 0.65 0.15 1.23 0.29 1.62 0.19 1.04 0.43 1.82 1.14 0.23 0.15 0.13 2.27 2.39 4.00 6.14 5.36 4.08 3.81 3.89 2.46 1.78 1.43 0.70 1.08 1.90 1.00 0.31 0.37 1.30
0.18 0.28 0.61 1.23 0.19 2.05 0.14 1.53 1.17 0.84 0.40 0.25 0.78 0.12 0.35 0.44 0.31 0.45 0.23 0.27 0.30 0.42 0.25 0.61 1.39 0.60 1.71 4.01 2.96 5.81
6.56 5.69 5.46 2.72 1.27 2.12 1.79 0.20 1.19 0.25 1.40 0.04 0.56 0.26 2.06 0.63 0.19 0.74 0.15 0.68 0.60 0.00 0.28 0.61 0.40 1.96 1.26 0.72 2.01 0.95 1.45 2.71 3.04 3.21 4.26 5.01 6.24 .28 0.97 1.01 2.34 1.89 0.54 0.05 2.05 2.38 3.66 3.09 5.12 4.14 3.70 3.89 3.86 4.91 2.70 2.18 1.17 0.10 0.36 0.19 0.92 0.83 1.15 0.29 0.17 0.86 0.78 0.91 0.12 1.52 1.52 0.16 0.41 0.48 0.37 0.80 1.30 1.09 0.44 1.15 0.17 2.10 3.77 2.40 5.16 5.13 3.66 2.42 2.83 1.02 1.26 0.88 0.10 0.55 0.38 0.96 1.10 0.94 0.87 1.37 0.16 3.17 0.26 0.13 0.08 1.26 1.58 1.33 0.24 0.77 0.95 0.43 0.05 0.76 0.44 0.70 1.08
0.50 1.23 0.09 0.31 2.22 0.02 2.24 0.07 1.98 2.27 4.94 3.97 3.85 3.19 5.06 3.03 3.24 1.09 3.17 0.58 2.36 1.26 1.03 1.61 1.29 0.32 0.40 0.05 1.01 1.18 0.52 1.41 3.49 1.74 0.37 0.25 0.63 0.20
Caractéristiques (dim fixe) Caractéristiques (dim variable)
O bs erva ti ons O bs erva ti ons
Problématique
Digital Data Processing – Traitement Numérique des Données 5 © Y. Bennani
Principe général :
« Dans une séquence optimale de décisions, quelle que soit la première décision prise, les décisions subséquentes forment une sous-séquence optimale, compte tenu des résultats de la première décision »
Bellman (1957), Dynamic Programming Princeton University Press.
Programmation Dynamique
But :
Chercher la ressemblance entre deux chaînes par le calcul d une distance.
A B
M Chemin optimal
Chemin optimal Chemin optimal
Digital Data Processing – Traitement Numérique des Données 6 © Y. Bennani
Programmation Dynamique exemple
Objectif :
Construire une route entre deux villes V
1et V
12, minimisant le coût de construction.
V
1V
2V
3V
4V
9V
10V
11V
5V
7V
8V
6V
12C(x
i,x
j)=C(V
1,V
4)=6 0
5
7
8
12 4
9 8
5
7
4 6
3 4 8 0
4 6
5 2
7
Digital Data Processing – Traitement Numérique des Données 7 © Y. Bennani
Programmation Dynamique exemple
Problème :
Chercher les villes intermédiaires V
i, V
j, V
k, qui minimisent le coût de construction C(V
1, V
12).
C V (
1, V
1 2) = C V (
1, V
i) + C V (
i, V
j) + C V (
j, V
k) + C V (
k, V
1 2)
V
i∈ E
1= { V
2,V
3,V
4} V
j∈ E
2= { V
5,V
6,V
7,V
8} V
k∈ E
3= { V
9,V
1 0,V
1 1}
C V (
1,V
j) = min
Vi∈E1[ C V (
1, V
i) + C V (
i, V
j) ] ∀ V
j∈E
2C V (
1, V
k) = min
Vj∈E2
C V (
1,V
j) + C V (
j, V
k)
[ ] ∀ V
k∈E
3C V (
1, V
1 2) =
Vmin
k∈E3
C V (
1, V
k) + C V (
k, V
1 2)
[ ]
Programmation Dynamique exemple
C V (
1,V
5) = min
C V (
1,V
2) + C V (
2,V
5) = 0 + 7 = 7 C V (
1,V
3) + C V (
3,V
5) = / ∃ C V (
1,V
4) + C V (
4,V
5) = / ∃
"
#
$
$
%
&
' '
= 7
C V (
1,V
6) = min
C V (
1,V
2) + C V (
2,V
6) = 0 + 8= 8
C V (
1,V
3) + C V (
3,V
6) = 5 + 4 = 9 C V (
1,V
4) + C V (
4,V
6) = / ∃
"
#
$
$
%
&
' ' = 8
C V (
1,V
7) = min
C V (
1,V
2) + C V (
2,V
7) = 0 + 12 = 12 C V (
1, V
3) + C V (
3, V
7) = 5 + 8 =13 C V (
1, V
4) + C V (
4,V
7) = 6 + 5 = 11
"
#
$
$
%
&
' '
=11
C V (
1,V
8) = min
C V (
1,V
2) + C V (
2,V
8) = / ∃
C V (
1,V
3) + C V (
3,V
8) = 5 + 9= 14 C V (
1,V
4) + C V (
4,V
8) = 6 + 7= 13
"
#
$
$
%
&
' '
= 13
C V (
1,V
9) = min
C V (
1,V
5) + C V (
5, V
9) = 7 + 4 = 11
C V (
1, V
6) + C V (
6, V
9) = 8 + 6 = 14 C V (
1, V
7) + C V (
7, V
9) = 11 + 4 = 15
C V (
1, V
8) + C V (
8, V
9) = / ∃
"
#
$
$
$
%
&
' ' '
= 11
C V (
1,V
1 0) = min
C V (
1,V
5) + C V (
5,V
1 0) = / ∃ C V (
1,V
6) + C V (
6,V
1 0) = 8 + 3 = 11 C V (
1, V
7) + C V (
7, V
1 0) = 11+ 8 =19 C V (
1, V
8) + C V (
8, V
1 0) = 13 + 4 = 17
"
#
$
$
$
%
&
' ' '
= 11
C V (
1,V
1 1) = min
C V (
1,V
5) + C V (
5,V
1 1) = / ∃ C V (
1,V
6) + C V (
6,V
1 1) = / ∃
C V (
1, V
7) + C V (
7, V
1 1) =11 + 0 = 11 C V (
1,V
8) + C V (
8, V
1 1) = 13 + 6 = 19
"
#
$
$
$
%
&
' ' '
= 11
C V (
1, V
1 2) = min
C V (
1, V
9) + C V (
9, V
1 2) =11 + 5 = 16 C V (
1,V
1 0) + C V (
1 0,V
1 2) = 11 + 3 = 14 C V (
1,V
1 1) + C V (
1 1,V
1 2) = 11+ 7 = 18
!
"
#
#
$
%
&
& = 14 ⇒ ( V
1, V
2,V
6,V
1 0,V
1 2)
Digital Data Processing – Traitement Numérique des Données 9 © Y. Bennani
Distance entre séquences
La distance entre séquences peut être calculée par minimisation de distances locales entre les éléments des séquences : optimisation de la ressemblance.
Déterminer la ressemblance entre une forme candidate et plusieurs formes de référence (prototypes), de longueur non nécessairement égales.
Exemple en biologie :
Séquences de nucléotides : Séquence 1 = ACGTCGTTC Séquence 2 = AGGCCTCGC
4 correspondances Séquence 1 = ACG - - TCGTTC
Séquence 2 = AGGCCTCG - -C
6 correspondances
Digital Data Processing – Traitement Numérique des Données 10 © Y. Bennani
Distance d édition
la comparaison peut se faire en terme de transformations permettant de passer d'une séquence à l'autre.
La distance d édition D entre X et Y, est le coût minimum d une suite de transformations élémentaires permettant de passer de X à Y.
On considère 3 transformations élémentaires : - Insertion d un élément x
i- Suppression d un élément y
i- Substitution d un élément x
ipar y
jλ est le caractère vide
L algorithme de Wagner et Fisher calcule la distance d édition avec une complexité
O(n.m) par programmation dynamique.
Digital Data Processing – Traitement Numérique des Données 11 © Y. Bennani
Principe
Il existe 3 manières de progresser dans les 2 séquences pour aboutir à (x
r, y
k) :
• Venir de (x
r-1, y
k-1) et faire SUB(x
r, y
k)
• Venir de (x
r, y
k-1) et faire CRE(λ, y
k)
• Venir de (x
r-1, y
k) et faire DES(x
r, λ) On choisit le chemin qui minimise la distance D(r,k) entre les 2 sous- séquences X(r) et Y(k) selon la formule suivante :
X (n ) = { } x i i=1K n Y (m) = { } y i i=1K m
x
r-1x
rx
r+1y
r+1y
ky
k-1Algorithme
Début
n ← length(x), m ← length(y) D(0,0) ← 0
pour i de 0 à n faire D(i,0) ← i finpour
pour j de 0 à m faire D(0,j) ← j finpour
pour i de 1 à n faire
pour j de 1 à m faire
CRE d
1← D(i-1, j) + 1 DES d
2← D(i, j-1) + 1 SUB d
3← D(i-1, j-1) + 1 - δ (x
i,y
j)
D(i, j) ← min(d
1, d
2, d
3) finpour
finpour
D(n,m) = distance entre les 2 séquences Fin
δ (xi,yj):
Fonction de Kronecker δ =1 si xi=yj
δ =0 sinon
Distance d édition
Digital Data Processing – Traitement Numérique des Données 13 © Y. Bennani
Exemple
d e t s u a h x e
e x c u s e d
Suppression d un symbole de X
Insertion d un symbole de Y dans X
Remplacer un symbole de X par un de Y Pas de changement
Y = e x h a u s t e d X = e x c u s e d
D(X,Y)=3
X Y
Digital Data Processing – Traitement Numérique des Données 14 © Y. Bennani
Alignement Temporel Dynamique
Dynamic Time Warping : DTW
Etant donné un signal d entrée T, l objectif de la DTW est de trouver l indice du mot le plus semblable parmi l ensemble des mots d un Dictionnaire
€
n ˆ
€
D = { R
1, R
2, ..., R
N}
€
n = ˆ argmin
1≤n≤N
D R (
n,T )
Digital Data Processing – Traitement Numérique des Données 15 © Y. Bennani
Alignement Temporel Dynamique
Dynamic Time Warping : DTW
€
R( p , n) =
r
1nr
2nL L r
pnM M M M M M M M M M r
12r
22L L r
p2r
11r
21L L r
p1"
#
$
$
$ $
$ $
%
&
' ' ' ' ' '
€
T( p, m) =
t
11t
12L L t
1mt
21t
22L L M
M M M M M M M M M M t
p1L L L t
pm"
#
$
$ $
$
$ $
%
&
' ' ' ' ' ' DTW se propose d'établir entre 2 matrices R et T (mots) le rapprochement qui maximise les meilleures mises en correspondance.
référence
test
Chemin de recalage
r(n) r( j (k))
r(1) t(1) t (2) t(i(k )) t (m)
R
(p,n)T(p,m) r(j(k)) coïncide avec t(i(k))
DTW permet de réaliser (de façon optimale) un alignement temporel non linéaire de façon récursive.
Alignement Temporel Dynamique
Dynamic Time Warping : DTW
Chemins de recalage :
l’ajustement non-linéaire entre R et T peut être représenté par un chemin C :
€
C = c 1 , c 2 , ..., c K c k = ( i (k ) , j (k ) )
Cette séquence met en coïncidence le i(k)
èmevecteur de la forme R et le j(k)
èmevecteur de la forme T.
Elle est appelée la « warping function » ou le chemin de recalage.
Chemin de recalage
r( n) r( j(k))
r(1) t (1) t(2) t(i(k )) t( m)
R
(p,n)T(p,m) r(j(k)) coïncide avec t(i(k))
le nombre de coïncidences effectuées par le chemin de recalage.
Digital Data Processing – Traitement Numérique des Données 17 © Y. Bennani
Alignement Temporel Dynamique
Dynamic Time Warping : DTW
€
D(C) =
d c ( )
i.w
i i=1K
∑
w
ii=1 K
∑
La somme pondérée des erreurs le long du chemin de recalage C est :
Le problème à résoudre devient :
Coefficient de pondération
€
D(R
n,T) = min
C
d c ( )
i.w
i i=1K
∑
w
ii=1 K
∑
#
$
%
%
%
%
&
' ( ( ( (
Ce qui revient à chercher parmi tous les chemins possibles, le chemin qui minimise la dissemblance entre R et T.
Digital Data Processing – Traitement Numérique des Données 18 © Y. Bennani
Restrictions sur les possibilités d évolution du chemin de recalage : Pour correspondre à une réalité physique, le chemin de recalage doit respecter certaines conditions de continuité :
La monotonie :
croissante respectant l évolution dans le temps :
La régularité :
un chemin ne peut aboutir au point (i,j) qu en passant obligatoirement par les points (i-1,j) ou (i-1,j-1) ou (i,j-1)
Conditions aux limites :
mettre en correspondance les éléments terminaux :
Alignement Temporel Dynamique
Dynamic Time Warping : DTW
€
i(k − 1) ≤ i(k) j(k − 1) ≤ j(k)
€
i(1) = 1 i(K) = n j(1) = 1 j(K ) = m
(xi-1 , yj-1) (xi , yj-1) (xi-1 , yj)
(xi , yj)
W=2 W=1
W=1
Digital Data Processing – Traitement Numérique des Données 19 © Y. Bennani
Alignement Temporel Dynamique
Dynamic Time Warping : DTW
Dans ce cas, le problème à résoudre devient :
€
D(R,T) = 1 n + m min
C
d c ( )
i.w
i i=1K
∑
Coefficient de pondération :
et donc :
La distance :
€
w
k= i
(k)− i
(k−1)+ j
(k)− j
(k−1)€
w
kk=1 K
∑ = n + m
€
D(C) = 1
n + m d c ( )
i.w
i i=1K
∑
Ce problème peut être résolu efficacement par programmation dynamique.
Cette technique est basée sur le principe de l optimalité (Bellman).
Pour chaque point de l espace, évaluer la meilleure manière d entrer dans cet état en respectant les contraintes et en minimisant la contribution à la distance globale.
Alignement Temporel Dynamique
Dynamic Time Warping : DTW
Il suffit donc d étudier les transitions autorisées et d appliquer la relation récursive locale :
€
D(1,1) = d(r
(1),t
(1))
D(i, j) = min
D(i − 1, j) + d(r
(i),t
(j)) D(i −1, j − 1) + 2d(r
(i),t
(j))
D(i, j −1) + d(r
(i),t
(j))
#
$ %
&
% D(R,T) = 1
n + m D(n,m)
Digital Data Processing – Traitement Numérique des Données 21 © Y. Bennani
Algorithme
Début
Initialisation
D
cum(1, 1) ← d(1, 1) x 2 pour j de 2 à m faire
D
cum(1, j) ← ∞ finpour
Programmation Dynamique
pour i de 2 à n faire
pour j de 1 à m faire
finpour finpour
Calcul du taux de dissemblance
Fin.
D
cum(i, j) = min
D
cum(i − 1, j) + d (i, j) D
cum(i − 1, j − 1) + 2.d (i, j)
D
cum(i, j − 1) + d (i, j)
"
#
$
% $
D(X, Y ) = D
cum(n, m) n + m
Digital Data Processing – Traitement Numérique des Données 22 © Y. Bennani
DTW : exemple
T = 1 4 9
!
"
# #
$
%
&
&
2 7 6
!
"
# #
$
%
&
&
1 22
3
!
"
# #
$
%
&
&
9 7 2
!
"
# #
$
%
&
&
3 5 4
!
"
# #
$
%
&
&
' ( ) )
* + , , R =
2 4 9
!
"
# #
$
%
&
&
2 7 6
!
"
# #
$
%
&
&
4 20
3
!
"
# #
$
%
&
&
2 22
3
!
"
# #
$
%
&
&
8 7 2
!
"
# #
$
%
&
&
4 4 4
!
"
# #
$
%
&
&
' ( ) )
* + , ,
6 5 4 3 2 1
1 2 3 4 5
Distance de Hamming
6 ∞ 55 58 25 19
5 ∞ 48 36 15 24
4 ∞ 38 13 36 55
3 ∞ 20 12 31 48
2 ∞ 2 21 32 37
1 2 8 33 50 57
1 2 3 4 5
D(T , R) = 19
6 + 5 = 1.7
R
T
Chemin de recalage
Digital Data Processing – Traitement Numérique des Données 23 © Y. Bennani
Classificateur à base de DTW
A A
A B B
B C
C
B A C
Prototypes Classe C
Prototypes Classe B
Prototypes Classe A
Test
Méthodes stochastiques
B A C
Modèle Classe C
Modèle Classe B
Modèle Classe A
Test
Digital Data Processing – Traitement Numérique des Données 25 © Y. Bennani
Méthodes Stochastiques
Modèles de Markov Cachés Hidden Markov Models (HMMs)
• Dynamic Time Warping (DTW) comparent un échantillon à une référence en utilisant une distance.
• Méthodes Stochastiques comparent un échantillon avec un modèle, prenant en compte plus de variabilité.
• La distance est remplacée par des probabilités calculées par apprentissage.
• Les HMMs introduits par BAUM dans les années 60.
• Ils sont utilisés pour modéliser des séquences d observations.
• Ils sont utilisés à partir des années 70 en reconnaissance de la parole où ils se sont imposés comme le modèle de référence.
• Appliqués ensuite à la reconnaissance de caractères manuscrits, au traitement d’images, à la bioinformatique, ...
Digital Data Processing – Traitement Numérique des Données 26 © Y. Bennani
Méthodes Stochastiques
Hidden Markov Models (HMMs) Exemple
pile:1 ƒace:1
S
1S
20.3 0.4
0.7
0.6
O = pppffpppfffppfffffpp
V = { p , f }
S = S
1S
1S
1S
2S
2S
1S
1S
1S
2S
2S
2S
1S
1S
2S
2S
2S
2S
2S
1S
1Digital Data Processing – Traitement Numérique des Données 27 © Y. Bennani
Méthodes Stochastiques
Hidden Markov Models (HMMs) Exemple
O = pppffpppfffppfffffpp
V = { p , f }
€
S = KKKKKKKK
?
p : 0.75 ƒ : 0.25
p : 0.2 ƒ : 0.8
S
1S
20.3 0.4
0.7
0.6
Méthodes Stochastiques
Hidden Markov Models (HMMs)
Exemple
Digital Data Processing – Traitement Numérique des Données 29 © Y. Bennani
Méthodes Stochastiques
Hidden Markov Models (HMMs) Exemple
a : 1 a : 0.2
b : 0.8
b : 0.75 c : 0.25
a : 0.6 b : 0.1 c : 0.3
c : 1
S
1S
2S
3S
4S
50.5 0.3
0.7
1
0.25
0.25
1
1
V = { a , b , c }
s
1a s
1a s
2a
s
3b s
4b s
4b
s
5c s
5c s
5c
s
5c s
5c s
5c
s
5c s
5c s
5c
s
2b s
2b s
2b
≈1.6 10
-3≈1.9 10
-4≈3.2 10
-5Digital Data Processing – Traitement Numérique des Données 30 © Y. Bennani
Méthodes Stochastiques
Hidden Markov Models (HMMs) Notations
λ = ( A, B, Π )
V = { } v
i i=1M
un alphabet de M symboles O = { } o
t t=1T
un ensemble d' observations où o
t∈V S = { } s
i i=1N
un ensemble de N états Π = { } π
i i=1N
un vecteur de distribution d' états initiaux
A = { } a
ij iN,j=1matrice carrée des transitions
où a
ijest la probabilité de passer de l' état s
ià l' état s
ja
ij≥ 0 et a
ij= 1
j=1 N
∑
B = { b
j( k) }
i,j=1N
matrice des probabilités de production du symbole v
kalors que λ se trouve à l' état s
jb
j( k) ≥ 0 et b
j(k) = 1
k=1 M
∑
Digital Data Processing – Traitement Numérique des Données 31 © Y. Bennani
Méthodes Stochastiques
Hidden Markov Models (HMMs) Les 3 problèmes classiques des HMMs
1. Évaluation :
Soit un HMM λ et une séquence de symbole O = o 1 , o 2 , …, o T donnés.
Quelle est la probabilité de générer O avec λ ?
2. Décodage :
Quelle est la séquence d états Q = q 1 , q 2 , …, q T de λ qui a la probabilité maximale de générer O ?
3. Apprentissage :
Comment ajuster les paramètres de λ de manière à maximiser la probabilité de générer O ?
Méthodes Stochastiques
Hidden Markov Models (HMMs) Problème 1 : Évaluation
Soit un HMM λ et une séquence de symbole O = o 1 , o 2 , …, o T donnés.
Calculer
P(O / λ )
- Méthode directe :
consiste à énumérer toutes les séquences d états possibles de longueur T.
- Algorithme de Forward-Backward : l observation peut se faire en 2 temps :
- émission du début O
(1:t)en aboutissant à l état q i au temps t
- émission de la fin O
(t+1:T)sachant que l on
part de q i
Digital Data Processing – Traitement Numérique des Données 33 © Y. Bennani
Méthodes Stochastiques
Hidden Markov Models (HMMs) Évaluation : Méthode directe
P(O / λ )
La probabilité de la séquence d observation O = o 1 , o 2 , …, o T étant donné le modèle λ, est égale à la somme sur tous les chemins d’états possibles Q des probabilités conjointes de O et de Q :
P(O / λ) = P (O, Q / λ) = P(O / Q, λ) P(Q / λ)
∑ Q
∑ Q
Digital Data Processing – Traitement Numérique des Données 34 © Y. Bennani
Méthodes Stochastiques
Hidden Markov Models (HMMs) Évaluation : Méthode directe
P(O / λ )
P(O / Q, λ ) = b q
1(o 1 ) b q
2(o 2 ) ... b q
T(o T ) P(Q / λ ) = π q
1a q
1q
2a q
2q
3... a q
T−1q
TP(O / λ) = π q
1b q
1(o 1 ) a q
1q
2b q
2( o 2 ) ... a q
T−1q
Tb q
T(o T )
∑ Q
Or et
⇒ 2T multiplications par séquence d états possible Dans le pire des cas : N
Tséquences d états possibles
⇒ O(T N
T) opérations.
Ex. : N=5 et T=100 ⇒ ≈ 10
72opérations
Digital Data Processing – Traitement Numérique des Données 35 © Y. Bennani
Méthodes Stochastiques
Hidden Markov Models (HMMs)
Évaluation : Forward-Backward
P(O / λ )
L’observation peut se faire en 2 temps :
- émission du début O
(1:t)en aboutissant à l état q i au temps t - émission de la fin O
(t+1:T)sachant que l’on part de q i
P(O / λ ) = α (t , q i ) β ( t, q i )
q i
∑
Probabilité d émettre le début O(1:t) en aboutissant à l état qi au temps t
Probabilité d émettre la fin O(t+1:T) sachant que l on part de qi Le calcul de a se fait avec t croissant
tandis que celui de b se fait avec t décroissant d où Forward-Backward
Méthodes Stochastiques
Hidden Markov Models (HMMs) Procédure Forward
P(O / λ) = α (t, q
i)β (t, q
i)
qi
∑ = α
t(i)β
t(i)
qi
∑
α t (i ) = P(o 1 o 2 K o t , q t = s i / λ )
à t = 1 on a :
α 1 (i ) = π i b i (o 1 ) 1 ≤ i ≤ N
€
pour 1 ≤ t ≤ T − 1, 1 ≤ i ≤ N
α t +1 ( j) = α t (i)a ij
i=1 N
& ∑
' ( )
* + b j (o t +1 )
P(O / λ ) = α T (i )
i=1 N
∑
Initialisation :
Induction :
Terminaison :
⇒ O(T N2) opérations.
Ex. : N=5 et T=100 ⇒ ≈ 3000 opérations
Digital Data Processing – Traitement Numérique des Données 37 © Y. Bennani
Méthodes Stochastiques
Hidden Markov Models (HMMs) Procédure Backward
P(O / λ) = α (t, q
i)β (t, q
i)
qi
∑ = α
t(i)β
t(i)
qi
∑
β t (i) = P(o t+1 o t+2 K o T , q t = s i / λ )
à t = T on a :
β T (i ) = 1 1 ≤ i ≤ N
€
pour T −1 ≥ t ≥ 1, 1 ≤ i ≤ N
β t (i) = a ij
j=1 N
∑ b j (o t +1 ) β t +1 ( j)
P(O / λ ) = π i b i (o 1 ) β 1 (i)
i =1 N
∑
Initialisation :
Induction :
Terminaison :
⇒ O(T N2) opérations.
Ex. : N=5 et T=100
⇒ ≈ 3000 opérations
Digital Data Processing – Traitement Numérique des Données 38 © Y. Bennani
Méthodes Stochastiques
Hidden Markov Models (HMMs) Procédure Backward
€
P(O /λ) = α
t(i)β
t(i)
qi
∑
€
P(O / λ ) = α T (i)
i=1 N
∑ = π i b i ( ) o 1 β 1 (i)
i=1 N
∑
Calcul de la probabilité d observation :
Obtenue en prenant les valeurs de α et β à un instant t quelconque :
Cependant, on utilise le plus souvent les valeurs obtenues pour deux cas
particuliers (t=1) ou (t=T) :
Digital Data Processing – Traitement Numérique des Données 39 © Y. Bennani
Hidden Markov Models (HMMs) Procédure Forward-Backward
Exemple
€
A =
0.3 0.5 0.2 0 0.3 0.7
0 0 1
"
#
$ $
$
%
&
' ' '
€
B =
1 0
0.5 0.5
0 1
"
#
$ $
$
%
&
' ' '
€
π = 0.6 0.4 0
#
$
% %
%
&
' ( ( (
1 3 2
0.2
0.7 1
0.3
0.5 0.3
€
V = { a,b }
€
α
1(1) = π
1b
1(a) = 0.6 ×1= 0.6 α
1(2) = π
2b
2(a) = 0.4 × 0.5 = 0.2 α
1(3) = π
3b
3(a) = 0 × 0 = 0
€
α
2(1) = [ α
1(1) × a
11+ α
1(2)× a
21+ α
1(3) × a
31] b
1(a)
= [ 0.6 × 0.3+ 0.2 ×0 + 0 × 0 ] ×1 = 0.18 α
2(2) = [ α
1(1) × a
12+ α
1(2) × a
22+ α
1(3) × a
32] b
2(a)
= [ 0.6 × 0.5 + 0.2 × 0.3+ 0 × 0 ] × 0.5 = 0.18
α
2(3) = [ α
1(1) × a
13+ α
1(2) × a
23+ α
1(3) × a
33] b
3(a)
= [ 0.6 × 0.2 + 0.2 × 0.7 + 0 ×1 ] × 0 = 0
α
3(1) = [ α
2(1) × a
11+ α
2(2) × a
21+ α
2(3) × a
31] b
1(b)
= [ 0.18 × 0.3 + 0.18 × 0 + 0 × 0 ] × 0 = 0 α
3(2) = [ α
2(1) × a
12+ α
2(2) × a
22+ α
2(3) × a
32] b
2(b)
= [ 0.18 × 0.5 + 0.18 × 0.3 + 0 × 0 ] × 0.5 = 0.072 α
3(3) = [ α
2(1) × a
13+ α
2(2) × a
23+ α
2(3) × a
33] b
3(b)
= [ 0.18 × 0.2 + 0.18 × 0.7 + 0 × 1 ] ×1 = 0,162
α
4(1) = [ α
3(1) × a
11+ α
3(2) × a
21+ α
3(3) × a
31] b
1(b)
= [ 0 × 0.3 + 0.072 × 0 + 0,162 × 0 ] × 0 = 0 α
4(2) = [ α
3(1) × a
12+ α
3(2) × a
22+ α
3(3) × a
32] b
2(b)
= [ 0 × 0.5 + 0.072 × 0.3+ 0,162 × 0 ] × 0.5 = 0.0108 α
4(3) = [ α
3(1) × a
13+ α
3(2) × a
23+ α
3(3) × a
33] b
3(b)
= [ 0 × 0.2 + 0.072 × 0.7 + 0,162 × 1 ] ×1 = 0,2124
Hidden Markov Models (HMMs) Procédure Forward-Backward
Exemple
Digital Data Processing – Traitement Numérique des Données 41 © Y. Bennani
Calcul de α pour la suite d observations : a a b b
a a b b S
2S
3S
10 0 0.162 0.212
0.2 0.072 0.108
0.6 0.18 0 0
+
α
1(i) α
2(i) α
3(i) α
4(i)
0.18
€ a12
€ a13
€ a23
€ a11
€ a33
€ a22
€ π1
€ π2
€ π3
€ b1(a)
€
b2(a)
€
b3(a)
€ b1(b)
€ b2(b)
€ b3(b)
t états
Hidden Markov Models (HMMs) Procédure Forward-Backward
Exemple
P(O/λ)= αT(i)
i=1 N
∑
€
P(aabb /λ) = 0.32
Digital Data Processing – Traitement Numérique des Données 42 © Y. Bennani
Méthodes Stochastiques
Hidden Markov Models (HMMs) Problème 2 : Décodage
Soit un HMM λ et une séquence de symbole O = o 1 , o 2 , …, o T donnés.
Quelle est la séquence d états Q = q 1 , q 2 , …, q T de λ qui a la
probabilité maximale de générer O ?
€
P(Q /O, λ ) = P(Q, O / λ )
Pour cela, on utilise l ’algorithme de Viterbi.
Digital Data Processing – Traitement Numérique des Données 43 © Y. Bennani
Méthodes Stochastiques
Hidden Markov Models (HMMs) Algorithme de Viterbi
€
Soit δ t (i) la probabilité du meilleur che min amenant à l'état s i à t en é tan t guidé par les t premières observations
δ t (i) = max
q
1q
2K q
t−1P(q 1 K q t = s i ,o 1 o 2 K o t / λ )
Méthodes Stochastiques
Hidden Markov Models (HMMs)
à t = 1 on a :
δ 1 (i) = π i b i (o 1 ) 1 ≤ i ≤ N ψ 1 (i ) = 0
pour 2 ≤ t ≤ T, 1 ≤ i ≤ N , 1 ≤ j ≤ N δ t ( j ) = max
i ( δ t −1 (i )a ij ) b j (o t )
ψ t ( j ) = arg max
i ( δ t −1 (i )a ij )
P * = max
i ( δ T (i ) )
q T * = arg max
i
δ T (i)
( )
Initialisation :
Récursion :
Terminaison :
Algorithme de Viterbi
Rétro-propagation:
pour T − 1 ≥ t ≥ 1 q t * = ψ t +1 (q t * +1 )
Digital Data Processing – Traitement Numérique des Données 45 © Y. Bennani
Hidden Markov Models (HMMs) Procédure Forward-Backward
Exemple
€
A =
0.3 0.5 0.2 0 0.3 0.7
0 0 1
"
#
$ $
$
%
&
' ' '
€
B =
1 0
0.5 0.5
0 1
"
#
$ $
$
%
&
' ' '
€
π = 0.6 0.4 0
#
$
% %
%
&
' ( ( (
1 3 2
0.2
0.7 1
0.3
0.5 0.3
€
V = { a,b }
Digital Data Processing – Traitement Numérique des Données 46 © Y. Bennani
Hidden Markov Models (HMMs)
Algorithme de Viterbi Exemple
Calcul de δ pour la suite d observations : a a b b
a a b b S
2S
3S
10 0
0.2
0.6
Max δ
1(i) δ
2(i) δ
3(i) δ
4(i)
€
δ
1(1) = π
1b
1(a) = 0.6 ×1 = 0.6 ψ
1(1) = 0 δ
1(2) = π
2b
2(a) = 0.4 × 0.5 = 0.2 ψ
1(2) = 0 δ
1(3) = π
3b
3(a) = 0 × 0 = 0 ψ
1(3) = 0
€ a12
€ a13
€ a23
€ a11
€ a33
€ a22
€ π1
€ π2
€ π3
€ b1(a)
€
b2(a)
€
b3(a)
€ b1(b)
€
b2(b)
€
b3(b)
t
états
Digital Data Processing – Traitement Numérique des Données 47 © Y. Bennani
Hidden Markov Models (HMMs)
Algorithme de Viterbi Exemple
a a b b S
2S
3S
10 0
0.2
0.6 0.18 0
Max δ
1(i) δ
2(i) δ
3(i) δ
4(i)
0.15
€ a12
€ a13
€ a23
€ a11
€ a33
€ a22
€ π1
€ π2
€ π3
€ b1(a)
€
b2(a)
€
b3(a)
€ b1(b)
€
b2(b)
€
b3(b)
t états
€
δ
2(1) = max [ ( δ
1(i) × a
i1) × b
1(a) ]
1≤i≤N
= max δ
1(1) × a
11δ
1(2) × a
21δ
1(3) × a
31%
&
' ( '
)
* '
+ ' × b
1(a) = 0.18 ψ
2(1) = 1 δ
2(2) = max
δ
1(1) × a
12δ
1(2) × a
22δ
1(3) × a
32%
&
' ( '
)
* '
+ ' × b
2(a) = 0.15 ψ
2(2) =1 δ
2(3) = max
δ
1(1) × a
13δ
1(2) × a
23δ
1(3) × a
33%
&
' ( '
)
* '
+ ' × b
3(a) = 0 ψ
2(3) = 2
Calcul de δ pour la suite d observations : a a b b
Digital Data Processing – Traitement Numérique des Données 48 © Y. Bennani
Hidden Markov Models (HMMs)
Algorithme de Viterbi Exemple
a a b b S
2S
3S
10 0 0.105 0.105
0.2 0.045 0.0067
0.6 0.18 0 0
Max δ
1(i) δ
2(i) δ
3(i) δ
4(i)
0.15 0.105
€ a12
€ a13
€ a23
€ a11
€ a33
€ a22
€ π1
€ π2
€ π3
€ b1(a)
€
b2(a)
€
b3(a)
€ b1(b)
€
b2(b)
€
b3(b)
t états
Le meilleur chemin est : 1 2 3 3
ψ1(1)=0 ψ2(1)=1 ψ3(1)=1 ψ4(1)=1 ψ1(2)=0 ψ2(2)=1 ψ3(2)=1 ψ4(2)=2 ψ1(3)=0 ψ2(3)=2 ψ3(3)=2 ψ4(3)=3
€
q
4*= argmax δ
4(1) δ
4(2) δ
4(3)
#
$
%
%
%
&
' ( ( (
= 3
q
3*=ψ
4(3) = 3 q
2*=ψ
3(3) = 2 q
1*=ψ
2(2) =1
€
P
*= max
i
( δ
T(i) )
€
pour T − 1≥ t ≥ 1 q
t*
= ψ
t+1(q
t+1*
)
€ q
T*
= argmax
i
δ
T(i)
( )
Calcul de δ pour la suite d observations : a a b b
Digital Data Processing – Traitement Numérique des Données 49 © Y. Bennani
Méthodes Stochastiques
Hidden Markov Models (HMMs) Problème 3 : Apprentissage
Soit un HMM λ et une séquence de symbole O = o 1 , o 2 , …, o T donnés.
Comment ajuster les paramètres de λ (probabilités de transition et d’émission) de manière à maximiser la Probabilité de générer O ?
V = { p , f }
p : ? ƒ : ?
p : ? ƒ : ?
S
1S
2?
?
?
?
Digital Data Processing – Traitement Numérique des Données 50 © Y. Bennani
Méthodes Stochastiques
Hidden Markov Models (HMMs) Algorithme de Baum-Welch
Cas particulier de l’algorithme EM (Expectation-Maximization)
Convergence vers un optimum local, Algorithme de réestimation itératif Principe :
1. Choisir un paramétrage initial λ o
2. Réestimer les valeurs de ces paramètres à l’aide du paramétrage actuel
3. Si la vraisemblance des données a été améliorée alors retourner en 2.
Digital Data Processing – Traitement Numérique des Données 51 © Y. Bennani
Méthodes Stochastiques
Hidden Markov Models (HMMs) Algorithme de Baum-Welch (1)
ξ t (i, j) = P( q t = s i , q t +1 = s j / O, λ )
= P(q t = s i , q t +1 = s j , O / λ ) P(O / λ )
= α t (i )a ij b j (o t +1 ) β t +1 ( j) P(O / λ )
La probabilité de passer de l’état s i à l’état s j entre t et t+1 étant donné l’observation O et le modèle λ :
ξ
t(i , j )
t=1 T−1
∑ = esperance du nombre de transitions de s
ià s
jMéthodes Stochastiques
Hidden Markov Models (HMMs) Algorithme de Baum-Welch (2)
γ t (i) = P( q t = s i / O, λ )
= α t (i ) β t (i ) P(O / λ )
= ξ t (i, j)
j =1 N
∑
La probabilité d’être à l’état s i à l’instant t, étant donné l’observation O et le modèle λ :
γ
t( i)
t=1 T−1