eng / pl
Paweł Wawrzyński
Politechnika Warszawska

Nauczanie


Uczące się Systemy Decyzyjne - USD
Zaawansowane Zagadnienia Sieci Neuronowych - ZZSN

Uczące się Systemy Decyzyjne - USD

Cel wykładu

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
  1. Proces Decyzyjny Markowa
  2. Programowanie dynamiczne: algorytm klasyczny, algorytm iteracji polityki, algorytm iteracji wartości
  3. Optymalizacja stochastyczna: metoda stochastycznego najszybszego spadku
Część 2: Uczenie się ze wzmocnieniem
  1. Algorytmy Q-Learning i SARSA
  2. Optymalizacja wyboru losowego: Parametryzowane rodziny rozkładów prawdopodobieństwa, algorytm REINFORCE
  3. Algorytm Aktor-Krytyk i TD(lambda).
  4. Algorytmy uczenia się z powtarzaniem doświadczenia: optymalizacja estymatora wskaźnika jakości polityki, repróbkowanie
  5. Algorytmy wzbogacone: A3C, PPO, DDPG, SAC
  6. Uczenie się ze wzmocnieniem w gęstej dyskretyzacji czasu
  7. Częściowo Obserwowalny Proces Decyzyjny Markowa
  8. Wieloagentowe uczenie się ze wzmocnieniem
  9. Nagrody i dekompozycja uczenia się ze wzmocnieniem: kształtowanie nagród i sieci koncepcji.
Część 3: Sterowanie adaptacyjne
  1. Podstawy matematyczne: teoria stabilności, funkcja Lapunova, gwarancje stabilności asymptotycznej
  2. 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
  3. 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.

Literatura

P. Wawrzyński, Uczące się Systemy Decyzyjne, Oficyna Wydawnicza Politechniki Warszawskiej, 2021.
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

  1. Preliminaria. Metody uczenia sieci: CM, NAG, AdaGrad, AdaDelta, ADAM. Przydatne narzędzia: inicjalizacja Xavier, normalizacja pakietowa, entropia skrośna.
  2. Optymalizacja struktury sieci: destylacja wiedzy, przeszukiwanie przestrzeni architektur neuronowych (NAS)
  3. Sieci rekurencyjne: podstawowe sieci rekurencyjne, uczenie BPTT i RTRL, problem zanikającego/eksplodującego gradientu, LSTM, GRU
  4. Zaawansowane architektury przetwarzające sekwencje: Deep Memory Update, Lipschitz Networks, alternatywy dla rekurencji, mechanizm uwagi
  5. Transformer: Wielogłowa atencja, Transformer, Vision Transformer, model językowy BERT
  6. Generative Pre-trained Transformer (GPT): GPT-2, GPT-3, GPT-3.5, GPT-4
  7. Sieci grafowe: klasyfikacja wierzchołków grafu, predykcja zmiennych etykiet wierzchołków, klasyfikator grafowy, sieci generujące grafy
  8. Uczenie ze skąpych danych: augmentacja danych, uczenie transferowe, wielozadaniowe, odporne, za jednym zamachem (MAML), semi-nadzorowane, samo-nadzorowane
  9. Architektury generacyjne: generacyjne sieci przeciwstawne (GAN), modele dyfuzyjne, dyfuzyjne generowanie filmów, Dall-E, Dall-E-2
  10. Sieci impulsowe: modele neuronów impulsowych, uczenie sieci impulsowej
  11. Uczenie kontynuowane (ang. continual learning): metody z regularyzacją, modele z komponentami specyficznymi dla pakietu danych, odtwarzanie wcześniejszych danych
  12. Neuronowa wizja maszynowa: Sieci Unet, R-CNN, YOLO
  13. Śnienie: transfer stylu, uczenie kontynuowane oparte o śnienie - Always Be Dreaming
  14. 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.