Omawiane są systemy wspomagające decyzje lub sterujące, które adaptują się do nieznanego
z góry lub zmieniającego się środowiska. Wykład wprowadza podstawowe zasady działania i metody
konstrukcji takich systemów.
Treść wykładu
Część 1: Podstawy
Proces Decyzyjny Markowa
Programowanie dynamiczne: algorytm klasyczny, algorytm iteracji polityki, algorytm iteracji wartości
Optymalizacja stochastyczna: metoda stochastycznego najszybszego spadku
Część 2: Uczenie się ze wzmocnieniem
Algorytmy Q-Learning i SARSA
Optymalizacja wyboru losowego: Parametryzowane rodziny rozkładów prawdopodobieństwa, algorytm REINFORCE
Algorytm Aktor-Krytyk i TD(lambda).
Algorytmy uczenia się z powtarzaniem doświadczenia: optymalizacja estymatora wskaźnika
jakości polityki, repróbkowanie
Algorytmy wzbogacone: A3C, PPO, DDPG, SAC
Uczenie się ze wzmocnieniem w gęstej dyskretyzacji czasu
Częściowo Obserwowalny Proces Decyzyjny Markowa
Wieloagentowe uczenie się ze wzmocnieniem
Nagrody i dekompozycja uczenia się ze wzmocnieniem: kształtowanie nagród i sieci koncepcji.
Część 3: Sterowanie adaptacyjne
Podstawy matematyczne: teoria stabilności, funkcja Lapunova, gwarancje stabilności asymptotycznej
Adaptacja z modelem referencyjnym (MRAS): podejście oparte na gradiencie, reguła MIT, uzasadnienie oparte
na teorii stabilności, postać MRAS dla ogólnego systemu liniowego
Samostrojące się regulatory (STR)
Zakres projektu
Zastosowanie wybranych metod uczenia się ze wzmocnieniem lub adaptacyjnego sterowania do wybranego problemu
adaptacyjnego podejmowaia decyzji lub sterowania. Sugerowany język programowania to Python.
Sieci grafowe: klasyfikacja wierzchołków grafu, predykcja zmiennych etykiet wierzchołków,
klasyfikator grafowy, sieci generujące grafy
Uczenie ze skąpych danych: augmentacja danych, uczenie transferowe, wielozadaniowe,
odporne, za jednym zamachem (MAML), semi-nadzorowane, samo-nadzorowane
Architektury generacyjne: generacyjne sieci przeciwstawne (GAN), modele dyfuzyjne,
dyfuzyjne generowanie filmów, Dall-E, Dall-E-2
Sieci impulsowe: modele neuronów impulsowych, uczenie sieci impulsowej
Uczenie kontynuowane (ang. continual learning):
metody z regularyzacją, modele z komponentami specyficznymi dla pakietu danych,
odtwarzanie wcześniejszych danych
Neuronowa wizja maszynowa: Sieci Unet, R-CNN, YOLO
Śnienie: transfer stylu, uczenie kontynuowane oparte o śnienie - Always Be Dreaming
Ponad sieciami splotowymi: RotEqNet, sieci kapsułowe i routing dynamiczny
Zakres projektu
Zastosowanie wybranych zaawansowanych architektur sieci neuronowych do rozwiązania problemu, do którego jest
dedykowana. Sugerowany język programowania to Python z biblioteką PyTorch lub JAX (ewentualnie Tensorflow)
Literatura
Wybrane publikacje z NIPS/NeurIPS, ICML, ICLR, CVPR, arXiv.
Yoshua Bengio, Aaron Courville, Ian Goodfellow, "Deep Learning. Systemy uczące się", PWN, 2018.