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