Table of Contents

Probabilitate și Statistică

Într-un fel sau altul, învățarea automată este despre incertitudine. În învățarea supervizată, vrem să prezicem ceva necunoscut (ținta) dat fiind ceva cunoscut (caracteristicile). În funcție de obiectivul nostru, am putea încerca să prezicem valoarea cea mai probabilă a țintei. Sau am putea prezice valoarea cu cea mai mică distanță așteptată față de țintă. Și uneori dorim nu doar să prezicem o valoare specifică, ci să cuantificăm incertitudinea noastră. De exemplu, date fiind unele caracteristici care descriu un pacient, am putea dori să știm cât de probabil este ca acesta să sufere un atac de cord în anul următor. În învățarea nesupervizată, adesea ne pasă de incertitudine. Pentru a determina dacă un set de măsurători sunt anormale, ajută să știm cât de probabil este să observăm valori într-o populație de interes. În plus, în învățarea prin întărire, dorim să dezvoltăm agenți care acționează inteligent în diverse medii. Acest lucru necesită raționament despre cum s-ar putea schimba un mediu și ce recompense s-ar putea aștepta să întâlnească ca răspuns la fiecare dintre acțiunile disponibile.

Probabilitatea este domeniul matematic care se ocupă cu raționamentul sub incertitudine. Dat fiind un model probabilistic al unui proces, putem raționa despre probabilitatea diferitelor evenimente. Utilizarea probabilităților pentru a descrie frecvențele evenimentelor repetabile (cum ar fi aruncarea monedei) este destul de necontestată. De fapt, savanții frecventiști aderă la o interpretare a probabilității care se aplică doar la astfel de evenimente repetabile. Prin contrast, savanții bayesieni folosesc limbajul probabilității mai larg pentru a formaliza raționamentul sub incertitudine. Probabilitatea bayesiană este caracterizată de două trăsături unice: (i) atribuirea gradelor de credință evenimentelor nerepetabile, e.g., care este probabilitatea ca un baraj să se prăbușească?; și (ii) subiectivitate. În timp ce probabilitatea bayesiană oferă reguli lipsite de ambiguitate pentru modul în care cineva ar trebui să-și actualizeze convingerile în lumina noilor dovezi, ea permite ca indivizi diferiți să pornească cu convingeri a priori diferite. Statistica ne ajută să raționăm invers, începând cu colectarea și organizarea datelor și mergând înapoi la ce inferențe am putea trage despre procesul care a generat datele. Ori de câte ori analizăm un set de date, vânând modele care sperăm că ar putea caracteriza o populație mai largă, angajăm gândirea statistică. Multe cursuri, specializări, teze, cariere, departamente, companii și instituții au fost dedicate studiului probabilității și statisticii. Deși această secțiune doar zgârie suprafața, vom oferi fundația de care aveți nevoie pentru a începe să construiți modele.

%matplotlib inline
from d2l import torch as d2l
import random
import torch
from torch.distributions.multinomial import Multinomial

Un Exemplu Simplu: Aruncarea Monezilor

Imaginați-vă că plănuim să aruncăm o monedă și vrem să cuantificăm cât de probabil este să vedem cap (vs. pajură). Dacă moneda este dreaptă (fair), atunci ambele rezultate (cap și pajură) sunt egal probabile. Mai mult, dacă plănuim să aruncăm moneda de $n$ ori, atunci fracțiunea de capuri pe care așteptăm să o vedem ar trebui să se potrivească exact cu fracțiunea așteptată de pajuri. Un mod intuitiv de a vedea asta este prin simetrie: pentru fiecare rezultat posibil cu $n_\textrm{h}$ capuri și $n_\textrm{t} = (n - n_\textrm{h})$ pajuri, există un rezultat egal probabil cu $n_\textrm{t}$ capuri și $n_\textrm{h}$ pajuri. Rețineți că acest lucru este posibil doar dacă în medie ne așteptăm să vedem $1/2$ din aruncări ieșind cap și $1/2$ ieșind pajură. Desigur, dacă efectuați acest experiment de multe ori cu $n=1000000$ aruncări fiecare, s-ar putea să nu vedeți niciodată o încercare unde $n_\textrm{h} = n_\textrm{t}$ exact.

Formal, cantitatea $1/2$ este numită o probabilitate și aici capturează certitudinea cu care orice aruncare dată va ieși cap. Probabilitățile atribuie scoruri între $0$ și $1$ rezultatelor de interes, numite evenimente. Aici evenimentul de interes este $\textrm{heads}$ (cap) și notăm probabilitatea corespunzătoare $P(\textrm{heads})$. O probabilitate de $1$ indică certitudine absolută (imaginați-vă o monedă trucată unde ambele părți sunt cap) și o probabilitate de $0$ indică imposibilitate (e.g., dacă ambele părți ar fi pajură). Frecvențele $n_\textrm{h}/n$ și $n_\textrm{t}/n$ nu sunt probabilități ci mai degrabă statistici. Probabilitățile sunt cantități teoretice care stau la baza procesului de generare a datelor. Aici, probabilitatea $1/2$ este o proprietate a monedei în sine. Prin contrast, statisticile sunt cantități empirice care sunt calculate ca funcții ale datelor observate. Interesele noastre în cantitățile probabilistice și statistice sunt inextricabil împletite. Adesea proiectăm statistici speciale numite estimatori care, date fiind un set de date, produc estimări ale parametrilor modelului, cum ar fi probabilitățile. Mai mult, când acei estimatori satisfac o proprietate frumoasă numită consistență, estimările noastre vor converge la probabilitatea corespunzătoare. La rândul lor, aceste probabilități inferate ne spun despre proprietățile statistice probabile ale datelor din aceeași populație pe care le-am putea întâlni în viitor.

Presupuneți că am dat peste o monedă reală pentru care nu știam adevăratul $P(\textrm{heads})$. Pentru a investiga această cantitate cu metode statistice, trebuie să (i) colectăm niște date; și (ii) proiectăm un estimator. Achiziția de date aici este ușoară; putem arunca moneda de multe ori și înregistra toate rezultatele. Formal, extragerea realizărilor dintr-un proces aleatoriu subiacent se numește eșantionare. Așa cum ați fi ghicit, un estimator natural este raportul dintre numărul de capuri observate și numărul total de aruncări.

