close
Vážení uživatelé,
16. 8. 2020 budou služby Blog.cz a Galerie.cz ukončeny.
Děkujeme vám za společně strávené roky!
Zjistit více

Vážení uživatelé,
16. 8. 2020 budou služby Blog.cz a Galerie.cz ukončeny.
Děkujeme vám za společně strávené roky!

Mnohomluvná rozprava o dokonalé genetické optimalizaci.

28. listopadu 2017 v 5:21 | Petr |  Počítače etc...
Za bolševika jsme nebyli právní stát. Obrana proti státní zvůli nic-moc, veškerý majetek ( de-facto ) patřil Brežněvovi - byla jen otázka jakou silou si pro něj sáhne. Po pádu bolševika alias socialismu jsme se vydali cestou kapitalismu se "soukromým vlastnictvím výrobních prostředků" - proto byla nutná privatizace státních podniků, která proběhla v několika vlnách, ale nejzajímavější byla Klausem vymyšlená "kupónová privatizace" - což bylo de-facto rozdávání státního majetku lidem za nepatrný poplatek 1000 kč.

Při "privatizování" jsem chtěl k "nákupu" akcií přistoupit nějak vědecky a tak jsem bez sebemenších znalostí ekonomie cimrmanovsky "znovu-objevil" P/E index, který mě přivedl až k akciím Škodovky v Plzni. Ta mě zachránila, protože za pár let jsem je ohromně výhodně prodal za pár set tisíc korun - což mi umožnilo dostudovat a postavit se na vlastní nohy, poté co mě drahá mamá v polovině studií, těsně před zkouškou z patologie ( 1800 stran učebnic ) vyhodila na ulici, aby měla místo pro "nového tatínka".

Když jsem tedy byl vyhozen a osamocen - chodil jsem se učit do studovny Univerzitní Knihovny Brno, kde jsem se dal dohromady s jistým rodákem z Frydku, který studoval práva a měl ohromný zájem zkusit obchodovat na burze. Takže jsme dva roky před Karlem Janečkem začali vymýšlet a programovat systém umělé inteligence samostatně obchodující na burze. Software se měl jmenovat "TEREZA" alias TEchnická tRErendová analýZA.

Pří té příležitosti je vhodné udělat odbočku. Při obchodování na burze existují dva zásadně odlišné přítupy jak určít co a kdy koupit.
  1. Fundamentální analýza - se zabývá skutečnými parametry akcie - jaká firma za ní stojí, jaký má zisk, jaké platí dividendny, jak vypadá její produkt, jak vypadá její účetnictví atd... Ikonou fundamentálního obchodování je Warren Buffett a výstižnou zkratkou tohoto přítupu je jeho výrok : "Cena je to co platíš. Hodnota je to co dostaneš".
  2. Problém fundamentální analýzy je v tom, že "události" umožňující spekulovat na základě fundamentálních změn přicházejí poměrně málo často. Addidas vyrábí na jaře tenisky, zkouknete jeho akcie na podzim a sakra-sakra on stále vyrábí tenisky... Proto je tady "Technická analýza" - která zcela ignoruje ekonomické pozadí burzovního obchodování a bere změny cen jenom jako datovou řadu u které se matematickými prostředky snaží předpovědět krátkodobý vývoj do budoucnosti. Smysl je v tom odhalit kdy budou ceny o nula-nula-nic pod dlohodobým průměrem a lze koupit a kdy budou nepatrně nad a lze prodat, případně kdy se "lomí trendy" - klesající akcie začínají stoupat a naopak.
