Zaawansowane uczenie maszynowe


To jest strona domowa przedmiotu Zaawansowane uczenie maszynowe (ZUM) prowadzonego na Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej. Można tu znaleźć informacje organizacyjne oraz materiały pomocnicze.

Komentarze na temat zawartości tej strony i inne uwagi dotyczące przedmiotu proszę kierować pocztą.

Zawartość strony

  1. O przedmiocie
  2. Aktualności
  3. Warianty realizacji
  4. Realizacja 21Z
  5. Zasady oceniania
  6. Projekt
  7. Kolokwia
  8. Konsultacje
  9. Plan wykładów (przybliżony)
  10. Slajdy do wykładów
  11. Ćwiczenia sprawdzające
  12. Demonstracje użycia wybranych funkcji w R
  13. Przykłady kodu w R
  14. Literatura

O przedmiocie

Przedmiot kierowany jest do studentów studiów magisterskich, którzy mieli już wcześniej pierwszy kontakt z elementami teorii i podstawowymi algorytmami uczenia maszynowego. Ma on na celu poszerzenie oraz pogłębienie ich wiedzy w tym zakresie. Da on także okazję do zdobycia doświadczeń praktycznych dotyczących implementacji i stosowania algorytmów uczenia maszynowego do tworzenia modeli predykcyjnych. Zakres przedmiotu obejmuje wybrane nie-neuronowe algorytmy uczenia się stosowane do danych tabelarycznych. Bardziej szczegółowe informacje zawiera oficjalny konspekt przedmiotu.

Przedmiot ma być docelowo kontynuacją przedmiotu Uczenie maszynowe (UMA), który będzie prowadzony na studiach inżynierskich, lecz pełna synchronizacja zakresów wykładów nastąpi dopiero po kilku pierwszych realizacjach obu przedmiotów. W początkowych realizacjach ZUM założenia na temat wstępnej wiedzy studentów będą nieco słabsze a udział treści "przypominających" nieco większy.

Aktualności

Są już dostępne aktualne informacje o projekcie.

Przedmiot został uruchomiony w semestrze 21Z.

Warianty realizacji

Przedmiot jest przygotowany do realizacji w dwóch trybach:

W każdym przypadku terminy wykładów są zgodne z obowiązującym rozkładem zajęć.

Realizacja w semestrze 21Z

  1. Zgodnie z decyzjami władz PW w semestrze 21Z zajęcia wykładowe prowadzone są w trybie stacjonarnym. Będą się one odbywać w terminie i miejscu określonym przez rozkład zajęć.

  2. Realizacja projektu następuje samodzielnie w zespołach projektowych z możliwością korzystania z konsultacji w trybie zdalnym.

  3. Do realizacji przedmiotu wykorzystywane są następujące narzędzia:

  4. We wszystkich sprawach nieuregulowanych tutaj mają zastosowanie ogólne zasady określone przez Regulamin Studiów PW oraz bieżące rozporządzenia i zalecenia władz PW.

Zasady oceniania

Ocena z przedmiotu ustalana jest na podstawie:

Końcowa ocena jest wyznaczana na podstawie łącznej punktacji (0-100) przez zastosowanie standardowych progów.

Projekt

