Hlavní navigace

Umělá inteligence ve výpočetní technice - na hraní i ve službách vědy

20. 5. 2008

Sdílet

Umělý člověk a stroje napodobující lidskou mentální činnost tak, že bude nerozeznatelná od skutečných projevů lidského ducha, trápí lidskou fantazii prakticky odjakživa. Nad UI se zamýšlely celé pluky snílků od antiky až do dnešních dnů.

soutez_casestudy

Známý americký vědec Marvin Minský, který svůj život zasvětil zkoumání fenoménu AI, prohlásil: „Umělá inteligence je věda o vytváření strojů nebo systémů, jež budou při řešení určitého úkolu užívat takového postupu, který bychom (při zachování anonymity původce) považovali za projev jeho inteligence.“ Taková definice, ač se to možná nezdá, pochopitelně není vycucána z prstu, ale staví na takzvaném Turingovu testu. Ten vytvořil v roce 1950 britský matematik Alan Turing, aby bylo možné vůbec nějak spolehlivě určit, jestli nějaký program může být inteligentní.





Divadlo za zavřenou oponou
Celý test stojí na jednoduché imitační hře. Té se účastní tři hráči, přičemž druhý hráč se snaží napodobovat činnost prvního takovým způsobem, aby ve výsledku třetí účastník, který jim zadává úkoly, nepoznal, kdo co provádí. Pokud bude totiž počítač v roli druhého hráče spolupracovat inteligentně a podávat relevantní odpovědi, mohl by třetí účastník na základě pouhých výstupů dojít k závěru, že komunikuje se skutečným člověkem. V takovém případě bychom měli co dělat s regulérní umělou inteligencí. V praxi to může fungovat třeba tak, že program má databázi s obsahem klíčových slov, s ním porovnává slova ve větě vašeho dotazu. Pokud nějaké klíčové slovo ve větě nalezne, pokusí se k němu z tabulky reakcí přiřadit odpovídající odpověď a v případě úspěchu ji použije.
Turingův test samozřejmě není úplně bez chyby, protože hodnotí spíše schopnost myšlení předstírat, ale vůbec například nebere v potaz kreativitu. Celý test je tedy příliš jednostranný a místo o skutečné inteligenci vypovídá o schopnosti přístroje přesvědčivě lhát (napodobovat). V tomto smyslu je jednostranná i Minského definice. Tady bychom ovšem neměli zapomínat ještě na jednu důležitou věc, dalším podstatným rysem inteligentních systémů je totiž schopnost vytvářet vnitřní model kolního světa a také umění s ním pracovat. Pokud pak zadáme libovolný počáteční a cílový stav, měl by být modul umělé nteligence schopný sestavit na základě svého vnitřního modelu takovou posloupnost akcí, aby pomocí nich došel k relevantnímu cíli.




Slabina Truingova testu?
Hlavní chybu Turingova testu hezky ilustruje takzvaný argument čínského pokoje. Zkusme si představit uzavřenou místnost, která je naplněna velkým množstvím čínských textů. Do ní pak umístíme průměrného Evropana, který čínštinu neovládá, ale ví, ve které přihrádce může nalézt na základě povahy dotazu relevantní odpověď. Pokud bude komunikace probíhat písemnou formou tak, že dotyčný vždy pouze opíše to, co se nalezne v daném textu, mohl by se tazatel domnívat, že dotyčný jazyku bez problému rozumí. Skutečnost je ovšem taková, že náš pomyslný knihovník pouze mechanicky pracuje s pro něj nesrozumitelnými symboly, takže jeho výstup o jeho skutečné inteligenci nic nevypovídá. Stejnou práci zvládne vykonat i úplně nemyslící stroj (a také to často činí). Argument čínského pokoje objevil filosof John Searl v roce 1980.

Pomalu se dostáváme do míst, kde se nám začínají jednotlivé koncepce umělé inteligence maličko rozcházet. Slabiny Turingova testu totiž vytvořily ve světě

