BrownBoost

BrownBoost är en förstärkningsalgoritm som kan vara robust mot bullriga datamängder. BrownBoost är en adaptiv version av boost by majoritetsalgoritmen. Som är sant för alla förstärkningsalgoritmer , används BrownBoost i kombination med andra maskininlärningsmetoder . BrownBoost introducerades av Yoav Freund 2001.

Motivering

AdaBoost fungerar bra på en mängd olika datauppsättningar; det kan dock visas att AdaBoost inte fungerar bra på bullriga datamängder. Detta är ett resultat av AdaBoosts fokus på exempel som upprepade gånger felklassificeras. Däremot "ger BrownBoost upp" på exempel som upprepade gånger felklassificeras. Kärnantagandet för BrownBoost är att bullriga exempel upprepade gånger kommer att felmärkas av de svaga hypoteserna och icke-bullriga exempel kommer att korrekt märkas tillräckligt ofta för att inte "ge upp". Således kommer endast bullriga exempel att "avstås", medan icke-brusande exempel kommer att bidra till den slutliga klassificeraren. I sin tur, om den slutliga klassificeraren lärs från de icke-brusiga exemplen, generaliseringsfelet för den slutliga klassificeraren vara mycket bättre än om den lärs från brusiga och icke-brusiga exempel.

Användaren av algoritmen kan ställa in mängden fel som ska tolereras i träningsuppsättningen. Således, om träningssetet är bullrigt (säg att 10 % av alla exempel antas vara felmärkta), kan boostern uppmanas att acceptera en felfrekvens på 10 %. Eftersom de bullriga exemplen kan ignoreras, kommer bara de sanna exemplen att bidra till inlärningsprocessen.

Algoritmbeskrivning

BrownBoost använder en icke-konvex potentiell förlustfunktion, så den passar inte in i AdaBoost- ramverket. Den icke-konvexa optimeringen ger en metod för att undvika att överanpassa bullriga datamängder. Men i motsats till förstärkningsalgoritmer som analytiskt minimerar en konvex förlustfunktion (t.ex. AdaBoost och LogitBoost ), löser BrownBoost ett system med två ekvationer och två okända med vanliga numeriska metoder.

Den enda parametern för BrownBoost ( i algoritmen) är "tiden" som algoritmen körs. Teorin om BrownBoost säger att varje hypotes tar en variabel tid ( i algoritmen) som är direkt relaterad till vikten som ges till hypotesen . Tidsparametern i BrownBoost är analog med antalet iterationer i AdaBoost.

Ett högre värde på innebär att BrownBoost kommer att behandla data som om de vore mindre brusiga och därför kommer att ge upp färre exempel. Omvänt betyder ett mindre värde på att BrownBoost kommer att behandla data som mer bullriga och ge upp på fler exempel.

Under varje iteration av algoritmen väljs en hypotes med viss fördel framför slumpmässig gissning. Vikten av denna hypotes och "mängden tid som gått" under iterationen löses samtidigt i ett system av två icke-linjära ekvationer ( 1. okorrelerad hypotes med exempelvikter och 2. håll potentialkonstanten) med två okända (hypotesens vikt och tiden som gått ). Detta kan lösas genom tvåsektion (som implementerat i JBoost-programpaketet) eller Newtons metod (som beskrivs i den ursprungliga artikeln av Freund). När dessa ekvationer är lösta uppdateras marginalerna för varje exempel ( algoritmen) och mängden återstående tid på lämpligt sätt. Denna process upprepas tills det inte finns någon tid kvar.

Den initiala potentialen definieras till . Eftersom en begränsning för varje iteration är att potentialen hålls konstant är den slutliga potentialen . Det slutliga felet är alltså troligtvis nära . Den slutliga potentiella funktionen är dock inte 0-1 förlustfelfunktionen. För att det slutliga felet ska vara exakt måste variansen för förlustfunktionen minska linjärt med tiden för att bilda 0-1 förlustfunktion i slutet av förstärkande iterationer. Detta har ännu inte diskuterats i litteraturen och ingår inte i definitionen av algoritmen nedan.

Den slutliga klassificeraren är en linjär kombination av svaga hypoteser och utvärderas på samma sätt som de flesta andra förstärkningsalgoritmer.

BrownBoost inlärningsalgoritm definition

Inmatning:

  • träningsexempel där
  • Parametern

Initiera:

  • . (Värdet på är hur lång tid som återstår i spelet)
  •   . Värdet på är marginalen vid iteration till exempel .

Medan :

  • Ställ in vikterna för varje exempel: där är marginalen av exempel
  • Hitta en klassificerare så att





  • Hitta värden som uppfyller ekvationen: . (Observera att detta liknar villkoret som anges av Schapire och Singer. I den här inställningen hittar vi numeriskt så att .) uppdatering är föremål för begränsningen Φ ( är den potentiella förlusten för en punkt med marginal
  • Uppdatera marginalerna för varje exempel:
  • Uppdatera den återstående tiden:

Utdata:

Empiriska resultat

I preliminära experimentella resultat med bullriga datauppsättningar överträffade BrownBoost AdaBoosts generaliseringsfel; dock LogitBoost lika bra som BrownBoost. En implementering av BrownBoost finns i programvaran med öppen källkod JBoost .

Se även

externa länkar