Grunderna i AI

Vad ÃĪr Gradient Boosting?

mm
LÃĪgg till Unite.AI bland dina fÃķredragna kÃĪllor pÃĨ Google

En vanlig typ av maskinlÃĪrningsmodell som har visat sig vara extremt anvÃĪndbar i datavetenskaps-tÃĪvlingar ÃĪr en gradient boosting-modell. Gradient boosting ÃĪr i princip processen att omvandla svaga lÃĪromodeller till starka lÃĪromodeller. Men hur exakt ÃĨstadkoms detta? LÃĨt oss ta en nÃĪrmare titt pÃĨ gradient boosting-algoritmer och fÃķrstÃĨ bÃĪttre hur en gradient boosting-modell omvandlar svaga lÃĪrmodeller till starka lÃĪrmodeller.

Definiering av Gradient Boosting

Denna artikel syftar till att ge dig en bra intuition fÃķr vad gradient boosting ÃĪr, utan att bryta ner matematiken som ligger till grund fÃķr algoritmerna. NÃĪr du har en uppfattning om hur gradient boosting 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 lÃĪrmodell. Svaga lÃĪrmodeller omvandlas till starka lÃĪrmodeller genom att justera egenskaperna hos lÃĪromodellen. Vilken lÃĪralgoritm ÃĪr det som boostas?

Boosting-modeller fungerar genom att komplettera en annan vanlig maskinlÃĪrningsmodell, ett besluts-trÃĪd.

En besluts-trÃĪd-modell fungerar genom att dela upp en datamÃĪngd i mindre och mindre delar, och nÃĪr delarna inte kan delas upp lÃĪngre, resulterar det i ett trÃĪd med noder och blad. Noder i ett besluts-trÃĪd ÃĪr dÃĪr beslut om datapunkter fattas med hjÃĪlp av olika filterkriterier. Bladen i ett besluts-trÃĪd ÃĪr de datapunkter som har klassificerats. Besluts-trÃĪdsalgoritmer kan hantera bÃĨde numeriska och kategoriska data, och delningar i trÃĪdet baseras pÃĨ specifika variabler/egenskaper.

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

En typ av boosting-algoritm ÃĪr AdaBoost-algoritmen. AdaBoost-algoritmer bÃķrjar med att trÃĪna ett besluts-trÃĪd och tilldela ett lika stort vikt till varje observation. 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 sina vikter sÃĪnkta, medan observationer som var svÃĨra att klassificera fÃĨr sina vikter Ãķkade. Ett andra trÃĪd skapas med hjÃĪlp av dessa justerade vikter, med mÃĨlet att det andra trÃĪdet ska gÃķra mer exakta fÃķrutsÃĪgelser ÃĪn det fÃķrsta trÃĪdet.

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 utvÃĪrderas igen baserat pÃĨ den nya modellen. Ett tredje trÃĪd skapas baserat pÃĨ den berÃĪknade felet fÃķr modellen, och vikterna justeras igen. Denna process fortsÃĪtter i ett visst antal iterationer, och den slutliga modellen ÃĪr en ensemble-modell som anvÃĪnder den viktade summan av fÃķrutsÃĪgelserna gjorda av alla tidigare konstruerade trÃĪd.

Processen som beskrivs ovan anvÃĪnder besluts-trÃĪd och bas-prediktorer/modeller, men en boosting-ansats kan utfÃķras med en mÃĪngd olika modeller som de mÃĨnga standard-klassificerings- och regressions-modellerna. De viktigaste begreppen att fÃķrstÃĨ ÃĪr att efterfÃķljande prediktorer lÃĪr sig av misstagen som gjorts av tidigare prediktorer och att prediktorerna skapas sekventiellt.

Den primÃĪra fÃķrdelen med boosting-algoritmer ÃĪr att de tar mindre tid att hitta de aktuella fÃķrutsÃĪgelserna jÃĪmfÃķrt med andra maskinlÃĪrningsmodeller. Men man mÃĨste vara fÃķrsiktig nÃĪr man anvÃĪnder boosting-algoritmer, eftersom de ÃĪr benÃĪgna att Ãķveranpassa.

Gradient Boosting

Vi ska nu titta pÃĨ en av de vanligaste boosting-algoritmerna. Gradient Boosting-modeller (GBM) ÃĪr kÃĪnda fÃķr sin hÃķga noggrannhet, och de kompletterar de allmÃĪnna principerna som anvÃĪnds i AdaBoost.

