Computazione per l’interazione naturale: Modelli a...

18
Corso di Interazione Naturale Prof. Giuseppe Boccignone Dipartimento di Informatica Università di Milano [email protected] boccignone.di.unimi.it/IN_2016.html Computazione per l’interazione naturale: Modelli a variabili latenti dinamici Modelli dinamici

Transcript of Computazione per l’interazione naturale: Modelli a...

Page 1: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

Corso di Interazione Naturale

Prof. Giuseppe Boccignone

Dipartimento di InformaticaUniversità di Milano

[email protected]/IN_2016.html

Computazione per l’interazione naturale: Modelli a variabili latenti dinamici

Modelli dinamici

Page 2: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

Modelli dinamici

Page 3: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

Processi temporali

• N stati o categorie

• Distribuzione congiunta fattorizzabile come

stato al tempo t

Processi di Markov

• Il prossimo stato dipende dallo stato presente

• Condizionatamente al presente, passato e futuro sono indipendenti

Page 4: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

Matrici di transizione di stato

• Catena di Markov stazionaria con N stati descritta da una matrice di transizione

Diagrammi di transizione fra stati

Page 5: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

Modello grafico di una catena di Markov

• Da non confondere con il diagramma di transizione fra stati

Relazione fra Q e modello grafico

Statistiche delle catene di Markov

Page 6: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

Catene di ordine superiore al primo

Processi dinamici a stati continui

• Gli stati sono definiti in uno spazio euclideo continuo:

famiglia parametrica di densità di transizioni fra stati

Page 7: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

Modelli nascosti di Markov (Hidden Markov Models, HMM)

Stati nascosti

Processi osservati

• Dato le osservazioni passate non ci dicono nulla di più sul futuro

Stati nascosti

Processi osservati

Modelli nascosti di Markov (Hidden Markov Models, HMM)

Page 8: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

• Si associa a ciascuno degli N stati una differente probabilità di osservazione (emissione)

Stati nascosti

Processi osservati

Modelli nascosti di Markov //stati discreti

• Osservazioni discrete:

• Osservazioni continue:

Modelli nascosti di Markov //osservazioni: discrete e continue

Page 9: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

Esempio

• Cosa possiamo inferire sugli stati da una sequenza osservata di dati?

• Filtraggio (analisi on line)

• Smoothing (analisi batch)

Stati nascosti

Processi osservati

Modelli nascosti di Markov //Inferenza

Page 10: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

Problemi di inferenza risolvibili con HMM

• Filtraggio

• Smoothing

• Decodifica

• Classificazione

HMM discreti: //filtraggio

Costante di normalizzazione

Predizione

Page 11: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

• L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro nel tempo

HMM discreti: //smoothing

Stima dello stato ottimo //Algoritmo Forward-Backward

• Usando Forward-Backward:

• misuro la probabilità a posteriori sul singolo stato nascosto

• Possiamo usare la regola MAP (o moda) per la stima

• E se volessimo trovare la sequenza di stati con la massima probabilità congiunta? -> Algoritmo di Viterbi

Page 12: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

Stima della sequenza di stati ottima //Algoritmo di Viterbi

• E’ una forma di programmazione dinamica per trovare (ricorsivamente) la probabilità congiunta della sequenza di stati più probabile che ha generato la sequenza di osservazioni

Classificazione con HMM

• Training: coppie di (sequenze di stati, sequenze di osservazioni)

• Test: predizione di sequenze di stati da sequenze di osservazioni

• Prima bisogna effettuare il learning dei parametri

• Esempio: stima di Maximum Likelihood con EM

• In fase di test, poi si usa Forward-Backward o Viterbi per classificare gli stati

Page 13: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

Apprendimento dei parametri //Algoritmo di Baum-Welch (EM per HMM)

• Date le sequenze di training

• Passo E: Fissati i parametri inferisco gli stati nascosti

• Passo M: Fissati gli stati, aggiorno i parametri di transizione e di osservazione

Apprendimento dei parametri //Algoritmo di Baum-Welch (EM per HMM)

• Date le sequenze di training

• Passo E: Fissati i parametri inferisco gli stati nascosti

• Passo M: Fissati gli stati, aggiorno i parametri di transizione e di osservazione

Page 14: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

HMM continui //Modelli a spazi degli stati lineari

• Il filtro di Kalman è un esempio di HMM continuo

HMM continui //Modelli a spazi degli stati (lineari)

Page 15: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

• Utilizzando un modello Gaussiano tutto può essere rappresentato in termini di medie e covarianze

HMM continui //Filtro di Kalman

Differenza fra predizione e osservazione

predizione

osservazione e update

Filtro di Kalman come regressore on-line

• La media a posteriori minimizza l’errore quadratico medio di predizione

Page 16: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

Filtro di Kalman come regressore on-line

HMM continui //Modelli a spazi degli stati non lineari

• Dinamica degli stati e osservazioni sono funzioni non lineari (non Gaussiane)

Page 17: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

HMM continui //Modelli a spazi degli stati non lineari

HMM continui //Filtraggi non lineari

Page 18: Computazione per l’interazione naturale: Modelli a ...boccignone/GiuseppeBoccignone_webpage/... · •L’algoritmo forward-backward aggiorna il filtraggio con una ricorsione indietro

Filtraggi non lineari approssimati: //Particle filtering (Condensation, etc...)

Le distribuzioni di probabilità

vengono rappresentati

con dei campioni

Filtraggi non lineari approssimati: //Particle filtering (Condensation, etc...)