Home » Intelligenza Artificiale » 📋 URL
Per misurare le performance del nostro agente razionale abbiamo bisogno di utilizzare la
- Teoria dell’utilità: per capire la qualità del risultato di un’azione
- Teoria decisionale: per riuscire a prendere le migliori decisioni che massimizzino l’utilità attesa per un certo problema
Avremo bisogno dei seguenti concetti di teoria della probabilità:
- Assiomi della probabilità: chiamando P(e) la probabilità di un evento e in uno spazio di probabilità W si ha
0\leq P(e)\leq 1\\[10pt] \sum_{e\in W}P(e)=1 - Probabilità congiunta (joint probability): la probabilità che più eventi e_1,\,\dots,\,e_n avvengano contemporaneamente è pari a
P(e_1,\,\dots,\,e_n)\equiv P(e_1\wedge e_2\wedge\dots\wedge e_n) - Probabilità condizionale di a dato b
P(a \mid b)=\dfrac{P(a, \, b)}{P(b)} - Indipendenza di due eventi a,\,b
\begin{aligned} &P(a \mid b)=P(a)\\ &P(b \mid a)=P(b)\\ &P(a,\,b)=P(a)\cdot P(b) \end{aligned} - Indipendenza condizionale di più eventi
\begin{aligned} &P(a \mid b,\,c)=P(a \mid c)\\ &P(b \mid a,\,c)=P(b \mid c)\\ &\underbrace{P(a,\,b \mid c)=P(a \mid x)\cdot P(b \mid c)}_{\displaystyle\text{importante!}} \end{aligned} - Legge della probabilità totale dato un insieme \{b_1,\,\dots,\,b_n\} mutualmente esclusivi si ha
\begin{aligned} P(a)&=P(a,\,b_1)+P(a,\,b_2)+\dots+P(a,\,b_n)\\[10pt] &=\sum_{k=1}^N P(a,\,b_k)\\[10pt] &=\sum_{k=1}^N P(a \mid b_k)P(b_k) \Leftarrow\text{lo useremo dopo} \end{aligned}
Nota: l’ultima espressione verrà utilizzata qui. - Probabilità marginale: in un’espressione con più variabili, la probabilità marginale rappresenta la probabilità di una sola variabile
P(Y)=\sum_{z\in Z}P(Y \mid z) - Regola di Bayes:
P(A \mid B)=\dfrac{P(B \mid A)\cdot P(A)}{P(B)}
Esempio: facendo riferimento alla seguente tabella, trovare le probabilità
- P(\text{Mal di denti})
- P(\text{Carie [katex]\vee[katex] Mal di denti})
- P(\neg\text{Carie} \mid \text{Mal di denti})
Soluzione
Per la prima richiesta bisogna sommare tutti i valori in rosso
P(\text{Mal di denti})=\textcolor{red}{0.018+0.012+0.016+0.064}=0.2
Per la seconda bisogna sommare tutti i valori sottolineati
P(\text{Carie}\vee\text{Mal di denti})=\underline{0.108+0.012+0.072+0.008+0.016+0.064}=0.28
Per la terza bisogna combinare assieme diversi valori
\begin{aligned} P(\neg\text{Carie} \mid \text{Mal di denti})&=\frac{P(\neg\text{Carie}\wedge\text{Mal di denti})}{P(\text{Mal di denti})}\\[10pt] &=\frac{0.016+0.064}{0.108+0.012+0.012+0.016+0.064}\\[10pt] &=0.4 \end{aligned}
Esercizio: dati due dadi ideali, trovare la probabilità
P(D_1+D_2=7\mid D_1=3)
Soluzione
Avendo fissato il valore D_1=3, il valore di D_2 deve necessariamente essere 4. Si tratta dunque di calcolare
(D_1+D_2=7)\wedge(D_1=3)
La probabilità che il dado D_1 sia 3 è semplicemente 1/6, mentre c'è soltanto un caso in cui si ottiene la somma richiesta dal lancio dei due dadi. Poiché ci sono 36 possibili permutazioni di valori la probabilità del lancio dei due dadi è 1/36. Si avrà dunque
P(D_1+D_2=7\mid D_1=3)=\dfrac{P(D_1+D_2=7,\,D_1=3)}{P(D_1=3)}=\dfrac{1/36}{1/6}=\frac{1}{6}
Esercizio: dati due dadi ideali, trovare la probabilità
P(D_1+D_2<7\mid D_1=D_2)
Soluzione
Ci sono in totale 36 possibili risoltati, dei quali soltanto le coppie (1-1),\,(2-2),\,(3,3) soddisfano la probabilità richiesta. La probabilità che i due dadi restituiscano lo stesso risultato avviene dunque 6 volte su 36, dove ogni coppia deve essere contata due volte, infatti (D_1=i,\,D_2=j)=(D_1=j,\,D_2=i),\,i=j. Si ha dunque
P(D_1+D_2<7\mid D_1=D_2)\dfrac{P(D_1+D_2<7,\,D_1=D_2)}{P(D_1=D_2)}=\dfrac{3/36}{6/36}=\frac{1}{2}
Esercizio: un dottore conosce la probabilità che un paziente che soffre di meningite abbia male al collo, ovvero 70\%. Il dottore conosce inoltre la probabilità che un paziente qualunque abbia la meningite (1/50\,000) e la probabilità che un paziente abbia male al collo (1\%). Trovare la probabilità che un paziente che abbia la meningite dato che ha male al collo.
Soluzione
Chiamiamo s la probabilità che un paziente abbia male al collo e m quella che abbia la neningite
P(m)=1/50\,000\qquad P(s)=0.01
Conosciamo inoltre la probabilità che un paziente abbia male al collo dato che ha la meningite
P(s\mid m)=0.7
Tramite Bayes possiamo dunque trovare la probabilità richiesta P(m\mid s)
P(m\mid s)=\dfrac{P(s\mid m)P(m)}{P(s)}=\dfrac{0.7\cdot1/50\,000}{0.01}=0.0014
Distribuzioni di probabilità
La distribuzione di probabilità {\bf P}(X) rappresenta l'insieme delle probabilità assegnate a tutti i valori del dominio della variabile aleatoria X
{\bf P}(X)=\{P(x_1), \, P(x_2), \, P(x_3), \, \dots\}\\[10pt] X\in \{x_2, \, x_2, \, x_3,\, \dots \} \qquad \sum_{x_i} P(x_i)=1
Esempio: modellando la distribuzione di probabilità del lancio di un dado si ottiene
{\bf P}(D)=\left\{\dfrac{1}{6}, \, \dfrac{1}{6}, \, \dfrac{1}{6}, \, \dfrac{1}{6}, \, \dfrac{1}{6}, \, \dfrac{1}{6}\right\}
Densità di probabilità
Nel caso in cui si abbia a che fare con delle variabili aleatorie continue, la distribuzione di probabilità viene sostituita da una densità di probabilità (PDF: Probability Density Function)
P(X=x) \equiv p(x) \qquad \int p(x) \, dx = 1
Modelli Bayesiani Naïve
Utilizzando la legge della probabilità totale (full joint distribution) possiamo scrivere la seguente uguaglianza
P(\text{Causa},\,\text{effetto}_1,\,\text{effetto}_2,\dots, \text{effetto}_n)=P(\text{Causa})\prod_i P(\text{Effetto}_i \mid \text{Causa})
Nota: lo chiamiamo modello naïve perché spesso utilizza assunzioni semplificative, in particolare spesso assume l’indipendenza delle variabili—cosa che però non è sempre strettamente rispettata.
Tramite l’utilizzo di questi modelli siamo in grado di rispondere ottenere nuova conoscenza tramite l’applicazione delle regole della probabilità. Ad esempio, se conosciamo la distribuzione di probabilità per
{\bf P}(\text{Disease},\,\text{Symptom}_A,\,\text{Sympton}_B)\equiv{\bf P}(D,\,A,\,B)
Possiamo ottenere
{\bf P}(D \mid A,\,B)=\dfrac{{\bf P}(D,\,A,\,B)}{{\bf P}(A,\,B)}=\dfrac{{\bf P}(D,\,A,\,B)}{\displaystyle\sum_{D}{\bf P}(D,\,A,\,B)}\\[15pt] {\bf P}(A \mid D)=\dfrac{{\bf P}(D,\,A)}{{\bf P}(D)}=\dfrac{\displaystyle\sum_{B}{\bf P}(D,\,A,\,B)}{\displaystyle\sum_{A,\,B}{\bf P}(D,\,A,\,B)}
Purtroppo, utilizzare tale metodo per rispondere a domande su distribuzioni di probabilità con molte variabili diventa presto impossibile, infatti la grandezza della distribuzione di probabilità totale cresce in maniera esponenziale rispetto al numero di variabili del problema!
Esercizio: ipotizziamo che ci sia probabilità dell'1% di prendere il COVID, e in tali casi ci sono le seguenti probabilità di avere i sintomi:
- Febbre alta (f): 10 \% se si ha il COVID, 2\% se non lo si ha
- Tosse (c): 20\% se si ha il COVID, 5\% se non lo si ha
- Perdita del gusto (\ell): 15\% se si ha il COVID, 0.1\% se non lo si ha
qual è la probabilità di avere il COVID data la presenza di tutti e tre i sintomi?
Soluzione
Si tratta, di fatto, di calcolare P(d \mid f,\,c,\,\ell). Indichiamo le probabilità come
P(d)=0.01\quad P(\neg d)=0.99\\ \Downarrow\\ P(D)=\langle0.01,\,0.99\rangle
Dunque abbiamo
{\bf P}(F \mid d) = \langle 0.1, \, 0.9 \rangle\\[10pt] {\bf P}(F \mid \neg d) = \langle 0.02, \, 0.98 \rangle\\[10pt] {\bf P}(C \mid d) = \langle 0.2, \, 0.8 \rangle\\[10pt] {\bf P}(C \mid \neg d) = \langle 0.05,\, 0.95 \rangle\\[10pt] {\bf P}(L \mid d) = \langle 0.15,\, 0.85 \rangle\\[10pt] {\bf P}(L \mid \neg d) = \langle 0.001,\, 0.999 \rangle
In Python corrisponderebbe a
Per calcolare P(d \mid f,\,c,\,\ell) possiamo applicare Bayes
P(d \mid f,\,c,\,\ell)=\dfrac{P(f,\,c,\,\ell\mid d)P(d)}{P(f,\,c,\,\ell)}
Poiché f\perp\kern-5pt\perp c \perp\kern-5pt\perp \ell possiamo riscrivere il numeratore come
\textcolor{00ffa1}{P(f,\,c,\,\ell\mid d)P(d)}=P(f\mid d)P(c\mid d)P(\ell\mid d)P(d)
Mentre per il denominatore possiamo utilizzare la probabilità totale per esprimerlo in termini delle probabilità che conosciamo
\begin{aligned} P(f,\,c,\,\ell)&=\sum_{x\in D}P(f,\,c,\,\ell\mid x)P(x)\\[10pt] &=\textcolor{00ffa1}{P(f,\,c,\,\ell\mid d)P(d)}+P(f,\,c,\,\ell\mid \neg d)P(\neg d)\\[10pt] &=\textcolor{00ffa1}{P(f\mid d)P(c\mid d)P(\ell\mid d)P(d)}+P(f\mid \neg d)P(c\mid \neg d)P(\ell\mid \neg d)P(\neg d) \end{aligned}
Abbiamo dunque trovato come espressione per P(d \mid f,\,c,\,\ell) la seguente
P(d \mid f,\,c,\,\ell)=\dfrac{P(f\mid d)P(c\mid d)P(\ell\mid d)P(d)}{P(f\mid d)P(c\mid d)P(\ell\mid d)P(d)+P(f\mid \neg d)P(c\mid \neg d)P(\ell\mid \neg d)P(\neg d)}
Dove possiamo semplicemente inserire i corrispettivi valori del secondo paragrafo e ottenere il valore numerico della probabilità cercata.