Podmínky pro získání zápočtu:
- Aktivní účast a plnění úloh ze cvičení.
- Možnost získat bonusové body např. za dobrovolné úlohy nebo za dodatečné domácí úlohy.
- Vypracování projektu a jeho osobní předvedení.
- Přezkoušení z probrané teorie.
Aktivní účast na cvičeních a plnění úloh ze cvičení.
- Počítá se aktivní účast.
- Na většině cvičení budeme řešit nějaké příklady. Aktivní účast mimo jiné znamená, že student příklady samostatně dokončí a odevzdá. Pokud to nestihnete osobně na cvičení, stačí řešení poslat dodatečně. Termín pro odevzdání úloh bude vždy nejpozději ve čtvrtek v 10:00 před následujícím cvičením. Způsob odevzdání (osobně na cvičení/emailem/přes moodle) upřesním průběžně. Pokud student řešení příkladu neodevzdá včas, nebude mu účast uznána.
- Známkování účasti: 1 bod za 1 účast na cvičení, maximálně lze získat 13 bodů.
- pro známku A za účast: stačí 10 z 13 bodů
- pro známku B za účast: stačí 9 z 13 bodů
- pro známku C za účast: stačí 8 z 13 bodů
- pro známku D za účast: stačí 7 z 13 bodů
- pro známku E za účast: stačí 6 z 13 bodů
- Možnost získat bonusové body např. za dobrovolné nebo za dodatečné domácí úlohy (na dodatečných úlohách je třeba se domluvit nejpozději na posledním cvičení).
Vypracování projektu a jeho osobní předvedení
- Typické úlohy:
- Výběr praktické úlohy/datové sady. Vhodné předzpracování dat. Výběr jednoho nebo několika z probíraných modelů pro řešení této úlohy. Aplikace modelu/modelů na tato data. Experimentální určení vhodných parametrů modelu / experimentální porovnání modelů. Zhodnocení výsledků. Lze využít implementace modelů a algoritmů ze cvičení, popř. vlastní - to se rozhodně počítá jako plus :-). Popř. lze využít existující modely naimplementované v Matlabu nebo v jiných knihovnách.
- Vlastní implementace jednoho z modelů probíraných na přednášce a její srovnání s existující implementací v Matlabu/jinde na praktické úloze.
- Závazné termíny:
- 10.5.2024 Výběr úlohy (krátká specifikace - písemně), její schválení. Každý student by měl mít jiné téma.
- 15.9.2024 Vypracované projekty. Projekt bude obsahovat zprávu o řešení, (odkaz na) zdrojová data, výstupy programu, okomentovaný zdrojový kód. Způsob odevzdání projektu emailem. Následovat bude osobní předvedení (nejpozději 20.9.2024).
- Známkování projektů:
- pro známku A-E: odevzdání a finální předvedení projektu do 28.6.2024.
- pro známku B-E: odevzdání a finální předvedení projektu do 16.9.2024.
- Konkrétní známka A-E dle rozsahu a kvality vypracovaného projektu.
Osobní předvedení vypracovaných úloh a přezkoušení z probrané teorie.
- Prezentace vypracovaného projektu a neformální diskuze o něm.
- Zadání otázky / otázek z předem známého seznamu okruhů (příklad otázky: Perceptron: popište model a jeho algoritmus učení, na jaké úlohy se hodí, jaké jsou jeho výhody a nevýhody
- Seznam okruhů (otázek)
- Základní pojmy: Strojové učení, matematický model neuronu, neuronová síť, vrstevnatá neuronová síť, hluboké vs. mělké učení
- Perceptron, reprezentace logických funkcí (logický prahový obvod), lineární separabilita, perceptronový algoritmus učení (princip, varianty, úskalí)
- Umělý neuron, přenosová funkce a její význam, kdy se která hodí. Přenosová funkce ve skryté vrstvě. Ve výstupní vrstvě. K jakým úlohám se hodí/nehodí, jaká požaduje data.
- Lineární neuron a lineární neuronová síť, popis modelu, algoritmy učení (princip, srovnání), k jakým úlohám se hodí/nehodí, jaká požaduje data, omezení. Souvislost s lineární regresí
- Jednovrstvá neuronová síť – stručný popis modelu a jeho učení, na jaké úlohy se hodí, jaká požaduje data, omezení
- Vrstevnatá neuronová síť a algoritmus zpětného šíření (stačí stručný princip), jeho přednosti a nevýhody, typické úlohy, požadavky na data. Architektura v závislosti na typu úlohy.
- Algoritmus zpětného šíření – techniky pro zrychlení a zlepšení učení. Schopnost modelu zobecňovat a jak ji zlepšit.
- Shlukování – co to je, typické úlohy, probírané algoritmy, jejich výhody a nevýhody
- Kompetitivní model a Kohonenova mapa – popis modelů a jejich učení, na jaké úlohy se hodí/nehodí, výhody a nevýhody
- Hybridní modely (LVQ, RBF, případně counter-propagation) – stručný popis, k čemu se hodí, nevýhody
- Operace konvoluce a její význam v konvolučních sítích (a i jinde). Konvoluční vrstva.
- Konvoluční neuronová síť – architektura, vrstvy, aplikace, přenesené učení, techniky pro zlepšení učení.
- U přezkoušení mi jde o to, zda máte o dané problematice obecné povědomí, tušíte, jak modely fungují a k čemu se hodí, jaký je princip algoritmů, nezkouším z konkrétních matematických vzorečků a technických detailů.
Podrobné pokyny k vypracování projektu (FAQ)
- Bude průběžně aktualizováno.
- Co by mělo být ve zprávě (u prvního typu úlohy)?
- Popis úlohy, kterou jste se rozhodli řešit.
- Popis dat (příznaky, počet vzorků,...). Zdroj dat (popř. jak jste data získali).
- Jakým způsobem jste data předzpracovali (např. normalizace, výběr vzorků, příznaků).
- Popis experimentu - které modely, algoritmy učení, popř. jaké architektury nebo další parametry jste zkoušeli / použili. Jakou metodu testování jste použili.
- Výsledky experimentu (vhodná vizualizace pomocí tabulek, obrázků a nebo grafů) + zhodnocení vlastními slovy.
- Text zprávy by měl být výstižný a srozumitelný, pozor i na gramatické chyby a překlepy, věty by měly dávat smysl ap. Zpráva může být napsána bv těchto jazycích: čeština, slovenština, angličtina.
- Co by mělo být ve zprávě (u druhého typu úlohy)?
- Popis modelu/algoritmu, který jste implementovali.
- Stručný popis existující implementace, se kterou budete svou implementaci srovnávat.
- Popis úlohy, na které budete implementace srovnávat.
- Popis experimentu. Na co jste se při testování zaměřili.
- Výsledky experimentu (vhodná vizualizace pomocí tabulek, obrázků a nebo grafů) + zhodnocení vlastními slovy.
- Text zprávy by měl být výstižný a srozumitelný, pozor i na gramatické chyby a překlepy, věty by měly dávat smysl ap. Zpráva může být napsána bv těchto jazycích: čeština, slovenština, angličtina.
- A co program?
- Mělo by se jednat o Váš vlastní kus kódu (popř. upravený kód ze cvičení).
- Program je třeba poslat společně se zprávou.
- Preferovaný programovací jazyk je Matlab, ale po domluvě můžete zvolit i jiný.
- Pokud použijete vlastní implementaci neuronové sítě, bere se to jako plus.
- Můžete použít libovolné funkce implementované v Matlabu nebo jiné existující knihovny (nejen) pro neuronové sítě. Při osobním předvedení pak ale musíte také ukázat, že s danou knihovnou umíte pracovat, že rozumíte, jak jsou použité modely / algoritmy v dané knihovně implementované, co je třeba nastavit a jak správně interpretovat výstupy použitých funkcí.
- Zdrojový kód by měl "udržovat štábní kulturu" a měl by být okomentovaný.
- Jak lze pojmout projekty prvního typu?
- Můžete na datech z praxe porovnat několik zvolených modelů neuronové sítě (z hlediska rychlosti učení, dosažené chyby, stability výsledku, schopnosti zobecňovat apod.).
- Můžete experimentálně zvolit nejvhodnější architekturu sítě (vyzkoušet více architektur) a nastavit u modelu vhodné parametry (vyzkoušet více nastavení parametrů).
- V případě, že Vámi sehnaná data potřebují složitější předzpracování (např. pokud je více možností, jak vyrobit/vybrat příznaky), můžete místo různých modelů sítě porovnat na konkrétním modelu např. různé množiny příznaků.
- Pokud data obsahují s ohledem na zvolený model příliš mnoho vzorků, je vhodné vybrat pro učení jen menší podmnožinu dat, zbytek vzorků použít k testování.
- V případě nějaké specifické / složitější úlohy se můžete zaměřit více na to, jak jste úlohu řešili a méně na srovnávání. Na tomto je třeba se domluvit předem - při specifikaci.
- Kde se dají sehnat data?
- MATLAB (statistický toolbox): https://www.mathworks.com/help/stats/sample-data-sets.html
- MATLAB (deep learning toolbox): https://www.mathworks.com/help/deeplearning/gs/sample-data-sets-for-shallow-neural-networks.html
- MATLAB (ekonometrický toolbox): https://www.mathworks.com/help/econ/data-sets-and-examples.html
- Kaggle: https://www.kaggle.com/datasets
- UCI Machine learning repository: https://archive.ics.uci.edu/
- KDnuggets: https://www.kdnuggets.com/datasets/index.html
- GitHub: https://github.com/topics/machine-learning-datasets
- Google dataset search: https://datasetsearch.research.google.com/
- OpenML https://www.openml.org/
- časové řady (např. kurzy měn, akcií),...
- Které modely zvolit?
Můžete si vybrat libovolné s probíraných modelů. Doporučuji zejména tyto:- Vrstevnatá neuronová síť s algoritmem zpětného šíření (popř. jiným).
- Jednoduchý neuron (perceptron, lineární neuron).
- Asociativní síť. Samoorganizace. Kohonenovy mapy. RBF-síť
- Konvoluční neuronová síť (pokud ji stihneme probrat).
- Jak provést srovnání modelů?
- Použít k-násobnou křížovou validaci nebo výsledek přes alepoň 100 opakování. V tabulkách typicky srovnáváme rychlost (čas, počet cyklů), velikost chyby (MSE / chyba klasifikace - na trénovací i testovací množině), zajímá nás střední hodnota i rozptyl/směrodatná odchylka hodnot.
- Architektura u vrstevnaté neuronové sítě - zkusit různé počty neuronů, různé počty vrstvev, výsledky formou tabulky, zhodnotit výsledek vlastními slovy.
- Další parametry - zkusit různé kombinace hodnot, výsledky formou tabulky, zhodnotit výsledek vlastními slovy.
Ukázka projektu
Bude doplněno později.
Seznam otázek k přezkoušení
Bude doplněno později.