Politechnika Warszawska - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Sztuczne sieci neuronowe

Informacje ogólne

Kod przedmiotu: 103A-INSZI-ISP-SSNE Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Sztuczne sieci neuronowe
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Przedmioty techniczne )---EITI
( Sztuczna inteligencja )-Sztuczna inteligencja-inż.-EITI
Punkty ECTS i inne: 4.00
Język prowadzenia: polski
Jednostka decyzyjna:

103000 - Wydział Elektroniki i Technik Informacyjnych

Kod wydziałowy:

SSNE

Numer wersji:

1

Skrócony opis:

Przedmiot ten ma na celu zapoznanie studentów z sieciami neuronowymi, t.j. ich strukturami, metodami ich uczenia i potencjalnymi zastosowaniami. Przedstawia praktycznie wszystkie używane struktury sieci, w tym perceptron wielowarstwowy, sieci splotowe, generatywne, autokodery, sieci rekurencyjne i inne. Prezentuje algorytmy ich uczenia takie jak CM, NAG, Adam i inne. Przedstawia narzędzia programistyczne służące do implementowania sieci neuronowych, takie jak Tensorflow.


Ćwiczenia związane z przedmiotem mają na celu implementację poznanych metod oraz ich zastosowaniu do rozwiązywania praktycznych problemów. Dodatkowo na ćwiczeniach poruszane są aspekty techniczne oraz omawiane są dobre praktyki w uczeniu i zastosowaniu sieci neuronowych.

Pełny opis:

Przedmiot ten ma na celu zapoznanie studentów z sieciami neuronowymi, t.j. ich strukturami, metodami ich uczenia i potencjalnymi zastosowaniami. Przedstawia praktycznie wszystkie używane struktury sieci, w tym perceptron wielowarstwowy, sieci splotowe, generatywne, autokodery, sieci rekurencyjne i inne. Prezentuje algorytmy ich uczenia takie jak CM, NAG, Adam i inne. Przedstawia narzędzia programistyczne służące do implementowania sieci neuronowych, takie jak Tensorflow.


Ćwiczenia związane z przedmiotem mają na celu implementację poznanych metod oraz ich zastosowaniu do rozwiązywania praktycznych problemów. Dodatkowo na ćwiczeniach poruszane są aspekty techniczne oraz omawiane są dobre praktyki w uczeniu i zastosowaniu sieci neuronowych.



Treść wykładu

  1. Wprowadzenie (2 godz.)
    Model perceptronu, sieci jednokierunkowe wielowarstwowe, algorytm wstecznej propagacji błędu. Podstawowe metody uczenia sieci: algorytm gradientu prostego, algorytm stochastycznego najszybszego spadku.
  2. Wprowadzenie do Tensorflow (2 godz.)
    Zaprezentowanie zasady działania biblioteki Tensoflow (TF). Graf obliczeń (dynamiczny/statyczny), automatyczne różniczkowanie, obliczenia na CPU/GPU/TPU. Modelowanie sieci, uczenie oraz ewaluacja w TF. Wizualizacja oraz diagnostyka sieci z wykorzystaniem Tensorboard. Porównanie TF z innymi dostępnymi rozwiązaniami (MXNET, PyTorch, Teano) oraz bibliotekami wyższego poziomu (na przykładzie biblioteki Keras/API TF 2.0).
  3. Algorytmy uczenia sieci (3 godz.)
    Podejścia do estymacji gradinetu; minipakiety. Algorytmy wykorzystujące inercję: CM, NAG. Algorytmy adaptacyjne: AdaGrad, RMSprop, Adam.
  4. Architektury sieci jednokierunkowych (6 godz.)
    Sieci splotowe (CNN), autokodery (AE), sieci kapsułkowe (CapsNet) i algorytm uczenia dynamic routing.
  5. Sieci Generacyjne (2 godz.)
    Model sieci dla ograniczonych maszyn Bolzmanna (RBMs) oraz głębokich sieci przekonań (DBN). Algorytm wake-sleep. Generatywne sieci przeciwstawne (GAN), autokodery wariacyjne (VAE).
  6. Sieci rekurencyjne (4 godz.)
    Sieć neuronowa jako maszyna stanowa. Sieci Jordana i Elmana. Algorytm wstecznej propagacji przez czas (BPTT). Algorytm rekurencyjnego uczenia w czasie rzeczywistym (RTRL). Problem zanikania i eksplozji gradientu. Sieci LSTM i GRU. Zastosowanie sieci rekurencyjnych w przetwarzaniu języka naturalnego (NLP).
  7. Dobre praktyki oraz podejścia pomocnicze przy uczeniu sieci neuronowych (4 godz.)
    Trenowanie wstępne sieci. Zagnieżdżenie (embedding): word2vec (skip-gram, CBOW), GloVe. Przeciwdziałanie przeuczeniu: opuszczanie (drop-out), wczesne zatrzymanie. Wspomaganie uczenia: normalizacja wsadów (batch normalization), odpowiednia inicjalizacja wag. Ataki na sieci neuronowe i metody obrony przed nimi.
  8. Architektury specjalizowane (2 godz.)
    Sieci Hopfielda, Kohonena, model Wide&Deep.
  9. Tensorflow - zagadnienia zaawansowane (2 godz.)
    Rozproszenie obliczeń, przygotowanie danych z wykorzystaniem tf.data, wdrożenie produkcyjne TF (TF Serving), Projekt TF Hub.
  10. Sieci neuronowe w uczeniu z wzmocnieniem (1 godz.)
    Algorytmy Deep Q-Learning i REINFORCE epizodyczny z użyciem sieci neuronowych.
  11. Sprawdzenie efektów uczenia się (2 godz.)
    Pierwsze kolokwium po zrealizowaniu piątego tematu (1 godz.). Drugie kolokwium kończące przedmiot (1 godz.).



