Líný přístup k řešení problémů může být velmi efektivní, říká Pavel Surynek

Jaké je vědecké bádání na poli umělé inteligence? Jak se pracuje na prestižní univerzitě v Japonsku? Co je to líná specifikace problému? Budou studenti ve výuce pracovat s roboty? Na tyto a mnohé další otázky odpovídá vědec Pavel Surynek z katedry aplikované matematiky v dvoudílném rozhovoru pro časopis Buď FIT. Přinášíme vám jeho první část pojednávající o minulé i současné vědecké práci Pavla Surynka a jeho mezinárodních zkušenostech.

doc. RNDr. Pavel Surynek, Ph.D. je od roku 2018 vědeckým pracovníkem na Katedře aplikované matematiky FIT ČVUT, kde se zabývá výzkumem zejména v oblasti multiagentního hledání cest. Přednáší také předměty BI-ZUM (Základy umělé inteligence), NI-UMI (Umělá inteligence), PI-NSV (Neuronové sítě a výpočetní inteligence) a PI-PRO (Plánování v robotice). Před příchodem na FIT působil na Matematicko-fyzikální fakultě Univerzity Karlovy a na Kóbe University v Japonsku.

Jak jste se dostal k informatice, resp. k umělé inteligenci?

To je zajímavý příběh, který začíná v dětství. Vždycky jsem se zajímal o počítače, chtěl jsem počítač, aniž bych pořádně věděl, co to dělá. Něco mě k tomu přitahovalo. Začínal jsem na 8bitových počítačích. Snažil jsem se učit programovat, zejména hry, to mě strašně bavilo. Potom se to začalo promítat i do studia, nějaké počítače jsme měli i na základní škole, navštěvoval jsem nějaké kroužky, ale z nich si člověk moc neodnesl – základy programování, které se tam dělaly, už jsem v podstatě uměl.

Potom na střední škole, tam už to bylo trochu vážnější a zajímavější i s ohledem na to, co dělám teď. Tam jsem začal s počítačovou grafikou. Tu už jsem dělal, dalo by se říct, vážně, začal jsem programovat v C/C++. Počítače v té době byly velmi pomalé a bylo třeba programovat co nejefektivněji. A z programovacích jazyků tomu bylo nejblíže C/C++, což platí dodnes, i když dnes už se to trochu stírá, hardware je výkonnější. Na počítačové grafice mě fascinoval třeba fotorealistický rendering, jaká je za tím matematika. Když jsem to viděl někde v časopise, připadalo mi to jako kouzlo, že se něco takového vůbec dělá na počítači, a snažil jsem se to zvládnout. To se nějaký způsobem podařilo, někdy na gymnáziu jsem vytvořil fungující ray tracing, takže mi připadalo, že jsem toto „kouzlo“ vlastnoručně zvládnul, což pro mě bylo fascinující. Je ale krásné sledovat pokrok ve vývoji techniky. Kdysi se nějaká malá scéna renderovala klidně celý den a noc. Dnes tohle máme v reálném čase, což je úžasné.

[1] Ukázka grafické tvorby Pavla Surynka z roku 1998.

Takže na střední škole to byla grafika a od ní jsem potom na vysoké škole začal s umělou inteligencí. Čím to bylo motivované? Chtěl jsem nějak pochopit, jak počítač přemýšlel. Pořád jsem si neuměl představit, co se za velmi lákavým titulkem umělá inteligence skrývá. A to tehdy ještě nebyl tak lákavý titulek jako teď, tehdy to bylo úplně okrajové téma. Ale věci, co tam byly, mě skutečně zajímaly – jak hrát šachy, jak automaticky vyřešit nějakou úlohu, jak to udělat, aby počítač automaticky uvažoval. A pak si pamatuji, že jsem byl na programátorské brigádě, kdy jsem o prázdninách dělal softwarového vývojáře. Vyplňovali jsme úvodní dotazník – firma asi chtěla prozkoumat, co lidi zajímá. Byla tam otázka, o jaké technologii si myslíme, že je nebo bude určující. Kolegové tam psali třeba PHP, web, takové věci, co se doopravdy dělaly. A já jsem napsal „umělá inteligence“. Tehdy vlastně nikdo moc nevěděl, co to je. Připsal jsem poznámku, že bude určující asi za 20 let. A oni si říkali: „To je blázen.“ Uplynulo 20 let a máme to tady.