Mohl bych napsat, že pomocí technické analýzy obchoduje 99% ostatních burzovních spekulantů, ale buďme pozitivní : ekonomické učebnice tvrdí, že fundamentální analýza vám dá odpověď na otázku CO koupit a technická analýza vám řekne KDY to koupit a též KDY to prodat. Takže po jedněch prázdninách vyčerpávajícího programování se situace jevila takto : v PC budeme simulovat skupinu virtuálních "obchodníků" s akciemi, kteří se budou v cenách orientovat metodami technické analýzy - nastavení jejich parametrů bude řídit malá neuronová síť a parametry neuronové sítě budeme optimalizovat genetickým algoritmem....
Opět odbočka - genetické algoritmy - jsou nápodoba evoluce počítačovými prostředky - máte 100 "agentů" virtuálně obchodujícíh na burze a po pár kolech obchodování ( které probíhá jen cvičně na starých burzovních datech ) z nich vyberete 25% nejúspěšnějších a jejich parametry zkombinujete tak, aby vznikla další generace se stovkou nových variant. Kombinací nastavení úspěšných neuronových sítí vede k tomu, že ( někteří ) potomci jsou lepší nežli rodiče a předají své nastavení ( geny ) do další ( ještě úspěšnější ) generace. Zbývá jenom otázka proč miliardrář a záletník je Karel Janeček - nikoliv já. Po několika měsících programování jsem zjistil, že tohle je práce na plný úvazek. Startupy ani Euro-dotace "na výzkum" v roce 1994 ještě nebyly a tak převážilo rozhodnutí dostudovat medicínu a neudělat mamá a "novému tatínkovi" škodolibou radost ze studijního krachu. Toto rozhodnutí mě neodvratně zavedlo na dráhu chudého doktora ve zdravotnictví infestovaného zloději a oligofreniky.

OK tedy kombinace umělá inteligence, neuronové sítě, genetické algoritmy - to vypadá jako předčasná ejakulace "vzdělanostní společnosti" už v 90. letech ?? Je tedy jasné, že nastává tradiční kapitola : "ďábel se skrývá v detailech". Pokud nepočítáme jak dostal můj tehdejší počítač ( též koupený za akcie Škoda-Plzeň ) zahulit nutnými výpočty, je tady spousta ostatních problémů. Jak složtá má vůbec neuronová síť být ? Příliš jednoduchá se svým chováním nepříliš liší od jednoduhého souboru pravidel typu
IF lacino THEN kupuj
IF draho THEN prodávej
Naopak příliš složité neuronové sítě mají spoustu kombinací, kdy dosáhnou "lokálního optima" a dále se nevyvíjejí - tedy 100x spustíte simulaci a výsledkem je 100 pokaždé jiných neuronových sítí, které sice obchodují s malým ziskem ale hůře než byste to dokázali sami.

Pokud chcete jen čichnout k těmto problémům - doporučuju neškodnou flashovou hru "Genetic cars 2", která je remakem starší "Boxcar 2D" - což je simulovaná evoluce malého autíčka. Nepříjemnou vlastností genetických algoritmů je, že "optimální řešení" je pokaždé jiné - tudíž nevíte jestli se někde neskrývá ještě lepší. Četl jsem článek o inženýrech geneticky optimalizujících vrtule větrných elektráren. Kdykoliv zadali "vítězné řešení" do optimalizačního programu pro další optimalizaci - zdegenerovalo jim na řešení úplně jiné +- pár desetin procenta stejně účinné, takže nakonec měli desítky verzí vrtulí a nejasno v tom, kterou skutečně vyrábět.

Další nepatrná poznámka : Pokud používáte genetické algoritmy potřebujete vědět jak je který gen úspěšný a to ne na stupnici FUNGUJE / NEFUNGUJE ale na stupnici 3,231 > 3,230. Téhle části genetického algoritmu se říká fitness funkce. Pokud tedy geneticky optimalizujete virtuální obchodníky na burze je jejich fitness funkce úplně jednoduchá - PRACHY a nic jiného. Pozoruhodná je otázka co je fitness funkce v přírodě ? Samotné přežití co největšího množství potomstva ? Tím se nám do fitness funkce dostávají třeba i dravci žeroucí příslušné býložravé zvířátko a to má zajímavé důsledky, ke kterým dojdeme.

