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 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 ze wzmocnieniem w gęstej dyskretyzacji czasu
Częściowo Obserwowalny Proces Decyzyjny Markowa
Wieloagentowe uczenie ze wzmocnieniem
Nagrody i dekompozycja uczenia się ze wzmocnieniem: kształtowanie nagród i hierarchiczne uczenie ze wzmocnieniem.
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.
R. S. Sutton, A. G. Barto, Reinforcement Learning: An Introduction,
Second Edition, MIT Press, 2018.
Wikipedia.
Wybrane publikacje dostępne na arxiv.
Zaawansoane Zagadnienia Sieci Neuronowych - ZZSN
Cel wykładu
Wykład stanowi rozszerzenie przeznaczonego dla studiów inżynierskich wykładu Sztuczne Sieci Neuronowe (SNN).
Treść wykładu
Preliminaria. Metody uczenia sieci: CM, NAG, AdaGrad, AdaDelta, ADAM.
Przydatne narzędzia: inicjalizacja Xavier, normalizacja pakietowa, entropia skrośna.
Uczenie ze skąpych danych: augmentacja danych, uczenie transferowe, wielozadaniowe,
odporne, semi-nadzorowane, samo-nadzorowane, za jednym zamachem (MAML), aktywne
Sieci rekurencyjne: podstawowe sieci rekurencyjne, uczenie BPTT i RTRL,
problem zanikającego/eksplodującego gradientu, LSTM, GRU
Zaawansowane architektury przetwarzające sekwencje:
Deep Memory Update, Lipschitz Networks, alternatywy dla rekurencji, atencja
Duże modele językowe: wielogłowa atencja, kodowanie pozycyjne, transformer
Rozszerzenia transformera: model językowy BERT, same dekoder jako model językowy,
XL Transformer, kodowanie pozycyjne RoPE, Vision Transformer, łańcuch myśli i wnioskujący model językowy
Sieci grafowe: klasyfikacja wierzchołków grafu, predykcja zmiennych etykiet wierzchołków,
klasyfikator grafowy, sieci generujące grafy
Architektury generacyjne: generacyjne sieci przeciwstawne (GAN), modele dyfuzyjne,
Dall-E, Dall-E-2, Dall-E-3, dyfuzyjne generowanie filmów
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: artystyczny transfer stylu, uczenie kontynuowane oparte o śnienie - Always Be Dreaming
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.