úterý 21. prosince 2010

Bayesův vzorec a ostrostřelcův klam


Dnešní téma přirozeně navazuje na předchozí diskusi bayesovské (jinými slovy též subjektivistické nebo epistemické) pravděpodobnosti. Pokusím se o poněkud netradiční pohled na logickou chybu, která se nazývá "ostrostřelcův klam". Před vlastní diskusí o klamu provedu nutnou "dělostřeleckou přípravu".

Už jsem psal o tom, že apriorní pravděpodobnost by měla být volena tak, aby zvýhodňovala jednoduché hypotézy před složitými. Teď ještě říct, jak přesně to provést. Je očividně potřeba nějak kvantifikovat složitost. Můžeme to udělat tak, že zapíšeme hypotézu na papír a spočítáme, kolik nám na to stačilo znaků. Jelikož výsledek závisí na formulaci, vybereme tu nejkratší, a její délku označíme za hledanou složitost hypotézy.

Takto určená složitost závisí na jazyku, ve kterém hypotézu formulujeme, a to dvěma způsoby. První, ten triviálnější, je, že slova mají v různých jazycích různou délku. Bezmyšlenkovité počítání znaků by mohlo vést k tomu, že Angličan by a priori považoval možnost "the apple is green" (18 znaků) za o něco pravděpodobnější než "the apple is yellow" (19 znaků), zatímco Čech by spíše věřil, že "jablko je žluté" (15 znaků), než že "jablko je zelené" (16 znaků). To nevypadá příliš racionálně.

Druhý, zapeklitější, problém se skrývá ve skryté složitosti pojmů. Zdůvodnění typu "protože platí gravitační zákon" není příliš dlouhé v textové podobě, ale jen díky tomu, že skutečná složitost se skrývá pod nálepkou "gravitační zákon". Fráze "protože platí gravitační zákon" je srozumitelná tomu, kdo ví, co je gravitační zákon. Pokud bychom ale komunikovali s nevzdělancem, který o gravitačním zákonu nikdy neslyšel, museli bychom použít mnohem delší vysvětlení [1].

Pro vyhnutí se uvedeným obtížím se můžeme shodnout na nějakém formálním jazyku, jako je například sada instrukcí pro Turingův stroj [2] nebo libovolný zvolený programovací jazyk (ale viz též pozn. [3]). Pochopitelně potřebujeme, aby uvažované hypotézy, nebo aspoň ta jejich část, ve které se liší, byly v tomto formálním jazyce formulovatelné. To může v praxi být problém, ale nastíním příklad, kdy to jde.

Uvažujme generátor, který chrlí číslice. O vnitřním uspořádání generátoru není nic známo. Lze ale přijímat hypotézy o jeho výstupu a posléze je testovat. Jedna z možných hypotéz například je, že generátor vrací samé nuly. Jiná hypotéza může být, že generátor vrací postupně čísla 2, 4, 5, 3, 8, 2, 9 a pak zase dokola od začátku. Ještě jiná možná hypotéza je ta, že výstup generátoru je náhodný. Nyní můžeme složitost hypotéz formálně porovnat tak, že ve zvoleném programovacím jazyku napíšeme co nejkratší program, který bude generátor simulovat [3], a jehož výstup bude s výstupem generátoru kompatibilní. Délka tohoto programu bude udávat složitost jemu odpovídající hypotézy.

Je jasné, že i tady závisí na výběru jazyka. Náplastí na tuto bolest je skutečnost, že různé programovací jazyky se pro dlouhé hypotézy asymptoticky chovají stejně. Konkrétně tím myslím následující: Složitost hypotézy H v jazyce J označím jako s(H,J). Pro každé dva jazyky J1 a J2 existují čísla d12 a d21 taková, že pro libovolnou hypotézu H je

s(H,J1) < s(H,J2) + d12
s(H,J2) < s(H,J1) + d21

Vtip je v tom, že d12 a d21 nezávisí na hypotéze, takže pro dostatečně složité hypotézy bude rozdíl relativně zanedbatelný [4]. Dostat se blíže k ideálu objektivní, jazykově nezávislé kvantifikace složitosti hypotéz dost dobře možná nelze.

Ponechme tedy konečně otázku nejednoznačnosti pojmu "složitosti" stranou, a podívejme se, jak popsaný přístup pomáhá vyřešit jeden zdánlivý paradox pravděpodobnosti.

