Gradientförstärkning

Gradientförstärkning är en maskininlärningsteknik som används i bland annat regressions- och klassificeringsuppgifter . Det ger en prediktionsmodell i form av en ensemble av svaga prediktionsmodeller, som vanligtvis är beslutsträd . När ett beslutsträd är den svaga inläraren kallas den resulterande algoritmen för gradientförstärkta träd; den överträffar vanligtvis slumpmässig skog . En gradientförstärkt trädmodell är byggd på ett stegvis sätt som i andra förstärkningsmetoder , men den generaliserar de andra metoderna genom att tillåta optimering av en godtycklig differentierbar förlustfunktion .

Historia

Leo Breimans observation att förstärkning kan tolkas som en optimeringsalgoritm på en lämplig kostnadsfunktion. Explicita regressionsgradientförstärkande algoritmer utvecklades därefter av Jerome H. Friedman , samtidigt med Llew Masons, Jonathan Baxter, Peter Bartlett och Marcus Freans mer allmänna funktionella gradientförstärkningsperspektiv. De två sistnämnda artiklarna introducerade synen på förstärkande algoritmer som iterativa algoritmer för gradientnedstigning . Det vill säga algoritmer som optimerar en kostnadsfunktion över funktionsutrymme genom att iterativt välja en funktion (svag hypotes) som pekar i negativ gradientriktning. Denna funktionella gradientvy av förstärkning har lett till utvecklingen av förstärkningsalgoritmer inom många områden av maskininlärning och statistik bortom regression och klassificering.

Informell introduktion

(Det här avsnittet följer beskrivningen av gradientförstärkning av Cheng.)

Liksom andra förstärkningsmetoder kombinerar gradientförstärkning svaga "lärare" till en enda stark inlärare på ett iterativt sätt. Det är lättast att förklara i minsta kvadraters regression , där målet är att "lära" en modell att förutsäga värden av formen genom att minimera medelkvadratfelet , där indexerar över någon träningsuppsättning av storlek av faktiska värden för utdatavariabeln :

  • det förutsagda värdet
  • det observerade värdet
  • antalet sampel i

Låt oss nu överväga en gradientförstärkningsalgoritm med -steg. Vid varje steg ( ) av gradientförstärkning, anta att någon imperfekt modell (för låg , denna modell kan helt enkelt returnera där RHS är medelvärdet av ). För att förbättra bör vår algoritm lägga till någon ny estimator, . Således,

eller på motsvarande sätt

.

