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)