Kas yra mašininio mokymosi perpildymas ir kaip to išvengti?



Šiame straipsnyje aptariamas mašininio mokymosi perpildymas, pateikiami pavyzdžiai ir kelios technikos, kurių reikia išvengti, kad būtų galima aptikti permokėjimą mašininio mokymosi modelyje.

Mašininio mokymosi modelio sukūrimas nėra tik duomenų pateikimas, yra daugybė trūkumų, turinčių įtakos bet kurio modelio tikslumui. Pernelyg tinka yra vienas iš tokių mašininio mokymosi trūkumų, kurie trukdo modelio tikslumui ir našumui. Šiame straipsnyje aptariamos šios temos:

Kas yra mašininio mokymosi perpildymas?

Teigiama, kad statistinis modelis yra per daug pritaikytas, kai pateikiame jam daug daugiau duomenų nei reikia. Kad tai būtų malonu, įsivaizduokite, kaip bandote įsitaisyti į per didelius drabužius.





Kai modelis talpina daugiau duomenų, nei jam iš tikrųjų reikia, jis pradeda gaudyti triukšmingus duomenis ir netikslius duomenų duomenis. Dėl to sumažėja modelio efektyvumas ir tikslumas. Pažvelkime į kelis perteklinio pritaikymo pavyzdžius, kad suprastume, kaip tai iš tikrųjų vyksta.



Pertvarkymo pavyzdžiai

1 pavyzdys

Jei paimsime paprasto pavyzdį tiesinė regresija , duomenų mokymas yra apie minimalių išlaidų nustatymą tarp geriausiai tinkančios linijos ir duomenų taškų. Norint sužinoti optimalų tinkamumą ir sumažinti išlaidas, reikia atlikti keletą kartojimų. Čia atsiranda perteklinis pritaikymas.



Aukščiau esančiame paveikslėlyje matoma linija gali suteikti labai efektyvų naujo duomenų taško rezultatą. Pertvarkymo atveju, kai duomenų rinkinyje vykdome mokymo algoritmą, leidžiame sumažinti išlaidas kiekvienam kartojimui.

Tai paleisti per ilgai reikš mažesnes išlaidas, tačiau taip pat tiks triukšmingi duomenų rinkinio duomenys. Rezultatas atrodys panašiai kaip žemiau pateiktoje diagramoje.

Tai gali atrodyti efektyvu, bet taip nėra. Pagrindinis algoritmo, pvz., Tikslas tiesinė regresija yra rasti dominuojančią tendenciją ir atitinkamai pritaikyti duomenų taškus. Tačiau šiuo atveju eilutė tinka visiems duomenų taškams, o tai nėra svarbu modelio efektyvumui prognozuojant optimalius naujų įvedimo duomenų taškų rezultatus.

Dabar pasvarstykime apie aprašomesnį pavyzdį, naudodamiesi problemos teiginiu.

2 pavyzdys

Problemos pareiškimas: Apsvarstykime, ar norime nuspėti, ar futbolininkas išleis vietą į 1 lygio futbolo klubą, atsižvelgdamas į savo dabartinį pasirodymą 2 lygio lygoje.

Dabar įsivaizduokite, kad mokome ir pritaikome modelį su 10 000 tokių žaidėjų, kurių rezultatas. Kai bandysime numatyti pirminio duomenų rinkinio rezultatus, tarkime, kad mes gavome 99% tikslumą. Tačiau kito duomenų rinkinio tikslumas siekia apie 50 proc. Tai reiškia, kad modelis nėra gerai apibendrintas pagal mūsų mokymo duomenis ir nematytus duomenis.

Taip atrodo perpildymas. Tai labai dažna mašininio mokymosi ir net duomenų mokslo problema. Dabar supraskime signalą ir triukšmą.

Signalas ir triukšmas

Prognozuojančiame modeliavime signalas reiškia tikrąjį pagrindinį modelį, kuris padeda modeliui išmokti duomenis. Kita vertus, triukšmas nėra svarbus ir atsitiktiniai duomenys duomenų rinkinyje. Norėdami suprasti triukšmo ir signalo sąvoką, paimkime realaus gyvenimo pavyzdį.

