stub Vad är Gradient Boosting? - Unite.AI
Anslut dig till vårt nätverk!

AI 101

Vad är Gradient Boosting?

mm
Uppdaterad on

En vanlig typ av maskininlärningsmodell som har lyckats vara extremt användbar i datavetenskapstävlingar är en gradientförstärkningsmodell. Gradientförstärkning är i grunden processen att omvandla svaga inlärningsmodeller till starka inlärningsmodeller. Men exakt hur går detta till? Låt oss ta en närmare titt på gradientförstärkande algoritmer och bättre förstå hur en gradientförstärkningsmodell omvandlar svaga elever till starka elever.

Definiera Gradient Boosting

Den här artikeln syftar till att ge dig en bra intuition för vad gradientförstärkning är, utan många nedbrytningar av den matematik som ligger till grund för algoritmerna. När du har en uppskattning för hur gradientförstärkning fungerar på en hög nivå, uppmuntras du att gå djupare och utforska matematiken som gör det möjligt.

Låt oss börja med att definiera vad det innebär att "boosta" en elev. Svaga elever omvandlas till starka elever genom att justera inlärningsmodellens egenskaper. Exakt vilken inlärningsalgoritm förstärks?

Boostande modeller fungerar genom att utöka en annan vanlig maskininlärningsmodell, ett beslutsträd.

A beslutsträd modellfunktioner genom att dela upp en datauppsättning i mindre och mindre delar, och när delmängderna inte kan delas upp ytterligare, blir resultatet ett träd med noder och löv. Noder i ett beslutsträd är där beslut om datapunkter fattas med hjälp av olika filtreringskriterier. Bladen i ett beslutsträd är de datapunkter som har klassificerats. Beslutsträdsalgoritmer kan hantera både numeriska och kategoriska data, och uppdelningar i trädet baseras på specifika variabler/funktioner.