Treść ćwiczeń

  1. Organizacja ćwiczeń. Zapoznanie z środowiskiem Jupyter Notebook. Wprowadzenie do Tensorflow oraz podstawowych obiektów: graf obliczeń, sesja oraz operacje. Automatyczne różniczkowanie w grafie obliczeń. “Hello world” w TF - implementacja regresji logistycznej.
  2. Budowanie modelu sieci neuronowej dla zadania regresji oraz klasyfikacji. Zapisywanie modelu wraz z wagami do pliku. Odczytanie zapisanego modelu oraz ewaluacja wyników na zbiorze testowym.
  3. Klasyfikacja na zbiorze MNIST - z sieciami jednokierunkowymi a następnie z warstwami wykorzystującymi operację splotu (CNN). Porównanie wyników dla obu sieci.
  4. Uczenie modelu z wykorzystaniem różnych metod dostępnych w TF. Dostrajanie hyper-parametrów oraz diagnostyka uczenia modelu z wykorzystaniem Tensorboard. Implementacja metody wczesnego stopu w uczeniu sieci. Różne architektury sieci CNN. Zapoznanie z warstwami max-pooling, sieci rezydualne. Wykorzystanie pre-trenowanych sieci (VGG, ResNet) do detekcji obrazów ze zbioru TinyImageNet-200. Dostrajanie parametrów już wytrenowanej sieci.
  5. Sieci Kapsułkowe - algorytm dynamicznego routingu. Utworzenie klasyfikatora dla zbioru MNIST.
  6. Autokodery oraz VAE: kompresja obrazów MNIST (AE) oraz ich generacja (VAE). Implementacja prostej sieci GAN.
  7. Przewidywanie szeregów czasowych z sieciami neuronowymi - RNN, CNN.
  8. Word embedding - implementacja podejść CBOW oraz skip-gram. Podejście globalnych wektorów (GloVe) do zagnieżdżenia. Wykorzystanie istniejących zagnieżdżeń. Porównanie metod i wizualizacja w Tensorboard.
  9. Sieci rekurencyjne w NLP: wykorzystanie podejścia bag-of-words oraz sieci jednokierunkowej vs sieci rekurencyjnej. Utworzenie klasyfikatora filtru spamowego. Uczenie sekwencja-sekwencja: zastosowanie rekurencyjnych sieci neuronowych do automatycznej translacji tekstów.
  10. Implementacja modeli ograniczonych maszyny Bolzmanna (RBM) oraz głębokie sieci przekonań (DBN) z algorytmem wake-sleep.
  11. Sieci Neuronowe w uczeniu z wzmocnieniem. Implementacja wybranych metod z wykorzystaniem środowiska OpenGym oraz TF.
  12. Rozpraszanie obliczeń przy implementacji sieci neuronowych.
Literatura:

  • Ian Goodfellow, Yoshua Bengio, Aaron Courville, “Deep Learning,” WNT, 2015.
  • Dokumentacja biblioteki Tensorflow (https://www.tensorflow.org).
  • Geoffrey E. Hinton, 2012 Coursera course lectures: Neural Networks for Machine Learning (http://www.cs.toronto.edu/~hinton/coursera_lectures.html).
  • Wybrane publikacje (dostępne na platformie arXiv.org).
Metody i kryteria oceniania:

Sprawdzanie założonych efektów kształcenia realizowane jest przez:

  • ocenę wiedzy i umiejętności związanych z realizacją zadań przydzielanych na ćwiczeniach – ocena z realizacji zadań;
  • ocenę wiedzy wykazanej na dwóch kolokwiach pisemnych.

Zajęcia w cyklu "rok akademicki 2021/2022 - sem. zimowy" (jeszcze nie rozpoczęty)

Okres: 2021-10-01 - 2022-02-20
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: (brak danych)
Prowadzący grup: (brak danych)
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.