CORE089 Filozofie ve sci-fi

Roboti se učí chodit

Konec legrace, roboti se učí chodit jako děti. Pomáhá jim neuronová síť

Chůze robotů bývá často trhaná, nejistá... zkrátka robotická. Vědci nyní přišli s metodou, jak robotické pohyby vylepšit. Řešení podle nich spočívá ve strojovém učení. Roboti se musí sami naučit, jak reagovat na nepatrná zpoždění. Pomoci jim v tom má neuronová síť.

  • Robotická chůze je pověstná svou neohrabaností. Podle toho se ostatně dříve poznal robot ve filmu; ať už šlo o funkční rekvizitu nebo o herce v kostýmu, pohyby musely být patřičně trhané. A přestože v posledních dvou desetiletích se roboti evidentně stále zlepšují, plynulosti těch filmových zatím nedosahují.

Jedním z obratnějších dvounohých robotů je Atlas od Boston Dynamics (2018):

V roce 2015 se utkali dvounozí roboti v soutěži DARPA. Diváci se mohli pobavit neobratností těchto špičkových strojů, které se snažily plnit úkoly šité na míru hasičům. Což je povolání, kde by se často hodilo nasadit robota, ale zatím jsou jejich možnosti v terénu omezené a zastaví je někdy i obyčejná klika.

Důvodů pro divnou chůzi robotů je více. „Pro dojem z chůze robota je důležité, jestli je chůze statická nebo dynamická,“ vysvětlil nám Jiří Zemánek, výzkumník z FEL ČVUT. „Statická chůze znamená, že je v každém okamžiku robot stabilní. Byla u humanoidních robotů asi známější, třeba u robota Asimo, a roboti při ní chodí, jako by měli v kalhotách. Lepší dojem udělá dynamická chůze, jako má Atlas, protože se podobá lidské chůzi.“

Hbitá a efektivní chůze je pro robota velmi náročná z mnoha důvodů. Lidé si obvykle neuvědomují, jak obtížné pro ně bylo naučit se chodit, kolik vjemů mozek vyhodnocuje a jak přesné musejí být pohyby, které zajišťují plynulou chůzi. 

Lehce na cvičišti...

Jak se vůbec roboti učí chodit? Jedním ze způsobu je vytvořit sekvenci příkazů, tedy v podstatě předem naprogramovat robotovi chůzi jako sérii pokynů. Vývojář pak v takovém případě musí zkusit vyladit sekvenci příkazů: „0,32 sekund toč motorkem číslo osm po směru hodinových ručiček a zároveň motorkem číslo dva...“. Takový přístup je ale náročný, náchylný na chyby a hlavně nepříliš flexibilní.

Další možností je naprogramování numerického modelu. Programátor tedy nedělá robotovi neměnnou sekvenci příkazů, ale vytváří matematický model doplněný různými numerickými optimalizacemi. Na jeho základě pak robot vyhodnocuje svůj stav, polohu a podle daných pravidel volí konkrétní pohyby pro danou situaci.

Počítač se pomocí neuronové sítě učí chodit. Systém simuluje „robota“ s...

Systém simuluje „robota“ s flexibilními svaly a má za úkol najít způsob pohybu

Opačným směrem jdou systémy založené na neuronových sítích. Několik týmů ukázalo, že neuronová síť se umí postupně vytrénovat k tomu, aby metodou pokus omyl našla algoritmus chůze, který umí reagovat na vnější vlivy i překážky. V roce 2013 například tým Thomase Geijtenbeekapředstavil simulaci chůze po dvou nohách, ve které se každá generace „bytostí“ naučila něco z chyb té předchozí. A tak zatímco třeba sedmnáctá generace má problém udržet se na nohou o devět set generací později už se počítač naučí koordinovat pohyby a obstojně chodit. Je zajímavé sledovat, jak si neuronová síť postupně najde cestu k chůzi, která vypadá velmi podobně jako lidská.

Také Google, respektive firma Alphabet, která Google vlastní, ukázala ve svém výzkumu publikovaném roku 2017 možnosti využití strojového učení. Jednoduché modely (obvykle postavičky se dvěma nohama) se naučily pohybovat se v rozmanitém simulovaném prostředí jen na základě systému odměn.