Illustration av hur boostande modeller tränas.
Foto: SeattleDataBuy via Wikimedia Commons, CC 4.0 (https://commons.wikimedia.org/wiki/File:Boosting.png)

En typ av förstärkningsalgoritm är AdaBoost -algoritm. AdaBoost-algoritmer börjar med att träna en beslutsträdsmodell och tilldela varje observation lika vikt. Efter att det första trädet har utvärderats för noggrannhet, justeras vikterna för de olika observationerna. Observationer som var lätta att klassificera får sin vikt sänkta, medan observationer som var svåra att klassificera får sin vikt ökad. Ett andra träd skapas med dessa justerade vikter, med syftet att det andra trädets förutsägelser ska vara mer exakta än det första trädets förutsägelser.

Modellen består nu av förutsägelserna för det ursprungliga trädet och det nya trädet (eller träd 1 + träd 2). Klassificeringsnoggrannheten bedöms ännu en gång utifrån den nya modellen. Ett tredje träd skapas baserat på det beräknade felet för modellen, och vikterna justeras återigen. Denna process fortsätter under ett givet antal iterationer, och den slutliga modellen är en ensemblemodell som använder den viktade summan av de förutsägelser som gjorts av alla tidigare konstruerade träd.

Processen som beskrivs ovan använder sig av beslutsträd och basprediktorer/modeller, men ändå kan ett förstärkande tillvägagångssätt utföras med ett brett utbud av modeller som de många standardklassificerare och regressormodeller. Nyckelbegreppen att förstå är att efterföljande prediktorer lär sig av de misstag som tidigare gjorts och att prediktorerna skapas sekventiellt.

Den främsta fördelen med att förstärka algoritmer är att de tar mindre tid att hitta de aktuella förutsägelserna jämfört med andra maskininlärningsmodeller. Man måste dock vara försiktig när man använder förstärkningsalgoritmer, eftersom de är benägna att överanpassas.

Gradientförstärkning

Vi ska nu titta på en av de vanligaste förstärkningsalgoritmerna. Gradient Boosting Models (GBM) är kända för sin höga noggrannhet, och de förstärker de allmänna principerna som används i AdaBoost.

Den primära skillnaden mellan en Gradient Boosting Model och AdaBoost är att GBM använder en annan metod för att beräkna vilka elever som felidentifierar datapunkter. AdaBoost beräknar var en modell underpresterar genom att undersöka datapunkter som är tungt viktade. Samtidigt använder GBM gradienter för att bestämma elevernas noggrannhet, och tillämpar en förlustfunktion på en modell. Förlustfunktioner är ett sätt att mäta noggrannheten för en modells passning på datamängden, beräkna ett fel och optimera modellen för att minska det felet. GBM låter användaren optimera en specificerad förlustfunktion baserat på deras önskade mål.

Att ta den vanligaste förlustfunktionen – Mean Squared Error (MSE) - som ett exempel, lutning nedstigning används för att uppdatera förutsägelser baserat på en fördefinierad inlärningshastighet, i syfte att hitta de värden där förlusten är minimal.

För att göra det tydligare:

Nya modellförutsägelser = utdatavariabler – gamla imperfekta förutsägelser.

I en mer statistisk mening strävar GBMs efter att hitta relevanta mönster i en modells residualer, justera modellen för att passa mönstret och föra residualerna så nära noll som möjligt. Om du skulle genomföra en regression på modellens förutsägelser, skulle residualerna fördelas runt 0 (perfekt passform), och GBM:er hittar mönster inom residualerna och uppdaterar modellen kring dessa mönster.

Med andra ord uppdateras förutsägelserna så att summan av alla residualer är så nära 0 som möjligt, vilket innebär att de förutsagda värdena kommer att ligga mycket nära de faktiska värdena.

Observera att en mängd andra förlustfunktioner (som logaritmisk förlust) kan användas av en GBM. MSE valdes ovan för enkelhetens skull.

Variationer på modeller för gradientförstärkning

Gradient Boosting Models är giriga algoritmer som är benägna att överanpassa en datauppsättning. Detta kan man skydda sig mot med flera olika metoder som kan förbättra prestandan för en GBM.

GBM kan regleras med fyra olika metoder: Krympning, Trädbegränsningar, Stokastisk Gradient Boosting och Penalized Learning.

Krympning

Som tidigare nämnts summeras förutsägelser i GBM på ett sekventiellt sätt. I "Skrympning" justeras tilläggen av varje träd till den totala summan. Vikter appliceras som saktar ner algoritmens inlärningshastighet, vilket kräver att fler träd läggs till modellen, vilket vanligtvis förbättrar modellens robusthet och prestanda. Avvägningen är att modellen tar längre tid att träna.

Trädbegränsningar

Att begränsa trädet med olika justeringar som att lägga till mer djup till trädet eller öka antalet noder eller löv i trädet kan göra det svårare för modellen att överanpassa. Att införa en begränsning av det minsta antalet observationer per split har en liknande effekt. Återigen är avvägningen att det kommer att ta längre tid för modellen att träna.

Slumpmässigt urval

De individuella inlärarna kan skapas genom en stokastisk process, baserad på slumpmässigt utvalda delstämplar av träningsdatauppsättningen. Detta har effekten att minska korrelationerna mellan träd, vilket skyddar mot överanpassning. Datauppsättningen kan understämplas innan träden skapas eller innan man överväger en uppdelning i trädet.

Bestraffad inlärning

Utöver att begränsa modellen genom att begränsa trädets struktur, är det möjligt att använda ett regressionsträd. Regressionsträd har numeriska värden kopplade till vart och ett av bladen, och dessa fungerar som vikter och kan justeras med vanliga regleringsfunktioner som L1- och L2-regularisering.

Bloggare och programmerare med specialiteter inom Maskininlärning och Deep Learning ämnen. Daniel hoppas kunna hjälpa andra att använda kraften i AI för socialt bästa.