logo

GBM v strojnem učenju

Strojno učenje je ena najbolj priljubljenih tehnologij za izdelavo napovednih modelov za različne zapletene naloge regresije in klasifikacije. Stroj za povečanje gradienta (GBM) velja za enega najmočnejših algoritmov za pospeševanje.

GBM v strojnem učenju

Čeprav se v strojnem učenju uporablja toliko algoritmov, so algoritmi za pospeševanje postali glavni tok v skupnosti strojnega učenja po vsem svetu. Tehnika pospeševanja sledi konceptu ansambelskega učenja in zato združuje več preprostih modelov (šibke učence ali osnovne ocenjevalce), da ustvari končni rezultat. GBM se uporablja tudi kot metoda ansambla pri strojnem učenju, ki pretvarja šibke učence v močne učence. V tej temi, 'GBM v strojnem učenju' razpravljali bomo o gradientnih algoritmih strojnega učenja, različnih algoritmih pospeševanja v strojnem učenju, zgodovini GBM, kako deluje, različnih terminologijah, ki se uporabljajo v GBM itd. Toda preden začnete, najprej razumejte koncept povečanja in različne algoritme pospeševanja v strojnem učenju.

Kaj je pospeševanje v strojnem učenju?

Spodbujanje je ena od priljubljenih tehnik modeliranja učnega ansambla, ki se uporablja za izdelavo močnih klasifikatorjev iz različnih šibkih klasifikatorjev. Začne se z izgradnjo primarnega modela iz razpoložljivih nizov podatkov o usposabljanju, nato pa identificira napake, prisotne v osnovnem modelu. Po ugotovitvi napake se zgradi sekundarni model, nato pa se v tem procesu uvede še tretji model. Na ta način se ta proces uvajanja več modelov nadaljuje, dokler ne dobimo celotnega nabora podatkov za usposabljanje, po katerem model pravilno napoveduje.

kako najti blokirane številke na androidu

AdaBoost (Adaptive boosting) je bil prvi algoritem za povečanje, ki je združil različne šibke klasifikatorje v en sam močan klasifikator v zgodovini strojnega učenja. Osredotoča se predvsem na reševanje nalog klasifikacije, kot je binarna klasifikacija.

Koraki v algoritmih za pospeševanje:

Pri izboljšanju algoritma je nekaj pomembnih korakov:

  • Razmislite o nizu podatkov z različnimi podatkovnimi točkami in ga inicializirajte.
  • Zdaj dajte enako težo vsaki podatkovni točki.
  • Predpostavi to težo kot vhod za model.
  • Identificirajte podatkovne točke, ki so nepravilno razvrščene.
  • Povečajte težo podatkovnih točk v 4. koraku.
  • Če dobite ustrezen izhod, prekinite ta postopek, sicer znova sledite 2. in 3. koraku.

primer:

Recimo, da imamo tri različne modele s svojimi napovedmi in delujejo na povsem različne načine. Na primer, linearni regresijski model prikazuje linearno razmerje v podatkih, medtem ko model odločitvenega drevesa poskuša zajeti nelinearnost v podatkih, kot je prikazano na spodnji sliki.

GBM v strojnem učenju

Nadalje, namesto da bi te modele uporabljali ločeno za napovedovanje izida, če jih uporabimo v obliki serije ali kombinacije, potem dobimo končni model s pravilnimi informacijami kot vsi osnovni modeli. Z drugimi besedami, če uporabimo povprečno napoved iz teh modelov, namesto da bi uporabili posamezno napoved vsakega modela, bi lahko iz podatkov zajeli več informacij. Imenuje se ansambelsko učenje, pospeševanje pa temelji tudi na ansambelskih metodah v strojnem učenju.

Izboljšanje algoritmov v strojnem učenju

V strojnem učenju obstajajo predvsem 4 algoritmi za pospeševanje. Ti so naslednji:

    Stroj za povečanje gradienta (GBM) Stroj za povečanje ekstremnega gradienta (XGBM) Svetloba GBM CatBoost

