Přeskočit na obsah
coden

Podmíněná pravděpodobnost a Bayesova věta: jak změnit odhad, když se dozvíte něco nového

Podmíněná pravděpodobnost, pravidlo součinu, nezávislost, úplná pravděpodobnost a Bayesova věta — a proč pozitivní test na vzácnou nemoc znamená jen 16,7 %.

13 minut Matěj Žalmánek 2026-10-15

Série Základy AI Díl 13 z 83
  1. Mapa umělé inteligence: co je co a jak to do sebe zapadá
  2. Stručná historie umělé inteligence: od Turinga po jazykové modely
  3. Data, model, trénink, inference: základní pojmy na jednom příkladu
  4. Jak číst matematický zápis: symboly, indexy, sumy a kvantifikátory
  5. Množiny a relace: stavebnice, ze které se skládají definice v AI
  6. Funkce a zobrazení: proč je každý model v AI funkce
  7. Logika a důkazy: pravidla, podle kterých se v AI uvažuje
  8. Grafy a stromy: struktura, na které stojí hledání i neuronové sítě
  9. Lineární algebra pro strojové učení: vektory, matice a proč AI hlavně násobí
  10. Derivace, gradient a řetízkové pravidlo: jak model zjistí, kterým směrem se učit
  11. Gradientní sestup: jak se model učí
  12. Co je pravděpodobnost: od hodu kostkou ke Kolmogorovovým axiomům
  13. Podmíněná pravděpodobnost a Bayesova věta: jak změnit odhad, když se dozvíte něco nového
  14. Náhodná veličina a distribuční funkce: jedna funkce, která o rozdělení řekne všechno
  15. Funkce hustoty a pravděpodobnostní funkce: proč má spojitá veličina v bodě pravděpodobnost nula
  16. Střední hodnota, rozptyl a kovariance: kde rozdělení leží, jak je široké a co s čím souvisí
  17. Přehled pravděpodobnostních rozdělení: Bernoulli, binomické, Poisson, rovnoměrné, normální a exponenciální
  18. Zákon velkých čísel a centrální limitní věta: proč se průměry chovají tak předvídatelně
  19. Statistika a odhady parametrů: maximální věrohodnost, MAP a intervaly spolehlivosti
  20. Teorie informace: entropie, křížová entropie a KL divergence — odkud se berou ztrátové funkce
  21. Prohledávání stavového prostoru: BFS, DFS, UCS a A* s animacemi
  22. Hry a protivník: minimax, alfa-beta ořezávání a Monte Carlo tree search
  23. Splňování omezujících podmínek: backtracking, propagace omezení a AC-3 na sudoku a mapě krajů
  24. Logika a znalostní systémy: dopředné a zpětné řetězení, rezoluce a expertní systémy
  25. Plánování: STRIPS, svět kostek, heuristiky z relaxace a plánování v AI agentech
  26. Lokální hledání a simulované žíhání: obchodní cestující přes krajská města
  27. Genetické algoritmy: populace, křížení, mutace a výběr na batohu na výlet
  28. Evoluční strategie a genetické programování: od pravidla jedné pětiny po Keplerův zákon
  29. Optimalizace mravenčí kolonií: jak feromonová stopa najde krátkou cestu
  30. Optimalizace hejnem částic: setrvačnost, vlastní zkušenost a zkušenost hejna
  31. Neuroevoluce: evoluce vah i tvaru neuronových sítí a algoritmus NEAT
  32. Fuzzy množiny a funkce příslušnosti: jak zapsat „trochu teplo“
  33. Fuzzy logika a pravděpodobnost: proč „trochu teplo“ neznamená „pravděpodobně teplo“
  34. Fuzzy logika: t-normy, implikace a pravidla KDYŽ–PAK
  35. Fuzzy řízení: Mamdani a Sugeno od ventilátoru po kyvadlo na vozíku
  36. Fuzzy shlukování: algoritmus fuzzy c-means a body mezi shluky
  37. Neuro-fuzzy systémy (ANFIS): fuzzy pravidla, která se učí z dat
  38. Markovovy řetězce: přechodová matice, stacionární rozdělení a PageRank
  39. Skryté Markovovy modely: Viterbiho algoritmus a nepoctivé kasino
  40. Bayesovské sítě: proč je tráva mokrá a co z toho plyne pro postřikovač
  41. Kalmanův filtr: jak z nepřesných měření odhadnout, kde auto je a jak rychle jede
  42. Druhy strojového učení: s učitelem, bez učitele, s částečným učitelem a další
  43. Přeučení a regularizace: proč model, který zná data nazpaměť, selže
  44. Vyhodnocení modelu: křížová validace, F1 a křivka ROC
  45. Shlukování a snížení dimenze: k-means, PCA a t-SNE
  46. Klasifikace a regrese: dvě úlohy učení s učitelem
  47. Lineární regrese: nejmenší čtverce geometricky i maticově
  48. Polynomiální a nelineární regrese: jak přímku ohnout
  49. Logistická regrese: sigmoida, šance a křížová entropie
  50. Vícetřídní klasifikace a softmax: od dvou tříd k mnoha
  51. Naivní Bayesův klasifikátor: spamový filtr, který funguje lépe, než by měl
  52. Ztrátové funkce: co přesně model minimalizuje
  53. Rozhodovací stromy a k nejbližších sousedů: modely bez vzorců
  54. Ansámbly: náhodný les a gradient boosting
  55. SVM a jádrový trik: nejširší hranice a jak ji ohnout
  56. Signál a vzorkování: proč platí Nyquistův teorém
  57. Fourierova transformace: rozklad signálu na frekvence
  58. Filtry a konvoluce: vyhlazení, hrany a odstranění šumu
  59. Zvuk a řeč: spektrogram, melová škála a MFCC
  60. Obraz jako signál: pixely, barvy, konvoluce a hrany
  61. Perceptron a umělý neuron: nejjednodušší neuronová síť a co neumí
  62. Neuronová síť od nuly: zpětné šíření chyby krok za krokem
  63. Aktivace, inicializace a normalizace: drobnosti, na kterých hluboká síť stojí
  64. Konvoluční sítě: jak síť poznává obrázky
  65. Rekurentní sítě: paměť pro posloupnosti a mizející gradient
  66. LSTM a GRU: brány, které rozhodují, co si síť zapamatuje
  67. Autoenkodéry: síť, která se učí data stlačit a zase rozbalit
  68. Embeddingy a word2vec: jak se slovo stane vektorem
  69. Mechanismus pozornosti: jak se model naučí, kam se dívat
  70. Transformery a velké jazykové modely: architektura krok za krokem
  71. Tokenizace: jak se text rozseká na kousky pro model
  72. Předtrénování a škálování: proč větší model a víc dat funguje
  73. Doladění a RLHF: jak se z doplňovače textu stane asistent
  74. Prompty, kontext a RAG: jak modelu dát správné informace
  75. Variační autoenkodéry (VAE): nové obrázky ze spojitého latentního prostoru
  76. Generativní adversariální sítě (GAN): padělatel proti detektivovi
  77. Difúzní modely: jak se z čistého šumu stane obrázek
  78. Markovovy rozhodovací procesy: stavy, akce, odměny a Bellmanovy rovnice
  79. Q-learning a DQN: učení hodnoty akcí od tabulky po neuronovou síť
  80. Policy gradient a PPO: učení přímo strategie
  81. Jak funguje AI agent: jazykový model ve smyčce s nástroji
  82. Programování s AI agenty: zadání, testy a kontrola
  83. Vyhodnocení a bezpečnost AI systémů: jak měřit a jak hlídat

