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.
- 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.
- 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.
- Do końca siódmego tygodnia semestru należy przedstawić
wstępne założenia obejmujące:
- szczegółową interpretację tematu projektu,
- opis algorytmów, które będą implementowane i badane,
- określenie środowiska implementacji (język programowania,
biblioteki),
- plan eksperymentów,
- 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).
- 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:
- uzyskane wyniki,
- dyskusję wyników i wnioski.
- Na ocenę z projektu (100%) składają się:
- ocena założeń wstępnych (20%),
- ocena implementacji (50%),
- ocena badań eksperymentalnych i dokumentacji (30%).
- 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.
- 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).
- 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.
- 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.
- 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ć:
- autora wpisu,
- nazwę narzędzia (oraz, jeśli dotyczy, wersję modelu i wariant
konfiguracji),
- pełną treść promptu,
- pełną treść odpowiedzi,
- sposób wykorzystania odpowiedzi (np. dosłownie, po modyfikacji, jako wskazówkę,
ewentualnie informację o jej niewykorzystaniu),
- dokładne miejsce wykorzystania odpowiedzi (np. plik źródłowy
i funkcję lub zakres wierszy kodu, podrozdział i stronę
dokumentacji, wskazanie decyzji projektowej, na którą odpowiedź
wpłynęła).
Niedostarczenie dziennika promptów jest równoznaczne z oświadczeniem
wszystkich wykonawców, że żaden z nich nie korzystał z AI podczas
realizacji projektu.
- 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