Strojové učenie bez Pythonu, Anacondy a iných plazov

Nie, samozrejme, nemyslím to vážne. Musí existovať hranica, do akej je možné predmet zjednodušiť. Ale pre prvé fázy, pochopenie základných pojmov a rýchle „zadanie“ témy, to môže byť prijateľné. Na konci si povieme, ako správne pomenovať tento materiál (možnosti: „Strojové učenie pre figuríny“, „Analýza údajov z plienok“, „Algoritmy pre najmenších“).

K veci. Napísal niekoľko aplikačných programov v MS Excel na vizualizáciu a vizuálnu reprezentáciu procesov, ktoré sa vyskytujú v rôznych metódach strojového učenia pri analýze dát. Vidieť je predsa veriť, ako hovoria nositelia kultúry, ktorá väčšinu týchto metód vyvinula (mimochodom, nie všetky. Najvýkonnejší „podporný vektorový stroj“, alebo SVM, support vector machine je vynálezom tzv. náš krajan Vladimír Vapnik, Moskovský inštitút manažmentu.Mimochodom 1963! Teraz však učí a pracuje v USA).

Tri súbory na kontrolu

1. K-znamená zhlukovanie

Problémy tohto typu sa týkajú „učenia bez dozoru“, keď potrebujeme rozdeliť počiatočné údaje do určitého počtu vopred známych kategórií, ale nemáme žiadny počet „správnych odpovedí“, musíme ich extrahovať zo samotných údajov. . Základný klasický problém hľadania poddruhov kvetov kosatca (Ronald Fisher, 1936!), ktorý sa považuje za prvý znak tejto oblasti poznania, je práve tohto charakteru.

Metóda je celkom jednoduchá. Máme množinu objektov reprezentovaných ako vektory (množiny N čísel). V kosatcoch sú to sady 4 čísel, ktoré charakterizujú kvet: dĺžka a šírka vonkajšieho a vnútorného laloku okvetia (Fischerove dúhovky - Wikipedia). Obvyklá karteziánska metrika sa volí ako vzdialenosť alebo miera blízkosti medzi objektmi.

Ďalej sa stredy zhlukov vyberú náhodne (alebo nie náhodne, pozri nižšie) a vypočítajú sa vzdialenosti od každého objektu k stredom zhlukov. Každý objekt v danom kroku iterácie je označený ako patriaci do najbližšieho centra. Potom sa stred každého zhluku prenesie na aritmetický priemer súradníc jeho členov (analogicky s fyzikou sa nazýva aj „stred hmoty“) a postup sa opakuje.

Proces konverguje pomerne rýchlo. Na obrázkoch v dvoch rozmeroch to vyzerá takto:

1. Počiatočné náhodné rozloženie bodov na rovine a počet zhlukov

Strojové učenie bez Pythonu, Anacondy a iných plazov

2. Určenie stredov klastrov a priradenie bodov ich zhlukom

Strojové učenie bez Pythonu, Anacondy a iných plazov

3. Prenos súradníc stredov zhlukov, prepočet príslušnosti bodov, kým sa stredy nestabilizujú. Je viditeľná trajektória pohybu stredu klastra do svojej konečnej polohy.

Strojové učenie bez Pythonu, Anacondy a iných plazov

Kedykoľvek môžete nastaviť nové centrá klastrov (bez generovania novej distribúcie bodov!) a uvidíte, že proces rozdelenia nie je vždy jednoznačný. Matematicky to znamená, že pre funkciu, ktorá sa optimalizuje (súčet štvorcových vzdialeností od bodov k stredom ich zhlukov), nájdeme nie globálne, ale lokálne minimum. Tento problém sa dá vyriešiť buď nenáhodným výberom počiatočných stredov klastra, alebo vymenovaním možných stredísk (niekedy je výhodné umiestniť ich presne na jeden z bodov, potom je aspoň záruka, že nedostaneme prázdno zhluky). V každom prípade, konečná množina má vždy infimum.

S týmto súborom si môžete zahrať na tomto odkaze (nezabudnite povoliť podporu makier. Súbory boli skontrolované na prítomnosť vírusov)

Popis metódy na Wikipédii - metóda k-means

2. Aproximácia pomocou polynómov a členenie údajov. Rekvalifikácia

Pozoruhodný vedec a popularizátor dátovej vedy K.V. Voroncov stručne opisuje metódy strojového učenia ako „vedu kreslenia kriviek cez body“. V tomto príklade nájdeme vzor v dátach pomocou metódy najmenších štvorcov.

Je znázornená technika rozdelenia zdrojových údajov na „tréning“ a „kontrola“, ako aj taký fenomén, ako je preškolenie alebo „opätovné prispôsobenie“ údajom. Pri správnej aproximácii budeme mať určitú chybu na tréningových údajoch a o niečo väčšiu chybu na kontrolných údajoch. Ak je nesprávna, výsledkom je presné prispôsobenie tréningových údajov a obrovská chyba v testovacích údajoch.

(Je dobre známou skutočnosťou, že cez N bodov možno nakresliť jednu krivku N-1 stupňa a táto metóda vo všeobecnosti nedáva požadovaný výsledok. Lagrangeov interpolačný polynóm na Wikipédii)

1. Nastavte počiatočnú distribúciu

Strojové učenie bez Pythonu, Anacondy a iných plazov

2. Body rozdeľujeme na “tréning” a “kontrolu” v pomere 70 ku 30.

Strojové učenie bez Pythonu, Anacondy a iných plazov

3. Približnú krivku nakreslíme pozdĺž tréningových bodov, na kontrolných údajoch vidíme chybu, ktorú dáva

Strojové učenie bez Pythonu, Anacondy a iných plazov

4. Cez tréningové body nakreslíme presnú krivku a na kontrolných údajoch vidíme obludnú chybu (a na tréningových údajoch nulu, ale aký to má zmysel?).

Strojové učenie bez Pythonu, Anacondy a iných plazov

Zobrazená je, samozrejme, najjednoduchšia možnosť s jediným rozdelením na podmnožiny „tréning“ a „kontrola“; vo všeobecnom prípade sa to robí mnohokrát, aby sa čo najlepšie upravili koeficienty.

Súbor je dostupný tu, naskenovaný antivírusom. Povoľte makrá pre správnu činnosť

3. Gradientný zostup a dynamika zmeny chyby

Bude existovať 4-rozmerný prípad a lineárna regresia. Koeficienty lineárnej regresie sa budú určovať postupne pomocou metódy gradientového zostupu, spočiatku sú všetky koeficienty nulové. Samostatný graf ukazuje dynamiku znižovania chýb, keď sú koeficienty upravované čoraz presnejšie. Je možné zobraziť všetky štyri 2-rozmerné projekcie.

Ak nastavíte príliš veľký krok zostupu, môžete vidieť, že zakaždým preskočíme minimum a k výsledku dospejeme vo väčšom počte krokov, aj keď nakoniec aj tak prídeme (ak neodložíme aj krok zostupu veľa - potom algoritmus pôjde „po pikách“). A graf chyby v závislosti od kroku iterácie nebude hladký, ale „trhavý“.

1. Vygenerujte údaje, nastavte krok zostupu gradientu

Strojové učenie bez Pythonu, Anacondy a iných plazov

2. Správnym výberom kroku spádového zostupu plynulo a rýchlo dosiahneme minimum

Strojové učenie bez Pythonu, Anacondy a iných plazov

3. Ak je zle zvolený krok gradientového zostupu, prekročíme maximum, chybový graf je „trhavý“, konvergencia má väčší počet krokov

Strojové učenie bez Pythonu, Anacondy a iných plazov
и

Strojové učenie bez Pythonu, Anacondy a iných plazov

4. Ak zvolíme krok gradientu zostupu úplne nesprávne, vzdialime sa od minima

Strojové učenie bez Pythonu, Anacondy a iných plazov

(Ak chcete reprodukovať proces pomocou hodnôt kroku zostupu gradientu zobrazených na obrázkoch, začiarknite políčko „referenčné údaje“).

Súbor je na tomto odkaze, treba povoliť makrá, nie sú tam žiadne vírusy.

Je podľa váženej komunity takéto zjednodušenie a spôsob prezentácie materiálu prijateľné? Oplatí sa preložiť článok do angličtiny?

Zdroj: hab.com

Pridať komentár