Když jste šel na studia na Matfyz, tak už jste věděl, že chcete dělat umělou inteligenci?

To ještě ne, ten přechod byl postupný. Umělou inteligenci jsem začal brát vážně až na vysoké škole s tím, že v prvním ročníku ještě převažovala grafika. Měl jsem pocit, že v grafice jsem prozkoumal všechny technologie, které byly v té době k dispozici. No a jako další téma se mi líbila umělá inteligence.

Zmínil jste brigády, jaká to pro Vás byla zkušenost?

Byla to výborná zkušenost, setkal jsem se s tím, jak se dělá software profesionálně. To jsem předtím nevěděl a dostalo mě to do kontaktu s tím, jak to udělat, aby byl software dobře otestovaný, aby bylo všechno odladěné – do produkčního mechanismu, jak se software vytváří. To, že si to dokážu představit, mi pomáhá dodnes – že nejsem čistě akademický člověk někde ve skleníku na akademické půdě a vůbec nevím, jak funguje praxe. Procesy v praxi se sice od té doby vyvinuly, ale živý kontakt jsem s nimi měl. Po studiích jsem potom na čas akademickou půdu opustil a pracoval jako software vývojář na plný úvazek.

Přišel jsem tam do styku nejen s čistě softwarovými záležitostmi, ale i s programováním pro speciální typy hardware. Nejen pro klasické počítače, ale i pro nějaký zjednodušený počítač, který má místo standardních nějaké speciální periferie. Navíc se v jedné z těch firem sešel talentovaný tým programátorů, který se ve volném čase zabýval tvorbou her, což bylo blízké tomu, jak jsem programátorsky začínal. Profesionálně se dělaly nějaké komerční projekty, ale my jsme pak dost času trávili diskuzemi, jak naprogramovat nějakou super rychlou rutinu, aby se vykreslil nějaký obrázek o frekvenci 30 FPS, jak to matematicky udělat, aby se nemuselo počítat celé to ohromné množství matematiky pro vykreslení scény. Vypočítat to všechno přesně by počítač nezvládl, to by nebylo 30 FPS ale 1 FPS. Musely se udělat triky, že se to ošidí a bude se počítat něco úplně jiného. Ono to pak jen vypadá, že se to spočítalo dobře, ale ve skutečnosti je to nepřesné. To mě velmi bavilo, ta práce, ty diskuze. Myslím si, že i pro akademické působení mi to hodně dalo.

Co Vás pak přimělo k návratu na akademickou půdu?

Při práci jsem pokračoval ve výzkumu toho, co jsem dělal v diplomce (Řešení dynamických problémů s podmínkami, plný text práce zde). Ukázalo se, že ty věci jsou docela dobré, a že by se daly publikovat. O publikování jsem tehdy měl jen mlhavou představu, protože jsem sice při psaní diplomové práce sbíral články, ze kterých jsem čerpal, ale sám jsem nikdy nepublikoval. Zabýval jsem se dynamickými problémy v CSP (Constraint satisfaction programming). To jsou problémy, které se mění pod rukama – uživatel nebo program přidává nová omezení. Řešící algoritmus by na to měl reagovat tak, aby stále poskytoval řešení aktuální měnící se úlohy s tím, že úloha se při každé změně neřeší vždy od začátku, ale dořeší se vždy jen aktuální změny. Autoři článků, ze kterých jsem čerpal, mi připadali jako tak vzdálení lidé, že jsem měl pocit, že jejich úrovně nikdy nemůžu dosáhnout. Napsal jsem článek, který se podařilo publikovat na konferenci CP (Principles and Practice of Constraint Programming). Tato konference je velmi prestižní, ale já si tu prestižnost tehdy vůbec neuvědomoval. I dnes bych byl rád za publikaci na CP. Tehdy jsem to dal na první pokus, prostě se to povedlo. Při práci jsem tedy zjistil, že ten výzkum mi asi jde, tak jsem ho potom zkusil naplno, to znamená, že jsem šel na doktorát.

Takže jste studium na pár let přerušil praxí a pak jste se rozhodl pro doktorát…

