Fəsil 02 · 38 dəq oxu

Machine Learning terminləri

Machine Learning terminləri

Data-dan öyrənmə, model-lərin qiymətləndirilməsi, və production-a çıxış ilə bağlı terminlər.

Bu fəsildə: A/B test · Backpropagation · Calibration · Canary · Classification · Cross-validation · Decision tree · Distribution shift · Drift · Embedding · Feature · Feature engineering · Feature store · Generalization · Gradient boosting · Gradient descent · Hyperparameter · Inference · Label · Leakage · Loss function · Neural network · Optimizer · Overfitting · Parameter · Precision · Random forest · Recall · Regularization · Rollback · Shadow mode · Supervised learning · Target encoding · Test set · Training set · Training/serving skew · Underfitting · Validation set


A/B test

İstifadəçiləri təsadüfi olaraq iki qrupa bölüb köhnə və yeni versiyanı paralel işlədən və biznes metric-indəki fərqi statistik olaraq ölçən controlled experiment.

A/B test yeni model-in (və ya istənilən dəyişikliyin) real təsirini ölçməyin ən dürüst yoludur. Trafik təsadüfi şəkildə iki qrupa bölünür: A qrupu cari model-i, B qrupu yeni model-i görür. Qalan hər şey eyni olduğu üçün qruplar arasındakı fərqi məhz dəyişikliyə aid etmək olar.

Offline metric-lər (AUC, , ) model-in keyfiyyətini ölçür, amma biznesi maraqlandıran adətən başqa şeydir: conversion, gəlir, retention. 2% yaxşılaşma real istifadəçi davranışında heç nə dəyişməyə bilər, bəzən isə əksinə, pisləşdirər. A/B test bu boşluğu birbaşa ölçür.

Praktikada vacib məqamlar:

  • Metric-i əvvəlcədən seçin. Test bitəndən sonra "ən yaxşı görünən" metric-i axtarmaq p-hacking-dir.
  • Sample size-ı hesablayın. Kiçik effekti tutmaq üçün çoxlu trafik və vaxt lazımdır; testi erkən dayandırmaq yalançı qələbələr verir.
  • Randomization vahidi. Adətən istifadəçi səviyyəsində bölün ki, eyni adam hər iki variantı görməsin.

Nümunə: recommendation model-in yeni versiyası offline-da daha yaxşı ranking verir. İki həftəlik A/B test göstərir ki, kliklər artıb, amma alışlar dəyişməyib, deməli model clickbait-ə meyl edir.

A/B test fərqlidir: təhlükəsizlik üçündür, A/B test isə təsiri ölçmək üçün.

Əlaqəli terminlər: , , ,

Backpropagation

loss-a görə hər üzrə gradient-ini chain rule ilə output-dan input-a doğru, layer-lər boyunca geriyə hesablayan alqoritm.

Backpropagation praktik olaraq train etməyi mümkün edən alqoritmdir. hər üçün "loss-u azaltmaq üçün bu hansı istiqamətdə və nə qədər dəyişməli?" sualının cavabını, yəni gradient-i tələb edir. Milyonlarla olan network üçün bunu hər ayrıca tərpədib yoxlamaqla hesablamaq mümkün deyil.

Backpropagation iki keçiddən ibarətdir:

  • Forward pass. Input layer-lər boyunca irəli axır, hər addımın aralıq nəticələri yadda saxlanılır, sonda loss hesablanır.
  • Backward pass. Chain rule ilə loss-un gradient-i son layer-dən birinciyə doğru geri ötürülür. Hər layer öz gradient-ini və əvvəlki layer-ə ötürüləcək gradient-i hesablayır.

Bunun sayəsində bütün gradient-lərin hesablanması təxminən bir forward pass qədər baha başa gəlir. Sonra bu gradient-lərlə yeniləyir.

Bu gün backpropagation-ı əl ilə yazan yoxdur: PyTorch və JAX kimi framework-lər automatic differentiation ilə bunu özləri edir. Amma onun necə işlədiyini bilmək debug zamanı lazımdır: vanishing və exploding gradient-lər, NaN loss, yaddaş çatışmazlığı (forward pass-in aralıq nəticələri yaddaşda saxlanılır) məhz buradan qaynaqlanır.

Qısaca: backpropagation gradient-i hesablayır, isə onu istifadə edir. Bunlar fərqli addımlardır.

Əlaqəli terminlər: , , , ,

Calibration

Model-in verdiyi ehtimalların reallığa uyğunluğu: 0.9 deyən model belə hallarda təxminən 90% haqlı olmalıdır.

Calibration model-in ehtimallarının nə qədər "dürüst" olduğunu göstərir. Yaxşı calibrate olunmuş model 0.7 ehtimal verdiyi bütün hallara baxsanız, onların təxminən 70%-i həqiqətən positive çıxır.

Bu, ranking keyfiyyətindən ayrı xüsusiyyətdir. Model nümunələri əla sıralaya bilər (yüksək ROC-AUC), amma ehtimalları sistematik olaraq şişirdilmiş və ya sıxılmış ola bilər. Boosted tree-lər və bu baxımdan tez-tez zəif olur.

Calibration nə vaxt vacibdir? Ehtimal qərara birbaşa daxil olanda:

  • expected value hesablamaları (fraud ehtimalı × məbləğ);
  • risk threshold-ları ("ehtimal 0.3-dən yuxarıdırsa, əl ilə yoxla");
  • bir neçə model-in ehtimallarını birləşdirmək.

Yalnız sıralama lazımdırsa (top-10 tövsiyə), calibration o qədər də əhəmiyyətli deyil.

Necə yoxlanılır: reliability diagram çəkin. Proqnozları ehtimal aralıqlarına (bin-lərə) bölün və hər bin üçün orta proqnozu faktiki positive nisbəti ilə müqayisə edin. Mükəmməl model diaqonal üzərində olur. və Brier score da calibration-ı əks etdirir.

Necə düzəldilir: Platt scaling (üstünə logistic regression) və ya isotonic regression. Calibrator-u yox, ayrıca validation datası üzərində fit edin, əks halda yenə nikbin nəticə alacaqsınız.

Əlaqəli terminlər: , ,

Canary

Yeni versiyanı əvvəlcə trafikin kiçik hissəsinə (məsələn, 5%) verib metric-ləri izləyən və problem yoxdursa tədricən genişləndirən üsulu.

Canary yeni model-i bütün istifadəçilərə birdən çıxarmamaq üsuludur. Trafikin kiçik bir hissəsi, məsələn 1-5%-i yeni versiyaya yönləndirilir, qalanı köhnə versiyada qalır. Metric-lər normaldırsa, pay mərhələli şəkildə artırılır: 5%, 25%, 50%, 100%. Nəsə pis gedirsə, yalnız kiçik qrupa təsir edir.

Ad şaxtaçıların kanareykasından gəlir: təhlükəni hamıdan əvvəl kiçik "sensor" hiss edir.

Model-lər üçün canary xüsusilə vacibdir, çünki onlar səssiz sınır: exception atmırlar, sadəcə pis rəqəmlər qaytarırlar. Canary zamanı izləyin:

  • system health: , error rate, yaddaş;
  • prediction distribution: yeni model köhnədən kəskin fərqli nisbətdə flag edirmi?
  • əlçatan olan biznes metric-ləri.

Nümunə: yeni fraud model-i 5% trafikdə işə salınır. Bir saat sonra məlum olur ki, o, əməliyyatların 12%-ni bloklayır (köhnə model 0.8%). bir əmrlə edilir və problem yalnız istifadəçilərin kiçik hissəsinə toxunur.

Canary ilə qarışdırılmamalıdır. Canary-nin məqsədi riski məhdudlaşdırmaqdır və adətən qısa çəkir; isə təsiri statistik ölçmək üçündür. isə ondan da əvvəlki addımdır: model heç bir istifadəçiyə təsir etmədən işləyir.

Əlaqəli terminlər: , , ,

Classification

Output-un kateqoriya olduğu məsələsi: spam ya yox, fraud ya yox, şəkildə pişik, it və ya quş.

Classification iki əsas növündən biridir; digəri output-u ədəd olan regression-dur. Classification-da model input-u əvvəlcədən məlum siniflərdən birinə aid edir.

Növləri:

  • Binary classification. İki sinif: churn edəcək/etməyəcək, fraud/qanuni.
  • Multiclass. Bir neçə sinifdən biri: məhsul kateqoriyası, dil.
  • Multilabel. Bir nümunəyə eyni anda bir neçə : məqaləyə bir neçə tag.

Əksər classifier-lər əslində sinif yox, ehtimal qaytarır. Sinif qərarı threshold ilə verilir və bu threshold-un seçimi biznes qərarıdır, model-in yox. Default 0.5 nadir hallarda optimaldır.

Ən çox rast gəlinən tələ class imbalance-dır. Əməliyyatların 99%-i qanunidirsə, həmişə "qanunidir" deyən model 99% accuracy göstərir və heç nəyə yaramır. Buna görə nadir positive sinfi olan məsələlərdə , , F1 və PR-AUC kimi metric-lərə baxılır.

Nümunə: xərçəng skrininqində false negative (xəstəliyi buraxmaq) false positive-dən (əlavə müayinə) qat-qat bahadır, ona görə threshold aşağı salınır və üstünlük verilir. Spam filtrində isə vacib məktubu itirmək bahadır, burada önə çıxır.

Model seçimi: tabular data üçün logistic regression baseline kimi, isə güclü default kimi.

Əlaqəli terminlər: , , , ,

Cross-validation

Datanı k hissəyə (fold) bölüb hər dəfə birini validation, qalanlarını training üçün istifadə edən və k nəticəni ortalayan evaluation üsulu.

Cross-validation tək validation split-in təsadüfiliyini azaldır. Data k bərabər hissəyə (fold-a) bölünür. Model k dəfə train edilir: hər dəfə bir fold validation rolunu oynayır, qalan k−1 fold isə training üçün istifadə olunur. Nəticədə k score alınır, onların ortası estimate, yayılması isə error bar kimi çıxış edir.

Niyə lazımdır:

  • Kiçik dataset-lər. 2000 nümunədə 15%-lik cəmi 300 nümunədir və nəticə çox noisy olur. Cross-validation bütün datanı həm training, həm də validation üçün istifadə edir.
  • Etibarlılıq. "Model A model B-dən 0.4% yaxşıdır" iddiası fold-lar arasındakı yayılmadan kiçikdirsə, bu fərq noise-dur.

Tipik dəyər k=5 və ya k=10-dur. Daha böyük k daha dəqiq, amma daha bahalıdır.

Ümumi səhvlər:

  • . Scaling, imputation və ya bütün data üzərində əvvəlcədən fit edilirsə, cross-validation nikbin nəticə verir. Preprocessing pipeline-ın içində, hər fold-un training hissəsində fit edilməlidir.
  • Struktursuz bölmə. Zaman sırası olan datada random fold-lar gələcəyi keçmişə sızdırır; time series split istifadə edin. Eyni istifadəçinin sətirləri varsa, group k-fold seçin.
  • əvəz etmək. Cross-validation model seçimi üçündür; yekun rəqəm üçün yenə toxunulmamış lazımdır.

Əlaqəli terminlər: , , ,

Decision tree

barədə ardıcıl hə/yox sualları verib hər leaf-də proqnoz qaytaran model; oxunaqlıdır, amma tək halda asanlıqla edir.

Decision tree input-u bir sıra sadə suallarla bölür: "age > 40?", "country == DE?". Hər suala cavaba görə nümunə sol və ya sağ budağa gedir, sonda leaf-ə çatır və həmin leaf-dəki training nümunələrinin çoxluq (və ya regression üçün ortası) proqnoz kimi qaytarılır. Training zamanı alqoritm hər addımda datanı ən yaxşı ayıran və threshold-u seçir.

Güclü tərəfləri:

  • scaling tələb etmir;
  • rəqəm və kateqoriyalı qarışıq emal edir;
  • arasındakı interaction-ları özü tapır;
  • kiçik tree-ni kağıza çap edib auditor-a və ya tənzimləyici orqana göstərmək olar.

Zəif tərəfləri:

  • . Dərinliyi məhdudlaşdırılmamış tree hər training nümunəsi üçün ayrıca leaf yaradıb datanı əzbərləyə bilər. Max depth, minimum leaf ölçüsü və pruning bunu cilovlayır.
  • Qeyri-sabitlik. Datadakı kiçik dəyişiklik tamamilə fərqli tree verə bilər.
  • Yalnız oxlara paralel bölgülər çəkir, diaqonal sərhədləri pilləkənlə approximate edir.

Praktikada tək tree nadir hallarda son model olur. Onun qeyri-sabitliyi ensemble-larda üstünlüyə çevrilir: çoxlu müstəqil tree-ni ortalayır, isə tree-ləri ardıcıl qurur. Tək tree isə izah tələb olunan yerlərdə və sürətli baseline kimi dəyərlidir.

Əlaqəli terminlər: , , ,

Distribution shift

Production-dakı datanın model-in train edildiyi datadan statistik olaraq fərqlənməsi; model-in i.i.d. fərziyyəsini pozur və keyfiyyəti səssizcə aşağı salır.

Hər model gizli bir fərziyyə üzərində qurulur: gələcək data keçmiş dataya bənzəyəcək (training və nümunələri independent and identically distributed-dir). Distribution shift bu fərziyyənin pozulmasıdır və production-da istisna deyil, normal haldır.

Əsas növləri:

  • Covariate shift. Input-ların distribution-ı dəyişir, input ilə arasındakı əlaqə isə eyni qalır. Məsələn, tətbiqə yeni ölkədən istifadəçilər gəlir.
  • shift. Siniflərin nisbəti dəyişir: epidemiya zamanı müsbət testlərin payı kəskin artır.
  • Concept drift. Input ilə arasındakı əlaqənin özü dəyişir. Fırıldaqçılar yeni sxemə keçir və dünənki "təhlükəsiz" pattern bu gün fraud-dur.

Shift-in mənbələri: məhsul dəyişiklikləri, mövsümilik, marketinq kampaniyaları, upstream data pipeline-da dəyişiklik, pandemiya kimi xarici şoklar, hətta model-in özünün təsiri (fraud model-i bloklayanda fırıldaqçılar davranışını dəyişir).

Necə yaşamalı:

  • evaluation-da time-based split istifadə edin ki, gələcəyi təqlid etsin;
  • və prediction distribution-ı monitoring ilə izləyin;
  • label-lar gəldikcə canlı metric-i validation score ilə müqayisə edin;
  • retraining trigger-ini və gate-ini əvvəlcədən müəyyən edin.

Səhv: shift-i bir dəfəlik hadisə kimi qəbul etmək. Model olunduğu gündən köhnəlməyə başlayır.

Əlaqəli terminlər: , , ,

Drift

Production-da , proqnozların və ya keyfiyyətin zamanla training dövründən uzaqlaşması; monitoring-in əsas izlədiyi siqnaldır.

Drift production-da müşahidə olunan tərəfidir: model-in gördüyü data və ya verdiyi cavablar tədricən training dövründəkindən uzaqlaşır. Software adətən səs-küylə sınır; model-lər isə rəqəm qaytarmağa davam edir və bu rəqəmlər yavaş-yavaş pisləşir. Drift monitoring bu səssiz çürüməni görmək üçündür.

Nəyi izləmək lazımdır:

  • Input drift. Hər production-dakı distribution-ını ilə müqayisə edin. Population stability index (PSI), KL divergence və ya sadə histogram müqayisəsi kifayətdir.
  • Prediction drift. Model-in output distribution-ı. Fraud model-i birdən 10 dəfə çox əməliyyat flag edirsə, ya fraud dalğası var, ya da nəsə sınıb.
  • Performance drift. Label-lar gəldikcə (churn oldumu? fraud idimi?) canlı metric-i validation score ilə müqayisə edin.

Drift həmişə model-in günahı deyil. Çox vaxt səbəb upstream-dədir: kitabxana upgrade-i, sahənin vahidinin dəyişməsi, null-ların sıfırla əvəz olunması. Belə hallarda retraining problemi həll etmir, əksinə, xətanı model-ə "öyrədir".

Praktik qayda: alert-ləri yalnız error-lara deyil, drift-ə də qoşun və hər alert üçün threshold-u əvvəlcədən müəyyən edin. Drift aşkarlananda əvvəlcə səbəbi araşdırın, sonra retrain və ya barədə qərar verin.

Əlaqəli terminlər: , , ,

Embedding

Kateqoriyanı, sözü, mətni və ya şəkli öyrənilmiş dense vector-la təmsil etmək; oxşar obyektlərin vector-ları bir-birinə yaxın olur.

Embedding diskret və ya mürəkkəb obyekti (user ID, məhsul, söz, cümlə, şəkil) sabit uzunluqlu ədədlər vector-una çevirir. Bu vector-lar əl ilə yazılmır, öyrənilir: training zamanı model elə vector-lar tapır ki, tapşırıq üçün oxşar olan obyektlər space-də bir-birinə yaxın yerləşsin.

Niyə lazımdır: one-hot encoding yüz min kateqoriya üçün yüz min sütun yaradır və heç bir oxşarlıq məlumatı daşımır; "Bakı" ilə "Gəncə" "Bakı" ilə "banan" qədər uzaqdır. Embedding isə bunu 64 və ya 256 ölçülü dense vector-la ifadə edir və oxşarlığı tutur.

İstifadə yerləri:

  • Categorical . içində çox yüksək cardinality-li sütunlar üçün (user ID, məhsul ID).
  • Mətn. alınan sentence embedding-ləri semantic similarity-ni hazır verir və trivial olmayan mətn işləri üçün default-dur.
  • Axtarış və tövsiyə. Yaxın vector-ları tapmaqla oxşar sənəd, məhsul və ya istifadəçi axtarışı.

Nümunə: e-commerce saytında məhsul embedding-ləri birlikdə alınma tarixçəsindən öyrənilir; "bu məhsula baxanlar bunlara da baxıb" bloku sadəcə ən yaxın vector-ları göstərir.

Diqqət: embedding-in keyfiyyəti onu öyrədən dataya və məqsədə bağlıdır. Bir tapşırıq üçün öyrənilmiş embedding başqa tapşırıqda pis işləyə bilər; embedding model-i dəyişəndə köhnə vector-larla yenilər müqayisə edilə bilmir, hamısını yenidən hesablamaq lazımdır.

Əlaqəli terminlər: , , , ,

Feature

Machine learning-də model-in gördüyü input dəyişəni: xam datadan elə formada çıxarılmış ədəd və ya kateqoriya ki, model pattern-i asan görsün.

Feature model-in input-unun bir sütunudur: müştərinin yaşı, son 7 gündəki alışların sayı, mətnin uzunluğu. Model yalnız feature-ləri görür; datada olan, amma feature-ə çevrilməyən məlumat model üçün mövcud deyil.

Feature-i datanın üzərinə taxılmış linza kimi düşünmək faydalıdır. Timestamp tək başına bir ədəddir; ondan çıxarılmış "həftənin günü" isə həftəlik mövsümiliyi göstərir. Transaction məbləği ədəddir; "bu məbləğin müştərinin orta məbləğinə nisbəti" isə anomaliyanı üzə çıxarır.

Tabular məsələlərdə tavanı feature-lərin keyfiyyəti müəyyən edir, alqoritm isə bu tavana nə qədər yaxınlaşacağınızı. Yaxşı feature set ilə logistic regression xam sütunlar üzərində tez-tez üstələyir.

Hər feature üçün vacib suallar:

  • Prediction anında məlum olacaqmı? Yoxdursa, bu .
  • Training və serving-də eyni kodla hesablanırmı? Yoxdursa, yaranacaq.
  • Niyə mövcuddur? Hər feature-in mənasını və mənbəyini yazın; altı aydan sonra bu qeydlər pipeline-ı anlamağın yeganə yolu olacaq.

Daha çox feature həmişə yaxşı deyil: əhəmiyyətsiz feature-lər noise əlavə edir, training-i yavaşladır və yol açır. Feature selection ilə faydasızları silin.

Əlaqəli terminlər: , , , ,

Feature engineering

Xam datadan model üçün faydalı yaratmaq prosesi: transformation-lar, encoding, aggregate-lər və domain biliyinin kodlaşdırılması.

Feature engineering xam sütunları model-in asan istifadə edə biləcəyi formaya çevirmək işidir. Tabular məsələlərdə bu, alqoritm seçimindən adətən daha çox nəticə verir: bir həftə, alqoritmə bir saat ayıran mühəndislər əksini edənləri müntəzəm üstələyir.

Əsas texnikalar:

  • Numeric. Scaling (linear model-lər, , k-NN üçün), heavy-tailed kəmiyyətlər üçün log transform, binning, iki nisbəti və ya hasili (qiymət / kvadratmetr).
  • Categorical. One-hot encoding, ordinal encoding, , frequency encoding, .
  • Tarix və vaxt. Günün saatı, həftənin günü, bayram flag-i, son hadisədən keçən vaxt, cyclical encoding.
  • Mətn. TF-IDF, n-gram-lar, , sadə statistikalar.
  • Aggregate-lər. Hər müştəri və ya cihaz üçün trailing window-lar üzrə say, cəm, orta. Biznes datasında predictive gücün çoxu tarixçədədir.
  • Missing value-lar. Impute edib "was_missing" flag-i əlavə edin; boşluğun özü çox vaxt informativdir.

Ən yaxşı mənbəyi işi əl ilə görən domain expert ilə söhbətdir: onun hər rule of thumb-ı potensial .

Workflow: xam sütunlarla baseline qurun, batch-larla əlavə edin, hər batch-dən sonra validation score-a baxın, kömək etməyənləri silin. Sonda hər baxımından yoxlayın; ən çox məhz aggregate-lərdə və gizlənir.

Əlaqəli terminlər: , , , ,

Feature store

bir dəfə hesablayıb həm training, həm serving üçün eyni məntiqlə təqdim edən və point-in-time düzgünlüyünü təmin edən infrastruktur.

Feature store mərkəzləşdirilmiş anbarı və hesablama qatıdır. O, iki çətin problemi həll etmək üçün mövcuddur.

. training zamanı batch rejimində, tarixi data üzərində, zamanı isə real-time, hər request üçün hesablanır. İki ayrı implementasiya mütləq ayrılır. Feature store tərifini bir yerdə saxlayır və hər iki yola eyni dəyəri verir: offline store training dataset-i qurmaq üçün, online store isə aşağı ilə serving üçün.

Point-in-time düzgünlük. "Son 30 gündə alışların sayı" training nümunəsi üçün yalnız həmin nümunənin prediction anından əvvəlki event-ləri saymalıdır. Bunu əl ilə düzgün etmək çətindir və səhv verir. Feature store tarixi dəyərləri vaxt damğası ilə saxlayıb "o anda nə məlum idi" sorğusunu düzgün icra edir.

Əlavə faydalar: komandalar arasında təkrar istifadəsi, versiyalaşdırma, sahiblik və sənədləşmə.

Nə vaxt lazım deyil: bir-iki model, batch scoring və sadə üçün feature store artıq mürəkkəblikdir. Training və serving üçün eyni Python funksiyasını çağırmaq çox vaxt kifayətdir. Feature store çoxlu model, online serving və tarixçə aggregate-ləri olanda öz dəyərini doğruldur.

Əlaqəli terminlər: , , ,

Generalization

Model-in training zamanı görmədiyi, amma eyni distribution-dan gələn yeni data üzərində yaxşı işləmək qabiliyyəti; machine learning-in əsl məqsədi.

mükəmməl təkrarlayan model qurmaq asandır: onu əzbərləmək kifayətdir. Amma belə model faydasızdır, çünki bizi yalnız hələ görmədiyimiz input-lar maraqlandırır. Generalization model-in öyrəndiyi pattern-in yeni nümunələrə nə qədər yaxşı keçdiyini ifadə edir və machine learning-dəki demək olar ki, hər dizayn qərarı son nəticədə onun haqqındadır.

Generalization-ı birbaşa ölçmək olmur, yalnız təxmin etmək olur: model-in toxunmadığı validation və üzərində. Buna görə evaluation-ın dürüstlüyü kritikdir; və ya təkrar-təkrar baxmaq generalization barədə yalançı təsəvvür yaradır.

Ən informativ rəqəm training və test nəticələri arasındakı fərqdir:

  • hər ikisi pisdirsə, var: model çox sadədir və ya zəifdir;
  • training əla, test pisdirsə, var: model noise-u əzbərləyib.

Generalization-ı yaxşılaşdıran əsas vasitələr: daha çox və daha müxtəlif data, , uyğun capacity, , ensemble-lar və ən əsası yaxşı .

Vacib qeyd: generalization "eyni distribution" daxilində verilən zəmanətdir. Production-da distribution dəyişirsə (), əla generalization göstərən model də uğursuz ola bilər. Buna görə şəraitini təqlid edəcək şəkildə qurun.

Əlaqəli terminlər: , , , ,

Gradient boosting

Tree-ləri ardıcıl train edib hər yenisinin əvvəlki ensemble-ın səhvlərini düzəltdiyi metod; tabular data üçün ən güclü ümumi təyinatlı alqoritm.

Gradient boosting çoxlu kiçik ardıcıl qurur. Birinci tree kobud proqnoz verir. Hər növbəti tree o ana qədərki ensemble-ın qalıq səhvlərini (daha dəqiq desək, loss-un gradient-ini) proqnozlaşdırmağa öyrədilir və kiçik çəki ilə ensemble-a əlavə olunur. Nəticədə yüzlərlə zəif tree birlikdə çox dəqiq model yaradır.

XGBoost, LightGBM və CatBoost ən məşhur implementasiyalardır. Tabular data üzərində onlar hazırda state-of-the-art sayılır və structured data yarışlarının əksəriyyətini qazanır.

Güclü tərəfləri:

  • scaling tələb etmir, missing value-ları native emal edir;
  • interaction-larını özü tapır;
  • importance verir; SHAP value-ları ilə ayrı-ayrı proqnozları izah etmək olur.

Zəif tərəfləri və tələlər:

  • Bir neçə vacib var: learning rate, tree dərinliyi, tree-lərin sayı. Nəzarətsiz qalsa, edir; üzrə istifadə edin.
  • Ehtimalları çox vaxt zəif calibrate olunur.
  • Tək tree-dən xeyli az interpretable-dır.

ilə fərq: tree-ləri paralel və müstəqil qurub ortalayır (variance-ı azaldır), boosting isə ardıcıl qurur (bias-ı azaldır). pis konfiqurasiya etmək çətindir, boosting isə tuning ilə daha yüksək nəticə verir.

Praktik tövsiyə: 10 mindən çox sətirli cədvəl datası üçün əvvəlcə gradient boosting sınayın.

Əlaqəli terminlər: , , , ,

Gradient descent

Loss-u azaltmaq üçün gradient-in əks istiqamətində kiçik addımlarla təkrar-təkrar yeniləyən optimizasiya alqoritmi.

Gradient descent differentiable model-ləri train etməyin əsas üsuludur. Fikir sadədir: asılı bir səth kimi təsəvvür edin. Gradient bu səthdə ən dik yüksəliş istiqamətini göstərir. onun əksinə, kiçik addımla dəyişsəniz, loss azalır. Bunu minlərlə dəfə təkrarlayırsınız.

Hər addımda yeniləmə belədir: yeni = köhnə − learning rate × gradient.

Variantları:

  • Batch gradient descent. Gradient bütün üzərində hesablanır. Dəqiqdir, amma böyük data üçün çox yavaşdır.
  • Stochastic gradient descent (SGD) və mini-batch. Gradient kiçik təsadüfi batch üzərində hesablanır. Noisy, amma sürətlidir və praktikada standartdır; noise hətta kömək edir.
  • Adam, RMSProp və s. Hər üçün addım ölçüsünü adaptiv tənzimləyən .

Learning rate ən vacib . Çox böyükdürsə, loss sıçrayır və ya NaN olur; çox kiçikdirsə, training sonsuz çəkir və ya pis nöqtədə ilişir. Learning rate schedule (warmup, tədricən azaltma) geniş istifadə olunur.

gradient-ləri hesablayır, gradient descent isə onları tətbiq edir. Tree-əsaslı də eyni ideyanı istifadə edir, amma əvəzinə yeni tree-lər əlavə edir.

Əlaqəli terminlər: , , , ,

Hyperparameter

Training zamanı öyrənilməyən, mühəndisin əvvəlcədən seçdiyi parametr: learning rate, tree depth, gücü, tree-lərin sayı.

Model-in iki növ "düyməsi" var. () training zamanı datadan öyrənilir. Hyperparameter-lər isə training-in özünü idarə edir və ondan əvvəl seçilir: learning rate, tree-nin maksimal dərinliyi, ensemble-dakı tree-lərin sayı, L1/ gücü, layer-lərin sayı.

Hyperparameter-lər model-in capacity-sini və öyrənmə dinamikasını təyin edir, ona görə ilə arasındakı balansı məhz onlar idarə edir.

Tuning üsulları:

  • Grid search. Bütün kombinasiyaları yoxlayır; az hyperparameter üçün uyğundur.
  • Random search. Təsadüfi kombinasiyalar; adətən grid-dən səmərəlidir.
  • Bayesian optimization (Optuna və s.). Əvvəlki nəticələrə əsasən növbəti sınağı seçir.

Ən vacib qayda: tuning və ya üzərində aparılır, heç vaxt üzərində yox. Yüz kombinasiyanı yoxlayıb ən yaxşısını seçsəniz, çevrilir və yekun rəqəminiz nikbin olur.

Praktik qeydlər: tuning-in qazancı adətən yaxşı qazancından kiçikdir, ona görə buna həddindən artıq vaxt sərf etməyin. Seçilmiş hyperparameter-ləri model ilə birlikdə saxlayın ki, model reproducible olsun. Kiçik fərqləri fərqli random seed-lərlə yoxlayın, çünki onlar çox vaxt noise-dur.

Əlaqəli terminlər: , , , ,

Inference

Train edilmiş model-in yeni input üzərində işlədilib proqnoz və ya output alınması; training-dən sonra production-da baş verən mərhələ.

Machine learning sisteminin həyatı iki mərhələdən ibarətdir: training, yəni datadan öyrənilməsi, və inference, yəni hazır model-in yeni input-lar üzərində işə salınması. Training nadir hallarda, böyük hesablama ilə edilir; inference isə hər request-də, bəzən saniyədə minlərlə dəfə baş verir.

Inference-in tələbləri training-dən fərqlidir:

  • . Online API-də model millisaniyələr ərzində cavab verməlidir.
  • Xərc. Training bir dəfəlik xərcdir, inference isə daimi; böyük model-lərdə əsas xərc məhz buradadır.
  • əlçatanlığı. Inference anında yalnız həmin anda məlum olan data istifadə edilə bilər.

Serving pattern-ləri:

  • Batch scoring. Gecə job-u bütün proqnozları cədvələ yazır; qurmaq və etmək ən asandır.
  • Online. HTTP və ya endpoint arxasında model, hər request üzrə proqnoz.
  • Embedded. Model tətbiqin və ya cihazın içində işləyir.
  • Streaming. Model event stream-i oxuyub proqnoz verir.

Ən geniş yayılmış problem : inference-də training-dəkindən fərqli hesablanırsa, model səssizcə zəifləyir. Çarə kodunu iki yol arasında paylaşmaqdır.

Use case imkan verirsə, batch inference ilə başlayın; real-time-a yalnız həqiqətən lazım olanda keçin.

Əlaqəli terminlər: , , ,

Label

hər training nümunəsi üçün düzgün cavab: model-in proqnozlaşdırmağa öyrədildiyi target dəyər.

Label nümunənin düzgün cavabıdır: e-məktubun spam olub-olmaması, evin satış qiyməti, şəkildəki obyekt. Model input-lardan label-ı proqnozlaşdırmağı öyrənir, buna görə label-ın keyfiyyəti model-in keyfiyyətinin tavanıdır.

Label-ların mənbələri:

  • Təbii label-lar. Sistemin özü sonradan bilir: müştəri churn etdimi, kredit qaytarıldımı, istifadəçi klik etdimi.
  • İnsan annotasiyası. Ekspertlər və ya annotator-lar nümunələri işarələyir. Bahalıdır və annotator-lar arasında fikir ayrılığı olur.
  • Proxy label-lar. Əsl hədəfi ölçmək çətin olanda yaxın bir şey: "məmnunluq" əvəzinə "geri qayıtdı".

Praktik problemlər:

  • Gecikmə. Fraud label-ı həftələr sonra gəlir, kredit default-u isə illər sonra. Bu, monitoring və retraining-i çətinləşdirir.
  • Noise. Səhv label-lar model-i çaşdırır; az sayda yoxlanılmış label çox vaxt çoxlu noisy label-dan dəyərlidir.
  • . Label-ın nəticəsi olan (məsələn, account_closed_date churn üçün) model-ə cavabı "pıçıldayır".
  • Selection bias. Yalnız model-in təsdiqlədiyi kreditlərin nəticəsini bilirsiniz; rədd edilənlər barədə label yoxdur.

Qayda: label-ın dəqiq tərifini, hansı anda məlum olduğunu və necə yaradıldığını yazılı şəkildə müəyyən edin. Label tərifindəki dəyişiklik yeni model deməkdir.

Əlaqəli terminlər: , , ,

Leakage

haqqında prediction anında əlçatan olmayacaq məlumatın training-ə və ya sızması; möhtəşəm validation nəticəsi, faydasız model verir.

Leakage machine learning-in səssiz qatilidir. Model validation-da əla nəticə göstərir, çünki o, production-da heç vaxt əlində olmayacaq məlumatdan istifadə edir. edildikdən sonra isə keyfiyyət kəskin düşür.

Əsas formaları:

  • Target leakage. nəticəsi olan . account_closed_date churn üçün mükəmməl predictor-dur, amma churn-u əvvəlcədən proqnozlaşdırmaq üçün tamamilə faydasızdır.
  • Temporal leakage. Prediction anından sonrakı data ilə training. Bazar ertəsinin tələbini bazar ertəsini də əhatə edən rolling average ilə proqnozlaşdırmaq.
  • Preprocessing leakage. Scaling, imputation, selection və ya split-dən əvvəl bütün dataset üzərində fit edilir; validation datası training-ə təsir edir.
  • Duplicate leakage. Eyni entity həm training, həm də : təkrarlanan müştərilər, demək olar ki, eyni şəkillər, bir neçə vizitdə eyni pasiyent.

Əlamətləri: şübhəli dərəcədə yüksək score, bir hər şeyi üstələyən importance-ı, baseline-ın nədənsə qeyri-real yaxşı olması.

Müdafiə:

  • hər üçün soruşun: "production-da bu proqnozu verəcəyim anda bu dəyər məlum olacaqmı?";
  • time-based və group-based split istifadə edin;
  • preprocessing-i pipeline-ın içində yalnız training fold üzərində fit edin;
  • ilə point-in-time düzgün aggregate-lər qurun.

Əlaqəli terminlər: , , , ,

Loss function

Model-in proqnozlarının düzgün cavablardan nə qədər uzaq olduğunu bir ədədlə ölçən funksiya; training bu ədədi minimuma endirməyə çalışır.

Loss function training-in "nəyi optimallaşdırırıq?" sualına verdiyi cavabdır. O, model-in hər proqnozunu düzgün ilə müqayisə edib cəza hesablayır; isə bu cəzanın ortasını azaltmaq üçün dəyişir.

Geniş yayılmış loss-lar:

  • Mean squared error. Regression üçün; böyük səhvləri kvadrata görə sərt cəzalandırır, outlier-lərə həssasdır.
  • Mean absolute error və Huber loss. Outlier-lərə qarşı daha davamlı alternativlər.
  • Log loss (cross-entropy). üçün; yanlış cavaba yüksək əminliklə verilən ehtimalı çox ağır cəzalandırır və ehtimalların keyfiyyətini ölçür.

Loss function və biznes metric-i fərqli şeylərdir. Loss differentiable və optimallaşdırıla bilən olmalıdır; metric isə (, , gəlir) insanların həqiqətən önəm verdiyi şeydir. Model log loss-u minimallaşdırır, siz isə F1 və ya pul ilə qiymətləndirirsiniz. Bu ikisi arasındakı boşluq nə qədər böyükdürsə, sürpriz bir o qədər çox olur.

Praktik qeydlər:

  • Səhvlərin dəyəri asimmetrikdirsə (false negative daha bahalıdır), class və ya xüsusi loss ilə bunu training-ə daxil edin.
  • Training loss-un azalması kifayət deyil; validation loss da izlənməlidir. Training loss düşür, validation loss artırsa, bu .
  • Loss NaN olursa, adətən learning rate çox böyükdür və ya datada problem var.

Əlaqəli terminlər: , , ,

Neural network

Aralarında qeyri-xətti activation-lar olan çəkili cəmlər layer-lərindən qurulmuş model; xam datadan öz öyrənə bilir.

Neural network bir-birinin üstünə düzülmüş layer-lərdən ibarətdir. Hər layer input-un çəkili cəmlərini hesablayır və nəticəni qeyri-xətti activation funksiyasından (ReLU və s.) keçirir. Kifayət qədər layer, və data olduqda belə network demək olar ki, istənilən funksiyanı approximate edə bilir. Çoxlaylı network-lərlə işləmək deep learning adlanır.

Ən böyük üstünlüyü: neural network xam datadan özü öyrənir. Klassik yanaşmada şəkil üçün kənarları və formaları əl ilə təsvir etmək lazım idi; neural network bunları piksellərdən öyrənir. Buna görə şəkil, səs, mətn və sequence məsələlərində hakim mövqedədir. Müasir də arxitekturalı neural network-lərdir.

Training ilə aparılır, gradient-ləri isə hesablayır.

Zəif tərəfləri:

  • dataya və compute-a acdır;
  • çoxdur, debug etmək çətindir;
  • az interpretable-dır;
  • kiçik və orta tabular data üzərində adətən pis nəticə verir.

Nə vaxt seçməli: input şəkil, səs, mətn və ya sequence-dirsə, yaxud milyonlarla nümunəniz və GPU-nuz varsa. Çox vaxt sıfırdan train etmək əvəzinə model götürüb etmək daha səmərəlidir.

Ümumi səhv: cədvəl datası üçün refleksiv olaraq neural network seçmək. Yaxşı üzərində logistic regression və ya çox vaxt daha yaxşı və daha ucuzdur.

Əlaqəli terminlər: , , , ,

Optimizer

Loss-u azaltmaq üçün gradient-lərdən istifadə edərək model-in yeniləyən alqoritm: , Adam, RMSProp və s.

Optimizer training döngəsinin "hərəkət edən" hissəsidir. nə qədər səhv etdiyimizi ölçür, gradient-ləri hesablayır, optimizer isə bu gradient-lərə əsasən necə dəyişəcəyini qərara alır.

Əsas ailələr:

  • . Ən sadəsi: learning rate × gradient qədər əks istiqamətə sürüşdürür. Momentum əlavə olunanda əvvəlki addımların istiqamətini də nəzərə alır, noise-u hamarlayır və dar dərələrdə daha sürətli irəliləyir.
  • Adaptive optimizer-lər (Adam, AdamW, RMSProp). Hər üçün addım ölçüsünü gradient-lərin tarixçəsinə görə ayrıca tənzimləyir. Default parametrlərlə yaxşı işləyir, ona görə üçün ən geniş yayılmış seçimdir.

Optimizer-in :

  • Learning rate ən vacibidir. Çox böyük olsa loss partlayır, çox kiçik olsa training ilişir.
  • Learning rate schedule: warmup, cosine decay, step decay.
  • decay: optimizer içində tətbiqi.

Praktik tövsiyə: üçün AdamW və standart learning rate ilə başlayın, əvvəlcə kiçik data alt çoxluğunda loss-un düşdüyünü yoxlayın. Training qeyri-sabitdirsə, optimizer-i dəyişməzdən əvvəl learning rate-i azaldın. Optimizer seçimi adətən data və problemlərindən daha az təsir edir.

Əlaqəli terminlər: , , ,

Overfitting

Model-in training datasındakı ümumi pattern əvəzinə ona xas noise-u əzbərləməsi: training error aşağı, test error isə yüksək olur.

Overfitting model-in "çox yaxşı" öyrənməsidir: o, real qanunauyğunluqla birlikdə təsadüfi noise-u, səhv və konkret nümunələrin xüsusiyyətlərini də yadda saxlayır. Nəticədə görmədiyi data üzərində pis işləyir.

Əsas əlamət training və validation nəticələri arasındakı böyük fərqdir: training-də 99% accuracy, validation-da 75%. tipik mənzərə: training loss düşməyə davam edir, validation loss isə bir nöqtədən sonra artmağa başlayır.

Səbəbləri:

  • data ilə müqayisədə model-in capacity-si həddindən artıqdır (dərin tree, çoxlu );
  • data azdır və ya noisy-dir;
  • çoxdur, onların bir hissəsi əhəmiyyətsizdir;
  • üzərində həddindən artıq tune edilib ( overfit).

Çarələri:

  • daha çox data;
  • (L1, L2, );
  • daha sadə model və ya daha az capacity (max depth, daha az layer);
  • ;
  • selection;
  • ensemble-lar ( variance-ı azaldır).

Nümunə: dərinliyi məhdudlaşdırılmamış hər müştəri üçün ayrıca leaf yaradır və training-də mükəmməl, yeni müştərilər üzərində isə təsadüfi tahmindən bir az yaxşı işləyir.

Diqqət: test score şübhəli dərəcədə yüksəkdirsə, bu overfitting yox, ola bilər.

Əlaqəli terminlər: , , ,

Parameter

Model-in training zamanı datadan öyrəndiyi daxili ədədlər (weight-lər və bias-lar); model-in bildiyi hər şey onlarda saxlanılır.

Parameter-lər, ən çox weight adlanır, model-in öyrəndiyi ədədlərdir. Linear regression-da y = w₁x₁ + w₂x₂ + b formulundakı w-lar və b parameter-lərdir. isə hər layer-in weight matrisləri və bias-ları; böyük onların sayı milyardlarla ölçülür.

Training-in mahiyyəti parameter-lərin elə dəyərlərini tapmaqdır ki, loss minimum olsun. bunları addım-addım yeniləyir. Training bitdikdən sonra parameter-lər donur və zamanı dəyişmir; model-in "bildiyi" hər şey onlarda kodlaşdırılıb.

qarışdırmayın: parameter-lər datadan öyrənilir, (learning rate, tree depth) isə mühəndis tərəfindən əvvəlcədən seçilir.

Praktik mənası:

  • Interpretability. Linear model-lərdə weight elə izahın özüdür: işarəsi və böyüklüyü təsirini göstərir ( eyni scale-dədirsə). isə ayrıca weight-in mənası yoxdur.
  • Capacity. Parameter sayı model-in nə qədər mürəkkəb funksiya öyrənə biləcəyinə təsir edir; data ilə müqayisədə çox parameter riskidir.
  • weight-lərin böyüklüyünü cəzalandırır; L1 bəzi weight-ləri dəqiq sıfıra endirir.
  • . Saxlanılan model faylı əsasən parameter-lərdən ibarətdir; onu yaradan data, kod və birlikdə versiyalaşdırın.

Model-də olmayan biliyi əlavə etmək üçün ya parameter-ləri yeniləmək (retrain, ), ya da məlumatı input-a vermək lazımdır.

Əlaqəli terminlər: , , , ,

Precision

Model-in positive dediyi nümunələrin nə qədərinin həqiqətən positive olduğu; false positive-lər baha başa gələndə əsas metric.

Precision sualı belədir: model "bəli" deyəndə nə qədər haqlıdır? Düsturu: true positive / (true positive + false positive). Model 100 məktubu spam kimi işarələyib və onlardan 90-ı həqiqətən spamdırsa, precision 0.9-dur.

Precision false positive-lərin dəyəri yüksək olanda önə çıxır:

  • spam filtri: vacib məktubu spam qovluğuna atmaq istifadəçi üçün ağrılıdır;
  • fraud bloklaması: qanuni müştərinin kartını bloklamaq onu itirmək deməkdir;
  • əl ilə yoxlama növbəsi: analitiklərin vaxtını boş alert-lərə sərf etmək.

Precision həmişə ilə birlikdə oxunmalıdır. Model yalnız ən əmin olduğu bir nümunəni positive desə, precision 100% ola bilər, amma positive-lərin demək olar ki, hamısını buraxar. Bu ikisi arasında balansı threshold idarə edir: threshold-u qaldırmaq precision-ı artırır, azaldır.

Bu balansı ifadə etmək üçün:

  • F1: precision və harmonik ortası;
  • PR curve və PR-AUC: bütün threshold-lar üzrə mənzərə, xüsusən nadir positive sinif olduqda.

Praktik yanaşma: biznesdən hər səhv növünün dəyərini soruşun. "Gündə ən çox 200 alert yoxlaya bilərik" kimi məhdudiyyət precision-a hədəf qoyur və threshold bu hədəfə görə seçilir. Accuracy-yə isə imbalanced datada etibar etməyin.

Əlaqəli terminlər: , , ,

Random forest

Datanın və təsadüfi alt çoxluqları üzərində yüzlərlə train edib nəticələrini ortalayan robust ensemble metodu.

Random forest tək əsas zəifliyini, qeyri-sabitliyi, üstünlüyə çevirir. Hər tree datanın təsadüfi bootstrap sample-ı üzərində train edilir və hər bölgüdə yalnız təsadüfi bir hissəsinə baxır. Bu, tree-lərin bir-birindən fərqli olmasını təmin edir. Proqnoz bütün tree-lərin səsverməsi () və ya ortası (regression) ilə verilir.

Fərdi tree-lərin səhvləri qismən bir-birini kompensasiya edir, ona görə variance kəskin düşür, model daha sabit və daha davamlı olur.

Güclü tərəfləri:

  • pis konfiqurasiya etmək demək olar ki, mümkün deyil; default-lar çox vaxt yaxşı işləyir;
  • scaling tələb etmir, qarışıq tipləri ilə işləyir;
  • tree-lər paralel train edilir;
  • out-of-bag nümunələr pulsuz validation estimate verir;
  • importance verir.

Zəif tərəfləri:

  • adətən yaxşı tune edilmiş bir az zəif nəticə verir;
  • yüzlərlə dərin tree böyük model faylı və yavaş deməkdir;
  • tək tree kimi oxunaqlı deyil.

Nə vaxt seçməli: sürətli, etibarlı və az tuning tələb edən güclü baseline lazım olanda. ilə fərq: random forest tree-ləri müstəqil qurub ortalayır, isə ardıcıl qurub hər tree ilə əvvəlki səhvləri düzəldir.

Diqqət: impurity-əsaslı importance çoxlu unikal dəyəri olan meyllidir; permutation importance daha etibarlıdır.

Əlaqəli terminlər: , , ,

Recall

Həqiqi positive nümunələrin nə qədərini model-in tuta bildiyi; false negative-lər, yəni buraxılmış hallar baha başa gələndə əsas metric.

Recall sualı belədir: həqiqi positive-lərin neçə faizini tapdıq? Düsturu: true positive / (true positive + false negative). Datada 50 fraud əməliyyatı var və model onlardan 40-nı tutubsa, recall 0.8-dir.

Recall buraxılmış halların dəyəri yüksək olanda önə çıxır:

  • xərçəng skrininqi: xəstəliyi görməmək əlavə müayinədən qat-qat bahadır;
  • fraud və təhlükəsizlik: buraxılan hücum birbaşa itkidir;
  • sənəd axtarışı (e-discovery): vacib sənədi tapmamaq hüquqi riskdir.

Recall-u süni şəkildə 100%-ə çatdırmaq asandır: hər şeyi positive adlandırın. Buna görə recall həmişə ilə birlikdə oxunur. Threshold-u aşağı salmaq recall-u artırır, amma azaldır, yəni daha çox yalançı alert yaranır.

Praktik qeydlər:

  • Recall-u yalnız ümumi rəqəm kimi yox, slice-lar üzrə də yoxlayın. Ümumi recall 90% ola bilər, amma bir ölkədə və ya cihaz tipində 50%.
  • Label-lar gec gəlirsə (fraud həftələr sonra təsdiqlənir), production-da recall-u ölçmək çətindir; buraxılan halların bir hissəsi heç vaxt aşkarlanmır.
  • Biznes çox vaxt məhdudiyyət şəklində düşünür: " ən azı 30% olmaq şərtilə maksimal recall". Threshold-u məhz belə hədəfə görə seçin.

Recall ROC curve-də true positive rate kimi də görünür.

Əlaqəli terminlər: , , ,

Regularization

Model-in mürəkkəbliyini cəzalandıraraq və ya məhdudlaşdıraraq qarşısını alan və yaxşılaşdıran texnikalar toplusu.

Regularization model-ə "datanı izah et, amma həddindən artıq mürəkkəbləşmə" deyir. Ən klassik forma böyüklüyünə görə cəza əlavə etməkdir: model həm səhvi, həm də özünün mürəkkəbliyini azaltmalı olur.

