logo

GBM mašininiame mokyme

Mašininis mokymasis yra viena iš populiariausių technologijų, skirtų įvairioms sudėtingoms regresijos ir klasifikavimo užduotims kurti nuspėjamuosius modelius. Gradiento didinimo mašina (GBM) yra laikomas vienu iš galingiausių didinimo algoritmų.

GBM mašininiame mokyme

Nors mašininiam mokymuisi naudojama tiek daug algoritmų, algoritmų tobulinimas tapo įprastas mašininio mokymosi bendruomenėje visame pasaulyje. Stiprinimo technika vadovaujasi mokymosi ansambliu koncepcija, todėl ji sujungia kelis paprastus modelius (silpnus mokinius arba bazinius vertintojus), kad gautų galutinį rezultatą. GBM taip pat naudojamas kaip ansamblinis mašininio mokymosi metodas, kuris silpnus besimokančius paverčia stipriais besimokančiaisiais. Šioje temoje „GBM mašininiame mokyme“ aptarsime gradiento mašininio mokymosi algoritmus, įvairius mašininio mokymosi patobulinimo algoritmus, GBM istoriją, kaip jis veikia, įvairias GBM vartojamas terminijas ir tt Tačiau prieš pradėdami, pirmiausia supraskite padidinimo koncepciją ir įvairius mašininio mokymosi patobulinimo algoritmus.

Kas yra mašininio mokymosi skatinimas?

Padidinimas yra vienas iš populiarių mokymosi ansamblio modeliavimo metodų, naudojamų kuriant stiprius klasifikatorius iš įvairių silpnų klasifikatorių. Pradedama nuo pirminio modelio kūrimo iš turimų mokymo duomenų rinkinių, tada identifikuoja pagrindiniame modelyje esančias klaidas. Nustačius klaidą, sukuriamas antrinis modelis, o toliau šiame procese įvedamas trečiasis modelis. Tokiu būdu šis daugiau modelių įvedimo procesas tęsiamas tol, kol gauname visą mokymo duomenų rinkinį, pagal kurį modelis numato teisingai.

AdaBoost (Adaptive boosting) buvo pirmasis stiprinimo algoritmas, sujungęs įvairius silpnus klasifikatorius į vieną stiprų klasifikatorių mašininio mokymosi istorijoje. Jis visų pirma skirtas spręsti klasifikavimo užduotis, tokias kaip dvejetainis klasifikavimas.

Algoritmų stiprinimo žingsniai:

Yra keli svarbūs algoritmo patobulinimo žingsniai:

  • Apsvarstykite duomenų rinkinį, turintį skirtingus duomenų taškus, ir inicijuokite jį.
  • Dabar kiekvienam duomenų taškui suteikite vienodą svorį.
  • Tarkime, kad šis svoris yra modelio įvestis.
  • Nustatykite neteisingai klasifikuotus duomenų taškus.
  • 4 veiksme padidinkite duomenų taškų svorį.
  • Jei gausite tinkamą išvestį, nutraukite šį procesą, kitaip dar kartą atlikite 2 ir 3 veiksmus.

Pavyzdys:

Tarkime, turime tris skirtingus modelius su jų prognozėmis ir jie veikia visiškai skirtingai. Pavyzdžiui, tiesinės regresijos modelis rodo tiesinį duomenų ryšį, o sprendimų medžio modelis bando užfiksuoti duomenų netiesiškumą, kaip parodyta paveikslėlyje žemiau.

GBM mašininiame mokyme

Be to, užuot naudoję šiuos modelius atskirai rezultatui prognozuoti, jei juos naudosime serijų ar derinių pavidalu, gauname modelį su teisinga informacija nei visi baziniai modeliai. Kitaip tariant, užuot naudoję kiekvieno modelio individualias prognozes, jei naudotume vidutinį šių modelių prognozę, galėtume surinkti daugiau informacijos iš duomenų. Tai vadinama mokymusi ansambliu, o stiprinimas taip pat grindžiamas mašininio mokymosi ansambliais.

Klaida

Mašininio mokymosi algoritmų tobulinimas

Visų pirma yra 4 mašininio mokymosi didinimo algoritmai. Tai yra tokia:

    Gradiento didinimo mašina (GBM) Extreme Gradient Boosting Machine (XGBM) Lengvas GBM CatBoost