umělé inteligence první schizma – co lze chápat jako AI (Artificial Inteligence), a co ještě (už) nikoliv? Obecně se tak začala rozlišovat umělá inteligence slabá a silná.
S tou první se můžeme setkat i v běžném životě ve formě nejrůznějších jednoúčelových expertních systémů. Ty jsou prakticky dvojího druhu, diagnostické
a plánovací. První z nich dělá to, že na základě předdefinovaných hypotéz porovnává vstupy s daty ve vlastní databázi a následně vybere nejlépe korespondující řešení. Jedním z nejbanálnějších příkladů může být stanovení diagnózy nemocného pacienta podle subjektivních příznaků. V momentě, kdy systém nasbírá
dostatek vstupních dat, zvolí jedno z řešení, které má uložené ve své databázi. Takto pracuje například lékařský expertní systém MYCIN nebo experimentální
automatizovaná psychoanalýza ELIZA.



Až vám bude někdy smutno a nebudete mít zrovna co na práci, zkuste si s ní také popovídat, je to docela legrace, naleznete ji třeba na http://www.manifestation.com/neurotoys/eliza.php3. Neobejdete se však bez elementární znalosti angličtiny, protože jiné jazyky Eliza neumí a nejspíš také ani umět nebude. Naopak plánovací expertní systémy slouží k vyřešení takové úlohy, kdy známe počáteční stav a cíl řešení a zajímá nás posloupnost ideálních kroků (rychlost, cena, čas), jež nás mají dovést ke kýženému výsledku. S takovými systémy se setkáme v širokém spektru oblastí od v zásadě primitivních navigací až po složité programy k odvozování struktur chemických látek na základě histogramu ze spektrometru pro jadernou magnetickou rezonanci.



Expertní systémy dneška
Většina expertních systémů dneška má spíše hybridní (kombinovanou) povahu, to znamená, že používají jak plánování, tak diagnostiku. Typickým modelem může být například výukový program, který nejprve diagnostikuje studentovy znalosti a podle výsledku naplánuje jeho další nutné vzdělávání.

Vůbec první generaci umělé inteligence ve hrách představovaly grafové algoritmy a korelace pravděpodobností. Takový graf je primitivní matematická struktura tvořená uzly spojenými hranami. Jeho výhodou je, že se s ním dá popsat prakticky cokoli, nevýhodou jsou naprosto obludné rozměry i u tak jednoduché záležitosti, jakou jsou třeba obyčejné šachy, takže ho dnes (s výjimkou studentů Matfyzu) již téměř nikdo nepoužívá. Druhá generace už vypadala slibněji. A to i přestože toho zase tak moc neudělala. Vlastně se jen grafové algoritmy doplnily o heuristiku a náhodné metody. Typickým příkladem může být třeba stařičká realtimová strategie typu Command and Conquer: Red Alert. Hráč si nějak poradí vždycky, ale jak má počítač poznat, jestli je pro něho výhodnější (nebo z hlediska děje logičtější) začít průzkumem okolí, rychlou stavbou základny nebo mobilizací těžby surovin? My sami se zpravidla rozhodujeme na základě předchozích zkušeností, momentální nálady a náhody. Asi právě náhoda se ukázala jako takřka zázračný lék na vyloučení šablonovitosti z chování počítače v druhé generaci počítačových her.




Neuronové sítě
Třetí generace umělé inteligence se pokouší vypořádat s dědictvím strojového myšlení, náhoda je sice fajn, ale pořád to ještě není ono. Nějak tu stále chybí ty úplně nejzákladnější schopnosti lidského mozku – schopnost učit se, vnímat (vidět) a analyzovat svoje okolí, komunikovat a tvořivě myslet. Proto jednoho dne přišli jistí pánové McCulloch a Pitts na nápad, že vytvoří umělé neurony, které propojeny imaginárními neurity vytvoří opravdovou nervovou tkáň, jež by měla zákonitě začít přicházet s přirozenými nápady. K realizaci projektu se sice již tito pánové nedostali, ale to nám nakonec nemusí vůbec vadit, protože je v tomto ohledu nahradili jiní. Ukázalo se totiž, že programování neuronových sítí je i přes počáteční náročnost velmi výhodné, neboť průměrné neuronové síti stačí párkrát ukázat, jak danou situaci (problém) řeší expert, a ona se to už nějak naučí. Nebo ještě lépe řečeno, obtiskne si způsob řešení do své struktury. Navíc jsou neuronové sítě schopné učit se
na základě svých vnitřních modelů i ze situací, se kterými se předtím v životě nesetkaly.



