Python, Anaconda və digər sürünənlər olmadan maşın öyrənməsi

Xeyr, təbii ki, ciddi deyiləm. Mövzunu sadələşdirməyin mümkün həddi olmalıdır. Ancaq ilk mərhələlər üçün əsas anlayışları başa düşmək və mövzuya tez "daxil olmaq" məqbul ola bilər. Və bu materialı necə düzgün adlandırmaq olar (seçimlər: "Dummies üçün maşın öyrənməsi", "Bezilərdən məlumatların təhlili", "Ən kiçiklər üçün alqoritmlər"), sonunda müzakirə edəcəyik.

Biznesə. Məlumatları təhlil edərkən müxtəlif maşın öyrənmə üsullarında baş verən prosesləri vizuallaşdırmaq və vizuallaşdırmaq üçün MS Excel-də bir neçə tətbiq proqramı yazdı. Görmək, sonda inanmaqdır ki, bu üsulların əksəriyyətini inkişaf etdirən mədəniyyət daşıyıcılarının dediyi kimi (yeri gəlmişkən, hamısı deyil. Ən güclü “dəstək vektor maşını” və ya SVM, dəstək vektor maşını bir ixtiradır. həmyerlimiz Vladimir Vapnik, Moskva İdarəetmə İnstitutu, 1963-cü il, yeri gəlmişkən, indi o, ABŞ-da dərs deyir və işləyir).

Baxış üçün üç fayl

1. k-vasitəsi ilə qruplaşma

Bu cür problemlər "nəzarətsiz öyrənmə" ilə əlaqədardır, o zaman ki, mənbə məlumatlarını əvvəlcədən məlum olan bəzi kateqoriyalara bölmək lazımdır, lakin eyni zamanda heç bir sayda "düzgün cavab" yoxdur, biz onları buradan çıxarmalıyıq. məlumatların özü. Bu bilik sahəsinin ilk əlaməti sayılan iris çiçəklərinin alt növlərinin (Ronald Fisher, 1936!) tapılmasının fundamental klassik problemi belə bir xarakter daşıyır.

Metod olduqca sadədir. Bizdə vektorlar (N ədəd dəstləri) kimi göstərilən obyektlər dəsti var. İrislərdə bunlar çiçəyi xarakterizə edən 4 rəqəmdən ibarət dəstlərdir: müvafiq olaraq xarici və daxili periant seqmentlərinin uzunluğu və eni (Fişerin irisləri - Vikipediya.). Obyektlər arasında məsafə və ya yaxınlıq ölçüsü kimi adi Kartezian metrikası seçilir.

Bundan əlavə, özbaşına (yaxud özbaşına deyil, aşağıya baxın) klasterlərin mərkəzləri seçilir və hər bir obyektdən klasterlərin mərkəzlərinə qədər olan məsafələr hesablanır. Verilmiş iterasiya addımında hər bir obyekt ən yaxın mərkəzə aid olaraq qeyd olunur. Sonra hər klasterin mərkəzi onun üzvlərinin koordinatlarının arifmetik ortasına köçürülür (fizika ilə analoji olaraq ona “kütlə mərkəzi” də deyilir) və prosedur təkrarlanır.

Proses kifayət qədər tez birləşir. İki ölçülü şəkillərdə belə görünür:

1. Müstəvidə nöqtələrin ilkin təsadüfi paylanması və klasterlərin sayı

Python, Anaconda və digər sürünənlər olmadan maşın öyrənməsi

2. Klasterlərin mərkəzlərinin təyini və onların klasterlərinə nöqtələrin təyin edilməsi

Python, Anaconda və digər sürünənlər olmadan maşın öyrənməsi

3. Klasterlərin mərkəzlərinin koordinatlarının köçürülməsi, mərkəzlər sabitləşənə qədər nöqtələrin mənsubiyyətinin yenidən hesablanması. Klaster mərkəzinin son mövqeyə doğru hərəkət trayektoriyası görünür.

Python, Anaconda və digər sürünənlər olmadan maşın öyrənməsi

İstənilən vaxt siz yeni klaster mərkəzləri təyin edə bilərsiniz (balların yeni paylanması yaratmadan!) və bölmə prosesinin həmişə birmənalı olmadığını görə bilərsiniz. Riyazi olaraq, bu o deməkdir ki, optimallaşdırılmış funksiya (nöqtələrdən onların klasterlərinin mərkəzlərinə qədər kvadrat məsafələrin cəmi) qlobal deyil, yerli minimum tapırıq. Bu problemi ya klasterlərin ilkin mərkəzlərinin qeyri-təsadüfi seçimi ilə, ya da mümkün mərkəzləri sadalamaqla aradan qaldırmaq olar (bəzən onları tam olaraq nöqtələrdən birində yerləşdirmək sərfəlidir, onda heç olmasa zəmanət var ki, biz klasterlərin ilkin mərkəzlərini seçə bilməyəcəyik. boş klasterlər əldə edin). Hər halda, sonlu çoxluğun həmişə infimumu var.

Bu linkdə bu faylla oynaya bilərsiniz (makros dəstəyini aktiv etməyi unutmayın. Fayllar viruslara qarşı yoxlanılıb)

Vikipediyada metodun təsviri − k-vasitə üsulu

2. Çoxhədlilərlə yaxınlaşma və verilənlərin parçalanması. Yenidən hazırlıq

Görkəmli alim və məlumat elminin populyarlaşdırıcısı K.V. Vorontsov maşın öyrənmə üsullarından qısaca “nöqtələr vasitəsilə əyrilərin çəkilməsi elmi” kimi danışır. Bu nümunədə ən kiçik kvadratlar metodundan istifadə edərək verilənlərdə bir nümunə tapacağıq.

İlkin məlumatların “təlim” və “nəzarət”ə bölünməsi texnikası, həmçinin məlumatların həddindən artıq uyğunlaşdırılması və ya “yenidən tənzimlənməsi” kimi bir fenomen göstərilir. Düzgün yaxınlaşma ilə, təlim məlumatlarında bəzi səhvlər və nəzarət məlumatlarında bir az daha böyük səhv olacaq. Səhv olarsa, təlim məlumatlarına incə düzəliş və nəzarətdə böyük bir səhv.

(Məlumdur ki, N nöqtə vasitəsilə N-1-ci dərəcəli tək əyri çəkmək mümkündür və bu üsul ümumiyyətlə istənilən nəticəni vermir. Vikipediyada Laqranj interpolyasiya polinomu)

1. İlkin paylanmanı təyin edin

Python, Anaconda və digər sürünənlər olmadan maşın öyrənməsi

2. Biz xalları 70-dən 30-a nisbətində "məşq" və "nəzarət" bölməsinə ayırırıq.

Python, Anaconda və digər sürünənlər olmadan maşın öyrənməsi

3. Təlim nöqtələri boyunca təxmini əyri çəkirik, onun nəzarət məlumatlarında verdiyi xətanı görürük.

Python, Anaconda və digər sürünənlər olmadan maşın öyrənməsi

4. Təlim nöqtələri vasitəsilə dəqiq əyri çəkirik və biz nəzarət məlumatlarında dəhşətli bir səhv görürük (və məşqdə sıfır, amma nə mənası var?).

Python, Anaconda və digər sürünənlər olmadan maşın öyrənməsi

Əlbəttə ki, ən sadə versiya "təlim" və "nəzarət" alt qruplarına bir bölmə ilə göstərilir; ümumi halda, əmsalların ən yaxşı tənzimlənməsi üçün bu dəfələrlə edilir.

Fayl burada mövcuddur, antivirus tərəfindən yoxlanılır. Makrosların düzgün işləməsini təmin edin

3. Qradient enmə və xəta dinamikası

Burada 4 ölçülü hal və xətti reqressiya olacaq. Xətti reqressiya əmsalları gradient eniş metodundan istifadə etməklə addım-addım müəyyən ediləcək, ilkin olaraq bütün əmsallar sıfırdır. Ayrı bir qrafik əmsallar getdikcə daha çox dəqiqləşdirildiyi üçün xətanın azalma dinamikasını göstərir. Bütün dörd 2D proyeksiyaya baxmaq mümkündür.

Əgər biz qradiyent enmə pilləsini çox böyük təyin etsək, onda aydındır ki, hər dəfə minimumu atlayacağıq və nəticəyə daha çox addımlarla çatacağıq, baxmayaraq ki, sonda yenə də gələcəyik (eniş addımını çox gecikdirməsək - sonra alqoritm "dağınıq vəziyyətdə" gedəcək). Və səhvin iterasiya pilləsindən asılılığının qrafiki hamar deyil, “sürüklənəcək”.

1. Məlumat yaradın, gradient eniş addımını təyin edin

Python, Anaconda və digər sürünənlər olmadan maşın öyrənməsi

2. Qradiyent enmə addımının düzgün seçilməsi ilə biz hamar və tez kifayət qədər minimuma çatırıq

Python, Anaconda və digər sürünənlər olmadan maşın öyrənməsi

3. Qradiyent enmə addımı səhv seçilərsə, maksimumu atlayırıq, xəta qrafiki “sürüşür”, konvergensiya daha çox addım alır

Python, Anaconda və digər sürünənlər olmadan maşın öyrənməsi
и

Python, Anaconda və digər sürünənlər olmadan maşın öyrənməsi

4. Qradiyent enmə addımının tamamilə səhv seçilməsi ilə biz minimumdan uzaqlaşırıq

Python, Anaconda və digər sürünənlər olmadan maşın öyrənməsi

(Şəkillərdə göstərilən gradient eniş addım dəyərlərində prosesi təkrarlamaq üçün "istinad məlumatları" qutusunu yoxlayın).

Fayl - bu linki izləyin, makroları aktivləşdirməlisiniz, viruslar yoxdur.

Hörmətli camaatın fikrincə, materialın bu cür sadələşdirilməsi və təqdim edilməsi məqbuldurmu? Məqalə ingilis dilinə tərcümə edilməlidirmi?

Mənbə: www.habr.com

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