Celá osnova série 83 z 83 témat hotovo

Co si odnesete
  • Co je podmíněná pravděpodobnost a proč P(A | B) není totéž co P(B | A).
  • Co znamená nezávislost, jak funguje pravidlo součinu a věta o úplné pravděpodobnosti.
  • Jak Bayesova věta obrací podmínku — a proč u vzácných jevů nesmíte zapomenout na základní četnost.

Co se hodí znát předem: Co je pravděpodobnost: od hodu kostkou ke Kolmogorovovým axiomům

Pravděpodobnost není pevné číslo vytesané do kamene. Když se dozvíte něco nového, mění se. Pravděpodobnost, že prší, je jiná, když víte, že venku je zataženo. Pravděpodobnost, že e-mail je spam, je jiná, když v něm stojí „vyhráli jste“. Tenhle díl je o tom, jak pravděpodobnost přesně přepočítat, když přijde nová informace — a o větě, na které stojí spamové filtry, lékařská diagnostika i velká část strojového učení.

Navazuje na díl Co je pravděpodobnost a znovu používá dvě kostky.

1. Podmíněná pravděpodobnost

Definice — podmíněná pravděpodobnost

Nechť (Ω, 𝓕, P) je pravděpodobnostní prostor (viz díl Co je pravděpodobnost) a A, B ∈ 𝓕 jsou jevy, přičemž P(B) > 0. Podmíněná pravděpodobnost jevu A za podmínky B je číslo

P(A | B) = P(A ∩ B)/P(B).

Pro P(B) = 0 tato definice P(A | B) neurčuje. Slovy: P(A | B) je podíl, který z pravděpodobnosti jevu B připadá na výsledky ležící zároveň v A.

Laicky řečeno