Tarkime, kad norime modeliuoti suaugusiųjų amžių ir raštingumą. Jei imsime labai didelę dalį gyventojų, rasime aiškų ryšį. Tai yra signalas, o triukšmas trukdo signalui. Jei tą patį darysime ir vietos gyventojams, santykiai taps purvini. Tam įtakos turėtų pašaliniai rodikliai ir atsitiktinumas, pvz., Vienas suaugusysis anksti nuėjo į mokyklą arba kai kuris suaugęs žmogus negalėjo sau leisti mokytis ir pan.

Kalbant apie triukšmą ir signalą mašininio mokymosi požiūriu, geras mašinų mokymosi algoritmas automatiškai atskirs signalus nuo triukšmo. Jei algoritmas yra per daug sudėtingas ar neefektyvus, jis gali išmokti ir triukšmą. Vadinasi, per didelis modelio pritaikymas. Taip pat supraskime nepakankamą mokymąsi mašinose.

Kas yra nepakankamai tinkama?

Kad išvengtume perpildymo, mokymą galėtume nutraukti ankstesniame etape. Tačiau tai taip pat gali lemti tai, kad modelis negalės pakankamai mokytis iš mokymo duomenų, todėl gali būti sunku užfiksuoti dominuojančią tendenciją. Tai žinoma kaip nepakankamai tinkama. Rezultatas yra tas pats, kaip per didelis tinkamumas, neefektyvumas prognozuojant rezultatus.

Dabar, kai supratome, kas iš tikrųjų yra mašininio mokymosi nepakankamumas ir perpildymas, pabandykime suprasti, kaip galime aptikti perteklinį pritaikymą mašininiame mokyme.

Kaip nustatyti perteklių?

Pagrindinis iššūkis, susijęs su per dideliu montavimu, yra įvertinti mūsų modelio veikimo tikslumą naudojant naujus duomenis. Mes negalėtume įvertinti tikslumo, kol jo iš tikrųjų neišbandysime.

Norėdami išspręsti šią problemą, pradinius duomenų rinkinius galime padalyti į atskirus mokymo ir testų duomenų rinkinius. Taikydami šią techniką, mes iš tikrųjų galime apytiksliai įvertinti, kaip gerai mūsų modelis veiks su naujais duomenimis.

Supraskime tai su pavyzdžiu, įsivaizduokite, kad treniruočių rinkinyje gauname daugiau nei 90 procentų tikslumą, o bandymų rinkinyje - 50 procentų tikslumą. Tada automatiškai tai bus raudona modelio vėliava.

Kitas būdas nustatyti per didelius įrenginius yra pradėti nuo supaprastinto modelio, kuris bus naudojamas kaip etalonas.

Taikydami šį metodą, jei išbandysite sudėtingesnius algoritmus, galėsite suprasti, ar papildomo modelio sudėtingumo netgi verta. Jis taip pat žinomas kaip „Occam“ skustuvo testas , ji iš esmės pasirenka supaprastintą modelį, jei dviejų modelių veikimas yra panašus. Nors perteklių nustatymas yra gera praktika,tačiau yra keletas būdų, kaip užkirsti kelią ir per dideliam montavimui. Pažvelkime į tai, kaip galime išvengti mašininio mokymosi perpildymo.

Kaip išvengti mašininio mokymosi pertekliaus?

Yra keletas būdų, kaip išvengti mašininio mokymosi perpildymo, išvardytų toliau.

  1. Kryžminis patvirtinimas

  2. Treniruotės su daugiau duomenų

  3. Funkcijų šalinimas

  4. Ankstyvas sustojimas

  5. Reguliavimas

  6. Surinkimas

1. Kryžminis patvirtinimas

