Datadan öyrənmək
Datadan öyrənmək
Adi proqram insanın yazdığı funksiyadır: input-lar daxil olur, qaydalar tətbiq edilir, output-lar alınır. Machine learning bu sxemi tərsinə çevirir. Biz input-ları və almaq istədiyimiz output-ları veririk, alqoritm isə onları birləşdirən funksiyanı axtarır. Tapılan funksiya model adlanır.
Bütün hiylə məhz bu tərsinə çevirmədədir. Kitabın qalan hissəsi isə bu axtarışı necə yaxşı aparmaq və onun nə vaxt yanlış istiqamətə getdiyini necə bilmək barədə təfərrüatlardır.
Öyrənmə proqramlaşdırmadan nə vaxt üstündür
Datadan öyrənmək o zaman zəhmətə dəyər ki, aşağıdakı şərtlərdən ən azı biri ödənsin:
- Qaydalar məlum deyil və ya yazıla bilmir. Pişik şəklini it şəklindən fərqləndirən qaydaları heç kim kağıza köçürə bilməz, amma label-lənmiş nümunələr ucuzdur.
- Qaydalar dəyişir. Fırıldaqçılıq sxemləri, klik davranışı və dil daim sürüşür. Təzə data üzərində retrain edilmiş model bu dəyişikliyi izləyir; qaydalar kitabçası isə yox.
- Qaydalar həddindən artıq çoxdur. Yüz milyon istifadəçidən birinə on milyon məhsuldan birini tövsiyə etmək heç kimin əl ilə tərtib edə biləcəyi lookup table deyil.
Bu şərtlərdən heç biri ödənmirsə, model adətən yanlış alətdir. Vergi hesablamasının qaydaları məlumdur; onları nümunələrdən öyrənmək daha yavaş, daha az dəqiq və audit edilməsi mümkünsüz olardı.
Üç tərkib hissəsi
Hər bir öyrənmə quruluşunun üç komponenti var.
Data. Model-in öhdəsindən gəlməli olduğu şeyin nümunələri. Supervised learning-də hər nümunə label ilə, yəni düzgün cavabla gəlir. Unsupervised learning-də label yoxdur və məqsəd datada struktur tapmaqdır. Reinforcement learning isə ayrı dayanır: agent hərəkət edir, mühit reward ilə cavab verir və model policy öyrənir.
Hypothesis space. Alqoritmin seçim edə biləcəyi funksiyalar ailəsi. Linear model-lər yalnız düz xətt çəkə bilir; decision tree-lər oxlara paralel düzbucaqlılar çəkir; neural network-lər kifayət qədər capacity olduqda demək olar ki, hər şeyi çəkə bilir. Daha böyük hypothesis space daha çox şeyi təsvir edə bilir, amma onu axtarmaq çətin, aldatmaq isə asandır.
Loss function və optimizer. Loss function namizəd funksiyanın training set üzərində nə qədər səhv etdiyini ölçür. Optimizer isə loss-u azaltmaq üçün funksiyanı tənzimləyir. Differentiable olan hər şey üçün əsas iş atı, çoxsaylı variantları ilə birlikdə, gradient descent-dir.
Məqsəd generalization-dır
Training set-i mükəmməl təkrarlayan model qurmaq olduqca asandır: onu əzbərləmək kifayətdir. Belə model faydasızdır, çünki bizi maraqlandıran yeganə input-lar hələ görmədiklərimizdir.
Generalization model-in training set ilə eyni distribution-dan götürülmüş yeni data üzərində yaxşı işləmək qabiliyyətidir. Machine learning-dəki hər dizayn qərarı son nəticədə generalization haqqındadır:
- Underfitting: model pattern-i tutmaq üçün həddindən artıq sadədir. Training error yüksəkdir. Çarə: daha çox capacity, daha yaxşı feature-lər.
- Overfitting: model training set-ə xas noise-u tutub. Training error aşağı, test error yüksəkdir. Çarə: daha çox data, regularization, daha az capacity, early stopping.
Training və test nəticələri arasındakı fərq istənilən eksperimentdəki ən məlumatlı rəqəmdir. Hər şeydən əvvəl ona baxın.
Hər şeyin üzərində dayandığı fərziyyə
Model-lər gələcək datanın keçmiş dataya bənzəyəcəyini fərz edir. Formal dillə desək, training və deployment nümunələri independent and identically distributed-dir. Sadə dillə: datanı topladığınız an ilə model-i istifadə etdiyiniz an arasında dünya dəyişmir.
Dünya isə daim dəyişir. Məhsul dəyişəndən sonra istifadəçilər başqa cür davranır. Sensorlar drift edir. Pandemiya hər demand forecast-ı yenidən yazır. Distribution shift nadir hal deyil; production-dakı model-in normal iş rejimidir və Fəsil 5 böyük ölçüdə onunla yaşamaq barədədir.
Qısa lüğət
| Termin | Mənası |
|---|---|
| Feature | Model-in gördüyü input dəyişəni |
| Label / target | Model-in proqnozlaşdırmağa öyrədildiyi output |
| Training set | Model-i fit etmək üçün istifadə olunan data |
| Validation set | Model-lər və parametrlər arasında seçim etmək üçün istifadə olunan data |
| Test set | Real nəticəni qiymətləndirmək üçün sonda bir dəfə istifadə olunan data |
| Hyperparameter | Öyrənilməyən, mühəndisin seçdiyi parametr (tree depth, learning rate) |
| Inference | Train edilmiş model-in yeni input üzərində işlədilməsi |
Bu kitab nəyi əhatə edir
Fəsil 2 praktikada həqiqətən istifadə edəcəyiniz supervised alqoritmləri gəzir. Fəsil 3 evaluation haqqındadır, real səhvlərin əksəriyyəti məhz orada baş verir. Fəsil 4 feature-ləri əhatə edir, tabular məsələlərin çoxunda onlar alqoritmdən daha vacibdir. Fəsil 5 production haqqındadır, model-in fayl olmaqdan çıxıb sistemə çevrildiyi yer.
Tapşırıqlar
- Öz işinizdən "qaydalar məlum deyil" meyarına uyğun gələn bir məsələ və uyğun gəlməyən bir məsələ adlandırın.
- İstənilən dataset götürün. Onu əzbərləyən model qurun. Training və test error-u ölçün. Aradakı fərqi müşahidə edin.
- Məhsulunuzun bu gün topladığı datanın bir il əvvəl topladığı datadan fərqlənə biləcəyi üç yolu sadalayın.