Strojové učení


Strojové učení je podoblastí umělé inteligence, zabývající se algoritmy a technikami, které umožňují počítačovému systému 'učit se'. Učením v daném kontextu rozumíme takovou změnu vnitřního stavu systému, která zefektivní schopnost přizpůsobení se změnám okolního prostředí.

Strojové učení se značně prolíná s oblastmi statistiky a dobývaní znalostí a má široké uplatnění. Jeho techniky se využívají např. v biomedicínské informatice (tzv. systémy pro podporu rozhodování), rozlišení nelegálního užití kreditních karet, rozpoznávání řeči a psaného textu, či mnohé další. Algoritmy však mohou být tendenční.

Základní rozdělení algoritmů učení
Algoritmy strojového učení lze podle způsobu učení rozdělit do následujících kategorií:

učení s učitelem (en:supervised learning) Pro vstupní data je určen správný výstup (třída pro klasifikaci nebo hodnota pro regresi)
učení bez učitele (en:unsupervised learning) Ke vstupním datům není známý výstup
kombinace učení s učitelem a bez učitele (en:semi-supervised learning) Část vstupních dat je se známým výstupem, ale další data, typicky větší, jsou bez něj. Často se používá EM algoritmus (en:Expectation–maximization algorithm). Podobný přístup je transdukce
zpětnovazebné učení (en:reinforcement learning), též učení posilováním
Podle způsobu zpracování lze algoritmy rozdělit na

dávkové: Všechny data požadují před začátkem výpočtu.
inkrementální: Dokážou se "přiučit", tj. upravit model, pokud dostanou nová data, bez přepočítání celého modelu od začátku
Základní druhy úloh
Klasifikace rozděluje vstupní data do dvou nebo několika tříd.
Regrese odhaduje číselnou hodnotu výstupu podle vstupu
Shlukování zařazuje objekty do skupin s podobnými vlastnostmi, typicky při učení bez učitele
Další typy úloh jsou:

Ranking určuje pořadí datových bodů, výsledkem je částečné nebo úplné setřídění
Učení strukturovaných dat. Výstupní neboli hledaná struktura může být například sekvence, strom, graf, matice ... Aplikace jsou např. učení syntaktických stromů ve zpracování přirozeného jazyka, zarovnání několika sekvencí proteinů v bioinformatice, převod řeči na textový řetězec, tj. na sekvenci znaků, hledání vhodné molekuly reprezentované jako graf v chemoinformatice, výstup obrázkového algoritmu jako matice (mnoho konkrétních úloh) ...
Podoblasti strojového učení
Používané modely:
Rozhodovací stromy
Algoritmus k-nejbližších sousedů
Podpůrné vektory, viz Support vector machines
Lineární diskriminační analýza (en:Linear discriminant analysis)
Kvadratická diskriminační analýza (en:Quadratic discriminant analysis)
Množina rozhodovacích pravidel
Perceptron
Bayesovské sítě
Neuronové sítě
Techniky pro kombinaci více modelů (en:Ensemble learning a en:Meta learning (computer science))
Bootstrap aggregating (resp. zkratka Bagging) (en:Bootstrap aggregating)
Boosting (en:Boosting)
Stacking
Testování přesnosti modelu:
Křížová validace
Bootstrap_(statistika) (en:Bootstrapping (statistics))
viz také odstavec Odhady pravděpodobností správné klasifikace
Terminologie
Data, body, případy, měření
Atributy, rysy, proměnné, fíčury/features
Druhy/typy atributů: binární, kategoriální (např. "A", "B", "AB" nebo "O" pro krevní skupiny, ordinální (např. "velký", "střední" nebo "malý"), celočíselné (např. počet výskytů slova v emailu) anebo reálné (např. měření krevního tlaku); strukturované, hierarchické
Software
RapidMiner, KNIME, Weka, ODM, Shogun toolbox, Orange, Apache Mahout a scikit-learn jsou softwarové balíky, které obsahují různé algoritmy strojového učení.

Online: Microsoft Azure Machine Learning (Azure ML)