(c) Graphicstock

Logika prvního řádu a obecná umělá inteligence

Jazyk logiky prvního řádu má větší vyjadřovací sílu než Booleovy logiky.

Když sledujeme inteligentního aktéra zvenčí, hraje roli tok činností, které vytváří z toku vstupů. Zevnitř musí být tyto činnosti vybírány programem aktéra. Lze říci, že lidé se rodí s jedním programem aktéra a tento program se během času učí rozumně a úspěšně jednat napříč ohromným rozsahem úkolů. To zatím AI nesplňuje: nevíme, jak postavit jeden obecně použitelný AI program, který by dělal všechno, takže místo toho stavíme různé typy programů aktérů pro různé typy problémů. Musíme zde alespoň trochu vysvětlit, jak tyto různé programy aktérů pracují; podrobnější vysvětlení lze najít v přílohách na konci této knihy. (Odkazy na konkrétní přílohy jsou označeny písmeny v indexu jako totoA nebo totoD.) Zde se soustředíme hlavně na to, jak je standardní model ztělesněn v těchto různých typech aktérů – jinými slovy, jak se stanovují záměry a jak jsou sdělovány aktéru.
Nejjednodušším způsobem, jak záměr sdělovat, je ve formě cíle. Když se posadíte do samořiditelného auta a stisknete na obrazovce ikonu „domů“, vozidlo to přijme jako svůj záměr a pokračuje plánováním trasy. Stav světa tento cíl buď splňuje (ano, jsem doma), nebo nikoli (ne, nebydlím na letišti v San Francisku). V klasickém období výzkumu v AI, než se v 90. letech stala nejistota primárním hlediskem, předpokládala většina výzkumu AI, že svět je plně pozorovatelný a deterministický, a proto dávalo smysl užívat cíle jako způsob určování záměrů. Někdy zde existuje i nákladová funkce, která umožňuje záměry specifikovat, takže optimálním řešením je to, jež minimalizuje náklady na dosažení cíle. Vozidlo to může mít zabudované v sobě – třeba tak, že náklady trasy jsou nějakou pevnou kombinací času a spotřebovaného paliva – nebo je možné, aby měl člověk možnost určit preference vzhledem k těmto parametrům.
Klíčem k dosažení takových záměrů je schopnost „mentálně simulovat“ dopady možných konání, čemuž se někdy říká dopředné vyhledávání. Naše samořiditelné auto má vnitřní mapu, takže ví, že když jedeme na jih od San Franciska po Bay Bridge, dostaneme se do Oaklandu. Algoritmy, které vznikly v 60. letech 20. století, nacházejí optimální cestu tak, že se dívají dopředu a vyhledávají v mnoha možných posloupnostech akcí. Tyto algoritmy vytvářejí všudypřítomnou část moderní infrastruktury: poskytují nám nejen instrukce, kudy jet autem, ale také řešení problémů cestování letadly, robotického sestavování, plánování staveb i logistiky dodávek. S nějakými úpravami na zvládání drzého chování oponentů je stejná myšlenka dopřednosti použitelná na hry typu piškvorek, šachu a go, kde je cílem vyhrát vzhledem ke konkrétní definici výhry.
Algoritmy dopředného hledání jsou neuvěřitelně efektivní na konkrétní úlohy, ale nejsou příliš flexibilní. Například AlphaGo „zná“ pravidla hry go, ale jen v tom smyslu, že má dva podprogramy napsané v tradičním programovacím jazyce jako C++: jeden podprogram generuje všechny možné přípustné tahy a druhý kóduje cíl s tím, že určuje, zda daný stav vyhrál, nebo prohrál. Pro to, aby AlphaGo hrál jinou hru, musí někdo přepsat celý tento kód v C++. Navíc, pokud stanovíme jiný cíl – třeba navštívit exoplanetu, která obíhá hvězdu Proxima Centauri –, bude zbytečně zkoumat miliardy posloupností kroků v go při marné snaze najít posloupnost, která takový cíl splní. Nedokáže se podívat do kódu C++ a zjistit zřejmé: že nás žádná posloupnost kroků hry go na Proximu Centauri nedostane. Vědění AlphaGo je v zásadě uzamčeno uvnitř černé skříňky.
Roku 1958, dva roky po tom, co jeho letní setkání na Dartmouthu dalo vzniknout oboru umělé inteligence, navrhl John McCarthy mnohem obecnější přístup, který tuto černou skříňku otevírá: napsat odvozovací programy s obecným užitím, které dokážou vstřebat znalosti o libovolném tématu a provádět na jejich základě úvahy, jež dovedou odpovědět na libovolnou zodpověditelnou otázku. Jedním konkrétním způsobem uvažování by mohlo být praktické uvažování typu, který navrhoval Aristoteles: „Když uděláme kroky A, B, C, …, dosáhneme cíle G.“ Tímto cílem by mohlo být naprosto cokoli: ať je doma uklizeno, než se vrátím, snižte mé daně o 50 procent, navštivte Proximu Centauri a podobně. McCarthyho nová třída programů brzy začala být známá jako znalostní systémy.
Aby bylo znalostní systémy možné postavit, potřebujeme odpověď na dvě otázky. Zaprvé, jak lze znalost uchovávat v počítači? Zadruhé, jak má počítač na základě této znalosti korektně uvažovat a přicházet s novými závěry? Naštěstí nám starověcí řečtí filozofové – zejména Aristoteles – poskytli základní odpovědi na tyto otázky dlouho před příchodem počítačů. Skutečně, zdá se dost pravděpodobné, že pokud by měl Aristoteles přístup k počítači (a nějaké elektřině, předpokládám), byl by z něj vědec v AI. Aristotelovou odpovědí, zopakovanou McCarthym, bylo použít formální logikuB jako základ pro znalosti i usuzování.
Existují dva druhy logiky, které mají v informatice skutečný význam. První z nich, Booleova logika, byla známa Řekům stejně jako starověkým čínským a indickým filozofům. Je to stejný jazyk jako jazyk bran AND, NOT, OR a dalších, který vytváří obvody počítačových čipů. Bráno velmi doslova, jsou moderní procesorové jednotky (CPU) jen obrovské matematické výrazy – stovky milionů stran – napsané v jazyce výrokové logiky. Druhý druh logiky, který McCarthy navrhoval užívat pro AI, se nazývá logika prvního řádu. Jazyk logiky prvního řádu má větší vyjadřovací sílu, což znamená, že existují věci, které lze velmi snadno vyjádřit v logice prvního řádu, ale je namáhavé nebo nemožné je zapsat ve výrokové logice. Například pravidla hry go zabírají asi jednu stránku v logice prvního řádu, ale miliony stran ve výrokové logice. Podobně můžeme snadno vyjádřit znalosti o šachu, britském občanství, nakupování a prodávání, stěhování, malování, vaření a mnoha dalších aspektech našeho běžného světa.
V principu nás pak schopnost usuzovat o světě v logice prvního řádu dostává mnohem blíže k obecně použitelné inteligenci. Geniální rakouský logik Kurt Gödel publikoval roku 1930 svou proslulou větu o úplnosti která tvrdí, že existuje algoritmus splňující tuto vlastnost.

