l 
Hidden Markov Models (HMM):
l  Catene
l  Goal:
18
di Markov
effettua una sequenza di decisioni
l  Processi
che si realizzano nel tempo, gli stati al tempo t sono
influenzati dallo stato al tempo t-1
l  Applicazioni:
speech recognition, gesture recognition, parts of
speech tagging and DNA sequencing,
l  Qualsiasi
processo temporale senza memoria
ωT = {ω(1), ω(2), ω(3), …, ω(T)} sequenza di stati
Possiamo avere ω6 = {ω1, ω4, ω2, ω2, ω1, ω4}
l  Il
sistema può rivisitare uno stato in passi differenti e non è
necessario che tutti gli stati vengano visitati
10
19
l 
First-order Markov models
l  Le
realizzazioni delle sequenze sono descritte da probabilità
di transizione
P(ωj(t + 1) | ωi (t)) = aij
10
20
10
21
θ = (aij, ωT)
P(ωT | θ) = a14 . a42 . a22 . a21 . a14 . P(ω(1) =
ωi)
Esempio: speech recognition
“produzione del parlato”
Produzione della parola: “pattern” rappresentata da
fonemi
/p/ /a/ /tt/ /er/ /n/ // ( // = silent state - terminale)
Transizioni da /p/ ad /a/, da /a/ a /tt/, da /tt/ a /er/,
da /er/ a /n/ e da /n/ ad uno stato silente
10
•  Hidden Markov Model (HMM)
•  Interazione degli stati visibili con quelli hidden
∑bjk= 1 ∀ j dove bjk=P(Vk(t) | ωj(t)).
•  3 problemi sono associati a questo modello
• Il problema della valutazione
• Il problema della decodifica
• Il problema del learning
Pattern Classification, Chapter 3 (Part 3)
Pattern Classification, Chapter 3 (Part 3)
• Il Problema della valutazione
Rappresenta la probabilità che il modello produca una
sequenza VT di stati visibili. Dato da:
rmax
P ( V T ) = ∑ P ( V T | ω rT )P (ω rT )
r =1
dove ciascun r indicizza una particolare sequenza
ω rT = {ω ( 1 ),ω ( 2 ),...,ω ( T )} di T stati hidden.
(1)
t =T
P ( V T | ω rT ) = ∏ P ( v ( t ) | ω ( t ))
t =1
(2)
T
r
t =T
P( ω ) = ∏ P ( ω ( t ) | ω ( t − 1 ))
t =1
Pattern Classification, Chapter 3 (Part 3)
Usando le equazioni (1) e (2), possiamo scrivere:
T
rma x T
P(V ) = ∑∏ P(v(t ) | ω (t )) P(ω (t ) | ω (t − 1)
r =1 t =1
Interpretazione: La probabilità di osservare una particolare sequenza
di T stati visibili VT è uguale alla somma delle probabilità condizionate
sulle rmax possibili sequenze di stati hidden in cui il sistema ha
compiuto una particolare transizione, moltiplicato per la probabilità
che esso ha emesso il simbolo visibile nella nostra sequenza target
Esempio: Sia ω1, ω2, ω3 stati hidden; v1, v2, v3 stati visibili
e V3 = {v1, v2, v3} la sequenza di stati visibili
P({v1, v2, v3}) = P(ω1).P(v1 | ω1).P(ω2 | ω1).P(v2 | ω2).P(ω3 | ω2).P(v3 | ω3)
+…+ (possibili termini nella somma = tutte le possibili (33= 27)
combinazioni!)
Pattern Classification, Chapter 3 (Part 3)
v1
v2
v3
First possibility:
ω1
(t = 1)
Second Possibility:
ω2
(t = 2)
v1
ω2
(t = 1)
ω3
(t = 3)
v2
v3
ω3
(t = 2)
ω1
(t = 3)
P({v1, v2, v3}) = +…+P(ω2).P(v1 | ω2).P(ω3 | ω2).P(v2 | ω3).P(ω1 | ω3).P(v3 | ω1)
+ …+
Pertanto:
3
P({v1 , v2 , v3}) =
P(v(t ) | ω (t )).P(ω (t ) | ω (t − 1))
∏
possibile sequenza
∑
di stati hidden
t =1
Pattern Classification, Chapter 3 (Part 3)
rma x T
P(V T ) = ∑∏ P(v(t ) | ω (t )) P(ω (t ) | ω (t − 1)
r =1 t =1
Calcolo della P(VT) molto complessa. La possiamo calcolare
ricorsivamente introducendo:
αi(t) probabilità che HMM è nello stato ωi al tempo t avendo generato
i primi t elementi di VT
Pattern Classification, Chapter 3 (Part 3)
c
α 2 (3) = b2 k ∑ α i (2)ai 2
i =1
Pattern Classification, Chapter 3 (Part 3)
Qual’è la probabilità di
Generare
Supponiamo si parte da ω1(0)
Pattern Classification, Chapter 3 (Part 3)
Pattern Classification, Chapter 3 (Part 3)
Se indichiamo con θ=(aij,bjk) il nostro modello di HMM, possiamo usare
Bayes per calcolare la probabilità del modello noto la sequenza
osservata:
T
P
(
V
| θ) P(θ)
P(θ | V T ) =
P(V T )
Nei problemi di Pattern recognition avremo un HMM per ogni classe
E classificare una sequenza di test in base al modello HMM che ha
fornito la massima probabilità
P(VT|θ) lo fornisce l’algoritmo forward
P(θ) probabilità a priori fornito da una sorgente esterna, per esempio, nel
riconoscimento vocale può essere un modello di linguaggio (contesto
semantico/parola precedente)
Pattern Classification, Chapter 3 (Part 3)
• Il problema della decodifica (sequenza di stati
ottimale)
Data una sequenza di stati visibili VT, il problema della
decodifica è quello di trovare la sequenza più probabile di
stati hidden.
Il problema può essere espresso matematicamente come:
trovare la “migliore” sequenza di stati (hidden states)
ωˆ (1),ωˆ (2),..., ωˆ (T ) tale che :
ωˆ (1),ωˆ (2),..., ωˆ (T ) = arg max P[ω (1),ω (2),..., ω (T ), v(1), v(2),..., V (T ) | λ ]
ω (1),ω ( 2 ),...,ω (T )
Si noti che la somma è sparita, poiché vogliamo trovare
Solo l’unico caso migliore!
Pattern Classification, Chapter 3 (Part 3)
dove:
λ = [π,A,B]
π = P(ω(1) = ω) (probabilità dello stato iniziale)
A = aij = P(ω(t+1) = j | ω(t) = i)
B = bjk = P(v(t) = k | ω(t) = j)
Nell’esempio precedente, questo calcolo corrisponde alla
selezione del miglior path tra:
{ω1(t = 1),ω2(t = 2),ω3(t = 3)}, {ω2(t = 1),ω3(t = 2),ω1(t = 3)}
{ω3(t = 1),ω1(t = 2),ω2(t = 3)}, {ω3(t = 1),ω2(t = 2),ω1(t = 3)}
{ω2(t = 1),ω1(t = 2),ω3(t = 3)}
Pattern Classification, Chapter 3 (Part 3)
HMM Decoding
1
2
3
4
5
Inizializza Path←{}, t←0
for t←t+1
j←j+1
for j←j+1
6
7
until j=c
c
α j (t ) ← b jk v(t )∑i =1α i (t − 1)aij
j ʹ′ ← argmax α j (t )
j
8
9
10
11
Append ω ʹ′j a Path
until t=T
return Path
end
Pattern Classification, Chapter 3 (Part 3)
Pattern Classification, Chapter 3 (Part 3)
La transizione da ω3 a ω2 non è permessa
Pattern Classification, Chapter 3 (Part 3)
• Il problema dell’apprendimento/learning (Stima
dei parametri)
Consiste nel determinare un metodo per modificare i
parametri del modello λ = [π,A,B] in modo da soddisfare
un criterio di ottimizzazione. Abbiamo bisogno di cercare
il modello migliore
λˆ = [ πˆ , Â , B̂ ]
Tale da massimizzare la probabilità della sequenza di
osservazione :
Max P ( V T | λ )
λ
Usiamo una procedura iterativa come Baum-Welch o
basata sul Gradiente per trovare l’ottimalità locale
Pattern Classification, Chapter 3 (Part 3)
Introduciamo una nuova variabile:
γij(t) – probabilità di transizione tra ωi(t-1) e ωj(t) dato
che il modello λ ha generato VT con qualunque path
γ ij (t ) =
α i (t − 1)aijb jk β j (t )
P(V T | θ)
Numero atteso di transizioni tra ωi(t-1) e ωj(t) è
Mentre il numero atteso totale da ωi è
T
∑∑ γ
t =1
ik
T
∑γ
ij
(t )
t =1
(t )
k
Pattern Classification, Chapter 3 (Part 3)
Pertanto la stima di aij e bjk sono definite da:
T
aˆij =
∑γ
ij
(t )
t =1
T
∑∑ γ
t =1
ik
(t )
k
T
bˆ jk =
(t )
∑ ∑γ
jl
∑∑ γ
(t )
t =1
v ( t ) = vk
T
t =1
l
jl
l
Pattern Classification, Chapter 3 (Part 3)
Si parte da delle stime approssimate o arbitrarie di aij e bjk e si
raffinano con l’algoritmo Baum-Welch forward-backword
finché converge:
T
(1)
∑γ
aˆij =
ij
t =1
T
ik
(t )
∑ ∑γ
jl
(t )
∑∑ γ
(t )
∑∑ γ
t =1
(2)
1
2
bˆ jk =
(t )
k
T
t =1
v ( t ) = vk
T
t =1
l
jl
l
Pattern Classification, Chapter 3 (Part 3)