Den primÃĪra skillnaden mellan en Gradient Boosting-modell och AdaBoost ÃĪr att GBM anvÃĪnder en annan metod fÃķr att berÃĪkna vilka lÃĪrmodeller som identifierar datapunkter felaktigt. AdaBoost berÃĪknar var en modell presterar dÃĨligt genom att undersÃķka datapunkter som ÃĪr tungt viktade. GBM anvÃĪnder istÃĪllet gradienter fÃķr att bestÃĪmma noggrannheten hos lÃĪrmodellerna, genom att applicera en fÃķrlustfunktion pÃĨ en modell. FÃķrlustfunktioner ÃĪr ett sÃĪtt att mÃĪta noggrannheten hos en modells passning pÃĨ datamÃĪngden, genom att berÃĪkna ett fel och optimera modellen fÃķr att minska felet. GBM tillÃĨter anvÃĪndaren att optimera en specificerad fÃķrlustfunktion baserat pÃĨ det Ãķnskade mÃĨlet.

Med den vanligaste fÃķrlustfunktionen – Medelkvadratfel (MSE) – som exempel, anvÃĪnds gradientnedstigning fÃķr att uppdatera fÃķrutsÃĪgelser baserat pÃĨ en fÃķrdefinierad inlÃĪrningshastighet, med mÃĨlet att hitta vÃĪrdena dÃĪr fÃķrlusten ÃĪr minimal.

FÃķr att gÃķra det tydligare:

Nya modellfÃķrutsÃĪgelser = utdata-variabler – gamla ofullstÃĪndiga fÃķrutsÃĪgelser.

I en mer statistisk mening syftar GBM till att hitta relevanta mÃķnster i en modells rester, genom att justera modellen fÃķr att passa mÃķnstret och bringa resterna sÃĨ nÃĪra noll som mÃķjligt. Om du skulle utfÃķra en regression pÃĨ modellens fÃķrutsÃĪgelser, skulle resterna fÃķrdelas runt 0 (perfekt passning), och GBM hittar mÃķnster inom resterna och uppdaterar modellen runt dessa mÃķnster.

Med andra ord uppdateras fÃķrutsÃĪgelserna sÃĨ att summan av alla rester ÃĪr sÃĨ nÃĪra 0 som mÃķjligt, vilket innebÃĪr att de fÃķrutsagda vÃĪrdena kommer att vara mycket nÃĪra de faktiska vÃĪrdena.

Observera att en mÃĪngd olika fÃķrlustfunktioner (sÃĨsom logaritmisk fÃķrlust) kan anvÃĪndas av en GBM. MSE valdes ovan fÃķr enkelhetens skull.

Variationer pÃĨ Gradient Boosting-modeller

Gradient Boosting-modeller ÃĪr giriga algoritmer som ÃĪr benÃĪgna att Ãķveranpassa pÃĨ en datamÃĪngd. Detta kan skyddas mot med flera olika metoder som kan fÃķrbÃĪttra prestandan hos en GBM.

GBM kan regleras med fyra olika metoder: Shrinkage, TrÃĪdbegrÃĪnsningar, Stokastisk Gradient Boosting och Straffande inlÃĪrning.

Shrinkage

Som tidigare nÃĪmnts, i GBM adderas fÃķrutsÃĪgelserna frÃĨn varje trÃĪd sekventiellt. I “Shrinkage” 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. Kompromissen ÃĪ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 i trÃĪdet eller Ãķka antalet noder eller blad i trÃĪdet kan gÃķra det svÃĨrare fÃķr modellen att Ãķveranpassa. Att infÃķra en begrÃĪnsning fÃķr det minsta antalet observationer per delning har en liknande effekt. Återigen ÃĪr kompromissen att det tar modellen lÃĪngre tid att trÃĪna.

SlumpmÃĪssig urval

De enskilda lÃĪrmodellerna kan skapas genom en stokastisk process, baserad pÃĨ slumpmÃĪssigt valda delmÃĪngder av trÃĪningsdatamÃĪngden. Detta har effekten att reducera korrelationer mellan trÃĪd, vilket skyddar mot Ãķveranpassning. DatamÃĪngden kan delas innan trÃĪd skapas eller innan en delning i trÃĪdet ÃķvervÃĪgs.

Straffande inlÃĪrning

FÃķrutom att begrÃĪnsa modellen genom att begrÃĪnsa trÃĪdet, ÃĪr det mÃķjligt att anvÃĪnda en regressions-trÃĪd. Regressions-trÃĪd har numeriska vÃĪrden kopplade till varje blad, och dessa fungerar som vikter och kan justeras med vanliga regleringsfunktioner som L1 och L2-reglering.

Blogger och programmerare med specialomrÃĨden inom Machine Learning och Deep Learning ÃĪmnen. Daniel hoppas pÃĨ att hjÃĪlpa andra att anvÃĪnda kraften frÃĨn AI fÃķr socialt vÃĪl.