Strojové učení: Od teorie k praxi

Předmět je úvodem do široké oblasti umělé inteligence a poskytuje potřebné základy pro návrh algoritmů pro řízení strojů. Navazuje na znalosti prohledávání stavového prostoru a rozšiřuje je uvažováním nejistoty v přechodech mezi stavy. Předmět představuje i základy posilovaného učení pro problémy, kde o přechodech mezi stavy nic nevíme. Poslední část předmětu představuje Bayesovskou rozhodovací úlohu a učení s učitelem, které je demonstrováno na lineárních klasifikátorech různých typů.

Základní úlohou rozpoznávání je nalezení strategie rozhodování minimalizující ztrátu plynoucí z chybných rozhodnutí. Potřebná znalost o (typicky statistickém) vztahu příznaků, t.j. pozorovatelných vlastností objektů a skrytých parametrů objektů z dané třídy je získána učením. Jsou představeny základní formulace úlohy rozpoznávání a principy učení.

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.

Obsah předmětu

  1. Úvod. Formulace úloh řešených v rozpoznávání. Mapa předmětu.
  2. Bayesovská úloha rozhodování, tj. čl. plynoucí z chybných rozhodnutí.
  3. Odhady parametrů pravděpodobnostních modelů.
  4. Lineární klasifikátor.
  5. Učení jako kvadraticky optimalizační problém.
  6. Učení metodou backpropagation.
  7. Druhý průchod učivem.

Cíle a metody

Předmět hluboce a obohacuje znalosti AI získané v bakalářském kurzu Kybernetika a umělá inteligence. Studenti získají přehled o dalších metodách používaných v AI a získají s nimi praktické zkušenosti. Osvojí si další požadované schopnosti pro budování inteligentních agentů. Aplikací nových modelů si zopakují základní principy strojového učení, techniky pro hodnocení modelů a metody pro prevenci přeučení. Dozvědí se o plánování a úlohách rozvrhování a o metodách, které se k jejich řešení používají. Studenti se také seznámí se základy pravděpodobnostních grafických modelů, Bayesovských sítí a Markovových modelů a naučí se jejich aplikace.

Studenti řeší několik rozpoznávacích úloh, např. klasifikaci některých písmen na registračních značkách automobilů. Předpokládáme, že značka byla již nalezena. Obrázky písmen jsou normalizovány na velikost 10×10 pixelů. K dispozici máte trénovací data, která byla náhodně vybrána. Jasové hodnoty pixelu jsou přerovnány do řádkových vektorů po sloupcích. Co řádek ve vstupním MAT-souboru, to jeden obrázek. Soubor train.mat obsahuje příznakové vektory, soubor train_labels.mat pak odpovídající označení tříd. Obrázky jsou pouze pro náhledy, rozhodující jsou data v MAT-souborech. Výsledek klasifikace bude ve stejném formátu jako proměnná v train_labels.mat. Obrázky v řádcích v train.mat odpovídají popiskům v train_labels.mat. Je dobré si uvědomit, že to je obvykle vše, co dá zákazník k dispozici. Poté, co připravíte kód, zákazník, kterého v tomto případě představuje cvičící, přinese testovací data, na kterých vaši práci ohodnotí. Testovací data budou v souborech test.mat, respektive test_labels.mat.

Ilustrace rozpoznávání znaků

Prerekvizity a hodnocení

V kurzu očekáváme základní znalost lineární algebry. Budeme také potřebovat něco málo z teorie pravděpodobnosti a statistiky; tyto znalosti vám poskytneme přímo v kurzu.

Hodnocení bude složeno ze 3 základních komponent: práce během semestru, test v průběhu semestru (midterm) a závěrečná zkouška.

Práce během semestru

  • Samostatné úlohy (45 minut).
  • Během semestru je možné získat bonusové body za úspěšné vyřešení kvízů či diskuze na cvičeních. Tyto body vám mohou pomoci vylepšit celkový součet.
  • Docházku budeme sledovat především pro naši potřebu, např. pro zapamatování jmen.
  • Předpokládáme, že diskuse nad problémy a konzultace k úlohám budou probíhat především na cvičení.
  • Konzultace mimo dobu cvičení na vyžádání.
  • Malé úlohy a kvízy nebudou nahrazovány.

