Grunnleggende AI

Hva er Gradient Boosting?

mm
Legg til Unite.AI blant dine foretrukne kilder pÃĨ Google

En vanlig type maskinlÃĶringsmodell som har vist seg ÃĨ vÃĶre ekstremt nyttig i datavitenskapskonkurranser er en gradient boosting-modell. Gradient boosting er i hovedsak prosessen med ÃĨ konvertere svake lÃĶringsmodeller til sterke lÃĶringsmodeller. Men hvordan gjÃļres dette nÃļyaktig? La oss ta en nÃĶrmere titt pÃĨ gradient boosting-algoritmer og forstÃĨ bedre hvordan en gradient boosting-modell konverterer svake lÃĶrere til sterke lÃĶrere.

Definering av Gradient Boosting

Denne artikkelen har som mÃĨl ÃĨ gi deg en god forstÃĨelse for hva gradient boosting er, uten ÃĨ bryte ned matematikken som ligger til grunn for algoritmene. NÃĨr du har en god forstÃĨelse for hvordan gradient boosting opererer pÃĨ et hÃļyt nivÃĨ, oppmuntres du til ÃĨ gÃĨ dyptere og utforske matematikken som gjÃļr det mulig.

La oss starte med ÃĨ definere hva det betyr ÃĨ “booste” en lÃĶrer. Svakke lÃĶrere konverteres til sterke lÃĶrere ved ÃĨ justere egenskapene til lÃĶringsmodellen. Hva er egentlig lÃĶringsalgoritmen som blir boostet?

Boosting-modeller fungerer ved ÃĨ utvide en annen vanlig maskinlÃĶringsmodell, en beslutningstre.

En beslutningstre-modell fungerer ved ÃĨ splitte en datasett ned i mindre og mindre deler, og nÃĨr undergruppene ikke kan splittes lenger, resulterer det i et tre med noder og blader. Noder i en beslutningstre er der hvor beslutninger om datapunkter tas ved hjelp av ulike filterkriterier. Bladene i en beslutningstre er datapunktene som har blitt klassifisert. Beslutningstre-algoritmer kan hÃĨndtere bÃĨde numeriske og kategoriske data, og splitt i treet er basert pÃĨ bestemte variabler/egenskaper.

