AI 101
Hva er Gradient Boosting?
En vanlig type maskinlæringsmodell som har klart å være ekstremt nyttig i datavitenskapskonkurranser er en gradientforsterkende modell. Gradientforsterkning er i utgangspunktet prosessen med å konvertere svake læringsmodeller til sterke læringsmodeller. Men hvordan blir dette oppnådd? La oss se nærmere på gradientforsterkende algoritmer og bedre forstå hvordan en gradientforsterkende modell konverterer svake elever til sterke elever.
Definere Gradient Boosting
Denne artikkelen har som mål å gi deg en god intuisjon for hva gradientboosting er, uten mange sammenbrudd av matematikken som ligger til grunn for algoritmene. Når du har en forståelse for hvordan gradientboosting fungerer på et høyt nivå, oppfordres du til å gå dypere og utforske matematikken som gjør det mulig.
La oss starte med å definere hva det vil si å "booste" en elev. Svake elever konverteres til sterke elever ved å justere egenskapene til læringsmodellen. Nøyaktig hvilken læringsalgoritme blir forsterket?
Forsterkende modeller fungerer ved å utvide en annen vanlig maskinlæringsmodell, et beslutningstre.
A beslutningstre modellfunksjoner ved å dele et datasett ned i mindre og mindre deler, og når delsettene ikke kan deles videre, er resultatet et tre med noder og blader. Noder i et beslutningstre er der beslutninger om datapunkter tas ved hjelp av forskjellige filtreringskriterier. Bladene i et beslutningstre er datapunktene som er klassifisert. Beslutningstrealgoritmer kan håndtere både numeriske og kategoriske data, og splittelser i treet er basert på spesifikke variabler/funksjoner.

Illustrasjon av måten boostende modeller trenes på.
Foto: SeattleDataBuy via Wikimedia Commons, CC 4.0 (https://commons.wikimedia.org/wiki/File:Boosting.png)
En type boostingsalgoritme er AdaBoost-algoritme. AdaBoost-algoritmer starter med å trene opp en beslutningstremodell og tildele lik vekt til hver observasjon. Etter at det første treet er evaluert for nøyaktighet, justeres vektene for de forskjellige observasjonene. Observasjoner som var lette å klassifisere får redusert vekt, mens observasjoner som var vanskelige å klassifisere får økt vekt. Et andre tre opprettes ved å bruke disse justerte vektene, med sikte på at det andre treets spådommer skal være mer nøyaktige enn det første treets spådommer.
Modellen består nå av spådommene for det opprinnelige treet og det nye treet (eller Tre 1 + Tre 2). Klassifiseringsnøyaktigheten vurderes nok en gang basert på den nye modellen. Et tredje tre opprettes basert på den beregnede feilen for modellen, og vektene justeres igjen. Denne prosessen fortsetter i et gitt antall iterasjoner, og den endelige modellen er en ensemblemodell som bruker den vektede summen av spådommene gjort av alle de tidligere konstruerte trærne.
Prosessen beskrevet ovenfor bruker Decision Trees og basisprediktorene/modellene, men en økende tilnærming kan utføres med et bredt spekter av modeller som de mange standardklassifiserer- og regressormodellene. Nøkkelbegrepene å forstå er at påfølgende prediktorer lærer av feilene som er gjort av tidligere, og at prediktorene opprettes sekvensielt.
Den primære fordelen med å øke algoritmer er at de bruker mindre tid på å finne gjeldende spådommer sammenlignet med andre maskinlæringsmodeller. Forsiktighet må imidlertid utvises når du bruker forsterkningsalgoritmer, siden de er utsatt for overtilpasning.
Gradientforsterkning
Vi skal nå se på en av de vanligste boostingsalgoritmene. Gradient Boosting Models (GBM) er kjent for sin høye nøyaktighet, og de forsterker de generelle prinsippene som brukes i AdaBoost.
Den primære forskjellen mellom en Gradient Boosting Model og AdaBoost er at GBM-er bruker en annen metode for å beregne hvilke elever som feilidentifiserer datapunkter. AdaBoost beregner hvor en modell underpresterer ved å undersøke datapunkter som er tungt vektet. I mellomtiden bruker GBM-er gradienter for å bestemme nøyaktigheten til elever, og bruker en tapsfunksjon på en modell. Tapsfunksjoner er en måte å måle nøyaktigheten av en modells tilpasning på datasettet, beregne en feil og optimalisere modellen for å redusere denne feilen. GBM lar brukeren optimalisere en spesifisert tapsfunksjon basert på ønsket mål.
Å ta den vanligste tapsfunksjonen – Mean Squared Error (MSE) - som et eksempel, gradient nedstigning brukes til å oppdatere spådommer basert på en forhåndsdefinert læringsrate, med sikte på å finne verdiene der tapet er minimalt.
For å gjøre det klarere:
Nye modellprediksjoner = utdatavariabler – gamle imperfekte prediksjoner.
I en mer statistisk forstand har GBM-er som mål å finne relevante mønstre i en modells residualer, justere modellen for å passe til mønsteret og bringe residualene så nær null som mulig. Hvis du skulle utføre en regresjon på modellens spådommer, ville residualene fordelt seg rundt 0 (perfect fit), og GBM-er finner mønstre innenfor residualene og oppdaterer modellen rundt disse mønstrene.
Med andre ord oppdateres prediksjonene slik at summen av alle residualer er så nær 0 som mulig, noe som betyr at de predikerte verdiene vil være svært nær de faktiske verdiene.
Merk at en lang rekke andre tapsfunksjoner (som logaritmisk tap) kan brukes av en GBM. MSE ble valgt ovenfor for enkelhets skyld.
Variasjoner på modeller for gradientforsterkning
Gradient Boosting Models er grådige algoritmer som er tilbøyelige til å overtilpasse et datasett. Dette kan garderes mot med flere ulike metoder som kan forbedre ytelsen til en GBM.
GBM-er kan reguleres med fire forskjellige metoder: Krymping, Trebegrensninger, Stokastisk Gradient Boosting og Penalized Learning.
svinn
Som tidligere nevnt, summeres spådommer i GBM sammen på en sekvensiell måte. I "Skrymping" justeres tilleggene for hvert tre til den totale summen. Det brukes vekter som bremser algoritmens læringshastighet, noe som nødvendiggjør at flere trær legges til modellen, noe som typisk forbedrer modellens robusthet og ytelse. Avveiningen er at modellen tar lengre tid å trene.
Trebegrensninger
Å begrense treet med forskjellige justeringer som å legge til mer dybde til treet eller øke antall noder eller blader i treet kan gjøre det vanskeligere for modellen å overfitte. Å pålegge en begrensning på minimum antall observasjoner per splitt har en lignende effekt. Nok en gang er avveiningen at det vil ta lenger tid å trene modellen.
Tilfeldig prøvetaking
De enkelte elevene kan skapes gjennom en stokastisk prosess, basert på tilfeldig utvalgte understempler av opplæringsdatasettet. Dette har som effekt å redusere korrelasjoner mellom trær, noe som beskytter mot overtilpasning. Datasettet kan understemples før trærne opprettes eller før man vurderer en splittelse i treet.
Penalisert læring
Utover å begrense modellen gjennom å begrense strukturen til treet, er det mulig å bruke et regresjonstre. Regresjonstrær har numeriske verdier knyttet til hvert av bladene, og disse fungerer som vekter og kan justeres med vanlige regulariseringsfunksjoner som L1- og L2-regularisering.