Podmínka zmenší svět. Když víte, že nastalo B, všechno ostatní můžete škrtnout a počítáte jen uvnitř B: jaká část z B patří i do A?

P(A | B) = P(A ∩ B)/P(B)

P(A | B)
pravděpodobnost A poté, co víme, že nastalo B — to, co chceme spočítat
P(A ∩ B)
jen ta část A, která leží uvnitř B — výsledky z A mimo B už nastat nemohou, proto je škrtneme
P(B)
nový celek — dělením přeškálujeme zbylý svět tak, aby měl zase pravděpodobnost 1 (P(B | B) = 1); proto musí být P(B) > 0
Podíl jevu A na zúženém světě B.

Kamarád hodil dvěma kostkami a prozradí jen, že padla aspoň jedna šestka. Jaká je pravděpodobnost, že součet je 7? Z 36 výsledků zbude 11 se šestkou — a jen dva z nich, (1, 6) a (6, 1), mají souč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á kostka (oka) první kostka (oka)
Podmínka „aspoň jedna šestka“ zúží 36 výsledků na 11 výsledků s šestkou: 11 z nich se součtem 7: 2

P(součet 7 | aspoň jedna šestka) = 2/11 ≈ 0,182 — trochu víc než bez podmínky, kdy je to 1/6 ≈ 0,167. A pozor na pořadí: P(aspoň jedna šestka | součet 7) = 2/6 = 1/3. P(A | B) a P(B | A) jsou obecně úplně jiná čísla.

Příklad — výpočet přímo z definice

Jsou-li všechny výsledky stejně možné (klasická pravděpodobnost), počet 36 se ve zlomku zkrátí a zbude podíl počtů: P(A | B) = |A ∩ B|/|B|, kde |·| je počet výsledků.

A = souč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

(barvy podle vzorce výše; u P(B | A) hraje roli podmínky jev A, takže ve jmenovateli je P(A))

Čitatel je v obou případech stejný; liší se jen to, čím dělíme — tedy který svět jsme podmínkou vybrali.

Věta — podmíněná pravděpodobnost je pravděpodobnost

Nechť (Ω, 𝓕, P) je pravděpodobnostní prostor a B ∈ 𝓕 jev s P(B) > 0. Pak funkce

PB : 𝓕 → ℝ,   PB(A) = P(A | B),

je pravděpodobnost na (Ω, 𝓕), tj. splňuje všechny tři Kolmogorovovy axiomy.

Důkaz. Nezápornost: P(A | B) je podíl nezáporného a kladného čísla. Normovanost: P(Ω | B) = P(Ω ∩ B)/P(B) = P(B)/P(B) = 1. Aditivita: jsou-li A1, A2, … ∈ 𝓕 navzájem neslučitelné, jsou navzájem neslučitelné i Ai ∩ B, a protože (⋃i Ai) ∩ B = ⋃i (Ai ∩ B), je P((⋃i Ai) ∩ B) = ∑i P(Ai ∩ B); vydělením P(B) dostaneme P(⋃i Ai | B) = ∑i P(Ai | B). ∎

Laicky řečeno

Uvnitř podmínky platí všechna pravidla, která už znáte — například P(Ac | B) = 1 − P(A | B): součet jiný než 7, když padla šestka, má pravděpodobnost 1 − 2/11 = 9/11.

2. Pravidlo součinu

Věta — pravidlo součinu

Nechť (Ω, 𝓕, P) je pravděpodobnostní prostor a A, B ∈ 𝓕 jevy. Pak

  1. je-li P(B) > 0, platí P(A ∩ B) = P(A | B) · P(B);
  2. je-li P(A) > 0, platí P(A ∩ B) = P(B | A) · P(A).

Důkaz. Rovnost z definice P(A | B) = P(A ∩ B)/P(B) vynásobíme číslem P(B); druhý bod stejně s prohozenými rolemi A a B. ∎

Laicky řečeno

Aby nastalo obojí, musí nejdřív nastat B a pak, když už víme o B, ještě A. Šance se násobí. „Součet 7 a zároveň šestka“: 11/36 · 2/11 = 2/36 — přesně ta dvě políčka z obrázku.

Pravidlo součinu není nový předpoklad — je to definice podmíněné pravděpodobnosti vynásobená jmenovatelem. Zopakujete-li ho, dostanete pravidlo pro libovolně mnoho jevů:

Věta — řetízkové pravidlo

Nechť (Ω, 𝓕, P) je pravděpodobnostní prostor, n ≥ 2 a A1, …, An ∈ 𝓕 jevy s P(A1 ∩ … ∩ An−1) > 0. (Pak je kladné i P(A1 ∩ … ∩ Ai) pro každé i < n, protože jde o nadmnožiny, takže všechny podmíněné pravděpodobnosti níže jsou definované.) Pak