Acum, presupuneți că moneda a fost de fapt dreaptă, i.e., $P(\textrm{heads}) = 0.5$. Pentru a simula aruncările unei monede drepte, putem invoca orice generator de numere aleatoare. Există câteva modalități ușoare de a extrage eșantioane ale unui eveniment cu probabilitate $0.5$. De exemplu, random.random din Python produce numere în intervalul $[0,1]$ unde probabilitatea de a se afla în orice sub-interval $[a, b] \subset [0,1]$ este egală cu $b-a$. Astfel putem obține 0 și 1 cu probabilitate 0.5 fiecare testând dacă numărul float returnat este mai mare decât 0.5:

num_tosses = 100
heads = sum([random.random() > 0.5 for _ in range(num_tosses)])
tails = num_tosses - heads
print("heads, tails: ", [heads, tails])

Mai general, putem simula extrageri multiple din orice variabilă cu un număr finit de rezultate posibile (ca aruncarea unei monede sau aruncarea unui zar) apelând funcția multinomială, setând primul argument la numărul de extrageri și al doilea ca o listă de probabilități asociate cu fiecare dintre rezultatele posibile. Pentru a simula zece aruncări ale unei monede drepte, atribuim vectorul de probabilitate [0.5, 0.5], interpretând indicele 0 ca fiind cap și indicele 1 ca fiind pajură. Funcția returnează un vector cu lungimea egală cu numărul de rezultate posibile (aici, 2), unde prima componentă ne spune numărul de apariții ale capului și a doua componentă ne spune numărul de apariții ale pajurei.

fair_probs = torch.tensor([0.5, 0.5])
Multinomial(100, fair_probs).sample(){}

De fiecare dată când rulați acest proces de eșantionare, veți primi o nouă valoare aleatoare care poate diferi de rezultatul anterior. Împărțirea la numărul de aruncări ne oferă frecvența fiecărui rezultat în datele noastre. Rețineți că aceste frecvențe, la fel ca probabilitățile pe care sunt menite să le estimeze, se însumează la $1$.

Multinomial(100, fair_probs).sample() / 100

Aici, chiar dacă moneda noastră simulată este dreaptă (noi înșine am setat probabilitățile [0.5, 0.5]), numărările de capuri și pajuri s-ar putea să nu fie identice. Asta pentru că am extras doar un număr relativ mic de eșantioane. Dacă nu am fi implementat simularea noi înșine, și am fi văzut doar rezultatul, cum am ști dacă moneda a fost ușor incorectă sau dacă posibila abatere de la $1/2$ a fost doar un artefact al dimensiunii mici a eșantionului? Să vedem ce se întâmplă când simulăm 10,000 de aruncări.

counts = Multinomial(10000, fair_probs).sample()
counts / 10000

În general, pentru mediile evenimentelor repetate (precum aruncările de monedă), pe măsură ce numărul de repetiții crește, estimările noastre sunt garantate să conveargă la adevăratele probabilități subiacente. Formularea matematică a acestui fenomen se numește legea numerelor mari iar teorema limitei centrale ne spune că în multe situații, pe măsură ce dimensiunea eșantionului $n$ crește, aceste erori ar trebui să scadă cu o rată de $(1/\sqrt{n})$. Să obținem mai multă intuiție studiind cum evoluează estimarea noastră pe măsură ce creștem numărul de aruncări de la 1 la 10,000.

counts = Multinomial(1, fair_probs).sample((10000,))
cum_counts = counts.cumsum(dim=0)
estimates = cum_counts / cum_counts.sum(dim=1, keepdims=True)
estimates = estimates.numpy()
 
d2l.set_figsize((4.5, 3.5))
d2l.plt.plot(estimates[:, 0], label=("P(coin=heads)"))
d2l.plt.plot(estimates[:, 1], label=("P(coin=tails)"))
d2l.plt.axhline(y=0.5, color='black', linestyle='dashed')
d2l.plt.gca().set_xlabel('Samples')
d2l.plt.gca().set_ylabel('Estimated probability')
d2l.plt.legend();

Fiecare curbă solidă corespunde uneia dintre cele două valori ale monedei și oferă probabilitatea noastră estimată ca moneda să arate acea valoare după fiecare grup de experimente. Linia neagră punctată oferă adevărata probabilitate subiacentă. Pe măsură ce obținem mai multe date prin efectuarea mai multor experimente, curbele converg către adevărata probabilitate. S-ar putea să începeți deja să vedeți forma unora dintre întrebările mai avansate care îi preocupă pe statisticieni: Cât de repede are loc această convergență? Dacă am fi testat deja multe monede fabricate la aceeași fabrică, cum am putea încorpora această informație?

O Tratare Mai Formală

Am ajuns deja destul de departe: propunând un model probabilistic, generând date sintetice, rulând un estimator statistic, evaluând empiric convergența și raportând metrici de eroare (verificând abaterea). Totuși, pentru a merge mult mai departe, va trebui să fim mai preciși.

