vas3k cz
ML for what?
Předpokládejme, že si Oleg chce koupit auto a spočítá si, kolik peněz na to potřebuje ušetřit. Prohlédne si inzeráty na internetu a zjistí, že nová auta stojí kolem 20 000 dolarů, roční auta stojí kolem 19 000 dolarů, dvouletá auta stojí 18 000 dolarů atd.
Oleg v hlavě vymyslí vzorec: adekvátní cena auta začíná na 20 000 dolarech a každý rok se sníží o 1000 dolarů, dokud nedosáhne 10 000 dolarů.
Oleg provedl to, čemu strojové učení říká regrese - předpověděl cenu na základě známých dat.
Tři hlavní prvky učení: Data Chceme detekovat spam - potřebujeme příklady spamových e-mailů, chceme předpovídat ceny akcií - potřebujeme historii cen, chceme znát zájmy uživatele - potřebujeme jeho lajky nebo posty. Příznaky Může se například jednat o počet najetých kilometrů, pohlaví uživatele, cenu akcií nebo dokonce o měřič frekvence slov. Algoritmus Stejný problém lze řešit různými metodami přibližně ve všech dobách. Volba metody určuje přesnost, rychlost a velikost hotového modelu.
Umělá inteligence je název celého oboru. Strojové učení je část umělé inteligence. Důležité, ale ne jediné. Neuronové sítě jsou typem strojového učení. Hluboké učení je architektura neuronových sítí, jeden z přístupů k jejich konstrukci a trénování.
Stroj může | Stroj nemůže
-— | -—
Předvídat | vytvořit nový
Zapamatovat si | být chytřejší
Reprodukovat | jít nad rámec úkolu
Vybrat nejlepší | zabít všechny lidi
V současné době se strojové učení věnuje pouze čtyřem hlavním oblastem.
Učení s učitelem
učitel již předem rozdělil (označil) všechna data na kočky a psy a stroj se učí na konkrétních příkladech.
Tyto úlohy se dělí na dva typy:
klasifikační - předpovídání kategorie objektu a regresní - předpovídání místa na číselné řadě.
Klasifikace - Odděluje objekty podle předem určené vlastnosti.(Spamové filtry, Definice jazyka, Vyhledávání podobných dokumentů, Tónová analýza, Rozpoznávání ručně psaných písmen a číslic, Identifikace podezřelých transakcí)
Populární algoritmy: Naive Bayes(spam), Rozhodovací stromy, Logistická regrese, K-Nearest Neighbour, metoda referenčních vektorů.
Klasifikace vždy potřebuje učitele - označená data s atributy a kategoriemi, které se stroj naučí z těchto atributů identifikovat.
Rozhodovací stromy. Stroj automaticky rozdělí všechna data podle otázek s odpověďmi "ano" nebo "ne". Čím vyšší úroveň, tím je otázka obecnější. (Dva nejznámější algoritmy pro tvorbu stromů jsou CART a C4.5)
Metoda referenčních vektorů (SVM) pomáhá identifikovat podobné oblasti v grafu, hledá, jak nakreslit dvě přímky mezi kategoriemi tak, aby mezi nimi byla co největší vzdálenost.
Regrese - stejnou klasifikaci, jen místo kategorie předpovídáme číslo.
Populární algoritmy: lineární nebo polynomiální regrese
Pokud regrese vykresluje přímku, nazývá se lineární, pokud křivku, nazývá se polynomická.
(Prognózování hodnot cenných papírů, Analýza nabídky, objem prodeje, Lékařské diagnózy, Libovolný počet časových závislostí)
učení bez učitele
Data nejsou nijak označena, stroj nemá žádného učitele a snaží se sám najít jakékoli vzory. Učení bez učitele se však častěji používá jako metoda analýzy dat než jako základní algoritmus.
Clusterování - Rozděluje objekty podle neznámé charakteristiky. Stroj sám rozhodne, co je nejlepší. Vyhledává podobné objekty a sdružuje je do skupin.
(Segmentace trhu (typy zákazníků, věrnost), Sloučení blízkých bodů na mapě, Komprese obrázků,Analýza a značkování nových dat, Detektory abnormálního chování)
Populární algoritmy: metoda K-means, Mean-Shift, DBSCAN.
Metoda K-Means (K-Means). Náhodně umístíme našich 32 bodů na barevnou paletu a nazveme je centroidy. Všechny ostatní body bereme do nejbližšího centroidu od nich, jako by šlo o souhvězdí nejbližších barev. Poté přesuneme centroid do středu jeho souhvězdí a opakujeme, dokud se centroidy nepřestanou pohybovat. Klastry jsou zjištěny, jsou stabilní a je jich přesně 32.
Redukce dimenzionality (zobecnění) - Sdružuje konkrétní atributy do abstrakcí vyšší úrovně.
(Doporučující systémy (★),atraktivní vizualizace, Definování tématu a vyhledávání podobných dokumentů, analýza falešných snímků, Rizikový management)
Populární algoritmy: analýza hlavních komponent (PCA), singulární rozklad (SVD), latentní Dirichletovo rozmístění (LDA), latentní sémantická analýza (LSA, pLSA, GLSA), t-SNE (pro vizualizaci).
Latentní sémantická analýza (LSA) Četnost opakování slova v textu závisí na jeho tématu: ve vědeckých článcích je více odborných termínů, v politických zprávách je více jmen politiků. Přesnost takového systému je úplně dole.
Singulární rozklad (SVD) Musíme nějakým způsobem spojit slova a dokumenty do jedné funkce, abychom neztratili tyto skryté (latentní) souvislosti. Populární aplikace redukce dimenzionality byly nalezeny v systému doporučení a kolaborativním filtrování.
Učení asociačních pravidel - Hledá vzory v průběhu objednávek
(Prognóza zásob a prodeje, analýza společně nakoupeného zboží, Rozdělení prostoru v regálech, analýza vzorců chování na webových stránkách)
Populární algoritmy: Apriori, Euclat, FP-growth
Učení s podporou
to zní jako když pošlete robota do bludiště a necháte ho hledat cestu ven. používá se tam, kde cílem není analyzovat data, ale přežít v reálném prostředí.
Při posilování učení si stroj nepamatuje každý krok, ale snaží se situace zobecnit, aby z nich získal to nejlepší.
(Samořídící vozidla, Vysávací roboti, hry, Automatické obchodování, Správa podnikových zdrojů)
Populární algoritmy: Q-Learning, SARSA, DQN, A3C, genetický algoritmus.
Q-learning a jeho deriváty (SARSA a DQN). Písmeno Q v názvu znamená slovo Quality, tj. robot se učí jednat co nejlépe v každé situaci a všechny situace si pamatuje jako jednoduchý Markovův proces.
Genetický algoritmus - To je, když do nějakého prostředí umístíme několik robotů a necháme je jít k cíli, dokud nezemřou. Pak vybereme ty nejlepší, zkřížíme je, přidáme mutace a zase je vypustíme.
Аnsámbly
(Všude tam, kam se hodí klasické algoritmy (ale fungují přesněji), Vyhledávací stroje (★), počítačové vidění, Rozpoznání objektů)
Populární algoritmy: Náhodný les, Gradient Boosting
Pokud vezmeme několik neefektivních metod výuky a naučíme je vzájemně opravovat své chyby, bude kvalita takového systému mnohem vyšší než u každé z metod samostatně.
Stacking Trénujeme několik různých algoritmů a jejich výsledky předáváme poslednímu algoritmu, který přijímá konečné rozhodnutí.
Begging Mnohokrát trénujte jeden algoritmus na náhodných vzorcích nezpracovaných dat. Na samém konci odpovědi zprůměrujeme. Random Forest schopnost paralelizace dává beggingu výhodu.
Boosting Algoritmy učíme postupně, přičemž každý následující algoritmus věnuje zvláštní pozornost případům, kdy byl předchozí algoritmus chybný.
V současné době existují tři populární metody boostu CatBoost vs. LightGBM vs. XGBoost
Neuronové sítě a hluboké učení
Populární architektury: perceptron, koherentní sítě (CNN), rekurentní sítě (RNN), autoenkodéry.
(namísto všech výše uvedených algoritmů, detekce objektů na fotografiích a videích, rozpoznávání a syntéza řeči, zpracování obrazu, přenos stylu, strojový překlad)
Jakákoli neuronová síť je soubor neuronů a spojení mezi nimi. Neuron se nejlépe představuje jako funkce s několika vstupy a jedním výstupem. Jeho úkolem je vzít čísla ze vstupů, provést nad nimi funkci a výsledek předat na výstup. Jednoduchý příklad užitečného neuronu: sečte všechny číslice ze vstupů, a pokud je jejich součet větší než N - vypíše jedničku, jinak nulu.
Spojení jsou kanály, kterými si neurony navzájem posílají čísla. Každý odkaz má svou váhu - jediný parametr, který lze konvenčně považovat za sílu odkazu. Když číslo 10 projde spojením s váhou 0,5, změní se na 5. Neuron sám přitom nechápe, co k němu přišlo, a sečte vše v řadě - to jsou váhy, které jsou potřeba k řízení toho, na které vstupy má neuron reagovat a na které ne.
Síť s několika vrstvami a neurony propojenými mezi nimi se nazývá perceptron (MLP).
Backpropagation - Nejdříve jsou všechny váhy náhodně rozmístěny, ukážeme síti číslo, ona dá nějakou náhodnou odpověď (nemá žádné váhy) a my porovnáme, jak moc se liší výsledek od toho, co chceme. Pak projdeme sítí v opačném směru, od výstupů ke vstupům, a každému neuronu řekneme - no, tady ses z nějakého důvodu aktivoval, kvůli tobě to šlo špatně, pojďme reagovat trochu méně na toto spojení a trochu více na tamto, jo?