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í.
Poslední úprava: doc. Mgr. Barbora Vidová Hladká, Ph.D. (15.05.2019)
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.
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.
Poslední úprava: doc. Mgr. Barbora Vidová Hladká, Ph.D. (15.05.2019)
The goal of the course is to introduce basic concepts and methods of machine learning. The course will focus both on theory as well as on implementation of machine learning algorithms and the ability to apply machine learning techniques to practical tasks, using Python programming language.
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.
Poslední úprava: RNDr. Milan Straka, Ph.D. (10.05.2020)
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.
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/
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.
Poslední úprava: RNDr. Milan Straka, Ph.D. (15.06.2020)
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.
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)
Poslední úprava: RNDr. Milan Straka, Ph.D. (04.01.2021)
data generating distribution, train/development/test set
Linear regression
analytical solution
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
Kernel methods
kernelized linear regression
Support vector machines (SVM) and their training with Sequencial minimization optimization algorithm (SMO)
Decision trees
classification and regression trees (CART)
random forests
gradient boosting decision trees (GBDT)
Clustering
K-Means algorithm
Gaussian mixture model
Dimensionality reduction
principal component analysis (PCA)
Training
dataset preparation, classification features design
constructing loss functions according to 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)
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á.
Poslední úprava: RNDr. Milan Straka, Ph.D. (08.10.2021)
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.