Co to je neuronová síť a jak se učí

Umělá neuronová síť do jisté míry napodobuje způsob, jakým informace zpracovává lidský mozek

„Umělá inteligence“, tedy přesněji strojové učení, je specifický počítačový program (algoritmus), který není napsaný programátorem „od začátku do konce“. Nejedná se jen o sekvenci příkazů, ale o provázaný systém zpětných vazeb. Díky trénování se může taková neuronová síť naučit plnit i velmi komplexní úkon.

Počítačem simulovaná struktura pro zpracování dat  – tzv. neuronová síť nebo umělá neuronová síť – se inspirovala u anatomie lidského mozku. Skládá se obvykle z vrstev velkého množství „neuronů“, což je samostatná jednotka, která má vstupy a výstupy. Více takových neuronů a vrstev znamená síť náročnější na simulaci, čili je třeba velký výpočetní výkon.

Neuronová síť se učí (trénuje) na základě vstupních (testovacích, trénovacích) dat a zpětné vazby. Neuronová síť může také „učit sama sebe“, což zjednodušeně znamená, že sama sobě dává otázku, na kterou zná správnou odpověď, a trénuje sama sebe tak dlouho, dokud tuto odpověď není schopna poskytnout s určitou spolehlivostí.

Ukázka jednoduché neuronové sítě se čtyřmi vrstvami po šesti neuronech....

Ukázka jednoduché neuronové sítě se čtyřmi vrstvami po šesti neuronech. Spojnice mezi neurony ukazují „dráhy“, kudy nejčastěji proudí komunikace. Tyto dráhy se posilují nebo oslabují na základě zpětné vazby. Tedy neuron, který dává neužitečný výstup, se buď poučí, nebo zůstane nevyužit.

O umělých neuronových sítích se v teoretické rovině diskutovalo už v roce 1943 (PDF). Brzy se ale zjistilo, že počítače ještě dlouho nebudou dostatečně výkonné na to, aby šlo tento koncept rozumně využít. Významný teoretický pokrok udělali vědci v 80. letech (PDF). Teprve ve 21. století, do značné míry díky paralelním výpočtům v grafických kartách, se výzkum rozhoupal. V posledních deseti letech pak neuronové sítě, a strojové učení obecně, zažívá nebývalý rozmach.

Příkladem může být třeba neuronová síť učící se rozpoznávat obličeje, hrát pokeranalyzovat rizika nebo překládat cizojazyčné texty. Mezi hlavní výhody patří schopnost neuronové sítě řešit velmi komplexní problémy a postupně se zlepšovat. Kritici poukazují na to, že u neuronové sítě je velmi složité říci, proč se rozhodla tak, jak se rozhodla. To přináší řadu etických problémů.

V praxi to drhne

Simulovat chodící roboty v počítači tedy už není problém. Potíž ale bývá v převodu simulovaného systému do praxe. To, co fungovalo teoreticky, najednou v realitě naráží na limity a nedokonalosti, způsobené například pomalejší odezvou, třením, zpožděním senzorů nebo kontaktem s okolím.

„Vývojář tedy musí naprogramovat adekvátně komplexní model řízení, který je potřeba otestovat a vyladit. Trvá to obvykle několik měsíců a tyto testy a následné doladění je potřeba zopakovat pro každý jednotlivý manévr,“ popisuje obvyklý problém švýcarský tým Hwangbo et al. v časopise Science. Přišli s inovativním řešením, od kterého si slibují rychlejší vývoj, testování a nasazení chodících robotů.

Tým Jemina Hwangba vytrénoval na reálném robotovi aktuátorovou neuronovou síť,...
Mechanika robota je ovládaná počítačovými pokyny prostřednictvím aktuátoru...

Tým Jemina Hwangba vytrénoval na reálném robotovi aktuátorovou neuronovou síť, která se naučila, jaké zpoždění mají různé senzory a motorky.

