Zhodnocení třetího semestru na FIT VUT: obor MITAI NIDE

Po půl roce jsem tu znovu s reportem z dalšího semestru. I přes stále probíhající pandemii koronaviru se učilo prezenčně, což byla docela příjemná změna. Jinak byl ovšem semestr tak „normální“, jak jen mohl být a největším zážitkem byla ranní ledovka, která v prosinci zablokovala celé Brno :).

Co se týče skladby předmětů, letos se mi povedl asi nejlepší mix – tandem Teorie her (THE) a Agentní systémy (AGS) se skvěle doplňovaly, zvlášť v kombinaci se SFC – Soft computingem. Kde THE poskytla teorii, tam AGS rovnou poskytly praktické uplatnění a SFC byl druhý pohled na to, jak by šla daná věc řešit. Další dva předměty byly SEM (Senzory a měření) a HSC (Hardware-software codesign). Tohle byly spíš HW předměty, SEM bylo takové bastlení od 7 ráno, HSC docela zajímavá uázka toho, že progamování FPGA se od psaní kódu v C může lišit méně, než by člověk čekal. A Semestrální projekt už byla už jen formalita do počtu.

THE – Teorie her

Asi nejtěžší předmět tohohle semestru, hlavně kvůli jeho teoretičnosti (což teda říká už název, takže koho by to překvapilo). Doktor Hrubý je na teorii her opravdu odborník a po pedagogické i odborné stránce předmětu nejde vytknout vůbec nic – přednášky byly záživné a, což se nestává moc často, i teorie šla pochopit.

A co že to vlastně ta teorie her je? Velmi jednoduše, je to matematická disciplína, která pomocí pojmu „racionalita“ definuje, jak spolu budou budou interagovat dva jedinci. Nebo také více jedinců. Nebo dokonce jen jeden jedinec, kde roli druhého zastupuje prostředí. Celkově operuje s pojmem „racionální chování“, což ve zkratce znamená „chovat se tak, abych z toho měl užitek“. Hra je potom jakoukoli interakcí.

V předmětu se postupně probírají různé typy her, aukce, volby, nebo taky evoluční teorie her. Celkově dá předmět člověku zajímavou perspektivu, z jaké posuzovat chování. Jen se občas stane, že z toho chytnete depresi (zkuste si vyhledat „Tragedy of the commons“ neboli „Zkázu obecní pastviny“).

Projekt byl ve stylu „Vytvořte práci na téma teorie her nad rámec přednášek.“. Ano, toto bylo +- celé zadání. Já si vybral téma „Teorie her v robotice“, kde jsem v „článku“ analyzoval současný stav a použití teorie her v řízení robotů. Zkouška ničím nepřekvapila a byla typově stejná jako minulé roky. Doktor Hrubý má obecně rád formální vyjadřování (zvlášť tam, kde napíše „formálně“), ale když s tím člověk počítá a naučí se definice ideálně tak, aby jim skutečně rozuměl a ne si jen pamatoval vzoreček, pak s tím zpravidla nemívá problém.

Výsledkem bylo mých prvních 100 bodů z normálního předmětu a A.

AGS – Agentní systémy

Každý zná klasické strukturované programování i OOP. Agentní (a multiagentní) systémy jsou další způsob, jak se můžeme koukat na tvorbu software (a ani zdaleka to není jenom to). Celý kurz se věnuje agentům – autonomním programům, které vykonávají nějakou činnost. Představte si to tak, že svému objektu dáte kromě metod a proměnných taky cíle a určitou autonomii v jejich dosahování. Pokud to někomu začíná připomínat roboty, připomíná vám je to správně, agentni se dají chápat i jako nějaká software verze robota – jen se nemusí řešit kinematika a podobné věci.

Kurz vede doc. Zbořil mladší, jeho přednášky jsou docela záživné, zábavné a občas lehce zmatené. 🙂 Z konkrétních probíraných témat můžu zmínit hlavně BDI agenty, kterým se doc Zbořil věnuje i v rámci výzkumu, nebo třeba JASON, což je framework pro programování právě BDI agentů. A nebyl by to doc. Zbořil, aby v předmětu nebyl Prolog – schovaný právě v JASONu, což je jen „takový speciální Prolog“. Ani zdaleka to ale není hlavní náplní kurzu, takže pokud jsem vás navnadil agenty a Prologem zase odradil, není třeba se bát, tak zlé to nebude.

