CoBoosting
CoBoost är en semi-övervakad träningsalgoritm som föreslagits av Collins och Singer 1999. Den ursprungliga applikationen för algoritmen var uppgiften för Named Entity Classification med mycket svaga elever. Den kan användas för att utföra semi-övervakad inlärning i fall där det finns redundans i funktioner.
Det kan ses som en kombination av samträning och boostning . Varje exempel är tillgängligt i två vyer (undersektioner av funktionsuppsättningen), och förstärkning tillämpas iterativt omväxlande med varje vy med förutspådda etiketter som producerats i den alternativa vyn på föregående iteration. CoBoosting är inte en giltig förstärkningsalgoritm i PAC-inlärningsbemärkelsen .
Motivering
CoBoosting var ett försök av Collins och Singer att förbättra tidigare försök att utnyttja redundans i funktioner för att träna klassificerare på ett semi-övervakat sätt. CoTraining, ett framträdande verk av Blum och Mitchell, visade sig vara ett kraftfullt ramverk för att lära sig klassificerare med tanke på ett litet antal fröexempel genom att iterativt inducera regler i en beslutslista. Fördelen med CoBoosting till CoTraining är att det generaliserar CoTraining-mönstret så att det kan användas med vilken klassificerare som helst. CoBoosting åstadkommer denna bedrift genom att låna koncept från AdaBoost .
I både CoTrain och CoBoost måste tränings- och testexempeluppsättningarna följa två egenskaper. Den första är att exemplens funktionsutrymme kan separeras i två funktionsutrymmen (eller vyer) så att varje vy är tillräckligt uttrycksfullt för klassificering. Formellt finns det två funktioner och så att för alla exempel , . Även om den är idealisk är denna begränsning i själva verket för stark på grund av brus och andra faktorer, och båda algoritmerna försöker istället maximera överensstämmelsen mellan de två funktionerna. Den andra egenskapen är att de två vyerna inte får vara starkt korrelerade.
Algoritm
Inmatning: ,
Initiera: .
För och för :
Ställ in pseudoetiketter:
Ställ in virtuell distribution:
där
Hitta den svaga hypotesen som minimerar utökat träningsfel.
Välj värde för som minimerar utökat träningsfel.
Uppdatera värdet för aktuell klassificerare utan tröskelvärde:
Den slutliga starka klassificeringsutgången är
Konfigurera AdaBoost
CoBoosting bygger på AdaBoost -algoritmen, vilket ger CoBoosting dess generaliseringsförmåga eftersom AdaBoost kan användas i kombination med många andra inlärningsalgoritmer. Denna uppbyggnad förutsätter en klassificeringsuppgift med två klasser, även om den kan anpassas till klassificering med flera klasser. I AdaBoost-ramverket genereras svaga klassificerare i serier samt en fördelning över exempel i träningsuppsättningen. Varje svag klassificerare ges en vikt och den slutliga starka klassificeraren definieras som tecknet på summan av de svaga klassificerarna viktade med deras tilldelade vikt. (Se AdaBoost Wikipedia för notation). I AdaBoost-ramverket har Schapire och Singer visat att träningsfelet begränsas av följande ekvation:
Där är normaliseringsfaktorn för fördelningen . När vi löser i ekvationen för får vi:
Där är funktionen som valts i den aktuella svaga hypotesen. Tre ekvationer definieras som beskriver summan av fördelningarna för vilka den aktuella hypotesen har valt antingen korrekt eller felaktig etikett. Observera att det är möjligt för klassificeraren att avstå från att välja en etikett för ett exempel, där den angivna etiketten är 0. De två etiketterna är valda att vara antingen -1 eller 1.
Schapire och Singer har visat att värdet kan minimeras (och därmed träningsfelet) genom att välja till följande:
Tillhandahållande av konfidensvärden för den aktuella hypotesen baserad på antalet korrekt klassificerade kontra antalet felaktigt klassificerade exempel viktat av fördelningen över exempel. Denna ekvation kan jämnas ut för att kompensera för fall där är för liten. Om vi härleder från denna ekvation får vi:
Träningsfelet minimeras således genom att välja den svaga hypotesen vid varje iteration som minimerar föregående ekvation.
AdaBoost med två vyer
CoBoosting utökar detta ramverk i de fall där man har ett märkt träningsset (exempel från ) och ett omärkt träningsset (från ), samt uppfylla villkoren för redundans i funktioner i form av . Algoritmen tränar två klassificerare på samma sätt som AdaBoost som kommer överens om de märkta träningsuppsättningarna korrekta etiketter och maximerar överensstämmelsen mellan de två klassificerarna på den omärkta träningsuppsättningen. Den slutliga klassificeraren är tecknet på summan av de två starka klassificerarna. Det begränsade träningsfelet på CoBoost utökas enligt följande, där är förlängningen av :
Där är summeringen av hypotesernas vikt med deras konfidensvärden för vyn (j = 1 eller 2). är tecknet för . Vid varje iteration av CoBoost uppdateras båda klassificerarna iterativt. Om är den starka klassificerarens utdata för vyn upp till iteration kan vi ställa in pseudo-etiketterna för den j: e uppdateringen att vara:
I vilken väljer den andra vyn till den som för närvarande uppdateras. delas upp i två så att . Var
Fördelningen över exempel för varje vy vid iteration definieras enligt följande:
Vid vilken punkt kan skrivas om som
Vilket är identiskt med ekvationen i AdaBoost. Således kan samma process användas för att uppdatera värdena för som i AdaBoost med och . Genom att alternera detta, minimeras och på detta sätt minimeras på ett girigt sätt.