P(A1 ∩ … ∩ An) = P(A1) · P(A2 | A1) · P(A3 | A1 ∩ A2) · … · P(An | A1 ∩ … ∩ An−1).

Důkaz. Indukcí podle n: P(A1 ∩ … ∩ An) = P(An | A1 ∩ … ∩ An−1) · P(A1 ∩ … ∩ An−1) je pravidlo součinu pro A = An a B = A1 ∩ … ∩ An−1; druhý činitel rozložíme stejně. ∎

P(A1 ∩ … ∩ An) = ∏i=1n P(Ai | A1 ∩ … ∩ Ai−1)

P(A1 ∩ … ∩ An)
pravděpodobnost, že nastane všechno najednou — často se nedá spočítat přímo
∏
součin — jevy procházíme jeden po druhém a šance se násobí, protože každý další krok musí vyjít navíc k předchozím
P(Ai | …)
šance i-tého kroku — jediná věc, kterou v každém kroku potřebujeme umět odhadnout
A1 ∩ … ∩ Ai−1
všechno, co už nastalo — podmínka nese historii, takže pravidlo platí i pro závislé jevy (pro i = 1 je podmínka prázdná)
Složitou pravděpodobnost rozloží na řetěz jednoduchých kroků — takhle jazykový model skládá pravděpodobnost celé věty ze slov.
Příklad — tři esa za sebou

Z promíchaného balíčku 52 karet (4 esa) táhneme tři karty bez vracení. Ai = „i-tá karta je eso“.

P(A1) = 4/52,   P(A2 | A1) = 3/51,   P(A3 | A1 ∩ A2) = 2/50

P(tři esa) = 4/52 · 3/51 · 2/50 = 24/132 600 = 1/5 525 ≈ 0,000 181   (barvy podle vzorce výše)

Každá podmínka zachycuje, co se změnilo: po prvním esu zbývají 3 esa v 51 kartách.

3. Nezávislost

Definice — nezávislé jevy

Nechť (Ω, 𝓕, P) je pravděpodobnostní prostor a A, B ∈ 𝓕 jevy. Jevy A a B jsou nezávislé, právě když

P(A ∩ B) = P(A) · P(B).

Je-li P(B) > 0, jsou A a B nezávislé, právě když P(A | B) = P(A) (vydělením obou stran P(B)) — informace, že nastal jev B, pravděpodobnost jevu A nezmění.

Laicky řečeno

Nezávislé jevy si navzájem nic neprozradí: když víte, že nastalo B, o A nevíte o nic víc. Hod první a druhé kostky jsou nezávislé — dvě šestky mají pravděpodobnost 1/6 · 1/6 = 1/36.

Nezávislost umí překvapit. „Součet je 7“ a „na první kostce padla šestka“ jsou nezávislé: P obou je 1/36 a 1/6 · 1/6 = 1/36 — ať padne na první kostce cokoliv, na druhé existuje právě jedno číslo, které dá součet 7. Naopak „součet je 12“ a „na první je šestka“ nezávislé nejsou: bez podmínky je součet 12 jen 1/36, ale s šestkou na první kostce už 1/6.

A nepleťte si nezávislé jevy s neslučitelnými. Neslučitelné jevy jsou naopak silně závislé — když nastal jeden, víte jistě, že druhý nenastal.

Definice — nezávislost více jevů

Nechť (Ω, 𝓕, P) je pravděpodobnostní prostor, n ≥ 2 a A1, …, An ∈ 𝓕 jevy. Jevy A1, …, An jsou (vzájemně) nezávislé, právě když pro každou množinu indexů I ⊆ {1, …, n} s |I| ≥ 2 platí

P(⋂i ∈ I Ai) = ∏i ∈ I P(Ai).

Součinové pravidlo tedy musí platit pro každou dvojici, každou trojici, …, i pro všech n jevů najednou.

Laicky řečeno

Nestačí kontrolovat dvojice. A = „první kostka lichá“, B = „druhá kostka lichá“, C = „součet lichý“. Každý má pravděpodobnost 1/2 a každá dvojice nastane s pravděpodobností 9/36 = 1/4 = 1/2 · 1/2 — po dvou jsou nezávislé. Ale všechny tři nastat nemohou (dvě lichá čísla dají sudý součet): P(A ∩ B ∩ C) = 0 ≠ 1/8. Kdo zná A a B, zná i C.

Definice — podmíněná nezávislost

Nechť (Ω, 𝓕, P) je pravděpodobnostní prostor a A, B, C ∈ 𝓕 jevy s P(C) > 0. Jevy A a B jsou podmíněně nezávislé za podmínky C, právě když

P(A ∩ B | C) = P(A | C) · P(B | C),

