Mezi genetickým programováním a kreativitou Tomáš Brandejský LAI FD ČVUT v Praze Konviktská 20, 110 00 Praha 1 brandejsky@fd.cvut.cz Abstrakt Výpočetní výkon současných počítačů spolu se zlepšujícími se možnostmi programování paralelních výpočtů dovolují uvažovat o praktickém modelování kreativity. Mnoho úloh, které by mohly být řešeny kreativně, je v současnosti řešeno pomocí produkčních expertních systémů a především pomocí algoritmů genetického programování. Ovšem současné algoritmy genetického programování přinášejí i mnohá omezení, jako nízkou efektivitu v případě návrhu komplexních struktur, vytváření překomplikovaných řešení, nebo obtížnou propojitelnost s rozsáhlými ontologiemi. Algoritmy genetického programování jsou totiž v mnoha směrech podobné metodě pokus omyl, se všemi důsledky a nepřinášejí mnoho informací pro modelování lidského myšlení. V příspěvku budou diskutovány zajímavé možnosti zlepšení GPA ve smyslu jejich přiblížení evoluci složitějších organismů nebo modelování lidského myšlení a možnosti jejich implementace. 1 Mozek a dnešní počítače * Výpočetní výkon dnešních superpočítačů překročil hranici 1PFLOP (penta float point operaations per sencond), resp. 1PIPS (penta instructions per second) a dosáhl tak hodnot řádově srovnatelných s výkonem lidského mozku. Pokud uvážíme, že nejvýkonnější superpočítač současnosti (od firmy CRAY) obsahuje 880 000 procesorů, pak i z hlediska paralelismu dochází ke smazávání kdysi jednoznačného rozdílu v architektuře mozku (cca 10 11 neuronů) a počítačů von Neumannovské architektury (1 procesor). Ostatně i na obyčejných PC můžeme pozorovat příklon k paralelizaci výpočtů vzhledem k frekvenčnímu limitu současných technologií. Samozřejmě zůstává zásadní rozdíl v účinnosti, kdy proti sobě stojí monstrum s příkonem v řádu megawat a mozek s příkonem několika málo stovek wattů. Naskýtá se tedy otázka, zda již nenazrála doba pro racionální uvažování o modelování takových abstraktních typů lidského myšlení, jako je vědomí a kreativita. Na základě výše uvedených údajů se totiž zdá, že v této chvíli leží problém spíše na straně algoritmů a modelů, než na straně dostupné hrubé výpočetní síly, jak tomu bylo ještě před desítkou let. Ostatně dnešní PC již dosahují výkonu v řádu 10GFLOPS a při přenesení výpočtů na procesorová pole grafických karet dokonce již byla překročena hranice 1TFLOPS stále hovoříme o standardním vzduchem chlazeném PC sestaveném z běžně dostupných komponent a s cenou do 60000Kč. Z hlediska dostupných SW nástrojů podporujících paralelizaci výpočtů lze jmenovat ještě stále přežívající jazyk OCCAM známý z doby transputerů, který je volně dostupný pro Linuxovou platformu, jazyk ADA známý především z řídících aplikací, ale existují i knihovny pro zřejmě nejpoužívanější jazyk C/C++ a to jak komerční, tak volně dostupné, jako například OpenMP [1]. Pro výpočty na grafických kartách jsou dostupné nástroje vycházející z jazyka C, jako CUDA [2] pro karty NVIDIA, nebo STREAM [3] pro karty AMD/ATI. V současné době se hovoří o sjednocení těchto nástrojů pod novou architekturou OpenCL [4], avšak i když je již definován standard, zatím chybí jeho implementace. Paralelní implementace jazyků umělé inteligence (především Lisp a Prolog) byly vytvořeny již dávno, některé z nich jsou volně šířené, avšak standardizace do této oblasti nepronikla a navzájem jsou dojemně nekompatibilní. Navíc není známa jejich implementace pro GPU. 2 Genetické programování, evoluční programování, gramatická evoluce, chemické programování a spol. Genetické programování bývá dnes velmi často využíváno při řešení problémů, které my sami řešíme kreativními technikami, ale ty neumíme formalizovat. Samo genetické programování lze považovat za metodu heuristického prohledávání stavového prostoru. Zásadní odlišností od původních metod prohledávání stavového prostoru v umělé inteligenci lze spatřovat v určité paralelnosti (také by bylo možno říci mnohobodovosti či multi-threadovosti) tohoto prohledávání, kdy každý gen postupuje vlastní, do jisté míry náhodnou cestou, která je někdy ovlivňována okolními, nebo dokonce všemi ostatními geny. Existuje mnoho variant na dané téma, které se liší množstvím a charakterem genetických operací,
reprezentací a dynamikou populace. Problémem je, že tyto algoritmy, které podobně jako genetické algoritmy jsou založeny na zjednodušeném modelu biologického evolučního cyklu, zřejmě nejsou schopny nám mnoho říci o podstatě lidské kreativity, ani o souvisejících otázkách (učení, inteligence, vědomí atd.). V následujícím textu budeme diskutovat možná rozšíření současných přístupů ke genetickému programování, které by mohly napomoci ve studiu podstaty lidského myšlení. 2.1 Dynamický soubor omezujících podmínek, kreativita a GPA První odlišnost mezi lidským pojetím řešení problémů a genetickým programováním spočívá v odlišné práci s omezujícími podmínkami. Chápání GA jako optimalizačního nástroje vedlo k použití jediné statické fitness funkce, což se později přeneslo i na genetické programování. Později sice vznikly i tzv. paretoga a paretogpa, ale ani tyto algoritmy neřeší otázku dynamiky souboru omezujících podmínek. Ta je přitom nesmírně důležitá. Každá komponenta vznikajícího řešení si s sebou nese svůj soubor omezujících podmínek (pracovních podmínek). Tento soubor se stává součástí souboru omezujících podmínek celého řešení po dobu, pokud je komponenta jeho součástí. Pokud je komponenta ze vznikajícího řešení odstraněna, musí být odstraněny i tyto omezující podmínky. 2.2 Plánování a kreativita aneb jak skřížit produkční systém a GPA Druhou podstatnou odlišností lidského myšlení oproti GPA je provádění analýz problému a stavu řešení, vytváření plánu postupu řešení (strategie řešení). V případě složitých problémů bývá přistupováno k jeho dekompozici, k volbě dílčích plánů (taktika řešení podproblémů). Tento přístup odpovídá top-down strategii návrhu systému. Oproti tomu genetické algoritmy se blíží bottom-up strategii, kdy se skládáním stavebních bloků snaží nalézt řešení. To zpravidla vede ke značné neefektivitě (podobně jako je obtížné sestavit model letadla třesením s pytlem Lega). Ovšem volba taktiky a strategie není v souladu s evolučním cyklem, neboť předpokládá analýzu problému (případně interpretaci vzniklé situace), zaměření pozornosti na určitý subsystém navrhovaného systému, vytvoření jeho separátního modelu, který je řešen nejprve samostatně a poté je řešení promítnuto do výsledného systému. Takovýto přístup je bližší produkčním expertním systémům, jako bylo např. OPS/5 [5]. Ovšem produkční ES nebyly určeny k práci s rozsáhlou populací jedinců, v jejich bázi faktů byl jediný model, jediný jedinec. Pokud by měl být produkční ES jedním z evolučních operátorů GPA, musel by GPA pracovat s více nezávislými strukturami. Vedle modelu jedince by pro každého jedince musel existovat i popis strategie a taktiky dalšího postupu jeho řešení, který by byl vytvářen produkčním ES a v případě použití dekompozice problému i dílčí jednodušší modely/schemata. To odpovídá GPA spojenému s produkčním systémem typu tabule, který bude mít separátní instanci pro každého jedince populace. 2.3 Nové operace v GPA V průběhu zkoumání evolučních přístupů bylo vyvinuto mnoho různých evolučních operátorů, které mají přispět ke zkvalitnění funkce GPA (viz. především [6]). Naskýtá se otázka, zda by samy evoluční operátory nemohly být předmětem evoluce [7]. Jedná se o odlišný přístup oproti přístupům generujícím soubor produkčních pravidel pro generování určité skupiny řešení, viz [8] a [9]. Cílem těchto snah je naopak vytvoření metaúrovně, která by si sama definovala pravidla evoluce podobně, jako je tomu u biologických systémů. Evoluce evolučních operátorů představuje rekurze v Hofstadterově smyslu (viz [10]). Problémem tohoto přístupu je nutnost pracovat na metaúrovni s podstatně pomalejší dynamikou než na úrovni vlastního řešení, nutnost předkládat systému množství příbuzných problémů, jejichž strategie řešení budou zobecňovány v nadřazené metaúrovni do nově formulovaných evolučních operátorů. Kozův tým se naproti tomu pokouší o zobecnění často se opakujících struktur v nalézaných řešení pomocí tzv. UDF. Protože obecné systémy nemohou být jednoduše popsány jednoduchou lineární nebo stromovou strukturou, je také třeba definovat základní evoluční operace nad obecnými grafy (např. E-R diagramy, viz [11]). 2.4 Je tedy lepší budovat GPA s rozšířeným souborem evolučních operátorů nebo produkční ES typu tabule? Metaevoluce je vzhledem k její nízké dynamice zajímavá spíše pro akademický výzkum obecných otázek evoluce. Pro praktické řešení problémů bude zřejmě výhodnější se soustředit na předdefinovaný soubor elementárních evolučních pravidel a na jeho efektivní řízení produkčním systémem. Zajímavým problémem je otázka jaké podmínky by měl soubor evolučních operátorů splňovat a zda by se i v jeho případě neměla požadovat Turingovská úplnost (ekvivalence Turingovu stroji), což je otázka v souvislosti s reprezentačními strukturami a evolučními operátory algoritmů genetického programování dosud ne zcela prozkoumaná.
2.5 Analogie a GPA Analogické a metaforické uvažování bývá považováno za jeden ze základních mechanismů kreativity. Bývá ovšem zpravidla spojováno s popisem modelů pomocí rámců a nad nimi budovaných asociativních sítí, což naopak nebývá příliš časté v oblasti GPA a popisu jejich genomu. Možnou implementací analogického a metaforického uvažování v GPA by bylo nacházení interpretací aktuálních řešení či jeho částí nebo přímých analogií tohoto řešení s modely uloženými v separátní databázi. Nacházení analogií mezi jednotlivými řešeními (mezi jednotlivými jedinci v populaci) je také možné, ale jeho přínos by byl patrný zřejmě jen v případě řešení velmi složitých problémů. Nicméně vytvoření analogických a metaforických evolučních operátorů předpokládá ještě vznik jednoho atypického řešení vytvoření systému managementu rámců, který by pracoval s dělenou databází, kdy podstatná část rámců by byla součástí statické báze znalostí a zbylé rámce by byly uloženy v dynamické struktuře popisující konkrétní řešení při zachování možnosti vytvářet reference a AKO (a kind of) odkazy z dynamické části do statické. 2.6 Uvažování ve více abstraktních rovinách a GPA Uvažování v několika úrovních abstrakce je důležité především pro dekompozici problémů, ale je i základním mechanismem uvažování založeného na analogiích a metaforách, kde mimo jiné může sloužit i k vytváření Hofstadterovské rekurze mezi odlišnými úrovněmi abstrakce. Zobecňování je ovšem výpočetně poměrně náročnou činností, vzhledem k množství možných interpretací. Proto je vhodné udržovat základní schemata na jednotlivých úrovních abstrakce trvale a definovat jednotlivé operace tak, aby byla zachována konzistence mezi nimi. Další možná schemata pak vytvářet na vyžádání. Práce se schematy je důležitá i z hlediska vytvoření metaúrovní uvažování, kdy produktem uvažování na metaúrovni je schema, která pak nižší úroveň naplňuje, resp. interpretuje. Jednoduchým příkladem implementace takovéhoto typu uvažování je algoritmus genetického programování pracující s oddělenou optimalizací parametrů. Viz např. [12], kde tohoto mechanismu bylo využito k zamezení maskování dobré struktury špatně identifikovanými parametry. 2.7 Fokusace pozornosti a GPA Fokusace pozornosti, a nebo také volba řešené úĺohy ze seznamu nezpracovaných a rozpracovaných úloh z agendy představuje problém který zásadně ovlivňuje efektivitu řešení problému a dokonce samu schopnost tento problém řešit. Fokusace pozornosti by mohla být řešena volbou konkrétního podproblému z agendy nevyřešených problémů. To např. znamená, že pokud by do modelu řešení byla umístěna komponenta, byl by do agendy automaticky přidán požadavek na konkretizaci jejích parametrů a vlastností. Volba konkrétního podproblému pak bývá ovlivněna emočním aparátem. 2.8 Emoce a GPA U biologických systémů emoční aparát ovlivňuje většinu duševních činností. Naštěstí psychologické výzkumy ukazují že emocí je jen omezený počet a experimenty v oblasti robotiky tyto závěry potvrzují. Pro účely modelování technického systému bychom tyto emoce mohli transformovat na následující soubor příznaků: - odhad času potřebného k řešení/odhad pracnosti - míru obvyklosti problému/pravděpodobnost, že řešení bude dosažitelné v rámci agendy - důležitost problému/počet dalších úloh, jejichž řešení závisí na výsledku řešení daného problému 2.9 Ostatní mechanismy Lidský mozek neřeší jen jeden proces nebo jednu vícevláknovou úlohu, jak by odpovídalo genetickým algoritmům a jejich výše naznačeným rozšířením. Ve skutečnosti vedle jedné, vědomě řízené úlohy probíhá v podvědomí ještě několik dalších (jednodušších) procesů, které mohou dokonce s vědomým procesem interagovat a mohou mít jak charakter sledování konzistence v systému, tak i např. dynamickou úpravu priorit, nebo dokonce mohou nezávisle řešit jednotlivé podproblémy, nebo hledat analogie k jiným problémům. To vnáší do celého procesu určitou asynchronnost, kterou dnes můžeme v mnohaprocesorových systémech do jisté míry simulovat. Protože u člověka nejsou hledány jen analogie a metafory k jiným úlohám daného typu, ale ke všem situacím, které se mu vryly do paměti, je tento proces ovlivněn náhodnými i nenáhodnými interakcemi indiviua s okolím, což je úloha z hlediska modelování podstatně komplikovanější. Pokud budeme parafrázovat známý výrok Rodneyho Brookse [13], pak pouze robot na rozdíl od stacionárního počítače může interagovat se svým náhodně proměnným
okolím a díky emočním vazbám projevovat skutečnou kreativitu. Tento způsob uvažování hraje v kreativitě velkou roli, jak jsme již zmiňovali výše, neboť dovoluje nacházet problémy, jakož i objevovat překvapivá řešení. Zřejmě bude i silná souvislost s uvažováním respektujícím omezující podmínky. 2.10 Paradoxní uvažování a GPA Jak již bylo uvedeno v práci [14], tento způsob uvažování hraje v kreativitě velkou roli, neboť dovoluje identifikovat problémy (řídit pozornost), jakož i objevovat překvapivá řešení. Paradoxní uvažování mívá svůj velký význam i při reformulaci zadání problému. Nicméně teprve budoucí pokusy o implementaci kreativního uvažování do umělých systémů ukáží, zda postačuje implementace ve formě systému paralelně pracujícího vedle vlastního řešitele problému, který je založen na hledání logických a semantických nekonzistencí v jednotlivých schematech. 3 Implementace systému a otevřené problémy Vzhledem k potřebě dynamicky popsat množství vztahů a pojmů, je jako model systému uvažován popis pomocí vlastností, chování, schemat, scénářů a objektů, viz [15]. Je ovšem třeba analyzovat a navrhnout GPA pracující s tímto systémovým modelem. Nad tímto modelem bude i nutné implementovat algoritmy analogického a metaforického uvažování. Nesmírně důležitým, leč složitým problémem je vyřešení vztahu scénářů a evolučních technik, respektive evolučních technik a produkčního systému. Další důležitou otázkou bude vyřešení práce s dělenou bází znalostí, vyřešení vztahu mezi databází znalostí a zkušeností a bází rozpracovaných variant řešení. Rovněž bude nutné implementovat emoční aparát a fokusaci pozornosti, jejich spolupráci s mechanismy dekompozice a tedy i metody pohybu mezi úrovněmi abstrakce. 4 Shrnutí V současné době probíhá vývoj systému založeného na platformě C++/OpenMP/CUDA, který by měl prověřit možnosti sdružení výše popsaného souboru technik do jediného systému kreativního řešení problémů. Ověřování takového systému předpokládáme jak na konstruktivních úlohách, tak i na simulaci řešení složitých dopravních a logistických úloh. Poděkování Práce vznikla v rámci řešení výzkumného záměru MŠMT ČR číslo 6840770043. Literatura [1] OpenMP http://openmp.org/wp/ [2] CUDA http://www.nvidia.com/object/cuda_home.html [3] STREAM http://developer.amd.com/gpu/atistreamsdk/pag es/default.aspx [4] OpenCL http://en.wikipedia.org/wiki/opencl [5] T. Cooper, N. Wogrin: Rule-Based Programming With Ops 5. Morgan Kaufmann Pub., 1988. ISBN 978-0934613514. [6] Koza J.R., Bennett III F. H., Andre D. and Keane M. A. 1999. Genetic Programming III Darwinian Invention and Problem Solving. San Francisco: Morgan Kaufmann Publishers, 1999. ISBN 1-55860-543-6 [7] Zelenka, J.: Operator Evolution - a Way to Creativity? In: Mendel 2007. Brno: Brno University of Technology, 2007, p. 39-42. ISBN 978-80-214-3473-8. [8] Bentley P. J.: Evolutionary Design by Computers. London, Academic Press Ltd., 1999 [9] Stanley K. O., Miikkulainen R.: A Taxonomy for Artificial Embryogeny. Artificial Life Journal, 2003 [10] Hofstadter D. R.: Godel, Escher, Bach: An Eternal Golden Braid. Basic Books, 1994, ISBN 978-0465026562 [11] Brandejský, T.: Genetic Algorithm of Numerical Concretization of Qualitative Model. In: Mendel 2003. Brno: Brno University, 2003, p. 65-69. ISBN 80-214-2411-7. [12] Brandejsky T. 2005. Genetic Programming Algorithm with Parameters Pre-optimization - Problem of Structure Quality Measuring. In: Mendel 2005 conference, VUT Brno, Brno, Czech Republic, 2005, pp. 31-35. ISBN 80-214-3195-4 [13] Brooks R.: Intelligence without reason. MIT AI lab Memo No. 1293, 1991, Boston, MA [14] Brandejský T. a Faber J.: Brandejský, T. Korespondence neurologických experimentů a modelů kreativity. Kognice a umělý život 2008, Praha, In: Kelemen J., Kvasnicka V. a Pstruzina K.(eds.): Kognice a umělý život VIII, FPF SU. Opava, 2008, pp. 55-60. [15] Brandejský T.: Trochu jiný model systémů založený na popisu vlastností a chování a jejich využití v inteligentních systémech. Kognice a umělý život 2007, Smolenice. In: Kognice a umělý život VII. Opava: Slezská univerzita, 2007, s. 65-70. ISBN 978-80-7248-412-6.