Atunci când avem de-a face cu aleatoriul, notăm mulțimea rezultatelor posibile $\mathcal{S}$ și o numim spațiul de eșantionare sau spațiul rezultatelor. Aici, fiecare element este un rezultat posibil distinct. În cazul aruncării unei singure monede, $\mathcal{S} = \{\textrm{heads}, \textrm{tails}\}$. Pentru un singur zar, $\mathcal{S} = \{1, 2, 3, 4, 5, 6\}$. Când aruncăm două monede, rezultatele posibile sunt $\{(\textrm{heads}, \textrm{heads}), (\textrm{heads}, \textrm{tails}), (\textrm{tails}, \textrm{heads}), (\textrm{tails}, \textrm{tails})\}$. Evenimentele sunt submulțimi ale spațiului de eșantionare. De exemplu, evenimentul „prima aruncare a monedei iese cap” corespunde mulțimii $\{(\textrm{heads}, \textrm{heads}), (\textrm{heads}, \textrm{tails})\}$. Ori de câte ori rezultatul $z$ al unui experiment aleatoriu satisface $z \in \mathcal{A}$, atunci evenimentul $\mathcal{A}$ a avut loc. Pentru o singură aruncare a unui zar, am putea defini evenimentele „văzând un $5$” ($\mathcal{A} = \{5\}$) și „văzând un număr impar” ($\mathcal{B} = \{1, 3, 5\}$). În acest caz, dacă zarul a ieșit $5$, am spune că atât $\mathcal{A}$ cât și $\mathcal{B}$ au avut loc. Pe de altă parte, dacă $z = 3$, atunci $\mathcal{A}$ nu a avut loc, dar $\mathcal{B}$ da.

O funcție de probabilitate mapează evenimentele la valori reale ${P: \mathcal{A} \subseteq \mathcal{S} \rightarrow [0,1]}$. Probabilitatea, notată $P(\mathcal{A})$, a unui eveniment $\mathcal{A}$ în spațiul de eșantionare dat $\mathcal{S}$, are următoarele proprietăți:

Aceste axiome ale teoriei probabilității, propuse de 1), pot fi aplicate pentru a deriva rapid o serie de consecințe importante. De exemplu, rezultă imediat că probabilitatea ca orice eveniment $\mathcal{A}$ sau complementul său $\mathcal{A}'$ să aibă loc este 1 (deoarece $\mathcal{A} \cup \mathcal{A}' = \mathcal{S}$). Putem demonstra, de asemenea, că $P(\emptyset) = 0$ deoarece $1 = P(\mathcal{S} \cup \mathcal{S}') = P(\mathcal{S} \cup \emptyset) = P(\mathcal{S}) + P(\emptyset) = 1 + P(\emptyset)$. În consecință, probabilitatea ca orice eveniment $\mathcal{A}$ și complementul său $\mathcal{A}'$ să aibă loc simultan este $P(\mathcal{A} \cap \mathcal{A}') = 0$. Informal, acest lucru ne spune că evenimentele imposibile au probabilitate zero de a se produce.

Variabile Aleatoare

Când am vorbit despre evenimente precum aruncarea unui zar ieșind impar sau prima aruncare a monedei ieșind cap, am invocat ideea unei variabile aleatoare. Formal, variabilele aleatoare sunt mapări de la un spațiu de eșantionare subiacent la o mulțime de (posibil multe) valori. V-ați putea întreba cum este diferită o variabilă aleatoare de spațiul de eșantionare, din moment ce ambele sunt colecții de rezultate. Important, variabilele aleatoare pot fi mult mai grosiere decât spațiul de eșantionare brut. Putem defini o variabilă aleatoare binară precum „mai mare de 0.5” chiar și atunci când spațiul de eșantionare subiacent este infinit, e.g., puncte pe segmentul de linie dintre $0$ și $1$. În plus, variabile aleatoare multiple pot împărți același spațiu de eșantionare subiacent. De exemplu „dacă alarma casei mele se declanșează” și „dacă casa mea a fost spartă” sunt ambele variabile aleatoare binare care împart un spațiu de eșantionare subiacent. În consecință, cunoscând valoarea luată de o variabilă aleatoare ne poate spune ceva despre valoarea probabilă a unei alte variabile aleatoare. Știind că alarma s-a declanșat, am putea suspecta că casa a fost probabil spartă.

Fiecare valoare luată de o variabilă aleatoare corespunde unei submulțimi a spațiului de eșantionare subiacent. Astfel apariția unde variabila aleatoare $X$ ia valoarea $v$, notată prin $X=v$, este un eveniment și $P(X=v)$ denotă probabilitatea sa. Uneori această notație poate deveni greoaie, și putem abuza de notație atunci când contextul este clar. De exemplu, am putea folosi $P(X)$ pentru a ne referi în general la distribuția lui $X$, i.e., funcția care ne spune probabilitatea ca $X$ să ia orice valoare dată. Alteori scriem expresii precum $P(X,Y) = P(X) P(Y)$, ca o prescurtare pentru a exprima o afirmație care este adevărată pentru toate valorile pe care le pot lua variabilele aleatoare $X$ și $Y$, i.e., pentru toți $i,j$ este valabil că $P(X=i \textrm{ și } Y=j) = P(X=i)P(Y=j)$. Alteori, abuzăm de notație scriind $P(v)$ când variabila aleatoare este clară din context. Deoarece un eveniment în teoria probabilității este o mulțime de rezultate din spațiul de eșantionare, putem specifica un interval de valori pe care să le ia o variabilă aleatoare. De exemplu, $P(1 \leq X \leq 3)$ denotă probabilitatea evenimentului $\{1 \leq X \leq 3\}$.

Rețineți că există o diferență subtilă între variabile aleatoare discrete, precum aruncările unei monede sau ale unui zar, și cele continue, precum greutatea și înălțimea unei persoane eșantionate la întâmplare din populație. În acest caz rareori ne pasă cu adevărat de înălțimea exactă a cuiva. Mai mult, dacă am efectua măsurători suficient de precise, am descoperi că nu există două persoane pe planetă care să aibă exact aceeași înălțime. De fapt, cu măsurători suficient de fine, nu ați avea niciodată aceeași înălțime când vă treziți și când mergeți la culcare. Nu are prea mult sens să întrebăm despre probabilitatea exactă ca cineva să aibă 1.801392782910287192 metri înălțime. În schimb, ne pasă de obicei mai mult să putem spune dacă înălțimea cuiva cade într-un anumit interval, să spunem între 1.79 și 1.81 metri. În aceste cazuri lucrăm cu densități de probabilitate. Înălțimea de exact 1.80 metri nu are probabilitate, dar are densitate nenulă. Pentru a determina probabilitatea atribuită unui interval, trebuie să calculăm o integrală a densității pe acel interval.

Variabile Aleatoare Multiple

S-ar putea să fi observat că nu am putut trece nici măcar de secțiunea anterioară fără a face afirmații care implică interacțiuni între variabile aleatoare multiple (amintiți-vă că $P(X,Y) = P(X) P(Y)$). Majoritatea învățării automate este preocupată de astfel de relații. Aici, spațiul de eșantionare ar fi populația de interes, să spunem clienții care tranzacționează cu o afacere, fotografiile de pe Internet, sau proteinele cunoscute de biologi. Fiecare variabilă aleatoare ar reprezenta valoarea (necunoscută) a unui atribut diferit. Ori de câte ori eșantionăm un individ din populație, observăm o realizare a fiecăreia dintre variabilele aleatoare. Deoarece valorile luate de variabilele aleatoare corespund unor submulțimi ale spațiului de eșantionare care ar putea fi suprapuse, parțial suprapuse sau complet disjuncte, cunoașterea valorii luate de o variabilă aleatoare ne poate face să ne actualizăm convingerile despre care valori ale unei alte variabile aleatoare sunt probabile. Dacă un pacient intră într-un spital și observăm că are probleme de respirație și și-a pierdut simțul mirosului, atunci credem că este mai probabil să aibă COVID-19 decât am crede dacă nu ar avea probleme de respirație și un simț al mirosului perfect obișnuit.

Când lucrăm cu variabile aleatoare multiple, putem construi evenimente corespunzătoare fiecărei combinații de valori pe care variabilele le pot lua împreună. Funcția de probabilitate care atribuie probabilități fiecăreia dintre aceste combinații (e.g. $A=a$ și $B=b$) se numește funcția de probabilitate comună și pur și simplu returnează probabilitatea atribuită intersecției submulțimilor corespunzătoare ale spațiului de eșantionare. Probabilitatea comună atribuită evenimentului în care variabilele aleatoare $A$ și $B$ iau valorile $a$ și $b$, respectiv, este notată $P(A = a, B = b)$, unde virgula indică „și”. Rețineți că pentru orice valori $a$ și $b$, rezultă că

$$P(A=a, B=b) \leq P(A=a) \textrm{ și } P(A=a, B=b) \leq P(B = b),$$

deoarece pentru ca $A=a$ și $B=b$ să se întâmple, $A=a$ trebuie să se întâmple și $B=b$ de asemenea trebuie să se întâmple. Interesant, probabilitatea comună ne spune tot ce putem ști despre aceste variabile aleatoare într-un sens probabilistic, și poate fi folosită pentru a deriva multe alte cantități utile, inclusiv recuperarea distribuțiilor individuale $P(A)$ și $P(B)$. Pentru a recupera $P(A=a)$ pur și simplu însumăm $P(A=a, B=v)$ peste toate valorile $v$ pe care variabila aleatoare $B$ le poate lua: $P(A=a) = \sum_v P(A=a, B=v)$.

Raportul $\frac{P(A=a, B=b)}{P(A=a)} \leq 1$ se dovedește a fi extrem de important. Se numește probabilitate condiționată, și este notată prin simbolul „$\mid$”:

$$P(B=b \mid A=a) = P(A=a,B=b)/P(A=a).$$

Ne spune noua probabilitate asociată cu evenimentul $B=b$, odată ce condiționăm pe faptul că $A=a$ a avut loc. Putem gândi această probabilitate condiționată ca restrângând atenția doar la submulțimea spațiului de eșantionare asociată cu $A=a$ și apoi renormalizând astfel încât toate probabilitățile să se însumeze la 1. Probabilitățile condiționate sunt de fapt doar probabilități obișnuite și astfel respectă toate axiomele, atâta timp cât condiționăm toți termenii pe același eveniment și astfel restrângem atenția la același spațiu de eșantionare. De exemplu, pentru evenimente disjuncte $\mathcal{B}$ și $\mathcal{B}'$, avem că $P(\mathcal{B} \cup \mathcal{B}' \mid A = a) = P(\mathcal{B} \mid A = a) + P(\mathcal{B}' \mid A = a)$.

Folosind definiția probabilităților condiționate, putem deriva rezultatul faimos numit teorema lui Bayes. Prin construcție, avem că $P(A, B) = P(B\mid A) P(A)$ și $P(A, B) = P(A\mid B) P(B)$. Combinând ambele ecuații obținem $P(B\mid A) P(A) = P(A\mid B) P(B)$ și deci

$$P(A \mid B) = \frac{P(B\mid A) P(A)}{P(B)}.$$

Această ecuație simplă are implicații profunde deoarece ne permite să inversăm ordinea condiționării. Dacă știm cum să estimăm $P(B\mid A)$, $P(A)$, și $P(B)$, atunci putem estima $P(A\mid B)$. Adesea găsim mai ușor să estimăm un termen direct dar nu și pe celălalt iar teorema lui Bayes poate veni în ajutor aici. De exemplu, dacă cunoaștem prevalența simptomelor pentru o boală dată, și prevalențele generale ale bolii și simptomelor, respectiv, putem determina cât de probabil este ca cineva să aibă boala pe baza simptomelor sale. În unele cazuri s-ar putea să nu avem acces direct la $P(B)$, cum ar fi prevalența simptomelor. În acest caz o versiune simplificată a teoremei lui Bayes vine la îndemână:

$$P(A \mid B) \propto P(B \mid A) P(A).$$

Din moment ce știm că $P(A \mid B)$ trebuie să fie normalizată la $1$, i.e., $\sum_a P(A=a \mid B) = 1$, o putem folosi pentru a calcula

$$P(A \mid B) = \frac{P(B \mid A) P(A)}{\sum_a P(B \mid A=a) P(A = a)}.$$

În statistica bayesiană, ne gândim la un observator ca posedând unele convingeri a priori (subiective) despre plauzibilitatea ipotezelor disponibile codificate în a priori (prior) $P(H)$, și o funcție de verosimilitate care spune cât de probabil este să observăm orice valoare a dovezilor colectate pentru fiecare dintre ipotezele din clasă $P(E \mid H)$. Teorema lui Bayes este apoi interpretată ca spunându-ne cum să actualizăm a priori-ul inițial $P(H)$ în lumina dovezilor disponibile $E$ pentru a produce convingeri a posteriori $P(H \mid E) = \frac{P(E \mid H) P(H)}{P(E)}$. Informal, acest lucru poate fi declarat ca „a posteriori este egal cu a priori ori verosimilitate, împărțit la dovezi”. Acum, deoarece evidența $P(E)$ este aceeași pentru toate ipotezele, putem scăpa pur și simplu normalizând peste ipoteze.

Rețineți că $\sum_a P(A=a \mid B) = 1$ ne permite de asemenea să marginalizăm peste variabile aleatoare. Adică, putem elimina variabile dintr-o distribuție comună precum $P(A, B)$. La urma urmei, avem că

$$\sum_a P(B \mid A=a) P(A=a) = \sum_a P(B, A=a) = P(B).$$

Independența este un alt concept fundamental important care formează coloana vertebrală a multor idei importante în statistică. Pe scurt, două variabile sunt independente dacă condiționarea pe valoarea lui $A$ nu cauzează nicio schimbare a distribuției de probabilitate asociată cu $B$ și vice versa. Mai formal, independența, notată $A \perp B$, necesită ca $P(A \mid B) = P(A)$ și, în consecință, ca $P(A,B) = P(A \mid B) P(B) = P(A) P(B)$. Independența este adesea o presupunere adecvată. De exemplu, dacă variabila aleatoare $A$ reprezintă rezultatul aruncării unei monede drepte și variabila aleatoare $B$ reprezintă rezultatul aruncării unei alte monede, atunci faptul că știm dacă $A$ a ieșit cap nu ar trebui să influențeze probabilitatea ca $B$ să iasă cap.

Independența este utilă în special când este valabilă între extragerile succesive ale datelor noastre dintr-o distribuție subiacentă (permițându-ne să tragem concluzii statistice puternice) sau când este valabilă între diverse variabile în datele noastre, permițându-ne să lucrăm cu modele mai simple care codifică această structură de independență. Pe de altă parte, estimarea dependențelor dintre variabilele aleatoare este adesea chiar scopul învățării. Ne pasă să estimăm probabilitatea bolii date fiind simptomele tocmai pentru că credem că bolile și simptomele nu sunt independente.

Rețineți că deoarece probabilitățile condiționate sunt probabilități propriu-zise, conceptele de independență și dependență se aplică și lor. Două variabile aleatoare $A$ și $B$ sunt condiționat independente dată fiind o a treia variabilă $C$ dacă și numai dacă $P(A, B \mid C) = P(A \mid C)P(B \mid C)$. Interesant, două variabile pot fi independente în general dar devin dependente când condiționăm pe o a treia. Aceasta se întâmplă adesea când cele două variabile aleatoare $A$ și $B$ corespund cauzelor unei a treia variabile $C$. De exemplu, oasele rupte și cancerul pulmonar ar putea fi independente în populația generală dar dacă condiționăm pe faptul de a fi în spital atunci s-ar putea să găsim că oasele rupte sunt corelate negativ cu cancerul pulmonar. Asta pentru că osul rupt explică de ce o persoană este în spital și astfel scade probabilitatea ca ei să fie spitalizați din cauza cancerului pulmonar.

Și invers, două variabile dependente pot deveni independente prin condiționarea pe o a treia. Aceasta se întâmplă adesea când două evenimente altfel nelegate au o cauză comună. Mărimea pantofului și nivelul de citire sunt puternic corelate printre elevii de școală elementară, dar această corelație dispare dacă condiționăm pe vârstă.

Un Exemplu

Să ne punem abilitățile la încercare. Presupuneți că un doctor administrează un test HIV unui pacient. Acest test este destul de precis și eșuează doar cu 1% probabilitate dacă pacientul este sănătos dar raportat ca bolnav, i.e., pacienții sănătoși testează pozitiv în 1% din cazuri. Mai mult, nu eșuează niciodată să detecteze HIV dacă pacientul îl are de fapt. Folosim $D_1 \in \{0, 1\}$ pentru a indica diagnosticul ($0$ dacă e negativ și $1$ dacă e pozitiv) și $H \in \{0, 1\}$ pentru a nota statusul HIV.

Probabilitate condiționată $H=1$ $H=0$
$P(D_1 = 1 \mid H)$ 1 0.01
$P(D_1 = 0 \mid H)$ 0 0.99

Rețineți că sumele pe coloane sunt toate 1 (dar sumele pe rânduri nu sunt), deoarece sunt probabilități condiționate. Să calculăm probabilitatea ca pacientul să aibă HIV dacă testul iese pozitiv, i.e., $P(H = 1 \mid D_1 = 1)$. Intuitiv acest lucru va depinde de cât de comună este boala, deoarece afectează numărul de alarme false. Presupuneți că populația este destul de liberă de boală, e.g., $P(H=1) = 0.0015$. Pentru a aplica teorema lui Bayes, trebuie să aplicăm marginalizarea pentru a determina

$$\begin{aligned} P(D_1 = 1) =& P(D_1=1, H=0) + P(D_1=1, H=1) \\ =& P(D_1=1 \mid H=0) P(H=0) + P(D_1=1 \mid H=1) P(H=1) \\ =& 0.011485. \end{aligned} $$

Aceasta ne conduce la

$$P(H = 1 \mid D_1 = 1) = \frac{P(D_1=1 \mid H=1) P(H=1)}{P(D_1=1)} = 0.1306.$$

Cu alte cuvinte, există doar o șansă de 13.06% ca pacientul să aibă de fapt HIV, în ciuda faptului că testul este destul de precis. Așa cum putem vedea, probabilitatea poate fi contraintuitivă. Ce ar trebui să facă un pacient la primirea unor astfel de știri terifiante? Probabil, pacientul ar cere medicului să administreze un alt test pentru a obține claritate. Al doilea test are caracteristici diferite și nu este la fel de bun ca primul.

Probabilitate condiționată $H=1$ $H=0$
$P(D_2 = 1 \mid H)$ 0.98 0.03
$P(D_2 = 0 \mid H)$ 0.02 0.97

Din păcate, al doilea test iese pozitiv, de asemenea. Să calculăm probabilitățile necesare pentru a invoca teorema lui Bayes presupunând independența condiționată:

$$\begin{aligned} P(D_1 = 1, D_2 = 1 \mid H = 0) & = P(D_1 = 1 \mid H = 0) P(D_2 = 1 \mid H = 0) =& 0.0003, \\ P(D_1 = 1, D_2 = 1 \mid H = 1) & = P(D_1 = 1 \mid H = 1) P(D_2 = 1 \mid H = 1) =& 0.98. \end{aligned} $$

Acum putem aplica marginalizarea pentru a obține probabilitatea ca ambele teste să iasă pozitive:

$$\begin{aligned} &P(D_1 = 1, D_2 = 1)\\ &= P(D_1 = 1, D_2 = 1, H = 0) + P(D_1 = 1, D_2 = 1, H = 1) \\ &= P(D_1 = 1, D_2 = 1 \mid H = 0)P(H=0) + P(D_1 = 1, D_2 = 1 \mid H = 1)P(H=1)\\ &= 0.00176955. \end{aligned} $$

În final, probabilitatea ca pacientul să aibă HIV dat fiind că ambele teste sunt pozitive este

$$P(H = 1 \mid D_1 = 1, D_2 = 1) = \frac{P(D_1 = 1, D_2 = 1 \mid H=1) P(H=1)}{P(D_1 = 1, D_2 = 1)} = 0.8307.$$

Adică, al doilea test ne-a permis să câștigăm o încredere mult mai mare că nu totul este bine. În ciuda faptului că al doilea test este considerabil mai puțin precis decât primul, acesta a îmbunătățit totuși semnificativ estimarea noastră. Presupunerea că ambele teste sunt condiționat independente unul de celălalt a fost crucială pentru capacitatea noastră de a genera o estimare mai precisă. Luați cazul extrem în care rulăm același test de două ori. În această situație ne-am aștepta la același rezultat de ambele dăți, deci nici o perspectivă suplimentară nu este câștigată din rularea aceluiași test din nou. Cititorul ager s-ar putea să fi observat că diagnosticul s-a comportat ca un clasificator ascuns la vedere unde capacitatea noastră de a decide dacă un pacient este sănătos crește pe măsură ce obținem mai multe trăsături (rezultate ale testelor).

Speranțe (Expectations)

Adesea, luarea deciziilor necesită nu doar privirea la probabilitățile atribuite evenimentelor individuale ci compunerea lor împreună în agregate utile care ne pot oferi ghidare. De exemplu, când variabilele aleatoare iau valori scalare continue, adesea ne pasă să știm ce valoare să așteptăm în medie. Această cantitate este numită formal o speranță. Dacă facem investiții, prima cantitate de interes ar putea fi randamentul pe care îl putem aștepta, făcând media peste toate rezultatele posibile (și ponderând prin probabilitățile corespunzătoare). De exemplu, spuneți că cu 50% probabilitate, o investiție ar putea eșua cu totul, cu 40% probabilitate ar putea oferi un randament de 2$\times$, și cu 10% probabilitate ar putea oferi un randament de 10$\times$. Pentru a calcula randamentul așteptat, însumăm toate randamentele, înmulțind fiecare cu probabilitatea ca ele să apară. Aceasta produce speranța $0.5 \cdot 0 + 0.4 \cdot 2 + 0.1 \cdot 10 = 1.8$. Deci randamentul așteptat este 1.8$\times$.

În general, speranța (sau media) a variabilei aleatoare $X$ este definită ca

$$E[X] = E_{x \sim P}[x] = \sum_{x} x P(X = x).$$

La fel, pentru densități obținem $E[X] = \int x \;dp(x)$. Uneori suntem interesați de valoarea așteptată a unei funcții de $x$. Putem calcula aceste speranțe ca

$$E_{x \sim P}[f(x)] = \sum_x f(x) P(x) \textrm{ și } E_{x \sim P}[f(x)] = \int f(x) p(x) \;dx$$

pentru probabilități discrete și densități, respectiv. Revenind la exemplul investiției de mai sus, $f$ ar putea fi utilitatea (fericirea) asociată cu randamentul. Economiștii comportamentali au notat de mult timp că oamenii asociază o dezutilitate mai mare cu pierderea banilor decât utilitatea câștigată din câștigarea unui dolar relativ la nivelul lor de bază. Mai mult, valoarea banilor tinde să fie sub-liniară. Posedarea a 100k dolari versus zero dolari poate face diferența între plata chiriei, mâncatul bine și bucurarea de asistență medicală de calitate versus suferința prin lipsa adăpostului. Pe de altă parte, câștigurile datorate posesiei a 200k versus 100k sunt mai puțin dramatice. Raționamentul ca acesta motivează clișeul că „utilitatea banilor este logaritmică”.

Dacă utilitatea asociată cu o pierdere totală ar fi $-1$, și utilitățile asociate cu randamente de $1$, $2$, și $10$ ar fi $1$, $2$ și $4$, respectiv, atunci fericirea așteptată a investiției ar fi $0.5 \cdot (-1) + 0.4 \cdot 2 + 0.1 \cdot 4 = 0.7$ (o pierdere așteptată de utilitate de 30%). Dacă într-adevăr aceasta ar fi funcția dumneavoastră de utilitate, ați fi cel mai bine păstrând banii în bancă.

Pentru decizii financiare, am putea dori de asemenea să măsurăm cât de riscantă este o investiție. Aici, ne pasă nu doar despre valoarea așteptată ci cât de mult valorile actuale tind să varieze relativ la această valoare. Rețineți că nu putem lua doar speranța diferenței dintre valorile actuale și cele așteptate. Asta pentru că speranța unei diferențe este diferența speranțelor, i.e., $E[X - E[X]] = E[X] - E[E[X]] = 0$. Totuși, putem privi la speranța oricărei funcții non-negative a acestei diferențe. Varianța unei variabile aleatoare este calculată privind la valoarea așteptată a diferențelor la pătrat:

$$\textrm{Var}[X] = E\left[(X - E[X])^2\right] = E[X^2] - E[X]^2.$$

Aici egalitatea rezultă prin expandarea $(X - E[X])^2 = X^2 - 2 X E[X] + E[X]^2$ și luarea speranțelor pentru fiecare termen. Rădăcina pătrată a varianței este o altă cantitate utilă numită deviație standard. Deși aceasta și varianța transmit aceeași informație (oricare poate fi calculată din cealaltă), deviația standard are proprietatea drăguță că este exprimată în aceleași unități ca și cantitatea originală reprezentată de variabila aleatoare.

În cele din urmă, varianța unei funcții a unei variabile aleatoare este definită analog ca

$$\textrm{Var}_{x \sim P}[f(x)] = E_{x \sim P}[f^2(x)] - E_{x \sim P}[f(x)]^2.$$

Revenind la exemplul nostru de investiție, putem calcula acum varianța investiției. Este dată de $0.5 \cdot 0 + 0.4 \cdot 2^2 + 0.1 \cdot 10^2 - 1.8^2 = 8.36$. Pentru toate intențiile și scopurile aceasta este o investiție riscantă. Rețineți că prin convenție matematică media și varianța sunt adesea referite ca $\mu$ și $\sigma^2$. Acesta este în special cazul ori de câte ori o folosim pentru a parametriza o distribuție Gaussiană.

În același mod în care am introdus speranțele și varianța pentru variabile aleatoare scalare, putem face acest lucru pentru cele vectoriale. Speranțele sunt ușoare, deoarece le putem aplica element cu element. De exemplu, $\boldsymbol{\mu} \stackrel{\textrm{def}}{=} E_{\mathbf{x} \sim P}[\mathbf{x}]$ are coordonatele $\mu_i = E_{\mathbf{x} \sim P}[x_i]$. Covarianțele sunt mai complicate. Le definim luând speranțele produsului extern al diferenței dintre variabilele aleatoare și media lor:

$$\boldsymbol{\Sigma} \stackrel{\textrm{def}}{=} \textrm{Cov}_{\mathbf{x} \sim P}[\mathbf{x}] = E_{\mathbf{x} \sim P}\left[(\mathbf{x} - \boldsymbol{\mu}) (\mathbf{x} - \boldsymbol{\mu})^\top\right].$$

Această matrice $\boldsymbol{\Sigma}$ este referită ca matricea de covarianță. O cale ușoară de a vedea efectul său este să considerăm un vector $\mathbf{v}$ de aceeași dimensiune cu $\mathbf{x}$. Rezultă că

$$\mathbf{v}^\top \boldsymbol{\Sigma} \mathbf{v} = E_{\mathbf{x} \sim P}\left[\mathbf{v}^\top(\mathbf{x} - \boldsymbol{\mu}) (\mathbf{x} - \boldsymbol{\mu})^\top \mathbf{v}\right] = \textrm{Var}_{x \sim P}[\mathbf{v}^\top \mathbf{x}].$$

Ca atare, $\boldsymbol{\Sigma}$ ne permite să calculăm varianța pentru orice funcție liniară de $\mathbf{x}$ printr-o simplă înmulțire matriceală. Elementele de pe afara diagonalei ne spun cât de corelate sunt coordonatele: o valoare de 0 înseamnă nicio corelație, unde o valoare pozitivă mai mare înseamnă că sunt mai puternic corelate.

Discuție

În învățarea automată, există multe lucruri despre care să fim incerți! Putem fi incerți despre valoarea unei etichete dată fiind o intrare. Putem fi incerți despre valoarea estimată a unui parametru. Putem fi chiar incerți despre faptul dacă datele care sosesc la implementare sunt chiar din aceeași distribuție ca datele de antrenament.

Prin incertitudine aleatorie (aleatoric uncertainty), înțelegem incertitudinea care este intrinsecă problemei, și datorată aleatoriului genuin neexplicat de variabilele observate. Prin incertitudine epistemică, înțelegem incertitudinea asupra parametrilor unui model, genul de incertitudine pe care putem spera să o reducem colectând mai multe date. Am putea avea incertitudine epistemică privind probabilitatea ca o monedă să iasă cap, dar chiar și odată ce știm această probabilitate, rămânem cu incertitudine aleatorie despre rezultatul oricărei aruncări viitoare. Indiferent cât timp privim pe cineva aruncând o monedă dreaptă, nu vom fi niciodată mai mult sau mai puțin de 50% siguri că următoarea aruncare va ieși cap. Acești termeni vin din modelarea mecanică, (vezi e.g., 2) pentru o recenzie asupra acestui aspect al cuantificării incertitudinii). Merită notat, totuși, că acești termeni constituie un ușor abuz de limbaj. Termenul epistemic se referă la orice privește cunoașterea și astfel, în sens filozofic, toată incertitudinea este epistemică.

Am văzut că eșantionarea datelor dintr-o distribuție de probabilitate necunoscută ne poate oferi informații care pot fi folosite pentru a estima parametrii distribuției generatoare de date. Acestea fiind spuse, rata la care acest lucru este posibil poate fi destul de lentă. În exemplul nostru cu aruncarea monedei (și multe altele) nu putem face mai bine decât să proiectăm estimatori care converg la o rată de $1/\sqrt{n}$, unde $n$ este dimensiunea eșantionului (e.g., numărul de aruncări). Aceasta înseamnă că mergând de la 10 la 1000 de observații (de obicei o sarcină foarte realizabilă) vedem o reducere de zece ori a incertitudinii, în timp ce următoarele 1000 de observații ajută comparativ puțin, oferind doar o reducere de 1.41 ori. Aceasta este o trăsătură persistentă a învățării automate: deși există adesea câștiguri ușoare, este nevoie de o cantitate foarte mare de date, și adesea cu ea o cantitate enormă de calcul, pentru a face câștiguri suplimentare. Pentru o recenzie empirică a acestui fapt pentru modele de limbaj la scară largă vezi 3).

