Podmienená pravdepodobnosť a Bayesova veta: ako zmeniť odhad, keď sa dozviete niečo nové
Podmienená pravdepodobnosť, pravidlo súčinu, nezávislosť, úplná pravdepodobnosť a Bayesova veta — a prečo pozitívny test na zriedkavú chorobu znamená len 16,7 %.
Séria Základy AI Diel 13 z 52
- Mapa umelej inteligencie: čo je čo a ako to do seba zapadá
- Stručná história umelej inteligencie: od Turinga po jazykové modely
- Dáta, model, tréning, inferencia: základné pojmy na jednom príklade
- Ako čítať matematický zápis: symboly, indexy, sumy a kvantifikátory
- Množiny a relácie: stavebnica, z ktorej sa skladajú definície v AI
- Funkcie a zobrazenia: prečo je každý model v AI funkcia
- Logika a dôkazy: pravidlá, podľa ktorých sa v AI uvažuje
- Grafy a stromy: štruktúra, na ktorej stojí hľadanie aj neurónové siete
- Lineárna algebra pre strojové učenie: vektory, matice a prečo AI hlavne násobí
- Derivácie, gradient a reťazové pravidlo: ako model zistí, ktorým smerom sa učiť
- Gradientný zostup: ako sa model učí
- Čo je pravdepodobnosť: od hodu kockou ku Kolmogorovovým axiómam
- Podmienená pravdepodobnosť a Bayesova veta: ako zmeniť odhad, keď sa dozviete niečo nové
- Náhodná premenná a distribučná funkcia: jedna funkcia, ktorá o rozdelení povie všetko
- Funkcia hustoty a pravdepodobnostná funkcia: prečo má spojitá premenná v bode pravdepodobnosť nula
- Stredná hodnota, rozptyl a kovariancia: kde rozdelenie leží, aké je široké a čo s čím súvisí
- Prehľad pravdepodobnostných rozdelení: Bernoulliho, binomické, Poissonovo, rovnomerné, normálne a exponenciálne
- Zákon veľkých čísel a centrálna limitná veta: prečo sa priemery správajú tak predvídateľne
- Štatistika a odhady parametrov: maximálna vierohodnosť, MAP a intervaly spoľahlivosti
- Teória informácie: entropia, krížová entropia a KL divergencia — odkiaľ sa berú stratové funkcie
- Prehľadávanie stavového priestoru: BFS, DFS, UCS a A* s animáciami
- Hry a protivník: minimax, alfa-beta orezávanie a Monte Carlo tree search
- Splňovanie obmedzujúcich podmienok: backtracking, propagácia obmedzení a AC-3 na sudoku a mape krajov
- Logika a znalostné systémy: dopredné a spätné reťazenie, rezolúcia a expertné systémy
- Plánovanie: STRIPS, svet kociek, heuristiky z relaxácie a plánovanie v AI agentoch
- Lokálne hľadanie a simulované žíhanie: obchodný cestujúci cez krajské mestá
- Genetické algoritmy: populácia, kríženie, mutácia a výber na batohu na výlet
- Evolučné stratégie a genetické programovanie: od pravidla jednej pätiny po Keplerov zákon
- Optimalizácia mravčou kolóniou: ako feromónová stopa nájde krátku cestu
- Optimalizácia rojom častíc: zotrvačnosť, vlastná skúsenosť a skúsenosť roja
- Neuroevolúcia: evolúcia váh aj tvaru neurónových sietí a algoritmus NEAT
- Fuzzy množiny a funkcie príslušnosti: ako zapísať „trochu teplo“
- Fuzzy logika a pravdepodobnosť: prečo „trochu teplo“ neznamená „pravdepodobne teplo“
- Fuzzy logika: t-normy, implikácie a pravidlá AK–TAK
- Fuzzy riadenie: Mamdani a Sugeno od ventilátora po kyvadlo na vozíku
- Fuzzy zhlukovanie: algoritmus fuzzy c-means a body medzi zhlukmi
- Neuro-fuzzy systémy (ANFIS): fuzzy pravidlá, ktoré sa učia z dát
- Markovove reťazce: prechodová matica, stacionárne rozdelenie a PageRank
- Skryté Markovove modely: Viterbiho algoritmus a nepoctivé kasíno
- Bayesovské siete: prečo je tráva mokrá a čo z toho vyplýva pre postrekovač
- Kalmanov filter: ako z nepresných meraní odhadnúť, kde auto je a ako rýchlo ide
- Druhy strojového učenia: s učiteľom, bez učiteľa, s čiastočným učiteľom a ďalšie
- Prompty, kontext a RAG: ako modelu dať správne informácie
- Variačné autoenkodéry (VAE): nové obrázky zo spojitého latentného priestoru
- Generatívne adversariálne siete (GAN): falšovateľ proti detektívovi
- Difúzne modely: ako sa z čistého šumu stane obrázok
- Markovove rozhodovacie procesy: stavy, akcie, odmeny a Bellmanove rovnice
- Q-learning a DQN: učenie hodnoty akcií od tabuľky po neurónovú sieť
- Policy gradient a PPO: učenie priamo stratégie
- Ako funguje AI agent: jazykový model v slučke s nástrojmi
- Programovanie s AI agentmi: zadanie, testy a kontrola
- Vyhodnocovanie a bezpečnosť AI systémov: ako merať a ako strážiť
Celá osnova série Hotovo: 52 z 83 tém
- Čo je podmienená pravdepodobnosť a prečo P(A | B) nie je to isté ako P(B | A).
- Čo znamená nezávislosť, ako funguje pravidlo súčinu a veta o úplnej pravdepodobnosti.
- Ako Bayesova veta obracia podmienku — a prečo pri zriedkavých javoch nesmiete zabudnúť na základnú početnosť.
Čo sa hodí vedieť vopred: Čo je pravdepodobnosť: od hodu kockou ku Kolmogorovovým axiómam
Pravdepodobnosť nie je pevné číslo vytesané do kameňa. Keď sa dozviete niečo nové, mení sa. Pravdepodobnosť, že prší, je iná, keď viete, že vonku je zamračené. Pravdepodobnosť, že e-mail je spam, je iná, keď v ňom stojí „vyhrali ste“. Tento diel je o tom, ako pravdepodobnosť presne prepočítať, keď príde nová informácia — a o vete, na ktorej stoja spamové filtre, lekárska diagnostika aj veľká časť strojového učenia.
Nadväzuje na diel Čo je pravdepodobnosť a opäť používa dve kocky.
1. Podmienená pravdepodobnosť
Definícia — podmienená pravdepodobnosť
Nech (Ω, 𝓕, P) je pravdepodobnostný priestor (pozri diel Čo je pravdepodobnosť) a A, B ∈ 𝓕 sú javy, pričom P(B) > 0. Podmienená pravdepodobnosť javu A za podmienky B je číslo
P(A | B) = P(A ∩ B)/P(B).
Pre P(B) = 0 táto definícia P(A | B) neurčuje. Slovami: P(A | B) je podiel, ktorý z pravdepodobnosti javu B pripadá na výsledky ležiace zároveň v A.
Podmienka zmenší svet. Keď viete, že nastalo B, všetko ostatné môžete škrtnúť a počítate len vnútri B: aká časť z B patrí aj do A?
P(A | B) = P(A ∩ B)/P(B)
- P(A | B)
- pravdepodobnosť A potom, čo vieme, že nastalo B — to, čo chceme vypočítať
- P(A ∩ B)
- len tá časť A, ktorá leží vnútri B — výsledky z A mimo B už nastať nemôžu, preto ich škrtneme
- P(B)
- nový celok — delením preškálujeme zvyšný svet tak, aby mal opäť pravdepodobnosť 1 (P(B | B) = 1); preto musí byť P(B) > 0
Kamarát hodil dvoma kockami a prezradí len to, že padla aspoň jedna šestka. Aká je pravdepodobnosť, že súčet je 7? Z 36 výsledkov zostane 11 so šestkou — a iba dva z nich, (1, 6) a (6, 1), majú súčet 7:
P(súčet 7 | aspoň jedna šestka) = 2/11 ≈ 0,182 — o niečo viac ako bez podmienky, keď je to 1/6 ≈ 0,167. A pozor na poradie: P(aspoň jedna šestka | súčet 7) = 2/6 = 1/3. P(A | B) a P(B | A) sú vo všeobecnosti úplne iné čísla.
Príklad — výpočet priamo z definície
Ak sú všetky výsledky rovnako možné (klasická pravdepodobnosť), počet 36 sa v zlomku skráti a zostane podiel počtov: P(A | B) = |A ∩ B|/|B|, kde |·| je počet výsledkov.
A = súčet 7, B = aspoň jedna šestka, A ∩ B = {(1, 6), (6, 1)}
P(B) = 11/36, P(A ∩ B) = 2/36, P(A) = 6/36
P(A | B) = 2/36/11/36 = 2/11 ≈ 0,182, P(B | A) = 2/36/6/36 = 1/3
(farby podľa vzorca vyššie; pri P(B | A) hrá úlohu podmienky jav A, takže v menovateli je P(A))
Čitateľ je v oboch prípadoch rovnaký; líši sa len to, čím delíme — teda ktorý svet sme podmienkou vybrali.
Veta — podmienená pravdepodobnosť je pravdepodobnosť
Nech (Ω, 𝓕, P) je pravdepodobnostný priestor a B ∈ 𝓕 jav s P(B) > 0. Potom funkcia
PB : 𝓕 → ℝ, PB(A) = P(A | B),
je pravdepodobnosť na (Ω, 𝓕), t. j. spĺňa všetky tri Kolmogorovove axiómy.
Dôkaz. Nezápornosť: P(A | B) je podiel nezáporného a kladného čísla. Normovanosť: P(Ω | B) = P(Ω ∩ B)/P(B) = P(B)/P(B) = 1. Aditivita: ak sú A1, A2, … ∈ 𝓕 navzájom nezlučiteľné, sú navzájom nezlučiteľné aj Ai ∩ B, a keďže (⋃i Ai) ∩ B = ⋃i (Ai ∩ B), je P((⋃i Ai) ∩ B) = ∑i P(Ai ∩ B); vydelením P(B) dostaneme P(⋃i Ai | B) = ∑i P(Ai | B). ∎
Vnútri podmienky platia všetky pravidlá, ktoré už poznáte — napríklad P(Ac | B) = 1 − P(A | B): súčet iný než 7, keď padla šestka, má pravdepodobnosť 1 − 2/11 = 9/11.
2. Pravidlo súčinu
Veta — pravidlo súčinu
Nech (Ω, 𝓕, P) je pravdepodobnostný priestor a A, B ∈ 𝓕 javy. Potom
- ak P(B) > 0, platí P(A ∩ B) = P(A | B) · P(B);
- ak P(A) > 0, platí P(A ∩ B) = P(B | A) · P(A).
Dôkaz. Rovnosť z definície P(A | B) = P(A ∩ B)/P(B) vynásobíme číslom P(B); druhý bod rovnako s prehodenými úlohami A a B. ∎
Aby nastalo oboje, musí najprv nastať B a potom, keď už o B vieme, ešte A. Šance sa násobia. „Súčet 7 a zároveň šestka“: 11/36 · 2/11 = 2/36 — presne tie dve políčka z obrázka.
Pravidlo súčinu nie je nový predpoklad — je to definícia podmienenej pravdepodobnosti vynásobená menovateľom. Ak ho zopakujete, dostanete pravidlo pre ľubovoľne veľa javov:
Veta — reťazové pravidlo
Nech (Ω, 𝓕, P) je pravdepodobnostný priestor, n ≥ 2 a A1, …, An ∈ 𝓕 javy s P(A1 ∩ … ∩ An−1) > 0. (Potom je kladné aj P(A1 ∩ … ∩ Ai) pre každé i < n, pretože ide o nadmnožiny, takže všetky podmienené pravdepodobnosti nižšie sú definované.) Potom
P(A1 ∩ … ∩ An) = P(A1) · P(A2 | A1) · P(A3 | A1 ∩ A2) · … · P(An | A1 ∩ … ∩ An−1).
Dôkaz. Indukciou podľa n: P(A1 ∩ … ∩ An) = P(An | A1 ∩ … ∩ An−1) · P(A1 ∩ … ∩ An−1) je pravidlo súčinu pre A = An a B = A1 ∩ … ∩ An−1; druhý činiteľ rozložíme rovnako. ∎
P(A1 ∩ … ∩ An) = ∏i=1n P(Ai | A1 ∩ … ∩ Ai−1)
- P(A1 ∩ … ∩ An)
- pravdepodobnosť, že nastane všetko naraz — často sa nedá vypočítať priamo
- ∏
- súčin — javy prechádzame jeden po druhom a šance sa násobia, pretože každý ďalší krok musí vyjsť navyše k predchádzajúcim
- P(Ai | …)
- šanca i-tého kroku — jediná vec, ktorú v každom kroku potrebujeme vedieť odhadnúť
- A1 ∩ … ∩ Ai−1
- všetko, čo už nastalo — podmienka nesie históriu, takže pravidlo platí aj pre závislé javy (pre i = 1 je podmienka prázdna)
Príklad — tri esá za sebou
Z premiešaného balíčka 52 kariet (4 esá) ťaháme tri karty bez vracania. Ai = „i-tá karta je eso“.
P(A1) = 4/52, P(A2 | A1) = 3/51, P(A3 | A1 ∩ A2) = 2/50
P(tri esá) = 4/52 · 3/51 · 2/50 = 24/132 600 = 1/5 525 ≈ 0,000 181 (farby podľa vzorca vyššie)
Každá podmienka zachytáva, čo sa zmenilo: po prvom ese zostávajú 3 esá v 51 kartách.
3. Nezávislosť
Definícia — nezávislé javy
Nech (Ω, 𝓕, P) je pravdepodobnostný priestor a A, B ∈ 𝓕 javy. Javy A a B sú nezávislé práve vtedy, keď
P(A ∩ B) = P(A) · P(B).
Ak P(B) > 0, sú A a B nezávislé práve vtedy, keď P(A | B) = P(A) (vydelením oboch strán P(B)) — informácia, že nastal jav B, pravdepodobnosť javu A nezmení.
Nezávislé javy si navzájom nič neprezradia: keď viete, že nastalo B, o A neviete o nič viac. Hod prvou a druhou kockou sú nezávislé — dve šestky majú pravdepodobnosť 1/6 · 1/6 = 1/36.
Nezávislosť vie prekvapiť. „Súčet je 7“ a „na prvej kocke padla šestka“ sú nezávislé: P oboch je 1/36 a 1/6 · 1/6 = 1/36 — nech na prvej kocke padne čokoľvek, na druhej existuje práve jedno číslo, ktoré dá súčet 7. Naopak „súčet je 12“ a „na prvej je šestka“ nezávislé nie sú: bez podmienky má súčet 12 len 1/36, ale so šestkou na prvej kocke už 1/6.
A nezamieňajte si nezávislé javy s nezlučiteľnými. Nezlučiteľné javy sú naopak silne závislé — keď nastal jeden, viete isto, že druhý nenastal.
Definícia — nezávislosť viacerých javov
Nech (Ω, 𝓕, P) je pravdepodobnostný priestor, n ≥ 2 a A1, …, An ∈ 𝓕 javy. Javy A1, …, An sú (vzájomne) nezávislé práve vtedy, keď pre každú množinu indexov I ⊆ {1, …, n} s |I| ≥ 2 platí
P(⋂i ∈ I Ai) = ∏i ∈ I P(Ai).
Súčinové pravidlo teda musí platiť pre každú dvojicu, každú trojicu, …, aj pre všetkých n javov naraz.
Nestačí kontrolovať dvojice. A = „prvá kocka nepárna“, B = „druhá kocka nepárna“, C = „súčet nepárny“. Každý má pravdepodobnosť 1/2 a každá dvojica nastane s pravdepodobnosťou 9/36 = 1/4 = 1/2 · 1/2 — po dvoch sú nezávislé. Ale všetky tri nastať nemôžu (dve nepárne čísla dajú párny súčet): P(A ∩ B ∩ C) = 0 ≠ 1/8. Kto pozná A a B, pozná aj C.
Definícia — podmienená nezávislosť
Nech (Ω, 𝓕, P) je pravdepodobnostný priestor a A, B, C ∈ 𝓕 javy s P(C) > 0. Javy A a B sú podmienene nezávislé za podmienky C práve vtedy, keď
P(A ∩ B | C) = P(A | C) · P(B | C),
t. j. práve vtedy, keď sú A a B nezávislé vzhľadom na pravdepodobnosť PC = P( · | C). Podmienená nezávislosť nevyplýva z nezávislosti ani naopak.
Nezávislosť vnútri zúženého sveta C. Dva pozitívne testy toho istého človeka nezávislé nie sú — keď prvý vyšiel pozitívne, je pravdepodobnejšie, že je chorý, a teda aj že vyjde pozitívne druhý. Keď ale vieme, či je chorý, môžu už byť nezávislé: chyba jedného testu neprezradí nič o chybe druhého. Na tomto predpoklade stojí výpočet opakovaných testov aj naivný Bayesov klasifikátor nižšie.
4. Veta o úplnej pravdepodobnosti
Veta — úplná pravdepodobnosť
Nech (Ω, 𝓕, P) je pravdepodobnostný priestor, k ≥ 1 a javy H1, …, Hk ∈ 𝓕 tvoria rozklad priestoru Ω, t. j.
- Hi ∩ Hj = ∅ pre všetky i ≠ j (navzájom nezlučiteľné),
- H1 ∪ … ∪ Hk = Ω (spolu pokryjú Ω),
- P(Hi) > 0 pre všetky i = 1, …, k.
Potom pre každý jav A ∈ 𝓕 platí
P(A) = ∑i=1k P(A | Hi) · P(Hi).
Keď neviete, ktorá z možností platí, prejdite ich všetky: pre každú vypočítajte šancu na A a zvážte ju tým, aká častá je táto možnosť. Pozitívny výsledok testu príde buď od chorého, alebo od zdravého — a obe cesty sa sčítajú.
P(A) = ∑i=1k P(A | Hi) · P(Hi)
- P(A)
- celková pravdepodobnosť javu, nech nastal ktoroukoľvek cestou
- ∑i=1k
- súčet cez všetky možnosti — smieme sčítavať, pretože sa možnosti navzájom vylučujú (aditivita), a nič nechýba, pretože spolu pokryjú Ω
- P(A | Hi)
- šanca na A, keby platila práve možnosť Hi — toto býva ľahké odhadnúť
- P(Hi)
- váha možnosti — častá možnosť prispeje viac; bez nej by sme priemerovali, akoby boli všetky rovnako časté
Dôkaz a príklad — úplná pravdepodobnosť
Dôkaz. Jav A sa rozpadne na nezlučiteľné kusy A = (A ∩ H1) ∪ … ∪ (A ∩ Hk). Podľa aditivity P(A) = ∑ P(A ∩ Hi) a podľa pravidla súčinu je každý sčítanec P(A | Hi) · P(Hi). ∎
Podmienka 3 je potrebná len preto, aby boli definované P(A | Hi). Keby niektoré Hi malo P(Hi) = 0, je P(A ∩ Hi) = 0 a jeho sčítanec zo súčtu jednoducho vynecháme.
Rozklad podľa toho, čo padlo na prvej kocke: Hi = „prvá kocka ukazuje i“, i = 1, …, 6.
P(súčet 7) = ∑i=16 P(druhá = 7 − i | Hi) · 1/6 = 6 · (1/6 · 1/6) = 1/6
P(súčet 12) = 0 · 1/6 + … + 0 · 1/6 + 1/6 · 1/6 = 1/36 (prispeje len cesta H6; farby podľa vzorca vyššie)
5. Bayesova veta
Veta — Bayesova veta
Nech (Ω, 𝓕, P) je pravdepodobnostný priestor a A, H ∈ 𝓕 javy s P(A) > 0 a P(H) > 0. Potom
P(H | A) = P(A | H) · P(H)/P(A),
kde menovateľ P(A) sa vypočíta vetou o úplnej pravdepodobnosti.
Bayesova veta obracia podmienku. Často vieme, ako sa prejavuje príčina — ako často dostane chorý pozitívny test. Chceme však opak: keď je test pozitívny, aká pravdepodobná je choroba? Veta vyplýva priamo z pravidla súčinu, len ho zapíše oboma spôsobmi.
Dôkaz — Bayesova veta
Pravidlo súčinu zapísané dvakrát: P(H | A) · P(A) = P(H ∩ A) = P(A | H) · P(H). Vydelíme P(A) > 0. ∎
Ak navyše H1, …, Hk ∈ 𝓕 tvoria rozklad Ω s P(Hi) > 0 pre všetky i (ako vo vete o úplnej pravdepodobnosti), dosadíme do menovateľa úplnú pravdepodobnosť a pre každé j = 1, …, k dostaneme
P(Hj | A) = P(A | Hj) · P(Hj)/∑i=1k P(A | Hi) · P(Hi).
Jednotlivé časti vety majú svoje mená:
Definícia — apriórna pravdepodobnosť
Nech (Ω, 𝓕, P) je pravdepodobnostný priestor, H ∈ 𝓕 jav, ktorý chápeme ako hypotézu, a A ∈ 𝓕 jav, ktorý chápeme ako pozorované dáta. Apriórna pravdepodobnosť hypotézy H je číslo P(H) — pravdepodobnosť hypotézy bez ohľadu na dáta A, teda predtým, než ich uvidíme.
Čo si myslíte vopred. Chorobu má 1 % ľudí, takže bez testu je šanca, že ju máte, 1 %.
Definícia — vierohodnosť
Nech H, A ∈ 𝓕 sú hypotéza a dáta ako vyššie a P(H) > 0. Vierohodnosť hypotézy H pri dátach A je číslo P(A | H) — pravdepodobnosť dát A za predpokladu, že hypotéza H platí.
Vierohodnosť sa chápe ako funkcia hypotézy pri pevných dátach, H ↦ P(A | H); ako taká nie je rozdelením pravdepodobnosti na hypotézach — pre rozklad H1, …, Hk sa súčet ∑i P(A | Hi) vo všeobecnosti nerovná 1.
Ako dobre hypotéza vysvetľuje to, čo vidíte. Chorý dostane pozitívny test v 99 % prípadov.
Definícia — aposteriórna pravdepodobnosť
Nech H, A ∈ 𝓕 sú hypotéza a dáta ako vyššie a P(A) > 0. Aposteriórna pravdepodobnosť hypotézy H je číslo P(H | A) — pravdepodobnosť hypotézy potom, čo sme videli dáta A.
Čo si myslíte potom. Bayesova veta hovorí, ako z „vopred“ a „ako dobre to sedí“ urobiť „potom“.
P(H | A) = P(A | H) · P(H)/P(A)
- P(H | A)
- aposteriórna pravdepodobnosť — nakoľko veríme hypotéze po pohľade na dáta; to, čo chceme
- P(A | H)
- vierohodnosť — hypotéza, ktorá dáta predpovedá dobre, získa; to je tá podmienka „opačným smerom“, ktorú obvykle poznáme
- P(H)
- apriórna pravdepodobnosť — zriedkavá hypotéza potrebuje silnejší dôkaz; bez tohto člena vzniká zanedbanie základnej početnosti
- P(A)
- celková pravdepodobnosť dát (evidencia) — rovnaká pre všetky hypotézy; delí len preto, aby sa aposteriórne pravdepodobnosti všetkých hypotéz sčítali na 1
6. Pozitívny test: prečo len 16,7 %
Chorobu má 1 % ľudí. Test ju u chorého odhalí v 99 % prípadov, ale u zdravého v 5 % prípadov ohlási falošný poplach. Váš test je pozitívny. Aké pravdepodobné je, že chorobu máte? Väčšina ľudí — vrátane mnohých lekárov — tipuje okolo 95 %. Bayesova veta hovorí:
P(pozitívny) = 0,99 · 0,01 + 0,05 · 0,99 = 0,0594
P(choroba | pozitívny) = 0,99 · 0,01/0,0594 ≈ 0,167
(farby podľa rozboru Bayesovej vety vyššie: vierohodnosť, apriórna pravdepodobnosť, celková pravdepodobnosť dát, aposteriórna pravdepodobnosť)
Len 16,7 %. Najlepšie to vidno na prirodzených početnostiach — namiesto pravdepodobností si predstavte 10 000 ľudí:
Chorých je 100 a test ich zachytí 99. Zdravých je však 9 900 a aj iba 5 % z nich je 495 falošných poplachov. Pozitívnych je spolu 594 a chorých medzi nimi len 99 — šestina. Chyba v intuícii má meno: zanedbanie základnej početnosti. Keď je niečo zriedkavé, aj presný test vyprodukuje viac falošných poplachov než skutočných nálezov.
Definícia — citlivosť, špecificita a prediktívna hodnota
Nech (Ω, 𝓕, P) je pravdepodobnostný priestor (náhodne vybraný testovaný človek), D ∈ 𝓕 jav „človek je chorý“, + ∈ 𝓕 jav „test vyšiel pozitívne“ a − = +c jav „test vyšiel negatívne“; nech 0 < P(D) < 1 a P(+) > 0. Definujeme:
- citlivosť = P(+ | D) — podiel chorých, ktorých test zachytí (tu 0,99);
- špecificita = P(− | Dc) — podiel zdravých, ktorých test správne pustí (tu 0,95); falošne pozitívny podiel je 1 − špecificita = 0,05;
- pozitívna prediktívna hodnota = P(D | +) — čo zaujíma pacienta s pozitívnym výsledkom.
Citlivosť a špecificita opisujú test a výrobca ich zmeria na ľuďoch, o ktorých vie, či sú chorí. Prediktívna hodnota závisí navyše od toho, aká častá je choroba — preto ju výrobca na škatuľku napísať nemôže. Zo stromu: 99 skutočne chorých z 99 + 495 = 594 pozitívnych, 99/594 = 1/6 ≈ 0,167 — to isté číslo, ktoré dala Bayesova veta.
7. Učenie z dát: aposteriórna sa stáva apriórnou
Čo ak sa test zopakuje a vyjde znova pozitívny? Teraz už nezačíname na 1 % — výsledok prvého testu je nový východiskový odhad. Aposteriórna pravdepodobnosť sa stane apriórnou:
Po druhom pozitívnom teste je to už 79,8 %, po treťom 98,7 %. Každý dôkaz posunie odhad a ďalší dôkaz stavia na predchádzajúcom. Presne tak sa učia bayesovské modely — začnú s nejakým predpokladom a s každým kúskom dát ho spresnia.
Výpočet je naozaj len opakovaná Bayesova veta — ale s jedným skrytým predpokladom: testy sú za podmienky „chorý“ aj za podmienky „zdravý“ podmienene nezávislé (chyba jedného neprezradí nič o druhom). Potom je vierohodnosť každého ďalšieho testu stále 0,99, resp. 0,05. Pri skutočnom opakovanom teste rovnakým postupom to splnené byť nemusí.
def aktualizuj(prior, citlivost, falesne_poz, vysledky):
p = prior
for pozitivni in vysledky:
if pozitivni:
ano, ne = citlivost, falesne_poz # P(+ | choroba), P(+ | zdravie)
else:
ano, ne = 1 - citlivost, 1 - falesne_poz # P(− | choroba), P(− | zdravie)
p = ano * p / (ano * p + ne * (1 - p)) # Bayesova veta
return p # aposteriórna = nová apriórna
Ešte jednoduchšie je počítať v šanciach — pomere „za“ ku „proti“:
Veta — Bayesova veta v podielovom tvare
Definícia. Pre p ∈ [0, 1) je šanca zodpovedajúca pravdepodobnosti p číslo
O = p/1 − p ∈ [0, ∞); späť p = O/1 + O.
Pre jav H s P(H) < 1 píšeme O(H) = P(H)/P(Hc) a pre P(A) > 0, P(H | A) < 1 obdobne O(H | A) = P(H | A)/P(Hc | A).
Veta. Nech (Ω, 𝓕, P) je pravdepodobnostný priestor a A, H ∈ 𝓕 javy, pre ktoré 0 < P(H) < 1, P(A) > 0 a P(A | Hc) > 0. Potom
P(H | A)/P(Hc | A) = P(A | H)/P(A | Hc) · P(H)/P(Hc), t. j. O(H | A) = P(A | H)/P(A | Hc) · O(H).
Dôkaz. Bayesova veta pre H aj pre Hc (obe majú kladnú pravdepodobnosť) dá P(H | A) = P(A | H) P(H)/P(A) a P(Hc | A) = P(A | Hc) P(Hc)/P(A) > 0. Vydelíme prvú rovnosť druhou a menovateľ P(A) sa skráti. ∎
O(H | A) = P(A | H)/P(A | Hc) · O(H)
- O(H | A)
- šanca hypotézy po pozorovaní — z nej sa pravdepodobnosť dopočíta ako O/1 + O
- P(A | H)/P(A | Hc)
- pomer vierohodností — sila dôkazu: koľkokrát je pozorovanie pravdepodobnejšie, keď hypotéza platí, než keď neplatí; nezávisí od apriórnej pravdepodobnosti, takže je to vlastnosť testu
- O(H)
- šanca vopred — tu vstupuje základná početnosť; menovateľ P(A) v podiele vypadol, preto ho nemusíme počítať
Príklad — tri pozitívne testy v šanciach
pomer vierohodností pozitívneho testu: 0,99/0,05 = 19,8; šanca vopred: 0,01/0,99 = 1 : 99
1. test: 1/99 · 19,8 = 0,2 → p = 0,2/1,2 ≈ 0,167
2. test: 0,2 · 19,8 = 3,96 → p = 3,96/4,96 ≈ 0,798
3. test: 3,96 · 19,8 ≈ 78,41 → p = 78,41/79,41 ≈ 0,987
(farby podľa vzorca vyššie; šanca po jednom teste je šancou vopred pre ďalší test)
Rovnaké čísla ako v grafe (16,7 %, 79,8 %, 98,7 %), len s jedným násobením na test.
8. Bayes v umelej inteligencii
- Spamové filtre — keď je spamom 40 % pošty, slovo „výhra“ je v 30 % spamu a len v 1 % ostatných e-mailov, potom e-mail so slovom „výhra“ je spam s pravdepodobnosťou 0,12/0,126 ≈ 0,952. Naivný Bayesov klasifikátor to robí pre každé slovo.
- Jazykové modely počítajú podmienenú pravdepodobnosť ďalšieho slova za podmienky všetkých predchádzajúcich: P(xt | x1, …, xt−1). Celý text je súčin takých podmienok — pravidlo súčinu.
- Bayesovské siete zapisujú, ktoré veličiny na sebe závisia, ako orientovaný graf a počítajú s podmienenými pravdepodobnosťami pozdĺž jeho hrán.
- Neistota modelu — bayesovské metódy nedávajú len jednu odpoveď, ale rozdelenie: nakoľko si je model istý a kde by mu pomohli ďalšie dáta.
Naivný Bayesov klasifikátor
Definícia — naivný Bayesov klasifikátor
Nech K je konečná neprázdna množina tried (napr. {spam, ostatné}), n ≥ 1 a pozorovanie je n-tica príznakov (w1, …, wn) (napr. slová e-mailu). Nech pre každú triedu c ∈ K poznáme jej apriórnu pravdepodobnosť P(c) > 0 a pre každý príznak podmienenú pravdepodobnosť P(wi | c). Naivný Bayesov klasifikátor
- predpokladá, že príznaky sú za podmienky každej triedy podmienene nezávislé: P(w1, …, wn | c) = ∏i=1n P(wi | c) pre všetky c ∈ K;
- zaradí pozorovanie do triedy ĉ = arg maxc ∈ K P(c) · ∏i=1n P(wi | c).
Ak P(w1, …, wn) > 0, dá Bayesova veta spolu s bodom 1
P(c | w1, …, wn) = P(c) · ∏i=1n P(wi | c)/P(w1, …, wn) ∝ P(c) · ∏i=1n P(wi | c),
kde ∝ znamená „rovná sa až na kladnú konštantu nezávislú od c“ (menovateľ). Klasifikátor teda vyberie triedu s najväčšou aposteriórnou pravdepodobnosťou.
P(c | w1, …, wn) ∝ P(c) · ∏i P(wi | c)
- P(c | w1, …)
- aká pravdepodobná je trieda, keď vidíme tieto slová — podľa toho e-mail zaradíme
- P(c)
- apriórna pravdepodobnosť triedy — koľko pošty je vôbec spam; bez nej by filter podcenil, aká častá je ktorá trieda
- ∏i P(wi | c)
- vierohodnosť rozložená na slová — „naivný“ predpoklad podmienenej nezávislosti nahradí jednu nezistiteľnú pravdepodobnosť celej kombinácie slov súčinom čísel, ktoré sa dajú vypočítať z trénovacích e-mailov slovo po slove
Súčin stoviek malých čísel by sa v počítači zaokrúhlil na nulu, preto sa počíta so súčtom logaritmov — logaritmus je rastúci, takže poradie tried nezmení:
def klasifikuj(slova, prior, verohodnost):
# prior[c] = P(c), verohodnost[c][w] = P(w | c), odhadnuté z trénovacích dát
skore = {}
for c in prior:
skore[c] = log(prior[c])
for w in slova:
skore[c] += log(verohodnost[c][w]) # súčin → súčet logaritmov
return max(skore, key=skore.get) # trieda s najväčším skóre
Príklad — e-mail so slovami „výhra“ a „zadarmo“
Spam je 40 % pošty, „výhra“ je v 30 % spamu a 1 % ostatných e-mailov; „zadarmo“ (ilustračné čísla) v 20 % spamu a 2 % ostatných.
spam: 0,4 · 0,3 · 0,2 = 0,024, ostatné: 0,6 · 0,01 · 0,02 = 0,000 12 (farby podľa vzorca vyššie)
P(spam | výhra, zadarmo) = 0,024/0,024 + 0,000 12 ≈ 0,995
v logaritmoch: ln 0,4 + ln 0,3 + ln 0,2 ≈ −3,730, ln 0,6 + ln 0,01 + ln 0,02 ≈ −9,028
Druhé slovo zdvihlo odhad z 0,952 na 0,995. Rozdiel skóre 5,298 je logaritmus aposteriórnych šancí: e5,298 ≈ 200 = 0,024/0,000 12.
9. Zhrnutie
- Podmienená pravdepodobnosť P(A | B) počíta len vnútri B; P(A | B) ≠ P(B | A).
- Pravidlo súčinu: P(A ∩ B) = P(A | B) · P(B). Nezávislé javy si nič neprezradia.
- Veta o úplnej pravdepodobnosti sčíta všetky cesty, ktorými môže jav nastať.
- Bayesova veta obracia podmienku: z apriórnej pravdepodobnosti a vierohodnosti urobí aposteriórnu.
- Pri zriedkavých javoch dáva aj presný test veľa falošných poplachov — nezabúdajte na základnú početnosť.
Máte na to iný názor? Napíšte na support@coden-app.com.