PředmětyPředměty(verze: 908)
Předmět, akademický rok 2022/2023
   Přihlásit přes CAS
Úvod do strojového učení v Pythonu - NPFL129
Anglický název: Introduction to Machine Learning with Python
Zajišťuje: Ústav formální a aplikované lingvistiky (32-UFAL)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2020
Semestr: zimní
E-Kredity: 5
Rozsah, examinace: zimní s.:2/2, Z+Zk [HT]
Počet míst: neomezen
Minimální obsazenost: neomezen
Virtuální mobilita / počet míst: ne
Stav předmětu: vyučován
Jazyk výuky: čeština, angličtina
Způsob výuky: prezenční
Další informace: http://ufal.mff.cuni.cz/courses/npfl129
Garant: RNDr. Milan Straka, Ph.D.
Neslučitelnost : NPFL054
Záměnnost : NPFL054
Je neslučitelnost pro: NPFL054
Je záměnnost pro: NPFL054
Anotace -
Poslední úprava: doc. Mgr. Barbora Vidová Hladká, Ph.D. (15.05.2019)
Strojové učení dosahuje značných úspěchů při řešení komplexních úloh v mnoha oborech. Tento předmět slouží jako úvodní kurz pro seznámení se strojovým učením, a to jak s teoretickými základy, tak s implementací a použitím algoritmů strojového učení, a to v jazyce Python. Důraz je kladen na schopnosti aplikace popisovaných technik při řešení praktických úloh, ve kterých se studenti snaží dosáhnout řešení s nejvyšší přesností.
Cíl předmětu -
Poslední úprava: doc. Mgr. Barbora Vidová Hladká, Ph.D. (15.05.2019)

Cílem přednášky je seznámení se strojovým učením. Předmět se zaměří jak na teorii, tak na schopnosti implementace algoritmů strojového učení a aplikace technik strojového učení na praktických úlohách, a to v jazyce Python.

Podmínky zakončení předmětu -
Poslední úprava: RNDr. Milan Straka, Ph.D. (10.05.2020)

Zápočet je udělován za vypracování dostatečného množství úloh. Úlohy jsou zadávány pravidelně celý semestr (běžně dvě každé cvičení) a na vypracování každé z nich je několik týdnů. Vzhledem ke způsobu obdržení zápočtu není možné jeho získání opakovat. Získání zápočtu není podmínkou k připuštění ke zkoušce.

Literatura -
Poslední úprava: RNDr. Milan Straka, Ph.D. (10.05.2020)
  • Christopher M. Bishop: Pattern Recognition and Machine Learning. Springer Verlag. 2006.
  • John Platt: Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Machines. 1998.
  • Tianqi Chen, Carlos Guestrin: XGBoost: A Scalable Tree Boosting System. 2016.
  • https://scikit-learn.org/
Požadavky ke zkoušce -
Poslední úprava: RNDr. Milan Straka, Ph.D. (15.06.2020)

Zkouška je písemná a skládá se z náhodně volených otázek z předem známého seznamu. Požadavky zkoušky odpovídají sylabu předmětu v rozsahu, který byl prezentován na přednášce.

Sylabus -
Poslední úprava: RNDr. Milan Straka, Ph.D. (04.01.2021)

Základní pojmy strojového učení

  • učení s učitelem a bez učitele, zpětnovazební učení
  • trénování, generalizace, přeučení, regularizace
  • datová distribuce, trénovací/validační/testovací data

Lineární regrese

  • analytické řešení
  • řešení pomocí stochastic gradient descent (SGD)

Klasifikace

  • binární klasifikace pomocí perceptronu
  • binární klasifikace pomocí logistické regrese
  • klasifikace do více tříd pomocí logistické regrese
  • odvození funkcí sigmoid a softmax z principu maximální entropie
  • klasifikace pomocí vícevrstevného perceptronu (MLP)
  • naivní Bayesův klasifikátor
  • binární klasifikátory založené na principu maximum margin

Jádrové metody

  • lineární regrese pomocí jader
  • metoda podpůrných vektorů (SVM) a její trénování algoritmem Sequencial minimization optimization (SMO)

Rozhodovací stromy

  • klasifikační a regresní stromy (CART)
  • náhodné lesy
  • gradient boosting decision trees (GBDT)

Shluková analýza

  • K-Means algoritmus
  • Gaussian mixture model

Redukce dimenzionality

  • analýza hlavních komponent

Trénování

  • příprava dat, volba klasifikačních rysů
  • konstrukce ztrátových funkcí pomocí metody maximální věrohodnosti
  • gradientní metody prvního řádu (SGD) a metody druhého řádu
  • regularizace

Statistické testování

  • Studentův t-test
  • Chí-kvadrát test
  • korelační koeficienty
  • párový bootstrap test

Využívané knihovny jazyka Python

  • numpy (reprezentace n-rozměrných polí a práce s nimi)
  • scikit-learn (konstrukce modelů strojového učení)
  • matplotlib (vizualizace)
Vstupní požadavky -
Poslední úprava: RNDr. Milan Straka, Ph.D. (08.10.2021)

Je vyžadována základní znalost programování v jazyce Python a základní znalost diferenciálního počtu a lineární algebry (práce s vektory a maticemi). Znalost základů pravděpodobnosti a statistiky je doporučená.

 
Univerzita Karlova | Informační systém UK