Club

Znáte Uber EvoGrad? Developerská knihovna pro evoluční algoritmy

V oblasti informatiky existuje rodina algoritmů pro globální optimalizaci inspirovanou biologickou evolucí. Místo toho, aby sledovaly explicitní matematické přechody, vytvářejí tyto speciální modely varianty, testují je a udržují si špičkové výkony. Ukázaly slibné výsledky v rané práci s OpenAI, Google a dalšími, ale prototypy jsou poněkud těžkopádné. Existuje řada nástrojů zaměřujících se na evoluční algoritmy a strategie přirozeného vývoje (NES).

 

Magazín

 

Těmito algoritmy se také zabývají lidé z technického oddělení Uberu. Společnost dnes podrobně popisuje EvoGrad, Python knihovnu, která má vědcům pomoci rozlišovat podle očekávání náhodných variant (z dlouhodobých průměrných hodnot opakování stejného experimentu), což je klíčový krok při odhadování gradientů NES. Společnost navíc oznámila vývoj ES, což je nový meta-learningový algoritmus založený na NES vyvinutý vědci Uber, který urychlil vytvoření EvoGrad. Záměrem je umožnit rychlejší zkoumání variant NES, podobně jako rámec strojového učení Google TensorFlow umožňuje hluboký výzkum. Zcela jistě ještě existuje mnoho zajímavých algoritmů a tvůrci doufají, že tato knihovna pomůže urychlit pokrok v komunitě strojového učení.

 

 

Evoluční algoritmy

Jak tým vysvětluje, tradiční evoluční algoritmy zpracovávají paralelně se vyvíjející sbírku potenciálních řešení určité konkurenci přežití. Těm, kteří jsou na prvním místě, se v příští generaci uděluje více potomků - jejich modifikovaných kopií nebo jejich kombinací s ostatními. Na druhé straně ti, kteří mají špatné skóre, jsou z populace odstraněni. NES pak abstraktní populaci distribuuje jako distribuci pravděpodobnosti, což umožňuje vzorkování a vyhodnocení řešení. V zásadě je to objektivní funkce, která může být diferencována vyhodnocením vzorků populace, a poskytuje matematický vzorec pro explicitní gradient zlepšení. Aktualizuje poté distribuci populace tak, aby byla maximalizována průměrná vhodnost řešení z ní odebraných.

Symbolická forma odhadu gradientu musí být odvozena samostatně pro volby představující metriky distribuce a optimalizace populace, které bývají únavné a vyžadují specifické matematické znalosti. Ale EvoGrad to zvládne ve velkých objemech a poskytuje rozdělení pravděpodobnosti, které může být použito ve funkci očekávání. Vývojáři mohou maximalizovat takové věci, jako je průměrná zdatnost nebo rozptyl chování, a vytvářet populace, které lze snadno přizpůsobit k řešení celé řady úkolů.

 

 

Čtyřnohý robot jako kodér

Spolu s EvoGradem vědci podrobně popsali vývojovou techniku, kterou navrhli a popsali v nedávném článku přijatém na konferenci o genetických a evolučních výpočtech v létě v Praze. Jedná se o nový, efektivní a škálovatelný algoritmus pro přímou optimalizaci vývoje, který využívá modifikované verze NES, kdy se maximalizuje rozmanitost chování v jedné vyvíjené populaci. V jednom experimentu se vývojové ES podařilo vyvinout populaci řadičů AI pro digitálního čtyřnohého robota, který kódoval různá chování při chůzi. Navíc se chování obyvatel lépe přizpůsobilo chůzi v průběhu času.

Dlouhodobým cílem v evolučním výpočtu (studium algoritmů inspirovaných biologickou evolucí) je vytvoření algoritmů, které generují vývojová řešení (jinými slovy, řešení schopná rychle se přizpůsobit novým výzvám). Tvůrci věří, že se jedná o vzrušující a neočekávaný výsledek a budoucí práce na ES s vývojem prostřednictvím EvoGrad a dalších knihoven by mohla dále prozkoumat složitější multimodální distribuci populace a kombinace s expresivnějšími genetickými kódováními. Společnost Uber zaznamenala nedávno velké pokroky. Jen v létě společnost vydala Plato Research Dialog Systém, což je sada nástrojů pro vývoj a testování konverzační umělé inteligence. A v únoru byl bezplatně zpřístupněn Autonomní vizualizační systém, webová platforma pro údaje o vozidle.

 

Připravil: Radek Svoboda