tj. právě když jsou A a B nezávislé vzhledem k pravděpodobnosti PC = P( · | C). Podmíněná nezávislost nevyplývá z nezávislosti ani naopak.

Laicky řečeno

Nezávislost uvnitř zúženého světa C. Dva pozitivní testy téhož člověka nezávislé nejsou — když první vyšel pozitivně, je víc pravděpodobné, že je nemocný, a tedy i že vyjde pozitivně druhý. Když ale víme, jestli je nemocný, mohou už být nezávislé: chyba jednoho testu neprozradí nic o chybě druhého. Na tomhle předpokladu stojí výpočet opakovaných testů i naivní Bayesův klasifikátor níže.

4. Věta o úplné pravděpodobnosti

Věta — úplná pravděpodobnost

Nechť (Ω, 𝓕, P) je pravděpodobnostní prostor, k ≥ 1 a jevy H1, …, Hk ∈ 𝓕 tvoří rozklad prostoru Ω, tj.

  1. Hi ∩ Hj = ∅ pro všechna i ≠ j (navzájem neslučitelné),
  2. H1 ∪ … ∪ Hk = Ω (dohromady pokryjí Ω),
  3. P(Hi) > 0 pro všechna i = 1, …, k.

Pak pro každý jev A ∈ 𝓕 platí

P(A) = ∑i=1k P(A | Hi) · P(Hi).

Laicky řečeno

Když nevíte, která z možností platí, projděte je všechny: pro každou spočítejte šanci na A a zvažte ji tím, jak je ta možnost častá. Pozitivní výsledek testu přijde buď od nemocného, nebo od zdravého — a obě cesty se sečtou.

P(A) = ∑i=1k P(A | Hi) · P(Hi)

P(A)
celková pravděpodobnost jevu, ať nastal kteroukoli cestou
∑i=1k
součet přes všechny možnosti — smíme sčítat, protože se možnosti navzájem vylučují (aditivita), a nic nechybí, protože dohromady pokryjí Ω
P(A | Hi)
šance na A, kdyby platila zrovna možnost Hi — tohle bývá snadné odhadnout
P(Hi)
váha možnosti — častá možnost přispěje víc; bez ní bychom průměrovali, jako by byly všechny stejně časté
Vážený průměr podmíněných pravděpodobností, vahami jsou pravděpodobnosti možností.
Důkaz a příklad — úplná pravděpodobnost

Důkaz. Jev A se rozpadne na neslučitelné kusy A = (A ∩ H1) ∪ … ∪ (A ∩ Hk). Podle aditivity P(A) = ∑ P(A ∩ Hi) a podle pravidla součinu je každý sčítanec P(A | Hi) · P(Hi). ∎

Podmínka 3 je potřeba jen proto, aby byly definované P(A | Hi). Kdyby některé Hi mělo P(Hi) = 0, je P(A ∩ Hi) = 0 a jeho sčítanec ze součtu prostě vynecháme.

Rozklad podle toho, co padlo na první kostce: Hi = „první kostka ukazuje i“, i = 1, …, 6.

P(součet 7) = ∑i=16 P(druhá = 7 − i | Hi) · 1/6 = 6 · (1/6 · 1/6) = 1/6

P(součet 12) = 0 · 1/6 + … + 0 · 1/6 + 1/6 · 1/6 = 1/36   (přispěje jen cesta H6; barvy podle vzorce výše)

5. Bayesova věta

Věta — Bayesova věta

Nechť (Ω, 𝓕, P) je pravděpodobnostní prostor a A, H ∈ 𝓕 jevy s P(A) > 0 a P(H) > 0. Pak

P(H | A) = P(A | H) · P(H)/P(A),

kde jmenovatel P(A) se spočítá větou o úplné pravděpodobnosti.

Laicky řečeno

Bayesova věta obrací podmínku. Často známe, jak se projevuje příčina — jak často dá nemocný pozitivní test. Ale chceme opak: když je test pozitivní, jak pravděpodobná je nemoc? Věta plyne přímo z pravidla součinu, jen ho přepíše oběma způsoby.

Důkaz — Bayesova věta

Pravidlo součinu zapsané dvakrát: P(H | A) · P(A) = P(H ∩ A) = P(A | H) · P(H). Vydělíme P(A) > 0. ∎

Tvoří-li navíc H1, …, Hk ∈ 𝓕 rozklad Ω s P(Hi) > 0 pro všechna i (jako ve větě o úplné pravděpodobnosti), dosadíme do jmenovatele úplnou pravděpodobnost a pro každé j = 1, …, k dostaneme

P(Hj | A) = P(A | Hj) · P(Hj)/∑i=1k P(A | Hi) · P(Hi).