Pro účast na zkoušce je třeba mít udělený zápočet.

Praktické úlohy a nástroje

Studenti si znalost procvičí na semestrálních úlohách, v nichž budeme používat Python, který si studenti mohli osvojit v předmětech B3B33ALP, B4B33RPH, nebo BAB37ZPR.

Při řešení praktických úloh strojového učení máme často k dispozici více klasifikátorů a musíme se rozhodnout, který je nejvhodnější pro danou úlohu. V zip balíčku je soubor (odkaz je níže), se kterým budete při řešení úlohy pracovat. Předpokládá se, že k řešení úlohy bude použit Python.

Do odevzdávacího systému se odevzdává pdf report a implementace související s částí Hlavně bezpečně. Celková délka reportu by měla být rozhodně kratší než dvě strany A4.

Příklad úlohy: Klasifikace a optimalizace parametru

Mějme 5 různých natrénovaných binárních klasifikátorů. Výsledek klasifikace každého z klasifikátorů je závislý na hodnotě parametru $\alpha$. Všechny klasifikátory pustíme na testovací množině $X$. Zároveň vyzkoušíme všechny přípustné hodnoty parametru $\alpha$. Pro klasifikátor $i$ dostane tabulku s hodnotami $C_i(\bf x_j,\alpha_k)\in \{0,1\}$.

Pro klasifikátor 1 určete, která hodnota parametru $\{\alpha_0, \alpha_1, \dots, \alpha_{49}\}$ je nejvhodnější. Uvědomte si, že zatím nevíte, pro jakou konkrétní úlohu bude dán klasifikátor použit, a proto je nutné použít dostatečně obecnou úvahu. V krátkém pdf reportu vaší volbu parametru zdůvodněte (užijte pojmy jako např. sensitivita, falešně pozitivní, ROC křivka atd.). Do reportu také vykreslete ROC křivku a na této křivce znázorněte bod, který odpovídá optimální hodnotě parametru.

Ukázka ROC křivky

Příklad úlohy: Bezpečnostní klasifikace

Nyní si představte, že jste agent/ka 00111 a chcete k zabezpečení velmi tajných dokumentů použít svůj otisk prstu. Jedná se o velmi citlivá data, takže pokud nebudou kvalitně zabezpečena, tak bude lepší je zničit. K odemčení dat je vždy dostatek času. K dispozici máte 5 natrénovaných klasifikátorů (s různými hodnotami parametru $\alpha$). Všechny klasifikátory byly otestovány na testovací množině pro všechny hodnoty parametru $\alpha$. Výsledky testu pro jednotlivé klasifikátory jsou uloženy v tabulkách.

Vyberte vhodný klasifikátor a jeho parametr $\alpha$. Tato část navazuje na předchozí část Přísně tajné!. Váš kolega, také agent, se nabídne, že vám poskytne svůj klasifikátor, který je opět závislý na parametru $\alpha$. Protože není jisté, jestli se nejedná o dvojitého agenta, tak bude dobré nejdříve zjistit, jestli je klasifikátor lepší než klasifikátor vybraný v předchozí části. Z bezpečnostních důvodů bude muset rozhodnutí provést předem vytvořená funkce.

Doporučená literatura

  • S. Russel, P. Norvig: Artificial Intelligence - A Modern Approach, 3rd ed., 2010
  • Christopher M. Bishop. Pattern Recognition and Machine Learning.
  • T.M. Cover and P.E. Hart. Nearest neighbor pattern classification.
  • Richard O. Duda, Peter E. Hart, and David G. Stork. Pattern classification. Wiley Interscience Publication.
  • Vojtěch Franc and Václav Hlaváč. Statistical pattern recognition toolbox for Matlab. Czech Technical University, Prague, Czech Republic, June 2004.
  • Michail I. Schlesinger and Václav Hlaváč. Ten Lectures on Statistical and Structural Pattern Recognition.

MLMU.cz - Úvod do strojového učení – M. Modrý, O. Pluskal

tags: #strojove #uceni #rozvrh #fel