Mašininis mokymasis be Python, Anaconda ir kitų roplių

Ne, žinoma, aš ne rimtai. Turi būti nustatyta riba, iki kurios galima supaprastinti dalyką. Tačiau pirmiesiems etapams, suprasti pagrindines sąvokas ir greitai „įvesti“ į temą, tai gali būti priimtina. Pabaigoje aptarsime, kaip teisingai pavadinti šią medžiagą (parinktys: „Mašininis mokymasis manekenams“, „Duomenų analizė iš sauskelnių“, „Algoritmai mažiesiems“).

Iki taško. MS Excel parašė keletą taikomųjų programų, skirtų procesų, vykstančių taikant skirtingus mašininio mokymosi metodus analizuojant duomenis, vizualizavimui ir vaizdiniam pavaizdavimui. Matyti – tai tikėti, juk, kaip sako kultūros nešėjai, kuri sukūrė daugumą šių metodų (beje, ne visus. Galingiausia „palaikymo vektoriaus mašina“, arba SVM, paramos vektoriaus mašina yra išradimas mūsų tautietis Vladimiras Vapnikas, Maskvos vadybos institutas. 1963, beje! Tačiau dabar dėsto ir dirba JAV).

Trys failai peržiūrai

1. K reiškia klasterizavimą

Tokio tipo problemos yra susijusios su „neprižiūrimu mokymusi“, kai reikia suskirstyti pradinius duomenis į tam tikrą iš anksto žinomų kategorijų skaičių, tačiau neturime jokio „teisingų atsakymų“ skaičiaus, turime juos išskirti iš pačių duomenų. . Pagrindinė klasikinė rainelės žiedų porūšių radimo problema (Ronald Fisher, 1936!), kuri laikoma pirmuoju šios žinių srities požymiu, yra būtent tokio pobūdžio.

Metodas gana paprastas. Turime aibę objektų, pavaizduotų kaip vektoriai (N skaičių rinkiniai). Vilkdaliuose tai yra 4 skaičių rinkiniai, apibūdinantys gėlę: atitinkamai išorinės ir vidinės perianto skilčių ilgis ir plotis (Fišerio vilkdalgiai – Vikipedija). Įprasta Dekarto metrika pasirenkama kaip atstumas arba artumo tarp objektų matas.

Toliau atsitiktinai (arba neatsitiktinai, žr. toliau) parenkami klasterių centrai ir apskaičiuojami atstumai nuo kiekvieno objekto iki klasterio centrų. Kiekvienas objektas tam tikrame iteracijos žingsnyje yra pažymėtas kaip priklausantis artimiausiam centrui. Tada kiekvieno klasterio centras perkeliamas į jo narių koordinačių aritmetinį vidurkį (pagal fizikos analogiją jis dar vadinamas „masės centru“) ir procedūra kartojama.

Procesas susilieja gana greitai. Dviejų matmenų nuotraukose atrodo taip:

1. Pradinis atsitiktinis taškų pasiskirstymas plokštumoje ir klasterių skaičius

Mašininis mokymasis be Python, Anaconda ir kitų roplių

2. Klasterių centrų nurodymas ir taškų priskyrimas jų klasteriams

Mašininis mokymasis be Python, Anaconda ir kitų roplių

3. Klasterių centrų koordinačių perkėlimas, taškų priklausomybės perskaičiavimas, kol centrai stabilizuosis. Matoma klasterio centro judėjimo į galutinę padėtį trajektorija.

Mašininis mokymasis be Python, Anaconda ir kitų roplių

Bet kuriuo metu galite nustatyti naujus klasterių centrus (negeneruodami naujo taškų paskirstymo!) ir pamatyti, kad skaidymo procesas ne visada yra vienareikšmis. Matematiškai tai reiškia, kad optimizuojamai funkcijai (atstumų nuo taškų iki jų klasterių centrų kvadratų suma) randame ne globalų, o lokalų minimumą. Šią problemą galima išspręsti arba neatsitiktinai pasirenkant pradinius klasterio centrus, arba surašant galimus centrus (kartais pravartu juos išdėstyti tiksliai viename iš taškų, tada bent jau yra garantija, kad neliksime tušti klasteriai). Bet kokiu atveju, baigtinis rinkinys visada turi trūkumų.

Galite žaisti su šiuo failu šioje nuorodoje (nepamirškite įjungti makrokomandų palaikymo. Failai buvo nuskaityti, ar nėra virusų)

Metodo aprašymas Vikipedijoje - k-means metodas

2. Aproksimacija polinomais ir duomenų suskirstymas. Perkvalifikavimas

