Povinné minimum

Budeme predpokladať, že nasledujúce oblasti každý z účastníkov ovláda:

  • Matematická analýza 3 - diferenciálny počet viacerých premenných, gradient, lokálne extrémy
  • Lineárna Algebra + Maticový počet - práca s maticami, vektormi, vlastné hodnoty a vektory, vektorové a maticové normy
  • Pravdepodobnosť a štatistika - náhodná premenná, stredná hodnota, disperzia
  • Programovanie - základné znalosti

Kurz je nastavený tak, aby vedomosti druháka matematika alebo EFM-áka boli dostačujúce.

Odporúčanie pre ľahký chod

Bez nasledujúcich oblastí sa dá zaobísť, ale intuícia z nich môže zľahčiť priebeh kurzu:

  • Machine Learning - supervised learning, lineárna regresia, logistická regresia, regularizer
  • Optimalizácia - konvexné programovanie, gradient descent
  • Programovanie - programovací jazyk Julia

Odporúčané materiály na štúdium

V prípade dostatku voľného času môžem odporúčať niektoré overené zdroje na získanie intuície a základnej zručnosti v pokročilejších témach spomínaných vyššie.

Machine Learning:

  • Andrew Ng- Machine Learning kurz na stránke coursera.org. Poskytne potrebný prehľad vo forme videí, kvízov a projektov.
  • Christopher M. Bishop - Pattern Recognition and Machine Learning - podľa tejto knihy sa vyučuje Machine Learning na mnohých popredných univerzitách vrátane Edinburghu.
  • Shai-Shalev Schwartz, Shai-Ben David - Understanding Machine Learning - prvých pár kapitol z tejto knihy bude zhrnutých počas nášho kurzu, od základov vysvetlené prepojenie medzi optimalizačnými algoritmami a machine learningom. Dobré pre ľudí, čo už majú nejakú intuíciu.

Optimalizácia:

  • Yurii Nesterov - Introductory Lectures on Convex Optimization - dobrá kniha pre matematikov s dostatkom času a záujmu, pokryté všetko o konvexnom programovaní od jedného z najvplyvnejších ľudí v tejto oblasti.
  • Sébastien Bubeck - Theory of Convex Optimization for Machine Learning - ako už názov napovedá, táto krátka kniha predstaví všetky optimalizačné metódy potrebné pre Machine Learning. Predstaví veľa metód, ktoré vôbec v kurze nespomenieme a len veľmi málo zakopne o metódy, ktorým sa budeme naozaj venovať. Takže veľa intuície a málo spoilerov.

Programovanie:

Ako sme už spomínali, niektoré cvičenia budú programovacie. Budú prebiehať v programovacom jazyku Julia. Väčšina z vás tento jazyk nepozná. Predstavte si jednoduchosť MATLABu alebo Pythonu s rýchlosťou C++. Veľa popredných ľudí v optimalizácii a machine learningu ho považuje za cestu budúcnosti, oplatí sa o ňom niečo vedieť.

Cvičenia budú prebiehať pomocou Juliaboxu. Bude veľmi fajn, ak si nájdete aspoň kúsok času a pohráte sa s Juliou v Juliaboxe. Jazyk je to intuitívny a za krátku dobu sa dá pochopiť ako funguje. Pre potreby kurzu to bude dostatočné.

V Juliaboxe sa nachádza priečinok s tutorialmi, odporúčame prvých pár urobiť. Okrem Julie sa naučíte pracovať aj s enviromentom IJulia, ktorý budeme používať na cvičeniach. Verím, že si ho obľúbite.

Takisto dobrý a rýchly prehľad je poskytnutý tu.

Pre pokročilých používateľov odporúčame nainštalovať si priamo Juliu a IJuliu pomocou Jupyteru.