Masine learen sûnder Python, Anaconda en oare reptilen

Nee, no, fansels, ik bin net serieus. Der moat in limyt wêze yn hoefier't it mooglik is om in ûnderwerp te ferienfâldigjen. Mar foar de earste fazen, begryp fan basisbegripen en fluch "ynfiere" it ûnderwerp, kin it akseptabel wêze. Wy sille beprate hoe't jo dit materiaal korrekt neame (opsjes: "Masine learen foar dummies", "Data-analyze fan luiers", "Algorithmen foar de lytsen") oan 'e ein.

Wer't it op stiet. Skreau ferskate tapassingsprogramma's yn MS Excel foar fisualisaasje en fisuele foarstelling fan prosessen dy't foarkomme yn ferskate masine-learenmetoaden by it analysearjen fan gegevens. Sjoch is leauwe, ommers, lykas de dragers fan 'e kultuer sizze, dy't de measte fan dizze metoaden ûntwikkele (troch de manier, net allegear. De machtichste "stipe vector masine", of SVM, stipe vector masine is de útfining fan ús lângenoat Vladimir Vapnik, Moskou Institute of Management. 1963, trouwens! No lykwols leart en wurket er yn 'e FS).

Trije triemmen foar resinsje

1. K-betsjut klustering

Problemen fan dit type ferwize nei "learen sûnder tafersjoch", as wy de earste gegevens moatte ferdiele yn in bepaald oantal foarôf bekende kategoryen, mar wy hawwe gjin oantal "korrekte antwurden"; wy moatte se út 'e gegevens sels ekstrahearje . It fûnemintele klassike probleem fan it finen fan ûndersoarten fan irisblommen (Ronald Fisher, 1936!), dat wurdt beskôge as it earste teken fan dit kennisfjild, is krekt fan dizze aard.

