Ragionamento probabilistico nel tempo - catene di Markov, HMM, filtraggio e smoothing
In questa pagina 10
Le reti bayesiane (Reti bayesiane - semantica, indipendenze e inferenza esattaUna rete bayesiana è un grafo diretto aciclico (DAG) con una variabile per nodo e una tabella delle probabilità condizionate (CPT) $P(X_i\mid\text{Parents}(X_i))$ per nodo; rappresenta la congiunta come prodotto $P(x_1,\dots,x_n)=\prod_i P(x_i\mid\text{parents}(X_i))$, con molti meno numeri della tabella completa (rete dell'allarme: 10 contro 31). Tre strutture elementari: catena $X\to Y\to Z$ e fork $Y\leftarrow X\to Z$ (estremi indipendenti dato il centro), collider $X\to Z\leftarrow Y$ (indipendenti, ma dipendenti se si osserva $Z$ o un suo discendente). Modelli causali (genitori = cause) danno reti più piccole. Inferenza esatta per enumerazione: $\mathbf P(X\mid\mathbf e)=\alpha\sum_{\mathbf y}\mathbf P(X,\mathbf e,\mathbf y)$ calcolata come somma di prodotti, in profondità e da sinistra a destra; per l'allarme $\mathbf P(B\mid j,m)=\langle0{,}284;\ 0{,}716\rangle$. Molti prodotti si ripetono: l'eliminazione di variabili li salva come fattori e li riusa.Reti bayesiane - semantica, indipendenze e inferenza esatta →) descrivono un mondo fotografato in un istante. Qui lo stato cambia nel tempo e l'agente lo osserva solo attraverso sensori rumorosi.
Esempio guida (mondo dell'ombrello). Sei prigioniero in una cella sotterranea: non vedi il tempo, ma vedi se la guardia porta l'ombrello. Quanto è probabile che fuori piova, date le osservazioni di oggi e dei giorni precedenti?
Modello
- Tempo discreto: istanti (time slices) a distanza costante .
- : variabili di stato dell'istante , non osservabili (nascoste). : variabili di evidenza osservabili; l'osservazione è . Si scrive .
Modello di transizione. ha troppe variabili (crescono con ). Si usa l'ipotesi di Markov: lo stato dipende solo da un numero fisso di stati precedenti.
- Primo ordine: .
- Secondo ordine: .
Un processo di Markov del primo ordine è una catena di nodi .
Modello del sensore. Le osservazioni dipendono solo dallo stato corrente (sensor Markov assumption): . Dato , è indipendente da tutto il resto: è un caso di catena e di fork (Reti bayesiane - semantica, indipendenze e inferenza esattaUna rete bayesiana è un grafo diretto aciclico (DAG) con una variabile per nodo e una tabella delle probabilità condizionate (CPT) $P(X_i\mid\text{Parents}(X_i))$ per nodo; rappresenta la congiunta come prodotto $P(x_1,\dots,x_n)=\prod_i P(x_i\mid\text{parents}(X_i))$, con molti meno numeri della tabella completa (rete dell'allarme: 10 contro 31). Tre strutture elementari: catena $X\to Y\to Z$ e fork $Y\leftarrow X\to Z$ (estremi indipendenti dato il centro), collider $X\to Z\leftarrow Y$ (indipendenti, ma dipendenti se si osserva $Z$ o un suo discendente). Modelli causali (genitori = cause) danno reti più piccole. Inferenza esatta per enumerazione: $\mathbf P(X\mid\mathbf e)=\alpha\sum_{\mathbf y}\mathbf P(X,\mathbf e,\mathbf y)$ calcolata come somma di prodotti, in profondità e da sinistra a destra; per l'allarme $\mathbf P(B\mid j,m)=\langle0{,}284;\ 0{,}716\rangle$. Molti prodotti si ripetono: l'eliminazione di variabili li salva come fattori e li riusa.Reti bayesiane - semantica, indipendenze e inferenza esatta →).
Definizione (HMM del primo ordine). Hidden Markov model: stati nascosti che formano una catena di Markov e osservazioni figlie dello stato. Distribuzione congiunta, con prior : In senso stretto l'HMM ha un'unica variabile di stato discreta (le evidenze possono essere più d'una).
Mondo dell'ombrello. , . Trasformazione: , . Sensore: , . Prior .
Rappresentazione a matrici
Per con valori:
- Matrice di transizione , , con (riga = stato di partenza; ogni riga somma a ).
- Matrice del sensore , diagonale, con (probabilità di emissione). Ce n'è una per ogni valore osservato.
Ombrello (stati in ordine ):
I quattro compiti
| compito | calcola |
|---|---|
| filtraggio (filtering, stima dello stato) | , lo stato attuale |
| predizione | , uno stato futuro () |
| smoothing | , uno stato passato |
| spiegazione più probabile (most likely explanation) | , la sequenza di stati |
Inoltre i modelli e , se non noti, si possono apprendere dalle osservazioni.
Filtraggio
Il belief state è . Si calcola ricorsivamente da a in due passi:
Dimostrazione dei due passi: (Bayes); per l'ipotesi del sensore il primo fattore diventa ; il secondo si scrive marginalizzando e usando l'ipotesi di Markov . In forma compatta , applicata ricorsivamente.
In matrici. Il passo di predizione è un prodotto con (si sommano le righe pesate per ), l'aggiornamento un prodotto con :
Algoritmo (forward). . Per ogni osservazione : , . Costo costante per passo: non dipende dalla lunghezza della storia.
Esempio: ombrello due giorni
Domanda: , con .
Giorno 1. Predizione: (con prior uniforme resta uniforme). Aggiornamento con : ; :
Giorno 2. Predizione: , . Aggiornamento con : ; : (Le slide scrivono e in due punti per un arrotondamento: il valore è .) Con matrici: .
La probabilità di pioggia sale da a al primo ombrello e a al secondo. Se al giorno 1 non si vedesse l'ombrello: e dopo l'ombrello del giorno 2 si ottiene ; se non si hanno informazioni sul giorno 1 (solo ), (Esercizio - Filtraggio nell'ombrello con pomegranate (laboratorio 6)).
Predizione
Si applica solo il passo di predizione, senza evidenza: e in generale . Dopo : giorno 3 , giorno 4 , ... verso la distribuzione stazionaria : l'evidenza passata viene dimenticata e la predizione tende alla distribuzione stazionaria della catena.
Catena di Markov (esempio delle slide). Voto finale annuale ; stesso voto dell'anno prima con probabilità , voto diverso (ciascuno) . : (somma sul voto intermedio ; il fattore del numeratore si semplifica con il denominatore), quindi per È l'elemento di : tutta la riga è .
Smoothing
Dato il passato e il presente, si rivaluta un istante passato: , con . Si dividono le evidenze in passate e future : Il messaggio forward è il filtraggio. Il messaggio backward si calcola all'indietro: (Ogni componente è .) L'algoritmo forward-backward fa un passaggio in avanti per i e uno all'indietro per i , e smoothing di tutti gli istanti in . Il filtraggio all'ultimo istante coincide con lo smoothing.
Esempio. Osservazioni . Filtraggio: , , . All'indietro: ; ; . Combinando:
- giorno 2: : l'ombrello mancante al giorno 3 abbassa la pioggia al giorno 2 da a ;
- giorno 1: ;
- giorno 3: (invariato).
Con le sole osservazioni , lo smoothing del giorno 1 dà (stesso numero di per la simmetria di ), e quello del giorno 0 è ; con la sola , il giorno 0 vale . Questi valori "all'indietro" sono quelli che la libreria pomegranate restituisce automaticamente per ogni nodo (Esercizio - Filtraggio e smoothing nell'ombrello con la nuova versione di pomegranate (materiale supplementare del laboratorio 6)). Il risultato è stato verificato per enumerazione di tutte le sequenze di stati.
Spiegazione più probabile. Si cerca la sequenza con massima: non è la sequenza degli stati più probabili singolarmente. Si risolve con l'algoritmo di Viterbi, che ha la forma del filtraggio con un massimo al posto della somma. Per la sequenza più probabile è pioggia, pioggia, no pioggia.
Probabilità di una sequenza di osservazioni
Senza normalizzare, il filtraggio calcola : Dimostrazione: per le due ipotesi di Markov. Per l'ombrello, (i due fattori di normalizzazione).
Esempio: il bambino (slide). Stato: pannolino pulito o sporco, equiprobabili all'inizio. Pulito pulito/sporco ; sporco pulito/sporco . Pulito: "mama" o "papa" ciascuna, "poo-poo" o "pee-pee" ; sporco: e . Qual è la probabilità di "mama", "mama", "pee-pee", "pee-pee"? Svolgimento in Esercizio - Filtraggio in un HMM - il bambino e il pannolino (slide del corso): .
Esempio: localizzazione di un robot
Un robot si muove a caso, con uguale probabilità, in una casella libera adiacente; i sensori (rumorosi) dicono quali dei quattro lati N, E, S, O hanno un ostacolo. Stato : la casella, tra libere. Prior (posizione ignota).
- Transizione: se è adiacente a , altrimenti ( = caselle libere adiacenti). La matrice ha elementi.
- Sensore: è una sequenza di bit (es. : ostacolo a nord e sud). Ogni bit è sbagliato con probabilità indipendente. Se la lettura ha bit sbagliati rispetto alla casella : . Con : tre bit giusti e uno sbagliato ; la probabilità di sbagliare almeno un bit su quattro è .
- Con e il filtraggio dà , , ... e l'errore di localizzazione scende con le osservazioni: per il robot si localizza entro due caselle dopo circa osservazioni, per bastano poche osservazioni, per l'errore resta grande.
Codice
import numpy as np
T = np.array([[0.7, 0.3], # T[i, j] = P(X_t = j | X_{t-1} = i), stati: [pioggia, no pioggia]
[0.3, 0.7]])
O = {True: np.diag([0.9, 0.2]), # O^{u}: P(ombrello | stato) sulla diagonale
False: np.diag([0.1, 0.8])} # O^{non u}
f0 = np.array([0.5, 0.5]) # P(X_0)
def forward(f, e):
v = O[e] @ T.T @ f # predizione (T^T f) e aggiornamento (O)
return v / v.sum() # normalizzazione alfa
def filtering(prior, evidenze):
f, out = prior, []
for e in evidenze:
f = forward(f, e)
out.append(f)
return out # f_1, ..., f_t
def smoothing(prior, evidenze):
f = filtering(prior, evidenze)
b, out = np.ones(2), []
for t in range(len(evidenze) - 1, -1, -1): # da t fino a 1, messaggio all'indietro
s = f[t] * b
out.append(s / s.sum()) # P(X_{t+1} | e_{1:T})
b = T @ O[evidenze[t]] @ b # b_{k:T}
return out[::-1]
print(filtering(f0, [True, True]))
print(smoothing(f0, [True, True, False]))Output: [0.818, 0.182], [0.883, 0.117] per il filtraggio; [0.862, 0.138], [0.799, 0.201], [0.191, 0.809] per lo smoothing.
Domande d'esame
- Cosa afferma l'ipotesi di Markov del primo ordine e l'ipotesi del sensore? e .
- Nel mondo dell'ombrello con , calcolare . e : .
- Qual è la differenza tra filtraggio e smoothing? Il filtraggio stima lo stato attuale con le evidenze fino ad ora; lo smoothing stima uno stato passato usando anche le evidenze successive (forward-backward).
- Con i voti (stesso voto , altro ), ? .
Versione ripasso
- Modello: tempo discreto, stato nascosto , evidenza . Ipotesi di Markov al primo ordine; al secondo (modello di transizione) e ipotesi del sensore (modello del sensore; catena e fork: Reti bayesiane - semantica, indipendenze e inferenza esattaUna rete bayesiana è un grafo diretto aciclico (DAG) con una variabile per nodo e una tabella delle probabilità condizionate (CPT) $P(X_i\mid\text{Parents}(X_i))$ per nodo; rappresenta la congiunta come prodotto $P(x_1,\dots,x_n)=\prod_i P(x_i\mid\text{parents}(X_i))$, con molti meno numeri della tabella completa (rete dell'allarme: 10 contro 31). Tre strutture elementari: catena $X\to Y\to Z$ e fork $Y\leftarrow X\to Z$ (estremi indipendenti dato il centro), collider $X\to Z\leftarrow Y$ (indipendenti, ma dipendenti se si osserva $Z$ o un suo discendente). Modelli causali (genitori = cause) danno reti più piccole. Inferenza esatta per enumerazione: $\mathbf P(X\mid\mathbf e)=\alpha\sum_{\mathbf y}\mathbf P(X,\mathbf e,\mathbf y)$ calcolata come somma di prodotti, in profondità e da sinistra a destra; per l'allarme $\mathbf P(B\mid j,m)=\langle0{,}284;\ 0{,}716\rangle$. Molti prodotti si ripetono: l'eliminazione di variabili li salva come fattori e li riusa.Reti bayesiane - semantica, indipendenze e inferenza esatta →).
- HMM del primo ordine: congiunta ; una sola variabile di stato discreta.
- Matrici: (righe sommano a ); diagonale con , una per valore osservato. Ombrello: , , , .
- Quattro compiti: filtraggio ; predizione ; smoothing ; spiegazione più probabile (Viterbi, massimo al posto della somma); in più si possono apprendere e .
- Filtraggio: , cioè (predizione con , poi aggiornamento con ); costo costante per passo. Derivazione: Bayes, ipotesi del sensore, marginalizzare , ipotesi di Markov.
- Ombrello: ; predizione giorno ; . Senza ombrello al giorno : , poi ; solo : (Esercizio - Filtraggio nell'ombrello con pomegranate (laboratorio 6)).
- Predizione: : dopo , , , ... verso la distribuzione stazionaria . Catena dei voti: , riga di .
- Smoothing (forward-backward): , , ; tutti gli istanti in . Per : , ; pioggia (giorno 1), (giorno 2), (giorno 3). Con solo : giorno , giorno .
- Verosimiglianza: senza , (anche prodotto dei fattori di normalizzazione): ombrello ; bambino (Esercizio - Filtraggio in un HMM - il bambino e il pannolino (slide del corso)).
- Robot: per caselle adiacenti, caselle e prior ; sensore a bit con errore : ; con si sbaglia almeno un bit il delle volte, ma dopo circa osservazioni il robot si localizza entro due caselle; con l'errore resta alto.
- Codice:
forward(f, e)O[e] @ T.T @ fnormalizzato;smoothingcombina ifcon il messaggio all'indietrob = T @ O[e] @ b. - Errori tipici: usare invece di nella predizione; scordare ; scambiare filtraggio e smoothing; scegliere la sequenza degli stati individualmente più probabili al posto della più probabile; normalizzare a ogni passo quando serve .