Preskočiť na obsah
coden

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 %.

13 minút Matěj Žalmánek 2026-10-15

Séria Základy AI Diel 13 z 52
  1. Mapa umelej inteligencie: čo je čo a ako to do seba zapadá
  2. Stručná história umelej inteligencie: od Turinga po jazykové modely
  3. Dáta, model, tréning, inferencia: základné pojmy na jednom príklade
  4. Ako čítať matematický zápis: symboly, indexy, sumy a kvantifikátory
  5. Množiny a relácie: stavebnica, z ktorej sa skladajú definície v AI
  6. Funkcie a zobrazenia: prečo je každý model v AI funkcia
  7. Logika a dôkazy: pravidlá, podľa ktorých sa v AI uvažuje
  8. Grafy a stromy: štruktúra, na ktorej stojí hľadanie aj neurónové siete
  9. Lineárna algebra pre strojové učenie: vektory, matice a prečo AI hlavne násobí
  10. Derivácie, gradient a reťazové pravidlo: ako model zistí, ktorým smerom sa učiť
  11. Gradientný zostup: ako sa model učí
  12. Čo je pravdepodobnosť: od hodu kockou ku Kolmogorovovým axiómam
  13. Podmienená pravdepodobnosť a Bayesova veta: ako zmeniť odhad, keď sa dozviete niečo nové
  14. Náhodná premenná a distribučná funkcia: jedna funkcia, ktorá o rozdelení povie všetko
  15. Funkcia hustoty a pravdepodobnostná funkcia: prečo má spojitá premenná v bode pravdepodobnosť nula
  16. Stredná hodnota, rozptyl a kovariancia: kde rozdelenie leží, aké je široké a čo s čím súvisí
  17. Prehľad pravdepodobnostných rozdelení: Bernoulliho, binomické, Poissonovo, rovnomerné, normálne a exponenciálne
  18. Zákon veľkých čísel a centrálna limitná veta: prečo sa priemery správajú tak predvídateľne
  19. Štatistika a odhady parametrov: maximálna vierohodnosť, MAP a intervaly spoľahlivosti
  20. Teória informácie: entropia, krížová entropia a KL divergencia — odkiaľ sa berú stratové funkcie
  21. Prehľadávanie stavového priestoru: BFS, DFS, UCS a A* s animáciami
  22. Hry a protivník: minimax, alfa-beta orezávanie a Monte Carlo tree search
  23. Splňovanie obmedzujúcich podmienok: backtracking, propagácia obmedzení a AC-3 na sudoku a mape krajov
  24. Logika a znalostné systémy: dopredné a spätné reťazenie, rezolúcia a expertné systémy
  25. Plánovanie: STRIPS, svet kociek, heuristiky z relaxácie a plánovanie v AI agentoch
  26. Lokálne hľadanie a simulované žíhanie: obchodný cestujúci cez krajské mestá
  27. Genetické algoritmy: populácia, kríženie, mutácia a výber na batohu na výlet
  28. Evolučné stratégie a genetické programovanie: od pravidla jednej pätiny po Keplerov zákon
  29. Optimalizácia mravčou kolóniou: ako feromónová stopa nájde krátku cestu
  30. Optimalizácia rojom častíc: zotrvačnosť, vlastná skúsenosť a skúsenosť roja
  31. Neuroevolúcia: evolúcia váh aj tvaru neurónových sietí a algoritmus NEAT
  32. Fuzzy množiny a funkcie príslušnosti: ako zapísať „trochu teplo“
  33. Fuzzy logika a pravdepodobnosť: prečo „trochu teplo“ neznamená „pravdepodobne teplo“
  34. Fuzzy logika: t-normy, implikácie a pravidlá AK–TAK
  35. Fuzzy riadenie: Mamdani a Sugeno od ventilátora po kyvadlo na vozíku
  36. Fuzzy zhlukovanie: algoritmus fuzzy c-means a body medzi zhlukmi
  37. Neuro-fuzzy systémy (ANFIS): fuzzy pravidlá, ktoré sa učia z dát
  38. Markovove reťazce: prechodová matica, stacionárne rozdelenie a PageRank
  39. Skryté Markovove modely: Viterbiho algoritmus a nepoctivé kasíno
  40. Bayesovské siete: prečo je tráva mokrá a čo z toho vyplýva pre postrekovač
  41. Kalmanov filter: ako z nepresných meraní odhadnúť, kde auto je a ako rýchlo ide
  42. Druhy strojového učenia: s učiteľom, bez učiteľa, s čiastočným učiteľom a ďalšie
  43. Prompty, kontext a RAG: ako modelu dať správne informácie
  44. Variačné autoenkodéry (VAE): nové obrázky zo spojitého latentného priestoru
  45. Generatívne adversariálne siete (GAN): falšovateľ proti detektívovi
  46. Difúzne modely: ako sa z čistého šumu stane obrázok
  47. Markovove rozhodovacie procesy: stavy, akcie, odmeny a Bellmanove rovnice
  48. Q-learning a DQN: učenie hodnoty akcií od tabuľky po neurónovú sieť
  49. Policy gradient a PPO: učenie priamo stratégie
  50. Ako funguje AI agent: jazykový model v slučke s nástrojmi
  51. Programovanie s AI agentmi: zadanie, testy a kontrola
  52. Vyhodnocovanie a bezpečnosť AI systémov: ako merať a ako strážiť