Illustrasjon av mÃĨten boosting-modeller blir trenet.
Foto: SeattleDataBuy via Wikimedia Commons, CC 4.0 (https://commons.wikimedia.org/wiki/File:Boosting.png)

En type boosting-algoritme er AdaBoost-algoritmen. AdaBoost-algoritmer starter med ÃĨ trenere en beslutningstre-modell og tildele en lik vekt til hver observasjon. Etter at den fÃļrste treet har blitt evaluert for nÃļyaktighet, justeres vektene for de ulike observasjonene. Observasjoner som var lette ÃĨ klassifisere fÃĨr vektene sine redusert, mens observasjoner som var vanskelige ÃĨ klassifisere fÃĨr vektene sine Ãļkt. Et nytt tre blir skapt ved hjelp av disse justerte vektene, med mÃĨlet at det andre treet sine prediksjoner vil vÃĶre mer nÃļyaktige enn det fÃļrste treet sine prediksjoner.

Modellen bestÃĨr nÃĨ av prediksjonene for det opprinnelige treet og det nye treet (eller Tre 1 + Tre 2). KlassifiseringsnÃļyaktigheten blir vurdert pÃĨ nytt basert pÃĨ den nye modellen. Et tredje tre blir skapt basert pÃĨ den beregnede feilen for modellen, og vektene blir justert pÃĨ nytt. Denne prosessen fortsetter for et bestemt antall iterasjoner, og den endelige modellen er en ensemble-modell som bruker den vektede summen av prediksjonene gjort av alle de tidligere konstruerte trÃĶrne.

Prosessen beskrevet over bruker beslutningstreer og base-prediktorer/modeller, men en boosting-tilnÃĶrming kan utfÃļres med en rekke modeller som de mange standard klassifiserings- og regresjonsmodellene. De viktigste konseptene ÃĨ forstÃĨ er at pÃĨfÃļlgende prediktorer lÃĶrer av feilene gjort av tidligere prediktorer og at prediktorerne blir skapt sekvensielt.

Den primÃĶre fordelen med boosting-algoritmer er at de tar mindre tid ÃĨ finne nÃĨvÃĶrende prediksjoner sammenlignet med andre maskinlÃĶringsmodeller. Imidlertid mÃĨ man vÃĶre forsiktig nÃĨr man bruker boosting-algoritmer, da de er utsatt for overfitting.

Gradient Boosting

Vi skal nÃĨ se pÃĨ en av de mest vanlige boosting-algoritmer. Gradient Boosting-modeller (GBM) er kjent for sin hÃļye nÃļyaktighet, og de utvider de generelle prinsippene som brukes i AdaBoost.

Den primÃĶre forskjellen mellom en Gradient Boosting-modell og AdaBoost er at GBM bruker en annen metode for ÃĨ beregne hvilke lÃĶrere som misidentifiserer datapunkter. AdaBoost beregner hvor en modell underpresterer ved ÃĨ se pÃĨ datapunkter som er tungt vektede. GBM bruker derimot grader til ÃĨ bestemme nÃļyaktigheten av lÃĶrere, og anvender en tap-funksjon til en modell. Tap-funksjoner er en mÃĨte ÃĨ mÃĨle nÃļyaktigheten av en modells tilpasning til datasett, ved ÃĨ beregne en feil og optimalisere modellen for ÃĨ redusere denne feilen. GBM lar brukeren optimalisere en spesifisert tap-funksjon basert pÃĨ deres Ãļnskede mÃĨl.

Med den mest vanlige tap-funksjonen – Gjennomsnittlig kvadratisk feil (MSE) – som eksempel, gradient descent brukes til ÃĨ oppdatere prediksjoner basert pÃĨ en forhÃĨndsdefinert lÃĶringsrate, med mÃĨl om ÃĨ finne verdiene hvor tap er minimalt.

For ÃĨ gjÃļre det mer tydelig:

Nye modellprediksjoner = utgangsvariabler – gamle uperfekte prediksjoner.

I en mer statistisk forstand, GBM sÃļker ÃĨ finne relevante mÃļnster i en modells rester, og justerer modellen for ÃĨ tilpasse mÃļnsteret og bringe restene sÃĨ nÃĶre null som mulig. Hvis du skulle utfÃļre en regresjon pÃĨ modellens prediksjoner, ville restene vÃĶre fordelt rundt 0 (perfekt tilpasning), og GBM finner mÃļnster innenfor restene og oppdaterer modellen rundt disse mÃļnstrene.

Med andre ord, prediksjonene oppdateres sÃĨ at summen av alle rester er sÃĨ nÃĶre 0 som mulig, noe som betyr at de prediktede verdiene vil vÃĶre svÃĶrt nÃĶre de faktiske verdiene.

Merk at en rekke andre tap-funksjoner (slik som logaritmisk tap) kan brukes av en GBM. MSE ble valgt ovenfor for enkelhets skyld.

Variasjoner av Gradient Boosting-modeller

Gradient Boosting-modeller er grÃĨdige algoritmer som er utsatt for overfitting pÃĨ en datasett. Dette kan beskyttes mot med forskjellige metoder som kan forbedre ytelsen av en GBM.

GBM kan regulere med fire forskjellige metoder: Shrinkage, Tre-begrensninger, Stokastisk Gradient Boosting og Penalized Learning.

Shrinkage

Som tidligere nevnt, i GBM prediksjoner summeres sammen i en sekvensiell mÃĨte. I “Shrinkage” justeres tilleggene av hvert tre til den totale summen. Vekter brukes som sakter ned algoritmens lÃĶringsrate, og det kreves at flere trÃĶr mÃĨ legges til modellen, noe som vanligvis forbedrer modellens robusthet og ytelse. Kompromisset er at modellen tar lengre tid ÃĨ trene.

Tre-begrensninger

Begrensninger pÃĨ treet med forskjellige justeringer som ÃĨ legge til mer dybde til treet eller Ãļke antallet noder eller blader i treet, kan gjÃļre det vanskeligere for modellen ÃĨ overfitte. Å pÃĨlegge en begrensning pÃĨ det minste antallet observasjoner per splitt har en lignende effekt. Igjen, kompromisset er at det tar modellen lengre tid ÃĨ trene.

Tilfeldig utvalg

De enkelte lÃĶrerne kan skapes gjennom en stokastisk prosess, basert pÃĨ tilfeldige underutvalg av treningsdatasettet. Dette har effekten av ÃĨ redusere korrelasjoner mellom trÃĶr, noe som beskytter mot overfitting. Datasettet kan underutvalges fÃļr trÃĶrne skapes eller fÃļr en splitt i treet vurderes.

Penalized Learning

Bortsett fra ÃĨ begrense modellen gjennom ÃĨ begrense strukturen til treet, er det mulig ÃĨ bruke en regresjonstre. RegresjonstrÃĶr har numeriske verdier koblet til hver av bladene, og disse fungerer som vekter og kan justeres med vanlige regulariseringsfunksjoner som L1 og L2-regularisering.

Blogger og programmerer med spesialomrÃĨder i Machine Learning og Deep Learning emner. Daniel hÃĨper ÃĨ hjelpe andre med ÃĨ bruke kraften av AI for sosialt godt.