OK tedy jednou z příčin našeho relativního neúspěchu s virtuálními spekulanty na burze bylo právě to, že fitness funkce byla až příliš jednoduchá a těžko vymyslet jinou než prachy a zisk ? ( Obchodovat za práva menšin ?? ) Pokud máte jednoduchou a stále stejnou fitness funkci a jednoduché a stále konstantní ostatní podmínky ve kterých se virtuální "gen" pohybuje - o to snazší je "uvíznout v lokálním optimu". Tím se znovu dostaneme k matičce přírodě, kde se podmínky života zvířátek neustále mění a navíc se mění i fitness funkce. Jak už jsem zmnínil spousta zvířátek je potravou nějakého predátora, který tedy zasahuje do fitness funkce příslušného zvířátka a ten predátor se sám genetickým vývojem mění. Takže matička příroda ( jako obvykle ) přednáhí inženýry i programátory. Genetickou optimalizací mění nejenom "nastavení vah" neuronové sítě, ale samotnou její strukturu, navíc má k dispozici miliardy a miliardy exemplářů přislušného zvířátka, po tisíce a tisíce generací a postupně se menící prostředí.

Jak tedy poznáme, že to matička příroda dělá dobře ( lépe než my ) ? Spustila vývoj poprvé a výsledkem je paryba - žralok. Pak spustila vývoj podruhé a výsledkem jsou pravé ryby, pak uplynuly stovky miliónů let a pak spustila tentýž vývoj potřetí a výsledkem je vodní savec - delfín. Všechny tři tyto skupiny jsou si tak podobné, že v přírodopise na základce musí být výslovně napsáno : "Žralok ani delfín nejsou ryby !". Pokud vám to připadá jako náhoda - tak vězte, že není. Posloužím jiným příkladem a to je vývoj oka. Savci a chobotnice mají oči téměř stejné stavby, které ale vývojově vznikly naprosto rozdílným procesem z naprosto jiného původního základu. Jinými slovy - my spustíme naše genetické algoritmy a výsledkem je pokaždé jiné "celkem uspokojivé" řešení. U přírodního vývoje je výsledkem téměř stejné řešení - což naznačuje, že takové řešení má k neznámému optimu daleko blíže než to, čeho jsou schopny naše genetické algoritmy.
Je otázka zdali matička příroda byla takto efektivní vždy a odpověď je, že v jejím případe je efektivita dána miliardami let "postupného šolíchání" téměř stejné ryby. Byly totiž časy, kdy i matička příroda měla "období zmatku" kdy evoluce produkovala obrovské množství bizarních "téměř fungujících" zvířátek. Napadá mě šerý dávnověk zeměkoule blízko období vzniku života, kdy vznikaly opravdu kuriózní mikroorganismy, které jako "živoucí fosílie" obdivujeme třeba v hlubokomořských horkých pramenech. Druhé takové období byla "kambrijská exploze" během které vznikaly podivná zvířátka jako mořské hvězdice, sumýši, hadice a lilijice, ale nakonec z kambrijské exploze vyšlo vítězně notoricky známé tělesné schéma hlava + ocas + 4 nohy, které pak matička příroda 500 miliónů let "pomalu šolíchala" než jste vznikli vy, kteří čtete tento článek.

Jaké je tedy poučení z dnešní pohádky ? I geek může být burzovní spekulant a miliardář, ale musí to být geek-excentrik, připravený na sex se zlatem ověšenými blondýnami-zlatokopkami. Skutečné poučení z dnešní pohádky je ale úplně jiné - až vám kolega-robotik předvede jak 3x po sobě došel genetickým algoritmem k ( téměř ) stejnému řešení, které zjevně dává smysl - pokloňte se jeho softwaru v hluboké úctě a začněte se zajímat o podrobnosti jak to má uděláno...
 

8 lidí ohodnotilo tento článek.

Aktuální články

Reklama