…a to si myslím, že je vynikající. Člověk si ozkouší praxi a řekl bych, že pak si tu vědu jde i víc užít – je tam pěkný kontrast. Ale jít rovnou na doktorské studium, to bych asi osobně nechtěl.

Když jste studoval doktorát, podíval jste se i někam do zahraničí?

To bylo až když jsem pracoval jako odborný asistent na Matfyzu. Podařilo se mi získat stáž, která byla financovaná agenturou GSPS, což je japonská obdoba GAČR (Grantová agentura České republiky, pozn. red.) Tehdy byla alokována 2 místa pro Českou republiku. Přihlásil jsem se a jedno z těch dvou míst jsem dostal. Ale musel jsem pro to něco udělat. Myslím si, že jsem to místo získal díky tomu, že už jsem měl s Japonskem zkušenosti – byl jsem tam předtím na nějakých konferencích a skupiny, ve kterých jsem chtěl působit, jsem už měl kontaktované, ty lidi jsem znal, takže mi snadno poskytli doporučující dopisy. Asi si mysleli, že dát to místo mně byla bezpečná volba.

Kde jste potom působil a čím jste se zabýval?

Bylo to na univerzitě v Kóbe, kde je silná skupina, která se zabývá tvorbou řešičů pro výrokovou splnitelnost – SAT solvery. Ta skupina je docela silná, vytvářejí řešič Sugar. Já jsem se trochu zabýval výrokovou splnitelností, ale přibližně v té době jsem objevil i téma multiagentního hledání cest. Během stáže mě napadlo, že zkombinuji řešení splnitelnosti a SATu, což se nakonec ukázalo jako velmi úspěšná technika, která je dodnes silná, řada lidí se mými řešiči dodnes inspiruje. Pochází to z této doby, z let 2011, 2012.

Jak se podle Vás liší akademické prostředí v Česku a v Japonsku, jaká je tam pracovní nebo akademická kultura?

Řekl bych, že se liší velmi. Vlastně obecně mi Japonsko připadá slabší v teoretickém bádání i vzdělávání, ale daleko silnější v praktické orientaci. Oni skutečně umí proměňovat věci v praktické výsledky. Myslím si, že i studium tomu trochu odpovídá, protože velká část je práce v laboratoři. Studenti jsou během studia přiděleni do laboratoře, kterou vždy vede nějaký profesor, má tam skupinu třeba 10 studentů a jejich práce je opravdu hodně orientovaná na to, že pracují v laboratoři, řeší tam zadání, společné projekty, pracují na svých absolventských pracích, ale je to hodně integrované do skupiny, hodně se během práce setkávají. U nás je převaha toho, že se chodí na přednášky, v Japonsku je převaha toho, že se chodí do laboratoře a pracuje se tam. Mají k dispozici např. nějaký speciální hardware, mohou si tam dělat pokusy, což se mi líbí. Možná by bylo dobré toto trochu přenášet i k nám – podporovat laboratoře, abychom se i my více setkávali, měli víc vzájemné interakce. Myslím si, že je to i dobrý trénink pro praxi, lidé si mohou odnést kontakty už ze školy, kde už si natrénovali spolupráci. Pak to může vést k založení nějakých startupů. Například Spojené státy jsou v takovém budování kontaktů velmi silné, i když oni nemají tolik laboratorní práci, jako spíše univerzitní kluby.

Dohánějí pak v Japonsku teorii později, třeba na doktorátu, než se pustí do publikací?

Já si myslím, že otázka zabývání se teorií má kulturní kořeny. Musíme si uvědomit, že jako Evropa, zejména střední a západní Evropa, jsme úplně jinak kulturně založení. Je třeba si uvědomit, že Japonsko nezažilo renesanci, nezažilo baroko. My si to ani neuvědomuje, ale máme to strašně silně zakořeněné. Teoretické bádání tady ve střední Evropě a třeba v Německu hodně vychází z baroka, takové podávání správných argumentů pro myšlenky, dobře argumentovat, to je (překvapivě!) barokní záležitost. V té době totiž byl takový kontrast mezi protestanstvím a katolictvím, které se vymezovaly navzájem vůči sobě a bylo třeba pořádně argumentovat. Dalším obdobím, které bylo impulzem k vědeckému bádání, je renesance. V Japonsku skočili v podstatě z feudálního systému, ze středověku, do moderní doby. A vzali si z toho jen ty věci, které potřebovali pro rozvoj, pro expanzi, na začátku bohužel vojenskou. To se nakonec přetavilo v mírový, v civilní výzkum, ale ten prvotní impulz byl zprvu vojenský.