Když náš pomyslný generátor vygeneruje dvacet číslic, a všechny z nich budou nuly, rozumně uvažující člověk usoudí, že generátor vrací systematicky nulu; bude tedy mimo jiné očekávat, že dvacátá první číslice bude také nula. Kdyby ale generátor vrátil posloupnost 11576596326956881032, není nerozumné připustit, že generátor je náhodný, a očekávat na dvacítém prvním místě každou z číslic 0 až 9 se stejnou pravděpodobností. "Paradox" je, že u skutečně náhodného generátoru je výstup x = 00000000000000000000 naprosto přesně stejně pravděpodobný jako výstup y = 11576596326956881032. Jak je tedy možné, že první výstup svědčí o tom, že výstup není náhodný, zatímco druhý nikoliv?

Jedním možným řešením by bylo zkousnout nepříjemné zjištění, že běžná intuice je špatně, a akceptovat, že oba výstupy x i y stejným způsobem svědčí o nenáhodnosti generátoru. To by znamenalo, že žádný výstup nemůže v principu svědčit o tom, že výstup není náhodný, a v důsledku je tedy rozumné si myslet, že všechna zákonitost je pouze zdánlivá. Nebo, což je druhá možnost, jakýkoli konkrétní výsledek svědčí o nenáhodné povaze výstupu. Není mi známo, že by lidé běžně akceptovali první z těchto možností, ale čas od času někdo akceptuje tu druhou - a tady se právě dostáváme k tématu ostrostřelcova klamu.

Ostrostřelcův klam získal své jméno z této paraboly: Ostrostřelec (ideálně z Texasu [5]) přijde do stáje a začne střílet na protější zeď. Po vystřílení několika desítek ran najde místo s největší koncentrací děr ve zdi, a namaluje na zeď terč se středem právě v tomto místě. Potom může ostatním dokazovat, že to s puškou umí: důkazem je terč s mnoha zásahy ve středu.

Ze strany ostrostřelce se pochopitelně jedná o vědomý podvod, ale podobného jednání se lze snadno dopustit nevědomě. Stačí vzít jakýkoli výsledek jakéhokoli procesu a zpětně argumentovat, že pravděpodobnost zrovna tohoto výsledku je extrémně malá za předpokladu, že proces je náhodný. Tudíž, proces nemůže být náhodný. Pravděpodobnost, že náhodný generátor vrátí zrovna posloupnost y je 10-20, tudíž generátor, který vrátil posloupnost y téměř jistě nemůže být náhodný.

Tradiční reakce na ostrostřelcův klam je požadavek, že abychom mohli na základě výsledku usuzovat na nenáhodnost procesu, musí onen konkrétní výsledek být nějakým způsobem privilegován ještě předtím, než jsou výsledky známy. Ostrostřelec je tedy povinnen namalovat terč a teprve potom střílet, jinak nemůže výsledek použít jako důkaz svého střeleckého umění [6]. Stejně tak by musel obsluhovatel generátoru předem uhádnout, že výstup bude posloupnost y, aby tento výstup stál za pozornost. V této formulaci je ale požadavek stále poněkud neuspokojivý, protože neřeší rozdílný přístup k sekvencím x a y: výstup sestávající z dvaceti nul evidentně ukazuje na to, že generátor není náhodný, ať už si onen výsledek někdo předem tipne nebo nikoli.

Podívejme se tedy konečně, co nám říká formální analýza problému. Označím Dz hypotézu, že generátor je deterministický a produkuje postupně číslice z posloupnosti z (a po jejím skončení začne znovu od začátku; je-li z tvořeno několikrát se opakující podposloupností r, jsou samozřejmě Dz a Dr jedna a tatéž hypotéza). Jako N označím hypotézu, že generátor je náhodný, to jest každá jeho číslice se určuje nezávisle na ostatních náhodně s rovnoměrným rozdělením. Připadají v úvahu i možnosti, že funkce generátoru je někde mezi úplnou náhodností a úplným determinismem, ale jejich zanedbáním neztratíme nic podstatného. Jako obvykle označím znakem P0 apriorní pravděpodobnosti.

Nechť tedy pozorujeme posloupnost x = 00000000000000000000. Toto pozorování vyloučí všechny hypotézy Dz kromě těch, kde z začíná dvaceti nulami, a pochopitelně kromě D0. Ve hře zůstane i N. Přitom máme