Problém je tu ovšem v tom, že umělá neuronová síť na rozdíl od té přirozené nezná intuici, takže nerozlišuje mezi informacemi, které jsou "užitečné k přežití" (nebo k řešení problému) a mezi naprostými blbostmi. To je také důvod, proč se s čistou neuronovou sítí v současných komerčních hrách ani jiných aplikacích dosud příliš nesetkáváme. Protože neuronové sítě jsou přes všechnu svoji „lidskost“ prakticky nepoužitelné k nějakému rozumnému účelu, museli se vývojáři herní inteligence vydat jinudy, a to cestou metody adaptivních algoritmů.

Ty pružně reagují na prostředí a hledají optimální řešení, což však občas vede k poměrně úsměvným situacím. Legendární je například problematické chování adaptivních botů (umělých hráčů) v prvním dílu hry Quake. Boti v modu Deadmatch objevili způsob, jak vyhrát turnaj v nejkratším čase jednoduše tím, že se teleportují z místa na místo a průběžně tak mimoděk zabíjejí ty, kteří vstoupili do portálu těsně před nimi. Řešení je na první pohled velmi kreativní, ale na zábavnosti to hře nepřidá. Místo honby za nepřítelem je totiž hra zredukována na pouhé skákání sem a tam.. Pozoruhodné je, že podpobné "chyby" se čas od času objevují i v současných hrách.



Jinak jsou ale adaptivní algoritmy skvělá věc a ve spojení s dostatečně velkým světem plným objektů, kterým přiřadíme pro adaptivní umělou inteligenci vhodný návod k použití, můžeme dosáhnout nečekaných výsledků. Pokud například do hry Sims l vytvoříme jako nový objekt herní konzoli Playstation 3 s vhodným návodem k použití, že si na ní někdo začne hrát, Sim se pohádá se svojí Simačkou, protože se jí kvůli hraní na PS3 už vůbec nevěnuje, nebo si na ní děti začnou smažit vajíčka, protože prostým srovnáním údajů ze své interní databáze zjistí, že produkuje zhruba tolik tepla jako spirála rychlovarné konvice. Další možností, jak vytvořit alespoň
slabou umělou inteligenci ve hře, je použití expertního systému. O jeho výhodách už jsme se zmiňovali.

Ta hlavní spočívá v tom, že disponuje obrovskou databází znalostí, ze které může na základě odpovídajících pravidel vyhodnocovat například to, jestli ho hráč ohrožuje málo, hodně, nebo vůbec. Takovýto expertní systém nalezneme například v sérii historických strategií Age of Empires od společnosti Microsoft. Nevýhodou tohoto systému je neschopnost se samostatně učit a také relativně velké plýtvání výpočetním časem procesoru.

Fuzzy logika
Většina umělé inteligence ve hrách je však z důvodu úspory programátorových nervů i vydavatelových peněz postavena na ještě daleko primitivnějších modelech slabé umělé inteligence. Patří mezi neadaptivní algoritmy a „konečné automaty“ (finite state machines), ty mají určitý počet stavů, které odpovídají určitým situacím (mám hlad = jsem agresivní), mezi kterými plynule přecházejí (narazil jsem na hráče = sním ho) až do vyčerpání spektra (mám velký hlad = dochází mi energie, umírám/nemám hlad = odpočívám, čekám/čekám dlouho = začínám mít hlad).

Takováto AI se však ve hře stane po čase velmi snadno předvídatelná, takže to pak bude k ukousání. Způsob, jak se tomuto problému vyhnout, je zakomponovat do konečného automatu nějakou fuzzy logiku l, čímž se stane automat jednou provždy trochu nepředvídatelným. Slovo fuzzy totiž v matematice a logice označuje mlhavost. V praxi to může vypadat například tak, že vám z automatu jednou za čas vypadne plechovka cocacoly gratis, pokud se před něj postavíte s květinou a hezky se na něj usmějete (běžně se to ale nestává).

Nicméně přes všechny nešvary většiny současných her se zdá, že se blýská na lepší časy. Spolu s tím, jak se zlepšuje herní fyzika a jiné faktory, stoupají také hráčské nároky na umělé protihráče. Umělá inteligence se tak stává stále komplexnější. V ne zcela vzdálené době se tak nepochybně dočkáme soupeřů a virtuálních spoluhráčů, kteří budou díky kombinaci několika pokročilých technik umělé inteligence na základě chování takřka k nerozeznání od živého člověka. Zatím se však na tuto praktickou demonstraci Turingova testu můžeme pouze těšit.

Byl pro vás článek přínosný?