Kas yra GBM mašininiame mokyme?

„Gradient Boosting Machine“ (GBM) yra vienas iš populiariausių mašininio mokymosi į priekį mokymosi ansamblio metodų. Tai galinga technika kuriant regresijos ir klasifikavimo užduočių nuspėjamuosius modelius.

GBM padeda mums gauti nuspėjamąjį modelį silpnų prognozavimo modelių, tokių kaip sprendimų medžiai, forma. Kai sprendimų medis veikia kaip silpnas besimokantis, gautas algoritmas vadinamas gradiento padidintais medžiais.

Tai leidžia mums sujungti įvairių besimokančiųjų modelių prognozes ir sukurti galutinį nuspėjamąjį modelį, turintį teisingą prognozę.

Bet čia gali kilti vienas klausimas, jei taikome tą patį algoritmą, kaip keli sprendimų medžiai gali suteikti geresnes prognozes nei vienas sprendimų medis? Be to, kaip kiekvienas sprendimų medis fiksuoja skirtingą informaciją iš tų pačių duomenų?

: Java
GBM mašininiame mokyme

Taigi, atsakymas į šiuos klausimus yra toks, kad kiekvieno sprendimų medžio mazgai pasirenka skirtingą funkcijų poaibį, kad pasirinktų geriausią skaidymą. Tai reiškia, kad kiekvienas medis elgiasi skirtingai, todėl fiksuoja skirtingus signalus iš tų pačių duomenų.

Kaip veikia GBM?

Paprastai dauguma prižiūrimų mokymosi algoritmų yra pagrįsti vienu nuspėjamuoju modeliu, pvz., tiesine regresija, nubaustos regresijos modeliu, sprendimų medžiais ir kt. Tačiau yra keletas prižiūrimų ML algoritmų, kurie priklauso nuo įvairių modelių derinio kartu per ansamblį. Kitaip tariant, kai keli baziniai modeliai prisideda prie savo prognozių, visų prognozių vidurkis pritaikomas naudojant didinimo algoritmus.

Gradiento didinimo mašinos susideda iš 3 elementų:

  • Praradimo funkcija
  • Silpni besimokantys
  • Priedo modelis

Išsamiai supraskime šiuos tris elementus.

1. Praradimo funkcija:

Nors mašininiame mokyme yra didelė Loss funkcijų šeima, kurią galima naudoti priklausomai nuo sprendžiamų užduočių tipo. Nuostolių funkcijos naudojimas įvertinamas pagal specifinių sąlyginio skirstinio charakteristikų, tokių kaip tvirtumas, poreikį. Atlikdami užduotį naudodami praradimo funkciją, turime nurodyti praradimo funkciją ir funkciją, skirtą atitinkamam neigiamam gradientui apskaičiuoti. Kai tik gausime šias dvi funkcijas, jas bus galima lengvai įdiegti į gradiento didinimo mašinas. Tačiau GBM algoritmams jau buvo pasiūlytos kelios praradimo funkcijos.

Praradimo funkcijos klasifikacija:

Atsižvelgiant į atsako kintamojo y tipą, nuostolių funkcija gali būti suskirstyta į skirtingus tipus taip:

    Nuolatinis atsakas, y ∈ R:
    • Gauso L2 praradimo funkcija
    • Laplaso L1 praradimo funkcija
    • Huberio praradimo funkcija, nurodyta δ
    • Kvantilės praradimo funkcija, nurodyta α
    Kategorinis atsakymas, y ∈ {0, 1}:
    • Binominė praradimo funkcija
    • Adaboost nuostolių funkcija
    Kitos atsako kintamųjų šeimos:
    • Išgyvenimo modelių praradimo funkcijos
    • Praradimo funkcijos skaičiuoja duomenis
    • Individualizuotos praradimo funkcijos

2. Silpnas besimokantis:

Silpni besimokantys asmenys yra pagrindiniai besimokančiųjų modeliai, kurie mokosi iš praeities klaidų ir padeda sukurti tvirtą nuspėjamojo modelio dizainą, kad būtų sustiprinti mašininio mokymosi algoritmai. Paprastai sprendimų medžiai veikia kaip silpni besimokantieji tobulinant algoritmus.

Padidinimas apibrėžiamas kaip sistema, kuri nuolat dirba, kad pagerintų bazinių modelių išvestį. Daugelis gradiento didinimo programų leidžia „prijungti“ įvairias silpnų besimokančiųjų klases. Taigi sprendimų medžiai dažniausiai naudojami silpniems (baziniams) besimokantiesiems.

Kaip mokyti silpnus besimokančius:

Mašininis mokymasis naudoja mokymo duomenų rinkinius, kad apmokytų bazinius besimokančiuosius ir, remiantis ankstesnio besimokančiojo prognoze, pagerina našumą, sutelkdamas dėmesį į mokymo duomenų eilutes, kuriose ankstesniame medyje buvo didžiausių klaidų arba likučių. Pvz. seklūs medžiai laikomi silpnai besimokančiais sprendimų medžiais, nes juose yra keletas skilimų. Paprastai stiprinimo algoritmuose dažniausiai naudojami medžiai, turintys iki 6 skilimų.

Žemiau pateikiama silpno besimokančiojo mokymo, siekiant pagerinti savo našumą, seka, kai kiekvienas medis yra sekoje su ankstesnio medžio likučiais. Be to, mes pristatome kiekvieną naują medį, kad jis galėtų pasimokyti iš ankstesnio medžio klaidų. Tai yra tokia:

  1. Apsvarstykite duomenų rinkinį ir įtraukite į jį sprendimų medį.
    F1(x)=y
  2. Pritaikykite kitą sprendimų medį su didžiausiomis ankstesnio medžio paklaidomis.
    h1(x)=y?F1(x)
  3. Pridėkite šį naują medį prie algoritmo, pridėdami ir 1, ir 2 žingsniuose.
    F2(x)=F1(x)+h1(x)
  4. Vėl suderinkite kitą sprendimų medį su ankstesnio medžio likučiais.
    h2(x)=y?F2(x)
  5. Pakartokite tą patį, ką padarėme 3 veiksme.
    F3 (x) = F2 (x) + h2 (x)

Tęskite šį procesą, kol koks nors mechanizmas (t. y. kryžminis patvirtinimas) lieps mums sustoti. Galutinis modelis čia yra pakopinis priedinis b atskirų medžių modelis:

ne
f(x)=B∑b=1fb(x)

Taigi medžiai statomi godžiai, pasirenkant geriausius padalijimo taškus pagal grynumo balus, pvz., Gini, arba sumažinant nuostolius.

3. Priedo modelis:

Priedo modelis apibrėžiamas kaip medžių įtraukimas į modelį. Nors vienu metu neturėtume pridėti kelių medžių, reikia pridėti tik vieną medį, kad esami medžiai modelyje nebūtų pakeisti. Be to, mes taip pat galime teikti pirmenybę gradiento nusileidimo metodui, pridėdami medžių, kad sumažintume nuostolius.

Per pastaruosius kelerius metus gradiento nusileidimo metodas buvo naudojamas siekiant sumažinti parametrų, tokių kaip regresijos lygties koeficientas ir svoris neuroniniame tinkle, rinkinį. Apskaičiavus klaidą arba nuostolius, svorio parametras naudojamas siekiant sumažinti paklaidą. Tačiau pastaruoju metu dauguma ML ekspertų renkasi silpnus besimokančiųjų submodelius arba sprendimų medžius kaip šių parametrų pakaitalą. Kuriame modelyje turime pridėti medį, kad sumažintume klaidą ir pagerintume to modelio našumą. Tokiu būdu naujai pridėto medžio prognozė derinama su esamos medžių serijos prognoze, kad būtų gauta galutinė prognozė. Šis procesas tęsiasi tol, kol nuostoliai pasiekia priimtiną lygį arba nebereikia tobulinti.

eilutę į jsonobject

Šis metodas taip pat žinomas kaip funkcinis gradiento nusileidimas arba gradiento nusileidimas su funkcijomis.

Ypatingo gradiento stiprinimo mašina (XGBM)