A jak funguje tamní pracovní kolektiv? Je výrazně odlišný od našich poměrů?

Ano, je výrazně odlišný. Je tam obrovská autorita vedoucího profesora. Tady (ukazuje ve vzduchu) na tomto stupínku jsou studenti, pak je několik stupínků takhle výš, výš a tam někde nahoře je ten profesor, takže běžní členové týmu jsou úplně podřízení, naprosto poslouchají. To může vést i k určité neefektivitě, že třeba své nápady neprosadí, na druhou stranu profesoři by tam měli být schopni poskytovat dobrá témata a jsou v daleko intenzivnějším kontaktu se svou skupinkou, než je běžné třeba u nás. Profesor se tam doopravdy stará o svou laboratoř, denně je se studenty v kontaktu, jako by byli jeho třída. Denně s nimi interaguje, kontroluje jejich práci, zadává úkoly a studenti se ve vzájemné interakci rozvíjejí. Velká podřízenost tam ale přetrvává. Někdy, když na konferenci vidím japonského školitele a jeho doktoranda, tak si říkám (s náznakem úsměvu), jestli náhodou ten školitel doktoranda nebije, když zkazí prezentaci, a že ten doktorand je takový uťápnutý a podřízený. Ale vědecké výsledky samozřejmě mají.

A Vy jste měl taky nějakého, řekněme trochu despotického vedoucího, nebo…

Ne, měl jsem velmi hodného vedoucího, vybral jsem si velmi příjemného člověka. To se asi nedá říct, že jsou vedoucí despotičtí, ono to vychází z jiného kulturního zázemí. Můj vedoucí profesor Katsutoshi Hirayama je v kontaktu s celým světem, působil ve Spojených státech, je nasáklý západní kulturou, takže komunikace s ním pro mě byla velmi snadná. Lidé v japonské společnosti jsou k sobě velmi přísní a až tvrdí. Takový příklad: v Kóbe tehdy stavěli visutou dráhu pro vlak, aby odstranili úrovňový přejezd a vybudovali mimoúrovňové křížení. A na tom přejezdu byly závory, u kterých navíc pracoval člověk, který ještě pro jistotu před spuštěnými závorami zastavoval auta. A byl tam za každého počasí, za letního žáru stál venku na slunci celý den. Vždycky jsem kolegům říkal: „Tohle je strašně kruté, ho tam nechat stát.“ A oni se divili, na co se to vůbec ptám, že je to úplně normální. Já si zase říkal, že to je strašné, takhle pořád stojí na slunci, práce je to hrozná, že vlastně kontroluje, jestli je závora dole. Ale kolegové tvrdili, že je to kvůli bezpečnosti a vůbec nechápali, na co se to ptám. Dále v Japonsku často potkáte člověka, který ovládá výtah. Představte si, že tady na fakultě byste přišel a nahlásil někomu, tomu „ovladači“ výtahu, do jakého patra chcete jet, a on by jen zmáčknul číslo.

[2] Pavel Surynek, Katsutoshi Hirayama a studenti.

To je docela dobře, že tady není, protože za dob prezenční výuky by byl ušlapán. Když se teď přesunu víc do současnosti, čemu se věnujete teď?

Aktuálně skrz multiagentní hledání cest přecházím do oblasti plánování pohybu pro roboty, hlavně pro případ, kdy je robotů velmi mnoho a musí se vzájemně koordinovat a vyhýbat se, něco jako kdyby se mezi sebou museli bezkolizně proplétat (ukázkové video zde). Multiagentní hledání cest samotné je jen velmi základní forma tohoto problému. Jde o to, že roboti se přesouvají z počátečního místa do cílového místa a vzájemně se musí vyhýbat. Čím hustší ta situace je, třeba ve skladišti, kde se motá spousta robotů, tím je vyhýbání složitější. A situace, kdy máme nějakého obecnějšího robota, třeba jen robotické rameno, které plní složitější úkol, na kterém pracuje více robotů, a tedy je na jednom místě koncentrováno více robotických ramen, tak to se dá chápat jako zobecnění multiagentního hledání cest, které mě zajímá.