Viena iš galingiausių funkcijų, leidžiančių išvengti perviršio / išvengti jo, yra kryžminis patvirtinimas. Idėja yra naudoti pradinius treniruočių duomenis, kad būtų sukurtos mažos traukinio bandymo dalys, o tada naudokite šiuos padalijimus, kad sureguliuotumėte savo modelį.

Atliekant standartinį k kartų tikrinimą, duomenys suskirstomi į k pogrupius, dar vadinamus klostėmis. Po to algoritmas mokomas iteratyviai ant k-1 raukšlių, o likusias klostes panaudojant kaip testo rinkinį, dar vadinamą „holdout fold“.

Kryžminis patvirtinimas padeda mums suderinti hiperparametrus tik su originaliu treniruočių rinkiniu. Iš esmės bandymų rinkinys laikomas atskirai, kaip tikras nematytas duomenų rinkinys galutiniam modeliui pasirinkti. Vadinasi, apskritai vengiant perpildymo.

2. Treniruotė, turinti daugiau duomenų

Ši technika gali neveikti kiekvieną kartą, kaip mes taip pat aptarėme aukščiau pateiktame pavyzdyje, kai mokymai su dideliu gyventojų skaičiumi padeda modeliui. Iš esmės tai padeda modeliui geriau nustatyti signalą.

Tačiau kai kuriais atvejais padidėję duomenys taip pat gali reikšti, kad modelis turi daugiau triukšmo. Mokydami modelį, kuriame yra daugiau duomenų, turime įsitikinti, kad duomenys yra švarūs ir be atsitiktinumo ir nenuoseklumo.

3. Funkcijų pašalinimas

Nors kai kurie algoritmai turi automatinį funkcijų pasirinkimą. Nemažai daliai tų, kurie neturi integruoto funkcijų pasirinkimo, mes galime rankiniu būdu pašalinti keletą nesusijusių funkcijų iš įvesties funkcijų, kad pagerintume apibendrinimą.

Vienas iš būdų tai padaryti yra išvada, kaip bruožas tinka modeliui. Tai gana panašu į kodo derinimą eilutėmis.

Jei bruožas negali paaiškinti modelio tinkamumo, galime paprasčiausiai identifikuoti tuos bruožus. Geram atspirties taškui galime naudoti net keletą funkcijų pasirinkimo euristikos.

4. Ankstyvas sustojimas

kaip pakeisti skaičių

Kai modelis treniruojasi, galite iš tikrųjų įvertinti kiekvieno modelio našumą pagal kiekvieną kartojimą. Tai galime padaryti iki taško, kai pakartojimai pagerina modelio našumą. Po to modelis perpildo mokymo duomenis, nes apibendrinimas silpnėja po kiekvienos iteracijos.

Taigi, ankstyvas sustabdymas reiškia mokymo proceso sustabdymą, kol modelis praeina tašką, kuriame modelis pradeda perpildyti mokymo duomenis. Ši technika dažniausiai naudojama gilus mokymasis .

5. Reguliavimas

Iš esmės tai reiškia, kad dirbtinai priverčiate savo modelį būti paprastesniu, naudojant platesnį metodų spektrą. Tai visiškai priklauso nuo besimokančiojo tipo, kurį naudojame. Pavyzdžiui, galime genėti a , naudokite iškritimą a neuroninis tinklas arba pridėkite baudos parametrą prie sąnaudų funkcijos regresijoje.

Gana dažnai reguliavimas taip pat yra hiperparametras. Tai reiškia, kad jį taip pat galima suderinti atliekant kryžminį patvirtinimą.

6. Ansamblis

Ši technika iš esmės sujungia skirtingų mašininio mokymosi modelių prognozes. Du iš labiausiai paplitusių ansamblio būdų yra išvardyti žemiau:

  • Maišais bandoma sumažinti modelių perpildymo galimybę

  • Stiprinant bandymus pagerinti paprastesnių modelių prognozuojamą lankstumą

Nors jie abu yra ansamblio metodai, požiūris visiškai prasideda priešingomis kryptimis. „Bagging“ naudoja sudėtingus bazinius modelius ir bando išlyginti jų prognozes, o padidindami naudoja paprastus bazinius modelius ir bando padidinti jų bendrą sudėtingumą.

