ŠABACKÝ, H. Zdokonalení simulace pohybu mobilního zařízení v nástroji JShelter [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2025.

Posudky

Posudek vedoucího

Hranický, Radek

Pan Šabacký k řešenému problému přistoupil odlišným způsobem než Ing. Hák, na jehož práci navazoval. Namísto fyzikálního modelu lidské postavy využil k tvorbě dat generativní adversariální neuronovou sít (GAN), která však byla, oproti původního řešení, trénována na reálných datech ze senzorových měření. Kromě testování řešení a měření spotřeby baterie své dílo navíc experimentálně srovnal nejen s původním řešením, ale také jej postavil vůči klasifikátoru, který vyvinul jeho spolužák Marek Straka. Ve více než 98 % případů klasifikátor správně rozpoznal simulovanou aktivitu, což považuji za úspěch. V současné podobě řešení pravděpodobně přímo do nástroje JShelter integrováno nebude, neboť překážkou je kompatibilita nejnovější verze JShelter s prohlížeči na mobilních zařízeních - což však ale není chyba studenta. Se starší verzí řešení JShelter funguje dílo bez problému, což jsem měl možnost osobně vyzkoušet. Realizovaný přístup pana Šabackého však považuji za velmi zajímavý a myslím, že je z výzkumného pohledu užitečné, že byl vyzkoušen. Velkou výzvou byla také integrace vytvořeného modelu GAN do prostředí webového prohlížeče s omezenými výpočetními prostředky a nutností běhu v reálném čase, což není jednoduchý úkol. Pan Šabacký nakonec tomuto účelu využil technologií ONNX a WebAssembly. S ohledem na nadprůměrnou aktivitu studenta, inovativní přístup, nutnost studia složitější problematiky i řešení netriviálních problémů (včetně zmíněné kompatibility a integrace), dále s přihlédnutím ke zveřejnění zdrojových kódů vývojářské komunitě, navrhuji hodnocení stupněm "B".

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Informace k zadání Práce souvisí s nástrojem JShelter, který je vyvíjen na FIT VUT. Cílem bylo rozšířit metody obfuskace dat ze senzorů mobilních zařízení, aby bylo zachováno soukromí uživatele, ale zároveň data působila realisticky. Práce zároveň navazuje na existující DP Ing. Marka Háka.
Práce s literaturou Student využil doporučené literatury a další relevantní zdroje si samostatně dohledal.
Aktivita během řešení, konzultace, komunikace Student byl během řešení nadprůměrně aktivní, na schůze docházel připraven a práci průběžně konzultoval. Během semestru technické detaily kolem JShelter diskutoval i s hlavním autorem nástroje, doktorem Polčákem.
Aktivita při dokončování Práce byla dokončena v předstihu před odevzdáním. Mé připomínky student následně zapracoval.
Publikační činnost, ocenění Zdrojové kódy svého řešení student zveřejnil jako Open-Source pod licencí GNU GPL v3.0 na portálu GitHub: https://github.com/hyneksabacky/mobile_device_movement_simulation
Navrhovaná známka
B
Body
81

Posudek oponenta

Polčák, Libor

Pan Šabacký se v rámci své diplomové práce rozhodl využít neuronové sítě pro generování falešných hodnot, které by měly být nerozlišitelné od skutečných hodnot poskytovaných senzory mobilního telefonu. K tomu využil sadu dat nasbíranou dříve jiným studentem. Trénovací data prošla úpravami, aniž by tyto úpravy v technické práci byly jasně popsané a aniž by se autor důkladně zabýval jejich dopadem na výsledek. Výsledné experimenty mohly být propracovanější, zejména není ověřeno, že generovaná data jsou realistická a odpovídají anatomickým a fyzikálním předpokladům (např. student neověřil, zda falešná data čtená z magnetometru odpovídají falešné trajektorii pohybu a falešným změnám natočení telefonu). Vzhledem k nízké kvalitě textu a nízké užitečnosti práce navrhuji uspokojivé hodnocení. Nicméně pokud komise usoudí, že by měl autor text technické zprávy přepsat, plně bych se s takovým verdiktem ztotožnil.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Náročnost zadání Zadání jako takové hodnotím jako obtížnější, protože zahrnuje oblast tvorby rozšíření prohlížečů ve spojení s anatomií lidského těla. Obě oblasti se na magisterském studiu obvykle neprobírají. Nutno však podotknout, že anatomií lidského těla student v práci nijak nebere v úvahu.
Rozsah splnění požadavků zadání Zadání je poměrně volné v tom, co má být navrženo a následně implementováno. Splnění bodu 3 nemohu posoudit, protože závisel na dohodě s vedoucím, kterou neznám. V bodě 2 zadání se měl student seznámit s dřívější prací, která se zabývala anatomií lidského těla. Student se však touto prací zabýval jen velmi okrajově. Např. bych očekával, že v rámci experimentů student ověří, zda generovaná data odpovídají anatomickým očekáváním.
Rozsah technické zprávy Práce má rozsah přibližně 60 normostran. Nicméně problémem technické zprávy je, že její text není srozumitelný, což více popisuji níže.
Prezentační úroveň technické zprávy 33 Technická zpráva se v důsledku nedobré angličtiny, nepřesného vyjadřování, nadbytečných slov, pasivního rodu a podivných obratů velmi špatně čte a čtenář neustále odhaduje, co mohl mít autor na mysli. V některých případech jako v sekci 5.1-5.3 jsou uvedeny chybné informace. V teoretické části jsem ještě relativně byl schopný odhadnout, o čem autor píše, ale v částech popisující vlastní přínos autora už je stavový prostor tak velký, že není možné jasně zjistit, co, jak a proč je navrhováno, jaká specifika problému autor zkoumal a naopak, jaká specifika a proč zanedbal. K pochopení textu by mohly přispět technické diagramy, těch je však poměrně málo. V důsledku nelze ověřit přínosnost práce. I samotná logická struktura technické zprávy by mohla být lepší. 12 kapitol je zásadně více než je obvyklé, některé kapitoly přitom zabírají jen několik stran, případně dokonce jednu. Pro ilustraci problému, se kterým se musí čtenář vypořádat. Na str. 24 zjistí, že autor využíval tři datové sady, na str. 29 se však již píše jen o dvou sadách, aby se nakonec čtenář dozvěděl, že je použitá jen jedna. Z textu však není jasné a zřejmé, proč se autor rozhodl data v této sadě upravit, ale v ostatních takové opravy nedělal. Zároveň však z popisu úprav není jasné v čem přesně spočívají a jejich dopad na kvalitu výsledku. Obdobně diagram na obr. 7.4 uvažuje 3 kategorie pohybů obsahující 9 aktivit. V tabulce 8.1 je pak 12 aktivit, přičemž některé mají jen naprosto zanedbatelné množství měření. Z poslední věty prvního odstavce na str. 34 se pak zdá, že se v práci uvažují pouze 2 aktivity, pro které je dostatek měření. V tu chvíli však diagram na obr. 7.4 nedává smysl. Na konci str. 34 se však zdá, že autor uvažuje nejméně tři aktivity, na konci strany 36 se však vrací ke dvěma aktivitám. Oba ilustrované problémy měly být v práci sepsány pochopitelně, nejlépe na jednom místě. Kapitoly 10-11 jsou napsány jazykem, který je poměrně přímočarý a pochopitelný.
Formální úprava technické zprávy 60 Typograficky je práce většinou v pořádku, i když jsem na několik problémů narazil. Práce je psaná anglicky, přičemž slova často nejsou spojovaná do vět, které dávají smysl. Více výše.
Práce s literaturou 70 Seznam literatury uvedeny na konci práce je velmi bohatý a zdá se relevantní. Autor však nepracuje dobře s referencemi této literatury. Např. v kapitole 2 je referencí poskrovnu, přitom se v kapitole nachází velké množství vzorců, které působí dojmem, že byly převzaté z jiného zdroje. Jiný příklad je metoda Adam, která je na str. 34 v práci poprvé zmíněna, aniž by autor čtenáři ozřejmil, co si má pod ní představit.
Realizační výstup 70 V odevzdaných zdrojových souborech není jednoduché se zorientovat. V src/ mobile_device_movement_simulation/README.md je návod, který zachycuje závislosti mezi skripty. Jednotlivé skripty pak nejsou dostatečně strukturované a obsahují poměrně dlouhé funkce. Nenašel jsem žádné testy ověřující správnost implementace. Kód v rámci rozšíření není odlišen a je potřeba jej dohledávat. Je však zachován gitový repozitář, takže je možné zkoumat jednotlivé commity a práce studenta tak odlišit lze. Commity neobsahují srozumitelný popis, který by odpovídal obsahu těchto commitů.
Využitelnost výsledků Cílem práce bylo upravit rozšíření JShelter, přičemž já jsem jeho hlavní správce. Bohužel velmi slabá pochopitelnost práce ve spojení s neuronovými sítěmi, které nejsou člověkem jednoduše interpretovatelné, mne vedou k závěru, že výsledky práce nebudou přímo uplatněny, protože z technické zprávy nebudu moct v budoucnu zjistit, jak student k problému přistupoval, co a jak bral v úvahu a na druhou stranu, co zanedbal a proč. Navíc z textu kapitoly 9 je zřejmé, že se využívají tzv. background scripts , které však z důvodů změn v prohlížečích jsou nahrazovány neperzistentními náhradami. Z textu práce není zřejmé, zda a jak autor myslel na to, že obsah uložený v proměnných by nemusel být perzistentní. V průběhu konzultací jsme došli k tomu, že při opakovaném navštívení stránky na stejné doméně, za předpokladu ukončení background skriptu, dostane každá stránka jiný obsah. To je v rozporu s požadavky. JShelter má generovat ve stejný čas na stránkách ze stejné domény stejné hodnoty, zatímco na jiných doménách by měly být hodnoty jiné. Autor s tímto předpokladem v teoretickém úvodu pracoval, dále však ne. Na konzultacích jsme se studentem odvodili, že není zaručeno, že stránky na rozdílných doménách budou číst různá data. V rámci commitu ze 4. března byl do zdrojového kódu rozšíření přidán minifikovaný kód. Z popisu commitu nelze poznat, co přesně má kód dělat, ani jak byl získán. Nejsem si vědom, že technická zpráva tento kód, jeho původ a účel popisuje. V takovém stavu by zřejmě rozšíření neprošlo kontrolou při uveřejnění v databázi rozšíření Firefoxu, protože je nutné dát Mozille k dispozici k nahlédnutí neminifikovaný kód.
Navrhovaná známka
D
Body
60

Otázky

eVSKP id 162586