Arthur Samuel v roce 1959 vymyslel termín „strojové učení“ a definoval ho jako „obor, který dává počítačům schopnost učit se, aniž by byly explicitně naprogramovány“.
A to byl začátek strojového učení! V moderní době je strojové učení jednou z nejoblíbenějších (ne-li nejoblíbenější!) profesních možností. Podle portálu Indeed je Machine Learning Engineer The Best Job of 2019 (Inženýr strojového učení) s 344% nárůstem a průměrným základním platem 146 085 dolarů ročně.
Je však stále mnoho pochybností o tom, co přesně je strojové učení a jak se ho začít učit? Tento článek se proto zabývá základy strojového učení a také cestou, po které se nakonec můžete stát plnohodnotným inženýrem strojového učení. Nyní začneme!!!
- Co je to strojové učení?
- Jak se začít učit ML?
- Krok 1 – Pochopte předpoklady
- (a) Naučte se lineární algebru a vícerozměrný kalkul
- (b) Naučte se statistiku
- (c) Naučte se Python
- Krok 2 – Naučte se různé koncepty ML
- (a) Terminologie strojového učení
- (b) Typy strojového učení
- (c) Jak praktikovat strojové učení?
- (d) Zdroje pro výuku strojového učení:
- Krok 3 – Zúčastněte se soutěží
Co je to strojové učení?
Strojové učení zahrnuje použití umělé inteligence, která umožňuje strojům naučit se určitý úkol na základě zkušeností, aniž by je bylo nutné pro tento úkol speciálně programovat. (Stručně řečeno, stroje se učí automaticky bez lidského vedení!!!) Tento proces začíná tím, že jim dodáte kvalitní data a poté stroje vycvičíte sestavením různých modelů strojového učení pomocí dat a různých algoritmů. Výběr algoritmů závisí na tom, jaký typ dat máme k dispozici a jakou úlohu se snažíme automatizovat.
Jak se začít učit ML?
Toto je hrubý plán, kterým se můžete řídit na cestě k tomu, abyste se stali šíleně talentovaným inženýrem strojového učení. Jednotlivé kroky můžete samozřejmě vždy upravit podle svých potřeb, abyste dosáhli požadovaného konečného cíle!
Krok 1 – Pochopte předpoklady
V případě, že jste génius, můžete začít ML rovnou, ale obvykle je třeba znát některé předpoklady, mezi které patří lineární algebra, vícerozměrný výpočet, statistika a Python. A pokud je neznáte, nebojte se! Nepotřebujete doktorát z těchto témat, abyste mohli začít, ale potřebujete základní znalosti.
(a) Naučte se lineární algebru a vícerozměrný kalkul
Lineární algebra i vícerozměrný kalkul jsou ve strojovém učení důležité. Míra jejich potřeby však závisí na vaší roli datového vědce. Pokud se zaměřujete spíše na aplikačně náročné strojové učení, nebudete se matematice věnovat tak intenzivně, protože je k dispozici mnoho běžných knihoven. Pokud se však chcete zaměřit na R&D ve strojovém učení, pak je zvládnutí lineární algebry a vícerozměrného počtu velmi důležité, protože budete muset implementovat mnoho ML algoritmů od nuly.
(b) Naučte se statistiku
Data hrají ve strojovém učení obrovskou roli. Ve skutečnosti zhruba 80 % svého času jako odborník na ML strávíte shromažďováním a čištěním dat. A statistika je obor, který se zabývá sběrem, analýzou a prezentací dat. Není tedy divu, že se ji musíte naučit!!!
Mezi klíčové pojmy statistiky, které jsou důležité, patří statistická významnost, rozdělení pravděpodobnosti, testování hypotéz, regrese atd. Velmi důležitou součástí ML je také bayesovské myšlení, které se zabývá různými pojmy, jako je podmíněná pravděpodobnost, priory a posteriory, maximální pravděpodobnost atd.
(c) Naučte se Python
Někteří lidé raději přeskočí lineární algebru, vícerozměrný výpočet a statistiku a učí se je za pochodu metodou pokus-omyl. Ale jediná věc, kterou rozhodně nemůžete přeskočit, je Python! I když existují i jiné jazyky, které můžete pro strojové učení použít, například R, Scala atd. Python je v současnosti nejoblíbenějším jazykem pro ML. Ve skutečnosti existuje mnoho knihoven jazyka Python, které jsou užitečné právě pro umělou inteligenci a strojové učení, například Keras, TensorFlow, Scikit-learn atd.
Chcete-li se tedy naučit ML, bude nejlepší, když se naučíte Python! To můžete udělat pomocí různých online zdrojů a kurzů, jako je například Fork Python, který je zdarma k dispozici na GeeksforGeeks.
Krok 2 – Naučte se různé koncepty ML
Teď, když máte hotové předpoklady, můžete přejít k samotnému učení ML (Což je ta zábavná část!!!) Nejlepší je začít se základy a pak přejít ke složitějším věcem. Některé ze základních pojmů v ML jsou:
(a) Terminologie strojového učení
- Model – Model je specifická reprezentace naučená z dat použitím nějakého algoritmu strojového učení. Model se také nazývá hypotéza.
- Příznak – Příznak je individuální měřitelná vlastnost dat. Soubor číselných příznaků lze vhodně popsat vektorem příznaků. Vektory příznaků jsou přiváděny jako vstup do modelu. Například pro predikci ovoce mohou být k dispozici rysy jako barva, vůně, chuť atd.
- Cíl (label) – Cílová proměnná neboli label je hodnota, kterou má náš model predikovat. V případě příkladu s ovocem, o kterém jsme hovořili v části o funkcích, by štítkem u každé sady vstupů byl název ovoce, například jablko, pomeranč, banán atd.
- Trénování – Jde o to, že zadáme sadu vstupů (funkcí) a její očekávané výstupy (štítky), takže po trénování budeme mít model (hypotézu), který pak bude mapovat nová data na jednu z kategorií, na které byl trénován.
- Predikce – Jakmile je náš model připraven, lze mu zadat sadu vstupů, ke kterým poskytne predikovaný výstup(štítek).
(b) Typy strojového učení
- Supervised Learning (učení pod dohledem) – Jedná se o učení z trénovací sady dat s označenými daty pomocí klasifikačních a regresních modelů. Tento proces učení pokračuje, dokud není dosaženo požadované úrovně výkonu.
- Unsupervised Learning (učení bez dozoru) – Zahrnuje použití neoznačených dat a následné nalezení základní struktury v datech s cílem naučit se více a více o samotných datech pomocí modelů faktorové a shlukové analýzy.
- Semi-supervised Learning (učení s částečným dozorem) – Zahrnuje použití neoznačených dat jako Unsupervised Learning s malým množstvím označených dat. Použití označených dat výrazně zvyšuje přesnost učení a je také nákladově efektivnější než Supervised Learning.
- Reinforcement Learning – Jedná se o učení optimálních akcí metodou pokus-omyl. O další akci se tedy rozhoduje na základě učení chování, které vychází z aktuálního stavu a které maximalizuje odměnu v budoucnu.
(c) Jak praktikovat strojové učení?
- Nejvíce času v ML vlastně zabere sběr, integrace, čištění a předzpracování dat. Nezapomeňte si to tedy procvičit, protože potřebujete kvalitní data, ale velké množství dat je často špinavé. Takže tady strávíte nejvíce času!!!
- Naučte se různé modely a procvičujte je na reálných datových sadách. To vám pomůže při vytváření intuice, které typy modelů jsou vhodné v různých situacích.
- Současně s těmito kroky je stejně důležité pochopit, jak interpretovat výsledky získané použitím různých modelů. To lze snáze provést, pokud porozumíte různým parametrům ladění a metodám regularizace aplikovaným na různé modely.
(d) Zdroje pro výuku strojového učení:
Existují různé online i offline zdroje (bezplatné i placené!), které lze použít k učení strojového učení. Některé z nich uvádíme zde:
- Pro široký úvod do strojového učení je poměrně populární Stanfordův kurz strojového učení od Andrewa Nga. Zaměřuje se na strojové učení, dolování dat a statistické rozpoznávání vzorů, přičemž vysvětlující videa jsou velmi užitečná pro objasnění teorie a základních pojmů stojících za ML.
- Pokud chcete samostudium strojového učení, pak je pro vás vhodný kurz Machine Learning Crash Course od společnosti Google, který vám poskytne úvod do strojového učení pomocí videopřednášek, případových studií z reálného světa a praktických cvičení.
- V případě, že dáváte přednost offline kurzu, bude pro vás ideální kurz Geeksforgeeks Machine Learning Foundation. V tomto kurzu se seznámíte s různými koncepty strojového učení a také si prakticky vyzkoušíte jejich implementaci v prostředí učebny.
Krok 3 – Zúčastněte se soutěží
Poté, co jste pochopili základy strojového učení, můžete přejít k bláznivé části!!! Soutěže! Ty vás v podstatě ještě více zdokonalí v ML tím, že spojí vaše převážně teoretické znalosti s praktickou realizací. Některé ze základních soutěží, kterými můžete začít na Kagglu a které vám pomohou vybudovat si důvěru, jsou uvedeny zde:
- Titanic: Strojové učení z katastrofy: Titanic: Soutěž Strojové učení z katastrofy je velmi oblíbeným začátečnickým projektem pro ML, protože je k dispozici několik výukových programů. Je to tedy skvělý úvod do konceptů ML, jako je zkoumání dat, feature engineering a ladění modelu.
- Rozpoznávač číslic: Digit Recognizer je projekt po získání určitých znalostí jazyka Python a základů ML. Je to skvělý úvod do vzrušujícího světa neuronových sítí s použitím klasické datové sady, která obsahuje předem extrahované rysy.
Po absolvování těchto soutěží a dalších podobných jednoduchých výzev … Gratulujeme!!!! Jste na dobré cestě stát se plnohodnotným inženýrem strojového učení a své dovednosti můžete dále zdokonalovat prací na dalších a dalších výzvách a nakonec vytvářet stále kreativnější a náročnější projekty strojového učení.