Kaj je GBM v strojnem učenju?

Gradient Boosting Machine (GBM) je ena najbolj priljubljenih ansambelskih metod naprednega učenja v strojnem učenju. Je zmogljiva tehnika za gradnjo napovednih modelov za naloge regresije in klasifikacije.

GBM nam pomaga pridobiti napovedni model v obliki niza šibkih napovednih modelov, kot so odločitvena drevesa. Kadarkoli odločitveno drevo deluje kot šibek učenec, se nastali algoritem imenuje gradientno povečana drevesa.

Omogoča nam, da združimo napovedi iz različnih učenčevih modelov in zgradimo končni napovedni model s pravilno napovedjo.

Toda tu se lahko pojavi eno vprašanje, če uporabljamo isti algoritem, kako lahko več odločitvenih dreves daje boljše napovedi kot eno odločitveno drevo? Poleg tega, kako vsako drevo odločanja zajema različne informacije iz istih podatkov?

java bool v niz
GBM v strojnem učenju

Torej je odgovor na ta vprašanja ta, da vozlišča vsakega odločitvenega drevesa prevzamejo različno podmnožico funkcij, da izberejo najboljšo razdelitev. To pomeni, da se vsako drevo obnaša drugače in zato zajema različne signale iz istih podatkov.

obravnavanje izjem v Javi

Kako deluje GBM?

Na splošno večina nadzorovanih učnih algoritmov temelji na enem samem napovednem modelu, kot je linearna regresija, kaznovani regresijski model, odločitvena drevesa itd. Vendar pa obstaja nekaj nadzorovanih algoritmov v ML, ki so odvisni od kombinacije različnih modelov skupaj skozi ansambel. Z drugimi besedami, ko več osnovnih modelov prispeva svoje napovedi, se povprečje vseh napovedi prilagodi z algoritmi za povečanje.

Stroji za povečanje gradienta so sestavljeni iz treh elementov, in sicer:

  • Funkcija izgube
  • Šibki učenci
  • Dodatni model

Razumejmo te tri elemente podrobneje.

1. Funkcija izgube:

Čeprav obstaja velika družina funkcij izgube v strojnem učenju, ki jih je mogoče uporabiti glede na vrsto nalog, ki se rešujejo. Uporaba funkcije izgube je ocenjena z zahtevo po posebnih značilnostih pogojne porazdelitve, kot je robustnost. Medtem ko v naši nalogi uporabljamo funkcijo izgube, moramo določiti funkcijo izgube in funkcijo za izračun ustreznega negativnega gradienta. Ko dobimo ti dve funkciji, ju je mogoče preprosto implementirati v stroje za povečanje gradienta. Vendar pa je za algoritme GBM že predlaganih več izgubnih funkcij.

Razvrstitev funkcije izgube:

Glede na vrsto odzivne spremenljivke y lahko funkcijo izgube razvrstimo v različne vrste, kot sledi:

    Neprekinjen odziv, y ∈ R:
    • Gaussova funkcija izgube L2
    • Laplaceova funkcija izgube L1
    • Huberjeva izgubna funkcija, določena δ
    • Kvantilna izgubna funkcija, določena α
    Kategorični odgovor, y ∈ {0, 1}:
    • Binomska izgubna funkcija
    • Funkcija izgube Adaboost
    Druge družine spremenljivk odziva:
    • Funkcije izgube za modele preživetja
    • Funkcije izgube štejejo podatke
    • Izgubne funkcije po meri

2. Slab učenec:

Šibki učenci so osnovni modeli učencev, ki se učijo iz preteklih napak in pomagajo pri izgradnji močne napovedne zasnove modela za izboljšanje algoritmov v strojnem učenju. Na splošno odločitvena drevesa delujejo kot šibki učenci pri izboljšanju algoritmov.

