Warunki zaliczenia

Zaliczenie wykładu odbędzie sie na podstawie egzaminu. Egzamin ma formę testu w systemie Moodle. W celu zaliczenia egzaminu należy uzyskać minimum 50% punktów.

Zaliczenie laboratorium odbywa się na podstawie rozwiązań zadań z zajęć oraz dwóch projektów zaliczeniowych

Warunki zaliczenia laboratorium:

  • zaliczenie minimum 50% zadań z laboratorium. Każde zadanie oceniane jest w skali 0-1 punktu. Zadanie uznane jest za zaliczone po uzyskaniu 0.5 punktu. Zadania przewidziane są do realizacji w czasie laboratorium, jednakże w przypadku braku oddania rozwiązania lub w przypadku niezaliczenia zadania istnieje możliwość przesłania rozwiązania w późniejszym terminie
  • dwa projekty zaliczeniowe realizowane samodzielnie. Każdy z projektów musi uzyskać min. 50% punktów.

Każdy projekt składa się z aplikacji oraz raportu (opisu).

Raport powinien zawierać zwięzły:

  • opis metody
  • opis wymagań niezbędnych do zainstalowania i uruchomienia aplikacji
  • opis parametrów (ustawień) oraz funkcji programu
  • opis symulacji przeprowadzonych za pomoca aplikacji
  • interpretację wyników symulacji

Projekt 1 to samodzielna implementacja od podstaw wybranej sieci neuronowej wraz z algorytmem treningu.
Projekt powiezień zawierać:

  • implementację algorytmu treningu sieci do rozwiązywania określonego zadania
  • możliwość zmiany ustawień za pomocą odpowiedniego interfejsu (np. GUI, pliki konfiguracyjne lub argumenty wiersza poleceń) bez konieczności „dłubania w kodzie”
  • możliwość zapisu wytrenowanego modelu
  • możliwość wykorzystania zapisanego modelu do predykcji nowych danych

Tematy projektów

  • Self-Organizing Maps (SOM). Wizualizacja mapowania 2D do 1D, np. „sznurek” neuronów odwzorowujący figurę (trójkąt, kwadrat, inne kształty), 2D do 2D np. odwzorowanie siatki neuronów w kwadracie, itp..
  • rozrastająca się kwantyzacja wektorowa, np.: Growing Cell Structures, Neural Gas, inne.
  • MLP z algorytmem wstecznej propagacji w zadaniach klasyfikacji lub regresji. Minimum architektura z jedną warstwą ukrytą o stałej liczbie neuronów wejściowych i wyjściowych. Bardziej ambitnie, dowolna liczba warstw i ilość neuronów w każdej warstwie.
  • sieć Hopfielda w roli pamięci autoasocjacyjnej, np. zapamiętywanie obrazków, cyfr, itp. Można dodać interfejs do rysowania wzorców oraz możliwość zaszumienia wzorca wejściowego. Inne zastosowanie sieci to rozwiązanie problemu optymalizacyjnego jak problem komiwojażera (np. najkrótsza droga pomiędzy miastami korzystając z Google Maps)
  • autoenkoder do kompresji stratnej sygnału. Minimalna architektura z jedna warstwą ukrytą (kodującą) w bardziej ambitnych podejściach możliwośc definiowania dowolnie głębokiego kodera i dekodera. Obok kodowania można zrealizować sieć do odszumiania sygnału.
  • inne „klasyczne” algorytmy, nie tylko z wykładu, po uzgodnieniu z prowadzącym

Projekt 2 to demonstracja działania wybranego modelu głębokiego. Do realizacji można wykorzystać dowolne oprogramowanie lub framework umożliwiający trening głębokich sieci neuronowych (np. TensorFlow, Keras). Projekt może być autorską aplikacją wykorzystującą istniejące modele do własnych zastosowań lub może prezentować użycie znanych modeli wytrenowanych na własnym zestawie danych. W ramach projektu można również zmodyfikować trening wybranego modelu głębokiego wzorując się na repozytoriach dostępnych w internecie. Wówczas raport powinien uwzględniać porównanie wyników działania sieci dla kilku konfiguracji treningu (np. z różną głębokością architektury, z odmiennymi algorytmami regularyzacji, itp.).

Tematy projektów

Przykładowe tematy projektów

  • rozpoznawanie nastroju osoby na zdjęciu lub z kamery
  • generowanie muzyki w stylu wybranego artysty
  • generowanie zdjęć twarzy
  • rozpoznawanie twarzy na zdjęciach
  • rozpoznawanie grzybów z fotografii
  • własne propozycje mile widziane