Jednotlivé části věty mají svá jména:

Definice — apriorní pravděpodobnost

Nechť (Ω, 𝓕, P) je pravděpodobnostní prostor, H ∈ 𝓕 jev, který chápeme jako hypotézu, a A ∈ 𝓕 jev, který chápeme jako pozorovaná data. Apriorní pravděpodobnost hypotézy H je číslo P(H) — pravděpodobnost hypotézy bez ohledu na data A, tedy před tím, než je uvidíme.

Laicky řečeno

Co si myslíte předem. Nemoc má 1 % lidí, takže bez testu je šance, že ji máte, 1 %.

Definice — věrohodnost

Nechť H, A ∈ 𝓕 jsou hypotéza a data jako výše a P(H) > 0. Věrohodnost hypotézy H při datech A je číslo P(A | H) — pravděpodobnost dat A za předpokladu, že hypotéza H platí.

Věrohodnost se chápe jako funkce hypotézy při pevných datech, H ↦ P(A | H); jako taková není rozdělením pravděpodobnosti na hypotézách — pro rozklad H1, …, Hk se součet ∑i P(A | Hi) obecně nerovná 1.

Laicky řečeno

Jak dobře hypotéza vysvětluje, co vidíte. Nemocný dostane pozitivní test v 99 % případů.

Definice — aposteriorní pravděpodobnost

Nechť H, A ∈ 𝓕 jsou hypotéza a data jako výše a P(A) > 0. Aposteriorní pravděpodobnost hypotézy H je číslo P(H | A) — pravděpodobnost hypotézy poté, co jsme viděli data A.

Laicky řečeno

Co si myslíte potom. Bayesova věta říká, jak z „předem“ a „jak dobře to sedí“ udělat „potom“.

P(H | A) = P(A | H) · P(H)/P(A)

P(H | A)
aposteriorní pravděpodobnost — jak moc věříme hypotéze po pohledu na data; to, co chceme
P(A | H)
věrohodnost — hypotéza, která data předpovídá dobře, získá; to je ta podmínka „opačným směrem“, kterou obvykle známe
P(H)
apriorní pravděpodobnost — vzácná hypotéza potřebuje silnější důkaz; bez tohoto členu vzniká zanedbání základní četnosti
P(A)
celková pravděpodobnost dat (evidence) — stejná pro všechny hypotézy; dělí jen proto, aby se aposteriorní pravděpodobnosti všech hypotéz sečetly na 1
Odhad potom = jak dobře hypotéza vysvětluje data × odhad předem, znormované.

6. Pozitivní test: proč jen 16,7 %

Nemoc má 1 % lidí. Test ji u nemocného odhalí v 99 % případů, ale u zdravého v 5 % případů ohlásí falešný poplach. Váš test je pozitivní. Jak pravděpodobné je, že nemoc máte? Většina lidí — včetně mnoha lékařů — tipuje kolem 95 %. Bayesova věta říká:

P(pozitivní) = 0,99 · 0,01 + 0,05 · 0,99 = 0,0594

P(nemoc | pozitivní) = 0,99 · 0,01/0,0594 ≈ 0,167

(barvy podle rozboru Bayesovy věty výše: věrohodnost, apriorní pravděpodobnost, celková pravděpodobnost dat, aposteriorní pravděpodobnost)

Jen 16,7 %. Nejlépe je to vidět na přirozených četnostech — místo pravděpodobností si představte 10 000 lidí:

10 000 lidí 100 nemocných 9 900 zdravých 99 pozitivních 1 negativních 495 pozitivních 9 405 negativních z pozitivních je nemocných: 99 / 594 ≈ 16,7 %
10 000 lidí, jeden test

Nemocných je 100 a test jich zachytí 99. Zdravých je ale 9 900 a i jen 5 % z nich je 495 falešných poplachů. Pozitivních je dohromady 594 a nemocných mezi nimi jen 99 — šestina. Chyba v intuici má jméno: zanedbání základní četnosti. Když je něco vzácné, i přesný test vyprodukuje víc falešných poplachů než skutečných nálezů.

Definice — citlivost, specificita a prediktivní hodnota

Nechť (Ω, 𝓕, P) je pravděpodobnostní prostor (náhodně vybraný testovaný člověk), D ∈ 𝓕 jev „člověk je nemocný“, + ∈ 𝓕 jev „test vyšel pozitivně“ a − = +c jev „test vyšel negativně“; nechť 0 < P(D) < 1 a P(+) > 0. Definujeme:

  • citlivost = P(+ | D) — podíl nemocných, které test zachytí (tady 0,99);
  • specificita = P(− | Dc) — podíl zdravých, které test správně pustí (tady 0,95); falešně pozitivní podíl je 1 − specificita = 0,05;
  • pozitivní prediktivní hodnota = P(D | +) — co zajímá pacienta s pozitivním výsledkem.
