Inferenza per enumerazione ed eliminazione di variabili

Immaginiamo di dover calcolare la probabilità di un evento X date delle informazioni (evidence) {\bf e}=\{e_1,\,e_2,\,\dots,\,e_n\}, possiamo calcolare la probabilità P(X \mid {\bf e}), ovvero la probabilità che X avvenga date le informazioni disponibili, come

\tag{$\spades$}P(X \mid {\bf e})=\alpha P(X,\,{\bf e}),\qquad\text{con }\alpha=\dfrac{1}{\displaystyle\sum_{i=0}^n P(X \mid e_i)}

Esempio: consideriamo il seguente grafo

Calcolare {\bf P}(B \mid j,\,m).

Soluzione
  1. Possiamo innanzitutto trasformare la probabilità {\bf P}(B \mid j,\,m) come \alpha{\bf P}(B,\,j,\,m), dove abbiamo usato (\spades)
  2. A questo punto, la distribuzione di probabilità in questione può essere ulteriormente divisa utilizzando la probabilità totale
    {\bf P}(B \mid j,\,m)=\alpha\langle P(b,\,j,\,m),\,P(\neg b,\,j,\,m)\rangle
  3. Dobbiamo ora calcolare separatamente i valori P(b,\,j,\,m) e P(\neg b,\,j,\,m) sfruttando la probabilità totale marginalizzando sui valori e ed a che non appaiono nella probabilità che stiamo cercando
  4. Per P(b,\,j,\,m) vale dunque
    \sum_e\sum_a P(b,\,j,\,m,\,e,\,a)
  5. Utilizzando la legge della probabilità totale decomposta tramite chain rule possiamo esprimere tale probabilità come
    \sum_e\sum_a P(m\mid a)P(j\mid a)P(a\mid b,\,e)P(b)P(e)
  6. Che possiamo riscrivere in maniera più ordinata come
    P(b)\sum_e P(e)\sum_a P(m\mid a)P(j\mid a)P(a\mid b,\,e)
  7. Dobbiamo ora ripetere la stessa cosa per \neg b
    \begin{aligned} P(\neg b,\,j,\,m)&=\sum_e\sum_a P(\neg b,\,j,\,m,\,e,\,a)\\[20pt] &=\sum_e\sum_a P(m\mid a)P(j\mid a)P(a\mid \neg b,\,e)P(\neg b)P(e)\\[20pt] &=P(\neg b)\sum_e P(e)\sum_a P(m\mid a)P(j\mid a)P(a\mid \neg b,\,e) \end{aligned}
  8. Per trovare {\bf P}(B \mid j,\,m) dobbiamo ora soltanto trovare il valore di \alpha tale per cui
    P(b,\,j,\,m)+P(\neg b,\,j,\,m)=1

Esercizio: facendo riferimento alla seguente rete baeysiana con le relative CPT, calcolare la probabilità che sia avvenuta una rapina (Burglary) se sia Mary che John hanno chiamato.

Soluzione