Əsas növləri:

  • L2 (ridge, decay). kvadratlarının cəmini cəzalandırır. kiçildir, amma sıfıra endirmir; korrelyasiyalı arasında təsiri bölüşdürür.
  • L1 (lasso). mütləq qiymətlərini cəzalandırır. Bir çox dəqiq sıfıra endirir, yəni eyni zamanda selection edir.
  • Dropout. training zamanı təsadüfi neyronları söndürür ki, network tək bir yola güvənməsin.
  • Early stopping. Validation loss artmağa başlayanda training-i dayandırmaq.
  • Struktur məhdudiyyətləri. Tree-lər üçün max depth, minimum leaf ölçüsü; kiçik learning rate.
  • Data augmentation. Training nümunələrinin dəyişdirilmiş variantlarını əlavə etmək.

Regularization gücü bir və və ya ilə seçilir. Çox zəif olsa qalır, çox güclü olsa yaranır.

Praktik qeyd: L1/L2 cəzası böyüklüyünə əsaslanır, ona görə əvvəlcədən scale edilməlidir; əks halda böyük vahidli haqsız yerə az, kiçik vahidlilər isə çox cəzalandırılır.

Əlaqəli terminlər: , , , ,

Rollback

Yeni versiya problem yaradanda sistemi tez və etibarlı şəkildə əvvəlki işlək versiyaya (model, kod və ya konfiqurasiya) qaytarmaq.

Rollback problem aşkarlananda əvvəlki, işlədiyi bilinən vəziyyətə qayıtmaqdır. Model-lər üçün bu, xüsusilə vacibdir, çünki onlar səssiz sınır: yeni model exception atmır, sadəcə pis qərarlar verir və bu, bəzən saatlar və ya günlər sonra üzə çıxır.

Rollback-in həqiqətən işləməsi üçün:

  • Əvvəlki saxlanılmalıdır. Hər model data versiyası, kod commit-i, və metric-lərlə birlikdə versiyalaşdırılır və bir əmrlə yenidən edilə bilir.
  • uyğun qalmalıdır. Yeni model üçün pipeline dəyişibsə, köhnə model köhnə gözləyir. Rollback model ilə kodunu birlikdə qaytarmalıdır.
  • Test edilməlidir. Heç vaxt sınanmamış rollback prosedurunun ehtiyac anında işləyəcəyinə arxayın olmaq olmaz.
  • Avtomatlaşdırılmalıdır. Gecə saat 3-də əl ilə addım-addım prosedur səhvə açıqdır.

Nümunə: retraining pipeline pis data günündən sonra yeni model edir və tövsiyələrin klik nisbəti 30% düşür. Prediction distribution alert-i işə düşür, on-call mühəndis bir əmrlə əvvəlki versiyaya qayıdır, sonra səbəbi sakit şəraitdə araşdırır.

Batch scoring rollback-i ən asan olan pattern-dir: əvvəlki proqnoz cədvəlini geri qaytarmaq kifayətdir. və isə rollback-ə ehtiyacı azaldır.

Əlaqəli terminlər: , , , ,

Shadow mode

Yeni model-in real production trafikini alıb proqnozlarını log etdiyi, amma heç bir qərara təsir etmədiyi rejimi.

Shadow mode-da yeni model cari model ilə yanaşı işləyir: hər request hər ikisinə gedir, amma istifadəçiyə yalnız cari model-in cavabı qaytarılır. Yeni model-in proqnozları sadəcə log edilir. Beləliklə, onu real trafikdə, real data ilə, istifadəçilərə heç bir risk yaratmadan yoxlamaq olur.

Shadow mode nəyi üzə çıxarır:

  • . Offline-da əla işləyən model production ilə fərqli davranırsa, bu, burada görünür.
  • Prediction distribution. Yeni model köhnədən nə qədər fərqli qərar verir? Fərqlər harada cəmlənir?
  • Əməliyyat göstəriciləri. Real yük altında , yaddaş, error rate.
  • Kənar hallar. Offline olmayan input-lar.

Nümunə: yeni fraud model-i bir həftə shadow mode-da işləyir. Məlum olur ki, o, köhnə model ilə 97% hallarda razılaşır, amma bir ödəniş provayderindən gələn əməliyyatların 40%-ni flag edir. Araşdırma göstərir ki, həmin provayder üçün bir serving-də həmişə null gəlir.

Məhdudiyyətləri: shadow mode biznes təsirini ölçmür, çünki model-in qərarları heç kimə göstərilmir. Recommendation kimi sistemlərdə istifadəçinin reaksiyasını görmək üçün sonra və lazımdır. Həmçinin hər request-də iki model işlədiyi üçün xərci artır.

Tipik ardıcıllıq: shadow mode, sonra , sonra və tam rollout.

Əlaqəli terminlər: , , ,

Supervised learning

Hər nümunəsi düzgün cavabla ( ilə) gələn data üzərində input-dan output-a funksiya öyrənən machine learning növü.

Supervised learning machine learning-in ən geniş yayılmış və kommersiya baxımından ən faydalı formasıdır. Sizin input-larınız və onlara uyğun düzgün output-larınız (label-lar) var; alqoritm onların arasındakı funksiyanı axtarır ki, yeni input üçün output-u proqnozlaşdıra bilsin.

İki əsas növü:

  • . Output kateqoriyadır: spam/spam deyil, hansı məhsul kateqoriyası.
  • Regression. Output ədəddir: qiymət, tələb, çatdırılma müddəti.

Digər paradiqmalarla fərq:

  • Unsupervised learning-də yoxdur; məqsəd datada struktur tapmaqdır (clustering, anomaly detection).
  • Reinforcement learning-də mühitdə hərəkət edir və reward əsasında policy öyrənir.

Tipik alqoritmlər: linear və logistic regression, , , , k-nearest neighbours, support vector machine-lər, .

Praktikada əsas çətinlik alqoritm deyil, datadır:

  • label-lar bahalıdır, gecikir və ya noisy-dir;
  • tərifi biznes məqsədini düzgün əks etdirməlidir;
  • prediction anında əlçatan olmalıdır;
  • evaluation şəraitini təqlid etməlidir.

Nümunə: keçmiş kredit müraciətləri və onların qaytarılıb-qaytarılmaması () üzərində model train edilir və yeni müraciətlər üçün default ehtimalını proqnozlaşdırır.

də texniki baxımdan supervised-dir: mətndəki növbəti və o, datanın özündən götürülür.

Əlaqəli terminlər: , , , ,

Target encoding

Categorical hər kateqoriyasını həmin kateqoriya üçün ortası ilə əvəz edən encoding; güclüdür, amma tələsidir.

Target encoding yüksək cardinality-li kateqoriyalar (poçt indeksi, mağaza ID, şəhər) üçün nəzərdə tutulub. One-hot encoding minlərlə sütun yaradardı; target encoding isə hər kateqoriyanı bir ədədlə, həmin kateqoriyadakı nümunələrin orta dəyəri ilə əvəz edir. Məsələn, "bu poçt indeksində churn nisbəti 0.12-dir".

Niyə güclüdür: tək sütun kateqoriya ilə target arasındakı əlaqəni birbaşa ötürür və tree-lər də, linear model-lər də onu asan istifadə edir.

Niyə təhlükəlidir: nümunənin öz onun hesablanmasına daxil olur. Kateqoriyada cəmi bir-iki nümunə varsa, demək olar ki, özüdür. Model bunu əzbərləyir, validation-da əla görünür, production-da isə uğursuz olur. Bu, klassik .

Düzgün tətbiq:

  • Out-of-fold hesablama. Training datasını fold-lara bölün; hər fold üçün ortalamaları yalnız digər fold-lar üzərində hesablayın.
  • Smoothing. Az nümunəli kateqoriyaların ortasını ümumi ortaya doğru çəkin.
  • Yalnız . Validation və test üçün encoding hesablanmış ortalamalarla aparılır.
  • Yeni kateqoriyalar. Production-da görünən yeni dəyərlər üçün ümumi orta istifadə edin.
  • Zaman. Temporal data-da yalnız prediction anından əvvəlki istifadə edin.

Naive və out-of-fold versiyaları validation-da müqayisə etsəniz, təsirini aydın görəcəksiniz.

Əlaqəli terminlər: , , ,

Test set

Model-in yekun keyfiyyətini qiymətləndirmək üçün sonda yalnız bir dəfə istifadə olunan, training və model seçimində iştirak etməyən data hissəsi.

