Obsah

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 v myGym/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: , & al., , , , , , , , , , , & (). 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: , (). 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: , & al., , , , , , , , , , , & (). 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 a absolute mechanizmami pre riadenie akcií v rámci frameworku? Relevantný riadok 43

W02 18. okt – 24. okt

Úlohy

  • Začať s implementáciou simulovaného prostredia v myGym

Zistenia

  • Primárne použijeme triedu GymEnv s workspacom Tabledesk 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

  • Porovnať robotické simulátory myGym a iGibson pre použitie v tomto projekte

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