Maŝina lernado sen Python, Anakondo kaj aliaj reptilioj

Ne, nu, kompreneble, mi ne estas serioza. Devas esti limo, kiom eblas simpligi temon. Sed por la unuaj etapoj, komprenante bazajn konceptojn kaj rapide "enirante" la temon, ĝi povas esti akceptebla. Ni diskutos kiel ĝuste nomi ĉi tiun materialon (opcioj: "Maŝina lernado por maniloj", "Analizo de datumoj de vindotukoj", "Algoritmoj por la etuloj") fine.

Al la punkto. Verkis plurajn aplikajn programojn en MS Excel por bildigo kaj vida reprezentado de procezoj, kiuj okazas en malsamaj maŝinlernadaj metodoj kiam oni analizas datumojn. Vidi estas kredi, finfine, kiel diras la portantoj de la kulturo, kiu disvolvis la plej multajn el ĉi tiuj metodoj (cetere, ne ĉiuj. La plej potenca "subtena vektora maŝino", aŭ SVM, subtena vektora maŝino estas la invento de nia samlandano Vladimir Vapnik, Moskva Instituto pri Administrado.1963, cetere!Nun tamen li instruas kaj laboras en Usono).

Tri dosieroj por revizio

1. K-signifas clustering

Problemoj de ĉi tiu tipo rilatas al "nekontrolita lernado", kiam ni devas dividi la komencajn datumojn en certan nombron da kategorioj konataj antaŭe, sed ni ne havas ajnan nombron da "ĝustaj respondoj"; ni devas ĉerpi ilin el la datumoj mem. . La fundamenta klasika problemo trovi subspeciojn de irisaj floroj (Ronald Fisher, 1936!), kiu estas konsiderata la unua signo de tiu ĉi scifako, estas ĝuste tia.

La metodo estas sufiĉe simpla. Ni havas aron de objektoj reprezentitaj kiel vektoroj (aroj de N nombroj). En irisoj, ĉi tiuj estas aroj de 4 nombroj, kiuj karakterizas la floron: la longo kaj larĝo de la eksteraj kaj internaj loboj de la perianto, respektive (La irisoj de Fischer - Vikipedio). La kutima kartezia metriko estas elektita kiel la distanco, aŭ mezuro de proksimeco inter objektoj.

Poste, aretcentroj estas elektitaj hazarde (aŭ ne hazarde, vidu malsupre), kaj la distancoj de ĉiu objekto ĝis la aretcentroj estas kalkulitaj. Ĉiu objekto ĉe antaŭfiksita ripeta paŝo estas markita kiel apartenanta al la plej proksima centro. Tiam la centro de ĉiu areto estas translokigita al la aritmetika meznombro de la koordinatoj de ĝiaj membroj (per analogio kun fiziko, ĝi ankaŭ estas nomita la "centro de maso"), kaj la procedo estas ripetita.

La procezo konverĝas sufiĉe rapide. En bildoj en du dimensioj ĝi aspektas jene:

1. Komenca hazarda distribuo de punktoj sur la ebeno kaj la nombro da aretoj

Maŝina lernado sen Python, Anakondo kaj aliaj reptilioj

2. Specifante aretcentrojn kaj atribui punktojn al iliaj aretoj

Maŝina lernado sen Python, Anakondo kaj aliaj reptilioj

3. Transdonante la koordinatojn de la aretcentroj, rekalkulante la aliĝon de la punktoj ĝis la centroj stabiliĝos. La trajektorio de la aretcentro moviĝanta al sia fina pozicio estas videbla.

Maŝina lernado sen Python, Anakondo kaj aliaj reptilioj

En ajna momento, vi povas agordi novajn aretcentrojn (sen generi novan distribuadon de punktoj!) kaj vidi, ke la dispartigo ne ĉiam estas malambigua. Matematike, tio signifas ke por la funkcio estanta optimumigita (la sumo de la kvadrataj distancoj de punktoj al la centroj de iliaj aretoj), ni trovas ne tutmondan, sed lokan minimumon. Tiu ĉi problemo povas esti venkita aŭ per ne-hazarda elekto de komencaj aretcentroj, aŭ per nombrado de eblaj centroj (foje estas avantaĝe meti ilin ĝuste ĉe unu el la punktoj, tiam almenaŭ estas garantio, ke ni ne malpleniĝos). aretoj). Ĉiukaze, finia aro ĉiam havas infimumon.

Vi povas ludi kun ĉi tiu dosiero ĉe ĉi tiu ligilo (ne forgesu ebligi makrosubtenon. La dosieroj estis skanitaj por virusoj)

Priskribo de la metodo en Vikipedio - k- signifas metodo

2. Proksimumo per polinomoj kaj datumrompo. Retrejnado

Rimarkinda sciencisto kaj popularigisto de datumscienco K.V. Vorontsov mallonge priskribas maŝinlernajn metodojn kiel "la sciencon de desegnado de kurboj tra punktoj." En ĉi tiu ekzemplo, ni trovos ŝablonon en la datumoj uzante la metodon de malplej kvadrataj.

La tekniko de dividado de la fontodatenoj en "trejnado" kaj "kontrolo" estas montrita, same kiel tia fenomeno kiel retrejnado, aŭ "re-alĝustigo" al la datenoj. Kun ĝusta aproksimado, ni havos certan eraron pri la trejnaj datumoj kaj iomete pli grandan eraron pri la kontrolaj datumoj. Se malĝusta, ĝi rezultigas precizan alĝustigon al la trejnaj datumoj kaj grandega eraro pri la testaj datumoj.

(Estas konata fakto, ke tra N punktoj oni povas desegni ununuran kurbon de la N-1-a grado, kaj ĉi tiu metodo en la ĝenerala kazo ne donas la deziratan rezulton. Lagrange interpola polinomo en Vikipedio)

1. Agordu la komencan distribuon

Maŝina lernado sen Python, Anakondo kaj aliaj reptilioj

2. Ni dividas la punktojn en "trejnado" kaj "kontrolo" en proporcio de 70 ĝis 30.

Maŝina lernado sen Python, Anakondo kaj aliaj reptilioj

3. Ni desegnas la proksimuman kurbon laŭ la trejnaj punktoj, ni vidas la eraron, kiun ĝi donas sur la kontrolaj datumoj

Maŝina lernado sen Python, Anakondo kaj aliaj reptilioj

4. Ni desegnas precizan kurbon tra la trejnaj punktoj, kaj ni vidas monstran eraron sur la kontrolaj datumoj (kaj nulo sur la trejnaj datumoj, sed kio estas la signifo?).

Maŝina lernado sen Python, Anakondo kaj aliaj reptilioj

Montrita, kompreneble, estas la plej simpla opcio kun ununura divido en "trejnado" kaj "kontrolo" subaroj; en la ĝenerala kazo, tio estas farita multfoje por la plej bona alĝustigo de la koeficientoj.

La dosiero estas havebla ĉi tie, skanita de antiviruso. Ebligu makroojn por ĝusta funkciado

3. Gradienta deveno kaj dinamiko de erara ŝanĝo

Estos 4-dimensia kazo kaj linia regreso. Liniaj regresaj koeficientoj estos determinitaj paŝo post paŝo uzante la gradienta descenda metodo, komence ĉiuj koeficientoj estas nul. Aparta grafeo montras la dinamikon de erarredukto kiam la koeficientoj estas alĝustigitaj pli kaj pli precize. Eblas rigardi ĉiujn kvar 2-dimensiajn projekciojn.

Se vi agordas la gradiendan malsuprenpaŝon tro granda, vi povas vidi, ke ĉiufoje ni preterlasos la minimumon kaj alvenos al la rezulto en pli granda nombro da paŝoj, kvankam finfine ni ankoraŭ alvenos (krom se ni ankaŭ prokrastos la descendan paŝon). multe - tiam la algoritmo iros "en piko"). Kaj la grafikaĵo de la eraro depende de la ripeta paŝo ne estos glata, sed "ŝerca".

1. Generu datumojn, agordu la gradiendan malsuprenpaŝon

Maŝina lernado sen Python, Anakondo kaj aliaj reptilioj

2. Kun la ĝusta elekto de la gradienta malsupreniro, ni glate kaj rapide atingas la minimumon

Maŝina lernado sen Python, Anakondo kaj aliaj reptilioj

3. Se la gradienta descenda paŝo estas malĝuste elektita, ni superas la maksimumon, la erara grafeo estas "eksa", konverĝo prenas pli grandan nombron da paŝoj.

Maŝina lernado sen Python, Anakondo kaj aliaj reptilioj
и

Maŝina lernado sen Python, Anakondo kaj aliaj reptilioj

4. Se ni elektas la gradiendan malsuprenpaŝon tute malĝuste, ni malproksimiĝas de la minimumo

Maŝina lernado sen Python, Anakondo kaj aliaj reptilioj

(Por reprodukti la procezon per la valoroj de gradienta descenda paŝo montritaj en la bildoj, kontrolu la skatolon "referencaj datumoj").

La dosiero estas ĉe ĉi tiu ligilo, vi devas ebligi makroojn, ne ekzistas virusoj.

Laŭ la respektata komunumo, ĉu tia simpligo kaj metodo prezenti la materialon estas akceptebla? Ĉu indas traduki la artikolon en la anglan?

fonto: www.habr.com

Aldoni komenton