Reti bayesiane - semantica, indipendenze e inferenza esatta
In questa pagina 6
La congiunta completa (Incertezza - probabilità, regola di Bayes e indipendenza condizionataUn agente con osservazioni parziali non può usare regole logiche rigide ("mal di denti implica carie" è falso): usa la probabilità come grado di credenza e, con la teoria dell'utilità, sceglie l'azione con utilità attesa massima. Strumenti: distribuzione congiunta completa (tabella di $2^n$ valori), marginalizzazione $P(Y\mid e)=\alpha\sum_h P(Y,e,h)$ con costante di normalizzazione $\alpha=1/P(e)$, regola del prodotto $P(a,b)=P(a\mid b)P(b)$, regola di Bayes $P(\text{causa}\mid\text{effetto})=\frac{P(\text{effetto}\mid\text{causa})P(\text{causa})}{P(\text{effetto})}$ e indipendenza condizionata $P(a,b\mid c)=P(a\mid c)P(b\mid c)$, che permette di scomporre la congiunta in tabelle più piccole. Un test con sensibilità 73% e falsi positivi 12% su una malattia con prior 1/700 dà una probabilità a posteriori di appena 0,9%.Incertezza - probabilità, regola di Bayes e indipendenza condizionata →) risponde a qualsiasi domanda, ma ha numeri ( = valori per variabile, = variabili): per tre booleane valori (in realtà : l'ultimo si ricava dalla somma ), per trenta più di un miliardo. Non si sa dove trovare i numeri e dove metterli. Le reti bayesiane (Bayesian networks, dette anche belief networks, modelli grafici probabilistici) la scompongono sfruttando le indipendenze condizionate.
Scomposizione della congiunta
Regola della catena. Per qualsiasi ordine delle variabili, per la regola del prodotto:
Se ogni è indipendente da tutti i predecessori tranne un sottoinsieme (i suoi genitori), nella catena rimangono solo i genitori:
Definizione (scomposizione in prodotto).
Esempio. . Se è condizionalmente indipendente da dato , diventa : è genitore di , di , non ha genitori.
Definizione (rete bayesiana). Un DAG (grafo diretto senza cicli) in cui:
- ogni nodo è una variabile aleatoria;
- un arco dice che è genitore di (di solito: è una causa di );
- ogni nodo ha una tabella delle probabilità condizionate (conditional probability table, CPT) ; un nodo senza genitori ha una distribuzione a priori.
La rete rappresenta la congiunta come prodotto delle CPT. Topologia + CPT = rappresentazione compatta, di solito semplice da costruire anche per non esperti.
Esempio. Nella rete con archi , , la congiunta è : ogni fattore è la CPT di un nodo condizionata ai suoi genitori.
Quanti numeri servono
Una CPT booleana con genitori ha righe e basta la colonna "vero" (quella "falso" è ). Per la distribuzione , , di tre booleane: numeri invece di . Il vantaggio è anche statistico: stimando da campioni la congiunta ci sono combinazioni, circa campioni ciascuna; stimando , , ce ne sono circa , e per ogni numero, quindi stime più affidabili.
Esempio: l'allarme antifurto
Un allarme suona per un furto (Burglary, ) o per un terremoto (Earthquake, ); i vicini Giovanni (JohnCalls, ) e Maria (MaryCalls, ) telefonano se lo sentono. Archi , , , .
| CPT | valori |
|---|---|
| : ; : ; : ; : | |
| : ; : | |
| : ; : |
Cinque CPT, numeri invece di .
Probabilità di un evento completo. è uno dei termini della congiunta: si moltiplicano le CPT, scegliendo per ogni nodo la riga dei valori dei genitori. (Il primo è il numero verificato nel Esercizio - Prior sampling sulla rete burglary (laboratorio 6).)
Ordinamento e costruzione
Qualunque ordine delle variabili dà una rete corretta (la regola della catena vale sempre), ma gli archi cambiano. Un modello causale (i genitori sono le cause) è molto più compatto. Con l'ordine inverso i genitori diventano: ha ; ha ; ha ; ha tutti e quattro. I numeri sono , tanti quanti la congiunta, e le probabilità non hanno più un significato causale facile da stimare.
Le tre strutture elementari
Le indipendenze di una rete si leggono dal grafo guardando tre configurazioni di tre nodi :
| struttura | grafo | e sono... |
|---|---|---|
| catena (head-to-tail) | dipendenti; indipendenti dato | |
| fork (tail-to-tail) | dipendenti; indipendenti dato | |
| collider (head-to-head) | indipendenti; dipendenti dato |
Sono le tre configurazioni con cui si compongono tutti i cammini del grafo; l'indipendenza condizionata usata è quella di Eventi indipendenti e indipendenza condizionataA e B sono indipendenti se P(AB) = P(A)P(B), cioè (se P(B) > 0) P(A | B) = P(A): sapere B non cambia la probabilità di A. Se A, B sono indipendenti lo sono anche A e Bᶜ. Tre eventi sono indipendenti se lo sono a coppie E P(ABC) = P(A)P(B)P(C): l'indipendenza a coppie non basta. Prove ripetute indipendenti: le probabilità si moltiplicano. Indipendenza condizionata a F: P(AB | F) = P(A | F)P(B | F); non implica l'indipendenza (due lanci della stessa moneta scelta a caso). Eventi disgiunti con probabilità positive non sono mai indipendenti.Eventi indipendenti e indipendenza condizionata →.
- Catena. : il furto influenza la telefonata di Giovanni solo attraverso l'allarme. ma : noto , non dà altra informazione su .
- Fork. : è causa comune. Senza osservare , e sono dipendenti: (se Maria chiama, probabilmente l'allarme suona, quindi probabilmente chiama anche Giovanni). Noto : .
- Collider. : furto e terremoto sono indipendenti, . Ma se si osserva l'allarme diventano dipendenti: ; se si sa anche che c'è stato un terremoto, : il terremoto spiega l'allarme e il furto diventa improbabile (explaining away). Se invece non c'è stato terremoto, .
Esempio dei dadi. = primo dado, = secondo dado, : . e sono indipendenti, ma se e allora : crea la dipendenza. Lo stesso avviene osservando un discendente del collider (se si sapesse solo che Giovanni ha chiamato, e diventerebbero dipendenti: ma ).
Un nodo è inoltre indipendente dai suoi non discendenti dati i genitori: per l'allarme, è indipendente da , e dato . Il ragionamento sui cammini del grafo (quali sono bloccati dall'evidenza) è il punto di partenza dell'inferenza causale: Interventi e operatore do - criterio backdoor e aggiustamentoOsservare $X=x$ e forzare $X=x$ sono cose diverse: $P(y\mid x)\ne P(y\mid do(x))$ quando c'è un confondente. L'intervento $do(X=x)$ si calcola con la «chirurgia» del grafo (si tolgono le frecce entranti in X) e si traduce in probabilità osservazionali con la formula di aggiustamento $P(y\mid do(x))=\sum_z P(y\mid x,z)P(z)$, dove $Z$ sono i genitori di X, o più in generale un insieme S che soddisfa il criterio backdoor: blocca ogni cammino backdoor (cammino da X a Y che inizia con una freccia entrante in X) e non contiene discendenti di X. Effetto causale medio $ACE=P(y\mid do(x))-P(y\mid do(\neg x))$. Se il confondente non è osservabile ma c'è un mediatore Z con X→Z→Y, vale il front-door $P(y\mid do(x))=\sum_z P(z\mid x)\sum_{x'}P(y\mid x',z)P(x')$. Mediazione: effetto diretto controllato CDE con $do(x),do(z)$. Se due insiemi backdoor danno risultati diversi sui dati, il modello è sbagliato. Argomento del corso da 9 CFU.Interventi e operatore do - criterio backdoor e aggiustamento →.
Inferenza per enumerazione
Problema. Data l'evidenza (variabili osservate ), calcolare per una variabile di interrogazione . Le variabili né osservate né interrogate sono nascoste. Si usa la marginalizzazione: dove normalizza. Ogni termine è una congiunta completa, quindi un prodotto di CPT.
Algoritmo (enumeration-ask). Per ogni valore di : sommare, sui valori delle variabili nascoste, il prodotto delle CPT nell'ordine topologico (genitori prima dei figli); poi normalizzare. Si calcola in profondità e da sinistra a destra, portando fuori dalle somme i fattori che non dipendono dalla variabile sommata.
Esempio completo:
Con evidenza le nascoste sono e : . esce da entrambe le somme; esce dalla somma su . Numeri (per , poi per ):
- somma su con : (dove e );
- somma su con : ;
- ; per : .
Per : Normalizzazione: e Anche se entrambi i vicini chiamano, la probabilità di furto è solo : l'allarme scatta spesso per altre cause e il prior è bassissimo.
# rete burglary: per ogni variabile (genitori, CPT) con CPT = P(X=vero | genitori)
bn = {
'B': ([], {(): 0.001}),
'E': ([], {(): 0.002}),
'A': (['B', 'E'], {(True, True): 0.95, (True, False): 0.94,
(False, True): 0.29, (False, False): 0.001}),
'J': (['A'], {(True,): 0.90, (False,): 0.05}),
'M': (['A'], {(True,): 0.70, (False,): 0.01}),
}
ordine = ['B', 'E', 'A', 'J', 'M'] # ordine topologico
def prob(var, val, ev):
"""P(var=val | genitori), con i valori dei genitori presi da ev."""
genitori, cpt = bn[var]
p = cpt[tuple(ev[g] for g in genitori)]
return p if val else 1 - p
def enumera_tutto(variabili, ev):
"""Somma sulle variabili non osservate, nell'ordine topologico."""
if not variabili:
return 1.0
v, resto = variabili[0], variabili[1:]
if v in ev: # osservata: un solo termine
return prob(v, ev[v], ev) * enumera_tutto(resto, ev)
return sum(prob(v, x, {**ev, v: x}) * enumera_tutto(resto, {**ev, v: x})
for x in (True, False)) # nascosta: si somma sui due valori
def enumeration_ask(X, ev):
q = [enumera_tutto(ordine, {**ev, X: x}) for x in (True, False)]
alfa = 1 / sum(q) # normalizzazione
return [alfa * p for p in q]
print(enumeration_ask('B', {'J': True, 'M': True}))Output atteso: [0.2841718353643929, 0.7158281646356071].
Costo. La ricorsione visita un albero con una foglia per ogni assegnazione delle nascoste: costo esponenziale nel loro numero. Inoltre molti sottoprodotti si ripetono: nell'albero del calcolo precedente e compaiono sia sotto sia sotto , e vengono ricalcolati.
Eliminazione di variabili
L'idea è salvare i risultati intermedi in tabelle, i fattori (factors), e riusarli. Un fattore è una tabella di numeri indicizzata dai valori delle variabili (non è per forza una distribuzione).
Due operazioni:
- prodotto puntuale (pointwise product): ha come variabili l'unione delle variabili e come valore il prodotto dei valori compatibili;
- somma (sum out) di una variabile: si sommano le righe che differiscono solo per quella variabile, che sparisce.
Algoritmo (variable elimination). Si scrive ogni CPT come fattore (fissando le variabili d'evidenza ai valori osservati, che le toglie dai fattori). Per ogni variabile nascosta, in un ordine scelto: si moltiplicano tutti i fattori che la contengono e si somma la variabile. Alla fine si moltiplicano i fattori rimasti e si normalizza.
Esempio: . Fattori (con fissati): , , , , .
Eliminare . Prodotto ; poi :
Per esempio . Sono esattamente le somme interne dell'enumerazione, ma calcolate una volta sola.
Eliminare . : e .
Moltiplicare per e normalizzare. ✓.
È lo stesso metodo del laboratorio sullo sprinkler (Esercizio - Rete sprinkler per enumerazione e variable elimination (laboratorio 5)), dove i fattori sono chiamati e . L'ordine di eliminazione conta per il costo (il fattore più grande che si crea determina la complessità), ma il risultato è sempre lo stesso. Esempio svolto: Esercizio - Eliminazione di variabili nella rete burglary (slide del corso).
Domande d'esame
- Quale congiunta rappresenta la rete , ? .
- Quanti numeri servono per la rete dell'allarme e per la congiunta? contro .
- Calcolare . .
- In , e sono indipendenti? E dato ? Sì senza osservare ; no se si osserva (o un suo discendente).
- Perché i modelli causali sono preferibili? Con genitori = cause la rete ha meno archi e meno numeri (allarme: contro con l'ordine invertito) e le CPT hanno un significato stimabile.
Versione ripasso
- Perché: la congiunta ha numeri; si scompone con le indipendenze condizionate (Incertezza - probabilità, regola di Bayes e indipendenza condizionataUn agente con osservazioni parziali non può usare regole logiche rigide ("mal di denti implica carie" è falso): usa la probabilità come grado di credenza e, con la teoria dell'utilità, sceglie l'azione con utilità attesa massima. Strumenti: distribuzione congiunta completa (tabella di $2^n$ valori), marginalizzazione $P(Y\mid e)=\alpha\sum_h P(Y,e,h)$ con costante di normalizzazione $\alpha=1/P(e)$, regola del prodotto $P(a,b)=P(a\mid b)P(b)$, regola di Bayes $P(\text{causa}\mid\text{effetto})=\frac{P(\text{effetto}\mid\text{causa})P(\text{causa})}{P(\text{effetto})}$ e indipendenza condizionata $P(a,b\mid c)=P(a\mid c)P(b\mid c)$, che permette di scomporre la congiunta in tabelle più piccole. Un test con sensibilità 73% e falsi positivi 12% su una malattia con prior 1/700 dà una probabilità a posteriori di appena 0,9%.Incertezza - probabilità, regola di Bayes e indipendenza condizionata →).
- Regola della catena: , sempre valida. Se dipende solo dai genitori: scomposizione in prodotto . Esempio: , dà .
- Rete bayesiana: DAG, un nodo per variabile, un arco ( genitore, di solito causa), una CPTtabella delle probabilità condizionate di un nodo per nodo; nodi senza genitori hanno un prior. Una CPT booleana con genitori ha numeri. Vantaggio anche statistico: più campioni per ogni numero da stimare.
- Allarme: , , , , : numeri contro . ; .
- Costruzione: ogni ordine è corretto, ma il modello causale (genitori = cause) è più piccolo; ordine dà numeri.
- Tre strutture (Eventi indipendenti e indipendenza condizionataA e B sono indipendenti se P(AB) = P(A)P(B), cioè (se P(B) > 0) P(A | B) = P(A): sapere B non cambia la probabilità di A. Se A, B sono indipendenti lo sono anche A e Bᶜ. Tre eventi sono indipendenti se lo sono a coppie E P(ABC) = P(A)P(B)P(C): l'indipendenza a coppie non basta. Prove ripetute indipendenti: le probabilità si moltiplicano. Indipendenza condizionata a F: P(AB | F) = P(A | F)P(B | F); non implica l'indipendenza (due lanci della stessa moneta scelta a caso). Eventi disgiunti con probabilità positive non sono mai indipendenti.Eventi indipendenti e indipendenza condizionata →): catena e fork : e dipendenti, indipendenti dato . Collider : e indipendenti, dipendenti se si osserva o un suo discendente. Dadi: e implicano .
- Numeri nell'allarme: catena , . Fork , . Collider , ma e (explaining away).
- Enumerazione: come somma di prodotti di CPT in ordine topologico, in profondità da sinistra a destra, fattori costanti portati fuori.
- Esempio: con e : somme su () e (), . Per : e , . , .
- Costo: esponenziale nelle nascoste e con prodotti ripetuti ( e compaiono più volte).
- Variable elimination: CPT come fattori; evidenza fissata; per ogni nascosta, prodotto dei fattori che la contengono e somma. Allarme: ; : , , , ; ; per e normalizzazione . Il risultato non dipende dall'ordine, il costo sì (fattore più grande). Stesso metodo del laboratorio sprinkler (, : Esercizio - Rete sprinkler per enumerazione e variable elimination (laboratorio 5)).
- Errori tipici: dimenticare i fattori ; sommare su variabili osservate; scordare ; credere che collider e catena si comportino allo stesso modo sotto osservazione; credere che gli archi siano sempre cause.
- Codice:
enumeration_ask(X, ev)somma ricorsivamente sulle variabili non osservate nell'ordine topologico e normalizza ([0.2842, 0.7158]per );bn[var] = (genitori, CPT)con CPT che dà e1 - pper il falso. - Altre posteriori nell'allarme: , , .
Esercizi su questo argomento
- Esercizio - Campionamento - rejection sampling e likelihood weighting sulla rete sprinkler (slide del corso)
- Esercizio - Effetto causale di pioggia e irrigatore sul prato bagnato (laboratorio 7)
- Esercizio - Eliminazione di variabili nella rete burglary (slide del corso)
- Esercizio - Epidemia di colera di Broad Street (laboratorio 5)
- Esercizio - Inferenza per enumerazione nella rete burglary (slide del corso)
- Esercizio - Prior sampling sulla rete burglary (laboratorio 6)
- Esercizio - Rete bayesiana dell'offerta di lavoro e intervento do (esempio di forma d'esame)
- Esercizio - Rete sprinkler per enumerazione e variable elimination (laboratorio 5)
Teoria collegata
- Apprendimento delle reti bayesiane - parametri e struttura
- Incertezza - probabilità, regola di Bayes e indipendenza condizionata
- Inferenza approssimata nelle reti bayesiane - campionamento
- Inferenza causale - modelli causali strutturali e scala della causalità
- Interventi e operatore do - criterio backdoor e aggiustamento
- Ragionamento probabilistico nel tempo - catene di Markov, HMM, filtraggio e smoothing