Grundlæggende AI

Hvad er Gradient Boosting?

mm
Føj Unite.AI til dine foretrukne kilder på Google

En almindelig type maskinlæringsmodel, der har vist sig at være ekstremt nyttig i datavidenskabskonkurrencer, er en gradient boosting-model. Gradient boosting er grundlæggende processen med at omdanne svage læringsmodeller til stærke læringsmodeller. Men hvordan opnås dette nøjagtigt? Lad os tage en nærmere kig på gradient boosting-algoritmer og forstå bedre, hvordan en gradient boosting-model omdanner svage læsere til stærke læsere.

Definering af Gradient Boosting

Denne artikel har til formål at give dig en god intuition for, hvad gradient boosting er, uden mange nedbrydninger af de matematiske begreber, der ligger til grund for algoritmerne. Når du har en forståelse for, hvordan gradient boosting fungerer på et højt niveau, opmuntres du til at dykke dybere og udforske matematikken, der gør det muligt.

Lad os starte med at definere, hvad det betyder at “booste” en læser. Svage læsere omdannes til stærke læsere ved at justere egenskaberne af læringsmodellen. Hvad er den læringsalgoritme, der boostes?

Boosting-modeller fungerer ved at supplere en anden almindelig maskinlæringsmodel, en beslutningstræ.

En beslutningstræ-model fungerer ved at splitte en dataset ned i mindre og mindre dele, og når underdele ikke kan splittes yderligere, resulterer det i et træ med knuder og blade. Knuder i en beslutningstræ er, hvor beslutninger om datapunkter træffes ved hjælp af forskellige filterkriterier. Bladene i en beslutningstræ er datapunkterne, der er klassificeret. Beslutningstræ-algoritmer kan håndtere både numeriske og kategoriske data, og splittelse i træet er baseret på bestemte variabler/funktioner.

Illustration af, hvordan boosting-modeller trænes.
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 at træne en beslutningstræ-model og tildele en ligeværdig vægt til hver observation. Efter den første træ er blevet evalueret for nøjagtighed, justeres vægtene for de forskellige observationer. Observationer, der var lette at klassificere, får deres vægt reduceret, mens observationer, der var svære at klassificere, får deres vægt øget. En anden træ skabes ved hjælp af disse justerede vægte, med det formål, at den anden træs forudsigelser vil være mere nøjagtige end den første træs forudsigelser.

Modellen består nu af forudsigelserne for den originale træ og den nye træ (eller Træ 1 + Træ 2). Klassificeringsnøjagtigheden vurderes igen på basis af den nye model. En tredje træ skabes på basis af den beregnede fejl for modellen, og vægtene justeres igen. Denne proces fortsætter i et bestemt antal iterationer, og den endelige model er en ensemble-model, der bruger den vægtede sum af forudsigelserne lavet af alle tidligere konstruerede træer.

Processen, der er beskrevet ovenfor, bruger beslutningstræer og basisprædiktorer/modeller, men en boosting-tilgang kan udføres med en bred vifte af modeller som de mange standard klassificerings- og regressionsmodeller. De vigtigste begreber at forstå er, at efterfølgende prædiktorer lærer af fejlene, der er begået af tidligere, og at prædiktorerne skabes sekventielt.

Den primære fordel ved boosting-algoritmer er, at de tager mindre tid til at finde den aktuelle forudsigelse i forhold til andre maskinlæringsmodeller. Men det er nødvendigt at være forsigtig, når man anvender boosting-algoritmer, da de er tilbøjelige til at overfitte.

Gradient Boosting

Vi vil nu se på en af de mest almindelige boosting-algoritmer. Gradient Boosting-modeller (GBM) er kendt for deres høje nøjagtighed og udvider de generelle principper, der bruges i AdaBoost.

Den primære forskel mellem en Gradient Boosting-model og AdaBoost er, at GBM bruger en anden metode til at beregne, hvilke læsere der misidentificerer datapunkter. AdaBoost beregner, hvor en model er underpræsterende, ved at undersøge datapunkter, der er tungt vægtede. GBM bruger derimod grader til at bestemme læsernes nøjagtighed og anvender en tab-funktion til en model. Tab-funktioner er en måde at måle en models nøjagtighed på datasettet, ved at beregne en fejl og optimere modellen til at reducere fejlen. GBM tillader brugeren at optimere en specificeret tab-funktion baseret på det ønskede mål.

Tag det mest almindelige tab-funktion – Gennemsnitskvadratfejl (MSE) – som eksempel, gradient descent bruges til at opdatere forudsigelser baseret på en foruddefineret læringsrate, med det formål at finde værdierne, hvor tabet er minimalt.

For at gøre det klart:

Nye model-forudsigelser = output-variabler – gamle uperfekte forudsigelser.

I en mere statistisk forstand søger GBM at finde relevante mønstre i en models residuer, justerer modellen for at tilpasse mønstret og bringe residuerne så tæt på 0 som muligt. Hvis du udfører en regression på modellens forudsigelser, ville residuerne være fordelt omkring 0 (perfekt fit), og GBM finder mønstre inden for residuerne og opdaterer modellen omkring disse mønstre.

Med andre ord opdateres forudsigelserne, så summen af alle residuer er så tæt på 0 som muligt, hvilket betyder, at de forudsagte værdier vil være meget tæt på de faktiske værdier.

Bemærk, at der kan bruges en bred vifte af andre tab-funktioner (såsom logaritmisk tab) af en GBM. MSE blev valgt ovenfor for simplicityets skyld.

Variationer af Gradient Boosting-modeller

Gradient Boosting-modeller er grådige algoritmer, der er tilbøjelige til at overfitte på et dataset. Dette kan beskyttes mod med forskellige metoder, der kan forbedre GBM’s præstation.

GBM kan regulere med fire forskellige metoder: Shrinkage, Træ-begrænsninger, Stochastic Gradient Boosting og Penalized Learning.

Shrinkage

Som tidligere nævnt, i GBM samles forudsigelserne sammen sekventielt. I “Shrinkage” justeres tilføjelserne af hver træ til den samlede sum. Vægte anvendes, der langsommere algoritmens læringsrate, hvilket kræver, at flere træer skal tilføjes til modellen, hvilket typisk forbedrer modellens robusthed og præstation. Det er dog en trade-off, at modellen tager længere tid at træne.

Træ-begrænsninger

At begrænse træet med forskellige tweaks som at tilføje mere dybde til træet eller øge antallet af knuder eller blade i træet kan gøre det sværere for modellen at overfitte. At pålægge en begrænsning på det minimale antal observationer per split har en lignende effekt. Endnu en gang er trade-offen, at det tager modellen længere tid at træne.

Tilfældigt udsample

De enkelte læsere kan skabes gennem en stokastisk proces, baseret på tilfældigt valgte underprøver af træningsdatasettet. Dette har effekten af at reducere korrelationer mellem træer, hvilket beskytter mod overfitning. Datasettet kan udsamples før træerne skabes eller før en split i træet overvejes.

Penalized Learning

Ud over at begrænse modellen gennem at begrænse træets struktur er det muligt at bruge en regressions-træ. Regressions-træer har numeriske værdier knyttet til hvert af bladene, og disse fungerer som vægte og kan justeres med almindelige regulariseringsfunktioner som L1 og L2 regularisering.

Blogger og programmør med specialer i Machine Learning og Deep Learning emner. Daniel håber at hjælpe andre med at bruge AI's kraft til sociale formål.