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 5: Klasyfikator Bayesowski;
Spójrz tez na
materialy dodatkowe
Wykład 6: Klasyfikator minimalno-odleglosciowy (k-NN);
Spójrz tez na
materialy dodatkowe
Wykład 7: Metody oceny eksperymentalnej klasyfikatorów - Miary oceny, techniki estymacji trafnośsci,
wykorzystanie testów statystycznych ; =>
Materialy dodatkowe
Wykład 8: Klasyfikatory liniowe - Analiza dyskryminacyjna oraz proste
warstowe sieci neuronowe; =>
Materialy dodatkowe
Wykład 9: Metoda wektorow wspierajacych;
Support Vector Machine- Podstawy matematyczne; liniowe SVM; modyfikacja dla nakladajacych się rozkladow klas, nieliniowe SVM oraz tzw. kernel trick
Wykład 9b: Regresja 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 11a: Przypomnienie 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 11b: Sieci 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 13: Reguly asocjacyjne;
Podstawowy zbiorów częstych, algorytm Apriori =>
Materialy dodatkowe
Wykład 14: Indukcyjne programowanie w logice =>
Materialy dodatkowe
Wykład 15: Uwagi 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
-
Uczenie maszynowe i sieci neuronowe. Krawiec K., Stefanowski J., Wydawnictwo Politechniki
Poznańskiej, Poznań, 2003. (2 wydanie 2004)
-
Systemy uczace sie. Cichosz P., WNT, Warszawa, 2000.
-
Machine Learning. Mitchell T., McGraw Hill, 1997.
-
Machine Learning and Data Mining. Kononenko I. and Kukar M., Horwood Publ., 2007.
-
The Elements of Statistical Learning. Hastie T, Tibshirani R. and Friedman J., Springer., 2001.
-
Readings in Machine Learning. Shavlik J.W., Dietterich T.G.
(red) Morgan Kaufman, 1990.
-
Statystyczne systemy uczace się. Koronacki J., Cwik J. Warszawa, 2008.
-
Sztuczne sieci neuronowe. Żurada J., Barski M., Jędruch W.,
PWN 1996
-
Sztuczne sieci neuronowe: Podstawy i zastosowania. Korbicz
J., Obuchowicz A., Uciński D. Akademicka Oficyna Wydawnicza, 1995.
-
Wstęp do teorii obliczeń neuronowych. Hertz J., Krogh A.,
Palmer R., wyd. polskie WNT, Warszawa, 1995.
-
Sieci neuronowe. Tadeusiewicz, R. Akademicka Oficyna Wydawnicza, Warszawa,
1993.
-
Sieci neuronowe, Duch W., Korbicz J., Rutkowski L., Tadeusiewicz R., Exit, Warszawa, 2000.
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 .
-
UCI Machine Learning
Repository Baza danych zawierajacą testowe problemy ML i
zbiory uczące
-
David
W. Aha: Machine Learning Page Bardzo dobry przegląd informacji
nt Uczenia Maszynowego, duzo WWW linków
-
ML Online Net Info.
Bardzo duzo uzytecznych WWW linkow, itp.
-
MLnet Machine Learning Archieve
at GMD. Informacje o ML konferencjach, badaniach, nauczaniu, software,
zbiorach danych, itp.
-
Machine
Learning Repositories. WWW links do innych miejsc ML w sieci.
-
Machine Learning textbook
Ksiażka Mitchella - duzo ciekawach materiałów, slajdy wykladów
-
SWI/IFIP Machine
Learning Education informacje nt. kursów i wykładów o ML i KDD.
-
The
MLnet-Machine Learning Archive at GMD informacje o nauczaniu ML
wg. archiwum GMD
-
Pawel Cichosz--Machine
Learning Page Jedna z niewielu polskich stron poswięcona ML - strony przygotowane przez Pawła Cichosza,
zawierające dużo materiałów związanych z jego książką "Systemy uczące się",
notatki do prowadzonych wykładów, zadania i programy.
-
Wodzislaw Duch Home page
- strona utrzymywana przez Profesora Wodzisława Ducha zawierająca dużo interesujących odnośników
do innych stron WWW na temat systemów uczących się, sieci neuronowych, neurobiologii, kognitywistyki
i dziedzin pokrewnych.
-
Machine
Learning Journal. Najważniejsze czasopismo poswięcone ML.
-
Journal
of Artificial Intelligence Research. Także zawiera dużo artykułów
nt Ml.
-
Stuttgart Neural Network Simulator - strona znanego darmowego emulatora sztucznych sieci neuronowych.
-
NeuroNet, Network of Excellence in Neural Networks
- strona z wieloma odnośnikami do innych stron na temat sieci neuronowych.
-
KDNet: The Knowledge Discovery Network of Excellence
. Strona domowa europejskiej sieci doskonałości grupującej ośrodki zajmujące się
problematyką odkrywania wiedzy i eksploracji baz danych; zawiera informacje o konferencjach,
badaniach, nauczaniu, softwarze, zbiorach danych.
-
KD Mine Data Mining
and Knowledge Discovery Resources Index - lista dyskusyjna, przewodnik
po produktach, firmach i placówkach badawczych, zbiory danych testowych,
konferencje
-
University
of Birmingham, UK: Data Mining and Machine Learning Papers - artykuły
luźno związane z Data Mining i uczeniem maszynowym
Materiały pomocnicze do zajęć
-
Wykład "Systemy Uczące się" wygłoszony przez Jerzego Stefanowskiego
na Festiwalu Nauki, Poznań, 2001.
-
WEKA - oprogramowanie zawierające implementacje wielu znanych
algorytmów maszynowego uczenia się i eksploracji danych.
Projekt typu "Open source".
Jerzy Stefanowski
Strona utworzona: 29.09.1998, ostatnia modyfikacja: 12. 04. 2021