AdaBoost
AdaBoost , kort för Adaptive Boosting , är en metaalgoritm för statistisk klassificering som formulerades av Yoav Freund och Robert Schapire 1995, som vann Gödelpriset 2003 för sitt arbete. Den kan användas tillsammans med många andra typer av inlärningsalgoritmer för att förbättra prestandan. Utdata från de andra inlärningsalgoritmerna ('svaga inlärare') kombineras till en viktad summa som representerar slutresultatet från den förstärkta klassificeraren. Vanligtvis presenteras AdaBoost för binär klassificering , även om den kan generaliseras till flera klasser eller avgränsade intervall på den verkliga linjen.
AdaBoost är adaptiv i den meningen att efterföljande svaga elever justeras till förmån för de fall som felklassificerats av tidigare klassificerare. I vissa problem kan det vara mindre mottagligt för överanpassningsproblemet än andra inlärningsalgoritmer. De individuella eleverna kan vara svaga, men så länge prestandan för var och en är något bättre än slumpmässiga gissningar, kan den slutliga modellen bevisas konvergera till en stark elev.
Även om AdaBoost vanligtvis används för att kombinera svaga basinlärare (som beslutsstumpar ), har det visat sig att det också effektivt kan kombinera starka basinlärare (som djupa beslutsträd ), vilket ger en ännu mer exakt modell.
Varje inlärningsalgoritm tenderar att passa vissa problemtyper bättre än andra, och har vanligtvis många olika parametrar och konfigurationer att justera innan den uppnår optimal prestanda på en datauppsättning. AdaBoost (med beslutsträd som de svaga lärarna) kallas ofta för den bästa klassificeraren direkt. När den används med beslutsträdsinlärning matas information som samlats in i varje steg av AdaBoost-algoritmen om den relativa "hårdheten" för varje träningsprov in i trädodlingsalgoritmen så att senare träd tenderar att fokusera på svårare att klassificera exempel.
Träning
AdaBoost hänvisar till en viss metod för att träna en förstärkt klassificerare. En förstärkt klassificerare är en klassificerare av formen
där varje är en svag inlärare som tar ett objekt som indata och returnerar ett värde som anger objektets klass. Till exempel, i tvåklassproblemet identifierar tecknet för den svaga inlärarens resultat den förutsagda objektklassen och det absoluta värdet ger förtroendet för den klassificeringen. På liknande sätt -th klassificeraren positiv om provet är i en positiv klass och negativt annars.
Varje svag elev producerar en utmatningshypotes som fixar en förutsägelse för varje prov i träningsuppsättningen. Vid varje iteration väljs en svag elev och tilldelas en koefficient så att det totala träningsfelet för den resulterande -stegsförstärkt klassificerare minimeras.
Här är den förstärkta klassificeraren som har byggts upp till det föregående träningsstadiet och är den svaga eleven som övervägs för tillägg till den slutliga klassificeraren.
Viktning
Vid varje iteration av träningsprocessen tilldelas en vikt till varje prov i träningsuppsättningen lika med det aktuella felet på det provet. Dessa vikter kan användas i träningen av den svaga eleven. Till exempel kan beslutsträd odlas som gynnar uppdelningen av uppsättningar av prover med stora vikter.
Härledning
Denna härledning följer Rojas (2009):
Anta att vi har en datamängd där varje objekt har en tillhörande klass , och en uppsättning svaga klassificerare som var och en ger en klassificering för varje objekt. Efter -te iterationen är vår förstärkta klassificerare en linjär kombination av formens svaga klassificerare:
- ,
där klassen kommer att vara tecknet för . Vid -te iterationen vill vi utöka detta till en bättre förstärkt klassificerare genom att lägga till ytterligare en svag klassificerare med en annan vikt :
Så det återstår att bestämma vilken svag klassificerare som är det bästa valet för och vad dess vikt ska vara. Vi definierar det totala felet av som summan av dess exponentiella förlust på varje datapunkt, givet enligt följande:
Låter och för har vi:
Vi kan dela denna summering mellan de datapunkter som är korrekt klassificerade av (så ) och de som är felklassificerade (så ):
Eftersom den enda delen av den högra sidan av denna ekvation som beror på är vi ser att k som minimerar är den som minimerar [förutsatt att ], dvs den svaga klassificeraren med det lägsta viktade felet (med vikter .
För att bestämma den önskade vikten som minimerar med som vi just bestämde, skiljer vi:
Att sätta detta till noll och lösa för ger:
eftersom inte beror på
Vi beräknar den viktade felfrekvensen för den svaga klassificeraren till , så det följer att:
vilket är den negativa logitfunktionen multiplicerad med 0,5. På grund av konvexiteten hos som en funktion av detta nya uttryck för det globala minimum av förlustfunktion.
Obs: Denna härledning gäller endast när även om det kan vara en bra startgissning i andra fall, som när den svaga eleven är partisk ( ), har flera blad ( ) eller är någon annan funktion .
Således har vi härlett AdaBoost-algoritmen: Vid varje iteration, välj klassificeraren , vilket minimerar det totala viktade felet felfrekvensen vikten , och använd slutligen detta för att förbättra den förstärkta klassificeraren till .
Statistisk förståelse av boosting
Boostning är en form av linjär regression där funktionerna i varje prov är utdata från någon svag elev applicerad på .
Medan regression försöker anpassa till så exakt som möjligt utan förlust av generalisering, vanligtvis med minsta kvadratfel , medan AdaBoost-felfunktionen tar hänsyn till att endast tecknet för slutresultatet används, alltså kan vara mycket större än 1 utan ökande fel. Den exponentiella ökningen av felet för prov som ökar. vilket resulterar i att överdrivna vikter tilldelas extremvärden.
En egenskap hos valet av exponentiell felfunktion är att felet i den slutliga additivmodellen är produkten av felet för varje steg, det vill säga . Således kan det ses att viktuppdateringen i AdaBoost-algoritmen är likvärdig med omräkning av felet på efter varje steg.
Det tillåts mycket flexibilitet i valet av förlustfunktion. Så länge förlustfunktionen är monoton och kontinuerligt differentierbar , drivs klassificeraren alltid mot renare lösningar. Zhang (2004) tillhandahåller en förlustfunktion baserad på minsta kvadrater, en modifierad Huberförlustfunktion :
Denna funktion är mer väluppfostrad än LogitBoost för nära 1 eller -1, straffar inte "översäkra" förutsägelser ( ), till skillnad från omodifierade minsta kvadrater, och straffar endast prover som är felklassificerade med konfidens större än 1 linjärt, i motsats till kvadratiskt eller exponentiellt, och är därför mindre mottagliga för effekterna av extremvärden.
Förstärkning som gradientnedstigning
Boostning kan ses som minimering av en konvex förlustfunktion över en konvex uppsättning funktioner. Specifikt är förlusten som minimeras av AdaBoost den exponentiella förlusten
,
medan LogitBoost utför logistisk regression, vilket minimerar
.
I gradient descent-analogin betraktas utsignalen från klassificeraren för varje träningspunkt som en punkt i n-dimensionellt utrymme, där varje axel motsvarar ett träningsprov, varje svag elev motsvarar en vektor med fast orientering och längd, och målet är att nå målpunkten (eller någon region där värdet på förlustfunktionen är mindre än värdet vid den punkten), i de minsta stegen. Således utför AdaBoost-algoritmer antingen Cauchy (hitta med den brantaste gradienten, välj för att minimera testfel) eller Newton (välj någon målpunkt, hitta som bringar närmast den punkten) optimering av träningsfel.
Exempelalgoritm (Discrete AdaBoost)
Med:
- Exempel
- Önskade utgångar
- Initialvikter satt till
- Felfunktion
- Svaga elever
För i :
- Välj :
- Hitta svag elev som minimerar , det viktade summafelet för felklassificerade punkter
- Välj
- Lägg till i ensemblen:
- Uppdatera vikter:
- för i
- Renormalisera så att
- (Notera: Det kan visas att vid varje steg, vilket kan förenkla beräkningen av de nya vikterna.)
Varianter
Äkta AdaBoost
Utdata från beslutsträd är en klasssannolikhetsuppskattning , sannolikheten att är i positiv klass. Friedman, Hastie och Tibshirani härleder en analytisk minimering för för vissa fasta (vanligtvis vald med viktat minsta kvadraters fel):
- .
I stället för att multiplicera utmatningen från hela trädet med något fast värde, ändras alltså varje lövnod till att mata ut halva logittransformen av dess tidigare värde.
LogitBoost
LogitBoost representerar en tillämpning av etablerade logistiska regressionstekniker till AdaBoost-metoden. Istället för att minimera felet med avseende på y, väljs svaga elever för att minimera (viktade minsta kvadraters) felet för med avseende på
var
Det vill säga är Newton–Raphson- approximationen av minimeraren av log-sannolikhetsfelet i steg , och den svaga inläraren väljs som den elev som bäst approximerar med viktade minsta kvadrater.
När p närmar sig antingen 1 eller 0, värdet av blir mycket liten och z -termen, som är stor för felklassificerade sampel, kan bli numeriskt instabil på grund av maskinprecisionsavrundningsfel. Detta kan övervinnas genom att upprätthålla en viss gräns för det absoluta värdet av z och minimivärdet för w
Mild AdaBoost
Medan tidigare förstärkningsalgoritmer girigt väljer vilket minimerar det övergripande testfelet så mycket som möjligt vid varje steg, har GentleBoost en begränsad stegstorlek. är vald för att minimera , och ingen ytterligare koefficient tillämpas. Således, i fallet där en svag elev uppvisar perfekt klassificeringsprestanda, väljer GentleBoost exakt lika med , medan de brantaste nedstigningsalgoritmerna försöker sätta . Empiriska observationer om GentleBoosts goda prestanda tycks stödja Schapire och Singers anmärkning om att att tillåta för stora värden på kan leda till dålig generaliseringsprestanda.
Tidig uppsägning
En teknik för att påskynda bearbetningen av förstärkta klassificerare, tidig avslutning avser att endast testa varje potentiellt objekt med så många lager av den slutliga klassificeraren som krävs för att möta ett visst konfidensgränsvärde, vilket påskyndar beräkningen för fall där objektets klass lätt kan bestämmas. Ett sådant schema är ramverket för objektdetektering som introducerats av Viola och Jones: i en applikation med betydligt fler negativa prov än positiva tränas en kaskad av separata boostklassificerare, varvid utsignalen från varje steg är förspänd så att en acceptabel liten del av positiva prover är felmärkt som negativt, och alla prover markerade som negativa efter varje steg kasseras. Om 50 % av negativa prover filtreras bort vid varje steg, skulle endast ett mycket litet antal objekt passera genom hela klassificeraren, vilket minskar beräkningsansträngningen. Denna metod har sedan dess generaliserats, med en formel tillhandahållen för att välja optimala trösklar i varje steg för att uppnå en viss önskad falsk positiv och falsk negativ frekvens.
Inom statistikområdet, där AdaBoost är mer vanligt förekommande på problem med måttlig dimensionalitet, används tidig stopp som en strategi för att minska överanpassning . En valideringsuppsättning prover separeras från träningsuppsättningen, klassificerarens prestanda på proven som används för träning jämförs med prestanda på valideringsproverna och träningen avslutas om prestandan på valideringsprovet ses minska även när prestanda på träningsuppsättningen fortsätter att förbättras.
Helt korrigerande algoritmer
För de brantaste nedstigningsversionerna av AdaBoost, där väljs vid varje lager t för att minimera testfel, sägs nästa lager som läggs vara maximalt oberoende av lager t : det är osannolikt att välja en svag inlärare t+1 som liknar inlärare t . Emellertid kvarstår möjligheten att t+1 producerar liknande information som något annat tidigare lager. Helt korrigerande algoritmer, såsom LPBoost , optimerar värdet av varje koefficient efter varje steg, så att nya lager som läggs alltid är maximalt oberoende av varje tidigare lager. Detta kan åstadkommas genom backfitting, linjär programmering eller någon annan metod.
Beskärning
Beskärning är processen att ta bort dåligt presterande svaga klassificerare för att förbättra minnet och kostnaden för exekveringstid för den förstärkta klassificeraren. De enklaste metoderna, som kan vara särskilt effektiva i samband med totalt korrigerande träning, är vikt- eller marginaltrimning: när koefficienten, eller bidraget till det totala testfelet, för någon svag klassificerare faller under en viss tröskel, är den klassificeraren tappade. Margineantu & Dietterich föreslog ett alternativt kriterium för trimning: svaga klassificerare bör väljas så att mångfalden i ensemblen maximeras. Om två svaga elever producerar mycket lika resultat kan effektiviteten förbättras genom att ta bort en av dem och öka koefficienten för den återstående svaga eleven.
Se även
- Bootstrap aggregering
- CoBoosting
- BrownBoost
- Gradientförstärkning
- Multiplikativ viktuppdateringsmetod § AdaBoost-algoritm
Vidare läsning
- Freund, Yoav; Schapire, Robert E (1997). "En beslutsteoretisk generalisering av on-line-lärande och en tillämpning för att öka". Tidskrift för data- och systemvetenskap . 55 : 119–139. CiteSeerX 10.1.1.32.8918 . doi : 10.1006/jcss.1997.1504 : originaltidning av Yoav Freund och Robert E. Schapire där AdaBoost introduceras först.
- Zhou, Zhihua (2008). "På marginalen förklaring av ökande algoritm" (PDF) . I: Proceedings of the 21st Annual Conference on Learning Theory (COLT'08) : 479–490. På marginalen förklaring av ökande algoritm.
- Zhou, Zhihua (2013). "Om tvivel om marginalförklaring av förstärkning" (PDF) . Artificiell intelligens . 203 (2013): 1–18. arXiv : 1009.3613 . Bibcode : 2010arXiv1009.3613G . doi : 10.1016/j.artint.2013.07.002 . S2CID 2828847 . På tvivel om marginalförklaring av förstärkning.