Celá osnova série Hotovo: 52 z 83 tém

Čo si odnesiete
  • Č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.

Laicky povedané

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
Podiel javu A na zúženom svete B.

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:

1 1 2 2 3 3 4 4 5 5 6 6 2 3 4 5 6 7 3 4 5 6 7 8 4 5 6 7 8 9 5 6 7 8 9 10 6 7 8 9 10 11 7 8 9 10 11 12 druhá kocka (oká) prvá kocka (oká)
Podmienka „aspoň jedna šestka“ zúži 36 výsledkov na 11 výsledkov so šestkou: 11 z nich so súčtom 7: 2

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). ∎

Laicky povedané

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

  1. ak P(B) > 0, platí P(A ∩ B) = P(A | B) · P(B);
  2. 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. ∎

Laicky povedané

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)
Zložitú pravdepodobnosť rozloží na reťaz jednoduchých krokov — takto jazykový model skladá pravdepodobnosť celej vety zo slov.
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í.

Laicky povedané

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.

Laicky povedané

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.

Laicky povedané

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.

  1. Hi ∩ Hj = ∅ pre všetky i ≠ j (navzájom nezlučiteľné),
  2. H1 ∪ … ∪ Hk = Ω (spolu pokryjú Ω),
  3. 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).

Laicky povedané

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é
Vážený priemer podmienených pravdepodobností, váhami sú pravdepodobnosti možností.
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.

Laicky povedané

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.

Laicky povedané

Č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.

Laicky povedané

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.

Laicky povedané

Č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
Odhad potom = ako dobre hypotéza vysvetľuje dáta × odhad vopred, znormované.

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í:

10 000 ľudí 100 chorých 9 900 zdravých 99 pozitívnych 1 negatívnych 495 pozitívnych 9 405 negatívnych z pozitívnych je chorých: 99 / 594 ≈ 16,7 %
10 000 ľudí, jeden test

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.
Laicky povedané

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:

1,0 % vopred 16,7 % 1 test 79,8 % 2 testy 98,7 % 3 testy pozitívne testy za sebou (počet) pravdepodobnosť choroby (%)
Pravdepodobnosť choroby po pozitívnych testoch za sebou

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ť
Každý ďalší (podmienene nezávislý) dôkaz šancu len vynásobí svojím pomerom vierohodností.
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

  1. 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;
  2. 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
Bayesova veta + reťazové pravidlo + podmienená nezávislosť; menovateľ vypustíme, pretože na poradie tried nemá vplyv.

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.

Agent na vašom počítači, ovládaný z telefónu