Dostępne tematy projektów można już traktować jako obowiązujące. Proszę o zapoznanie się z zasadami i zgłoszenia zespołów za pomocą arkusza wyboru tematu (link wysłany na listę mailową przedmiotu. Wybór tematu jest w pełni swobodny.

Kolokwia

Zasady

  1. Kolokwia mają charakter "pisemnego sprawdzianu z notatkami", co oznacza, że każdy uczestnik może korzystać z dowolnych własnych (przyniesionych ze sobą) materiałów na papierze (kartek, zeszytów, książek itp.), lecz nie może się nimi wymieniać z innymi osobami.
  2. W przypadku realizacji przedmiotu w trybie zdalnym kolokwia odbywają się w formie testów Moodle.
  3. Pierwsze kolokwium odbywa się mniej więcej w połowie semestru (między 7 a 9 wykładem) w terminie ogłaszanym z dwutygodniowym wyprzedzeniem, a drugie kolokwium -- zazwyczaj w terminie ostatniego wykładu w semestrze.
  4. Kolokwium poprawkowe, na którym można poprawiać ocenę z jednego bądź obu kolokwiów, jest organizowane w ostatnich dniach semestru lub pierwszych dniach sesji. Udział w nim oznacza rezygnację z oceny uzyskanej wcześniej (z wyjątkiem sytuacji, gdy stosowanie tej zasady powodowałoby niezaliczenie przedmiotu).

Konsultacje

Stały dyżur: czwartek 10-11, pok. 24 -- bez umawiania się.
Inne terminy: -- możliwe po umówieniu się.

Plan wykładów (przybliżony)

Wykład Temat
1 Informacje organizacyjne i wprowadzenie
2-3 Przegląd/przypomnienie elementów teorii (PAC-uczenie, wymiar VC) i podstawowych algorytmów (drzewa decyzyjne, naiwny klasyfikator bayesowski, model liniowy, ocena jakości modeli)
4 Bliższe spojrzenie na drzewa decyzyjne (przycinanie, obsługa brakujących wartości atrybutów, drzewa regresji, drzewa modeli)
5 Bliższe spojrzenie na klasyfikację bayesowską (sieci bayesowskie, nie całkiem naiwny klasyfikator bayesowski)
6 Bliższe spojrzenie na modele liniowe (estymacja parametrów, diagnostyka, regresja logistyczna, kalibracja predykcji probabilistycznych)
7 Regularyzacja modeli, algorytm SVM (maksymalizacja marginesu, postać prymalna)
8 Kolokwium 1
9 Algorytm SVM c.d. (postać dualna, funkcje jądrowe, wariant do regresji), modele bazowe (koncepcja, tworzenie modeli bazowych, łączenie predykcji).
10 Modele zespołowe c.d. (bagging, las losowy, boosting)
11 Koszty pomyłek, nierównoważone klasy, bliższe spojrzenie na ocenę jakości modeli (ocena klasyfikacji wieloklasowej, procedury oceny, kryteria informacyjne)
12 Grupowanie (k-środków, gęstościowe, ocena jakości)
13 Detekcja anomalii (klasyfikacja jednoklasowa, niepodobieństwo do sąsiadów, niepodobieństwo do grup)
14 Selekcja i transformacja atrybutów
15 Kolokwium 2

Slajdy do wykładów

Po każdym wykładzie będą tu zamieszczane używane slajdy.

Ćwiczenia sprawdzające

W trakcie semestru będą tu udostępniane ćwiczenia do (większości) wykładów, mające na celu ułatwienie weryfikacji zrozumienia ich treści i przygotowania się do kolokwiów.

Uwaga: propozycja nadobowiązkowej pracy domowej związanej z ćwiczeniami (za dodatkowe punkty).

Demonstracje użycia wybranych funkcji w R

Znajdują się tu bardzo proste demonstracje w języku R nawiązujące do niektórych zagadnień omawianych na wykładzie, które mogą być punktem wyjścia do samodzielnego eksperymentowania dla osób po raz pierwszy stykającym się z tym środowiskiem. Zachęcam do prześledzenia i rozwinięcia tych przykładów, a w szczególności do zapoznania się z używanymi funkcjami i znaczeniem ich argumentów oraz zrozumienia stosowanych niekiedy prostych idiomów języka R, co może istotnie przyspieszyć oswajanie się z nim i ułatwić pracę nad projektem. Będę oczywiście wdzięczny za wytknięcie błędów, gdyby takie się tu wkradły. Numeracja przykładów służy wyłącznie celom porządkowym i nie ma związku z kolejnością wykładów, a ich zakres nie odpowiada ściśle zakresowi wykładu.

  1. Przykłady w R (1)
  2. Przykłady w R (2)
  3. Przykłady w R (3)
  4. Przykłady w R (4)
  5. Przykłady w R (5)
  6. Przykłady w R (6)
  7. Przykłady w R (7)
  8. Przykłady w R (8)
  9. Przykłady w R (9)
  10. Przykłady w R (10)
  11. Przykłady w R (11)
  12. Przykłady w R (12)

Przykłady kodu w R

Jako zachętę do zapoznania się z właściwościami R jako języka programowania zamieszczam tu przykładowe pliki źródłowe ilustrujące niektóre z tych właściwości.

  1. index.R (demonstracja indeksowania wektorów i tablic)
  2. list.R (demonstracja list)
  3. noloop.R (demonstracja możliwości unikania pętli)
  4. scope.R (demonstracja leksykalnego zasięgu i domknięć)
  5. lazy.R (demonstracja leniwej ewaluacji)
  6. class.R (demonstracja klas i metod)
  7. oper.R (demonstracja przeciążania operatorów)
  8. quine.R (ciekawostka: demonstracja quine'ów)
  9. tupper.R (ciekawostka: demonstracja formuły Tuppera)

Literatura

Literatura dotycząca szczegółowych zagadnień, w tym zwłaszcza tematów projektu, rekomendowana jest indywidualnie w ramach konsultacji. Tutaj zamieszczam tylko nieliczne wybrane książki, których zakres tematyczny w znacznym stopniu jest zgodny z zakresem przedmiotu.

Paweł Cichosz