Kas yra tinkamumo gerumas?

Atliekant statistinį modeliavimą, tinkamumo gerumas nurodo, kaip tiksliai rezultatai ar numatomos vertės sutampa su pastebėtomis ar tikrosiomis vertėmis.Modelis, kuris išmoko triukšmo vietoj signalo, yra per daug sumontuotas, nes jis tiks treniruotės duomenų rinkiniui, bet bus prastesnis, palyginti su nauju duomenų rinkiniu.

Kompromisas tarp šališkumo ir dispersijos

Tiek dispersija, tiek šališkumas yra prognozavimo klaidų formos . Kompromisas tarp didelio dispersijos ir didelio šališkumo yra labai svarbi statistika ir mašininio mokymosi sąvoka. Tai yra viena sąvoka, veikianti visus prižiūrimus mašininio mokymosi algoritmus.

Kompensacija dėl šališkumo ir dispersijos turi labai didelę įtaką nustatant bet kokio mašininio mokymosi modelio sudėtingumą, trūkumus ir tinkamumą.

Šališkumas

Tai ne kas kita, kaip skirtumas tarp numatomų verčių ir faktinių ar tikrųjų modelio verčių. Modeliui ne visada lengva mokytis iš gana sudėtingų signalų.

Įsivaizduokime, kaip tinka a tiesinė regresija prie modelio su netiesiniais duomenimis. Kad ir kaip efektyviai modelis išmoktų stebėjimus, jis kreivių efektyviai nemodeliuos. Tai žinoma kaip nepakankamai tinkama.

Dispersija

Tai nurodo modelio jautrumą konkretiems mokymo duomenų rinkiniams. Didelio dispersijos algoritmas sukurs keistą modelį, kuris smarkiai skiriasi nuo treniruočių rinkinio.

Įsivaizduokite algoritmą, kuris tinka nevaržomam ir itin lanksčiam modeliui, jis taip pat mokysis iš triukšmo treniruočių rinkinyje, sukeliančio perteklinį pritaikymą.

Šališkumo ir variacijos kompromisas

Mašininio mokymosi algoritmo negalima suvokti kaip vienkartinio modelio mokymo metodo, o tai yra pasikartojantis procesas.

Mažo dispersijos ir didelio šališkumo algoritmai yra ne tokie sudėtingi, turintys paprastą ir standžią struktūrą.

  • Jie mokys modelius, kurie yra nuoseklūs, bet vidutiniškai netikslūs.

  • Tai apima linijinius arba parametrinius algoritmus, tokius kaip regresija, ir kt.

Didelio dispersijos ir mažo šališkumo algoritmai paprastai būna sudėtingesni, turintys lanksčią struktūrą.

  • Jie mokys nenuoseklius, bet vidutiniškai tikslius modelius.

  • Tai apima netiesinius arba neparametrinius algoritmus, tokius kaip , ir kt.

Taip pateksime į šio straipsnio pabaigą, kur sužinojome, kad mašininis mokymasis yra per didelis, ir apie įvairias technikas, kaip to išvengti. Tikiuosi, kad jums aišku viskas, kas su jumis buvo pasidalinta šioje pamokoje.

Jei jums pasirodė aktualus šis straipsnis „Overfitting In Machine Learning“, peržiūrėkite patikima internetinė mokymosi įmonė, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą, pasklido po visą pasaulį.

Mes norime jums padėti kiekviename žingsnyje ir parengti mokymo programą, skirtą studentams ir specialistams, norintiems būti . Kursas sukurtas tam, kad galėtumėte pradėti pažvelgti į „Python“ programavimą ir išmokyti pagrindines ir pažangiausias „Python“ koncepcijas kartu su įvairiomis Kaip , ir kt.

Jei kiltų klausimų, nedvejodami užduokite visus klausimus komentarų skiltyje „Perpildymas mašininiame mokyme“, ir mūsų komanda mielai atsakys.