You are on page 1of 33

Studio e applicazioni dell'Algoritmo di Viterbi

Federico Soave
I.T.I.S. G. Marconi

Verona, 29 giugno 2010

Andrew Viterbi

ingegnere, scienziato, imprenditore e lantropo

I
I
I
I
I
I
I
I
I
I

nasce a Bergamo nel 1935


emigra negli USA nel 1939
Boston Latin School
MIT (BS, MS)
USC (Ph.D.)
Jet Propulsion Lab
professore presso UCLA
Linkabit Corp.
Qualcomm Inc.
Viterbi Foundation

Catene di Markov

Propriet di Markov (condizione di assenza di memoria)

P (s | s 1, s 2, . . . , s0) = P (s | s 1)
i

Spazio campionario degli stati

Catene di Markov

Matrice delle probabilit di transizione

= {ai ,j } =

a1,1

a1,2

a1,3

a2,1

a2,2

a2,3

a3,1

a3,2

a3,3

..
.

a ,1

..
.

a ,2

..
.

Vincoli stocastici
I ai ,j 0, i , j
I

j = ai ,j = 1, i

P||

..

a ,3

i j = P (st = j | st

a,

...

N
a ,N
a ,N

a1,
2

..
.

NN

, N = ||

a ,

= i ), i , j

Catene di Markov

Esistono catene di ordine


P (s

j | sj , sj
1

m:

, . . . , s0 ) = P (sj | sj 1 , sj 2 , . . . , sj m )

Catene di Markov

un esempio

Passeggiata casuale di un punto sulla retta


innito, ma numerabile (Z):
= {. . . , 2, 1, 0, +1, +2, . . .}

Distribuzione delle probabilit (spostamenti):


-1

+1

1 3

1 3

1 3

Matrice delle transizioni (innita):

1/3

=
0
0

1/3
1/3

1/3
1/3
1/3

0
0

/
/

1 3

1 3

1/3

Catene di Markov

un esempio

simulazione di una passeggiata casuale di 1000 passi

Modelli di Markov nascosti

Sono catene di Markov, ma


Spazio campionario degli eventi

Matrice delle probabilit di emissione

= {bi ,j } =

b1,1

b1,2

b1,3

b2,1

b2,2

b2,3

b3,1

b3,2

b3,3

..
.

b ,1
N

..
.

b ,2

b ,3

..

...

M
b ,M
b ,M

b1,

..
.

NM

b ,

= || , M = ||

j k = P (ot = k | st

b,

..
.

= j ), j , k

Modelli di Markov nascosti

rappresentazione di un Modello di Markov nascosto

Modelli di Markov nascosti

un esempio: Il mondo dell'Ombrello

Modelli di Markov nascosti

un esempio: Il mondo dell'Ombrello

Spazio degli stati


= {pioggia, pioggia}

Spazio degli eventi


= {ombrello , ombrello }

Modello sensoriale
ombrello
pioggia

pioggia

0.9
0.2

ombrello

0.1
0.8

1
1

Modelli di Markov nascosti

un esempio: Il mondo dell'Ombrello

Modello di transizione
pioggia
pioggia

pioggia

0.7
0.3

pioggia

0.3
0.7

Distribuzione di probabilit all'istante zero


s0
pioggia

pioggia

P (s0 )

0.2
0.8

1
1

Modelli di Markov nascosti

un esempio: Il mondo dell'Ombrello

diagramma a traliccio del mondo dell'Ombrello


Consideriamo una sequenza di apparizioni dell'ombrello
(true, true, false, true, true)

Modelli di Markov nascosti

problemi di interesse

1. Evaluation
2. Decoding
3. Learning
Problema di Decoding: data una sequenza di eventi O , dare la
sequenza di stati S ? che ha generato O con maggiore probabilit
Esistono

sequenze possibili

Algoritmo di Viterbi

storia

I
I
I
I

scritto nel 1966, pubblicato nel 1967


ha scopi didattici
Jim Massey: scoperta che ottimo
Jerry Heller: scoperta che ha utilit pratica

Algoritmo di Viterbi

base matematica

Dati:
I un modello di Markov nascosto M = (, B , )
I una sequenza di eventi osservati O = o0 , o1 , o2 , o3 , . . . , oT 1
I una sequenza di stati nascosti S = s0 , s1 , s2 , s3 , . . . , sT 1
P (O

| S ) = P (s0 ) P (o0 | s0 ) P (s1 | s0 ) P (o1 | s1 ) P (s2 |


| s2 ) . . . P (sT 1 | sT 2 ) P (oT 1 | sT 1 ) =

s1 ) P (o2

QT 1

t = [P (ot | st ) P (st | st
Q
= s0 bs0 ,o0 T
t = (bst ,ot ast1 ,st )

= P (s0 ) P (o0 | s0 )

1
1

)] =

Algoritmo di Viterbi

base matematica

La sequenza pi probabile di stati avr quindi probabilit


Q
max [s0 bs0 ,o0 Tt =11 (bst ,ot ast 1 ,st )]

s0 ...sT 1

Algoritmo di Viterbi

base matematica

Introduciamo t (i )
t (i ) = max

s0 ...st1 P (o

, o1 , o2 , . . . , ot | s0 , s1 , s2 , . . . , st 1 , st = i )

si pu denire ricorsivamente:
(
bi ,ot max
[a (j )]
j j ,i t 1
t (i ) =
bi ,ot i

1t<T

t=0

Algoritmo di Viterbi

base matematica

P (S ?

| O ) = max[T 1 (i )]

Ricorsione = Programmazione Dinamica

Algoritmo di Viterbi

complessit computazionale

O (N 2 T )

Si devono
(calcolare tutti i valori di
bi ,ot max
[a (j )]
j j ,i t 1
t (i ) =
bi ,ot i
i, j, t

1t<T

t=0

Algoritmo di Viterbi

esempio di calcolo

Algoritmo di Viterbi

esempio di calcolo - istante 0

Algoritmo di Viterbi

esempio di calcolo - istante 1

Algoritmo di Viterbi

esempio di calcolo - istante 2

Algoritmo di Viterbi

esempio di calcolo - istante 3

Algoritmo di Viterbi

esempio di calcolo - istante 4

Algoritmo di Viterbi

esempio di calcolo - back 4

Algoritmo di Viterbi

esempio di calcolo - back 3

Algoritmo di Viterbi

esempio di calcolo - back 2

Algoritmo di Viterbi

esempio di calcolo - back 1

Algoritmo di Viterbi

esempio di calcolo - back 0

Algoritmo di Viterbi

esempio di calcolo - risultato

Algoritmo di Viterbi

un problema di calcolo

I valori di probabilit si avvicinano allo zero: underow.


Si lavora sui logaritmi:
log P (O | S ) = log[s0 bs0 ,o0
log s0 + log bs0 ,o0 +
log t (i ) =

PT 1

t=

QT 1

t=

(bst ,ot ast 1 ,st )] =

(log bst ,ot + log ast 1 ,st )

log bi ,ot + max[log aj ,i + log t 1 (j )] 1 t < T

i ,ot + log i

log b

=0