plug-ins
zlatý řez scientistický rozcestník nic :-)
amber.zine
futura
sci-tech
sci-fi
kultura
mimo
plug-ins
interakce
historie
crew
ego
BTW
archiv...
starší čísla...
Digitální genetika
[3/3]
Pavel Šuchmann

Hardware

Protože se neustále o chudáky umělé mravence otírám, měl bych uvést, jak se jim žije. Nemají to věru jednoduché - jsou jen záznamem v paměti nějakého velkého počítače a jejich kratinký život (tj. řádově jednotky sekund) je kompletně simulovaný. A to proto, že, jak jsem naznačil, máme zájem pouze o šlechtění genetické informace a tělo mravence nás nezajímá. Jak takový počítač, simulující stovky generací jedinců a jejich životní podmínky, vlastně vypadá? Zpravidla je to stroj pekelně výkonný, ba co více, často se jedná o několik strojů - někdy i několik desítek strojů. Proč několik? Genetické algoritmy a simulace umělého života jsou totiž velice dobře paralelizovatelné, tj. rozložitelné na velké množství navzájem nezávisejících procesů. Když to přeženu, můžeme si představit, že každému mravenci přiřadíme jeden počítač, najednou tak můžeme simulovat životy tolika mravenců, kolik máme k dispozici počítačů. To vede k velmi zajímavým konstrukcím, např. projekt superpočítače Beowulf firmy Genetic Programming, Inc., řeší paralelní počítání pomocí tisícovky běžných PC, každé z nich je vybaveno procesorem Pentium II na 350 MHz, a 64 MB paměti. Na každém uzlu běží speciálně upravený Linux. Takové - pravda, menší - mašinky jsou na univerzitách všude po světě, každá katedra počítačových věd má jednu, nebo ji alespoň chce mít.

Experimenty

Paralelní počítače možná čeká v následujících letech prudký rozvoj. Jejich uplatnění v pokusných aplikacích genetických algoritmů je značné: kromě široké kategorie GA (genetické algoritmy) se setkáváme s kombinací GANN (genetické algoritmy a umělé neuronové sítě), případně GA a fuzzy systémy.

Zmíním ještě několik příkladů uplatnění GA: Křížením elektronických obvodů složených že součástek můžeme nechat počítač, aby vynalézal nová zapojení, elektronická schémátka. Pokud něco víte o elektronice, tušíte, že právě syntéza např. analogových filtrů je vysoce náročná a odborná činnost. Pomocí GA se podařilo vytvořit fungující obvodové struktury, které doposud nenapadly žádného elektroinženýra.

Další zajímavou aplikací genetického programování je systém, který slouží k manévrování kosmické lodi. Laboratorně se podařilo vyšlechtit programy, jež provádí tyto manévry stejně dobře jako jiná numerická řešení, která ovšem jsou nepoužitelná na oběžné dráze. A tak bych mohl pokračovat, vědeckých prací - jen v oboru genetické programování - vychází ročně na desítky.

Software

Velmi zajímavým podoborem GA je též GP (genetické programování), v němž je genetickou informací přímo kompletní počítačový program (zmíněné pokusy s programy řazení čísel spadají právě do této kategorie). Rád bych se u GP ještě chvíli zastavil. Programování není žádný med a známá lidová moudrost praví, že nejrozšířenějším programovacím jazykem je klení. Stále narůstající složitost systémů a pracnost testování software je dnes velkou brzdou oboru; manažeři nechtějí slyšet nic o chybách v kódu a to, že napsat program opravdu dobře je v podstatě umění, nedokážou pochopit vůbec. Kdybychom mohli programování svěřit přímo počítačům, to by bylo!

Uvedu nyní jako příklad experimenty, které prováděl Daniel Hillis. Kdo z vás měl někdy co do činění s programováním, jistě narazil na úlohu ražení čísel. Existuje celá řada algoritmů řazeni. Jednotlivé postupy se mezi sebou liší efektivitou, rychlosti, tedy např. počtem kroků, počtem výměn v jednotlivých pořadích, počtem porovnání mezi čísly, množstvím potřebné paměti. Každý z postupu-algoritmu tak představuje, z hlediska genetického programování, jednu individualitu. Populace se pak skládá z velkého množství programu určených na ražení čísel - někteří jedinci v populaci dokážou úlohu vyřešit rychleji a s nižším použitím výpočetních prostředků, jiní jsou méně obratní a čísla řadí hloupějším způsobem. Jelikož genetickou informací je zde samotný program, crossover (křížení) je prováděno přímo jako výměna části předků-programu. Po řadě generací tak dochází k tomu, že některé méně efektivní programy zaniknou (jako druh vymřou) a jiné, nové vzniklé, kvalitnější postupy naopak brzy ovládnou teritorium.

