Sztuczne sieci neuronowe z biblioteką PyTorch 1100-SSN
Przedstawione niżej punkty odpowiadają w przybliżeniu kolejnym zajęciom. Zależnie od postępów grupy podczas 15 spotkań przerobionych zostanie nieco mniej lub więcej od podanych 15 punktów.
1) Regresja liniowa z wykorzystaniem pakietu numpy i równań normalnych albo minimalizacji metodą gradientu.
2) Zbiór danych do klasyfikacji irysów. Regresja logistyczna z wykorzystaniem pakietu numpy. Uproszczony zbiór danych do klasyfikacji ręcznie pisanych cyfr.
3) Regresja liniowa z wykorzystaniem biblioteki PyTorch i równań normalnych albo minimalizacji metodą gradientu. Operacje na tensorach, automatyczne różniczkowanie i optymalizatory.
4) Regresja logistyczna z wykorzystaniem biblioteki PyTorch. Funkcje straty, entropia krzyżowa. Podział danych na porcje. Zbiór uczący i testowy. Dokładność klasyfikacji.
5) Sieć wielowarstwowa w pełni połączona. Inicjalizacja wag. Różne funkcje aktywacji, funkcja ReLU. Pełen zbiór danych do klasyfikacji ręcznie pisanych cyfr MNIST. Moduł TorchVision i narzędzia do wizualizacji danych.
6) Prowadzenie obliczeń na karcie graficznej. Różne metody minimalizacji, metoda Adam.
7) Splot w bibliotekach numpy i PyTorch. Splot jedno i dwuwymiarowy. Filtry i kanały obrazu. Filtr Sobla do wykrywania krawędzi. Sieci splotowe.
8) Gotowe warstwy biblioteki PyTorch. Modele sekwencyjne. Moduł TorchSummary i podsumowanie architektury oraz parametrów modelu. Warstwy pooling. Wielowarstwowe sieci splotowe i dokładność klasyfikacji cyfr.
9) Zapisywanie parametrów modelu na dysku. Sposoby zapobiegania przeuczeniu. Wczesny stop, regularyzacja, dropout. Narzędzia do obsługi dużych zbiorów danych.
10) Zagadnienie regresji. Dopasowanie funkcji zadanej siecią neuronową do punktów pomiarowych. Robot poruszający się wzdłuż krzywej narysowanej na podłożu.
11) Uczenie ze wzmocnieniem. Procesy decyzyjne Markowa. Środowisko, agent, stan, akcja, nagroda. Wartości stanów i akcji, polityka. Równania Bellmana i programowanie dynamiczne. Znajdowanie najkrótszej drogi w prostej grze planszowej.
12) Q-Learning. Podejście tabelaryczne i wykorzystanie sieci neuronowych. Znajdowanie drogi w labiryncie.
13) Środowisko OpenAI Gym. Utrzymywanie w pionie pręta na palcu w środowisku Gym. Rozwiązanie ręczne i przy pomocy Q-Learningu. Zapobieganie zapominaniu. Metody experience replay i target network.
14) Wyznaczanie optymalej polityki. Metoda entropii krzyżowej. Metoda gradientu polityki i algorytm REINFORCE. Wjeżdżanie samochodem na górę w środowisku Gym.
15) Redukcja wariancji estymatora gradientu. Poziom odniesienia. Trenowanie lądownika księżycowego w środowisku Gym.
Założenia (opisowo)
Efekty kształcenia
1) Swobodne posługiwanie się najważniejszymi składnikami biblioteki PyTorch.
2) Umiejętność samodzielnej implementacji podstawowych rodzajów sieci neuronowych oraz różnych algorytmów uczących.
3) Umiejętność uczenia sieci z użyciem procesora i karty graficznej, doboru architektury i hiperparametrów, monitorowania postępu itp.
4) Umiejętność rozwiązywania podstawowych zadań z dziedziny uczenia nadzorowanego i uczenia ze wzmocnieniem.
Kryteria oceniania
Można otrzymać 100 punktów podzielonych na następujące pozycje:
Obecności: 15
Aktywność: 35
Pierwsze kolokwium: 25
Drugie kolokwium: 25
Najważniejszym elementem oceny jest aktywność, za którą punkty będą przyznawane następująco. Każdy napisany na zajęciach program można ulepszyć przyspieszając uczenie, zwiększając dokładność klasyfikacji itp. Można to zrobić zmieniając architekturę bądź hiperparametry sieci, algorytm uczenia itp. Po zakończeniu wybranych przykładów ogłaszane będą konkursy na takie ulepszenia. Osoby, które na kolejnych zajęciach przedstawią najciekawsze ulepszenia, dostaną punkty za aktywność. Wynik za aktywność może przekroczyć przewidziane 35 punktów, a nadmiar uzupełnia wtedy niedobory z pozostałych pozycji. Kolokwia odbędą się w dodatkowych terminach poza zajęciami. Pierwsze będzie dotyczyć uczenia nadzorowanego, a drugie uczenia ze wzmocnieniem. Na podstawie sumy punktów ze wszystkich pozycji ocena końcowa wystawiona zostanie według następującej tabeli:
0-50: 2.0
51-60: 3.0
61-70: 3.5
71-80: 4.0
81-90: 4.5
91-100: 5.0
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: