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í má široké uplatnění. Jeho techniky se využívají pro rozpoznávání a kompresi obrazů či akustických (např. rozpoznávání řeči) nebo elektrických (např. EKG, EEG) signálů, klasifikaci či segmentaci dat, předvídání vývoje časových řad (např. burzovních indexů), k rozpoznávání psaného textu či k filtrování spamu. V lékařství slouží k diagnostice onemocnění a v řízení pro podporu rozhodování.
Základní rozdělení algoritmů učení[editovat | editovat zdroj]
Algoritmy strojového učení lze podle způsobu učení rozdělit do následujících kategorií:
- Učení s učitelem („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 („unsupervised learning“) - ke vstupním datům není známý výstup.
- Kombinace učení s učitelem a bez učitele („semi-supervised learning“) - část vstupních dat je se známým výstupem, ale další data, typicky větší, jsou bez něj.
- Zpětnovazebné učení („reinforcement learning“), též učení posilováním.
Podle způsobu zpracování lze algoritmy rozdělit na:
- dávkové: Všechna data se 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[editovat | editovat zdroj]
- Klasifikace rozděluje data do dvou nebo několika tříd (učení s učitelem)
- Regrese odhaduje číselné hodnoty výstupu podle vstupu (učení s učitelem)
- Shlukování zařazuje objekty do skupin s podobnými vlastnostmi (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 zpracování obrazu jako matice atd ...
Podoblasti strojového učení[editovat | editovat zdroj]
- 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)
- Neuronové sítě, učení s učitelem, učení bez učitele, hluboké učení
- Bayesovské sítě
- Techniky pro kombinaci více modelů (en:Meta learning)
- Testování přesnosti modelu:
Terminologie[editovat | editovat zdroj]
- Data, body, případy, měření
- Atributy, rysy, proměnné, fíčury/features
- Druhy/typy atributů: kategoriální (např. "A", "B", "AB" nebo "O" pro krevní skupiny), ordinální (např. "velký", "střední" nebo "malý"), strukturované, hierarchické, binární, celočíselné (např. počet výskytů slova v emailu) anebo reálné (např. měření krevního tlaku)
Software[editovat | editovat zdroj]
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), TensorFlow (Google)
Hardware[editovat | editovat zdroj]
Optimální hardwarová implementace provádění výpočtů umožňuje značně urychlit nalezení výsledku. Používají se různé způsoby:
- Tensor Processing Unit (TPU) [1] od Google jsou specializované integrované obvody ve formě čipů implementovaných v zařízení TPU (An application-specific integrated circuit (ASIC)), který optimalizuje výpočetní výkon strojového učení.
- Graphics Processing Unit (GPU) je systém procesorů implementovaných na grafické kartě, původně určený především pro běh počítačových her, kladoucích velké nároky na výpočetní výkon. Na rozdíl od CPU majících k dispozici maximálně 8 nebo 16 výpočetních vláken, GPU jich může využívat až např. 2 048. Pro algoritmizaci učení se pak může užít tzv. CUDA platforma, umožňující programovat v jazicích C++ resp. Fortran, která umožní díky velkému počtu dostupných výpočetních vláken vysoký stupeň paralelizace výpočtu, čímž zvýší výpočetní výkon strojového učení.
Reference[editovat | editovat zdroj]
- ↑ Google developers: Machine Learning Glossary
Literatura[editovat | editovat zdroj]
- KŘIVAN, Miloš. Umělé neuronové sítě. [s.l.]: Nakladatelství Oeconomica, Vysoká škola ekonomická v Praze 77 s. Dostupné online. ISBN 978-80-245-2420-7.
Související články[editovat | editovat zdroj]
Externí odkazy[editovat | editovat zdroj]
Obrázky, zvuky či videa k tématu strojové učení na Wikimedia Commons