Žymus mokslininkas ir duomenų mokslo populiarintojas K.V. Voroncovas trumpai apibūdina mašininio mokymosi metodus kaip „mokslą apie kreivių brėžimą per taškus“. Šiame pavyzdyje duomenų šabloną rasime naudodami mažiausių kvadratų metodą.

Parodyta šaltinio duomenų padalijimo į „mokymą“ ir „kontrolę“ technika, taip pat toks reiškinys kaip perkvalifikavimas arba „pakartotinis pritaikymas“ prie duomenų. Teisingai apytiksliai turėsime tam tikrą treniruočių duomenų klaidą ir šiek tiek didesnę valdymo duomenų klaidą. Jei tai neteisinga, tai lemia tikslų treniruočių duomenų koregavimą ir didžiulę bandymo duomenų paklaidą.

(Gerai žinomas faktas, kad per N taškų galima nubrėžti vieną N-1 laipsnio kreivę, o šis metodas paprastai neduoda norimo rezultato. Lagranžo interpoliacijos polinomas Vikipedijoje)

1. Nustatykite pradinį paskirstymą

Mašininis mokymasis be Python, Anaconda ir kitų roplių

2. Taškus skirstome į „treniruotes“ ir „kontrolę“ santykiu 70 prieš 30.

Mašininis mokymasis be Python, Anaconda ir kitų roplių

3. Nubraižome apytikslę kreivę išilgai treniruočių taškų, matome jos duodamą klaidą ant kontrolinių duomenų

Mašininis mokymasis be Python, Anaconda ir kitų roplių

4. Nubraižome tikslią kreivę per treniruočių taškus ir matome siaubingą klaidą ant kontrolinių duomenų (o treniruočių duomenų nulis, bet kokia prasmė?).

Mašininis mokymasis be Python, Anaconda ir kitų roplių

Žinoma, parodytas paprasčiausias variantas su vienu padalijimu į „mokymo“ ir „kontrolės“ pogrupius; paprastai tai daroma daug kartų, kad būtų galima geriausiai koreguoti koeficientus.

Failas yra čia, nuskaitytas antivirusine programa. Įgalinkite makrokomandas, kad veiktų tinkamai

3. Gradiento nusileidimas ir paklaidos kitimo dinamika

Bus 4 matmenų atvejis ir tiesinė regresija. Tiesinės regresijos koeficientai bus nustatomi žingsnis po žingsnio gradiento nusileidimo metodu, iš pradžių visi koeficientai lygūs nuliui. Atskiras grafikas rodo klaidų mažinimo dinamiką, kai koeficientai koreguojami vis tiksliau. Galima peržiūrėti visas keturias dvimates projekcijas.

Jei gradiento nusileidimo žingsnį nustatysite per didelį, pamatysite, kad kiekvieną kartą praleisime minimumą ir rezultatą pasieksime didesniu žingsnių skaičiumi, nors galiausiai vis tiek pasieksime (nebent irgi atidėliosime nusileidimo žingsnį). daug - tada algoritmas bus „kastais“). Ir klaidos grafikas, priklausomai nuo iteracijos žingsnio, bus ne sklandus, o „trūkčiojantis“.

1. Generuokite duomenis, nustatykite gradiento nusileidimo žingsnį

Mašininis mokymasis be Python, Anaconda ir kitų roplių

2. Teisingai pasirinkę gradiento nusileidimo žingsnį, sklandžiai ir greitai pasiekiame minimumą

Mašininis mokymasis be Python, Anaconda ir kitų roplių

3. Jei gradiento nusileidimo žingsnis pasirinktas neteisingai, viršijame maksimumą, klaidų grafikas yra „trūkčiojantis“, konvergencijai reikia daugiau žingsnių

Mašininis mokymasis be Python, Anaconda ir kitų roplių
и

Mašininis mokymasis be Python, Anaconda ir kitų roplių

4. Jei gradiento nusileidimo žingsnį pasirenkame visiškai neteisingai, tolstame nuo minimumo

Mašininis mokymasis be Python, Anaconda ir kitų roplių

(Norėdami atkurti procesą naudodami paveikslėliuose parodytas gradiento nusileidimo žingsnio vertes, pažymėkite laukelį „nuorodos duomenys“).

Failas yra šioje nuorodoje, reikia įjungti makrokomandas, virusų nėra.

Ar, gerbiamos bendruomenės nuomone, toks supaprastinimas ir medžiagos pateikimo būdas yra priimtinas? Ar verta versti straipsnį į anglų kalbą?

Šaltinis: www.habr.com

Добавить комментарий