LS 2002/2003
SA_320 – esej
Michal Hauzírek (xhaum07)
Proč je umělá inteligence umělá
Dvě vejce z jednoho hnízda V následujícím textu se pokusím nastínit obrysy dvou technologií, které mají společné kořeny – pocházejí ze stejného hnízda. O obě se dnes řadí do oboru nazývaného umělá inteligence – expertních systémů a genetických algoritmů. Neusiluji rozhodně o vyčerpávající popis technických detailů, spíše se budu snažit ukázat na základních principech rozdíly a shody vlastnosti obou přístupů a zdůvodním, proč přistupuji k této technologii se zaujetím a zároveň s určitou skepsí, či spíše snahou o kritický nadhled. Jeden z nejúspěšnějších výtvorů tradiční umělé inteligence, která inteligenci pojímá jako něco, co lze rozdělit do jakýchsi ucelených modulů a ty potom simulovat, totiž klasické expertní systémy, jsou dnes poměrně široce nasazovány v nejrůznějších oblastech lidské činnosti. Veškerá jejich „inteligence“ v naprosté většině spočívá v určitým způsobem vyjádřených a uložených znalostech, které do nich byly vpraveny jejich tvůrci. Takovýto stroj potom „ví“, jaké operace s těmito reprezentacemi znalostí lze provádět. Ví to, protože to do něj bylo rovněž vloženo jeho autory. Rozhodně ale nemůže chápat význam těchto informací – nemůže jim rozumět, protože nemá rozum. Tyto vnitřní reprezentace znalostí a operací jsou jím následně pouze aplikovány na různá vstupní data a systém, pokud to vyjádříme hodně zjednodušeně, spočítá výsledek. Výsledkem může být například doporučení učinit nějaké rozhodnutí. Základní problém může nastat již při sběru potřebných znalostí. Lidé nemusí mít vždy zájem své znalosti „nacpat“ do nějakého stroje, aby potom dělal práci místo nich. Kromě toho je nesmírně složité znalosti z dané oblasti, které člověk získává celý svůj dosavadní život, vůbec smysluplně utřídit, sepsat natož je převést do počítačově srozumitelného jazyka tak, aby jejich smysl zůstal pokud možno nezměněn. Kromě toho může po nějakém čase (a v některých oborech dříve, v některých později) hrozit postupné zastarání těchto vnitřně pevně daných znalostí. Pouze opravdu dobré expertní systémy jsou schopny také určitým způsobem získávat a osvojovat si nové reprezentace znalostí, případně upravovat ty stávající na základě „zkušeností“ – zpracováním velkého objemu dat. Zde bývá ale většinou třeba zásahu člověka, aby tyto závěry ověřil a zejména analyzoval jejich smysluplnost. Protože stroj nerozumí smyslu a významu toho, s čím pracuje, může se stát, že „objeví Ameriku“ například zjištěním, že v sobotu chodí do práce mnohem méně lidí, než v pátek. I proto je při používání takových systémů potřeba veliké opatrnosti. Zejména pokud jejich uživatelé nevidí (nebo ještě hůře ani nechtějí vidět) „dovnitř“ do báze znalostí reprezentovaných rozhodovacími pravidly. Jestliže jsou zaslepeni pozlátkem moderní technologie a nebo k ní naopak vzhlížejí s posvátnou hrůzou a obdivem jako k něčemu samospasitelnému, mohou jim v budoucnu nastat nemalé problémy. Lidé by nikdy neměli při své práci ztrácet kontrolu nad tím, co dělají. Měli by si při své činnosti s daty a informacemi být vědomi toho, odkud původně pochází a jak byly zpracovávány, než se dostaly k nim na stůl. Konkrétní aplikace, dnes poměrně často nasazovaných expertních systémů, jsou vždy velmi specifické. Na základě předem daných pravidel řeší konkrétně zadaný úkol. Jsou rovněž Strana 1
LS 2002/2003
SA_320 – esej
Michal Hauzírek (xhaum07)
poměrně silně deterministické (přestože mohou pracovat s určitými hodnotami pravděpodobnosti). Velmi zjednodušeně by se dalo říct, že při použití takového systému víme (nebo prozkoumáním jeho „vnitřností“ můžeme poměrně snadno zjistit), jak a proč dospěl k tomu či onomu závěru. Naproti tomu jiný – mladší obor umělé inteligence, který se zabývá genetickými (nebo také evolučními) algoritmy, lze silně zjednodušeně charakterizovat opačným tvrzením. Zde se totiž, jak dále uvidíme, k požadovanému výsledku dojde za poměrně silného vlivu náhody. Není to ovšem v žádném případě výsledek náhodný či neuspokojivý. Ne vždy je ale také na první pohled jasné, proč je tím pravým výsledkem právě ten, který byl určen genetickým algoritmem. Ale začněme od začátku. Základní inspirací se pro tvůrce genetických algoritmů stal nám všem známý život na planetě Zemi a lidské představy o jeho vývoji. Konkrétně to pak byla evoluční teorie založená Charlesem Darwinem. Evoluce a její úžasná komplexnost, která dokázala vytvořit tak rozmanitý svět kolem nás, uchvátila na přelomu šedesátých a sedmdesátých let Johna Hollanda z MIT a jeho žáky. Jejich práce se setkala s větším ohlasem až později v osmdesátých letech, kdy bylo mimo jiné zjištěno, že genetické algoritmy jsou velmi vhodné pro různé nezvládnutelné (NP) problémy, tedy takové, které nejsou obecně řešitelné v konečném čase. Hlavním problémem takových úloh je jejich nelinearita a často nesmírná složitost, která roste exponenciálně. Jedná se zejména o nejrůznější typy náročných optimalizačních úloh. Genetické algoritmy nespoléhají, na rozdíl od klasické umělé inteligence na dekompozici „inteligentního“ chování do oddělených částí. Jejich „inteligentnost“ (záměrně to nenazývám inteligencí) vyvstává z jejich ohromné výpočetní síly při velkém počtu jedinců a mnoha jejich generací. Hlavním přínosem je však to, že na rozdíl od pouhého náhodného prohledávání všech řešení, jejichž ohromný počet právě způsobuje neřešitelnost v konečném čase, se „dobrá“ řešení z předchozích generací přenášejí (ať už přímo, nebo křížením) do dalších generací a zvyšují tak jejich šanci na lepší výsledky v kratším čase. Genetické algoritmy se tak s nesnázemi vyrovnávají obdobně, jako přírodní výběr řeší základní optimalizační úlohu na Zemi: jak přežít. Nejprve je tedy třeba určit, co má být řešeno. Tento krok není tak triviální, jak se může na první pohled zdát. Je potřeba vlastnosti požadovaného řešení rozložit do jednotlivých „genů“. Podobně jako jsou některé vlastnosti „řešení“ problému „přežít“ uloženy v genech živých tvorů (pták – má křídla, je poměrně malý, má lehké kosti…). To se nejčastěji provádí binární nebo jinou symbolickou reprezentací jednotlivých vlastností a jejich zřetězením do určité struktury, která formuje daného „jedince“. Takových jedinců (nejčastěji s náhodnými počátečními geny) se potom vytvoří určitý počet většinou odpovídající počtu genů. Dalším velmi důležitým krokem je ohodnocení kvality či vhodnosti řešení představovaného konkrétním jedincem tak, aby bylo možné určit, kteří jsou neperspektivní (řešení jimi představované není vhodné) a mají „zahynout“, aby uvolnili místo svým nadějnějším „kolegům“. To je možné opět učinit mnoha způsoby představenými například v [2]. Důležité ovšem je hlavně to, jak a kým budou nahrazeni. A tady právě spočívá největší síla genetických algoritmů. Ve shodě s evoluční teorií jsou jednotlivá (vyhovující a nevymírající) řešení „pohlavně“ rozmnožena. Svůj genetický materiál tedy získají od (nejčastěji) dvou jiných dosud úspěšných jedinců. Pro výběr jedinců pro křížení existuje zase mnoho různých metod, ve většině z nich hraje opět větší či menší roli náhoda. To částečně snižuje nebezpečí ustrnutí vývoje v pouze částečném řešení tím, že by se úspěšní jedinci reprezentující toto řešení křížili pouze mezi sebou a nepřispívali tak k hledání dalších
Strana 2
LS 2002/2003
SA_320 – esej
Michal Hauzírek (xhaum07)
– možná lepších řešení. Byli by v průměru lepší než „chudáci ostatní“, kteří by při hledání dalších řešení nebyli tak úspěšní a vymírali by. (K tomu může například dojít při hledání globálního maxima funkce nalezením některého jejího lokálního minima.) Aby se ještě více zabránilo vzniku takových situací, přidává se obvykle do procesu reprodukce také efekt náhodné mutace. Ta se provádí tak, že se (ve stanoveném procentu případů) náhodně zamění hodnota některého z genů. V další takto vzniklé generaci se opět provede ohodnocení a nejslabší jedinci jsou zahubeni. Celý proces pokračuje až do té doby, než je dosaženo uspokojivého výsledku. Vše je ještě jednou přehledně shrnuto na následujícím obrázku.
Počáteční populace chromozomů 1
Nová populace chromozomů 0
0
0
1
1 1
0 1
1
1
0 1
0 0
1
1
…
0
0
1
1 1
0 1
1
1
0 0
0 1
1
1
… Urči zdatnost: Jak dobře který chromozom provádí úlohu
Nejslabší znič
Každé číslo odpovídá nějaké vlastnosti „organismu“ představujícího možné řešení úlohy
Namnož chromozomy
Zastav, pokud jeden z chromozomů dosáhne předem určené zdatnosti
0
0
0
0
1
1 1
0 1
1
1
0 0
0 0
Překřížení 1
0
1
1
1
0 1 1
…
1
Obrázek podle [1] (s. 148)
Strana 3
1 0
Náhodná 1 mutace
…
1 1 0 0 1
…
LS 2002/2003
SA_320 – esej
Michal Hauzírek (xhaum07)
Jak je vidět, genetické algoritmy jsou poměrně mocný nástroj. Ovšem samozřejmě mají také některé nevýhody. Jednou z těch zásadnějších je, že je obtížně lze s jejich pomocí nalézt skutečně přesné výsledky. To může omezovat jejich použití v oborech, kde se vyžadují právě zcela přesné výpočty. Na rozdíl od některých jiných přístupů však dávají (v závislosti na mnoha parametrech) relativně brzo relativně dobré výstupy. A to jsme již narazili na další možný problém: již výše bylo několikrát zmíněno, že pro tu kterou funkci genetických algoritmů existují různé metody řešení. Přesnost a rychlost výpočtu totiž velmi silně závisí na stanovených počátečních podmínkách - na metodě výběru jedinců určených k rozmnožení či zahubení, na samotném způsobu dědičnosti, a v neposlední řadě na počtu genů a jedinců či pravděpodobnosti náhodné mutace. Při velmi vysokém počtu jedinců můžeme narážet na bariéry běžných výpočetních systémů a je nutné nasadit robustní paralelní architektury, které jsou právě pro podobné typy aplikací přímo navrhovány. Kromě počtu jedinců záleží i na počtu jejich genů. To, které vlastnosti mají být při řešení komplikovanějšího problému brány v úvahu a jakým způsobem je reprezentovat, se může určitým způsobem blížit získávání znalostí z expertů při tvorbě expertních systémů. Další snad ani ne tak problém jako spíš pozoruhodnost je, již v úvodu naznačená skutečnost, že jednotlivé geny a program, který je a jejich interakce řídí, je opět pouze stroj a nemůže vědět, „co řeší“. Na tom ještě samozřejmě není nic pozoruhodného. Genetické algoritmy totiž prostě jen hledají optimum bez ohledu na jakékoliv lidské znalosti či zkušenosti. Samozřejmě tyto (věcné) zkušenosti a znalosti jsou do jisté míry do modelů promítány právě skrze ony parametry-geny, které tvoří jedince. Ani tak ovšem není vyloučeno, že bude objeveno lepší řešení, které je na hony vzdálené od řešení stejného problému lidskými mozky. Může tak dojít k situaci, kdy na současné úrovni vědeckého poznání a se současnými zkušenostmi nebudeme moci vysvětlit, PROČ je dané řešení optimálnější, budeme ale vědět (a zřejmě moci i empiricky ověřit), ŽE optimálnější skutečně je. Tato skutečnost může některé lidi frustrovat a stavět je do pozice pomalých tvůrců nedokonalých řešení, některé může naopak motivovat k odhalování dosud utajených souvislostí. Toto pochopení může kromě jiného vést ke zpřesnění a úpravě použitých parametrů a dalšímu zlepšení modelu. Nezapomínejme ovšem, že celá myšlenka genetických algoritmů je „pouze“ výtvorem člověka (evoluce sice není dílem člověka, ale její teorie a aplikace zajisté ano). Postupem času by se některé předchozí problémy mohlo podařit odstranit. Co jiného je nastavování parametrů genetického algoritmu, než určitý typ optimalizační úlohy? Tato optimalizační úloha by mohla být s úspěchem řešena jiným genetickým algoritmem. Ten by ovšem musel opět sestavit, kdo jiný než, člověk. Umělá inteligence je poměrně nový vědní obor s bouřlivým vývojem. Někteří ho zatracují, jiní jsou jím fascinováni. K umělé inteligenci existuje několik různých přístupů a každý z nich má své určité výsledky. Prvním a zřejmě nejstarším z nich je ten, jehož vrcholem jsou expertní systémy. Ty byly během času rozvinuty tak, že se již postupně dostali z výzkumných laboratoří do praktických aplikací. Tady ovšem hrozí riziko, že jejich „noví“ uživatelé, kteří nevědí, co se za nimi skrývá, jejich schopnost (i pod vlivem magického „umělá inteligence“) přecení. Expertní systémy mohou být při nejlepším (pokud se podaří znalosti bez zkreslení „přenést“ do stroje) jakýmsi statickým časovým snímkem kauzálního uvažování člověkaexperta o dané množině problémů. Při vědomí si všech omezení to může na řešení některých úloh plně postačovat.
Strana 4
LS 2002/2003
SA_320 – esej
Michal Hauzírek (xhaum07)
Naproti tomu poměrně mladý (spíše co do rozvoje než vzniku) obor, týkající se genetických algoritmů, na člověka a jeho znalosti spoléhá mnohem méně. Kromě pár předem daných pravidel (ovšem, jak jsem již poznamenal, stěžejních) hraje velkou roli náhoda. Snaží se při řešení problémů chytře využít masivní výpočetní kapacitu evoluce. Místo celých lidských „znalostí“ se spíše pokouší skládat jejich střípky tak, aby dohromady daly co nejlepší výsledek. Ale skládá je rychle a hlavně poměrně efektivně. To, co vznikne, je někdy těžké předpovídat. Na rozdíl od expertních systémů můžeme být výsledkem i překvapeni, můžeme se dozvědět něco nového. Genetické algoritmy jsou totiž velmi dynamické. Každý z přístupů se samozřejmě používá k jiným účelům. Lze si jistě představit i jejich kombinaci. Chtěl jsem tu jen nastínit dva příklady technologie, které vzešly oba ze stejného hnízda nazývaného umělá inteligence a poukázat na jejich shodné a rozdílné vlastnosti. Zároveň jsem chtěl ukázat, že samotná technologie nikdy neřeší všechno, že záleží vždy na jejím správném použití a využití, které se stává obtížným, když člověk nerozumí jejímu obsahu a významu. Už proto, že ani technologie umělé inteligence samy svému obsahu a významu rozumět nemohou. Zbývá to tedy na nás – na lidi.
Veškeré tyto technologie jsou umělé (vytvořené člověkem) o tom není sporu, to jak moc jsou „inteligentní“ záleží na tom, kterou z definic inteligence budeme uvažovat. Rozhodně však jsou méně inteligentní než člověk (vždyť člověk vytvořil je a nikoliv naopak) a proto k nim tak také musíme přistupovat. Člověk je bytost inteligentní, ale někteří lidé občas ne.
Strana 5
LS 2002/2003
SA_320 – esej
Michal Hauzírek (xhaum07)
Použité zdroje [1] COVENEY, Peter; HIGHFIELD, Roger. Mezi chaosem a řádem. Praha: Mladá fronta, 2003. ISBN 80-204-0989-0. [2] ZEŤÁKOVÁ, Zuzana; SABO, Michal. Genetické algoritmy [online]. Košice: alife FEI TU [cit. 2003-05-13]. Dostupný z WWW < http://alife.fei.tuke.sk/projekty/gen_alg > [3] RAUCH, Jan. Metody zpracování informací II Ukládání a vyhledávání. Praha: Vysoká škola ekonomická v Praze. ISBN 80-7079-870-X. [4] PĚCHOUČEK, Michal. Filosofie umělé inteligence [online]. Praha: FELK ČVUT [cit. 2003-05-13]. Dostupný z WWW < http://cyber.felk.cvut.cz/gerstner/teaching/kui/kuiphil.htm >. [5] ŠTÝBNAROVÁ, Libuše. Expertní systémy Příručka k přednáškám [online]. Opava: UI FPF SU [cit. 2003-05-13]. Dostupný z WWW < http://ui.fpf.slu.cz/diplomky/znalostni_a_expertni_systemy >. [6] LUNNER, Petr. Jemný úvod do genetických algoritmů [online]. Praha: CGG MFF [cit. 2003-05-13]. Dostupný z WWW < http://cgg.ms.mff.cuni.cz/~pepca/prg022/luner.html >.
Strana 6