V předchozích dílech jsme se dozvěděli něco o pohyblivosti, vnímání a motorice robotů. To nejzajímavější a zároveň nejkontroverznější je ale jejich inteligence. Existuje mnoho apokalyptických vizí, kdy stroje zotročí, nebo rovnou zničí lidstvo, a většina vychází z děsivé představy robota, který umí samostatně myslet. To jim ale dosud naštěstí nejde. Rozhodně ne v porovnání s člověkem. Myšlení je totiž ze všech schopností tou nejnáročnější!

 

Umělá inteligence, strojové učení a hluboké učení

Termíny umělá inteligence, strojové učení a hluboké učení působí na první pohled podobně. Ve skutečnosti jde o termíny s různou mírou obecnosti. Hluboké učení je podskupinou strojového učení a strojové učení je podskupinou umělé inteligence. To znamená, že každé strojové učení je umělou inteligencí, ale ne každá umělá inteligence je strojovým učením. Jasné?! Ne? Tak pojďme hlouběji...

 

Stará dobrá umělá inteligence

Asi nejjednodušší způsob vytvoření umělé inteligence spočívá v užití podmínek, tzn. IF-THEN tvrzení. KDYŽ je podmínka pravdivá, POTOM dělej toto. Nevýhodou tohoto systému je, že je dopředu určen a nic se neučí. Často je taková inteligence používaná ve hrách. Dokáže být pořád docela silná a porážet lidi v šachách, ale jakmile se jednou objeví slabina, dá se zneužívat znovu a znovu. Stroj se nepoučí. Pro úpravu je potřeba člověk.

 

Když se stroj učí

Strojové učení už je sofistikovanější podskupinou umělé inteligence. Při vystavení novým informacím se dokáže adaptovat. Takový stroj je tím schopnější, čím více zkušeností (dat a iterací s nimi) získá. Takto v roce 1959 Arthur Samuel vytvořil program, se kterým začal hrát dámu. Na začátku to počítači příliš nešlo, ale postupně se hrou učil, až nakonec autora porazil. Program se stal schopnějším než tvůrce, což by tvůrce sám nedokázal postihnout IF-THEN výroky. Posléze tento stroj začal porážet nejlepší hráče dámy.

Takový program funguje tak, že hádá. Na začátku nic neví, tak něco zkusí. Potom změří chybu, jak moc se domněnka liší od skutečnosti. Pak zkusí znovu. Změří chybu. Takto pokračuje a zkouší a zkouší, až už nemůže naměřit menší chybu.

 

Učíme se hluboce

Hluboké učení se snaží napodobit fungování neuronů tvořících neuronové sítě. Jeho specifikem je velké množství datových vrstev. Výstup každé vrstvy je vstupem vrstvy další. Příkladem může být zpracování obrázků, kdy jedna vrstva rozpoznává hrany a následná je z hran schopná určit, zda jde o text, nebo třeba o nos. Takovou informaci pak předá vrstvě, která dále zpracovává daný typ dat.

Hluboké učení přináší neuvěřitelné výsledky, ale je potřeba počítat s obrovskou výpočetní náročností. Kvůli těmto úkolům se vyvíjí nový hardware, zejména grafické karty, které si s hlubokým učením dokáží poradit.

 

Odměnový systém

Jak stroji emulovat myšlení? Robot v sobě nemá zakódovaný pud sebezáchovy a řadu dalších pudů, které by ho motivovaly. Neřeší pohodlí, hlad a jiné věci, které jsou vlastní každému žijícímu tvoru na Zemi a které ho ženou dál. Tuto motivaci mu musí dát programátor. Ale který pud má být primární? Má být naprostý altruista? To by moc dlouho nevydržel, protože i malé zvýhodnění druhého (třeba podání upadlé plastové lžičky) by jej mohlo stát vlastní existenci (lžička spadla do řeky).

Dobře, nemá tedy být úplně altruistický, ale jak moc? Zase nemůže být úplný sobec, to by bylo nebezpečné pro lidstvo a z dlouhodobého hlediska i pro něj samotného. Ukazuje se, že se z prostého programování robota posouváme do poměrně hlubokých filozofických otázek, na které nemáme odpověď ani my sami, natož abychom tuto hodnotu zakódovali do jádra stroje.

