Uczenie maszynowe:
zasady realizacji projektu


Zasady ogólne

Wszystkie przewidywane tematy projektów obejmują implementację pewnych algorytmów uczenia się, na ogół spośród omawianych na wykładzie (niekiedy z pewnymi modyfikacjami do samodzielnego opracowania), oraz przeprowadzenie badań eksperymentalnych mających na celu ocenę ich właściwości. Proponowane tematy przewidywane są do realizacji dwuosobowej. W uzasadnionych przypadkach będzie możliwe zaproponowanie własnego tematu projektu.

Wymagania i kryteria oceniania

Podane niżej zasady mają na celu zapewnienie sprawnej realizacji projektu i procesu oceniania, a nie wprowadzanie nadmiernego rygoryzmu. W indywidualnych uzasadnionych przypadkach niektóre z tych zasad mogą zostać złagodzone. Zdarza się też, że wynikające z ogólnych zasad terminy są ze względu na specyficzny układ kalendarza semestru przesuwane o kilka dni, jednak są to wyłącznie przesunęcia w przód (wydłużenie dostępnego czasu).

W przypadku, gdy projekt prowadzi inny prowadzący, może on uszczegółowić bądź zmodyfikowac niektóre zapisane tu warunki dla osób realizujących projekt pod jego kierunkiem. Osoby te powinny zapoznać się z przedstawionymi przez niego informacjami.

  1. Projekt polega na implementacji lub modyfikacji istniejącej implementacji pewnego algorytmu uczenia się oraz przeprowadzeniu eksperymentalnego badania jego właściwości, z użyciem dowolnego języka programowania (o ile temat projektu nie określa inaczej), przy czym zakres ewentualnego wykorzystania funkcji z dostępnych bibliotek wymaga uzgodnienia.
  2. Wybór tematu projektu musi nastąpić do końca piątego tygodnia semestru. Niedokonanie wyboru tematu w tym terminie może być traktowane jako rezygnacja z wykonywania projektu.
  3. Do końca siódmego tygodnia semestru należy przedstawić wstępne założenia obejmujące:
    1. szczegółową interpretację tematu projektu,
    2. opis algorytmów, które będą implementowane i badane,
    3. określenie środowiska implementacji (język programowania, biblioteki),
    4. plan eksperymentów,
    5. otwarte kwestie wymagające późniejszego rozwiązania (wraz z wyjaśnieniem powodów, dla których ich rozwiązanie jest odłożone na później).
  4. Do końca przedostatniego tygodnia zajęć w semestrze należy dostarczyć kod źródłowy opracowanego oprogramowania w formie elektronicznej, dokumentację kodu źródłowego w formie elektronicznej oraz dokumentację projektu zawierającą w poszerzonej i w razie potrzeby zmodyfikowanej postaci elementy wymienione wyżej dla założeń wstępnych oraz dodatkowo:
    1. uzyskane wyniki,
    2. dyskusję wyników i wnioski.
  5. Na ocenę z projektu (100%) składają się:
    1. ocena założeń wstępnych (20%),
    2. ocena implementacji (50%),
    3. ocena badań eksperymentalnych i dokumentacji (30%).
  6. Opóźnienie w oddaniu założeń wstępnych nie przekraczające jednego tygodnia powoduje przemnożenie uzyskanej oceny za założenia wstępne przez współczynnik 0.8. Po upływie jednego tygodnia od terminu założenia nie będą przyjmowane do oceny, a ocena późniejszych elementów projektu będzie automatycznie mnożona przez współczynnik 0.8.
  7. Po zakończeniu zajęć w semestrze kod i dokumentacja nie będą przyjmowane, z wyjątkiem uzasadnionych przypadków losowych. Opóźnienie w oddaniu któregokolwiek z produktów końcowych projektu (kodu źródłowego lub dokumentacji) nieprzekraczające jednego tygodnia powoduje przemnożenie uzyskanych ocen za realizację projektu przez współczynnik 0.8 (w przypadku braku założeń wstępnych łączny mnożnik wyniesie 0.8*0.8=0.64).
  8. Przy ustalaniu numerów tygodni, o których mowa wyżej, uwzględnia się wyłącznie tygodnie, w których zgodnie z obowiązującym kalendarzem zajęć odbywa się wykład (tzn. pomijane są tygodnie, w których dzień wykładu jest dniem wolnym od zajęć dydaktycznych lub w dniu wykładu realizowane są zajęcia według rozkładu z innego dnia).

Użycie AI

Podczas realizacji projektu dopuszczalne jest wykorzystanie narzędzi AI, tj. inteligentnych asystentów opartych na dużych modelach językowych, przy czym obowiązują następujące zasady.

  1. Odpowiedzialność. Wykonawcy w pełni odpowiadają za kod, eksperymenty, wyniki i dokumentację. Mają obowiązek zweryfikować treści i rozwiązania uzyskane z AI. Błędy i braki w projekcie (np. niepoprawny kod, zmyślone informacje, nieuzasadnione wnioski itp.) obciążają wykonawców.
  2. Dziennik promptów. Do projektu należy dołączyć plik w formacie XLSX, ODS lub CSV dokumentujący użycie AI przez wszystkich wykonawców. Każdy wiersz powinien zawierać: Niedostarczenie dziennika promptów jest równoznaczne z oświadczeniem wszystkich wykonawców, że żaden z nich nie korzystał z AI podczas realizacji projektu.
  3. Wpływ na ocenę. Zakres i jakość własnego wkładu myślowego wykonawców podlegają ocenie. Stwierdzone użycie AI nieujawnione w dzienniku promptów oraz jego niespójności z zawartością projektu obniżają ocenę. Wybrane zespoły mogą zostać zaproszone na prezentację projektu na żywo w celu weryfikacji rozumienia projektu i własnego wkładu poszczególnych wykonawców.
Dziennik promptów — przykład wpisu
Autor Narzędzie Prompt Odpowiedź Sposób wykorzystania Miejsce wykorzystania
Jan Kowalski ChatGPT, GPT-5.6 Sol, effort=medium Wskaż dwa parametry drzew decyzyjnych, które najsilniej wpływają na jakość klasyfikacji. Najczęściej największy wpływ mają: 1. Maksymalna głębokość drzewa (max_depth) – określa złożoność modelu. Zbyt mała prowadzi do niedouczenia, a zbyt duża sprzyja przeuczeniu. 2. Minimalna liczba próbek w liściu (min_samples_leaf) – ogranicza tworzenie reguł opartych na bardzo małej liczbie obserwacji, co zwykle poprawia uogólnianie. Nie ma jednak dwóch parametrów najlepszych dla każdego zbioru danych; ich wartości warto dobrać przez walidację krzyżową. Po modyfikacji w tekście i jako wskazówka przy implementacji. Dokumentacja: podrozdział 2.3 (Konfiguracja algorytmów), s. 5. Kod: dectree.py, funkcja set_conf().

Strona przedmiotu UMA

Paweł Cichosz