Projekt byl dost volný, já si vybral demonstraci rozdílů mezi reaktivním a proaktivním přístupem agentů v úloze Tileworld. Ve zkratce, reaktivní agenti (nebo roboti, tahle terminologie je společná) nemají žádnou mapu prostředí a reagují jen přímo na to co vidí na senzorech. Proaktivní naproti tomu mají mapy, plány a celkově se snaží udělat maximum pro splnění svého cíle.

Zkouška byla podobná těm z minulých let, nikde se neobjevovaly žádné chytáky. Poprvé jsem ale šel na opravnou zkoušku z vlastní vůle. Po prvním termínu mi body vycházely na „lepší“ C, jenže výsledky ostatních přdmětů byly o dva řády lepší a já prostě to C nechtěl. Tak jsem si na závěr zkouškového nechal anulovat první termín a šel rovnou na třetí, který se mi povedl mnohem lépe, na A (zcela upřímně, může za to více náhoda než um).

SFC – Soft computing

Název tohohle kurzu je tak nějak sebevysvětlující. Probírají se zde přístupy k výpočtu, kdy není třeba nejlepší/přesný výsledek, ale „good enough“ výsledek stačí. V první polovině semestru se probíraly hlavně konkrétní typy neuronových sítí, což byla překvapivě zajímavá oblast. V dnešní době je populární přístup „deep learningu“, ML a podobných buzzwordů, což jsou všechno hluboké sítě s hromadou vrstev a obří složitostí, ale nějak se zapomnělo na hromadu dalších neuronek, které toho sice nezvládnou tolik jako nějaká hluboká síť, ale jsou daleko jednodušší, rychlejší a pro některé úlohy fungují stále velmi dobře (třeba Hopfieldova síť a problém obchodního cestujícího). Ve druhé půlce semestru se potom probírají hrubé a fuzzy množiny, chaos a další přístupy.

Předmět donedávna vedl doc. Zbořil starší, letos poprvé(?) přednášel doc. Janoušek, kterého znám už ze SIN. Jeho styl přednášení je trošku uspávající, ale nebylo to nic hrozného, zvlášť, když předmět má dobré slajdy. Na přednášky jsem chodil hlavně kvůli vysvětlení těch částí, které se ze slajdů chápou hůř, typicky nějaké příklady a podobně.

Jako projekt jsem si vybral demonstraci Hopfieldovy sítě v autoasociačním módu. Ve zkratce to znamenalo naimplementovat Hopfieldovu síť, naučit ji vzory, demonstrovat, že funguje a vše vhodně vizualizovat. Já udělal jednoduchou aplikaci v PyQt a pro rozpoznávání jsem si zvolil obrázky. Což, zcela upřímně, byla blbost. Hopfieldova síť se nejlépe hodí třeba pro čištění signálu, kde očekáváme konkrétní sekvence, kterých by si byla síť schopná zapamatovat i relativně hodně. U obrázků, zvlášť u avatarů z githubu, které jsem si vybral jako demonstrační data, se kapacita prudce snížila, jelikož jsou si všechny „dost podobné“. Princip jsem ovšem demonstroval, nízkou kapacitu vysvětlil a celkově to nebyl problém.

Zpětně předmět hodnotím jako opravdu zajímavý, zkouška, půlsemka i projekt byly hodnocené férově. Výsledkem bylo opět A. Po výsledku ze SFC jsem již začal být lehce nesvůj, těch Áček bylo nějak moc. 🙂

HSC – Hardware-software codesign

Předmět má možná trochu zavádějící název. Osobně jsem čekal hodně low level předmět, který se bude specializovat spíš na malé senzory a otázku toho, kdy se vyplatí sáhnout po HW a kdy po SW řešení. Realita byla trochu jiná a upřímně, předčila očekávání. V předmětu se vše soustředí kolem syntézy na FPGA z prakticky céčkového kódu, což mi přišlo jako něco strašně zajímavého. Člověk píše skutečně prakticky čisté C, sem tam použije speciální datový typ, přepíše smyčku tak, aby šla v HW dobře udělat, sem tam hodí #pragma a voila – FPGA obvod!

