Wprowadzenie do Sztucznej Inteligencji
Ćwiczenia: wtorki 08:15-10:00, sala 09, 2026
WSI – Ćwiczenia
Organizacja zajęć
- W semestrze jest 14 spotkań ćwiczeniowych. Wynika z tego, że pierwszy teoretycznie możliwy termin należy pominąć.
- W trakcie zajęć będzie do rozwiązania 7 zadań (miniprojektów) z obszaru sztucznej inteligencji.
- Tematy kolejnych zadań będą pojawiać się zgodnie z harmonogramem poniżej.
- Zadania realizujemy indywidualnie, za wyjątkiem ćwiczenia dotyczącego sieci neuronowych.
- W przypadku pojawiających się wątpliwości należy pytać prowadzącego ćwiczenia.
Miniprojekty
Wymagania
- Realizacja zadań typowo wymaga zaimplementowania algorytmu, przeprowadzenia eksperymentów badających jego właściwości i przygotowania raportu/dokumentacji z wnioskami z wykonanych prac. W ramach badań należy wypróbować różne zestawy parametrów implementowanego algorytmu i/lub zastosować go na różnych zbiorach danych, po czym rzetelnie porównać osiągnięte wyniki i wyciągnąć wnioski.
- Nie można wyciągać wniosków na podstawie jednego uruchomienia metody niedeterministycznej (wykorzystującej liczby pseudolosowe). Należy pracować na zagregowanych wynikach z min. 25 uruchomień. Dla takich algorytmów podaje się średnią, odchylenie standardowe, najlepszy i najgorszy wynik.
- Wyniki badań umieszczamy w postaci odpowiednich tabel i wykresów. Po każdym takim elemencie powinien być opis wyjaśniający, co na nim widać (np. dla jakich wartości uzyskano najlepsze wyniki), a następnie wnioski (wnioski z wyników powinny być możliwie blisko tych wyników). Na końcu sprawozdania: wnioski końcowe.
- Jeśli wraz ze wzrostem wartości danego parametru rośnie jakość wyniku, to trzeba zwiększać ten parametr, dopóki nie nastąpi złamanie trendu (analogicznie, jeśli zaczynamy od dużych wartości parametru i prowadzimy eksperymenty w kierunku małych). Nie ma konieczności liniowej modyfikacji wartości parametru (możemy sprawdzić np. 1, 2, 5, 10, 20, 50, a potem zbadać okolice najlepszej wartości).
- Czasem wyniki różnią się nieznacznie; nie można wtedy na siłę wyciągać wniosku o tym, który wiersz w tabeli jest najlepszy.
- Kod przygotowujemy w języku Python.
- Raport: notatnik Jupyter lub plik PDF.
Oddawanie prac
- Oddawanie miniprojektów odbywa się na zajęciach. Oprócz tego kod wraz z raportem należy wysyłać e-mailem prowadzącemu ćwiczenia przed oddaniem.
- Kod źródłowy wraz z raportem projektu należy spakować (najlepiej w formacie .zip). Proszę nie wysyłać linków do GitLaba ani dysku w chmurze.
- W temacie e-maila proszę wpisać “WSI_CW” oraz nie przesyłać binariów, czyli bibliotek, plików wykonywalnych i wyników kompilacji. Jeśli plik okazuje się zbyt duży, należy sprawdzić, czy nie wysyłają Państwo katalogów ukrytych (np. .git), kodów istniejących bibliotek (np. CEC) lub plików z wykresami, które i tak są w sprawozdaniu.
Elementy wpływające na ocenę
- Jakość techniczna dokumentacji (brak literówek, używanie prawidłowego słownictwa).
- Jakość kodu (przydatność, czytelność, stabilność, uniwersalność).
- Kod programu powinien być czytelny (samodokumentujący się).
- W nagłówku każdego pliku z kodem należy umieścić informację o autorze.
- Zaimplementowany algorytm musi być uniwersalny - nie może być związany z konkretnym zbiorem danych.
- Jakość badań (zakres badań, prezentacja wyników, zasadność i głębokość wniosków).
- Typowym błędem są zbyt ogólne wnioski niemające poparcia w wystarczającej liczbie badań; np. jeśli dla konkretnego zadania wyszło, że dobra jest maksymalna wartość pewnego parametru, to nie znaczy, że zawsze powinien on mieć taką wartość.
- Podawanie zbyt wielu cyfr po przecinku nie ma sensu. Zwykle podaje się 2-3 cyfry po przecinku.
- Nieznajomość własnego kodu czy nieumiejętność wyjaśnienia podjętych decyzji skutkuje obniżeniem oceny.
- Za opóźnienia w stosunku do podanych terminów przewidziano karę 20% pkt. za każdy rozpoczęty tydzień spóźnienia, przy czym ostatni dzień zajęć przed sesją egzaminacyjną jest ostatecznym terminem oceny wszystkich zadań.
Harmonogram zajęć
| # | Termin zajęć | Tematyka | Punktacja |
|---|---|---|---|
| 01 | 2026-03-03 | Zad 1: Zagadnienie przeszukiwania i podstawowe podejścia do niego. | 0-7 |
| 02 | 2026-03-10 | Realizacja i konsultacje dot. zad 1. | |
| 03 | 2026-03-17 | Zad 2: Algorytmy ewolucyjne i genetyczne. Ocena poprzedniego zadania. | 0-7 |
| 04 | 2026-03-24 | Realizacja i konsultacje dot. zad 2. | |
| 05 | 2026-03-31 | Zad 3: Dwuosobowe gry deterministyczne. Ocena poprzedniego zadania. | 0-7 |
| 06 | 2026-04-14 | Realizacja i konsultacje dot. zad 3. | |
| 07 | 2026-04-21 | Zad 4: Regresja i klasyfikacja. Ocena poprzedniego zadania. | 0-7 |
| 08 | 2026-04-28 | Realizacja i konsultacje dot. zad 4. | |
| 09 | 2026-05-05 | Zad 5: Sztuczne sieci neuronowe (realizowane w zespołach 2-osobowych). Ocena poprzedniego zadania. | 0-8 |
| 10 | 2026-05-19 | Realizacja i konsultacje dot. zad 5. | |
| 11 | 2026-05-26 | Zad 6: Uczenie się ze wzmocnieniem. Ocena poprzedniego zadania. | 0-7 |
| 12 | 2026-06-02 | Realizacja i konsultacje dot. zad 6. | |
| 13 | 2026-06-09 | Zad 7: Modele bayesowskie. Ocena poprzedniego zadania. | 0-7 |
| 14 | 2026-06-16 | Ocena zad 7. |