Ne-am ascuțit de asemenea limbajul și instrumentele pentru modelarea statistică. În procesul acesta am învățat despre probabilități condiționate și despre una dintre cele mai importante ecuații în statistică—teorema lui Bayes. Este un instrument eficient pentru decuplarea informației transmise de date printr-un termen de verosimilitate $P(B \mid A)$ care adresează cât de bine observațiile $B$ se potrivesc unei alegeri de parametri $A$, și o probabilitate a priori $P(A)$ care guvernează cât de plauzibilă a fost o anumită alegere a lui $A$ în primul rând. În particular, am văzut cum această regulă poate fi aplicată pentru a atribui probabilități diagnosticelor, bazat pe eficacitatea testului și prevalența bolii în sine (i.e., a priori-ul nostru).

În cele din urmă, am introdus un prim set de întrebări non-triviale despre efectul unei distribuții de probabilitate specifice, și anume speranțe și varianțe. Deși există mult mai multe decât doar speranțe liniare și pătratice pentru o distribuție de probabilitate, acestea două oferă deja o bună parte de cunoaștere despre posibilul comportament al distribuției. De exemplu, Inegalitatea lui Cebîșev afirmă că $P(|X - \mu| \geq k \sigma) \leq 1/k^2$, unde $\mu$ este speranța, $\sigma^2$ este varianța distribuției, și $k > 1$ este un parametru de încredere la alegerea noastră. Ne spune că extragerile dintr-o distribuție se află cu cel puțin 50% probabilitate într-un interval $[-\sqrt{2} \sigma, \sqrt{2} \sigma]$ centrat pe speranță.

