Štúdium AI, NS
Počas štúdia na Vysokej škole som ešte o umelej inteligencií toho veľa nevedel. Vlastne len úplné základy. (Tak trochu závidím študentom dnešného učiva strednej školy, kde som predtým bol. Teraz už aj oni riešia priamo na SOČ témach umelú inteligenciu)
Ako však čas plynul a blížil sa čas štúdia Mgr. stupňa. Keďže som sa už cez prázdniny relatívne nudil, a hľadal som do čoho pichnúť začal som študovať aké predmety budeme mať počas nadchádzajúceho semestra. Medzi nimi som našiel aj umelú inteligenciu. V prvej chvíli ma napadlo že by sa mohlo jednať o Ai na riadenie v hernej logike, také to … schovaj sa za debničku tam ťa tí oponenti aj tak neuvidia. Avšak po vzhliadnutí videa na YouTube som vedel že sa bude asi jednať o čosi celkom iné. Keď tam ten Angličan vybalil pojmy ako synapsia, regresia a kopec matematických vzorcov hovorím si, toto vyzerá celkom zaujímavo a týka sa to IT, no hlavne je to niečo čo ešte nepoznám !
A tak aj bolo, štúdium začalo a my sme sa začali zaoberať základmi fungovania AI, predmet ma bavil vyučujúci (pán doc. Igor Černák) ho podal veľmi dobre a téma ma zaujímala čoraz viac. Vlastne kľúčové v tejto tematike bolo asi dávkovanie informácií. Ak by sa na mňa vybalilo všetko aj s tými matematickými vzorcami … ušiel by som najbližším únikovým schodiskom. Časom som sa vo voľnom čase tak letmo venoval tomu čo je v tejto oblasti nové, a ako by sa dalo s takou umelou inteligenciou pracovať na počítači.
Zistil som že existuje nejaký TensorFlow od Google a je dostupný zdarma. Keď som však uvidel kód rozhodol som sa že zatiaľ do tejto oblasti zasahovať nebudem. Po chvíli ubehol semester a bol čas voľby diplomovej práce. Naskytovali sa rôzne možnosti, pokračovať v nástrojoch na tvorbu hier ? (Unity), alebo skúsiť niečo ľahké čo sa napíše samo ? Hovorím si … áno toto je možnosť, ale je to to čo chcem od tejto školy aby prezentovala v mojej budúcnosti ? Moju lenivosť ? Unity bola taktiež cesta, ale k tomu už prác existuje taktiež dosť. Rozhodol som sa teda tou cestou, ktorá sa mi zdala najťažšia, donútiť sa pracovať s tými neurónovými sieťami, ktoré ma zaujali.
Podarilo sa mi získať tému na analýzu simulátorov neurónových sietí od nášho vyučujúceho. Toto bol štartovací bod procesu. Zozačiatku to šlo veľmi ťažko, do mobilu som si nahádzal všetky možné aplikácie s dokumentáciami pre nástroje týchto simulátorov ale akosi som sa tej obrazovke vyhýbal, vždy keď som niečo z toho otvoril pôsobilo to na mňa dosť zložito. Nakoniec som však dospel k tomu že by bolo vhodné začať poriadne pracovať a tak sa aj stalo.
V tomto období písania DP som si vyskúšal naozaj množstvo simulátorov, zistil som že niektoré sú na internete len preto že majú v popise neurónová sieť no v skutočnosti slúžili len na jednu akciu. A niektoré tu boli naozaj na to aby s nimi dokázal človek tvoriť to čo ho napadne. V tejto diplomovej práci sme tak vytvorili určitý zoznam simulátorov, ktoré chcete používať, a ktoré možno až tak veľmi nie. Dostali hodnotenie na základe vopred určených parametrov a spoločné skóre. TensorFlow a Matlab si viedli veľmi dobre.
Písanie nešlo vždy jednoducho, a vytvoril som veľmi veľa textu, ktorý sa prakticky nedal využiť v konečnej fáze práce. Bolo to už také klepkanie výstupov jeden po druhom, po diskusií so školiteľom sme to však prehodnotili a výstup ku každému jednotlivému simulátoru sme vymenili za kratší ale výraznejší, podrobnejší popis práce s tými najlepšími zo zoznamu. Času už nebolo veľa a ja som po ceste domov vlakom prepočítaval aké nasadenie treba denne vynaložiť, aby som dosiahol obnoviť obsah na niekoľko strán. Nakoniec to dopadlo tak že za týždeň som vyprodukoval za desiatky hodín náhradu pôvodného textu a nakoniec získal dostatok času na dodatočnú úlohu, ktorú sme si tak trochu prisľúbili na prezentácií diplomových prác pred vianocami.
EV3 Robot a ako doň dostať NS
Z videí na youtube to vyzeralo všetko zozačiatku veľmi lákavo, tuto stiahni toto tamto to nainštaluj vlož to tam a robot už sa učí liezť po stene. Viac klamlivú predstavu som snáď ani nemohol mať. Vyžiadalo to desiatky hodín výskumu a štúdia prostredí s ktorými EV3 dokáže pracovať. Áno existujú určité prostriedky ktoré to zjednodušia, ale … tie mi nedajú plný prístup použiť jeden z našich simulátorov. A načo sa obmedzovať keď nemusíme nie ?
Pri neskoršom už hlbšom skúmaní zákutí internetu som natrafil na jedného pána, ktorý len tak z nudy pripravil pre svoje deti možnosť napísať na počítači program v prog. jazyku Python a riadiť tak robota. Tieto príkazy teda fakt … neboli pre deti, jeho deti museli byť fakt geniálne 😅 Ale tieto kusy kódu ma posunuli o veľký kus dopredu. Prečo ? Teraz už som nepotreboval podporu procesora v EV3 robotovi, stačil mi môj intel i5 v počítači, ktorý výstup prenášal pomocou bluetooth alebo wifi do robota. získaval som výstup zo senzorov (hoc ten kód bol prakticky asembler), ale po chvíli čo som si pripravil funkcie na riadenie motorov, získavanie údajov s konkrétnych senzorov a výpisy som mal pripraveného robota na ťažšiu úlohu.
Robota teda vieme riadiť prog. jazykom Python, v akom jazyku píšeme simulátor NS TensorFlow ? Python ! Ha… a je to ! či ? nie ?
No žiaľ ukázalo sa že ideálna predstava nebola tak ideálna. Python verzie sú rôzne TensorFlow má jednu robot mal druhú a ja som mal … nápad ako skombinovať 2 Pythony do jedného … tento teda vôbec nevyšiel 👍. Každopádne TensorFlow práve vydal testovacie verzie na Python ktorý som potreboval. A tak sa to nakoniec podarilo. Času už nezostávalo veľa, programovanie funkcií zabralo nejaký čas, a tak som pripravil to čo som vedel spraviť, Dataset. Vytvoril som dáta na základe ktorých bol robot natrénovaný na posun dopredu. Jeho úlohou bolo rozhodnúť na základe datasetu, ktoré poradie nastavenia ramena je správne. To sa nakoniec úspešne podarilo a robot mal úspech aj na didaktickej súťaži v rámci Česka a Slovenska.
Čo z toho vyplýva ?
Ak ťa baví tvoj odbor, využi ho a pripoj sa aj do aktivít mimo hlavných predmetov. Niekedy ti to prinesie viac skúseností ako by si čakal/a 🙂