Machine learning is reaching notable success when solving complex tasks in many fields. This course serves as in
introduction to basic machine learning concepts and techniques, focusing both on the theoretical foundation, and
on implementation and utilization of machine learning algorithms in Python programming language. High
attention is paid to the ability of application of the machine learning techniques on practical tasks, in which the
students try to devise a solution with highest performance.
Last update: Vidová Hladká Barbora, doc. Mgr., 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í.
Last update: Vidová Hladká Barbora, doc. Mgr., Ph.D. (15.05.2019)
Aim of the course -
After this course, students should…
Be able to reason about tasks/problems suitable for ML
Know when to use classification, regression, and clustering
Be able to choose from this method Linear and Logistic Regression, Multilayer Perceptron, Nearest Neighbors, Naive Bayes, Gradient Boosted Decision Trees, kk-means clustering
Think about learning as (mostly probabilistic) optimization on training data
Know how the ML methods learn, including theoretical explanation
Know how to properly evaluate ML
Think about generalization (and avoiding overfitting)
Be able to choose a suitable evaluation metric
Responsibly decide what model is better
Be able to implement ML algorithms on a conceptual level
Be able to use Scikit-learn to solve ML problems in Python
Last update: Libovický Jindřich, Mgr., 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
Last update: Libovický Jindřich, Mgr., Ph.D. (12.03.2024)
Course completion requirements -
Students pass the practicals by submitting sufficient number of assignments. The assignments are announced regularly through the whole semester (usually two per lecture) and are due in several weeks. Considering the rules for completing the practicals, it is not possible to retry passing it. Passing the practicals is not a requirement for going to the exam.
Last update: Straka Milan, RNDr., 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.
Last update: Straka Milan, RNDr., Ph.D. (10.05.2020)
Literature -
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/
Last update: Straka Milan, RNDr., 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/
Last update: Straka Milan, RNDr., Ph.D. (10.05.2020)
Requirements to the exam -
The exam is written and consists of questions randomly chosen from a publicly known list. The requirements of the exam correspond to the course syllabus, in the level of detail which was presented on the lectures.
Last update: Straka Milan, RNDr., 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.
Last update: Straka Milan, RNDr., Ph.D. (15.06.2020)
data generating distribution, train/development/test set
Linear regression
analytical solution
a solution based on stochastic gradient descent (SGD)
Classification
binary classification via perceptron
binary classification using logistic regression
multiclass classification using logistic regression
deriving sigmoid and softmax functions from the maximum entropy principle
classification with a multilayer perceptron (MLP)
naive Bayes classifier
maximum margin binary classifiers
Support vector machines (SVM)
Text representation
TF-IDF
Word embeddings
Decision trees
classification and regression trees (CART)
random forests
gradient boosting decision trees (GBDT)
Clustering
K-Means algorithm
Dimensionality reduction
singular value decomposition
principal component analysis (PCA)
Training
dataset preparation, classification features design
constructing loss functions according to the maximum likelihood estimation principle
first-order gradient methods (SGD) and second-order methods
regularization
Statistical testing
Student t-test
Chi-squared test
correlation coefficients
paired bootstrap test
Used Python libraries
numpy (n-dimensional array representation and their manipulation)
scikit-learn (construction of machine learning pipelines)
matplotlib (visualization)
This course is also part of the inter-university programme prg.ai Minor. It pools the best of AI education in Prague to provide students with a deeper and broader insight into the field of artificial intelligence. More information is available at prg.ai/minor.
Last update: Libovický Jindřich, Mgr., 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.
Last update: Libovický Jindřich, Mgr., Ph.D. (12.03.2024)
Entry requirements -
Basic programming skills in Python and basic knowledge of differential calculus and linear algebra (working with vectors and matrices) are required; knowledge of probability and statistics is recommended.
Last update: Straka Milan, RNDr., 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á.
Last update: Straka Milan, RNDr., Ph.D. (08.10.2021)