V průběhu experimentu se podařilo vypěstovat algoritmus, jenž byl efektivnější než nejrychlejší dosud publikovány předpis pro ražení čísel. Počítač v tomto případě projevil něco, co by se při určitě schovivavosti dalo nazvat "tvůrčí činnosti": vymyslel si program, sám se naprogramoval lépe, než by to dokázal člověk. Jako zajímavost stojí za to ještě uvést, že Hillis použil principu koevoluce, konkurence dvou druhu: společně s řešením (řadícím algoritmem) nechal vyvíjet i samotnou úlohu (různé testovací posloupnosti čísel, která měla být řazena). Zjistil tak, že evoluce, pokud k ní dochází v konkurenčním prostředí, je mnohem rychlejší a účinnější.

(Dovolím si teď malou odbočku, týkající se programování a evoluce: Software, zvláště ten zdarma šířený na internetu, se v hrubých rysech chová také geneticky: schopný přežívá a šíří se na disky uživatelů, méně dobrý je nelítostně mazán. Ten nejméně dobrý se pak vůbec nešíří zdarma, musíte si jej koupit. (Konec vsuvky.))

Trend k jakémusi "osamostatňování se" počitačových programů je zřejmý, i bez genetických algoritmů. K prvním, procedurálním programovacím jazykům z šedesátých let minulého století, jako je např. Fortran, C nebo Cobol, přibyly vzápětí jejich objektoví následníci: Smalltalk, C++, Jáva, atd.; Zatímco procedurální jazyky jsou popisem typu "teď vykonávej toto, teď zase ono..." objektový popis představuje spíše formulace: "já jsem okno to a to a umím to a tohle" nebo "já jsem knoflík ten a ten, zmáčkneš-li mne, to uvidíš věci". V posledních letech se jako inovace objektového programování objevuje princip tzv. agentový. Agentem - v softwarovém smyslu - mužeme chápat samostatně jednající systém, jenž komunikuje se svým okolím (člověkem nebo i jinými agenty) a snaží se splnit určité zadané cíle. Agenty mohou například vyhledávat určitou informací na internetu, jednat jménem uživatele - v budoucnu možná budou vyřizovat jeho korespondenci a nakupovat za nás. To, že agentový software je většinou adaptivní a je schopen zobecňovat a získávat automaticky vědomosti o prostředí, v němž se pohybuje, snad ani nemusím zmiňovat.

Zajímavé pokusy s geneticky šlechtěnými agenty provádí John Holland (zájemcům mohu doporučit jeho knihu How Adaptation Builds Complexity). Jeho experimenty jsou mj. zaměřeny na sledování vazeb a vztahů mezi agenty různých typů. Ve svých digitálních zkumavkách zkoumat takové jevy jako je parazitismus, symbióza, vzájemná ochrana mezi jedinci jednoho druhu, mimikry, atd.

Pozoruhodné je, že pokud agenty vybavíme možností vysílat - signalizovat - určitou informací a na druhé straně schopností tyto signály přijímat a zpracovávat, vznikne automaticky komunikace mezi agenty a dochází také ke kooperaci mezi nimi. Jinými slovy, existují-li ústa, která mohou mluvit, a uši, které mohou naslouchat, vznikne řeč už sama od sebe.

Vrátíme-li se k našim umělým mravencům-agentům: ti, kteří jsou vybavení schématem dobrých tykadel, jistě dají v budoucnu vzniknout generaci těch, kteří se začnou těmi tykadly oťukávat. A budeme-li simulovat najednou dvě celá mraveniště, obě mravenčí kolonie vynaleznou jiný způsob oťukávání, a - pokud vydržíme dalších pár generací - začnou se zástupci obou mravenišť přít o pravidla spisovného oťukávání.

Warwick má pravdu?

Na závěr své přednášky se pokusím o odvážné přenesení výsledků těchto počítačových pokusů do naší reality. Takže jak je to vlastně s inteligencí u člověka? Řeč, konvence a lidské zvyklostí - a v podstatě i celá civilizace - to vše je jen důsledkem toho, že kooperujícím agentům - lidem se daří v podstatě lépe, než kdyby spolu nekomunikovali. (Je to prosté, nehledejte v tom filozofické otázky.) Myšlení a civilizace jsou tak vlastně emergentními jevy, tedy něčím, co vzniká samo od sebe, pokud jsou dány vhodné počáteční podmínky (ústa a uši) a je k dispozici dostatečný počet generací adaptivních agentů (lidí). Shrnu-li to: jestliže za rozvojem myšlení a uchování "knowhow" lidstva stojí právě řeč, a jestliže je řeč a mezilidská komunikace... máme již dnes možná v ruce dlouho hledaný klíč, pomocí něhož odemkneme Pandořinu skříňku obecné umělé inteligence.

Ano, tím klíčem je vývoj - umělá evoluce. Nemáme, jako lidstvo, exkluzivní patent na rozum, v tomto bodě musíme dát technokalyptikům, jako je Warwick, za pravdu.

Nebo si snad myslíte, že po vynalezení člověka to evoluce zabalila?

amber.zine
futura sci-tech sci-fi kultura mimo
Amber Crew