Denník
Dátumy sú pre akademický rok 2023/24. Týždne sa číslujú od prvého stretnutia so školiteľom k BP a sú dátumovo ohraničené stretnutiami so školiteľom.
W30 3. máj – 7. máj
Úlohy
- Pripraviť predbežnú prezentáciu na KUŽ
- Upraviť text zadania BP
- Dopísať Preliminaries
- Pokračovať s implementáciou plánovacieho algoritmu
W29 26. apr – 2. máj
Úlohy
- Písanie prehľadovej kapitoly, zapracovať feedback od školiteľa
W28 20. apr – 25. apr
Úlohy
- Naštudovať si zdroje k plánovacím algoritmom
- Pokračovať v písaní prehľadovej kapitoly
Zistenia
- Budeme implementovať plánovací algoritmus ako štandardný LSTM dekóder generujúci sekvenciu medzistavov na dosiahnutie cieľového stavu. Akčný komponent trajektórie sa vygeneruje zo sekvencie pomocou inverzného modelu. Dopredný model sa použije na korekciu.
W27 10. apr – 19. apr
Úlohy
- Pokračovať v písaní prehľadovej kapitoly
W26 3. apr – 9. apr
Úlohy
- Zapracovať feedback k článku na ICANN
- Naštudovať si zdroje k plánovacím algoritmom
- Začať písať prehľadovú kapitolu
W25 27. mar – 2. apr
Úlohy
- Pokračovať s článkom na ICANN
- Napísať príspevok na KUŽ/CAL 2024
Zistenia
- Príspevok na KUŽ sme dokončili
- Článok na ICANN je rozpracovaný, posunul sa deadline
W24 20. mar – 26. mar
Úlohy
- Pokračovať s článkom na ICANN
- Pregenerovať dáta z push experimentu, keďže pohyb kocky sa chybne zaznamenáva ako následok akcie ramena aj keď už spolu neinteragujú a pohybujú sa nezávisle, čo spôsobuje skreslenie v dátach
- Skúsiť ďalší task, tentokrát s magnetickým efektorom, kde by mohlo byť lepšie vidieť kauzálne vzťahy na výstupe zo SHAP
Zistenia
- Push task sme upravili pridaním ohraničenia okolo simulovaného stola. Zmenili sme tiež protokol pre vykonávanie tasku, rameno po interakcii s kockou zastane, počká sa kým sa zastaví pohyb kocky a zaznamená sa až posledný stav ako priamy následok akcie, ktorá tento pohyb zapríčinila
- Dáta z magnetic tasku nie sú tak zašumené, ako pri push tasku, výsledok zo SHAP metódy vyzerá byť intuitívny
W23 14. mar – 19. mar
Úlohy
- Skúsiť implementovať vysvetliteľnosť cez LRP a porovnať so SHAP
- Začať pripravovať článok na ICANN 2024
Zistenia
- Vysvetliteľnosť cez LRP na plne prepojených sieťach s inou skrytou aktiváciou ako ReLU sa nedá robiť,
minimálne sme neprišli na to ako
- V rámci SHAP sa dá ale použiť variant Deep SHAP, ktorý používa attribution rules z techniky DeepLIFT (funguje na podobnom princípe ako LRP) na aproximáciu Shapley values
- Pri rovnakom setupe ($N_{\rm train} = 10000$, $N_{\rm test} = 200$, 1x RTX 3060 + Ryzen 9 5900X) trvalo spracovanie pomocou Deep SHAP ~22 s oproti ~40 min pri pôvodnej metóde Kernel SHAP
W22 8. mar – 13. mar
Úlohy
- Upraviť výstup zo SHAP, aby bol lepšie interpretovateľný
- Doplniť architektúru inverzného modelu o transformačnú predsieť predikujúcu kĺbovú konfiguráciu v $t + 1$, ktorá nie je dostupná počas inferencie; vytvoriť kompozíciu transformačného a základného inverzného modelu
Zistenia
- Inverzný model s transformačnou predsieťou dosahuje zhruba rovnaké výsledky ako monolitická architektúra a model trénovaný cez transfer learning
W21 28. feb – 7. mar
Úlohy
- Skúsiť natrénovať kauzálny model pre block pushing
- Vygenerovať dataset zo simulácie, zrejme cez obmedzený motor babbling na stole s ohraničeným priestorom
- Doupraviť architektúru inverzného modelu a natrénovať ho na datasete spolu s dopredným modelom
- Zanalyzovať zachytené kauzálne vzťahy medzi features stavových vektorov analýzou modelov pomocou LRP / LIME / SHAP metód
- Preskúmať myšlienku jednej sady kauzálnych modelov pre všetky motorické schopnosti robota oproti separátnym sadám modelov pre každú zručnosť zvlášť
Zistenia
- Block pushing
- Stôl v simulácii sa nepodarilo včas ohraničiť, ale ide to pomerne jednoducho
- Dataset pre push task bol vygenerovaný na 2.5 M simulačných krokoch pomocou directed motor babbling
- Inverzný model sme skúšali natrénovať cez transfer learning, výsledky sú podobné
- Dopredný model funguje rovnako dobre na push task ako pri kinematike
- Vysvetliteľnosť
- LIME metóda nie je veľmi vhodná na tento prípad, keďže neumožňuje agregáciu lokálnych vysvetlení predikcií do globálneho kontextu
- Je možné, že LRP funguje len s ReLU aktiváciami, treba overiť
- Použili sme nakoniec metódu SHAP na doprednom modeli, keďže vie robiť lokálnu vysvetliteľnosť
a agregovať ju do globálnej
- SHAP je pomerne pomalý, keďže potrebuje natrénovať $2^d$ redukovaných modelov, kde $d$ je dimenzionalita vstupného vektoru pôvodného modelu, teda $2^{29} \approx 5.36 \times 10^8$ modelov v prípade dopredného modelu
- SHAP bol trénovaný na 300 tréningových vzorkách získaných $k$-means clusteringom ($k = 300$) na náhodne vybranej podmnožine ($N_{\textrm{sub}} = 25 000$) tréningových dát ($N = 2 \times 10^6$)
- Inferencia na 100 testovacích vzorkách v takejto konfigurácii trvala cca 12 minút na 1 CPU
- Došli sme k záveru, že sada diskrétnych kauzálnych modelov pre každú motorickú zručnosť zvlášť nie je veľmi praktická, keďže kauzálne efekty jednotlivých typov zručností nie sú jednoducho izolovateľné, t.j. akcie majú potenciál ovplyvňovať akékoľvek komponenty stavového vektoru, čiže diskretizácia modelov preto, aby nepotrebovali robiť operácie na celom stavovom vektore nemá veľmi význam v tomto bode, keďže každý model bude zrejme aj tak potrebovať prístup k celému stavu
W20 21. feb – 27. feb
Úlohy
- Vygenerovať dataset pre kauzálne kinematické modely pre nový model
nico_upper_rh6d
- Vizualizovať distribúcie v datasete pre jednotlivé kĺby pomocou histogramov a možno znova vyskúšať vizualizáciu joint space pomocou UMAP, tentokrát na menšej vzorke
- Natrénovať kinematické modely pre
nico_upper_rh6d
- Prerobiť architektúru inverzného modelu tak, aby na vstupe nepotreboval $s(t + 1)$
- Zosumarizovať výsledky tréningu modelov
- Zanalyzovať chybovosť viackrokovej mentálnej simulácie pomocou kinematických modelov
- Vytvoriť stránku projektu
Zistenia
- Kvôli nedostatku času zatiaľ nebudeme riešiť robota Nico a zostaneme len pri Pande
- Nová architektúra inverzného modelu sa omnoho ťažšie učí – vyžaduje minimálne 500 epoch a AdamW optimalizátor oproti 25 epochám pre pôvodnú architektúru s Adam optimalizátorom, a aj tak konečná chyba efektora je o rád vyššia ako v prípade pôvodného modelu
- Chybovosť mentálnej simulácie rastie viac-menej lineárne s počtom krokov simulovaných dopredu, čo je lepšie ako predpokladaný exponenciálny nárast.
W18 – W19 7. feb – 20. feb
Úlohy
- Vyskúšať motor babbling a natrénovanie kauzálnych modelov pre robota Nico
- Vizualizovať distribúcie v datasete pomocou UMAP
- Prerobiť architektúru dopredného modelu na dvojhlavovú so separátnymi chybovými funkciami pre kĺbovú konfiguráciu a pozíciu efektora
Zistenia
- Dopredný model pre robota Panda sa trénuje dobre s konečnou chybou efektora ~1.6 mm
- S dopredným modelom pre robota Nico niečo nie je v poriadku, s rovnakou architektúrou má konečnú chybu efektora ~8 mm, skúsime vymeniť model robota
W17 31. jan – 6. feb
Úlohy
- Vygenerovať dataset pre kauzálne kinematické modely pomocou motor babblingu v myGyme
cez
-ct random
argument; akciu treba dopočítavať zo stavových vektorov, nie brať plánovanú akciu - Zostaviť dopredný a inverzný model pre kinematiku robota Panda
Zistenia
- Dopredný model počíta zmiešanú chybu pre kĺbovú konfiguráciu a pozíciu efektora na výstupe, chybu treba oddeliť
- Rendering v myGym sa dá vypnúť pre zrýchlenie simulácie
W16 24. jan – 30. jan
Úlohy
- Opraviť generovanie dát cez motor babbling tak, aby sa zaznamenávala skutočná vykonaná akcia, nie tá plánovaná
- Skonštruovať preprocessing pipeline a spracovať surové dáta do formy zachytávajúcej kauzálne vzťahy medzi stavom pred a po akcii
W15 19. jan – 23. jan
Úlohy
- Rozbehať simuláciu v myGyme a vyskúšať robiť motor babbling pre robota Franka Emika Panda
Zistenia
- V myGym netreba používať triedu
GymEnv
na vytváranie si vlastného API, stačí upraviť testovaciu funkciu vmyGym/test.py
- Motor babbling je tiež implementovaný v myGyme
W11 – W14 22. dec – 18. jan
- V prvom rade by som si u seba chcel ujasniť, akú formu a atribúty bude mať finálny výstup z práce, a teda hlavne, ako by mali vyzerať experimenty, na ktorých by som demonštroval schopnosti systému, čo aj navrhoval dr. Vavrečka
- Trochu som za posledný mesiac stratil focus, čiže rád by som si skonsolidoval myšlienky a upratal návrh systému aj so zapracovaním feedbacku
- Chcel by som ukončiť implementáciu parametrizovaného simulovaného prostredia v myGym, dúfam, že sa mi to podarí stihnúť popri ostatných veciach
W08 – W10 29. nov – 21. dec
- Tu som sa veľmi nestíhal venovať BP kvôli predtermínom a projektom
- Najmä som rozmýšľal nad feedbackom od dr. Vavrečku z posledného 2-hodinového stretnutia a mám pár nápadov, ako by som chcel optimalizovať návrh
- Pokračoval som v štúdiu ( Citation: Zhu, Gao & al., 2020 Zhu, Y., Gao, T., Fan, L., Huang, S., Edmonds, M., Liu, H., Gao, F., Zhang, C., Qi, S., Wu, Y., Tenenbaum, J. & Zhu, S. (2020). Dark, beyond deep: A paradigm shift to cognitive AI with humanlike common sense. Engineering, 6(3). 310–345. https://doi.org/10.1016/j.eng.2020.01.011 ; Citation: Hellström, 2021 Hellström, T. (2021). The relevance of causation in robotics: A review, categorization, and analysis. Paladyn, Journal of Behavioral Robotics, 12(1). 238–255. https://doi.org/10.1515/pjbr-2021-0017 )
W07 23. nov – 28. nov
Úlohy
- Pokračovať s implementáciou simulovaného prostredia v myGym
W05 – W06 8. nov – 22. nov
Úlohy
- Opraviť problém v návrhu týkajúci sa neinformovaného výberu akcie z klastra diskrétnej meta-akcie
- Rozčítať ( Citation: Zhu, Gao & al., 2020 Zhu, Y., Gao, T., Fan, L., Huang, S., Edmonds, M., Liu, H., Gao, F., Zhang, C., Qi, S., Wu, Y., Tenenbaum, J. & Zhu, S. (2020). Dark, beyond deep: A paradigm shift to cognitive AI with humanlike common sense. Engineering, 6(3). 310–345. https://doi.org/10.1016/j.eng.2020.01.011 )
- Pokračovať s implementáciou simulovaného prostredia v myGym
Zistenia
- Upravil som návrh pridaním aproximátora pre generovanie spojitého akčného vektora zo stavu pred a po akcii
W04 1. nov – 7. nov
Úlohy
- Pokračovať s implementáciou simulovaného prostredia v myGym
- Stretnutie s dr. Vavrečkom
Zistenia
- Vyššie opísané problémy s myGym sa dajú obísť
W03 25. okt – 31. okt
Úlohy
- Pokračovať s implementáciou simulovaného prostredia v myGym
Zistenia
- Vision aktuálne neriešime
- Otázka k myGym:
- Aký je rozdiel medzi
step
,joints
aabsolute
mechanizmami pre riadenie akcií v rámci frameworku? Relevantný riadok 43
- Aký je rozdiel medzi
W02 18. okt – 24. okt
Úlohy
- Začať s implementáciou simulovaného prostredia v myGym
Zistenia
- Primárne použijeme triedu
GymEnv
s workspacomTabledesk
a robotom Panda - Pár problémov s myGym:
- Potrebujeme celý stavový/observation vektor, nie len jeho časť relevantnú k jednej úlohe
- Priestor akcií nechceme limitovať, potrebujeme ovládať každý joint ramena, nie len tie relevantné k jednej úlohe
W01 11. okt – 17. okt
Úlohy
Zistenia
- Zaujímavý benchmark BEHAVIOR
- iGibson nie je vhodný na túto prácu, pretože nedovoľuje parametrické generovanie prostredia, čiže ani parametrickú randomizáciu potrebnú pre tréning
- iGibson by sa dal použiť neskôr, pretože ponúka veľké množstvo realistických prostredí, ale pre učenie sa intuitívnej fyziky a riešenie manipulačných úloh je to asi overkill