Tento způsob uvažování se postupně rozvinul do odměnového systému, kde se nastavují podmínky, kdy něco získáme a něco ztratíme, a stroj mnoha iteracemi dojde k nejlepšímu řešení na základě dodaných odměn/trestů za dané kroky. Je to člověk, kdo definuje odměny a tresty, ale dále je už na stroji, jak dosáhnout co největšího množství bodů. Takto lze definovat variabilní úkoly se širokou škálou cest, kterými stroj musí projít k nalezení nejlepšího řešení. Proto je strojové učení spojeno s velikým množstvím iterací, aby se stroj naučil novou dovednost. Jakmile se dovednost naučí, lze ji snadno převést na další stroje.

 

Zvědavost

Jedna z klíčových hodnot, kterou stroj může mít, je zvědavost. Stroj je odměňován za objevování nových informací i za cenu rizik s tím spojených. Zvědavost umožňuje překonat předchozí zkušenosti a znalosti a objevit nová a lepší řešení. Kdyby nebylo zvědavosti, stroj by se spokojil s prvním slušným řešením a dál by se nevylepšoval. Zvědavost je klíčová zejména ve chvíli, kdy není v okolí žádný měřitelný stimul – žádný trest či odměna. Není nic, od čeho by byl stroj odpuzován nebo k čemu by byl přitahován. V tu chvíli by stál na místě bez jakékoliv motivace situaci změnit. Pokud ale stroj odměníme za změnu, začne hledat nové oblasti bez ohledu na jakoukoliv jinou motivaci.

Na druhou stranu může zvědavost představovat i určitou past. Ve chvíli, kdy je stroj vystaven silně měnícímu se objektu, zůstane u něj zaseknutý. Může jít třeba o film na televizi, která představuje potenciál k zaseknutí i pro člověka. Jde kupříkladu o nudnou slideshow nebo prostý šum. Šum je něco, co se výrazně mění (odměna za změnu pro stroj), ale neposkytuje novou informaci. Lidi toto poznají, ale stroj má s podobnými situacemi problém. Podobně může jít o glitche ve hrách, které si takto definované algoritmy vyloženě oblíbily a na nich zůstávají zaseknuté. Proto se i odměna za zvědavost musí definovat pečlivě (v tomto případě tak, abychom nezaměnili překvapení a zvědavost).

 

Zvětšování obrázků

Jistě to znáte z kriminálních seriálů. Máme záběr z bezpečnostní kamery, detektiv poručí jej přiblížit a zaostřit a z odrazu oka vyčteme poznávací značku projíždějícího auta mimo záběr. Ve skutečnosti to není možné. Kde informace není, tam se nedá nic dělat… Anebo dá? Video níže ukazuje, jak přidat detaily do obrázku s nízkým rozlišením. Umožní nám to přečíst poznávací značku v odlesku očí? Rozhodně ne správnou. Ale v tomto případě je stroj schopen si detaily domyslet. Obličej vypadá poměrně uvěřitelně, je v něm rozhodně více detailů, než těch pár původních pixelů naznačuje. Ale data jsou domyšlená a neodpovídají realitě, jsou jen uvěřitelně vypadající.

 

NVIDIA GauGAN – doplňování detailů krajiny

Neumíte malovat, ale chcete vytvořit realistickou krajinu podle svých představ? Tak i tam hluboké učení přináší řešení. Na základě jednoduchých malůvek program GauGAN od NVIDIA domyslí realisticky vypadající krajinu. Program generuje mnohdy velice přesvědčivé výsledky.

Můžete si ho vyzkoušet zde: http://nvidia-research-mingyuliu.com/gaugan

 

Umělé obličeje

Zajímavou oblastí je vytváření úplně umělých obličejů. Dnes se potýkáme s GDPR, a přesto chceme nějaký obličej na svůj produkt. Ideálně tak, aby nás ten obličej, respektive jeho vlastník, nežaloval. Strojové učení tento problém elegantně vyřeší. Jdete na stránky https://thispersondoesnotexist.com/ a obličej si necháte vygenerovat a víte, že takový obličej neexistuje. Pro ukázku si pusťte toto dvanáctihodinové video a 40 000 umělých obličejů, enjoy! :)

 

Deepfakes

Fenomén deepfakes dnes hýbe internetem. Diskutuje se o jeho zneužitelnosti a vrhá další stín pochybností na to, čemu lze dnes vlastně věřit. Jde o metodu projektování obličeje na video jiného člověka. Donedávna se podobná věc řešila ve vizuálních efektech nebo jako statická retuš ve Photoshopu. Deepfakes se dnes používají spíše satiricky a k vyvolání otázek o umělé inteligenci.

 

