Studio e applicazioni dell`Algoritmo di Viterbi

annuncio pubblicitario
Federico Soave
Studio e applicazioni
dell’Algoritmo di Viterbi
i.t.i.s. “G. Marconi”
Verona, Giugno 2010
Indice
1 Andrew Viterbi
1.1 Origini . . . . . . . . . . . . .
1.2 Studi . . . . . . . . . . . . . .
1.3 Impieghi . . . . . . . . . . . .
1.4 Riconoscimenti . . . . . . . .
1.4.1 Premi . . . . . . . . .
1.4.2 Lauree Honoris Causa
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
3
4
4
4
2 Algoritmo di Viterbi
2.1 Storia . . . . . . . . . . . . . . . .
2.2 Concetti . . . . . . . . . . . . . . .
2.2.1 Base matematica . . . . . .
2.2.2 Complessità computazionale
2.2.3 Un problema di calcolo . . .
2.3 Esempio . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
5
5
6
6
7
.
.
.
.
.
.
8
8
8
8
9
10
10
.
.
.
.
.
.
.
.
.
.
.
.
3 Catene di Markov
3.1 Definizione formale . . . . . . . . . . . . . . . .
3.1.1 Catene di ordine m . . . . . . . . . . . .
3.2 Esempio di catena di Markov . . . . . . . . . .
3.3 Modelli di Markov nascosti . . . . . . . . . . .
3.3.1 Problemi sui modelli di Markov nascosti
3.3.2 Esempio di modello di Markov nascosto
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1 Andrew Viterbi
Andrew James Viterbi è scienziato, ingegnere, imprenditore e filantropo. È considerato a
pieno diritto uno dei padri della rivoluzione digitale delle telecomunicazioni. Ha inventato
il famoso Algoritmo di Viterbi, che sta alla base del funzionamento dei telefoni cellulari e
di altre numerose tecnologie di trasmissione delle informazioni.
1.1 Origini
Andrea Viterbi nasce a Bergamo il 9 Marzo del 1935 da una famiglia di origine ebraica.
Il padre, Achille, è cugino della moglie di Primo Levi. Nel 1939 fugge negli Stati Uniti per
via delle leggi razziali ed il suo nome viene naturalizzato in Andrew1 .
1.2 Studi
Si diploma alla “Boston Latin School” nel 1952 e successivamente studia Ingegneria
Elettrotecnica al Massachusetts Institute of Technology (MIT), dove ha la possibilità di
seguire i corsi di importanti professori. I suo interessi si concentrano sulle problematiche
della trasmissione di segnali digitali e su un’innovativa tecnica trasmissiva chiamata “spread
spectrum” 2 , che consiste nell’impiegare una gamma di frequenze più ampia rispetto a quella
strettamente necessaria per l’invio dell’informazione desiderata.
Nel 1962 consegue un Ph.D. presso la University of Southern California (USC), presentando una tesi sui metodi di codifica e decodifica.
1.3 Impieghi
Lavora in un gruppo di lavoro presso il Jet Propulsion Lab e, proprio grazie ai suoi studi,
contribuisce alla progettazione dell’impianto di telemetria del primo satellite artificiale
americano, l’Explorer1.
Nel 1963 viene assunto come professore presso la School of Engineering and Applied
Sciences della University of California, Los Angeles (UCLA), posizione che mantiene fino
al 1973.
Assieme ai colleghi Irwin Jacobs e Leonard Kleinrock3 , nel 1968 fonda la società Linkabit,
che riesce a procurarsi importanti commissioni da agenzie governative militari per le quali
sviluppa apparecchiature per le comunicazioni radio. Alla base delle tecnologie impiegate
da Linkabit negli apparecchi elettronici sta l’Algoritmo di Viterbi.
Nel 1985, sempre insieme a Jacobs, fonda la Qualcomm Inc., gigante dell’industria delle
telecomunicazioni. Viterbi contribuisce allo studio e perfezionamento di una innovativa
tecnica di multiplazione, il CDMA (Code Division Multiple Access), che promette prestazioni nettamente superiori rispetto a quelle delle tecniche tradizionali. Durante la fase di
1
Nei paesi anglofoni Andrea è un nome solamente femminile.
Traduzione di “spettro allargato”.
3
Leonard Kleinrock è un informatico; ha contribuito in maniera importante allo sviluppo di Arpanet,
progenitrice di Internet.
2
3
1 Andrew Viterbi
standardizzazione della seconda generazione di telefonia cellulare, la Qualcomm propone
l’adozione del CDMA come alternativa alle altre tecniche: FDMA (Frequency Division
Multiple Access) e TDMA (Time Division Multiple Access), riuscendoci.
Ritiratosi dall’industria, Viterbi si dedica in particolar modo alla filantropia, attraverso
la Viterbi Family Foundation.
1.4 Riconoscimenti
Il 2 Marzo 2004, a scuola di ingegneria della University of Southern California, dove
Viterbi aveva conseguito il dottorato di ricerca è stata rinominata “Andrew and Erna
Viterbi School of Engineering”. In quell’occasione, Viterbi ha devoluto alla USC la somma
di 52 milioni di dollari.
1.4.1 Premi
• 1975: “Cristoforo Colombo”, del Consiglio Nazionale delle Ricerche (CNR)
• 1984: “Alexander Graham Bell”, dell’IEEE
• 1990: “Marconi International Fellowship Award”
• 1992: “NEC C& C Award”
• 1994: “Eduard Rhein Award”
• 2001: “Grande Ufficiale della Repubblica”, Italia
1.4.2 Lauree Honoris Causa
• Università di Technion in Israele
• Università di Waterloo in Canada
• Università di Notre Dame negli Stati Uniti
• Università Tor Vergata di Roma
• Università La Sapienza di Roma
4
2 Algoritmo di Viterbi
2.1 Storia
L’algoritmo nasce nel 1966 come strumento didattico finalizzato a chiarire le potenzialità
dei codici convoluzionali, argomento particolarmente difficile nell’attività di insegnamento
che Viterbi svolge in quegli anni come professore alla University of California; viene pubblicato ufficialmente solo nell’Aprile del 19671 . Viterbi stesso non crede che sia ottimo e
nemmeno che abbia risvolti pratici, perché richiede una quantità di memoria troppo elevata
per le possibilità di quel tempo.
È attribuito a Jim Massey e David Forney, revisori dell’articolo, il merito di aver riconosciuto nell’Algoritmo di Viterbi il corretto algoritmo ricorsivo per trovare il percorso
minimo in un diagramma a traliccio e quindi un decoder ottimo.
La valenza pratica dell’algoritmo è individuata da Jerry Heller, che riesce ad implementarne una soluzione hardware (grande quanto un armadio) al Jet Propulsion Lab, ottenendo
buoni risultati. Ed è proprio Heller il primo dipendente assunto a tempo pieno alla società
Linkabit, presso la quale l’impegno costante è finalizzato alla creazione di un chip economico per la decodifica di codici convoluzionali. Grazie agli incarichi governativi affidatale,
la Linkabit riesce ad affermare il proprio decoder come standard per le trasmissioni nello
spazio.
Le diffusione e commercializzazione di soluzioni basate sull’Algoritmo di Viterbi è successivamente portata avanti da Qualcomm Inc.
2.2 Concetti
2.2.1 Base matematica
Come definito in 3.3.1, l’Algoritmo di Viterbi è una soluzione ottima per il problema di
Decoding su modelli di Markov nascosti.
Dato un modello di Markov nascosto M (caratterizzato da uno spazio degli stati Ω,
uno spazio degli eventi Φ, una matrice di transizione Λ, una matrice di emissione B e
un vettore di probabilità a priori degli stati all’istante zero π), una sequenza di eventi
osservati O = o0 , o1 , o2 , . . . , oT −1 e una sequenza di stati nascosti S = s0 , s1 , s2 , . . . , sT −1 ,
la probabilità che S abbia generato O è
P (O|S) = P (s0 ) · P (o0 |s0 ) · P (s1 |s0 ) · P (o1 |s1 ) · P (s2 |s1 ) · P (o2 |s2 ) · . . .
. . . · P (sT −1 |sT −2 ) · P (oT −1 |sT −2 ) =
= P (s0 ) · P (o0 |s0 ) ·
TY
−1
[P (ot |st ) · P (st |st−1 )] =
t=1
= πs0 · bs0 ,o0 ·
TY
−1
(bst ,ot · ast−1 ,st ) (2.1)
t=1
1
Viterbi A. J., “Error bounds for convolutional codes and an asymptotically optimum decoding algorithm”,
IEEE Transactions on Information Theory 13.
5
2 Algoritmo di Viterbi
La sequenza più probabile di stati avrà quindi probabilità
max
s0 ...sT −1
h
πs0 · bs0 ,o0 ·
TY
−1
(bst ,ot · ast−1 ,st )
i
(2.2)
t=1
Introduciamo una variabile per facilitare il calcolo:
δt (i) = max P (o0 , o1 , o2 , . . . , ot |s0 , s1 , s2 , . . . , st−1 , st = i)
s0 ...st−1
(2.3)
ovvero la probabilità massima della sequenza parziale di t stati, in cui st = i. La (2.3) è
definibile ricorsivamente:
(
bi,ot · max aj,i · δt−1 (j) 1 6 t < T
j∈Ω
(2.4)
δt (i) =
t=0
bi,ot · πi
L’algoritmo restituisce la sequenza S ∗ di stati tale che
P (S ∗ |O) = max δT −1 (i)
(2.5)
i∈Ω
La natura ricorsiva dell’Algoritmo di Viterbi è quindi stata dimostrata, ma calcolare ricorsivamente il risultato porta a ripetere più volte gli stessi calcoli, sprecando tempo. La
soluzione si ottiene utilizzando la tecnica della programmazione dinamica, che sfrutta la
ricorsione ma procede in modo inverso ad essa.
2.2.2 Complessità computazionale
La complessità nel tempo è O(N 2 T ), dove N = |Ω|. Questa si ottiene facilmente osservando la (2.4): per trovare la soluzione del problema si devono calcolare tutti i valori di
δt (i), ∀t, i. Escluso il caso base per t = 0, il calcolo di δt (i) impiega N passaggi, perché la
funzione di max viaggia sull’indice i ∈ Ω.
2.2.3 Un problema di calcolo
L’implementazione dell’algoritmo, indipendentemente dalla tecnica utilizzata, presenta
un problema relativo al calcolo numerico delle probabilità delle sequenze parziali: presa
la (2.1), ci si accorge facilmente che la produttoria, fatta da numeri compresi tra 0 e 1,
assume valori sempre più vicini allo zero all’aumentare di T . Il calcolatore trova difficile
fare calcoli su numeri così piccoli e si può incorrere in perdita di precisione o addirittura
underflow. La soluzione per ovviare al problema è applicare una trasformazione ai valori
di probabilità, lavorando sui logaritmi. Estraendo il logaritmo di entrambi i membri, la
(2.1) diventa
TY
−1
log P (O|S) = log πs0 · bs0 ,o0 ·
(bst ,ot · ast−1 ,st ) =
t=1
= log πs0 + log bs0 ,o0 +
T
−1
X
log bst ,ot + log ast−1 ,st
t=1
e la (2.4) diventa
(
log δt (i) =
log bi,0t + max log aj,i + log δt−1 (j) 1 6 t < T
j∈Ω
log bi,ot + log πi
t=0
Un altro vantaggio della trasformazione logaritmica è che le moltiplicazioni sono diventate
somme, più veloci da eseguire.
6
2 Algoritmo di Viterbi
2.3 Esempio
Applicato al mondo dell’ombrello, l’Algoritmo di Viterbi restituisce
S ∗ =(pioggia, pioggia, ¬pioggia, pioggia, pioggia):
Figura 2.1: Diagramma a traliccio del mondo dell’ombrello con i valori di δt (i)
Tabella 2.1: calcolo dei valori di δt (i)
7
3 Catene di Markov
Una catena di Markov o processo markoviano è un processo stocastico1 che ha la proprietà di Markov2 , la quale dice che la variabile casuale dello stato corrente dipende solamente
dallo stato immediatamente precedente e da nessun altro.
3.1 Definizione formale
Definita così la famiglia di variabili casuali indicizzate: St , ∀t ∈ T , la probabilità dello
stato si dipende dallo stato si−1 :
P (si |si−1 , si−2 , . . . , s0 ) = P (si |si−1 )
(3.1)
dove si è lo stato i-esimo, s0 è lo stato iniziale e P rappresenta la probabilità associata allo
stato. Ω è lo spazio campionario degli stati che può assumere una variabile aleatoria. La
matrice Λ delle probabilità di transizione è composta dagli elementi ai,j = P (st = j|st−1 =
i), ∀i, j ∈ Ω:


a1,1 a1,2 · · · a1,N
 a2,1 a2,2 · · · a2,N 


Λ = {ai,j } =  .
..
..  , N = |Ω|
..
 ..
.
.
. 
aN,1 aN,2 · · · aN,N
Le probabilità di transizione devono rispettare i vincoli del processi stocastici, cioè
• ai,j > 0, ∀i, j ∈ Ω
•
N
X
ai,j = 1, ∀i ∈ Ω
j=1
3.1.1 Catene di ordine m
Esistono catene di Markov di ordine m superiore al primo, nelle quali la probabilità dello
stato sj dipende dagli m stati precedenti:
P (sj |sj−1 , sj−2 , . . . , s0 ) = P (sj |sj−1 , sj−2 , . . . , sj−m )
Per m > 1 sono poco usate perché la loro notevole complessità le rende di difficile
trattazione.
3.2 Esempio di catena di Markov
Il classico esempio di processo markoviano è la passeggiata ad una o più dimensioni,
in cui un punto si muove nello spazio. Per semplificare, consideriamo uno spazio discreto
8
3 Catene di Markov
−1
0
+1
1
3
1
3
1
3
Tabella 3.1: descrizione delle probabilità di transizione: la prima riga rappresenta lo spostamento (negativo se verso sinistra, positivo se verso destra) e la seconda la
probabilità associata
a una dimensione. Ipotizziamo che gli spostamenti del punto ad un certo istante siano
governati da una distribuzione di probabilità del tipo uniforme discreta, cioè:
La matrice (infinita in questo caso) delle probabilità di transizione si presenterà così:


..
..
..
..
..
.
.
.
.
.


 · · · 1/3 1/3 1/3 0
0 ··· 



1
1
1
Λ=
 · · · 0 /3 /3 /3 0 · · · 
 ··· 0
0 1/3 1/3 1/3 · · · 


..
..
..
..
..
.
.
.
.
.
L’insieme degli stati è rappresentato dall’insieme Z dei numeri interi, ciascuno corrispondente a un punto sulla retta:
Ω = {. . . , −2, −1, 0, 1, 2, . . .}
La proprietà di Markov è verificata perché la probabilità di transizione verso lo stato
successivo dipende esclusivamente dallo stato corrente.
Figura 3.1: simulazione di passeggiata casuale di 1000 passi sulla retta. L’asse delle ascisse (t) rappresenta il tempo, quello delle ordinate (St ) lo stato assunto dalle
variabili casuali
1
Un processo stocastico è un insieme ordinato di variabili casuali, indicizzate da un parametro t che spesso
rappresenta il tempo.
2
detta anche “condizione di assenza di memoria”
9
3 Catene di Markov
3.3 Modelli di Markov nascosti
Un modello di Markov nascosto3 è un processo markoviano in cui gli stati non sono
direttamente osservabili ma sono invece osservabili gli eventi generati dagli stati. Chiamato
Ω lo spazio campionario degli stati e Φ lo spazio campionario degli eventi, esiste una
matrice di probabilità B = {bj,k } che descrive la probabilità che lo stato j generi l’evento
k (bj,k = P (ot = k|st = j), dove t è l’istante corrente, ∀t ∈ T, ∀k ∈ Φ). Si assume che
gli eventi siano statisticamente indipendente l’uno dall’altro. I seguenti vincoli stocastici
devono essere rispettati:
• bj,k > 0, ∀j ∈ Ω, ∀k ∈ Φ
•
|Φ|
X
bj,k = 1, ∀j ∈ Ω
k=1
Figura 3.2: schema di rappresentazione di un modello di Markov nascosto: una freccia
rappresenta una probabilità diversa da zero che lo stato da cui parte generi
l’evento a cui arriva. Chiaramente, la somma dei valori delle frecce uscenti da
uno stato sarà sempre uguale a 1.
3.3.1 Problemi sui modelli di Markov nascosti
Dato un modello di Markov nascosto, esistono tre problemi di interesse:
1. problema di Evaluation: dato un modello, calcolare la probabilità di una sequenza
particolare di eventi in uscita;
2. problema di Decoding: dato un modello e una sequenza di eventi generati, calcolare
la sequenza di stati più probabile;
3. problema di Learning: data una sequenza di eventi, trovare l’insieme più probabile
di transizioni tra stati e probabilità di uscita, ovvero stimare i parametri del modello
che ha generato tale sequenza di eventi.
Il secondo dei tre, il problema di Decoding, viene risolto proprio dall’Algoritmo di Viterbi.
3
chiamato anche “HMM” (Hidden Markov Model)
10
3 Catene di Markov
3.3.2 Esempio di modello di Markov nascosto
Consideriamo il seguente esempio semplificato: supponiamo di essere la guardia di sicurezza di un’installazione sotterranea segreta. Vogliamo sapere se oggi sta piovendo, ma il
nostro unico contatto con il mondo esterno avviene ogni mattina, quando vediamo arrivare
il direttore con o senza ombrello. L’intervallo di tempo tra un istante di osservazione e
l’altro è immutato ed è di un giorno esatto. Possiamo accettare l’ipotesi che i cambiamenti
climatici siano provocati da un processo omogeneo4 e che le condizioni climatiche di un
giorno dipendano esclusivamente dalle condizioni del giorno precedente. Il problema può
quindi essere modellato con un modello di Markov nascosto di primo ordine in cui l’insieme
degli stati è Ω = {pioggia, ¬pioggia} e l’insieme degli eventi è Φ = {ombrello, ¬ombrello}.
Nel mondo dell’ombrello, la pioggia causa l’apparizione dell’ombrello, ma può capitare che
il direttore porti l’ombrello solo per sicurezza, oppure che si dimentichi di portarlo anche
se fuori piove.
Il modello sensoriale è la distribuzione di probabilità che descrive il comportamento
del direttore in relazione al tempo atmosferico. Dobbiamo quindi stabilire il modello di
transizione, il modello sensoriale e la probabilità a priori degli stati all’istante zero.
Proviamo ad applicare il problema di Decoding all’esempio: supponendo che (true, true,
false, true, true) sia la sequenza delle apparizioni dell’ombrello nell’arco di cinque giorni,
qual è la sequenza di condizioni atmosferiche più probabile per giustificare tali osservazioni?
L’assenza dell’ombrello nel terzo giorno significa che non stava piovendo, o il direttore si
è dimenticato di portarlo? E se non pioveva il giorno 3, forse (dato che il tempo tende a
persistere) forse non pioveva neanche il giorno 4, ma il direttore ha portato l’ombrello per
ogni evenienza. In tutto ci sono 25 sequenze possibili di stati.
P
pioggia ¬pioggia
pioggia
0.7
0.3
1
¬pioggia
0.3
0.7
1
Tabella 3.2: descrizion del modello di transizione del mondo dell’ombrello: ogni elemento
ai,j della tabella è la probabilità di passare dallo stato i (riga) allo stato j
(colonna). È messo in evidenza il vincolo stocastico.
pioggia
¬pioggia
ombrello
0.9
0.2
¬ombrello
0.1
0.8
P
1
1
Tabella 3.3: descrizion del modello sensoriale del mondo dell’ombrello: ogni elemento bj,k
della tabella è la probabilità che lo stato j (riga) generi l’evento k (colonna).
È messo in evidenza il vincolo stocastico.
s0
pioggia
¬pioggia
P (s0 )
0.2
0.8
Tabella 3.4: descrizione della distribuzione di probabilità a priori degli stati all’istante zero
4
un processo è omogeneo quando la sua matrice di transizione è uguale in ogni istante di tempo.
11
3 Catene di Markov
Figura 3.3: diagramma a traliccio del mondo dell’ombrello
12
Scarica