Navíc, když přecházíme k reálným robotům, tak začne velkou roli hrát spojitost reálného světa. Teoretické modely plánovacích procesů se dost často odehrávají v dost abstraktním diskrétním světě, který má do toho skutečného hodně daleko. To vypadá tak, že roboti nebo obecně fyzické objekty skáčou v bludišti z bodíku na bodík. Prostě zmizí a objeví se o kousek vedle. Což není realita, to je sice možné někde hodně hluboko v kvantovém světě, ale na naší makroskopické úrovni tomu tak není, věci se z místa na místo přesouvají plynule.

A teď je otázka, jestli se dá plánovat v tomto diskrétním světě a plynulý pohyb doplnit až při přechodu do reálného světa, nebo jestli by se nemělo myslet, plánovat a rozmýšlet rovnou ve spojitém světě. Samozřejmě obojí má své výhody a nevýhody, v diskrétním prostoru je to jednodušší a rychlejší, ale výsledný plán není tak přesný, dokonce může být neoptimální. Optimalitu nedokážeme zajistit, ztratíme ji při přechodu do spojitého světa. Zatímco kdybychom rozmýšleli rovnou v něm a chtěli mít optimální řešení, tak ho zachováme – jsme od začátku ve výsledném prostoru, rovnou v něm najdeme optimální řešení. To je ovšem daleko složitější, počítačové myšlení ve spojitém prostoru je náročné. Výsledný plán je pak ovšem přesný, robot ho může rovnou vykonat. Tímto se tedy zabývám, o něco se snažím, něco se daří, něco ne. A zase se to trochu vrací k počítačové grafice, ve které se také vyskytuje spojitá geometrie, dokonce bych řekl, že úplně stejná jako geometrie plánování ve spojitém prostoru.

Jaký je Váš největší úspěch na tomto poli?

Řekl, že se povedly dvě věci. Jedna byla úplně na začátku, když jsem s tématem hledání cest začal. To byl algoritmus BIBOX, polynomiální algoritmus, který vyřeší multiagentní hledání cest. Je sice neoptimální, to při polynomiálním čase ani jinak nejde. Ale jinak je velmi rychlý. Považuji to za jeden z nejlepších výstupů, co jsem udělal. Je také nejcitovanější. A myslel jsem si, že už pak nic nemohu vymyslet, že to nepřekonám. Ale stalo se. Nedávno mne napadla taková věc, že by se problémy mohly formulovat líným způsobem, což znamená, že problém nespecifikujeme přesně, jenom nadhodíme nějakou přibližnou specifikaci a zkusíme vyřešit pouze takto specifikovaný problém. Zkoušíme, jestli máme štěstí, jestli se náhodou nepodařilo problém vyřešit přesně. A když vyřešený není, tak ho trochu dospecifikujeme, přidáme omezení, zpravidla ta, která byla porušena. Tato porušení vlastně zakážeme. A zase to předhodíme řešiči, který nám něco vrátí, možná budeme mít štěstí, možná ne. Ale typicky máme štěstí velmi brzo, což je skvělé a je to docela úspěšná věc. Dá se to používat obecně, nejen na multiagentní hledání cest, byť pro tento problém je přirozené, že ho řešíme tak, jako kdyby se agenti vzájemně ignorovali. Najdou si nějaké cesty od začátku do konce, podíváme se, jestli se náhodou nesrazili, a tuto srážku zakážeme. Finta je v tom, že nemusíme specifikovat, že zakazujeme úplně všechny srážky, které by kdy mohly nastat, ale máme krásnou malou formulaci, která se dá vyřešit velmi rychle. Na tuto techniku jsem přišel až v pozdní době, nedávno, přibližně v době nástupu sem na fakultu (2018, pozn. red.)

Pokračování příště.

Foto:
[1], [2] archiv Pavla Surynka

Matěj Latka

Na FITu studuji třetí ročník a krom školních povinností a strojového vidění se věnuji například sborovému zpěvu, hře na housle nebo výuce lyžování. Když zrovna není koronavirus, sbalím v létě batoh nebo nafoukám kolo a prozkoumávám různá zajímavá místa v Evropě. Kontaktovat mě můžete na latkamat@fit.cvut.cz.