Si tratta, di fatto, della stessa rete utilizzata nell’esempio precedente. Non ci resta che trovare i valori numerici per P(\neg b,\,j,\,m) e P(b,\,j,\,m).

  1. Il valore di P(b) può essere ottenuto dalla CPT e vale
    P(b)=0.001
  2. Per le sommatorie dovremo invece considerare diversi casi: bisognerà innanzitutto far variare il valore di e tra tutti i suoi valori possibili—dunque e e \neg e— per poi utilizzarli ognuno nella sommatoria in a che a sua volta andrà divisa tra i valori a e \neg a
  3. Espandiamo prima la sommatoria in a con il valore e (non negato)
    \begin{aligned} &\sum_a P(m\mid a)P(j\mid a)P(a\mid b,\,e)=\\ &=P(m \mid a)P(j \mid a)P(a \mid b,\, e)+P(m \mid \neg a)P(j \mid \neg a)P(\neg a \mid b,\, e)\\ &=0.7\cdot0.9\cdot0.95+0.01\cdot0.05\cdot(1-0.95)\\ &=0.598525 \end{aligned}
  4. Espandendo invece la sommatoria in a con il valore \neg e
    \begin{aligned} &\sum_a P(m\mid a)P(j\mid a)P(a\mid b,\,\neg e)=\\ &=P(m \mid a)P(j \mid a)P(a \mid b,\, \neg e)+P(m \mid \neg a)P(j \mid \neg a)P(\neg a \mid b,\, \neg e)\\ &=0.7\cdot0.9\cdot0.94+0.01\cdot0.05\cdot(1-0.94)\\ &=0.59223 \end{aligned}
  5. Poiché sappiamo (dalla CPT) che
    P(e)=0.002\\ P(\neg e)=1-0.002=0.998
    possiamo calcolare il valore di P(b,\,j,\,m) come
    \begin{aligned} P(b,\,j,\,m)&=0.001\cdot[0.002\cdot0.598525+0.998\cdot0.59223]\\ &=0.0005922426 \end{aligned}
  6. Il valore di P(\neg b) può invece essere ottenuto direttamente come
    P(\neg b)=1-0.001=0.999
  7. Espandiamo prima la sommatoria in a con il valore e (non negato)
    \begin{aligned} &\sum_a P(m\mid a)P(j\mid a)P(a\mid \neg b,\,e)=\\ &=P(m \mid a)P(j \mid a)P(a \mid \neg b,\, e)+P(m \mid \neg a)P(j \mid \neg a)P(\neg a \mid \neg b,\, e)\\ &=0.7\cdot0.9\cdot0.29+0.01\cdot0.05\cdot(1-0.29)\\ &=0.183055 \end{aligned}
  8. Espandendo invece la sommatoria in a con il valore \neg e
    \begin{aligned} &\sum_a P(m\mid a)P(j\mid a)P(a\mid \neg b,\,\neg e)=\\ &=P(m \mid a)P(j \mid a)P(a \mid \neg b,\, \neg e)+P(m \mid \neg a)P(j \mid \neg a)P(\neg a \mid \neg b,\, \neg e)\\ &=0.7\cdot0.9\cdot0.001+0.01\cdot0.05\cdot(1-0.001)\\ &=0.0011295 \end{aligned}
  9. Abbiamo ottenuto a questo punto tutti gli elementi per trovare P(\neg b,\,j,\,m) sapendo che i valori della sommatoria in e sono gli stessi di prima
    \begin{aligned} P(\neg b,\,j,\,m)&=0.999\cdot[0.002\cdot0.183055+0.998\cdot0.0011295]\\ &=0.0014918576 \end{aligned}
  10. Per trovare {\bf P}(B \mid j,\,m) (che equivale alla probabilità richiesta) non ci resta dunque che normalizzare utilizzando il fattore \alpha
    {\bf P}(B \mid j,\,m)=\alpha\langle0.0005922426,\,0.0014918576\rangle
    Dove calcoliamo il valore di \alpha come
    \alpha=\dfrac{1}{0.0005922426+0.0014918576}\approx479.823
    Da cui si ottiene, approssimando a tre decimali
    {\bf P}(B \mid j,\,m)=\langle0.284,\,0.716\rangle

Eliminazione di variabili

Come abbiamo visto nello svolgimento dell’esercizio, spesso ci si ritrova a dover ripetere gli stessi calcoli più volte. Naturalmente, per rendere il procedimento più efficiente si possono calcolare preventivamente i diversi valori che devono essere utilizzati più volte, riscrivendo dunque le espressioni utilizzate nell’esercizio in termini di altre quantità già calcolate.

Se hai trovato errori o informazioni mancanti scrivi a:
giacomo.dandria@esercizistem.com

Se hai trovato errori o informazioni mancanti scrivi a:
giacomo.dandria@esercizistem.com

Questa pagina è stata utile?
No
Torna in alto