Prírodou inšpirované algoritmyštudijné materiály pre projekt mobilnej triedy umelej inteligencie |
||
Projekt GOLEMEvolúcia strojovUmelá inteligencia sa určitým spôsobom zaoberá pochopením princípov a simuláciou mechanizmov v živej prírode. Tak ako napríklad lietadlá využívajú rovnaké princípy ako vtáky ibaže s fixnými krídlami, formy umelého života môžu zdieľať podobné princípy. Každý z príznakov živého systému sa zdá byť podivuhodný pokiaľ nie je vysvetlený: autonómny pohyb, či komunikácia medzi zvieratami už nie sú zázraky ako niekedy, sú naopak napodobované napríklad v hračkách prostredníctvom batérií, motorov a počítačov. Biologický život je charakteristický najmä svojou schopnosťou reprodukovať sám seba - reprodukovať svoj dizajn a kľúčové elementy. V súčasnosti, stroje – ako formy umelého života – sú stále vyrábané laboratórne a konštruované týmom vedeckých pracovníkov. V projekte GOLEM (Genetically Organized Lifelike Electro Mechanics) je vykonávaných niekoľko experimentov, behom ktorých z takmer ničoho evolvujú jednoduché elektro - mechanické systémy až do podoby pohybujúcich sa robotov.
![]() ![]() Skutočný mechanizmus a jeho virtuálna podobaTak ako biologické formy života, ktorých štruktúra a funkcia je založená na chemickom a mechanickom médiu živej prírody, GOLEMom evolvované tvory zakladajú na svojej „prírode“ - termoplastoch, motoroch a umelých neurónoch. Takto je dosiahnutý autonómny dizajn a tvorba evolúciou v obmedzenom priestore simulácie a aj ich výroba v reálnom svete. Znamená to, že stroje sú prakticky strojovo navrhované a strojovo vyrábané.
Projekt golemGolem@Home Project predstavuje screensaver využívajúci výkon jednotlivých CPU prostredníctvom Internetu na vykonávanie masívne distribuovaných evolučných výpočtov. Po inštalácii tohoto softwaru sa stanete jedným zo zúčastnených UI experimentátorov. Počas behu screensaveru je každá evolvovaná bytosť copyrightovaná vám, po ukončení programu jej existencia končí. Program GOLEM je screensaver – po jeho aktivácii začne proces evolúcie tela a mozgu elektromechanického robota a začne sa vyobrazovať na monitore počítača.
![]() Skutočný mechanizmus
Z času na čas (napr. raz za týždeň) ak je k dispozícii pripojenie na internet, môže evolvovaná bytosť migrovať z vášho počítača na iný s nainštalovaným bežiacim GOLEMom, naopak aj niektorá z iných bytostí môže migrovať do vášho počítača. Z bezpečnostných dôvodov si GOLEMy vymieňajú iba dátové súbory, nepríjmajú ani nerozposielajú spúšťateľné programy. Program, ale nevyžaduje pripojenie k sieti, môže bežať aj na samotnom počítači v izolovanom prostredí. Intervencia ľudského faktoru je minimalizovaná, používateľ má minimálnu kontrolu nad procesom evolúcie virtuálnych bytostí, vyvíjajú sa autonómne. Používateľ má možnosť nepriamo riadiť evolúciu zmenou veľkosti populácie, odstránením alebo nahradením celej populácie, alebo napríklad zmenou prostredia, v ktorom sa vyvíjajú. Vhodné je nastavovať také parametre evolúcie, s ktorými sa vyvinú robustní jedinci, ktorí sú schopní prežiť aj po migrácii do iných prostredí - počítačov.
Evolučný dizajnScreensaver používa techniky evolučného dizajnu. Evolučný proces je vykonávaný na populácii robotov, každý zložený z niekoľkých stavebných blokov. Evolučný proces iteratívne selektuje najvhodnejšie stroje, vytvára potomkov pridávaním, modifikovaním a odstraňovaním stavebných blokov pomocou sady operátorov, a nakoniec ich nahrádza v populácii. Na začiatku je populácia prázdna – neobsahuje žiadne bloky, ani neuróny. Voľba stavebných blokov a operátorov pre evolúciu je kritická. Stavebné bloky sú elementárne, tým pádom sa zvyšuje flexibilita dosiahnutých dizajnov, zatiaľ čo samotný zásah človeka - bias – je minimalizovaný. Použitý priestor prehľadávania pozostáva z rebier a motorov ako stavebných blokov štruktúry a umelých neurónov ako stavebných jednotiek riadenia. Rebrá pospájané prostredníctvom kĺbov tak môžu vytvárať rôzne flexibilné štruktúry. Analogicky, sigmoidálne neuróny sa môžu pospájať tak, že vytvoria ľubovoľnú architektúru riadenia ako napríklad doprednú, či rekurentnú neurónovú sieť, stavový stroj, alebo niekoľko nezávislých ovládačov (ako napríklad ganglia). Proces začína s populáciou 200 jedincov ,ktoré na začiatku neobsahujú žiadne stavebné bloky ani neuróny. Vhodnosť jedinca je odvádzaná od jeho schopnosti pohybovať sa. Evolučný proces iteratívne selektuje vhodnejšie stroje - jedincov, vytvorí potomkov pridávaním, modifikovaním a odstraňovaním stavebných blokov pomocou sady operátorov, a nakoniec ich nahrádza v populácii. Obvykle sa proces opakuje od 300 do 600 generácií. Telo (morfológia) a mozog (riadenie) sú evolvované zároveň. ![]() Schéma jedinca
Simulátor, ktorý GOLEM používa na výpočet vhodnosti je založený na kvázi - statickom pohybe v ktorom je každá časť konštrukcie staticky stabilná. Tento druh pohybu je jednoduchšie spoľahlivo preniesť do skutočného sveta, a je ešte dostatočne vybavený vykonávať pohyb s nízkym momentom. Zvyčajne trvá niekoľko desiatok generácií, pokiaľ sa u jedincov začnú objavovať prvé náznaky pohybov.
Počas evolúcie sa emerguje viacero vzorov evolučnej dynamiky, niektoré z nich pripomínajú vývin skutočných prírodných vývinových stromov. Niektoré z extrémnych príkladov konvergencie, vzniku druhov a masívneho vyhynutia sú znázornené na obrázkoch. Každý uzol v strome reprezentuje jedinca a vetvy reprezentujú vzťah rodič - potomok. Vertikálna os reprezentuje počet generácií, horizontálna os reprezentuje druhovú podobnosť v zmylse počtu skokov medzi stromami , ktoré treba vykonať aby sme sa dostali od jedného jedinca k inému. Všetky stromy začínajú v rovnakom koreni, ktorý predstavuje prázdneho robota bez stavebných blokov.
![]() Nasledujúce dva obrázky ukazujú dve náhodne vybraté celé generácie. Na prvom obrázku môžeme vidieť dve subpopulácie strojov, každý s vlastnou štruktúrou: jeden plochý, druhý obsahujúci aj zvýšenú štruktúru. Obrázok pod ním ukazuje už skonvergovanú populáciu,kde všetky jedince majú podobnú stavbu.
![]()
![]() Nasledujúce grafy ukazujú vývoj vhodnosti počas generácií. Horizontálna os reprezentuje počet generácií, vertikálna os reprezentuje fitness. Každý bod predstavuje jedinca. Na prvom grafe je vidno rýchlejší progres v podobe väčších skokov, na druhom je progres pomalší, ale dosiahnutá maximálna vhodnosť je vyššia.
![]()
|
||
Kontakt: Marek Bundzel |