De metoade is frij simpel. Wy hawwe in set fan objekten fertsjintwurdige as vectoren (sets fan N nûmers). Yn irissen binne dit sets fan 4 nûmers dy't de blom karakterisearje: de lingte en breedte fan respektivelik de bûten- en binnenlobben fan 'e perianth (Fischer's irissen - Wikipedy). De gewoane Cartesian metrysk wurdt keazen as de ôfstân, of mjitte fan tichtby tusken objekten.

Folgjende, kluster sintra wurde selektearre willekeurich (of net willekeurich, sjoch hjirûnder), en de ôfstannen fan elk foarwerp nei de kluster sintra wurde berekkene. Elk foarwerp by in opjûne iteraasjestap wurdt markearre as hearrend ta it tichtste sintrum. Dan wurdt it sintrum fan elke kluster oerbrocht nei it aritmetyske gemiddelde fan 'e koördinaten fan har leden (nei analogy mei natuerkunde wurdt it ek wol it "sintrum fan massa") neamd), en de proseduere wurdt werhelle.

It proses konvergeet frij fluch. Op foto's yn twa diminsjes sjocht it der sa út:

1. Initial willekeurige ferdieling fan punten op it fleantúch en it oantal klusters

Masine learen sûnder Python, Anaconda en oare reptilen

2. Oantsjutte kluster sintra en tawizen fan punten oan harren klusters

Masine learen sûnder Python, Anaconda en oare reptilen

3. It oerbringen fan de koördinaten fan 'e klustersintra, opnij berekkenjen fan' e oansluting fan 'e punten oant de sintra stabilisearje. It trajekt fan it klustersintrum dat nei syn definitive posysje ferpleatst is sichtber.

Masine learen sûnder Python, Anaconda en oare reptilen

Op elts momint kinne jo nije klustersintra ynstelle (sûnder in nije ferdieling fan punten te generearjen!) En sjen dat it partitioneringsproses net altyd unambigu is. Wiskundich betsjut dit dat foar de funksje dy't optimisearre wurdt (de som fan 'e kwadrate ôfstannen fan punten nei de sintra fan har klusters), wy net in globaal, mar in lokaal minimum fine. Dit probleem kin oerwûn wurde troch in net-willekeurige kar fan inisjele klustersintra, of troch it opteljen fan mooglike sintra (soms is it foardielich om se krekt op ien fan 'e punten te pleatsen, dan is der teminsten in garânsje dat wy net leech wurde klusters). Yn alle gefallen hat in finite set altyd in infimum.

Jo kinne boartsje mei dizze triem op dizze keppeling (ferjit net om makro-stipe yn te skeakeljen. De bestannen binne skansearre op firussen)

Beskriuwing fan de metoade op Wikipedia - k-betsjut metoade

2. Approximation troch polynomen en data ferdieling. Omskoling

Opmerklike wittenskipper en popularizer fan gegevenswittenskip K.V. Vorontsov beskriuwt koart metoaden foar learen fan masines as "de wittenskip fan it tekenjen fan krommes troch punten." Yn dit foarbyld sille wy in patroan fine yn 'e gegevens mei de metoade fan minste kwadraten.

De technyk fan it ferdielen fan de boarnegegevens yn "training" en "kontrôle" wurdt toand, en ek sa'n ferskynsel as oplieding, of "opnij oanpasse" oan de gegevens. Mei juste approximation, wy sille hawwe in bepaalde flater op de training gegevens en in wat grutter flater op de kontrôle gegevens. As ferkeard, resultearret it yn krekte oanpassing oan 'e trainingsgegevens en in enoarme flater op' e testgegevens.

(Известный факт, что через N точек можно провести единственную кривую N-1 й степени, и этот способ в общем случае не дает нужного результата. Lagrange-ynterpolaasjepolynom op Wikipedia)

1. Stel de earste ferdieling

Masine learen sûnder Python, Anaconda en oare reptilen

2. Wy ferdiele de punten yn "training" en "kontrôle" yn in ferhâlding fan 70 oant 30.

Masine learen sûnder Python, Anaconda en oare reptilen

3. Проводим аппроксимирующую кривую по обучающим точкам, видим ошибку, которую она дает на контрольных данных

Masine learen sûnder Python, Anaconda en oare reptilen

4. Проводим точную кривую через обучающие точки, и видим чудовищную ошибку на контрольных данных (и нулевую на обучающих, но что толку?).

Masine learen sûnder Python, Anaconda en oare reptilen

Показан, конечно, простейший вариант с единственным разбиением на «обучающие» и «контрольные» подмножества, в общем случае это делается многократно для наилучшей подстройки коэффициентов.

It bestân is hjir beskikber, skansearre troch antivirus. Makro's ynskeakelje foar juste operaasje

3. Gradient ôfstamming en dynamyk fan flater feroaring

D'r sil in 4-dimensionale gefal wêze en lineêre regression. Lineêre regressionkoëffisjinten sille stap foar stap bepaald wurde mei de gradient-ôfstammingsmetoade, yn earste ynstânsje binne alle koeffizienten nul. In aparte grafyk toant de dynamyk fan flaterreduksje as de koeffizienten hieltyd krekter oanpast wurde. It is mooglik om alle fjouwer 2-diminsjonale projeksjes te besjen.

As jo ​​​​de stap fan 'e gradientôfdaling te grut ynstelle, kinne jo sjen dat wy elke kear it minimum sille oerslaan en yn in grutter oantal stappen ta it resultaat komme, hoewol wy op it lêst noch komme (útsein as wy de delstap ek fertrage folle - dan sil it algoritme "yn spades" gean. En de grafyk fan 'e flater ôfhinklik fan' e iteraasjestap sil net glêd wêze, mar "jerky".

1. Generearje gegevens, set de gradient ôfstamming stap

Masine learen sûnder Python, Anaconda en oare reptilen

2. Mei de juste seleksje fan 'e gradient ôfstamming stap, berikke wy soepel en fluch it minimum

Masine learen sûnder Python, Anaconda en oare reptilen

3. При неправильном подборе шага градиентного спуска проскакиваем максимум, график ошибки – «дерганный», сходимость занимает большее число шагов

Masine learen sûnder Python, Anaconda en oare reptilen
и

Masine learen sûnder Python, Anaconda en oare reptilen

4. As wy selektearje de gradient ôfstamming stap folslein ferkeard, wy gean fuort fan it minimum

Masine learen sûnder Python, Anaconda en oare reptilen

(Чтобы воспроизвести процесс при показанных на картинках значениях шага градиентного спуска, поставьте галочку «эталонные данные»).

It bestân is op dizze keppeling, jo moatte makro's ynskeakelje, d'r binne gjin firussen.

Как считает уважаемое сообщество, допустимо ли такое упрощение и метод подачи материала? Стоит ли перевести статью на английский?

Boarne: www.habr.com

Add a comment