Exerciții

  1. Dați un exemplu unde observarea mai multor date poate reduce cantitatea de incertitudine despre rezultat la un nivel arbitrar de scăzut.
  2. Dați un exemplu unde observarea mai multor date va reduce cantitatea de incertitudine doar până la un punct și apoi nu mai mult. Explicați de ce este cazul și unde vă așteptați să apară acest punct.
  3. Am demonstrat empiric convergența la medie pentru aruncarea unei monede. Calculați varianța estimării probabilității să vedem un cap după extragerea a $n$ eșantioane.
    1. Cum scalează varianța cu numărul de observații?
    2. Folosiți inegalitatea lui Cebîșev pentru a limita abaterea de la speranță.
    3. Cum se raportează la teorema limitei centrale?
  4. Presupuneți că extragem $m$ eșantioane $x_i$ dintr-o distribuție de probabilitate cu medie zero și varianță unitară. Calculați mediile $z_m \stackrel{\textrm{def}}{=} m^{-1} \sum_{i=1}^m x_i$. Putem aplica inegalitatea lui Cebîșev pentru fiecare $z_m$ independent? De ce nu?
  5. Date fiind două evenimente cu probabilitate $P(\mathcal{A})$ și $P(\mathcal{B})$, calculați limitele superioare și inferioare asupra $P(\mathcal{A} \cup \mathcal{B})$ și $P(\mathcal{A} \cap \mathcal{B})$. Indiciu: reprezentați grafic situația folosind o diagramă Venn.
  6. Presupuneți că avem o secvență de variabile aleatoare, să spunem $A$, $B$, și $C$, unde $B$ depinde doar de $A$, și $C$ depinde doar de $B$, puteți simplifica probabilitatea comună $P(A, B, C)$? Indiciu: acesta este un lanț Markov.
  7. În , presupuneți că rezultatele celor două teste nu sunt independente. În particular presupuneți că oricare test pe cont propriu are o rată de falși pozitivi de 10% și o rată de falși negativi de 1%. Adică, presupuneți că $P(D =1 \mid H=0) = 0.1$ și că $P(D = 0 \mid H=1) = 0.01$. Mai mult, presupuneți că pentru $H = 1$ (infectat) rezultatele testelor sunt condiționat independente, i.e., că $P(D_1, D_2 \mid H=1) = P(D_1 \mid H=1) P(D_2 \mid H=1)$ dar că pentru pacienții sănătoși rezultatele sunt cuplate prin $P(D_1 = D_2 = 1 \mid H=0) = 0.02$.
    1. Elaborați tabelul de probabilitate comună pentru $D_1$ și $D_2$, dat fiind $H=0$ bazat pe informația pe care o aveți până acum.
    2. Derivați probabilitatea ca pacientul să fie bolnav ($H=1$) după ce un test returnează pozitiv. Puteți presupune aceeași probabilitate de bază $P(H=1) = 0.0015$ ca înainte.
    3. Derivați probabilitatea ca pacientul să fie bolnav ($H=1$) după ce ambele teste returnează pozitiv.
  8. Presupuneți că sunteți un manager de active pentru o bancă de investiții și aveți o alegere de acțiuni $s_i$ în care să investiți. Portofoliul dumneavoastră trebuie să se însumeze la $1$ cu ponderi $\alpha_i$ pentru fiecare acțiune. Acțiunile au un randament mediu $\boldsymbol{\mu} = E_{\mathbf{s} \sim P}[\mathbf{s}]$ și covarianță $\boldsymbol{\Sigma} = \textrm{Cov}_{\mathbf{s} \sim P}[\mathbf{s}]$.
    1. Calculați randamentul așteptat pentru un portofoliu dat $\boldsymbol{\alpha}$.
    2. Dacă ați dori să maximizați randamentul portofoliului, cum ar trebui să vă alegeți investiția?
    3. Calculați varianța portofoliului.
    4. Formulați o problemă de optimizare de maximizare a randamentului păstrând în același timp varianța limitată la o limită superioară. Acesta este portofoliul Markowitz câștigător al premiului Nobel 4). Pentru a o rezolva veți avea nevoie de un rezolvitor de programare pătratică, ceva mult dincolo de scopul acestei cărți.

Discuții

1)
Kolmogorov.1933
2)
Der-Kiureghian.Ditlevsen.2009
3)
Revels.Lubin.Papamarkou.2016
4)
Mangram.2013