Uczenie maszynowe
(Machine Learning)

Osoba odpowiedzialna na za przedmiot i prowadzaca wyklad:
   dr hab. inż. Jerzy Stefanowski
, prof. PP
Osoby wspolprowadzace laboratoria i projekty:
      dr hab inż. Maciej Komosinski oraz mgr inż. Matusz Lango , i mgr inz. Konrad Miazga

(Ponadto w przygotowaniu przedmiotu brał udział dr inż. Krzysztof Krawiec, prof PP)

Semestr wiosenny - wykład 2 godz. oraz laboratorium 2 godz.
Wstepnie planowany termin wykładu – wtorek 15.10-16.40 sala CW13
laboratoria:


Wydano skrypt do tego przedmiotu - spójrz na okładkę i spis treści

1. Cel przedmiotu:

Zadaniem przedmiotu jest wprowadzenie do problematyki tworzenia systemów posiadających zdolności uczenia się na przykładach i w rezultacie doskonalenia swojego działania. Dziedzina uczenia maszynowego (termin ang. Machine Learning) zyskuje obecnie rosnącą popularność z uwagi na rozwój zarówno nowych algorytmów jak i zastosowań. Celem końcowym przedmiotu jest przygotowanie studentów do samodzielnego rozwiązywania praktycznych problemów z zakresu uczenia maszynowego i tworzenia inteligentnych systemów informatycznych.

2. Zakres wykładów i laboratoriów

Pojęcia podstawowe z zakresu uczenia maszynowego. Typowe zastosowania sieci neuronowych i metod uczenia maszynowego. Definiowanie i reprezentowanie zbioru przykładów uczących. Algorytmiczna teoria indukcji. Wykorzystane metod indukcyjnych do tworzenia systemów klasyfikujących. Kryteria oceny systemów. Algorytm eliminacji kandydatów (przestrzeń wersji). Przegląd wybranych algorytmów budowania drzew decyzyjnych (ID3, C4.5) oraz tworzenia reguł (AQ, CN2, MODLEM, RIPPER). Systemy uczenia się z wcześniej zapamiętanych przypadków (k-NN oraz IBL). Klasyfikatory bayesowskie. Zasada minimalnej długości kodu. Selekcja atrybutów. Statystyczne podejścia do konstruowania systemów uczących (SVM).

Nie uczumy już: Geneza sieci neuronowych.  Sieci wielowarstwowe i algorytm wstecznej propagacji błędów. Metody zwiększania efektywności uczenia sieci. Pamięci autoasocjacyjne. Uczenie nienadzorowane sieci neuronowych (sieci Kohonena). Indukcyjne programowanie logiczne (ILP). Systemy uczące się o zaawansowanej architekturze (klasyfikatory złożone). Aktywne i pasywne tryby uczenia się. Powiązanie uczenia maszynowego z problematyką odkrywania wiedzy w bazach danych. Metodyka tworzenia i stosowania systemów uczących się.

W ramach ćwiczeń laboratoryjnych studenci będą wykorzystywali gotowe systemy zawierające implementacje algorytmów nadzorowanego uczenia symbolicznego (np. regułowe CN2, LEM; drzewiaste C4.5 oraz środowisko WEKA) oraz bibliotek sklearn Python do analizy dostarczonych problemów praktycznych.
 

Plan ćwiczeń oraz instrukcje do przebiegu laboratorium dostępne są na stronie osoby prowadzacej laboratorium - obecnie dr hab Komosinski oraz mgr inż. Matusz Lango


Zasady zaliczeń

Obecnie wykład zaliczony na podstawie testu w formie pisemnej. Powinno się dokonać wcześniej zaliczenia ćwiczeń laboratoryjnych. Podczas laboratorium należy wykonać ćwiczenia (niektóre wymagają wykonania sprawozdań), zadania domowe oraz zaliczyć sprawdziany.


Plan wykładu

Nowa edycja (od 2019/2020)

Wykład 1:  Wprowadzenie do maszynowego uczenia się Aktualna wersja slajdow;

Wykład 2:  Algorytmy indukcji drzewa się drzewa - alg. ID3/C4.5 cz 1;

Wykład 3:  Drzewa: klasyfikatory i przeuczenie się Rozszerzenie alg. do C4.5 cz 2 oraz przeuczenie i redukcja drzew;
Dodatkowa strona ad problematyka indukcji drzew oraz przeuczenia i metod tzw. prunning: => Materialy dodatkowe

Wykład 4:  Reguly Algorytmy i klasyfikacja; Spójrz tez na materialy dodatkowe

Wykład 5Klasyfikator Bayesowski; Spójrz tez na materialy dodatkowe