Test set dürüst evaluation-ın son müdafiə xəttidir. O, model-in görmədiyi data üzərində qərəzsiz qiymətini verir, amma yalnız bir şərtlə: ona heç bir qərar qəbul edərkən baxılmayıbsa.

Tipik bölgü: training ~70%, validation ~15%, test ~15%. model-ləri müqayisə etmək və tune etmək üçündür; test set isə lap sonda, yekun rəqəmi bildirmək üçün.

Test set-i yanğınsöndürən kimi düşünün: ona yalnız bir dəfə müraciət edirsiniz. Nəticəyə baxıb model-i düzəldirsinizsə və yenidən yoxlayırsınızsa, test set ikinci çevrilir və yekun rəqəm nikbin olur. Hər "sadəcə bir yoxlama da" məlumat sızdırır.

Test set-i düzgün qurmaq:

  • Dünya necə bölünürsə, elə bölün. Model gələcəyi proqnozlaşdıracaqsa, test set zamana görə ən son dövr olmalıdır.
  • Group-based split. Eyni istifadəçinin və ya pasiyentin sətirləri yalnız bir tərəfdə olmalıdır.
  • Yeni region və ya məhsul üçün model qurursunuzsa, test set də onları təmsil etməlidir.

Yönləndirici sual: " anında nə yeni olacaq?" Test set eyni mənada yeni olmalıdır.

Statistik dürüstlük: 2000 nümunəlik test set-də 0.3%-lik fərq noise-dur. Confidence interval-ları bootstrap ilə hesablayın. Test score baseline-dan çox yüksəkdirsə, əvvəlcə axtarın.

Əlaqəli terminlər: , , , ,

Training set

Model-in fit etmək üçün istifadə olunan data hissəsi; model-in öyrəndiyi bütün nümunələr buradan gəlir.

Training set model-in birbaşa öyrəndiyi datadır: loss-u məhz bu nümunələr üzərində azaldır. Tipik olaraq bütün datanın təxminən 70%-ni təşkil edir; qalan hissə validation və üçün ayrılır.

Training set üzərindəki nəticə model-in nə qədər yaxşı əzbərlədiyini göstərir, barədə isə heç nə demir. Buna görə model-i heç vaxt training data üzərində qiymətləndirməyin. Bununla belə, training error faydalı diaqnostikadır: o yüksəkdirsə, var; training error aşağı, validation error yüksəkdirsə, .

Keyfiyyətli training set-in xüsusiyyətləri:

  • Təmsilçilik. Production-da model-in qarşılaşacağı halları əhatə edir; yalnız bir ölkədən və ya mövsümdən olan data başqa şəraitdə pis işləyəcək.
  • Düzgün label-lar. Səhv label-lar model-ə səhv öyrədir.
  • Point-in-time düzgünlük. Hər nümunənin yalnız həmin anda məlum olan məlumatdan hesablanıb.
  • Versiyalaşdırma. Model-in dəqiq hansı sətirlərlə train edildiyini bilmək üçün snapshot və ya saxlanılır.

Preprocessing addımları (scaler, imputer, target encoder) yalnız training set üzərində fit edilməli və sonra validation və test-ə tətbiq olunmalıdır. Əks halda yaranır.

Daha çox training data adətən ən etibarlı yaxşılaşmadır, amma yalnız data keyfiyyətli və model-in istifadə şəraitinə uyğun olduqda.

Əlaqəli terminlər: , , , ,

Training/serving skew

training zamanı və production-da zamanı fərqli hesablanması nəticəsində model-in səssizcə zəifləməsi.

Training/serving skew production model-lərinin ən geniş yayılmış və ən çətin aşkarlanan problemlərindən biridir. Training zamanı batch rejimində, tarixi data üzərində, çox vaxt SQL və ya notebook kodu ilə hesablanır. Serving zamanı isə həmin real-time, hər request üçün, başqa dildə və başqa komanda tərəfindən yazılmış kodla hesablanır. İki implementasiya arasındakı ən kiçik fərq model-in gördüyü input-u dəyişir.

Tipik günahkarlar:

  • kitabxana upgrade-i və ya mətn emalını dəyişir;
  • UTC istifadə edir, API isə yerli vaxt;
  • null training-də sıfır, serving-də isə "skip" kimi emal olunur;
  • tarixçə aggregate-i cari event-i əhatə edir, training-də isə yox;
  • kateqoriyaların lüğəti fərqli versiyadadır.

Bu problemin xüsusiyyəti səssizliyidir: heç bir error yoxdur, model sadəcə bir qədər pis proqnoz verir.

Çarələr:

  • Kodu paylaşın. Training üçün hesablayan eyni funksiya serving üçün də işləsin.
  • . bir dəfə təyin edib hər iki yola eyni dəyəri verir.
  • Serving-də hesablanmış log edin və sonrakı training-də məhz onlardan istifadə edin.
  • və müqayisə. Eyni nümunə üçün offline və online dəyərlərini müqayisə edin, fərqə alert qoyun.

Əlaqəli terminlər: , , , ,

Underfitting

Model-in datadakı real pattern-i tutmaq üçün həddindən artıq sadə olması: həm training, həm də test error yüksək olur.

Underfitting əksidir: model öyrənilməli olanı belə öyrənə bilmir. Onu tanımaq asandır: üzərindəki nəticə də zəifdir. Model training datasını izah edə bilmirsə, yeni data üzərində də yaxşı işləməyəcək.

Tipik səbəblər:

  • Az capacity. Qeyri-xətti əlaqəni linear model ilə tutmağa çalışmaq; çox dayaz tree.
  • Zəif . Lazımi məlumat ya datada yoxdur, ya da model-in görə biləcəyi formaya salınmayıb. Məsələn, timestamp-dan həftənin günü çıxarılmayıb və model həftəlik mövsümiliyi görmür.
  • Həddindən artıq . çox güclü cəzalandırılıb.
  • Yarımçıq training. kifayət qədər train edilməyib və ya learning rate uyğun deyil.

Çarələri:

  • daha yaxşı (adətən ən effektiv yol);
  • daha çox capacity: daha dərin tree, , daha böyük network;
  • zəiflətmək;
  • daha uzun training və ya learning rate-i tənzimləmək.

Nümunə: mənzil qiymətlərini yalnız otaq sayı ilə linear model-lə proqnozlaşdırmaq. Training error də, test error də yüksəkdir. Sahə, rayon və mərtəbə əlavə ediləndən sonra hər ikisi düşür.

Diqqət: underfitting-də daha çox data adətən kömək etmir; model onsuz da mövcud datadan istifadə edə bilmir. Daha çox data çarəsidir, underfitting-in yox. Diaqnozu training və validation error-larını yan-yana qoyaraq qoyun.

Əlaqəli terminlər: , , ,

Validation set

Model-ləri müqayisə etmək, tune etmək və training-i nə vaxt dayandırmağı seçmək üçün istifadə olunan ayrıca data hissəsi.

Validation set model qurulması zamanı qərar qəbul etmək üçün istifadə olunan datadır. Model onun üzərində train edilmir, amma siz ona baxaraq seçim edirsiniz: hansı alqoritm, hansı , hansı , training nə vaxt dayansın (), threshold nə olsun.

Tipik bölgü: training ~70%, validation ~15%, test ~15%. Kiçik dataset-lərdə tək validation split əvəzinə daha etibarlı nəticə verir.

Niyə ayrıca də lazımdır? Çünki validation set-ə baxaraq onlarla qərar verdikdə, model dolayı yolla ona uyğunlaşır. Yüz kombinasiyasından validation-da ən yaxşısını seçmək bir az da şans deməkdir, ona görə validation score yekun keyfiyyəti bir qədər şişirdir. bu nikbinliyi düzəldir.

Düzgün istifadə:

  • validation set ilə eyni mənbədən, amma şəraitini təqlid edən şəkildə bölünür (zaman sırası olan datada training-dən sonrakı dövr);
  • preprocessing statistikaları (scaling, imputation, ) validation datası daxil edilmədən hesablanır;
  • kimi əlavə model-lər də validation datası üzərində fit edilir, training-də yox.

Xəbərdarlıq əlaməti: validation score yüksəlir, amma production metric-i dəyişmir. Bu, adətən , validation set-ə və ya deməkdir.

Əlaqəli terminlər: , , , ,