- Nazwa przedmiotu:
- Uczenie maszynowe
- Koordynator przedmiotu:
- Rajmund Kożuszek
- Status przedmiotu:
- Fakultatywny ograniczonego wyboru
- Poziom kształcenia:
- Studia I stopnia
- Program:
- Informatyka
- Grupa przedmiotów:
- Sztuczna inteligencja
- Kod przedmiotu:
- UMA
- Semestr nominalny:
- 5 / rok ak. 2021/2022
- Liczba punktów ECTS:
- 4
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- 1.	liczba godzin kontaktowych – 35 godz.,w tym:
a.	obecność na wykładach: 30 godz.,
b.	udział 	w konsultacjach związanych z treścią wykładu: 1 godz.,
c.	udział w konsultacjach związanych z realizacją projektu: 4 godz.,
2.	praca własna studenta – 75 godz., w tym:
a.	przygotowanie do wykładów (przejrzenie materiałów z wykładu i dodatkowej literatury, próba rozwiązania ćwiczeń domowych sformułowanych na wykładzie): 15 godz.,
b.	realizacja projektu: 10 godz. (zapoznanie się z literaturą i oprogramowaniem) + 30 godz. (wykonanie zadań projektowych) + 10 godz. (sporządzenie dokumentacji) = 50 godz.,
c.	przygotowanie do kolokwium: 10 godz.
Łączny nakład pracy studenta wynosi 110 godz., co odpowiada 4 punktom ECTS.
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- 1.25 pkt. ECTS, co odpowiada 35 godzinom kontaktowym
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- 2 pkt. ECTS, co odpowiada 50 godz. realizacji projektu
- Formy zajęć i ich wymiar w semestrze:
- 
            
                - Wykład30h
- Ćwiczenia0h
- Laboratorium0h
- Projekt15h
- Lekcje komputerowe0h
 
- Wymagania wstępne:
- Podstawy informatyki i programowania, Wstęp do sztucznej inteligencji
- Limit liczby studentów:
- 60
- Cel przedmiotu:
- Celem przedmiotu jest zapoznanie studentów z elementami teorii oraz podstawowymi algorytmami uczenia maszynowego. Jest to wiodący obszar badań naukowych w zakresie sztucznej inteligencji, a opracowane w wyniku tych badań algorytmy znajdują liczne zastosowania praktyczne. Przegląd wybranych algorytmów uczenia się, poprzedzony dyskusją podstaw teoretycznych niezbędnych do zrozumienia ich możliwości i ograniczeń, przygotowuje studentów do ich stosowania i implementowania, a także do głębszego zapoznania się z tą tematyką w ramach oferowanych przedmiotów obieralnych.
Dzięki ograniczeniu zakresu przedmiotu do najważniejszych wyników teoretycznych oraz algorytmów stosunkowo prostych koncepcyjnie i implementacyjne mogą być one prezentowane szczegółowo i przystępnie. Aby ułatwić pełne i poprawne zrozumienie omawianych na wykładzie zagadnień teoretycznych oraz mechanizmów działania algorytmów, są one ilustrowane przykładami. Wykład jest prowadzony z wykorzystaniem metody interaktywnego nauczania (interactive classroom teaching), przez angażowanie studentów w dyskusję i stymulowanie ich aktywnego udziału w analizowaniu właściwości omawianych algorytmów oraz śledzeniu przykładów ich działania. Projekt daje okazję do zdobycia doświadczeń praktycznych w zakresie implementowania i stosowania algorytmów uczenia się.
- Treści kształcenia:
- Treść wykładu
1.	Wprowadzenie do uczenia się (2 godz.)
Definicja uczenia się; wnioskowanie indukcyjne; rodzaje uczenia się; przykłady zastosowań systemów uczących się; zadanie uczenia się pojęć (klasyfikacji); błąd hipotezy; nadmierne dopasowanie; obciążenie indukcyjne.
2.	Podstawy obliczeniowej teorii uczenia się (4 godz.)
Model PAC; przestrzeń wersji; spójne i agnostyczne uczenie się; wymiar VC; model ograniczania pomyłek; praktyczne wnioski z teorii.
3.	Przeszukiwanie przestrzeni wersji (2 godz.)
Częściowy porządek przestrzeni hipotez; ograniczenie ogólne i szczegółowe przestrzeni wersji; algorytm eliminacji kandydatów; generalizacja i specjalizacja hipotez; algorytm połowienia.
4.	Indukcja zbiorów reguł (4 godz.)
Reprezentacja hipotez za pomocą zbiorów reguł; sekwencyjne pokrywanie; mechanizmy specjalizacji warunków reguł; ocena jakości warunków reguł; unikanie nadmiernego dopasowania.
5.	Indukcja drzew decyzyjnych (4 godz.)
Reprezentacja hipotez za pomocą drzew; zstępująca budowa drzewa; kryteria stopu i wyboru podziału; unikanie nadmiernego dopasowania.
6.	Klasyfikatory liniowe (2 godz.)
Reprezentacja hipotez za pomocą modelu liniowego; liniowa separowalność; wyznaczanie liniowej granicy decyzyjnej.
7.	Ocena jakości klasyfikatorów (2 godz.)
Macierz pomyłek; wskaźniki jakości oparte na macierzy pomyłek; analiza ROC; walidacja krzyżowa.
8.	Uczenie się języków regularnych (2 godz.)
Reprezentacja hipotez za pomocą automatów skończonych; zapytania o przynależność i równoważność; algorytm L*; sekwencje sprowadzające.
9.	Uczenie się ze wzmocnieniem (4 godz.)
Scenariusz uczenia się na podstawie nagród; procesy decyzyjne Markowa; strategie i funkcje wartości; uczenie się funkcji wartości i funkcji wartości akcji; reprezentacja funkcji wartości; strategie eksploracji.
10.	Zastosowania (2 godz.)
Wybrane przykłady praktycznych zastosowań algorytmów uczenia maszynowego.
PROJEKT
Celem jest samodzielne zastosowanie metod z obszaru uczenia maszynowego w praktyce. Projekt realizowany w zespołach 2-osobowych będzie swoim zakresem obejmować:
1.	eksperymenty z użyciem dostępnych bibliotek dostarczających implementacji algorytmów uczenia maszynowego,
2.	samodzielną implementację lub modyfikację dostępnej implementacji algorytmu uczenia maszynowego i badanie jego właściwości,
3.	zadania wymagające doboru odpowiednich metod uczenia maszynowego, ich zastosowania oraz zaraportowania i oceny jakości uzyskanych wyników.
- Metody oceny:
- Realizacja przedmiotu obejmuje następujące formy zajęć:
●	wykład prowadzony w wymiarze 2 godz. tygodniowo,
●	projekt realizowany samodzielnie w zespołach,
●	konsultacje.
Sprawdzanie założonych efektów kształcenia realizowane jest przez:
●	ocenę wiedzy i umiejętności wykazanych na sprawdzianie pisemnym,
●	ocenę wiedzy i umiejętności związanych z realizacją zadań projektowych – ocena wykonanych prac implementacyjnych, eksperymentalnych i jakości dokumentacji, 
●	formatywną ocenę związaną z rozwiązywaniem ćwiczeń domowych formułowanych na wykładzie, udziałem w konsultacjach i interaktywną formą prowadzenia wykładu.
- Egzamin:
- nie
- Literatura:
- 1.	T. Mitchell: Machine Learning. McGraw Hill, 1997.
2.	I. H. Witten, E. Frank, M. A. Hall, C. J. Pal: Data Mining: Practical Machine Learning Tools and Techniques. Morgan Kaufmann, 2016.
3.	Y. S. Abu-Mostafa, M. Magdon-Ismail, H.-T. Lin: Learning from Data: A Short Course. AMLBook, 2012. 
4.	P. Cichosz: Systemy uczące się. Wydawnictwa Naukowo-Techniczne, 2001, 2007.
5.	Biblioteka Weka.
6.	Pakiety języka R (m.in. rpart, e1071, ReinforcementLearning, RWeka).
7.	Pakiety języka Python (m.in. scikit-learn, gym).
- Witryna www przedmiotu:
- https://usosweb.usos.pw.edu.pl/kontroler.php?_action=katalog2/przedmioty/pokazPrzedmiot&prz_kod=103A-INSZI-ISP-UMA
- Uwagi:
- (-)
Efekty uczenia się
    Profil ogólnoakademicki - wiedza
                    - Charakterystyka W01
- zna podstawowy obliczeniowej teorii uczenia się
 Weryfikacja: kolokwium
 Powiązane charakterystyki kierunkowe: 
                        W06
 Powiązane charakterystyki obszarowe: 
                        I.P6S_WG.o, P6U_W
- Charakterystyka W02
- zna zasady działania i właściwości algorytmów indukcji reguł
 Weryfikacja: kolokwium
 Powiązane charakterystyki kierunkowe: 
                        W06
 Powiązane charakterystyki obszarowe: 
                        P6U_W, I.P6S_WG.o
- Charakterystyka W03
- zna zasady działania i właściwości algorytmów indukcji drzew decyzyjnych
 Weryfikacja: kolokwium
 Powiązane charakterystyki kierunkowe: 
                        W05, W06
 Powiązane charakterystyki obszarowe: 
                        P6U_W, I.P6S_WG.o
- Charakterystyka W04
- zna zasady działania i właściwości klasyfikatorów liniowych
 Weryfikacja: kolokwium
 Powiązane charakterystyki kierunkowe: 
                        W06
 Powiązane charakterystyki obszarowe: 
                        P6U_W, I.P6S_WG.o
- Charakterystyka W05
- zna zasady działania i właściwości podstawowych algorytmów uczenia się języków regularnych
 Weryfikacja: kolokwium
 Powiązane charakterystyki kierunkowe: 
                        W06
 Powiązane charakterystyki obszarowe: 
                        P6U_W, I.P6S_WG.o
- Charakterystyka W06
- zna zasady działania i właściwości podstawowych algorytmów uczenia się ze wzmocnieniem
 Weryfikacja: kolokwium
 Powiązane charakterystyki kierunkowe: 
                        W06
 Powiązane charakterystyki obszarowe: 
                        P6U_W, I.P6S_WG.o
Profil ogólnoakademicki - umiejętności
                    - Charakterystyka U01
- potrafi wykorzystywać elementy obliczeniowej teorii uczenia się do oceny złożoności zadań i wymaganej liczby przykładów trenujących
 Weryfikacja: kolokwium
 Powiązane charakterystyki kierunkowe: 
                        U01
 Powiązane charakterystyki obszarowe: 
                        P6U_U, I.P6S_UW.o, III.P6S_UW.o
- Charakterystyka U02
- potrafi dokonać analizy przebiegu wykonania algorytmów uczenia się i zweryfikować ich wyniki
 Weryfikacja: kolokwium, projekt
 Powiązane charakterystyki kierunkowe: 
                        U01, U03
 Powiązane charakterystyki obszarowe: 
                        P6U_U, I.P6S_UW.o, III.P6S_UW.o
- Charakterystyka U03
- potrafi oceniać jakość klasyfikatorów
 Weryfikacja: kolokwium, projekt
 Powiązane charakterystyki kierunkowe: 
                        U03
 Powiązane charakterystyki obszarowe: 
                        P6U_U, I.P6S_UW.o, III.P6S_UW.o
- Charakterystyka U04
- potrafi implementować podstawowe algorytmy uczenia się i stosować je do zadań praktycznych
 Weryfikacja: projekt
 Powiązane charakterystyki kierunkowe: 
                        U07, U04
 Powiązane charakterystyki obszarowe: 
                        P6U_U, I.P6S_UW.o, III.P6S_UW.o
Profil ogólnoakademicki - kompetencje społeczne
                    - Charakterystyka K01
- stosuje właściwe metody komunikacji ustnej i pisemnej w zakresie formułowania zadań uczenia się i przedstawiania wyników algorytmów uczenia maszynowego
 Weryfikacja: projekt
 Powiązane charakterystyki kierunkowe: 
                        K01
 Powiązane charakterystyki obszarowe: 
                        P6U_K, I.P6S_KK
- Charakterystyka K02
- efektywnie współpracuje w zespole przy pracach implementacyjnych i badawczych dotyczących uczenia maszynowego
 Weryfikacja: projekt
 Powiązane charakterystyki kierunkowe: 
                        K01
 Powiązane charakterystyki obszarowe: 
                        P6U_K, I.P6S_KK