Pro libovolný soubor znalostí a libovolnou otázku vyjádřitelnou v logice prvního řádu, nám algoritmus na tuto otázku sdělí odpověď, pokud nějaká existuje.

To je dost neuvěřitelná záruka. Znamená třeba, že můžeme systému dát pravidla hry go a on nám řekne (pokud dostatečně dlouho počkáme), zda existuje první tah, který tuto hru vyhrává. Můžeme mu říct fakta o geometrii, pohybu a nádobí a on bude instruovat robota, jak má prostřít stůl k večeři. Ještě obecněji, když dostane jakýkoli uskutečnitelný cíl a dostatečnou znalost dopadů jeho konání, může systém použít tento algoritmus k tomu, aby sestavil plán, jehož provedením daný cíl uskuteční.

Je třeba říct, že Gödel ve skutečnosti tento algoritmus neformuloval, pouze dokázal, že existuje. Skutečné algoritmy pro logické vyvozování se začaly objevovat v 60. letech a McCarthyho sen o obecně inteligentních systémech založených na logice se zdál být na dosah. Světově první projekt mobilního robota, projekt SRI robota Shakeyho, byl založen na logickém usuzování. Shakey dostal od lidských autorů návrhu svůj cíl, užíval algoritmů vidění k tomu, aby si vytvořil logická tvrzení popisující aktuální situaci, provedl logické vyvozování, aby odvodil zaručený plán, jak svého cíle dosáhnout, a pak tento plán provedl. Shakey byl „živoucím“ důkazem toho, že Aristotelova analýza lidské kognice a činností byla přinejmenším částečně správná.
Bohužel ovšem Aristotelova (a McCarthyho) analýza byla daleko od toho, aby byla úplně správná. Hlavním problémem je neznalost – měli bychom dodat, že nikoli na straně Aristotela nebo McCarthyho, ale na straně všech lidí i strojů, současných i budoucích. Jen velmi malá část našich znalostí je absolutně jistá. Zejména o budoucnosti toho víme jen velmi málo. Neznalost je prostě pro čistě logické systémy nepřekonatelným problémem. Pokud se ptáme, „Dostanu se na letiště včas, když vyjedu tři hodiny před odletem mého letu?“ nebo „Mohu získat dům tak, že koupím výherní los v loterii, a pak za výhru koupím dům?“, bude v obou těchto případech správnou odpovědí „Nevím“. Je tomu tak proto, že v případě obou těchto otázek jsou ano i ne logicky možnými. Z praktického hlediska si nikdy nemůžeme být absolutně jisti žádnou empirickou otázkou, pokud není odpověď na ni již známa. Naštěstí ale jistota není pro konání nezbytně potřebná: potřebujeme pouze vědět, jaká činnost je nejlepší, nikoli jaká činnost jistě uspěje.
Nejistota znamená, že „účel do stroje vložený“ obecně nemůže být přesně nalinkovaným cílem, kterého by bylo třeba dosáhnout za každou cenu. Neexistuje už nic takového jako „posloupnost kroků, které dosahují cíle“, protože libovolná posloupnost kroků bude mít vícero možných výstupů, z nichž některé tohoto cíle nedosáhnou. Na pravděpodobnosti úspěchu skutečně záleží: odjezd na letiště tři hodiny před odletem našeho letu může znamenat, že svůj let nezmeškáme, a koupě losu v loterii může znamenat, že vyhrajeme dost, abychom si nový dům koupili, jedná se ale o velice různá může. Cíle nemůžeme zachránit tím, že budeme hledat plány, které maximalizují pravděpodobnost uskutečnění cíle. Plán, který maximalizuje pravděpodobnost, že se na letiště dostaneme včas, abychom stihli let, může znamenat odjezd z domu s předstihem několika dní, organizaci ozbrojeného doprovodu, přípravu mnoha alternativních způsobů dopravy v případě, že některé selžou, a tak dále. Musíme nezbytně brát v úvahu to, nakolik jsou jednotlivé výstupy žádoucí, spolu s jejich pravděpodobnostmi.
Místo abychom použili cíl, tedy můžeme užít funkci užitku, abychom popsali vhodnost různých výstupů nebo posloupností stavů. Často je užitek posloupnosti stavů vyjádřen jako součet přínosů každého ze stavů v takové posloupnosti. Pokud máme dán účel definovaný funkcí užitku nebo funkcí přínosů, snaží se stroj přijít s chováním, které maximalizuje jeho očekávaný užitek nebo očekávaný součet přínosů, ve zprůměrování přes možné výstupy, jimž jsou přiřazeny váhy na základě jejich pravděpodobností. Moderní AI zčásti restartuje McCarthyho sen, jen s podprogramy a pravděpodobnostmi namísto cílů a logiky.

Tento text je úryvkem z knihy
Stuart Russell
Jako člověk: Umělá inteligence a problém jejího ovládání
Argo a Dokořán 2021
O knize na stránkách vydavatele

obalka-knihy

Foto: © Dollar Photo Club

Evoluce spolupráce: Reciprocita

Reciprocita, často též nazývaná reciproční altruismus (reciprocal altruism), je jedním z možných mechanismů vysvětlujících kooperaci …

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *