Mašinsko učenje bez Pythona, Anaconde i drugih reptila

Ne, naravno, nisam ozbiljan. Mora postojati granica do koje je moguće pojednostaviti predmet. Ali za prve faze, razumijevanje osnovnih koncepata i brzo „ulazak“ u temu, može biti prihvatljivo. Razgovarat ćemo o tome kako pravilno imenovati ovaj materijal (opcije: „Mašinsko učenje za lutke“, „Analiza podataka iz pelena“, „Algoritmi za mališane“) na kraju.

Do tačke. Napisao nekoliko aplikativnih programa u MS Excel-u za vizualizaciju i vizualno predstavljanje procesa koji se javljaju u različitim metodama mašinskog učenja pri analizi podataka. Videti je ipak verovanje, kako kažu nosioci kulture, koja je razvila većinu ovih metoda (usput, ne sve. Najmoćnija „mašina vektora podrške“, ili SVM, mašina za vektore podrške je izum naš sunarodnik Vladimir Vapnik, Moskovski institut za menadžment, 1963, inače! Sada, međutim, predaje i radi u SAD).

Tri fajla za pregled

1. K-znači grupiranje

Problemi ovog tipa odnose se na „učenje bez nadzora“, kada početne podatke treba podijeliti na određeni broj unaprijed poznatih kategorija, a nemamo ni jedan broj „tačnih odgovora“, već ih moramo izdvojiti iz samih podataka. . Temeljni klasični problem pronalaženja podvrsta cvjetova perunike (Ronald Fisher, 1936!), koji se smatra prvim znakom ovog područja znanja, upravo je takve prirode.

Metoda je prilično jednostavna. Imamo skup objekata predstavljenih kao vektori (skupovi od N brojeva). Kod perunika, to su skupovi od 4 broja koji karakteriziraju cvijet: dužina i širina vanjskog i unutrašnjeg režnja perijanta, respektivno (Fišerovi irisi - Wikipedia). Uobičajena kartezijanska metrika se bira kao udaljenost ili mjera blizine između objekata.

Zatim, centri klastera se biraju nasumično (ili ne nasumično, vidi dole), i izračunavaju se udaljenosti od svakog objekta do centara klastera. Svaki objekat u datom koraku iteracije je označen kao pripadajući najbližem centru. Zatim se centar svakog klastera prenosi na aritmetičku sredinu koordinata njegovih članova (po analogiji s fizikom, naziva se i "centar mase"), i postupak se ponavlja.

Proces konvergira prilično brzo. Na slikama u dvije dimenzije to izgleda ovako:

1. Početna slučajna raspodjela tačaka na ravni i broj klastera

Mašinsko učenje bez Pythona, Anaconde i drugih reptila

2. Određivanje centara klastera i dodjela tačaka njihovim klasterima

Mašinsko učenje bez Pythona, Anaconde i drugih reptila

3. Prenošenje koordinata centara klastera, preračunavanje pripadnosti tačaka dok se centri ne stabilizuju. Vidljiva je putanja centra klastera koji se kreće u svoju konačnu poziciju.

Mašinsko učenje bez Pythona, Anaconde i drugih reptila

U svakom trenutku možete postaviti nove centre klastera (bez generisanja nove distribucije tačaka!) i vidjeti da proces particioniranja nije uvijek jednoznačan. Matematički, to znači da za funkciju koja se optimizira (zbir kvadrata udaljenosti od tačaka do centara njihovih klastera) nalazimo ne globalni, već lokalni minimum. Ovaj problem se može prevazići ili neslučajnim izborom početnih centara klastera, ili nabrajanjem mogućih centara (ponekad je korisno postaviti ih tačno na jednu od tačaka, tada barem postoji garancija da nećemo isprazniti klasteri). U svakom slučaju, konačni skup uvijek ima infimum.

Možete se igrati sa ovim fajlom na ovom linku (ne zaboravite da omogućite podršku za makroe. Datoteke su skenirane na viruse)

Opis metode na Wikipediji - k-means metoda

2. Aproksimacija polinomima i raščlamba podataka. Prekvalifikacija

Izvanredan naučnik i popularizator nauke o podacima K.V. Voroncov ukratko opisuje metode mašinskog učenja kao „nauku o crtanju krivih kroz tačke“. U ovom primjeru ćemo pronaći uzorak u podacima koristeći metodu najmanjih kvadrata.

Prikazana je tehnika podjele izvornih podataka na “trening” i “kontrolu”, kao i fenomen kao što je preobuka, odnosno “ponovno prilagođavanje” podacima. Uz pravilnu aproksimaciju, imat ćemo određenu grešku na podacima o obuci i nešto veću grešku na kontrolnim podacima. Ako je netačan, to rezultira preciznim prilagođavanjem podataka o treningu i velikom greškom u podacima testa.

(Poznata je činjenica da se kroz N tačaka može povući jedna kriva N-1 stepena, a ova metoda u opštem slučaju ne daje željeni rezultat. Lagrangeov interpolacijski polinom na Wikipediji)

1. Postavite početnu distribuciju

Mašinsko učenje bez Pythona, Anaconde i drugih reptila

2. Bodove dijelimo na “trening” i “kontrolu” u omjeru 70 prema 30.

Mašinsko učenje bez Pythona, Anaconde i drugih reptila

3. Crtamo aproksimirajuću krivu duž tačaka treninga, vidimo grešku koju daje na kontrolnim podacima

Mašinsko učenje bez Pythona, Anaconde i drugih reptila

4. Nacrtamo tačnu krivu kroz tačke treninga i vidimo monstruoznu grešku na kontrolnim podacima (i nulu na podacima o treningu, ali u čemu je poenta?).

Mašinsko učenje bez Pythona, Anaconde i drugih reptila

Prikazana je, naravno, najjednostavnija opcija sa jednom podjelom na "trening" i "kontrolni" podskup; u opštem slučaju, to se radi više puta radi najboljeg prilagođavanja koeficijenata.

Datoteka je dostupna ovdje, skenirana antivirusom. Omogućite makroe za ispravan rad

3. Gradijentni pad i dinamika promjene greške

Postojat će 4-dimenzionalni slučaj i linearna regresija. Koeficijenti linearne regresije će se određivati ​​korak po korak metodom gradijentnog spuštanja, u početku su svi koeficijenti nula. Poseban grafikon prikazuje dinamiku smanjenja greške kako se koeficijenti sve preciznije prilagođavaju. Moguće je vidjeti sve četiri 2-dimenzionalne projekcije.

Ako namjestite preveliki stepen gradijenta, možete vidjeti da ćemo svaki put preskočiti minimum i doći do rezultata u većem broju koraka, iako ćemo na kraju ipak stići (osim ako ne odgodimo i korak spuštanja mnogo - tada će algoritam ići "u piku"). A graf greške u zavisnosti od koraka iteracije neće biti gladak, već „trzav“.

1. Generirajte podatke, postavite korak gradijenta spuštanja

Mašinsko učenje bez Pythona, Anaconde i drugih reptila

2. Pravilnim odabirom koraka gradijenta spuštanja glatko i brzo dolazimo do minimuma

Mašinsko učenje bez Pythona, Anaconde i drugih reptila

3. Ako je korak gradijenta spuštanja pogrešno odabran, premašujemo maksimum, graf greške je „trzav“, konvergencija traje veći broj koraka

Mašinsko učenje bez Pythona, Anaconde i drugih reptila
и

Mašinsko učenje bez Pythona, Anaconde i drugih reptila

4. Ako skroz pogrešno odaberemo stepen gradijenta spuštanja, odmičemo se od minimuma

Mašinsko učenje bez Pythona, Anaconde i drugih reptila

(Da biste reproducirali proces koristeći vrijednosti koraka gradijenta spuštanja prikazanih na slikama, označite okvir „referentni podaci“).

Fajl se nalazi na ovom linku, potrebno je da uključite makroe, nema virusa.

Da li je takvo pojednostavljenje i način predstavljanja materijala prihvatljivo, smatra ugledna zajednica? Vrijedi li prevesti članak na engleski?

izvor: www.habr.com

Dodajte komentar