Pro "náhodnou" hypotézu je podobně



Přesné vyčíslení by vyžadovalo stanovit apriorní pravděpodobnosti některých dalších hypotéz, ale je možné říct, že pokud na začátku byly hypotézy N a D0 srovnatelně pravděpodobné, pak na konci je deterministická hypotéza 1020krát pravděpodobnější.

Naprosto stejný postup proběhne i v případě pozorování y = 11576596326956881032, pouze ve všech vzorcích se nahradí index 0 indexem 11576596326956881032 [8]. Protože se nechceme stát texaskými ostrostřelci, musíme nějak zabránit tomu, aby aposteriorní pravděpodobnost P(Dy) byla srovnatelná s P(N), natož 1020krát větší. K tomu ale vede jediná cesta: příslušným způsobem zmenšit apriorní pravděpodobnost. Tedy, P0(Dy) < 10-20.

Věc lze zobecnit: hypotéza, která obsahuje jako svůj definiční parametr číslo sestávající z n (desítkových) číslic, by měla mít apriorní pravděpodobnost řádu 10-n. V úvodu jsem napsal, že by apriorní pravděpodobnosti měly záviset na složitosti hypotézy, a ta je definována jako délka nejkratšího programu, který je schopen hypotézu reprodukovat. Apriorní pravděpodobnosti pak budou úměrné exponenciále z této složitosti. Aby to dobře fungovalo pro posloupnosti 20 číslic, musel by se použít nějaký výrazně abstraktní programovací jazyk; v Pascalu by se asi nejkratší programy vypisující x a y moc nelišily (něco jako write('00000000000000000000'), versus write('11576596326956881032')). Pokud ale budeme zacházet s posloupnostmi výrazně delšími, bude funkčnost modelu vidět i při užití vysokoúrovňového jazyka. Nejkratší pascalovský program, který vypíše miliardu nul, zcela jistě nezačíná na write('000000.....


Poznámky:
1. Do této kategorie spadají problémy s náboženskými vysvětleními. Vysvětlení typu "Bůh to udělal" je zdánlivě velmi jednoduché (13 znaků), ale aby se pod ním skrývala konkrétní informace, musíme rozbalit pojem "Bůh": vysvětlit, co Bůh je a jakým způsobem "funguje". Autor výroku zpravidla má docela konkrétní představu o Bohu a možná pro něho výrok má konkrétní smysl (tato představa ale nikdy nemůže být tak detailní a konkrétní, aby vysvětlila existenci celého vesmíru), zpravidla ale zapomíná, že jeho představa Boha je složitá a jeho teorie není jednodušší než naturalistické vysvětlení (viz též diskuse pod minulým článkem v sérii).
2. Turingův stroj je jednoduchý počítač, který pohybuje čtecí hlavou po pásce čte a přepisuje znaky na této pásce. Pro plnou specifikaci jeho funkce je třeba zadat tzv. přechodovou funkci, která určuje, jak se chová hlava v závislosti na přečteném znaku a tzv. vnitřím stavu stroje. Turingův stroj je možno považovat za idealizaci skutečných počítačů.
3. Pro hypotézy obsahující náhodu budeme potřebovat, aby programovací jazyk obsahoval funkci vracející náhodné číslo; Turingův stroj je v takovém případě nepoužitelný.
4. Tvrzení se opírá o vcelku triviální pozorování, že když už je jazyk J2 o moc výhodnější pro zápis vybrané hypotézy než J1, vyplatí se prostě v jazyce J1 naprogramovat překladač jazyka J2; minimální délka tohoto překladače je de facto číslo d12.
5. V angličtině se klam jmenuje "Texas sharpshooter fallacy", ačkoli je záhada, co celá věc má společného zrovna s Texasem.
6. Tradiční diskuse ostrostřeleckého klamu je třeba tady s různými příklady reálného výskytu klamné argumentace.
7. Pro jednoduchost předpokládám, že generátor je na začátku resetovaný, a tudíž Dz implikuje, že prvním získanou číslicí bude taktéž první číslice z posloupnosti z.
8. Pouze u D0, ne u P0; čtenář omluví dvojí význam nuly v předchozí sekci

Žádné komentáře:

Okomentovat