Politechnika Warszawska - Centralny System Uwierzytelniania
Strona główna

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 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.
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
    Informacje organizacyjne. Wprowadzenie do sztucznych sieci neuronowych. Współczesne znaczenie technologii sztucznych sieci neuronowych. Przypomnienie podstawowych pojęć: Model neuronu, perceptron dwu/wielowarstwowy, wsteczna propagacja błędu, uczenie sieci (SGD), zapobieganie przeuczeniu sieci: wczesne zatrzymanie, regularyzacja, odrzucanie. Perceptron, sieci jednokierunkowe wielowarstwowe, algorytm wstecznej propagacji błędu.
  2. Technologie
    2.Technologie: Obliczenia z użyciem minipakietów. Tensory i przeliczenia sieci z użyciem tensorów. Obliczenia w CUDA. Ogólne zasady działania bibliotek TensorFlow i PyTorch. Porównanie TensorFlow i PyTorcha z innymi dostępnymi rozwiązaniami (MXNET, Teano) oraz bibliotekami wyższego poziomu (biblioteka Keras).
  3. Algorytmy uczenia sieci
    Algorytmy wykorzystujące inercję: CM, NAG. Algorytmy adaptacyjne: AdaGrad, AdaDelta, Adam
  4. Dobre praktyki oraz podejścia pomocnicze przy uczeniu sieci neuronowych
    Trenowanie wstępne sieci. Przeciwdziałanie przeuczeniu: opuszczanie (drop-out), wczesne zatrzymanie. Wspomaganie uczenia: normalizacja pakietowa (batch normalization), odpowiednia inicjalizacja wag.
  5. Splot i sieci spolotowe
    Splot w matematyce. Warstwa splotowa sieci neuronowej. Parametry warstwy splotowej: krok, dylacja, dopełnianie. Łączenie, incepcja, tory rezydualne. Architektury ze splotem: LeNet, AlexNet, GoogLeNet, ResNet.
  6. Autokodery
    Splot odwrotny, splot transponowany. Powiększanie. Autokodery. Autokodery warunkowe. Autokodery wariacyjne (VAE).
  7. Sieci Generacyjne
    Splot odwrotny, splot transponowany. Powiększanie. Autokodery. Autokodery warunkowe. Autokodery wariacyjne (VAE).
  8. Sieci rekurencyjne
    Sieć neuronowa jako maszyna stanowa. Algorytm wstecznej propagacji przez czas (BPTT). Algorytm rekurencyjnego uczenia w czasie rzeczywistym (RTRL). Problem zanikania i eksplozji gradientu. Sieci LSTM i GRU.
  9. Przetwarzanie sekwencji i tłumaczenie maszynowe. Sieci dwukierunkowe i wielowymiarowe. Alternatywy do rekurencji
    Alternatywy do rekurencji: przesuwne okno i uwaga/atencja. Wprowadzenie do przetwarzania języka naturalnego: zagnieżdżenie (embedding) – word2vec (skip-gram, CBOW), Tłumaczenie maszynowe: eutokoder i autokoder z atencją.
  10. Transformer:
    struktura i sposób działania. Wielogłowa atencja. R-Transformer. Vision Transformer
  11. Sieci ze zbieżnym stanem
    Ograniczone maszyny Bolzmanna, Głębokie sieci przekonań, Algorytm wake-sleep. Samoorganizująca się mapa - sieć Kohonena
  12. Przegląd zaawansowanych problemów związanych z sieciami neuronowymi
    Zastosowania w wizji komputerowej i przetwarzaniu języka, sieci przetwarzające grafy, sieci impulsowe, uczenie ze wzmocnieniem, ciągłe i in



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:

  • Yoshua Bengio, Aaron Courville, Ian Goodfellow, "Deep Learning. Systemy uczące się", PWN, 2018.
  • Wybrane publikacje z NIPS/NeurlPS, ICML, ICLR, CVPR, arXiv
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 2022/2023 - sem. zimowy" (w trakcie)

Okres: 2022-10-01 - 2023-02-19
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć:
Ćwiczenia, 30 godzin, 72 miejsc więcej informacji
Wykład, 30 godzin, 72 miejsc więcej informacji
Koordynatorzy: Krystian Radlak
Prowadzący grup: Kamil Deja, Łukasz Lepak, Krystian Radlak
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2021/2022 - sem. zimowy" (zakończony)

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


powiększ
zobacz plan zajęć
Typ zajęć:
Ćwiczenia, 30 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Paweł Wawrzyński
Prowadzący grup: Kamil Deja, Paweł Wawrzyński
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.
pl. Politechniki 1, 00-661 Warszawa tel: (22) 234 7211 https://pw.edu.pl kontakt deklaracja dostępności USOSweb 6.8.0.0-7 (2022-11-16)