Spodbujanje je opredeljeno kot ogrodje, ki nenehno deluje za izboljšanje rezultatov iz osnovnih modelov. Številne aplikacije za povečanje gradienta vam omogočajo, da 'priključite' različne razrede šibkih učencev, ki so vam na voljo. Zato se odločitvena drevesa najpogosteje uporabljajo za šibke (osnovne) učence.

git pull sintaksa

Kako trenirati šibke učence:

Strojno učenje uporablja nabore podatkov za usposabljanje za usposabljanje osnovnih učencev in na podlagi napovedi prejšnjega učenca izboljša učinkovitost z osredotočenjem na vrstice podatkov o usposabljanju, kjer je imelo prejšnje drevo največje napake ali ostanke. Npr. plitva drevesa veljajo za šibka drevesa odločanja, saj vsebujejo nekaj razcepov. Na splošno so v algoritmih za povečanje najpogostejša drevesa z do 6 delitvami.

Spodaj je zaporedje usposabljanja šibkega učenca za izboljšanje njihove uspešnosti, kjer je vsako drevo v zaporedju z ostanki prejšnjega drevesa. Poleg tega uvajamo vsako novo drevo, da se lahko uči iz napak prejšnjega drevesa. Ti so naslednji:

  1. Razmislite o naboru podatkov in vanj vstavite drevo odločitev.
    F1(x)=y
  2. Prilagodite naslednje odločitveno drevo z največjimi napakami prejšnjega drevesa.
    h1(x)=y?F1(x)
  3. To novo drevo dodajte algoritmu tako, da dodate oboje v 1. in 2. koraku.
    F2(x)=F1(x)+h1(x)
  4. Ponovno prilagodite naslednje odločitveno drevo z ostanki prejšnjega drevesa.
    h2(x)=y?F2(x)
  5. Ponovite isto, kot smo storili v 3. koraku.
    F3(x)=F2(x)+h2(x)

Nadaljujte s tem postopkom, dokler nam nek mehanizem (tj. navzkrižno preverjanje) ne pove, naj ga ustavimo. Končni model tukaj je stopenjski aditivni model b posameznih dreves:

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

Zato so drevesa zgrajena pohlepno, izbirajo najboljše točke delitve na podlagi rezultatov čistosti, kot je Gini, ali minimizirajo izgubo.

3. Dodatni model:

Aditivni model je definiran kot dodajanje dreves v model. Čeprav ne smemo dodajati več dreves hkrati, je treba dodati samo eno drevo, da se obstoječa drevesa v modelu ne spremenijo. Poleg tega lahko izberemo tudi metodo gradientnega spuščanja z dodajanjem dreves, da zmanjšamo izgubo.

V zadnjih nekaj letih je bila uporabljena metoda gradientnega spuščanja za minimiziranje nabora parametrov, kot sta koeficient regresijske enačbe in utež v nevronski mreži. Po izračunu napake ali izgube se za zmanjšanje napake uporabi parameter teže. Toda v zadnjem času ima večina strokovnjakov za strojno učenje raje podmodele šibkih učencev ali odločitvena drevesa kot nadomestek za te parametre. Pri tem moramo v model dodati drevo, da zmanjšamo napako in izboljšamo delovanje tega modela. Na ta način se napoved iz na novo dodanega drevesa združi z napovedjo iz obstoječe serije dreves, da dobimo končno napoved. Ta proces se nadaljuje, dokler izguba ne doseže sprejemljive ravni ali izboljšave niso več potrebne.

Ta metoda je znana tudi kot funkcionalni gradientni spust ali gradientni spust s funkcijami.

mreža numpy

STROJ ZA EKSTREMNI GRADIENT (XGBM)