Laicky řečeno

Citlivost a specificita popisují test a výrobce je změří na lidech, o kterých ví, jestli jsou nemocní. Prediktivní hodnota závisí navíc na tom, jak častá je nemoc — proto ji výrobce na krabičku napsat nemůže. Ze stromu: 99 skutečně nemocných z 99 + 495 = 594 pozitivních, 99/594 = 1/6 ≈ 0,167 — totéž číslo, které dala Bayesova věta.

7. Učení z dat: aposteriorní se stává apriorní

Co když se test zopakuje a vyjde znovu pozitivní? Teď už nezačínáme na 1 % — výsledek prvního testu je nový výchozí odhad. Aposteriorní pravděpodobnost se stane apriorní:

1,0 % předem 16,7 % 1 test 79,8 % 2 testy 98,7 % 3 testy pozitivní testy za sebou (počet) pravděpodobnost nemoci (%)
Pravděpodobnost nemoci po pozitivních testech za sebou

Po druhém pozitivním testu je to už 79,8 %, po třetím 98,7 %. Každý důkaz posune odhad a další důkaz staví na předchozím. Přesně tak se učí bayesovské modely — začnou s nějakým předpokladem a s každým kouskem dat ho zpřesní.

Výpočet je opravdu jen opakovaná Bayesova věta — ale s jedním skrytým předpokladem: testy jsou za podmínky „nemocný“ i za podmínky „zdravý“ podmíněně nezávislé (chyba jednoho neprozradí nic o druhém). Pak je věrohodnost každého dalšího testu pořád 0,99, resp. 0,05. U skutečného opakovaného testu stejným postupem to splněno být nemusí.

def aktualizuj(prior, citlivost, falesne_poz, vysledky):
    p = prior
    for pozitivni in vysledky:
        if pozitivni:
            ano, ne = citlivost, falesne_poz              # P(+ | nemoc), P(+ | zdraví)
        else:
            ano, ne = 1 - citlivost, 1 - falesne_poz      # P(− | nemoc), P(− | zdraví)
        p = ano * p / (ano * p + ne * (1 - p))            # Bayesova věta
    return p                                              # aposteriorní = nová apriorní

Ještě jednodušší je počítat v šancích — poměru „pro“ ku „proti“:

Věta — Bayesova věta v podílovém tvaru

Definice. Pro p ∈ [0, 1) je šance odpovídající pravděpodobnosti p číslo

O = p/1 − p ∈ [0, ∞);   zpět p = O/1 + O.

Pro jev H s P(H) < 1 píšeme O(H) = P(H)/P(Hc) a pro P(A) > 0, P(H | A) < 1 obdobně O(H | A) = P(H | A)/P(Hc | A).

Věta. Nechť (Ω, 𝓕, P) je pravděpodobnostní prostor a A, H ∈ 𝓕 jevy, pro které 0 < P(H) < 1, P(A) > 0 a P(A | Hc) > 0. Pak

P(H | A)/P(Hc | A) = P(A | H)/P(A | Hc) · P(H)/P(Hc),   tj.   O(H | A) = P(A | H)/P(A | Hc) · O(H).

Důkaz. Bayesova věta pro H i pro Hc (obě mají kladnou pravděpodobnost) dá P(H | A) = P(A | H) P(H)/P(A) a P(Hc | A) = P(A | Hc) P(Hc)/P(A) > 0. Vydělíme první rovnost druhou a jmenovatel P(A) se zkrátí. ∎

O(H | A) = P(A | H)/P(A | Hc) · O(H)

O(H | A)
šance hypotézy po pozorování — z nich se pravděpodobnost dopočítá jako O/1 + O
P(A | H)/P(A | Hc)
poměr věrohodností — síla důkazu: kolikrát je pozorování pravděpodobnější, když hypotéza platí, než když neplatí; nezávisí na apriorní pravděpodobnosti, takže je to vlastnost testu
O(H)
šance předem — tady vstupuje základní četnost; jmenovatel P(A) v podílu vypadl, proto ho nemusíme počítat
Každý další (podmíněně nezávislý) důkaz šance jen vynásobí svým poměrem věrohodností.
Příklad — tři pozitivní testy v šancích

poměr věrohodností pozitivního testu: 0,99/0,05 = 19,8;   šance předem: 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

(barvy podle vzorce výše; šance po jednom testu jsou šancemi předem pro další test)

Stejná čísla jako v grafu (16,7 %, 79,8 %, 98,7 %), jen s jedním násobením na test.

