2021L-ZZSN - projekty
Zaawansowane zagadnienia sieci neuronowych - projekty
Last updated
Zaawansowane zagadnienia sieci neuronowych - projekty
Last updated
grupa 101
grupa 102
grupa 103
grupa 104
Część projektowa zajęć z Zaawansowanych zagadnień sieci neuronowych polega na implementacji zaawansowanych modeli sieci neuronowych nawiązujących do tematów omawianych na wykładzie.
Projekty realizowane są w zespołach dwuosobowych. Celem projektu jest rozwiązanie problemu o charakterze użytkowym lub badawczym i jednoczesne zrozumienie danego zagadnienia przez zespół. Oznacza to, że przy realizacji można się posiłkować publicznymi implementacjami, ale nie zwalnia to zespołu z przygotowania się do dokładnego wytłumaczenia zasady działania prezentowanego rozwiązania.
Projekty powinny być realizowane w języku Python 3.8+ z wykorzystaniem biblioteki PyTorch, ewentualnie TensorFlow. Sugerowanym podejściem do ustrukturyzowania kodu jest wykorzystanie biblioteki PyTorch Lightning. Szkielet takiego rozwiązania dostępny jest w repozytorium .
Dodatkowe informacje udostępniane będą na bieżąco w zespole MS Teams przedmiotu.
Za część projektową można uzyskać łącznie 35 punktów:
dokumentacja wstępna - 5 punktów,
implementacja modelu - 15 punktów,
dokumentacja końcowa i prezentacja projektu - 15 punktów.
Dokumentacja wstępna powinna zawierać opis zadania, przewidywany sposób rozwiązania problemu i wyjaśnienie poczynionych założeń (typ modelu, wybrane zbiory danych, narzędzia, zakładana funkcjonalność itp.).
W ramach implementacji, poza zrealizowaną funkcjonalnością i zakresem eksperymentów, oceniana jest przede wszystkim jakość i czytelność wygenerowanego kodu. Kod powinien dać się uruchomić po postawieniu środowiska conda według pliku environment.yml z repozytorium (w wyjątkowych przypadkach obraz z Dockerfile). Mile widziane są adnotacje typowania statycznego i podstawowy zakres testów adekwatny do specyfiki testowania projektów machine learningowych, ale elementy te nie są wymagane do uzyskania maksymalnej liczby punktów, jeżeli nie ma żadnych innych zastrzeżeń.
W dokumentacji końcowej należy zawrzeć opis rozwiązania ze zwięzłym wyjaśnieniem kontekstu danego zagadnienia lub zasady działania modelu, wyniki eksperymentów i wnioski po realizacji projektu.
Dokumentację i kod źródłowy należy umieścić w repozytorium git dedykowanym dla zespołu (dokładne informacje na kanale MS Teams).
Wyszczególnione daty oznaczają termin na koniec dnia (23:59). Przez dostarczenie materiałów rozumiany jest commit w udostępnionym przeze mnie repozytorium dedykowanym dla projektu.
Data
Etap realizacji
19.03.2021 (piątek)
Zgłoszenie składów zespołów wraz z preferencjami tematów (proszę dołączyć loginy na GitHubie)
22.03.2021 (poniedziałek)
Przydział tematów do zespołów
16.04.2021 (piątek)
Dostarczenie dokumentacji wstępnej
2.06.2021 (środa)
8.06.2021 (wtorek)
Dostarczenie kodu źródłowego i dokumentacji końcowej
7-11.06.2021
9-11.06.2021
Prezentacje i ocena projektów
16.06.2021 (środa)
18.06.2021 (piątek)
Ostateczny termin na oddanie projektu z karą -10 punktów
(po tym terminie projekty nie będą oceniane)
Lp.
Temat
1
Zmiana pogody na zdjęciach za pomocą transferu stylu
2
Generowanie twarzy postaci z filmów animowanych za pomocą sieci GAN
3
Detekcja maseczek ochronnych na zdjęciach z wykorzystaniem detektora YOLO
4
Usuwanie tła za pomocą sieci typu U-Net
5
Segmentacja zdjęć lotniczych za pomocą sieci typu U-Net
6
Wykorzystanie sieci impulsowej do klasyfikacji dźwięku
7
Przeciwstawne uczenie ciągłe klasyfikatorów dźwiękowych
8
Rezydualne uczenie ciągłe klasyfikatorów obrazowych
9
Wyszukiwanie efektywnych podsieci w klasyfikatorze danych dźwiękowych
10
Wykorzystanie sieci kapsułkowych do klasyfikacji chmur punktów
11
Predykcja liczby zachorowań na COVID-19 za pomocą grafowych sieci czasowo-przestrzennych
12
Analiza wydźwięku depesz giełdowych za pomocą modelu typu BERT
13
Wykorzystanie architektury typu Music Transformer do generowania dzwonków telefonicznych
14
Wykorzystanie uczenia samonadzorowanego do poprawy klasyfikacji dźwięku
15
Uczenie klasyfikatorów dźwiękowych niewielką liczbą przykładów z wykorzystaniem sieci prototypowych
?
Możliwe tematy własne po konsultacji
2. Generowanie twarzy postaci z filmów animowanych za pomocą sieci GAN
3. Detekcja maseczek ochronnych na zdjęciach z wykorzystaniem detektora YOLO
4. Usuwanie tła za pomocą sieci typu U-Net
5. Segmentacja zdjęć lotniczych za pomocą sieci typu U-Net
6. Wykorzystanie sieci impulsowej do klasyfikacji dźwięku
7. Przeciwstawne uczenie ciągłe klasyfikatorów dźwiękowych
8. Rezydualne uczenie ciągłe klasyfikatorów obrazowych
9. Wyszukiwanie efektywnych podsieci w klasyfikatorze danych dźwiękowych
10. Wykorzystanie sieci kapsułkowych do klasyfikacji chmur punktów
11. Predykcja liczby zachorowań na COVID-19 za pomocą grafowych sieci czasowo-przestrzennych
12. Analiza wydźwięku depesz giełdowych za pomocą modelu typu BERT
13. Wykorzystanie architektury typu Music Transformer do generowania dzwonków telefonicznych
14. Wykorzystanie uczenia samonadzorowanego do poprawy klasyfikacji dźwięku
15. Uczenie klasyfikatorów dźwiękowych niewielką liczbą przykładów z wykorzystaniem sieci prototypowych
Poza raportem końcowym dobrze byłoby, gdyby w ramach rozwiązania można zrozumieć i sprawdzić działanie modelu na przykładach, najlepiej w sposób interaktywny.
Do realizacji projektów można wykorzystać darmowe zasoby obliczeniowe:
Jeżeli uda się pozyskać grant edukacyjny na przedmiot, to dostępne będą dodatkowo kupony do wykorzystania w Google Cloud.
W szczególnych przypadkach (np. uczenie samonadzorowane) możliwe jest też przydzielenie zasobów z puli uczelnianej.
W zależności od wymagań projektu i dostępnych mocy obliczeniowych uczenie modeli może zająć dłuższy czas (liczony w dniach). Proszę uwzględnić ten fakt przy rozplanowywaniu harmonogramu prac.
Niejasności można wyjaśniać poprzez MS Teams lub na konsultacjach (po ).
Pobranie obrazków z kamer internetowych (np. ) z różnych momentów w czasie (timelapse).
Porównanie z uczeniem na zdjęciach, które nie pochodzą z tego samego ujęcia (np. ).
Przykładowy zbiór danych: , ewentualnie
Przykładowe zbiory danych:
Przykładowy zbiór danych:
Przykładowy zbiór danych:
W ramach podsumowania proszę przetestować działanie narzędzia na .
Celem projektu jest implementacja kilku wariantów prostych architektur sieci impulsowej i porównanie ich działania na zbiorze wizyjnym oraz zbiorze dźwiękowym
Sugerowany framework do implementacji:
Celem projektu jest implementacja metody uczenia ciągłego określanej jako i weryfikacja jej działania w kontekście klasyfikacji dźwięku (np. na , lub ).
Celem projektu jest implementacja metody uczenia ciągłego określanej jako i weryfikacja jej działania w kontekście klasyfikacji obrazów (np. na CIFAR-10/CIFAR-100).
Celem projektu jest przebadanie działania metody do szybkiego wyszukiwania efektywnych podsieci w klasyfikatorach dźwiękowych (np. o architekturze zbliżonej do OpenL3).
W ramach podsumowania proszę zweryfikować dokładność działania modelu bazowego i podsieci typu lottery ticket na wybranych zbiorach z zakresu klasyfikacji dźwięku (np. , , lub ).
W ramach podsumowania proszę porównać działanie sieci kapsułkowej z innym modelem (np. ) w zadaniu klasyfikacji chmur punktów (np. ).
Celem projektu jest zastosowanie do predykcji liczby zachorowań na COVID-19 dla (podział na hrabstwa).
W ramach podsumowania proszę porównać działanie modelu z predykcjami prostych lokalnych modeli autoregresyjnych oraz zweryfikować poprawność implementacji na .
Do implementacji zalecane jest wykorzystanie biblioteki .
W przypadku tego projektu bardzo pożądanym elementem jest wizualizacja predykcji na mapie, np. za pomocą .
Celem projektu jest wykorzystanie polskiego modelu typu BERT (np. albo ) do oceny wydźwięku (negatywny/neutralny/pozytywny) depesz na polskiej Giełdzie Papierów Wartościowych.
Wykorzystanie modelu wstępnie trenowanego na korpusie języka polskiego do zadania analizy wydźwięku, np. na zbiorze . Porównanie działania modelu przy zmianie dziedziny ().
Stworzenie bazy danych z . Adnotacją wydźwięku generowaną syntetycznie może być następująca po komunikacie nadmiarowa zmiana w stosunku do zmiany szerokiego rynku.
Celem projektu jest stworzenie modelu o architekturze , którego zadaniem jest generowanie krótkich fragmentów muzycznych o charakterze dzwonka telefonicznego.
Przygotowanie zbioru o charakterze adekwatnym dla potencjalnego zastosowania.
Przetworzenie wygenerowanych sekwencji do postaci dźwiękowej za pomocą syntezy offline (np. ), wybranego odtwarzacza MIDI w JavaScript albo wykorzystania wybranego (np. przez ).
Celem projektu jest wyuczenie modelu rozumienia dźwięku w sposób samonadzorowany na zbiorze danych nieetykietowanych, np. wzorując się na podejściu lub . Tak wyuczony model należy następnie wykorzystać do klasyfikacji spektrogramów z mniejszego zbioru etykietowanego i porównać dokładność klasyfikacji z modelem uczonym w standardowy sposób (w pełni nadzorowany, tylko na zbiorze etykietowanym), ewentualnie przeanalizować odporność obydwu modeli na złośliwe modyfikacje typu adversarial attacks.
Przykładowe zbiory danych: i
Celem projektu jest stworzenie modelu do uczenia klasyfikatorów dźwiękowych niewielką liczbą przykładów (few-shot learning).
Stworzenie standardowego klasyfikatora dźwiękowego (np. na podstawie architektury ) i wyuczenie go na zbiorze danych .
Ocena tego samego modelu w uczeniu z ograniczoną liczbą przykładów (np. połowa klas dostępna normalnie, połowa tylko po przykładów uczących).
Porównanie z działaniem modelu sieci prototypowej dla różnych wartości .
Sugerowanym narzędziem do tego typu prostych podsumowań jest , ewentualnie lub inne rozwiązania tego typu.