Wykład 6Klasyfikator minimalno-odleglosciowy (k-NN); Spójrz tez na materialy dodatkowe

Wykład 7Metody oceny eksperymentalnej klasyfikatorów - Miary oceny, techniki estymacji trafnośsci, wykorzystanie testów statystycznych ; => Materialy dodatkowe

Wykład 8Klasyfikatory liniowe - Analiza dyskryminacyjna oraz proste warstowe sieci neuronowe; => Materialy dodatkowe

Wykład 9Metoda wektorow wspierajacych; Support Vector Machine- Podstawy matematyczne; liniowe SVM; modyfikacja dla nakladajacych się rozkladow klas, nieliniowe SVM oraz tzw. kernel trick

Wykład 9bRegresja logistyczna; Podstawowe sformulowanie zadania regresji logistycznej i jej interpretacja

Wykład 10:  Najnowsza wersja wykladu + Dawna wersja Zespoly klasyfikatorow; Stacking, Bagging, Boosting, Random Forests, Pairwise Coupling (OVO / OVA)

Wykład 11aPrzypomnienie sieci neuronowych; Reguły uczenia neuronów, sieci wielowarstwowe MLP, algorytm wstecznej propagacji błędów; Spójrz także wersja skrócona

Wykład 11bSieci neuronowe RBF; Podstawowa architektura, ustalanie funkcji jądrowych i ich paramterów, uczenie => Materialy dodatkowe

Wykład 12: Uczenie nienadzorowane sieci neuronowych. Sieci neuronowe Kohonena Sieci samoorganizujace LVQ i wprow. do samoorganizujących map SOM oraz aktualny rozszerzony wyklad o samych SOM i WebSOM oraz Materialy dodatkowe nt. analizy skupien / k-mean i AHC i dodatkowe informacje na => Materialy dodatkowe

Wykład 13Reguly asocjacyjne; Podstawowy zbiorów częstych, algorytm Apriori => Materialy dodatkowe

Wykład 14Indukcyjne programowanie w logice => Materialy dodatkowe

Wykład 15Uwagi nt. aktywnego uczenia się i podsumowujace


Dawny przebieg wykładów przedmiotu w wersji uczenie maszynowe i sieci neuronowe (do 2019)

Wykład 1:  Wprowadzenie do maszynowego uczenia się Prostsza wersja slajdow; Pelniejsza wersja slajdow
Wykład 2:  Indukcja drzew decyzyjnych cz 1. (czesc starszych slidow)
Wykład 3:  Indukcja drzew decyzyjnych cz 2 - nowsze materialy bezposrednio u prowadzacego wyklad
Wykład 3:  Indukcja regul decyzyjnych. (skorzystaj z moich innych slajdow anglojezycznych)
Wykład 5:  Algorytmy k-NN i uczenie się na wcześniej zapamiętanych przypadkach (oraz selekcja atrybutów).
Wykład 6:  Klasyfikacja bayesowska, naiwny klasyfikator bayesowski i zasada minimalizacji długości kodu.
Wykład 7 Empiryczna ocena algorytmów uczących się .
Wykład 8 Wprowadz. do sztucznych sieci neuronowych . Wielowarstwowe sieci neuronowe cz 1.
Wykład 9:  Sieci wielowarstwowe cz 2 (algorytm "backpropagation") Spojrz takze na przegladowy wyklad anglojezyczny.
Wykład 10: Uczenie nienadzorowane sieci neuronowych. Sieci neuronowe Kohonena
Wykład 11: Sieci samoorganizujące SOM i sieci RBF
Wykład 12: Statystyczne systemy uczące się - klasyfikatory liniowe i SVM
Wykład 13: Złożone systemy uczące się (multiple classifiers / ensembles) - Wyklad w wersji anglojezycznej
Wykład 14: Indukcyjne programowanie logiczne.
Wykład 15: Uczenie się z częściowo etykietowanych danych. Aktywne uczenie się i inne zaawansowane zagadnienia.
Wykład podsumowujacy: Przeglad innych zagadanien i uwagi podsumowujace.

Pliki ze slajdami do niektórych wykładów będą dostępne stopniowo. Część wykładów nt. sztucznych sieci neuronowych dostepna jest na stronie prof. Krawca .


Literatura


Zasoby sieciowe poświęcone Maszynowemu Uczeniu się

Poniżej zamieszczam kilka podstawowych odwołań, inne umieszczone są na w mojej liście dostępnej na stronie prywatnej jako  my favourite links .  

Materiały pomocnicze do zajęć

Jerzy Stefanowski
Strona utworzona: 29.09.1998, ostatnia modyfikacja: 12. 04. 2021