Projekty se dělají na nových kitech PynQ. Je to vlastně takové RPi s FPGA, které se dá programovat pomocí nástroje Vivado právě v jazyce C. Takže žádný FITkit a archaická virtuálka, ale normální programování, připojování přes ssh a podobně. Cílem projektu bylo udělat filtr pro histogramovou ekvalizaci (velmi jednoduše, odstraňovač mlhy :)). Celkově se jednalo o jeden z nejlepších projektů za celou dobu, co jsem na FIT. Doktor Kekely odvedl neskutečnou práci a i když byl projekt stále poměrně rozsáhlý a ne úplně jednoduchý, byl skvěle připravený, člověk přesně věděl, co se má kde dělat a nemusel ztrácet čas hledáním „proč to nejde“ a co je nejdůležitější, prakticky viděl, jak může FPGA skutečně BRUTÁLNĚ zvýšit výkon. Oproti SW řešení v Pythonu totiž kombinované HW/SW řešení běželo až 10000x (desettisíckrát, nepřeklepl jsem se) rychleji.

Zkouška byla podobná těm z minulých let, zkoušela hlavně to, co bychom si z předmětu měli odnést (jak se SW úloha rozseká a naplánuje do HW, jak se HW alokuje tak, aby to bylo rychlé a zároveň efektivní…). Výsledkem bylo další A do sbírky.

SEM – Senzory a měření

V SEM – senzorech a měření – se, nepřekvapivě, probíraly senzory a měření. 🙂 Přednášky byly v pondělí(!) od 7(!!!), takže jsem se na nich ukázal asi 4x a pak jsem na to už neměl sílu. Ze slajdů se tenhle předmět neučil zrovna nejlíp, ale aspoň to jde podle nadpisů hledat na Google. Těch pár přednášek, na kterých jsem byl a neusnul, vypadalo zajímavě, ale jelikož jsem tou dobou byl spíš květák než funkční člen společnosti, víc vám k tomu neřeknu. Obecně jde ale o měření různých veličin různými senzory, jak se dá měřit napětí, proud, průtok, teplota a já nevím co ještě.

Za projekt jsem měl s kolegou Peterem za úkol udělat takovou tu klasickou stanici, která vám v pokoji měří teplotu, vlhkost a vůbec všechno, na co zrovna najdete senzory. No, ani jeden jsme to nedělali poprvé, tak jsme to rovnou zkusili i s FreeRTOS a obecně jsme se snažili, aby to celkově nějak fungovalo. No, podařilo se. 🙂

Semestrální zkouška nebyla nijak překvapivá a její bodování, stejně jako bodování projektu, bylo opět velmi férové. Celkově další A mě už lehce vykolejilo, jelikož jsem netušil co se děje a jak jich můžu mít tolik. 🙂

SEP – Semestrální projekt

Tohle ani nebyl žádný skutečný předmět, jen obhajoba, kde jsem měl ukázat, co jsem za uplynulý semestr vytvořil na své diplomce. Upřímně, co se týče teorie, tu jsem zbastlil přes vánoční prázdniny a nejvíc jsem se zasekl u „fiducial tags“, v překladu asi „orientačních tagů“, prostě proto, že mě to zajímalo. Po praktické stránce jsem ovšem, s pomocí několika kolegů z předmětu ROBa, dokončil všech 7 robotů, kteří teď čekají v robolaborce, až je konečně oživím.

Obhajoby probíhaly bez problémů a byl to spíš přátelský pokec s akademiky. Na obhajobu jsem vzal i Trilobota, všichni se na něj chtělo podívat a celkově se nesla obhajoba v přátelském duchu. I přes to mě ale výsledné A překvapilo, zvlášť k teoretické části, u které jsem věděl, že bude chtít předělat.

Závěr

Celkově semestr probíhal ve znamení permanentního nedostatku času, zkouškové ovšem dopadlo skvěle. Poprvé na FIT mám samé A a čistý průměr 1.00. A teď mi chybí už jen poslendí věc – dodělat diplomku, pár předmětů a hůrá s Kachničkou do vitrínky! Nebo taky do 3MIT, ale to se snad nestane. 🙂

Na závěr si dovolím i jednu smutnou zprávu. Na konci semestru zemřel docent Kotásek, který vyučoval například předmět periferní zařízení (IPZ). Pamatuju si, jak nám během výkladu pořád povídal historky z profesního života, třeba jak vytvářel ovladač k tiskárně – tehdy to ale znamenalo vzít do ruky páječku a ručně vyrobit kartu, kterou by šlo připojit k počítači (tehdy velkému jako skříň). Kdo jste ho znali, vzpomeňte si na něj.

Leave a Reply

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *