Uczenie głębokie - computer vision

Opis kursu:

Materiał zaprezentowny tutaj dotyczy pierwszej części wstępnego kursu uczenia głębokiego, który w ogólności omawia dwie grupy zagadnień. Pierwsze 8 zajęć skupia się wokół problemów widzenia komputerowego (computer vision), a pozostałe 7 dotyczą algorytmów przetwarzania języka naturalnego (NLP). Wspólnym światem bazowym dla obu tych grup są sieci MLP. Przedstawiony materiał zawiera zarówno aspekty teoretyczne jak i implementacyjne.

Cele i zarys tematyczny kursu:

Celem kursu jest przyswojenie przez uczestników zaprezentowanego materiału teoretycznego na poziomie pozwalającym zaimplementować dane zagadnienie od podstaw, niemniej część implementacji zostanie wykonana z użyciem programistycznych interfejsów typu TensorFlow i PyTorch. W skrócie materiał kursu przedstawia się następująco:

  1. Elementarne rozwiązanie problemu klasyfikacji binarnej. Perceptron jako atom obliczeniowy w sieciach neuronowych. Algorytmy uczenia.
  2. Jednokierunkowe sieci wielowarstwowe. Algorytm propagacji wstecznej. Algorytmy optymalizacji i regularyzacji oraz metody oceny jakości modelu.
  3. Porównanie działania sieci MLP z algorytmami knn i klasyfikacji liniowej (w szczególności SVM oraz regresji logistycznej))
  4. Implementacja sieci MLP w silnikach Tensorflow oraz PyTorch.
  5. Sieci MLP rozwiązujące zagadnienie regresji.
  6. Klasyfikacja przez sieci splotowe (CNN)
  7. Przegląd architektur CNN. Transfer Learning i Augumentacja.
  8. Detekcja obiektów - RCNN oraz Yolo.

Sugerowana wiedza wstępna:

  • znajomość klasycznych metod eksploracji danych.
  • aspekty matematyczne: analiza wielowymiarowa, rachunek prawdopodobieństwa i elemety statystyki.

Literatura wykładowa:

  1. R. Borhani, A.K. Katsaggelos, J. Watt, Machine Learning Refined: Foundations, Algorithms, and Applications, Cambridge University Press, 2020.
  2. M. Ekman, Learning Deep Learning, Addison Wesley 2022.
  3. J. Tabor, et al., Głębokie uczenie. Wprowadzenie, Helion 2022.