XGBM je najnovejša različica strojev za povečanje gradienta, ki deluje zelo podobno kot GBM. V XGBM se drevesa dodajajo zaporedno (eno za drugim), ki se učijo iz napak prejšnjih dreves in jih izboljšajo. Čeprav sta si algoritma XGBM in GBM po videzu in občutku podobna, vendar je med njima nekaj razlik, kot sledi:

  • XGBM uporablja različne tehnike uravnavanja, da zmanjša premajhno ali preveč prileganje modela, kar prav tako poveča zmogljivost modela bolj kot stroji za povečanje gradienta.
  • XGBM sledi vzporedni obdelavi vsakega vozlišča, medtem ko GBM ne, zaradi česar je hitrejši od strojev za povečanje gradienta.
  • XGBM nam pomaga, da se znebimo imputacije manjkajočih vrednosti, ker model privzeto poskrbi za to. Sam se nauči, ali naj bodo te vrednosti v desnem ali levem vozlišču.

Stroji za povečanje svetlobnega gradienta (Light GBM)

Light GBM je zaradi svoje učinkovitosti in hitre hitrosti bolj nadgrajena različica Gradient boost stroja. Za razliko od GBM in XGBM zmore obdelati ogromno količino podatkov brez kakršne koli zapletenosti. Po drugi strani pa ni primeren za tiste podatkovne točke, ki jih je manj.

Namesto ravninske rasti ima Light GBM raje listno rast vozlišč drevesa. Nadalje je v lahkem GBM primarno vozlišče razdeljeno na dve sekundarni vozlišči in kasneje izbere eno sekundarno vozlišče, ki ga je treba razdeliti. Ta delitev sekundarnega vozlišča je odvisna od tega, katero vozlišče ima večjo izgubo.

GBM v strojnem učenju

Zato ima algoritem Light Gradient Boosting Machine (LGBM) vedno prednost pred drugimi, kjer je podana velika količina podatkov, zaradi razdelitve po listih.

CATBOOST

Algoritem catboost se uporablja predvsem za obravnavanje kategoričnih značilnosti v naboru podatkov. Čeprav so algoritmi GBM, XGBM in Light GBM primerni za nabore numeričnih podatkov, je Catboost zasnovan za obdelavo kategoričnih spremenljivk v numerične podatke. Zato je algoritem catboost sestavljen iz bistvenega koraka predprocesiranja za pretvorbo kategoričnih značilnosti v numerične spremenljivke, ki niso prisotne v nobenem drugem algoritmu.

Prednosti algoritmov za pospeševanje:

  • Algoritmi za pospeševanje sledijo učenju ansambla, kar modelu omogoča natančnejšo napoved, ki je ni mogoče zanikati.
  • Algoritmi za pospeševanje so veliko bolj prilagodljivi kot drugi algoritmi, saj lahko optimizirajo različne funkcije izgube in nudijo več možnosti nastavitve hiperparametrov.
  • Ne zahteva predhodne obdelave podatkov, ker je primeren tako za numerične kot tudi za kategorične spremenljivke.
  • Ne zahteva imputacije manjkajočih vrednosti v naboru podatkov, manjkajoče podatke obravnava samodejno.

Slabosti algoritmov za pospeševanje:

Spodaj je nekaj slabosti algoritmov za povečanje:

  • Algoritmi za povečanje lahko povzročijo prekomerno prilagajanje in pretirano poudarjanje izstopajočih vrednosti.
  • Algoritem za povečanje gradienta se nenehno osredotoča na zmanjšanje napak in zahteva več dreves, zato je računsko drag.
  • To je zamuden in pomnilniški algoritem.
  • Manj interpretativne narave, čeprav se to zlahka reši z različnimi orodji.

Zaključek:

Na ta način smo se naučili pospeševalnih algoritmov za napovedno modeliranje v strojnem učenju. Razpravljali smo tudi o različnih pomembnih algoritmih za pospeševanje, ki se uporabljajo v ML, kot so GBM, XGBM, lahki GBM in Catboost. Poleg tega smo videli različne komponente (izgubno funkcijo, šibkega učenca in aditivni model) in kako GBM deluje z njimi. Kako so algoritmi za pospeševanje koristni za uvajanje v scenarijih resničnega sveta itd.