Reti bayesiane: perché l’erba è bagnata e che cosa significa per l’irrigatore
Distribuzione congiunta e sua fattorizzazione, rete bayesiana e tabelle di probabilità condizionate, inferenza per enumerazione, spiegazione alternativa, d-separazione e inferenza approssimata per campionamento — sulla rete nuvoloso, irrigatore, pioggia, erba bagnata.
Serie Basi di IA Parte 40 di 52
- Mappa dell’intelligenza artificiale: che cos’è ciascuna cosa e come si incastra tutto
- Breve storia dell’intelligenza artificiale: da Turing ai modelli linguistici
- Dati, modello, addestramento, inferenza: i concetti di base su un unico esempio
- Come leggere la notazione matematica: simboli, indici, sommatorie e quantificatori
- Insiemi e relazioni: i mattoncini con cui si costruiscono le definizioni nell’IA
- Funzioni e applicazioni: perché ogni modello di IA è una funzione
- Logica e dimostrazioni: le regole con cui si ragiona nell’IA
- Grafi e alberi: la struttura su cui poggiano la ricerca e le reti neurali
- Algebra lineare per l’apprendimento automatico: vettori, matrici e perché l’IA soprattutto moltiplica
- Derivate, gradiente e regola della catena: come un modello capisce in quale direzione imparare
- Discesa del gradiente: come impara un modello
- Che cos’è la probabilità: dal lancio di un dado agli assiomi di Kolmogorov
- Probabilità condizionata e teorema di Bayes: come cambiare una stima quando scopri qualcosa di nuovo
- Variabile aleatoria e funzione di ripartizione: una sola funzione che dice tutto sulla distribuzione
- Funzione di densità e funzione di massa: perché una variabile continua ha probabilità zero in un punto
- Valore atteso, varianza e covarianza: dove si trova una distribuzione, quanto è larga e che cosa è legato a che cosa
- Panoramica delle distribuzioni di probabilità: Bernoulli, binomiale, Poisson, uniforme, normale ed esponenziale
- Legge dei grandi numeri e teorema del limite centrale: perché le medie si comportano in modo così prevedibile
- Statistica e stima dei parametri: massima verosimiglianza, MAP e intervalli di confidenza
- Teoria dell’informazione: entropia, entropia incrociata e divergenza KL — da dove vengono le funzioni di perdita
- Ricerca nello spazio degli stati: BFS, DFS, UCS e A* con animazioni
- Giochi e avversari: minimax, potatura alfa-beta e Monte Carlo tree search
- Soddisfacimento di vincoli: backtracking, propagazione dei vincoli e AC-3 su un sudoku e una mappa delle regioni ceche
- Logica e sistemi basati sulla conoscenza: concatenazione in avanti e all’indietro, risoluzione e sistemi esperti
- Pianificazione: STRIPS, il mondo dei blocchi, euristiche dal rilassamento e pianificazione negli agenti IA
- Ricerca locale e ricottura simulata: un commesso viaggiatore tra i capoluoghi di regione cechi
- Algoritmi genetici: popolazione, incrocio, mutazione e selezione su uno zaino per l’escursione
- Strategie evolutive e programmazione genetica: dalla regola di un quinto alla legge di Keplero
- Ottimizzazione con colonie di formiche: come una traccia di feromone trova un percorso breve
- Ottimizzazione a sciame di particelle: inerzia, esperienza propria ed esperienza dello sciame
- Neuroevoluzione: evoluzione dei pesi e della forma delle reti neurali e l’algoritmo NEAT
- Insiemi fuzzy e funzioni di appartenenza: come scrivere «un po’ caldo»
- Logica fuzzy e probabilità: perché «un po’ caldo» non significa «probabilmente caldo»
- Logica fuzzy: t-norme, implicazioni e regole SE–ALLORA
- Controllo fuzzy: Mamdani e Sugeno, dal ventilatore al pendolo inverso su un carrello
- Clustering fuzzy: l’algoritmo fuzzy c-means e i punti tra i cluster
- Sistemi neuro-fuzzy (ANFIS): regole fuzzy che imparano dai dati
- Catene di Markov: matrice di transizione, distribuzione stazionaria e PageRank
- Modelli di Markov nascosti: l’algoritmo di Viterbi e il casinò disonesto
- Reti bayesiane: perché l’erba è bagnata e che cosa significa per l’irrigatore
- Filtro di Kalman: come stimare da misure imprecise dove si trova un’auto e a che velocità va
- Tipi di apprendimento automatico: supervisionato, non supervisionato, semi-supervisionato e altri
- Prompt, contesto e RAG: come dare a un modello le informazioni giuste
- Autoencoder variazionali (VAE): immagini nuove da uno spazio latente continuo
- Reti generative avversarie (GAN): il falsario contro il detective
- Modelli di diffusione: come il rumore puro diventa un’immagine
- Processi decisionali di Markov: stati, azioni, ricompense ed equazioni di Bellman
- Q-learning e DQN: imparare il valore delle azioni, dalla tabella alla rete neurale
- Policy gradient e PPO: imparare direttamente la politica
- Come funziona un agente IA: un modello linguistico in un ciclo con strumenti
- Programmare con agenti IA: incarico, test e controllo
- Valutazione e sicurezza dei sistemi di IA: come misurare e come sorvegliare
Programma completo della serie 52 di 83 argomenti pubblicati
- Come una rete bayesiana riduce un’enorme tabella di probabilità a poche tabelle piccole.
- Come una rete ragiona dagli effetti alle cause e che cos’è la spiegazione alternativa (explaining away).
- Come leggere dal grafo quali variabili sono indipendenti e come si stimano le probabilità per campionamento.
Utile sapere prima: Probabilità condizionata e teorema di Bayes: come cambiare una stima quando scopri qualcosa di nuovo, Grafi e alberi: la struttura su cui poggiano la ricerca e le reti neurali
Al mattino esci di casa e l’erba è bagnata. Ha piovuto o è andato l’irrigatore? E quando poi il vicino ti dice che durante la notte ha piovuto — cambia quello che pensi dell’irrigatore? Una persona ragiona così senza pensarci. Anche una macchina ci riesce, purché sappia che cosa è collegato a che cosa. Una rete bayesiana è un disegno di questi collegamenti da cui si può calcolare la risposta a qualunque domanda. Judea Pearl ha ricevuto per essa e per la teoria della causalità che ne è nata il premio Turing nel 2011.
Riprende le parti Probabilità condizionata e teorema di Bayes e Grafi e alberi.
1. Il problema della grande tabella
L’informazione completa su più variabili aleatorie è la loro distribuzione congiunta — la probabilità di ogni combinazione di valori. Per quattro variabili sì/no le combinazioni sono 16, cioè 15 numeri indipendenti. Per 37 variabili (tante ne ha la nota rete medica ALARM per il monitoraggio dei pazienti in anestesia) sarebbero oltre 137 miliardi di numeri, anche se fossero tutte solo sì/no. Una tabella del genere nessuno la costruisce, la memorizza o la stima dai dati. Ci salva il fatto che la maggior parte delle variabili è collegata solo indirettamente.
Definizione — distribuzione congiunta e numero dei suoi parametri
La distribuzione congiunta delle variabili discrete X1, …, Xn è la funzione P(x1, …, xn) = P(X1 = x1, …, Xn = xn), non negativa e con somma 1 su tutte le combinazioni di valori. Per n variabili sì/no ha 2n valori; l’ultimo si ricava dagli altri (la somma è 1), quindi i parametri indipendenti sono 2n − 1.
Calcolo. 24 − 1 = 15; 237 − 1 = 137 438 953 471.
Teorema — regola della catena
Per variabili qualsiasi e ogni combinazione di valori con probabilità positiva vale
P(x1, …, xn) = P(x1) · P(x2 | x1) · P(x3 | x1, x2) ⋯ P(xn | x1, …, xn−1) = ∏i=1n P(xi | x1, …, xi−1).
Dimostrazione: dalla definizione di probabilità condizionata si ha P(x1, …, xn) = P(xn | x1, …, xn−1) · P(x1, …, xn−1). Applichiamo lo stesso al secondo fattore e così via, finché resta P(x1). ∎
La regola della catena non fa risparmiare nulla: l’ultimo fattore dipende ancora da tutte le variabili precedenti, quindi è solo un altro modo di scrivere la stessa enorme tabella. Il risparmio arriva quando alcune condizioni le togliamo.
2. Rete bayesiana
Definizione — rete bayesiana
Una rete bayesiana sulle variabili X1, …, Xn è un grafo orientato aciclico i cui nodi sono le variabili, con per ogni nodo una tabella di probabilità condizionate P(Xi | genitori(Xi)). La rete determina la distribuzione congiunta
P(x1, …, xn) = ∏i P(xi | genitori(Xi)).
Le frecce vanno dalle cause agli effetti. Per ogni variabile basta sapere come dipende dalle sue cause dirette — niente di più. La probabilità dell’intera situazione è il prodotto di questi numeri locali. Invece di un’unica tabella enorme ne abbiamo qualcuna piccola.
Perché la rete può scrivere solo P(xi | genitori) e non tutta la storia precedente come la regola della catena? Perché sul grafo presuppone delle indipendenze condizionate.
Definizione — indipendenza condizionata
Le variabili A e C sono condizionatamente indipendenti dato E, e si scrive A ⊥ C | E, se per tutti i valori a, c, e con P(c, e) > 0 vale
P(a | c, e) = P(a | e)
- P(a | c, e)
- ciò che sappiamo di A quando conosciamo E e in più C
- P(a | e)
- ciò che sappiamo di A dal solo E; l’uguaglianza dice che C non aggiunge più nulla — tutto il legame tra A e C passa per E
Teorema — la fattorizzazione è la regola della catena più le indipendenze locali
Ordiniamo le variabili topologicamente (ogni genitore prima dei suoi figli). Se ogni variabile Xi, noti i genitori, è condizionatamente indipendente da tutte le variabili che non sono sue discendenti (condizione di Markov locale), allora P(x1, …, xn) = ∏i P(xi | genitori(Xi)).
Dimostrazione: nella regola della catena in ordine topologico compare P(xi | x1, …, xi−1). Tra X1, …, Xi−1 ci sono tutti i genitori di Xi e nessun suo discendente (un discendente viene nell’ordine dopo di lui). Per la condizione di Markov possiamo togliere dalla condizione tutti gli altri e resta P(xi | genitori(Xi)). ∎
Vale anche il contrario: ogni distribuzione data da un prodotto di tabelle soddisfa la condizione di Markov locale. Per questo una rete bayesiana si può definire in entrambi i modi.
La nostra rete: quando è nuvoloso, la pioggia è più probabile ed è meno probabile che qualcuno accenda l’irrigatore. Sia la pioggia sia l’irrigatore rendono l’erba bagnata. I numeri vengono dal noto esempio di Kevin Murphy:
La rete ha 1 + 2 + 2 + 4 = 9 numeri invece di 15. Con quattro variabili il risparmio è piccolo, con centinaia è enorme: se ogni nodo ha al massimo k genitori, il numero dei numeri cresce con n linearmente (n · 2k), non esponenzialmente (2n). La probabilità della situazione «nuvoloso, irrigatore spento, ha piovuto, erba bagnata» è 0,5 · 0,9 · 0,8 · 0,9 = 0,324.
P(z, p, d, t) = P(z) · P(p | z) · P(d | z) · P(t | p, d)
- P(z)
- nuvoloso non ha genitori, la sua tabella è un solo numero; nell’esempio 0,5
- P(p | z)
- l’irrigatore dipende solo dalle nuvole — qui non c’è nessuna differenza dalla regola della catena; nell’esempio era spento con il cielo nuvoloso: 1 − 0,1 = 0,9
- P(d | z)
- la regola della catena vorrebbe P(d | z, p); la rete presuppone che, noto il cielo, l’irrigatore non dica nulla sulla pioggia, e così p esce dalla condizione; nell’esempio 0,8
- P(t | p, d)
- la regola della catena vorrebbe P(t | z, p, d); l’erba «sa» delle nuvole solo attraverso la pioggia e l’irrigatore, e così esce z; nell’esempio (irrigatore no, pioggia sì) 0,9
3. Inferenza: dall’effetto alla causa
Definizione — inferenza per enumerazione
La probabilità dell’interrogazione Q data l’evidenza E = e è
P(Q | e) = ∑y P(Q, e, y) / ∑q, y P(q, e, y),
dove si somma su tutti i valori y delle altre variabili (nascoste) e ogni termine è un prodotto dato dalla fattorizzazione della rete.
Passiamo in rassegna tutti i mondi possibili che concordano con ciò che sappiamo (l’erba è bagnata) e guardiamo quanto pesano, fra questi, quelli in cui ha piovuto. È il teorema di Bayes della parte sulla probabilità condizionata, solo che si somma su più variabili alla volta.
P(Q | e) = ∑y P(Q, e, y) / ∑q, y P(q, e, y)
- e
- evidenza — i valori che abbiamo osservato (da noi l’erba bagnata); in tutti i mondi sommati sono fissi
- ∑y
- le variabili nascoste (da noi nuvoloso e irrigatore) non le conosciamo e non ci interessano, quindi sommiamo su tutte le loro possibilità — marginalizzazione; i mondi si escludono a vicenda, quindi le probabilità si sommano
- P(Q, e, y)
- la probabilità di un mondo completo in cui valgono l’interrogazione e l’evidenza — un prodotto di numeri delle tabelle secondo la fattorizzazione
- ∑q, y P(q, e, y)
- = P(e), il peso di tutti i mondi che concordano con l’evidenza; la divisione è la definizione di probabilità condizionata P(Q | e) = P(Q, e) / P(e) e garantisce che P(Q | e) + P(¬Q | e) = 1
Esempio — P(pioggia | erba bagnata) per enumerazione
L’evidenza è T = sì, l’interrogazione D, nascoste sono Z e P. I mondi con l’erba bagnata sono 23 = 8; ognuno è il prodotto P(z) · P(p | z) · P(d | z) · P(t | p, d):
| pioggia | nuvoloso | irrigatore | prodotto | P(mondo) |
|---|---|---|---|---|
| sì | sì | sì | 0,5 · 0,1 · 0,8 · 0,99 | 0,0396 |
| sì | no | sì | 0,5 · 0,5 · 0,2 · 0,99 | 0,0495 |
| sì | sì | no | 0,5 · 0,9 · 0,8 · 0,9 | 0,3240 |
| sì | no | no | 0,5 · 0,5 · 0,2 · 0,9 | 0,0450 |
| no | sì | sì | 0,5 · 0,1 · 0,2 · 0,9 | 0,0090 |
| no | no | sì | 0,5 · 0,5 · 0,8 · 0,9 | 0,1800 |
| no | sì | no | 0,5 · 0,9 · 0,2 · 0 | 0,0000 |
| no | no | no | 0,5 · 0,5 · 0,8 · 0 | 0,0000 |
Le prime quattro righe (ha piovuto) danno P(D, T) = 0,4581, tutte e otto P(T) = 0,6471. Le ultime due righe sono nulle: senza pioggia e senza irrigatore l’erba non è bagnata. Quindi
P(D | T) = 0,4581 / 0,6471 = 0,708.
def dotaz(Q, dukazy, sit):
citatel = jmenovatel = 0.0
for svet in vsechna_prirazeni(sit): # 2^n mondi completi
if any(svet[k] != v for k, v in dukazy.items()):
continue # non concorda con l’evidenza
p = 1.0
for uzel in sit: # fattorizzazione della rete
p *= P(uzel, svet[uzel], svet[rodice(uzel)])
jmenovatel += p # → P(e)
if svet[Q]:
citatel += p # → P(Q, e)
return citatel / jmenovatel
A priori (senza alcuna osservazione) la probabilità della pioggia è 0,5 e quella dell’irrigatore 0,3. L’erba bagnata le aumenta entrambe: P(pioggia | erba bagnata) = 0,708 e P(irrigatore | erba bagnata) = 0,430. La pioggia è la spiegazione più probabile, perché piove più spesso di quanto vada l’irrigatore. L’erba bagnata aumenta anche la probabilità che fosse nuvoloso — da 0,5 a 0,576 —, benché l’erba e le nuvole non siano collegate direttamente. L’informazione scorre nella rete contro le frecce.
4. Spiegazione alternativa
Ora veniamo a sapere che durante la notte ha piovuto davvero. Che cosa succede all’irrigatore?
La probabilità dell’irrigatore scende da 0,430 a 0,194. La pioggia ha già spiegato l’erba bagnata, quindi per l’irrigatore non resta alcun motivo. Al contrario, quando sappiamo che l’irrigatore era acceso, la probabilità della pioggia scende da 0,708 a 0,320. Questo fenomeno si chiama spiegazione alternativa (explaining away). Due cause che a priori erano collegate solo debolmente, appena osserviamo il loro effetto comune, cominciano a «scalzarsi» a vicenda. E se sapessimo che non ha piovuto, l’irrigatore dovrebbe per forza essere stato acceso: P(irrigatore | erba bagnata, niente pioggia) = 1, perché nella nostra rete l’erba non può bagnarsi da sola.
Esempio — la spiegazione alternativa in numeri
Dalla tabella dell’esempio precedente: i mondi in cui ha piovuto, l’irrigatore era acceso e l’erba è bagnata hanno insieme P(P, D, T) = 0,0396 + 0,0495 = 0,0891. Perciò
P(P | T, D) = P(P, D, T) / P(D, T) = 0,0891 / 0,4581 = 0,194,
P(D | T, P) = P(P, D, T) / P(P, T) = 0,0891 / 0,2781 = 0,320.
Formalmente la spiegazione alternativa è la disuguaglianza P(P | T, D) < P(P | T): la conferma di una causa abbassa la probabilità dell’altra (0,194 < 0,430).
5. Che cosa si legge nella rete: la d-separazione
Il grafo non dice solo come calcolare — dice anche quali variabili sono indipendenti tra loro, e senza un solo numero. Tutte le possibilità si compongono di tre forme di base:
- Catena A → B → C: A e C sono collegate, ma quando conosciamo B, non più. (Nuvoloso → pioggia → erba bagnata: a chi sa se ha piovuto, le nuvole non dicono nulla sull’erba.)
- Biforcazione A ← B → C: una causa comune rende A e C dipendenti; quando la conosciamo, la dipendenza sparisce. (Irrigatore e pioggia sono collegati a priori attraverso le nuvole: P(irrigatore | pioggia) = 0,18, ma P(irrigatore | niente pioggia) = 0,42. Quando sappiamo se è nuvoloso, sono indipendenti.)
- Collisore A → B ← C: le cause sono indipendenti finché non osserviamo l’effetto comune — allora diventano dipendenti. È la spiegazione alternativa.
Definizione — d-separazione
Un cammino nel grafo (senza badare al verso delle frecce) è bloccato dall’insieme E se su di esso si trova una catena o una biforcazione con il nodo centrale in E, oppure un collisore tale che né il suo nodo centrale né alcun suo discendente sta in E. Le variabili A e C sono d-separate dall’insieme E se E blocca tutti i cammini tra di loro. Allora in ogni distribuzione determinata dalla rete sono condizionatamente indipendenti dato E.
L’informazione scorre nel grafo lungo i cammini. Una variabile nota al centro di una catena o di una biforcazione ferma il flusso — è già «spiegata». Nel collisore è il contrario: finché non conosciamo l’effetto, lì il flusso è fermo; appena lo osserviamo, si apre. Dal disegno si capisce così che cosa serve misurare e che cosa è superfluo.
Nella nostra rete nuvoloso ed erba bagnata sono d-separati quando conosciamo sia l’irrigatore sia la pioggia — il calcolo lo conferma: la probabilità del cielo nuvoloso allora non dipende affatto dall’erba.
Esempio — le tre forme verificate con il calcolo
- Biforcazione irrigatore ← nuvoloso → pioggia. Senza conoscere il cielo: P(P | D) = 0,18 ≠ P(P) = 0,3, dipendenti. Con il cielo noto: P(P | Z, D) = 0,1 = P(P | Z), quindi P ⊥ D | Z.
- Collisore irrigatore → erba bagnata ← pioggia. Con il cielo noto P e D sono indipendenti (P(P | Z, D) = P(P | Z, ¬D) = 0,1), ma appena osserviamo l’erba, non più: P(P | Z, D, T) = 0,109, mentre P(P | Z, ¬D, T) = 1.
- D-separazione del cielo nuvoloso e dell’erba bagnata tramite l’insieme {P, D}: entrambi i cammini Z → P → T e Z → D → T sono catene con il nodo centrale noto, quindi sono bloccati. E infatti: P(Z | P, D) = 0,444 e P(Z | P, D, T) = 0,444; P(Z | P, ¬D) = 0,048 e P(Z | P, ¬D, T) = 0,048.
6. Inferenza approssimata per campionamento
L’inferenza per enumerazione passa in rassegna tutte le combinazioni delle variabili nascoste — in una rete generica un numero esponenziale. L’inferenza esatta nelle reti bayesiane è NP-difficile. Per le reti grandi le probabilità si stimano quindi con una simulazione.
Algoritmi — campionamento per rifiuto e ponderazione per verosimiglianza
Campionamento per rifiuto (rejection sampling): genera mondi dalla rete (dalle cause agli effetti, secondo le tabelle), scarta quelli che non concordano con l’evidenza e fra i rimanenti calcola la frazione in cui vale l’interrogazione.
Ponderazione per verosimiglianza (likelihood weighting): l’evidenza non estrarla a sorte, ma fissala; pesa ogni mondo generato con il prodotto delle probabilità dell’evidenza dati i valori dei suoi genitori. La stima è la frazione pesata.
Il rifiuto è onesto, ma spreca: quando l’evidenza è rara, butta via quasi tutti i campioni. La ponderazione per verosimiglianza non butta via nulla — assegna solo a ogni campione un peso in base a quanto bene si accorda con ciò che sappiamo.
def zamitani(Q, dukazy, n, sit):
prijato = ano = 0
for _ in range(n):
svet = {}
for uzel in sit: # dalle cause agli effetti
svet[uzel] = nahoda() < P(uzel, True, svet[rodice(uzel)])
if any(svet[k] != v for k, v in dukazy.items()):
continue # nel cestino
prijato += 1
ano += svet[Q]
return ano / prijato
def vazena(Q, dukazy, n, sit):
s = s_ano = 0.0
for _ in range(n):
svet, w = {}, 1.0
for uzel in sit:
p = P(uzel, True, svet[rodice(uzel)])
if uzel in dukazy: # l’evidenza non la estraiamo…
svet[uzel] = dukazy[uzel]
w *= p if dukazy[uzel] else 1 - p # …ma pesiamo quanto è probabile
else:
svet[uzel] = nahoda() < p
s += w
s_ano += w * svet[Q]
return s_ano / s
P̂(Q | e) = ∑k wk [Q vale nel campione k] / ∑k wk, wk = ∏j P(ej | genitorik)
- wk
- il peso del campione (in verde come la curva della ponderazione per verosimiglianza nel grafico) — il prodotto delle probabilità di tutte le evidenze ej dati i valori dei loro genitori usciti nel campione k: l’evidenza non l’abbiamo estratta, ma imposta, quindi dobbiamo tenere conto di quanto sarebbe probabile con gli altri valori estratti — altrimenti la stima sarebbe distorta
- [Q vale nel campione k]
- 1 se nel campione vale l’interrogazione, altrimenti 0 — contiamo solo il peso dei campioni in cui ha piovuto
- ∑k wk
- il peso totale; dividendo per esso otteniamo una frazione, proprio come la divisione per P(e) nell’enumerazione. Grazie a essa non importa che i pesi non sommino a 1
Esempio — i pesi con l’evidenza «l’erba è bagnata»
L’unica evidenza è T = sì, i suoi genitori sono l’irrigatore e la pioggia. Il peso di un campione è quindi semplicemente P(T = sì | p, d) dalla tabella dell’erba bagnata:
- irrigatore e pioggia: w = 0,99,
- solo uno dei due: w = 0,9,
- nessuno dei due: w = 0 — un campione così non contribuisce a nulla, proprio come il rifiuto lo butterebbe via.
Dal cielo il peso non dipende: nuvoloso non è un genitore dell’erba.
Con cento campioni il rifiuto ha dato la stima 0,686 e ne ha usati solo 70 — gli altri 30 avevano l’erba asciutta e sono finiti nel cestino. Con 10 000 campioni (di cui ne sono rimasti 6 524) la stima è 0,703, vicina al valore esatto 0,708. L’errore scende come 1/√N, come dice il teorema del limite centrale: per una stima dieci volte più precisa servono cento volte più campioni.
σP̂ = √(p(1 − p) / Nacc), Nacc ≈ N · P(e)
- p(1 − p)
- la varianza di un singolo campione di tipo sì/no (distribuzione di Bernoulli con probabilità p); è massima per p = 0,5, quando un singolo campione è meno prevedibile
- Nacc
- il numero di campioni che contano davvero; nel rifiuto solo quelli che sono passati, e in media sono la frazione P(e) — con un’evidenza rara quasi nessuno. La varianza della media di N campioni indipendenti è N volte più piccola
Esempio — quanto errore aspettarsi
Il valore esatto è p = 0,708 e P(e) = P(T) = 0,6471, quindi su 10 000 campioni ci aspettiamo circa 6 471 accettati (in realtà sono stati 6 524).
- Nacc = 70: σ = √(0,708 · 0,292 / 70) = 0,054; errore effettivo |0,686 − 0,708| = 0,022.
- Nacc = 6 524: σ = 0,0056; errore effettivo 0,0050.
Entrambi gli errori effettivi sono minori di una deviazione standard — in accordo con il fatto che circa due terzi delle stime cadono entro ±σ (distribuzione normale secondo il teorema del limite centrale).
7. Le reti bayesiane nella pratica
- Diagnostica. Reti mediche (ALARM, QMR-DT con centinaia di malattie e migliaia di sintomi) e diagnostica dei guasti di macchine e reti: dai sintomi osservati ricavare la causa più probabile — e suggerire che cosa misurare dopo.
- Apprendimento dai dati. Le tabelle si possono stimare dai dati contando (con il metodo della massima verosimiglianza della parte sulla statistica), anche quando alcuni valori mancano — con l’algoritmo EM, parente dell’algoritmo di Baum–Welch della parte precedente.
- Causalità. Pearl ha mostrato che una rete letta come grafo di cause sa rispondere anche a domande del tipo «che cosa succederebbe se intervenissimo» — se accendessimo noi l’irrigatore —, cosa che dalle sole correlazioni non si ricava. Su questo poggia l’odierna inferenza causale in epidemiologia ed economia.
- Parenti. Il classificatore bayesiano ingenuo (naive Bayes) è una rete bayesiana con una causa e molti effetti indipendenti. I modelli di Markov nascosti della parte precedente sono una rete bayesiana srotolata nel tempo.
8. Riepilogo
- Una rete bayesiana è un grafo orientato aciclico con tabelle P(X | genitori); la distribuzione congiunta è il prodotto di queste tabelle. La nostra rete richiede 9 numeri invece di 15.
- L’inferenza va anche contro le frecce: l’erba bagnata aumenta la probabilità della pioggia a 0,708 e quella dell’irrigatore a 0,430.
- Spiegazione alternativa: quando sappiamo che ha piovuto, la probabilità dell’irrigatore scende a 0,194.
- La d-separazione legge le indipendenze direttamente dal grafo — catena e biforcazione si chiudono con l’osservazione, il collisore si apre.
- L’inferenza esatta è in generale NP-difficile; il campionamento dà stime con un errore che scende come 1/√N.
Vuoi toccarlo con mano? Fai costruire a un agente IA una rete bayesiana per un guasto della tua auto o del tuo computer («non parte — batteria o motorino di avviamento?») e prova come cambiano i sospetti quando aggiungi osservazioni.
La vedi diversamente? Scrivi a support@coden-app.com.