Uczenie maszynowe - zastosowania

Cele i zarys tematyczny kursu:

Celem kursu jest prezentacja kilku podstawowych koncepcji z zakresu elementarnego uczenia maszynowego na poziomie szczegółów algorytmicznych. Przekazana wiedza zostanie potwierdzona praktyką programistyczną w języku Python W skrócie materiał kursu przedstawia się następująco:

  1. Wprowadzenie do uczenia maszynowego. Czym jest uczenie maszynowe? Rola i miejsce uczenia maszynowego we współczesnej informatyce. Przegląd zastosowań i metod uczenia maszynowego. Podstawowe pojęcia związane z uczeniem maszynowym.

  2. Podstawowe narzędzia uczenia maszynowego. Elementy języka Python przydatne przy implementowaniu algorytmów uczenia maszynowego. Biblioteki NumPy i PyTorch. Narzędzia przetwarzania i wizualizacji danych w języku Python. Format CSV/TSV. Biblioteki Matplotlib i Seaborn.

  3. Regresja liniowa jednej zmiennej. Funkcja kosztu. Metoda gradientu prostego. Regresja liniowa wielu zmiennych. Implementacja regresji liniowej jednej zmiennej w języku Python

  4. Regresja logistyczna. Metoda gradientu prostego dla regresji logistycznej. Implementacja regresji logistycznej w języku Python.

  5. Ewaluacja algorytmów uczenia maszynowego. Podział na zbiory: uczący, testowy i walidacyjny. Walidacja krzyżowa. Miary jakości. Pakiet Scikit-Learn. Implementacja regresji liniowej i regresji logistycznej z wykorzystaniem gotowych modułów. Implementacja wybranych metod ewaluacji.

  6. Nadmierne i niedostateczne dopasowanie. Obciążenie i wariancja. Ilustracja problemu nadmiernego dopasowania na przykładzie regresji wielomianowej. Metody regularyzacji. Sposoby reprezentacji danych. Implementacja algorytmów regresji dla danych różnych typów, w tym dla danych nieliczbowych, oraz dla danych niepełnych. Nadmierne i niedostateczne dopasowanie w praktyce. Implementacja metod zapobiegających nadmiernemu dopasowaniu.

  7. Stochastic Gradient Descent. Przegląd metod optymalizacji. Porównanie różnych metod optymalizacji na przykładach

  8. Uczenie nienadzorowane. Algorytm k średnich. Algorytm analizy głównych składowych. Implementacja metod uczenia nienadzorowanego na przykładzie algorytmu k średnich.

  9. Przegląd metod uczenia nadzorowanego. Naiwny klasyfikator bayesowski. Algorytm k najbliższych sąsiadów. Drzewa decyzyjne. Maszyny wektorów nośnych.

  10. Wprowadzenie do sztucznych sieci neuronowych. Prosty perceptron. Funkcje aktywacji. Wielowarstwowe sieci neuronowe. Propagacja wsteczna. Uczenie wielowarstwowych sieci neuronowych. Implementacja sieci neuronowych.

  11. Splotowe sieci neuronowe – idea, przegląd najpopularniejszych architektur, przegląd zastosowań. Czym jest uczenie głębokie?

  12. Rekurencyjne sieci neuronowe – idea, przegląd najpopularniejszych architektur, przegląd zastosowań. Modele typu encoder-decoder. Neuronowe tłumaczenie maszynowe. Autoencoder. Word embeddings.

  13. Implementacja wybranych metod uczenia maszynowego.

Materiały:

Autorem wszystkich materiałów wykorzystanych w tym kursie jest dr Paweł Skórzewski (WMI, Zakład Sztucznej Inteligencji)

Wymagania:

Podstawowa umiejętność programowania. Znajomość podstaw algebry liniowej.

Literatura:

Wykłady zasadniczej części oparte są na następujących książkach:
  1. S. Raschka, Python Machine Learning, Packt, Birmingham 2015
  2. S. Marsland, Machine Learning: An Algorithmic Perspective, CRC, Boca Raton 2015
  3. W. Richert, L.P. Coelho, Building Machine Learning Systems with Python, Packt, Birmingham 2013
  4. G. Moncecchi, R. Garreta, Learning scikit-learn: Machine Learning in Python, Packt, Birmingham 2013
  5. K. Krawiec, J. Stefanowski, Uczenie maszynowe i sieci neuronowe, WPP, Poznań 2004
  6. M. Krzyśko, W. Wołyński, T. Górecki, M. Skorzybut, Systemy uczące się, WNT, Warszawa 2008
  7. W. Duch, J. Korbicz, L. Rutkowski, R. Tadeusiewicz, Sieci neuronowe, Exit, Warszawa 2000
  8. K.P. Murphy, Machine Learning: a Probabilistic Perspective, 2015
  9. M. Nielsen, Neural Networks and Deep Learning, neuralnetworksanddeeplearning.com (odczyt: 2020-11-03)
  10. J. Brownlee, Machine Learning Mastery, machinelearningmastery.com com (odczyt: 2020-11-03)
  11. I. Goodfellow, Y. Bengio, A. Courville, Deep Learning, www.deeplearningbook.org com (odczyt: 2020-11-03)
  12. A. Ng, Machine Learning, Coursera – kurs online, https://www.coursera.org/learn/machine-learning (odczyt: 2020-11-03)
  13. G. Hinton, Neural Networks for Machine Learning, Coursera – kurs online, https://www.coursera.org/learn/neural-networks (odczyt: 2020-11-03)