„Náš systém využívá simulaci a strojové učení. Naše metoda v podstatě eliminuje problém, který obvykle nastává při převodu ze simulace do reality,“ píší vědci z ETH Zurich (Spolková vysoká technická škola v Curychu). „Doposud šlo strojové učení využít především v simulaci. V praxi se tyto systémy až na pár výjimek neosvědčily. Hlavním důvodem je, že trénování reálného robota je složité a drahé.“ 

Zato i běžný kancelářský počítač dokáže simulovat tisíce robotů, což samozřejmě učení výrazně urychluje. Švýcarští inženýři zajímavě zkombinovali simulaci, strojové učení a reálná měření. Nejprve vytvořili matematický model čtyřnohého robota. Poté nasbírali data o běhu motorků ze skutečného robota. Na těchto datech pak natrénovali neuronovou síť (vědci v práci mluví o aktuátorové síti). Natrénovanou síť pak nahráli do robota.

Schéma systému pro trénování, simulaci a ovládání pohybů robota ANYmal

Schéma systému pro trénování, simulaci a ovládání pohybů robota ANYmal

Tento postup vyzkoušeli na známém čtyřnohém robotovi ANYmal. „S využitím toho, co se robot naučil v simulaci, dosáhl čtyřnohý stroj mnohem lepších pohybových výsledků, než bylo možné s předchozími metodami,“ ukazují vývojáři. 

Takto vycvičený robot robot se pohyboval lépe a rychleji než robot programovaný klasickými postupy. Ještě důležitější možná je, že byl nový algoritmus v podstatě stejně úspěšný v simulaci jako v realitě. To znamená, že natrénovaná aktuátorová síť eliminovala onu propast mezi simulací a realitou. 

Nelze ale říci, že by se robot naučil chodit zcela sám. „Přestože náš přístup umožňuje téměř zcela automatizované vyladění chůze, stále je potřeba lidského zásahu,“ píší vědci v práci. „Pro každý úkon jsme museli navrhnout a vyladit systém odměn.“ Právě podle těchto odměn se neuronová síť „evolučně“ učí, co vede k cíli a co je naopak slepá ulička vývoje. 

Nemilosrdné testování natrénovaného robota ANYmal

Nemilosrdné testování

Pro odborníka, který dobře rozumí strojovému učení i robotice, je toto nastavení otázkou přibližně dvou dní, v případě komplikovanějších manévrů jako „zotavení se z pádu“ trvalo vyladění systému odměn i týden. To vše ale probíhalo v simulaci, což opět snižuje náklady na vývoj.

Roboti jako děti

Tato metoda by podle Hoda Lipsona, amerického vývojáře robotů, který práci okomentoval pro Nature, mohla znamenat důležitý přelom v tom, jak se roboti učí chodit. „Švýcarský tým ukázal, jak uzavřít propast mezi simulací a realitou tím, že klasické teorie řízení zkombinoval s postupy strojového učení. To ukazuje na významný posun v robotice.“

Podle Lipsona jde ale jen o první fázi. „Dalším krokem bude úplné vyřazení analytického modelu.“ Přestat vyučovat klasické teorie řízení je podle něj sice zatím předčasné, ale domnívá se, že budoucnost je zřejmá: „Budoucí vývojáři nebudou robotům říkat, jak mají chodit. Místo toho nechají roboty, aby se to naučili sami, s využitím dat, která roboti získají ve vlastních tělech.“

Pro vývojáře by to ale znamenalo vzdát se kontroly nad tím, jak se robot naučí chodit. Museli by to nechat na něm. Některým vývojářům takový postup připadá nebezpečný, protože to znamená svěřit vývoj nějaké černé skříňce, u které není zcela jasné, co přesně dělá, jak a proč. „Klasická teorie řízení umí k regulátorům udělat analýzu, v jakých mezích se systém bude chovat ještě dobře a jak moc je tedy řízení robustní,“ doplňuje Zemánek. „U neuronových sítí tohle jde těžko, protože se nedá garantovat, jak se bude systém chovat. U chodících robotů to tolik nevadí, ale třeba u autonomních vozidel je to trochu nepříjemné.“

Lipson je ale optimista a na roboty, kteří se budou učit bez předchozích instrukcí, se těší: „Pro mě je úžasné sledovat, jak se robot – podobně, jako dítě – učí chodit.“

Autor: 

Zdroj: