Strojové učení bez Pythonu, Anacondy a dalších plazů

Ne, samozřejmě, nemyslím to vážně. Musí existovat limit, do jaké míry je možné předmět zjednodušit. Ale pro první fáze, pochopení základních pojmů a rychlé „vstupování“ do tématu, to může být přijatelné. Jak tento materiál správně pojmenovat (možnosti: „Strojové učení pro figuríny“, „Analýza dat z plen“, „Algoritmy pro nejmenší“) probereme na konci.

Do té míry. Napsal několik aplikačních programů v MS Excel pro vizualizaci a vizuální reprezentaci procesů, které se vyskytují v různých metodách strojového učení při analýze dat. Vidět je přece věřit, jak říkají nositelé kultury, která většinu těchto metod vyvinula (mimochodem, ne všechny. Nejvýkonnější „support vector machine“, neboli SVM, support vector machine, je vynálezem náš krajan Vladimír Vapnik, Moskevský institut managementu. Mimochodem, 1963! Nyní však vyučuje a pracuje v USA).

Tři soubory ke kontrole

1. Shlukování K-prostředků

Problémy tohoto typu se týkají „učení bez dozoru“, kdy potřebujeme rozdělit počáteční data do určitého počtu předem známých kategorií, ale nemáme žádný počet „správných odpovědí“, musíme je extrahovat z dat samotných. . Základní klasický problém hledání poddruhů kosatcových květů (Ronald Fisher, 1936!), který je považován za první znak tohoto oboru poznání, je právě tohoto charakteru.

Metoda je celkem jednoduchá. Máme množinu objektů reprezentovaných jako vektory (množiny N čísel). U duhovek jsou to sady 4 čísel, které charakterizují květ: délka a šířka vnějšího a vnitřního laloku periantu (Fischerovy kosatce - Wikipedie). Obvyklá kartézská metrika je zvolena jako vzdálenost nebo míra blízkosti mezi objekty.

Dále jsou středy shluků vybrány náhodně (nebo ne náhodně, viz níže) a jsou vypočteny vzdálenosti od každého objektu ke středům shluků. Každý objekt v daném kroku iterace je označen jako objekt patřící k nejbližšímu středu. Poté se střed každého shluku převede na aritmetický průměr souřadnic jeho členů (analogicky s fyzikou se mu také říká „střed hmoty“) a postup se opakuje.

Proces konverguje poměrně rychle. Na obrázcích ve dvou rozměrech to vypadá takto:

1. Počáteční náhodné rozložení bodů na rovině a počet shluků

Strojové učení bez Pythonu, Anacondy a dalších plazů

2. Určení středů shluků a přiřazení bodů jejich shlukům

Strojové učení bez Pythonu, Anacondy a dalších plazů

3. Přenesení souřadnic středů shluků, přepočet příslušnosti bodů, dokud se středy nestabilizují. Je viditelná trajektorie středu kupy pohybující se do své konečné polohy.

Strojové učení bez Pythonu, Anacondy a dalších plazů

Kdykoli můžete nastavit nová centra clusteru (bez generování nového rozdělení bodů!) a uvidíte, že proces rozdělení není vždy jednoznačný. Matematicky to znamená, že pro optimalizovanou funkci (součet čtverců vzdáleností od bodů ke středům jejich shluků) najdeme nikoli globální, ale lokální minimum. Tento problém lze překonat buď nenáhodným výběrem počátečních středů shluků, nebo výčtem možných středisek (někdy je výhodné umístit je přesně do jednoho z bodů, pak je alespoň záruka, že nedostaneme prázdnou shluky). V každém případě má konečná množina vždy infimum.

S tímto souborem si můžete zahrát na tomto odkazu (nezapomeňte povolit podporu maker. Soubory byly zkontrolovány na přítomnost virů)

Popis metody na Wikipedii - metoda k-means

2. Aproximace pomocí polynomů a členění dat. Rekvalifikace

Pozoruhodný vědec a popularizátor datové vědy K.V. Vorontsov stručně popisuje metody strojového učení jako „vědu kreslení křivek prostřednictvím bodů“. V tomto příkladu najdeme v datech vzor pomocí metody nejmenších čtverců.

Je ukázána technika dělení zdrojových dat na „trénink“ a „kontrola“ a také fenomén jako přeškolení nebo „přenastavení“ na data. Při správné aproximaci budeme mít určitou chybu na trénovacích datech a o něco větší chybu na kontrolních datech. Pokud je nesprávná, vede to k přesnému přizpůsobení tréninkových dat a velké chybě testovacích dat.

(Je známou skutečností, že přes N bodů lze nakreslit jedinou křivku N-1 stupně a tato metoda v obecném případě nedává požadovaný výsledek. Lagrangeův interpolační polynom na Wikipedii)

1. Nastavte počáteční rozdělení

Strojové učení bez Pythonu, Anacondy a dalších plazů

2. Body rozdělíme na „trénink“ a „kontrolu“ v poměru 70 ku 30.

Strojové učení bez Pythonu, Anacondy a dalších plazů

3. Nakreslíme aproximační křivku podél trénovacích bodů, na kontrolních datech vidíme chybu, kterou dává

Strojové učení bez Pythonu, Anacondy a dalších plazů

4. Přes tréninkové body nakreslíme přesnou křivku a na kontrolních datech vidíme monstrózní chybu (a na tréninkových datech nulu, ale k čemu to je?).

Strojové učení bez Pythonu, Anacondy a dalších plazů

Zobrazena je samozřejmě nejjednodušší varianta s jediným rozdělením na podmnožiny „trénink“ a „kontrola“; v obecném případě se to dělá mnohokrát pro nejlepší úpravu koeficientů.

Soubor je dostupný zde, zkontrolován antivirem. Pro správnou funkci povolte makra

3. Gradientní klesání a dynamika změny chyby

Bude existovat 4-rozměrný případ a lineární regrese. Koeficienty lineární regrese budou stanoveny krok za krokem metodou gradientního sestupu, zpočátku jsou všechny koeficienty nulové. Samostatný graf ukazuje dynamiku snižování chyb, jak jsou koeficienty upravovány stále přesněji. Je možné zobrazit všechny čtyři 2-rozměrné projekce.

Pokud nastavíte krok sestupu příliš velký, můžete vidět, že pokaždé přeskočíme minimum a k výsledku dojdeme ve větším počtu kroků, i když nakonec stejně dojdeme (pokud neoddálíme krok sestupu mnohem - pak algoritmus půjde "piky"). A graf chyby v závislosti na kroku iterace nebude hladký, ale „trhavý“.

1. Vygenerujte data, nastavte krok sestupu gradientu

Strojové učení bez Pythonu, Anacondy a dalších plazů

2. Při správné volbě kroku gradientu klesání plynule a rychle dosáhneme minima

Strojové učení bez Pythonu, Anacondy a dalších plazů

3. Pokud je špatně zvolen spádový sestupový krok, přestřelíme maximum, chybový graf je „trhavý“, konvergence trvá větší počet kroků

Strojové učení bez Pythonu, Anacondy a dalších plazů
и

Strojové učení bez Pythonu, Anacondy a dalších plazů

4. Zvolíme-li krok gradientu sestupu zcela špatně, vzdálíme se minimu

Strojové učení bez Pythonu, Anacondy a dalších plazů

(Chcete-li reprodukovat proces pomocí hodnot kroku sestupu gradientu zobrazených na obrázcích, zaškrtněte políčko „referenční data“).

Soubor je na tomto odkazu, je potřeba povolit makra, nejsou tam žádné viry.

Je podle respektované komunity takové zjednodušení a způsob prezentace materiálu přijatelné? Má cenu překládat článek do angličtiny?

Zdroj: www.habr.com

Přidat komentář