Därför kommer gradientförstärkning att passa till restvärdet . Liksom i andra förstärkningsvarianter försöker varje att korrigera felen i sin föregångare . En generalisering av denna idé till förlustfunktioner än kvadratfel, och till klassificerings- och rangordningsproblem , följer av observationen att residualer för en given modell är proportionella mot de negativa gradienterna för förlustfunktionen för medelkvadratfel (MSE) (med avseende på :

.

Så, gradientförstärkning kan specialiseras till en gradientnedstigningsalgoritm , och att generalisera den innebär att "plugga in" en annan förlust och dess gradient.

Algoritm

I många övervakade inlärningsproblem finns det en utdatavariabel y och en vektor av ingångsvariabler x , relaterade till varandra med en viss probabilistisk fördelning. Målet är att hitta någon funktion som bäst approximerar utdatavariabeln från värdena för indatavariabler. Detta formaliseras genom att införa någon förlustfunktion och minimera den i förväntan:

.

Gradientförstärkningsmetoden antar ett verkligt värde y . Den söker en approximation i form av en viktad summa av M funktioner från några klass , kallade bas- (eller svaga ) elever:

.

Vi får vanligtvis en träningsuppsättning av kända exempelvärden för x och motsvarande värden för y . I enlighet med den empiriska riskminimeringsprincipen försöker metoden hitta en approximation som minimerar medelvärdet av förlustfunktionen på träningssetet, dvs. , minimerar den empiriska risken. Det gör det genom att börja med en modell, som består av en konstant funktion och expanderar den stegvis på ett girigt sätt:

,
,

för , där är en basinlärarfunktion.

Att välja den bästa funktionen i varje steg för en godtycklig förlustfunktion L är tyvärr ett beräkningsmässigt omöjligt optimeringsproblem i allmänhet. Därför begränsar vi vårt tillvägagångssätt till en förenklad version av problemet.

Tanken är att tillämpa ett brantaste nedstigningssteg på detta minimeringsproblem (funktionell gradientnedstigning).

Grundidén bakom den brantaste nedstigningen är att hitta ett lokalt minimum av förlustfunktionen genom att iterera på . Faktum är att förlustfunktionens lokala maximala sänkningsriktning är den negativa gradienten.

Flytta därför en liten mängd så att den linjära approximationen förblir giltig:

där . För små , innebär detta att .

Bevis på funktionell form av derivat
För att bevisa följande, överväg målet

Göra en Taylor-expansion till första ordningens

Om man nu differentierar med återstår bara derivatan av den andra termen . Detta är riktningen för den brantaste uppstigningen och därför måste vi röra oss i motsatt (dvs negativ) riktning för att röra oss i riktningen för den brantaste nedstigningen.

Dessutom kan vi optimera genom att hitta värdet för vilket förlustfunktionen har ett minimum:

Om vi ​​betraktade det kontinuerliga fallet, dvs där är uppsättningen av godtyckliga differentierbara funktioner på , skulle vi uppdatera modellen i enlighet med följande ekvationer

där är steglängden, definierad som

I det diskreta fallet dock, dvs när mängden är finit, väljer vi kandidatfunktionen h närmast gradienten av L för vilken koefficienten γ sedan kan beräknas med hjälp av linjesökning på ovanstående ekvationer. Observera att detta tillvägagångssätt är en heuristik och därför inte ger en exakt lösning på det givna problemet, utan snarare en approximation. I pseudokod är den generiska gradientförstärkningsmetoden:

Indata: träningsuppsättning differentierbar förlustfunktion antal iterationer M .

Algoritm:

  1. Initiera modellen med ett konstant värde:
  2. För m = 1 till M :
    1. Beräkna så kallade pseudo-rester :
    2. Anpassa en basinlärare (eller svag inlärare, t.ex. träd) stängd under skalning till pseudo-rester, dvs träna den med träningsuppsättningen .
    3. Beräkna multiplikatorn genom att lösa följande endimensionella optimeringsproblem :
    4. Uppdatera modellen:
  3. Utgång

Gradient trädförstärkning

Gradientförstärkning används vanligtvis med beslutsträd (särskilt CARTs ) av en fast storlek som basinlärare. För detta speciella fall föreslår Friedman en modifiering av gradientförstärkningsmetoden som förbättrar passformen för varje basinlärare.

Generisk gradientförstärkning vid det m -:te steget skulle passa ett beslutsträd till pseudo-rester. Låt vara antalet av dess blad. Trädet delar upp inmatningsutrymmet i disjunkta regioner och förutspår ett konstant värde i varje region. Med hjälp av indikatornotationen kan utmatningen av för input x skrivas som summan:

där är värdet som förutspås i regionen .

multipliceras koefficienterna vald med hjälp av radsökning för att minimera förlustfunktionen, och modellen uppdateras som följer:

Friedman föreslår att denna algoritm ska modifieras så att den väljer ett separat optimalt värde för var och en av trädets regioner, istället för en enda för hela trädet. Han kallar den modifierade algoritmen för "TreeBoost". Koefficienterna från trädanpassningsproceduren kan sedan helt enkelt kasseras och modelluppdateringsregeln blir:

Storlek på träd

, antalet terminalnoder i träd, är metodens parameter som kan justeras för en datauppsättning till hands. Den styr den maximalt tillåtna nivån av interaktion mellan variabler i modellen. Med ( beslutsstumpar ) tillåts ingen interaktion mellan variabler. Med kan modellen inkludera effekter av interaktionen mellan upp till två variabler, och så vidare.

Hastie et al. kommentera att typiskt fungerar bra för att öka och resultaten är ganska okänsliga för valet av i detta intervall, är otillräckligt för många applikationer, och kommer sannolikt inte att krävas.

Regularisering

Att anpassa träningsuppsättningen för nära kan leda till försämring av modellens generaliseringsförmåga. Flera så kallade regulariseringstekniker minskar denna överanpassningseffekt genom att begränsa anpassningsproceduren.

En naturlig regulariseringsparameter är antalet gradientförstärkande iterationer M (dvs antalet träd i modellen när basinläraren är ett beslutsträd). Att öka M minskar felet på träningssetet, men om man ställer in det för högt kan det leda till överanpassning. Ett optimalt värde på M väljs ofta genom att övervaka prediktionsfel på en separat valideringsdatauppsättning. Förutom att kontrollera M , används flera andra regleringstekniker.

En annan regleringsparameter är trädens djup. Ju högre detta värde är desto mer sannolikt kommer modellen att överpassa träningsdatan.

Krympning

En viktig del av metoden för gradientförstärkning är regularisering genom krympning som består i att modifiera uppdateringsregeln enligt följande:

där parametern kallas "inlärningshastigheten".

Empiriskt har det visat sig att användning av små inlärningshastigheter (som ) ger dramatiska förbättringar i modellers generaliseringsförmåga över gradientförstärkning utan att krympa ( ). Det kommer dock till priset av ökad beräkningstid både under utbildning och förfrågning : lägre inlärningshastighet kräver fler iterationer.

Stokastisk gradientförstärkning

föreslog Friedman en mindre modifiering av algoritmen, motiverad av Breimans bootstrap-aggregation ("bagging")-metod. Specifikt föreslog han att en basinlärare vid varje iteration av algoritmen skulle passa på ett delprov av träningsuppsättningen som dragits slumpmässigt utan ersättning. Friedman observerade en avsevärd förbättring av gradientförstärkningens noggrannhet med denna modifiering.

Delprovstorlek är en konstant bråkdel av storleken på träningsuppsättningen. När är algoritmen deterministisk och identisk med den som beskrivs ovan. Mindre värden på introducerar slumpmässighet i algoritmen och hjälper till att förhindra överanpassning , vilket fungerar som en slags regularisering . Algoritmen blir också snabbare, eftersom regressionsträd måste anpassas till mindre datamängder vid varje iteration. Friedman fick fram att leder till bra resultat för små och medelstora träningsuppsättningar. Därför vanligtvis satt till 0,5, vilket betyder att hälften av träningsuppsättningen används för att bygga upp varje basinlärare.

Liksom vid packning tillåter subsampling en att definiera ett out-of-bag-fel för förbättringen av prediktionsprestanda genom att utvärdera förutsägelser på de observationer som inte användes i byggnaden av nästa basinlärare. Out-of-bag-uppskattningar hjälper till att undvika behovet av en oberoende valideringsdatauppsättning, men underskattar ofta faktisk prestandaförbättring och det optimala antalet iterationer.

Antal observationer i blad

Implementeringar för ökning av gradientträd använder ofta också regularisering genom att begränsa det minsta antalet observationer i trädens terminalnoder. Det används i trädbyggeprocessen genom att ignorera eventuella uppdelningar som leder till noder som innehåller färre än detta antal träningsuppsättningsinstanser.

Att införa denna gräns hjälper till att minska variansen i förutsägelser vid bladen.

Bestraffa trädets komplexitet

En annan användbar regulariseringsteknik för gradientförstärkta träd är att straffa den inlärda modellens modellkomplexitet. Modellens komplexitet kan definieras som det proportionella antalet löv i de inlärda träden. Den gemensamma optimeringen av förlust och modellkomplexitet motsvarar en efterbeskärningsalgoritm för att ta bort grenar som inte lyckas minska förlusten med en tröskel. Andra typer av regularisering som straff på bladvärdena kan också läggas till för att undvika överanpassning .

Användande

Gradientförstärkning kan användas inom området för att lära sig rangordna . De kommersiella webbsökmotorerna Yahoo och Yandex använder varianter av gradientförstärkning i sina maskininlärda rankningsmotorer. Gradientförstärkning används också i högenergifysik i dataanalys. Vid Large Hadron Collider (LHC) lyckades varianter av gradientförstärkande Deep Neural Networks (DNN) reproducera resultaten av icke-maskininlärningsmetoder för analys på datamängder som användes för att upptäcka Higgs- bosonen . Gradientförstärkande beslutsträd användes också i jord- och geologiska studier – till exempel kvalitetsutvärdering av sandstensreservoar.

Namn

Metoden går under en mängd olika namn. Friedman introducerade sin regressionsteknik som en "Gradient Boosting Machine" (GBM). Mason, Baxter et al. beskrev den generaliserade abstrakta klassen av algoritmer som "funktionell gradientförstärkning". Friedman et al. beskriva en utveckling av gradientförstärkta modeller som Multiple Additive Regression Trees (MART); Elith et al. beskriv det tillvägagångssättet som "Boostade Regression Trees" (BRT).

En populär implementering med öppen källkod för R kallar det en "Generalized Boosting Model", men paket som utökar detta arbete använder BRT. Ännu ett namn är TreeNet, efter en tidig kommersiell implementering från Salford Systems Dan Steinberg, en av forskare som banade väg för användningen av trädbaserade metoder. XGBoost är en annan populär modern implementering av metoden med vissa tillägg, som andra ordningens optimering.

Nackdelar

Även om boosting kan öka noggrannheten hos en basinlärare, såsom ett beslutsträd eller linjär regression, offrar det förståelighet och tolkningsbarhet . Till exempel är det trivialt och självförklarat att följa vägen som ett beslutsträd tar för att fatta sitt beslut, men att följa hundratals eller tusentals träds vägar är mycket svårare. För att uppnå både prestanda och tolkningsbarhet tillåter vissa modellkompressionstekniker att transformera en XGBoost till ett enda "pånyttfödd" beslutsträd som approximerar samma beslutsfunktion. Dessutom kan implementeringen vara svårare på grund av det högre beräkningsbehovet.

Se även

Vidare läsning

  •   Boehmke, Bradley; Greenwell, Brandon (2019). "Gradient Boosting". Hands-on maskininlärning med R . Chapman & Hall. s. 221–245. ISBN 978-1-138-49568-5 .

externa länkar