XGBM yra naujausia gradiento didinimo mašinų versija, kuri taip pat veikia labai panašiai kaip GBM. XGBM medžiai pridedami nuosekliai (po vieną), kurie mokosi iš ankstesnių medžių klaidų ir jas pagerina. Nors XGBM ir GBM algoritmai yra panašūs savo išvaizda, tačiau vis tiek yra keletas skirtumų tarp jų:

  • XGBM naudoja įvairius reguliavimo metodus, kad sumažintų modelio nepakankamą arba per daug pritaikymą, o tai taip pat padidina modelio našumą labiau nei gradiento didinimo mašinos.
  • XGBM seka lygiagretų kiekvieno mazgo apdorojimą, o GBM ne, todėl jis yra greitesnis nei gradiento didinimo mašinos.
  • XGBM padeda mums atsikratyti trūkstamų reikšmių priskyrimo, nes pagal nutylėjimą tuo pasirūpina modelis. Ji pati išmoksta, ar šios reikšmės turi būti dešiniajame ar kairiajame mazge.

Lengvo gradiento didinimo mašinos (Light GBM)

„Light GBM“ yra labiau patobulinta „Gradient“ padidinimo mašinos versija dėl savo efektyvumo ir didelio greičio. Skirtingai nuo GBM ir XGBM, jis gali apdoroti didžiulį duomenų kiekį be jokio sudėtingumo. Kita vertus, jis netinka tiems duomenų taškams, kurių skaičius yra mažesnis.

Vietoj vienodo augimo, „Light GBM“ teikia pirmenybę medžio mazgų augimui pagal lapus. Be to, esant lengvajam GBM, pirminis mazgas yra padalintas į du antrinius mazgus ir vėliau pasirenka vieną antrinį mazgą, kurį reikia padalinti. Šis antrinio mazgo padalijimas priklauso nuo to, kuris iš dviejų mazgų turi didesnį nuostolį.

GBM mašininiame mokyme

Taigi, dėl padalijimo pagal lapus, šviesos gradiento didinimo mašinos (LGBM) algoritmas visada yra pirmenybė teikiama kitiems, kur pateikiamas didelis duomenų kiekis.

CATBOOST

Catboost algoritmas pirmiausia naudojamas kategoriškoms duomenų rinkinio ypatybėms tvarkyti. Nors GBM, XGBM ir Light GBM algoritmai tinka skaitmeniniams duomenų rinkiniams, Catboost sukurtas kategoriškiems kintamiesiems tvarkyti į skaitmeninius duomenis. Taigi „catboost“ algoritmą sudaro esminis išankstinio apdorojimo veiksmas, skirtas kategoriškoms ypatybėms paversti skaitiniais kintamaisiais, kurių nėra jokiame kitame algoritme.

Didinimo algoritmų pranašumai:

  • Padidinimo algoritmai seka ansamblinį mokymąsi, kuris leidžia modeliui pateikti tikslesnę prognozę, kurios neįmanoma nugalėti.
  • Didinimo algoritmai yra daug lankstesni nei kiti algoritmai, nes gali optimizuoti įvairias praradimo funkcijas ir suteikia keletą hiperparametrų derinimo parinkčių.
  • Tam nereikia išankstinio duomenų apdorojimo, nes jis tinka tiek skaitiniams, tiek kategoriškiems kintamiesiems.
  • Tam nereikia priskirti trūkstamų duomenų rinkinio reikšmių, trūkstamus duomenis jis apdoroja automatiškai.

Stiprinimo algoritmų trūkumai:

Žemiau pateikiami keli patobulinimo algoritmų trūkumai:

  • Padidinus algoritmus gali būti per daug pritaikyta, taip pat gali būti per daug pabrėžiamos nuokrypiai.
  • Gradiento didinimo algoritmas nuolat sutelkia dėmesį, kad sumažintų klaidas ir reikalauja kelių medžių, todėl skaičiavimo požiūriu jis yra brangus.
  • Tai daug laiko ir atminties reikalaujantis algoritmas.
  • Mažiau aiškinamojo pobūdžio, nors tai lengvai išsprendžiama naudojant įvairias priemones.

Išvada:

Tokiu būdu išmokome patobulinti nuspėjamojo modeliavimo mašininio mokymosi algoritmus. Be to, aptarėme įvairius svarbius didinimo algoritmus, naudojamus ML, pvz., GBM, XGBM, lengvą GBM ir Catboost. Be to, matėme įvairius komponentus (praradimo funkciją, silpną besimokantįjį ir priedų modelį) ir tai, kaip GBM veikia su jais. Kaip patobulinti algoritmai yra naudingi diegiant realaus pasaulio scenarijus ir pan.