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 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 ze wzmocnieniem w gęstej dyskretyzacji czasu
  7. Częściowo Obserwowalny Proces Decyzyjny Markowa
  8. Wieloagentowe uczenie ze wzmocnieniem
  9. Nagrody i dekompozycja uczenia się ze wzmocnieniem: kształtowanie nagród i hierarchiczne uczenie ze wzmocnieniem.
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. Uczenie ze skąpych danych: augmentacja danych, uczenie transferowe, wielozadaniowe, odporne, semi-nadzorowane, samo-nadzorowane, za jednym zamachem (MAML), aktywne
  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, atencja
  5. Duże modele językowe: wielogłowa atencja, kodowanie pozycyjne, transformer
  6. 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
  7. Generative Pre-trained Transformer (GPT): GPT-2, GPT-3, GPT-3.5, GPT-4
  8. Sieci grafowe: klasyfikacja wierzchołków grafu, predykcja zmiennych etykiet wierzchołków, klasyfikator grafowy, sieci generujące grafy
  9. Architektury generacyjne: generacyjne sieci przeciwstawne (GAN), modele dyfuzyjne, Dall-E, Dall-E-2, Dall-E-3, dyfuzyjne generowanie filmów
  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: 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.