Hlavní navigace

Ptáci létají

29. 10. 2013 1:30 (aktualizováno) zboj

Každé malé dítě ví, že ${title}. Vyjádřeno formálněji, pokud x je pták, x létá. Modus ponens jako vyšité. Problém ovšem nastává, jakmile někdo namítne, že x může být pštros. Nebo tučňák.

Nejen v přirozeném jazyce, ale obecně při logickém rozumování o světě velice záhy narazíme na nejasné hranice pojmů, pravidel a ontologie vůbec. Jinými slovy, svět kolem nás nejde dokonale formálně reprezentovat v klasické logice prvního řádu. Na druhou stranu ovšem existují dostatečně robustní metody, které se v AI osvědčily.

Běžná formální logika je založena na deduktivním odvozování, tedy pokud platí x a pokud z x plyne y, musí zákonitě a bez výjimky platit y. V AI se ale používá spíše odvozování abduktivní, tedy pokud platí y a pokud z x plyne y, odvozuji x. S tím rozdílem, že to taky dost dobře nemusí být pravda. Abdukce pokrývá dva aspekty AI – výjimky z pravidel a nedostatečnou znalost. Nejprve k výjimkám.

Zmíněný ptačí příklad ilustruje, že obecná pravidla mohou mít výjimky. Pokud (v nějakém formálním logickém systému) řeknu, že Jerry je myš, a pokud vím, že ptáci létají, tak nemůžu na základě dedukce usoudit, zda Jerry létá. Pokud ovšem vím, že Jerry je pták (tento fakt je ve znalostní bázi), automaticky předpokládám, že Jerry létá. Co když se ale později dozvím, že Jerry je tučňák?

Dospěli jsme k problému nemonotónní logiky. Výjimky z pravidel se obvykle formálně podchycují přidáním predikátu abnormálnosti do pravidla: pták(x) & ¬abnormální(x) → létá(x). Abnormalita se vyjádří formálním predikátem a při absenci bližších informací se předpokládá normalita. Pokud mám dáno pták(Jerry), mohu předpokládat, že je normální, a odvodit, že Jerry létá. Pokud ovšem vím, že Jerry je tučňák, pak z pravidla, že tučňáci nelétají, s využitím principu rezoluce nutně dospěju k závěru, že Jerry je (vzhledem k pravidlu o létání ptáků) abnormální. Přesně takto fungují moderní expertní systémy. Předpoklad normality při absenci detailních informací je zde velmi důležitý, při stavbě formálního modelu (tj. při ohodnocování literálů) mne výjimečné případy nezajímají, pokud nejsou průkazné. Pokud mi někdo řekne, že na Václaváku jsou tisíce ptáků, stojím při budování formálního modelu (tedy, z pohledu filozofické logiky, možného světa) před rozhodnutím, zda tito ptáci jsou abnormální, nebo zda létají (což plyne z pravidla pták(x) & ¬abnormální(x) → létá(x) použitím „unit propagation“). A protože (z mimologického neformálního pravidla, že většina ptáků létá) inklinuji spíše k možnosti, že jde o normální ptáky, správně v nejpravděpodobnějším modelu dojdu k závěru, že nám na památky neserou v Praze tisíce tučňáků. Pokud se později ke znalostní bázi přidá, že jde o holuby, bude domněnka potvrzena. Kdyby se náhodou potvrdilo, že jde přece jen o tučňáky, bude nutné závěr přehodnotit. Proto se tento typ logiky nazývá nemonotonní (jednou dokázané neplatí navždy, nová informace může závěr zvrátit).

Druhý způsob použití abdukce souvisí s podspecifikací (nedostatkem znalostí) a pravděpodobností. Abdukce je vlastně „hádání“ směřující k nejpravděpodobnější variantě. Použijme příklad z přirozeného jazyka: Koleje reziví. Jak této větě rozumět? Problém pochopitelně spočívá v lexikální víceznačnosti. Systém odvozující formální sémantickou reprezentaci této věty nutně musí obsahovat pravidla kolej1 → kolej a kolej2 → kolej. V prvním případě jde o kolejnice, ve druhém o ubytovnu pro studenty. Počítačový systém z textové reprezentace věty dostane pouze predikát kolej (víceznačný). Je zřejmé, že dedukcí se nikam nedostaneme. Inferenční systém proto použije abdukci, tj. vysloví domněnku a rozhodne se (v tomto případě nedeterministicky) pro první nebo druhou variantu. Při stavbě modelu se nakonec ukáže (na základě širšího diskursu), která varianta je správná. Pokud se to neukáže (ani v jednom modelu nedojdeme ke kontradikci), máme holt reprezentace dvě a můžeme si hodit korunou. Nebo se jedna z nich vyloučí později (díky nemonotonnímu rozumování). V tomto případě bychom měli vědět, že kolejnice jsou z kovu a že kov může rezivět. To sice nevylučuje, že může jít o budovu postavenou (z velké části) z kovu, ale rozložení pravděpodobnosti preferuje první možnost.

Snad je nyní jasné, že deduktivní odvozování (jakkoliv je ve formální logice užitečné) v AI daleko nevede. Na druhou stranu je vidět, že s abdukcí lze formálně pracovat v logice prvního řádu. To je nesmírně důležité, neboť dostatečně expresivní fragment této logiky je rozhodnutelný, a tedy „naprogramovatelný“. I když se to možná na první pohled nezná, většina dnešních projektů v oblasti AI abdukci v té či oné formě (úspěšně) používá.

Sdílet