8. Bayes v umělé inteligenci

  • Spamové filtry — když je spamem 40 % pošty, slovo „výhra“ je ve 30 % spamu a jen v 1 % ostatních e-mailů, pak e-mail se slovem „výhra“ je spam s pravděpodobností 0,12/0,126 ≈ 0,952. Naivní Bayesův klasifikátor tohle dělá pro každé slovo.
  • Jazykové modely počítají podmíněnou pravděpodobnost dalšího slova za podmínky všech předchozích: P(xt | x1, …, xt−1). Celý text je součin takových podmínek — pravidlo součinu.
  • Bayesovské sítě zapisují, které veličiny na sobě závisejí, jako orientovaný graf, a počítají s podmíněnými pravděpodobnostmi podél jeho hran.
  • Nejistota modelu — bayesovské metody nedávají jen jednu odpověď, ale rozdělení: jak moc si je model jistý a kde by mu pomohla další data.

Naivní Bayesův klasifikátor

Definice — naivní Bayesův klasifikátor

Nechť K je konečná neprázdná množina tříd (např. {spam, ostatní}), n ≥ 1 a pozorování je n-tice příznaků (w1, …, wn) (např. slova e-mailu). Nechť pro každou třídu c ∈ K známe její apriorní pravděpodobnost P(c) > 0 a pro každý příznak podmíněnou pravděpodobnost P(wi | c). Naivní Bayesův klasifikátor

  1. předpokládá, že příznaky jsou za podmínky každé třídy podmíněně nezávislé: P(w1, …, wn | c) = ∏i=1n P(wi | c) pro všechna c ∈ K;
  2. zařadí pozorování do třídy ĉ = arg maxc ∈ K P(c) · ∏i=1n P(wi | c).

Je-li P(w1, …, wn) > 0, dá Bayesova věta spolu s bodem 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á se až na kladnou konstantu nezávislou na c“ (jmenovatel). Klasifikátor tedy vybere třídu s největší aposteriorní pravděpodobností.

P(c | w1, …, wn) ∝ P(c) · ∏i P(wi | c)

P(c | w1, …)
jak pravděpodobná je třída, když vidíme tahle slova — podle toho e-mail zařadíme
P(c)
apriorní pravděpodobnost třídy — kolik pošty je spam vůbec; bez ní by filtr podcenil, jak častá je která třída
∏i P(wi | c)
věrohodnost rozložená na slova — „naivní“ předpoklad podmíněné nezávislosti nahradí jednu nezjistitelnou pravděpodobnost celé kombinace slov součinem čísel, která se dají spočítat z trénovacích e-mailů slovo po slově
Bayesova věta + řetízkové pravidlo + podmíněná nezávislost; jmenovatel vypustíme, protože na pořadí tříd nemá vliv.

Součin stovek malých čísel by se v počítači zaokrouhlil na nulu, proto se počítá se součtem logaritmů — logaritmus je rostoucí, takže pořadí tříd nezmění:

def klasifikuj(slova, prior, verohodnost):
    # prior[c] = P(c), verohodnost[c][w] = P(w | c), odhadnuté z trénovacích dat
    skore = {}
    for c in prior:
        skore[c] = log(prior[c])
        for w in slova:
            skore[c] += log(verohodnost[c][w])   # součin → součet logaritmů
    return max(skore, key=skore.get)              # třída s největším skóre
Příklad — e-mail se slovy „výhra“ a „zdarma“

Spam je 40 % pošty, „výhra“ je ve 30 % spamu a 1 % ostatních e-mailů; „zdarma“ (ilustrační čísla) ve 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   (barvy podle vzorce výše)

P(spam | výhra, zdarma) = 0,024/0,024 + 0,000 12 ≈ 0,995

v logaritmech: ln 0,4 + ln 0,3 + ln 0,2 ≈ −3,730,   ln 0,6 + ln 0,01 + ln 0,02 ≈ −9,028

Druhé slovo zvedlo odhad z 0,952 na 0,995. Rozdíl skóre 5,298 je logaritmus aposteriorních šancí: e5,298 ≈ 200 = 0,024/0,000 12.

9. Shrnutí

  • Podmíněná pravděpodobnost P(A | B) počítá jen uvnitř B; P(A | B) ≠ P(B | A).
  • Pravidlo součinu: P(A ∩ B) = P(A | B) · P(B). Nezávislé jevy si nic neprozradí.
  • Věta o úplné pravděpodobnosti sečte všechny cesty, kterými může jev nastat.
  • Bayesova věta obrací podmínku: z apriorní pravděpodobnosti a věrohodnosti udělá aposteriorní.
  • U vzácných jevů i přesný test dává hodně falešných poplachů — nezapomínejte na základní četnost.

Máte na to jiný názor? Napište na support@coden-app.com.

Agent na vašem počítači, ovládaný z telefonu