Regularizacija ir overfitting: praktinės technikos geresnei modelių generalizacijai
Išsamus gidas apie reguliarizacijos technikas overfitting mažinimui: L1, L2, Elastic Net, dropout, early stopping ir duomenų augmentacija. Sužinokite, kaip pagerinti mašininio mokymosi modelių generalizaciją.

Overfitting – viena dažniausių ir pavojingiausių problemų mašininio mokymosi projektuose, kai modelis puikiai įsimena treniravimo duomenis, bet nesugeba tiksliai prognozuoti naujų, nematytų pavyzdžių.
Reguliarizacija (angl. Regularization) – tai sistemingų technikų rinkinys, skirtas sumažinti modelio sudėtingumą, suvaldyti parametrus ir pagerinti bendrą generalizaciją realiame pasaulyje.
Kas yra overfitting ir kodėl jis pavojingas?
Overfitting atsiranda tuomet, kai modelis pernelyg prisitaiko prie treniravimo duomenų triukšmo, atsitiktinių svyravimų ir specifinių artefaktų.
Toks modelis demonstruoja labai mažą paklaidą treniravimo aibėje, tačiau žymiai prastesnius rezultatus validavimo ir testavimo rinkiniuose, nes išmoksta ne bendrus dėsningumus, o konkrečias detales.
Praktikoje tai reiškia klaidingas prognozes, prastesnius verslo sprendimus ir išaugusias rizikas – ypač tokiose srityse kaip medicininė diagnostika, kredito rizikos vertinimas ar anomalijų aptikimas.
Pagrindiniai overfitting požymiai
- Treniravimo paklaida labai maža, bet validavimo ar testavimo paklaida – gerokai didesnė.
- Didėjant modelio sudėtingumui (daugiau sluoksnių, neuronų, medžių gylio) treniravimo rezultatai gerėja, tačiau validavimo – blogėja.
- Modelis jautrus nedideliems duomenų pokyčiams ir nestabilus (nedidelis duomenų pertvarkymas radikaliai keičia prognozes).
Kas yra regularizacija?
Reguliarizacija – tai metodų grupė, kurių esmė yra įvesti papildomą apribojimą arba baudos (penalty) terminą į nuostolių funkciją, kad modelio parametrai išliktų paprastesni ir stabilesni.
Vietoje to, kad būtų minimizuojama vien treniravimo paklaida, optimizuojama išplėsta funkcija, kuri apima tiek klaidos, tiek sudėtingumo baudos komponentą.
Reguliarizacijos idėjos esmė
- Kontroliuoti svorių dydį ir struktūrą, kad modelis nesiektų „prispausti“ kiekvieno taško.
- Sukurti subalansuotą kompromisą tarp tikslumo treniravimo rinkinyje ir bendro paprastumo.
- Pagerinti modelio atsparumą triukšmui ir išvengti per didelio pritaikymo konkrečiai duomenų imčiai.
L2 regularizacija (Ridge, weight decay)
L2 regularizacija – viena populiariausių technikų, taikoma ir klasikiniuose modeliuose (regresija, logistinė regresija), ir neuroniniuose tinkluose.
Šios technikos principas – prie nuostolių funkcijos pridėti baudos terminą, lygų svorių kvadratų sumai, padaugintai iš reguliarizacijos koeficiento.
Matematinė intucija
Jei pradinė nuostolių funkcija pažymima kaip \( L(w) \), tai L2 reguliarizacija formaliai atrodo taip:
\( L_{reg}(w) = L(w) + \lambda \sum_i w_i^2 \)
Čia \( \lambda \) – reguliarizacijos stiprumo hiperparametras, kuris reguliuoja, kiek griežtai baudžiami dideli svoriai.
Praktinė L2 nauda
- Mažina svorių reikšmes, bet jų nenustumia į nulį – visi parametrai išlieka, tik tampa „švelnesni“.
- Sukuria lygesnes sprendimų ribas ir mažina modelio jautrumą pavieniams, netipiniams taškams.
- Ypač efektyvi esant daugeliui stipriai koreliuotų požymių ir taikant gradientinio nusileidimo optimizaciją.
L1 regularizacija (Lasso)
L1 regularizacija vietoje svorių kvadratų naudoja absoliučias svorių reikšmes, todėl skatina dalį koeficientų visiškai nunulėti.
Pridėjus L1 baudos terminą, nuostolių funkcija praplečiama taip, kad optimizavimo metu daugelis nereikšmingų požymių iš esmės „pašalinami“ iš modelio.
Matematinė forma
Jei \( L(w) \) – pradinė nuostolių funkcija, L1 regularizuota funkcija gali būti aprašoma taip:
\( L_{reg}(w) = L(w) + \lambda \sum_i |w_i| \)
Dėl absoliučios vertės savybės optimizacijos metu daug koeficientų traukiami tiksliai į nulį.
L1 privalumai ir paskirtis
- Atlieka įmontuotą požymių atranką – nereikšmingų kintamųjų svoriai tampa lygūs nuliui.
- Padeda kovoti su overfitting, kai požymių daug, o duomenų – santykinai mažai.
- Gali sukurti lengviau interpretuojamus modelius, nes išlieka tik nedidelis požymių pogrupis.
Elastic Net: L1 ir L2 derinys
Elastic Net reguliarizacija sujungia L1 ir L2 privalumus, sumaišydama abu baudos terminus vienoje nuostolių funkcijoje.
Tokiu būdu vienu metu pasiekiama ir požymių atranka, ir svorių stabilizavimas, tai ypač naudinga esant daug tarpusavyje koreliuotų kintamųjų.
Kodėl verta rinktis Elastic Net?
- Jei L1 agresyviai panaikina per daug požymių, L2 komponentas amortizuoja šį efektą.
- Didesniam stabilumui ir geresniam balanso išlaikymui tarp retumo (sparsity) ir tikslumo.
- Dažnai veikia patikimiau nei vien L1, kai požymių skaičius labai didelis ir jie koreliuoti.
Regularizacija neuroniniuose tinkluose
Giliojo mokymosi modeliai turi milžinišką parametrų skaičių, todėl be reguliarizacijos praktiškai neišvengiamas overfitting.
Be klasikinių L1 ir L2 metodų, čia plačiai naudojamos ir architektūrinės bei treniravimo technikos, veikiančios kaip reguliarizatoriai.
Dropout
Dropout technika atsitiktinai „išjungia“ (nustato į nulį) dalį neuronų aktyvacijų treniravimo metu.
Tokiu būdu tinklas negali remtis vien keliais „stipriais“ neuronais ir priverčiamas išmokti tvirtesnes, labiau paskirstytas reprezentacijas.
- Dropout dažniausiai taikomas paslėptuose sluoksniuose, kartais ir įėjimo sluoksnyje.
- Validavimo ir testavimo metu visi neuronai aktyvūs, o svoriai atitinkamai mastuojami.
Batch Normalization ir kitos technikos
Batch Normalization, nors ir nėra klasikinė reguliarizacija, dažnai veikia kaip netiesioginė stabilizavimo priemonė, sumažinanti modelio jautrumą svorių inicializacijai ir mokymosi greičiui.
Taip pat reguliarizuojančiai veikia duomenų augmentacija (ypač vaizduose ir garse), ankstyvas sustabdymas (early stopping) ir tinkamai parinktas modelio architektūros paprastumas.
Early stopping kaip reguliarizacijos forma
Early stopping – tai metodas, kai treniravimo procesas nutraukiamas tada, kai validavimo aibėje modelio kokybė nustoja gerėti ir pradeda blogėti.
Praktikoje tai apsaugo nuo situacijos, kai modelis po optimalaus taško toliau „prisitaiko“ prie treniravimo duomenų triukšmo ir taip išbalansuoja generalizaciją.
Kaip taikyti early stopping?
- Treniravimo metu stebėti nuostolius ir metrikas (pvz., tikslumą) validavimo rinkinyje.
- Apibrėžti „kantrybės“ (patience) parametrą – kiek epochų galima laukti, kol rodikliai pagerės.
- Jei per nurodytą epochų skaičių validavimo rodikliai negerėja, treniravimą sustabdyti ir naudoti geriausią išsaugotą modelio versiją.
Duomenų lygmens reguliarizacija
Svarbi reguliarizacijos dalis – ne tik matematinė bauda nuostolių funkcijoje, bet ir sąmoningas darbas su duomenimis.
Gerai paruošti, subalansuoti ir praturtinti duomenys sumažina modelio polinkį išmokti nereikšmingus atsitiktinius dėsningumus.
Duomenų augmentacija
- Vaizduose atliekami pasukimai, perkėlimai, veidrodiniai atspindžiai, ryškumo korekcijos.
- Tekste galima taikyti sinonimų keitimą, lengvą triukšmo įterpimą, sakinio struktūros variacijas.
- Laiko eilutėse – triukšmo injekcija, laiko poslinkiai, langų persidengimas ir kt.
Reguliarizacijos hiperparametrų parinkimas
Reguliarizacija visada susijusi su hiperparametrais, dažniausiai žymimais \( \lambda \), kurie nusako baudos stiprumą.
Per mažas \( \lambda \) gali neapsaugoti nuo overfitting, o per didelis – pernelyg supaprastinti modelį ir sukelti underfitting.
Optimizavimo strategijos
- Kryžminė validacija (k-fold cross-validation) – patikimas būdas įvertinti, kokios \( \lambda \) reikšmės veikia geriausiai įvairiuose duomenų pogrupiuose.
- Tinklelių (grid search) arba atsitiktinė (random search) paieška, taip pat bayesinė optimizacija.
- Derinimas kartu su kitais hiperparametrais: mokymosi greičiu, tinklo gyliu, sluoksnių plotme.
Praktiniai patarimai diegiant regularizaciją
Efektyvi reguliarizacija prasideda nuo tinkamo duomenų padalijimo į treniravimo, validavimo ir testavimo rinkinius.
Tik turint aiškiai atskirtus duomenis galima objektyviai stebėti, kaip reguliarizacijos technikos veikia modelio generalizaciją.
Rekomenduojamas darbo eiliškumas
- Sukurti bazinį, ne per daug sudėtingą modelį ir išmatuoti jo rezultatus be reguliarizacijos.
- Pridėti L2 (arba L1/Elastic Net) reguliarizaciją ir sistemingai keisti \( \lambda \).
- Prireikus, įtraukti dropout neuroniniuose tinkluose ir ankstyvą sustabdymą.
- Eksperimentuoti su duomenų augmentacija ir požymių inžinerija.
- Dokumentuoti kiekvieną žingsnį, kad būtų galima palyginti versijas ir pasirinkti geriausią.
Išvados
Overfitting nėra neišvengiama problema – ją galima suvaldyti derinant kelias reguliariazacijos technikas ir sąmoningai valdant modelio sudėtingumą.
Pasitelkus L1, L2, Elastic Net, dropout, early stopping ir duomenų augmentaciją, galima pasiekti gerokai stabilesnius, patikimesnius ir realiame pasaulyje geriau veikiančius modelius.
Ilgalaikėje perspektyvoje investicijos į reguliarizaciją atsiperka didesniu prognozių tikslumu, mažesnėmis rizikomis ir lengviau prižiūrimais, interpretuojamais sprendimais.


