Wprowadzenie do sztucznej inteligencji
Przedmiot stanowi wprowadzenie do głównych gałęzi sztucznej inteligencji, a w szczególności algorytmów ewolucyjnych i genetycznych, uczenia maszynowego, sztucznych sieci neuronowych i automatycznego wnioskowania.
Ćwiczenia związane z przedmiotem są nastawione na implementację metod sztucznej inteligencji i ich zastosowanie do rozwiązywania realistycznych problemów.
W tytule e-maili związanych z przedmiotem powinien znaleźć się skrót WSI.
Nie używam Teams, w razie potrzeby proszę kontaktować się mailem.
Tematyka wykładów
- Sprawy organizacyjne. Definicja sztucznej inteligencji. Historia sztucznej inteligencji Słaba i silna sztuczna inteligencja. Przykłady współczesnych zastosowań sztucznej inteligencji. Zagadnienie przeszukiwania i podstawowe podejścia do niego-wstęp.
- Zagadnienie przeszukiwania i podstawowe podejścia do niego. Definicja zadania przeszukiwania: przestrzeń przeszukiwania, funkcja celu. Podstawowe metody analityczne: metoda gradientu prostego, metoda Newtona. Optymalizacja stochastyczna: metoda stochastycznego najszybszego spadku.
- Algorytmy genetyczne i ewolucyjne. Ogólna struktura algorytmu genetycznego. Kodowanie rozwiązania. Krzyżowanie i mutacja w algorytmach genetycznych. Ogólna struktura algorytmu ewolucyjnego. Krzyżowanie i mutacja. Algorytm (1+1). Algorytm (mu+lambda).
- Dwuosobowe gry deterministyczne. Algorytm przeszukania wyczerpującego. Algorytm min-max. Przycinanie alfa-beta. Techniki pomocnicze: książka otwarć, heurystyki wybierające kolejność analizowanych ruchów.
- Regresja i klasyfikacja. Modele liniowe. Maszyna Wektorów Nośnych (SVM). Drzewa decyzyjne i ich indukcja algorytmami ID3 i C4.5. Gradient Boosting. Miary jakości regresji i klasyfikacji.
- Sztuczne sieci neuronowe. Perceptron dwuwarstwowy. Wsteczna propagacja gradientu. Uczenie sieci.
- Uczenie się ze wzmocnieniem. Model Procesu Decyzyjnego Markowa. Algorytm Q-Learning. Strategie wyboru akcji. Eksploracja i eksploatacja w uczeniu się ze wzmocnieniem.
- Logika zdań i logika predykatów. Zdania. Spójniki logiczne. Predykaty. Termy. Literały. Klauzule. Podstawienie i unifikacja. Sprowadzanie formuły logiki predykatów do postaci zbioru klauzul.
- Wnioskowanie. Wnioskowanie w przód. Wnioskowanie wstecz. Wnioskowanie przez rezolucję i zaprzeczenie. Poprawność i zupełność systemu wnioskującego. Strategie sterowania wnioskowaniem: przeszukiwanie wszerz, strategia zbioru uzasadnień, strategia liniowa, strategia z preferencją dla krótkich klauzul.
- Modele bayesowskie. Algorytmy uczenia maszynowego jako estymatory. Uczenie z zastosowaniem maksymalnej wiarygodności, maksimum a`posteriori i entropii krzyżowej. Sieci Bayesa i klasyfikator bayesowski.
- Bezpieczeństwo systemów sztucznej inteligencji. Komputery kwantowe.
Tematyka ćwiczeń, czas realizacji zadań i punktacja
Ćwiczenia rozpoczynają się w drugim tygodniu zajęć (jest 14 spotkań, licząc od końca semestru).
Lp. | Tematyka | Spotkań na realizację | Punktacja |
1 |
Zagadnienie przeszukiwania i podstawowe podejścia do niego |
2 |
7 |
2 |
Algorytmy ewolucyjne |
2 |
7 |
3 |
Dwuosobowe gry deterministyczne |
2 |
7 |
4 |
Regresja i klasyfikacja |
2 |
7 |
5 |
Sztuczne sieci neuronowe |
2 |
8 |
6 |
Uczenie się ze wzmocnieniem |
2 |
7 |
7 |
Modele bayesowskie |
2 |
7 |
Tylko zadania z sieci neuronowych będą wykonywane w zespołach dwuosobowych, pozostałe zadania będą realizowane samodzielnie.
Celem ćwiczeń jest wykonanie własnej implementacji i jej wstępne przebadanie.
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.
Wynikiem prac jest kod źródłowy oraz dokumentacja obrazująca jak ten kod został przebadany (np. jakie parametry zmieniano, jakie zbiory danych zostały wykorzystane, jakie uzyskano wyniki i co z tego wynika).
Składniki oceny:
- Jakość techniczna dokumentacji (brak literówek, używanie prawidłowego słownictwa).
- Jakość kodu (przydatność, czytelność, stabilność, uniwersalność).
- Jakość badań (zakres badań, prezentacja wyników, zasadność i głębokość wniosków).
- 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ń.
- Nieznajomość własnego kodu czy nieumiejętność wyjaśnienia podjętych decyzji skutkuje obniżeniem oceny.
Uwagi:
- Przez wyniki rozumie się zestawienia tabelaryczne, do których cennym dodatkiem mogą być wykresy (tam gdzie ma to sens).
- Podawanie wielu cyfr po przecinku nie ma sensu. Zwykle podaje się 2 cyfry po przecinku.
- Wyniki modyfikacji pewnego algorytmu należy porównać z wynikami wersji podstawowej tego algorytmu.
- 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.