PředmětyPředměty(verze: 945)
Předmět, akademický rok 2023/2024
   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 2023
Semestr: zimní
E-Kredity: 5
Rozsah, examinace: zimní s.:2/2, Z+Zk [HT]
Počet míst: neomezen
Minimální obsazenost: neomezen
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Stav předmětu: vyučován
Jazyk výuky: čeština, angličtina
Způsob výuky: prezenční
Způsob výuky: prezenční
Další informace: http://ufal.mff.cuni.cz/courses/npfl129
Garant: Mgr. Jindřich Libovický, 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: Mgr. Jindřich Libovický, Ph.D. (12.03.2024)

Po absolvování předmětu by studující budou

  • Schopni rozmyslet, pro jaké problémy je strojové učení vhodné
  • Vědět, pro jaké problémy použít klasifikaci, regresi a shlukovou analýzu
  • Schopni vybrat nejvhodnější metodu z následující: lineární a logistická regrese, vícevrstvý perceptron, metoda nejbližších sousedu, naivní bayesovská klasifikace, gradient boosted decision trees, shlukování pomocí k středů
  • Přemýšlet o učení jako o (převážně statistické) optimalizaci pomocí trénovacích dat
  • Vědět, jak se modely strojového učení učí, včetně teoretických vysvětlení
  • Vědět, jak správně evaluovat modely strojového učení
  • Přemýšlet o generalizaci (a o tom, jak se vyhnout přeučení)
  • Schopni vybrat správnou evaluační metriku
  • Schopni zodpovědně rozhodnout, který model strojového učení je lepší
  • Schopni implementovat algoritmy strojového učení na konceptuální úrovni v Pythonu
  • Schopni použít knihovnu Scikit-learn pro strojové učení v Pythonu
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: Mgr. Jindřich Libovický, Ph.D. (12.03.2024)

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
  • metoda podpůrných vektorů (SVM)

Reprezentace textu pro strojové učení

  • TF-DF
  • Slovní vektory (embeddings)

Rozhodovací stromy

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

Shluková analýza

  • K-Means algoritmus

Redukce dimenzionality

  • singular value decomposition
  • 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)

Tento předmět je také součástí meziuniverzitního programu prg.ai Minor. Ten spojuje to nejlepší z výuky AI v Praze s cílem poskytnout studujícím hlubší a širší vhled do oboru umělé inteligence. Více informací je k dispozici na webu prg.ai/minor.

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