Rozpoznávání objektů z obrázku/videa

Jak jsme mohli vidět, generování realisticky vypadajících výstupů strojovému učení jde. Jak je na tom s rozpoznáváním? Problematika rozpoznávání je komplikovanější, než se na první pohled může zdát. Je to zároveň klíčová funkce pro mnoho oblastí, kde se umělá inteligence používá. Vznikají jednotlivá řešení, která dokáží identifikovat typy objektů. Klíčové je toto rozpoznávání například pro autonomní auta, aby systém rozpoznal, kde je silnice, kde je člověk a kde jsou další auta.

 

Google rezervace

Představte si, že máte osobního asistenta, který vám zarezervuje kadeřníka. Asi si dokážete představit program, který vám to zařídí elektronicky, ale co když daný obchod nemá online rezervaci? Dnes už umělá inteligence dokáže na dané místo zavolat a domluvit rezervaci, a dokonce vyřešit nepřesnosti a komplikace takové rezervace. Navíc lidský protějšek ani nepozná, že s ním mluví stroj.

 

Simulace přirozeného výběru

Strojové učení může být užitečné i na oblast simulací k ověření hypotéz. S použitím Unreal Engine vznikla série simulující přirozený výběr. V této sérii se testují různé hypotézy a scénáře, například jak je altruistické stvoření schopné přežít a za jakých podmínek.

Altruismus vs. sobectví

 

Test hry na schovávanou

Dalším zajímavým úkolem byla prostá hra na schovávanou. Jedna strana chtěla najít druhou a druhá se chtěla schovat. Zde bylo zajímavé sledovat, jak po mnoha cyklech stroj došel k rozumným řešením. Simulaci ovšem nechali běžet dále a stroj začal používat další, sofistikovanější metody, které už člověku nebyly zřejmé. Program dokonce objevil chybu v prostředí a dokázal jí náležitě využít, což zase vedlo k reakci z druhé strany.

 

Stroje se učí hýbat

A jak to vypadá, pokud necháme stroj vymyslet, jak se pohybovat a překonávat překážky? Legračně, ale překážky překoná. Pohyb nelze nazvat přirozeným, ale cíl splní.

Rozdíl nastane ve chvíli, kdy propojíme strojové učení s předem danou animací, kterou se učí a popřípadě imituje. Pohyb je pak velice přirozený a je schopen adaptace podle prostředí a daných podmínek.

Animace ve hrách je standardně řešena mícháním různých animací v závislosti na vstupu uživatele. To ovšem způsobuje klouzání nohou nebo poletování nad povrchem. Navíc je animace často nastavena na předem dané výšky (stojící, skrčený, ležící). I tak obsahuje hra obrovské množství animací, které se mezi sebou míchají. Oproti tomu řešení animace pomocí strojového učení poskytuje flexibilní a přirozeně vypadající pohyb herních postav. Postavy překonávají nerovný terén a vyrovnávají se i s překážkami.

Pohyb v dokonalém digitálním světě je jedna věc, ale pohyb v reálném světě je úloha mnohem komplikovanější. Pravdou ovšem je, že tuto problematiku již dlouho řeší Boston Dynamics. V jednom z posledních videí ukazují, jak své roboty nechají hrát fotbal:

 

Strojové učení dnes přitahuje velké množství pozornosti. Je klíčovým středobodem, kdy veškeré motorické, pohybové a senzorické schopnosti začínají dávat smysl. Na základě senzorů stroj pozná, co je před ním, a na základě předchozích zkušeností ví, co s daným předmětem dělat, a pokud ne, tak to zjistí. Samotný pohyb se stává efektivnějším se schopností udržet rovnováhu a volit efektivnější trasy.

 

Se vším dříve uvedeným vyvstává morální otázka, jestli a případně kdy nad námi stroje převezmou vládu. Skutečností ovšem je, že motivaci do strojů dávají lidé. A navzdory tomu, jak jednoduché je věřit, že stroje můžou mít vědomí, jakákoliv katastrofa způsobená strojem je zodpovědností člověka, který ho stvořil. Naše volná série na téma robotiky tímto končí a doufám, že pro vás můj vhled do světa strojů byl zajímavý a přínosný.