Kaskadklassificerare

Kaskadkoppling är ett särskilt fall av ensembleinlärning baserat på sammanlänkning av flera klassificerare , med användning av all information som samlas in från utdata från en given klassificerare som ytterligare information för nästa klassificerare i kaskaden. Till skillnad från röstnings- eller staplingsensembler, som är multiexpertsystem, är cascading en flerstegs.

Kaskadklassificerare tränas med flera hundra "positiva" provvyer av ett visst objekt och godtyckliga "negativa" bilder av samma storlek. Efter att klassificeraren har tränats kan den appliceras på en del av en bild och detektera objektet i fråga. För att söka efter objektet i hela ramen kan sökfönstret flyttas över bilden och kontrollera varje plats med klassificeraren. Denna process används oftast inom bildbehandling för objektdetektering och spårning, främst ansiktsdetektering och igenkänning.

Viola och Jones (2001) ansiktsdetektor . Kravet för denna klassificerare var att vara snabb för att kunna implementeras på lågeffektprocessorer, såsom kameror och telefoner.

Algoritmegenskaper

Skalning och rotationer

Det framgår av denna beskrivning att klassificeraren inte accepterar ansikten som är upp och ner (ögonbrynen är inte i rätt position) eller sidan av ansiktet (näsan är inte längre i mitten och skuggor på sidan av näsan kan saknas). Separata kaskadklassificerare måste tränas för varje rotation som inte är i bildplanet (sidan av ansiktet) och måste tränas om eller köras på roterade funktioner för varje rotation som är i bildplanet (vända upp och ned eller lutas mot sida). Skalning är inget problem, eftersom funktionerna kan skalas (centerpixel, vänsterpixel och högerpixel har endast en dimension i förhållande till den undersökta rektangeln). Under de senaste kaskaderna har pixelvärden från någon del av en rektangel jämfört med en annan ersatts med Haar wavelets .

Scenegenskaper

För att ha bra övergripande prestanda måste följande kriterier uppfyllas:

  1. Varje steg måste validera alla ansikten och kan ge många falska positiva resultat. Till exempel, om steg 1 skulle markera som "innehåller inte ett ansikte" 20 % av rektanglarna som innehåller ett ansikte (falsk negativ frekvens = 20 %), får kedjans totala prestanda inte vara högre än 80 % sant positiv, oavsett nästa steg är, eftersom 20 % av ansiktena redan har avvisats.
  2. Detta tyder på att ett bra stadium måste ha 100 % sant positivt och till exempel 40 % falskt positivt, det vill säga acceptera alla rektanglar som innehåller ansikten och felaktigt markera många rektanglar som potentiellt innehållande ett ansikte, för att elimineras i senare skeden. För ett första steg ger 100 % sant positivt och 40 % falskt positivt fortfarande mycket falskt negativt, om bara 1 av 1000 rektanglar i en bild innehåller ett ansikte, kommer det fortfarande att finnas 400 till 1 falska möjliga ansikten efter det första steget .
  3. Om det första steget är mycket snabbt (några operationer), har vi eliminerat 60 % av rektanglarna som inte innehåller ett ansikte mycket snabbt.

Träningsproceduren för ett steg är därför att ha många svaga elever (enkla pixelskillnadsoperatorer), träna dem som en grupp (höja deras vikt om de ger korrekt resultat), men var uppmärksam på att endast ha ett fåtal aktiva svaga elever så att beräkningen tiden förblir låg.

Den första detektorn av Viola & Jones hade 38 steg, med 1 funktion i det första steget, sedan 10, 25, 25, 50 i de följande fem stegen, för totalt 6000 funktioner. De första stegen tar bort oönskade rektanglar snabbt för att undvika att betala beräkningskostnaderna för de kommande stegen, så att beräkningstid går åt till att djupgående analysera den del av bilden som har en hög sannolikhet att innehålla objektet.

Cascade träning

Kaskader görs vanligtvis genom kostnadsmedveten ADAboost. Känslighetströskeln (0,8 i vårt exempel) kan justeras så att det finns nära 100 % sanna positiva och några falska positiva. Proceduren kan sedan startas igen för steg 2, tills önskad noggrannhet/beräkningstid uppnås.

Efter den initiala algoritmen förstod man att träning av kaskaden som helhet kan optimeras för att uppnå en önskad sann detekteringshastighet med minimal komplexitet. Exempel på sådana algoritmer är RCBoost, ECBoost eller RCECBoost. I sina mest grundläggande versioner kan de förstås som att man vid varje steg väljer mellan att lägga till ett stadium eller att lägga till en svag elev till ett tidigare stadium, beroende på vilket som är billigare, tills önskad noggrannhet har uppnåtts. Varje steg i klassificeraren kan inte ha en detekteringshastighet (känslighet) under den önskade hastigheten, så detta är ett begränsat optimeringsproblem . För att vara exakt kommer den totala känsligheten att vara produkten av scenens känslighet.

Kaskadklassificerare finns i OpenCV , med förtränade kaskader för frontala ansikten och överkropp. Att träna en ny kaskad i OpenCV är också möjligt med antingen haar_training eller train_cascades metoder. Detta kan användas för snabb objektdetektering av mer specifika mål, inklusive icke-mänskliga objekt med Haar-liknande egenskaper . Processen kräver två uppsättningar prover: negativa och positiva, där de negativa proverna motsvarar godtyckliga icke-objektbilder. Tidsbegränsningen vid träning av en kaskadklassificerare kan kringgås med hjälp av molnberäkningsmetoder .

Kaskadklassificerare i statistik

Termen används också i statistik för att beskriva en modell som är iscensatt. Till exempel, en klassificerare (till exempel k -medel), tar en vektor av egenskaper (beslutsvariabler) och utdata för varje möjlig klassificering resulterar i sannolikheten att vektorn tillhör klassen. Detta används vanligtvis för att fatta ett beslut (klassificera i klassen med högst sannolikhet), men kaskadklassificerare använder denna utdata som indata till en annan modell (ett annat steg). Detta är särskilt användbart för modeller som har mycket kombinatoriska eller räkneregler (till exempel klass1 om exakt två egenskaper är negativa, klass2 annars), som inte kan anpassas utan att titta på alla interaktionstermer. Att ha kaskadklassificerare gör det möjligt för det successiva steget att gradvis approximera klassificeringens kombinatoriska karaktär, eller att lägga till interaktionstermer i klassificeringsalgoritmer som inte kan uttrycka dem i ett steg.

Som ett enkelt exempel, om vi försöker matcha regeln (klass1 om exakt 2 funktioner av 3 är negativa, klass2 annars), skulle ett beslutsträd vara:

  • funktion 1 negativ
    • funktion 2 negativ
      • funktion 3 negativ -> klass2
      • funktion 3 positiv -> klass1
    • funktion 2 positiv
      • funktion 3 negativ -> klass1
      • funktion 3 positiv -> klass2
  • funktion 1 positiv
    • funktion 2 negativ
      • funktion 3 negativ -> klass1
      • funktion 3 positiv -> klass2
    • funktion 2 positiv
      • funktion 3 negativ -> klass2
      • funktion 3 positiv -> klass2

Trädet har alla kombinationer av möjliga blad för att uttrycka hela regeluppsättningen, medan (funktion1 positiv, funktion2 negativ) och (funktion1 negativ, funktion2 positiv) faktiskt borde ansluta till samma regel. Detta leder till ett träd med för få prover på löven. En tvåstegsalgoritm kan effektivt slå samman dessa två fall genom att ge en medelhög sannolikhet till klass1 om funktion1 eller (exklusiv) funktion2 är negativ. Den andra klassificeraren kan ta upp denna högre sannolikhet och fatta ett beslut om tecknet för funktion3.

I en bias-variansupplösning ses kaskadmodeller vanligtvis som att sänka bias samtidigt som de höjer variansen.

Se även

Källor

  •    Gama, J.; Brazdil, P. (2000). "Kaskadgeneralisering". Maskininlärning . 41 (3): 315–343. CiteSeerX 10.1.1.46.635 . doi : 10.1023/a:1007652114878 . S2CID 36907021 .
  • Minguillón, J. (2002). Om Cascading Small Decision Trees (PhD-avhandling). Universitat Autònoma de Barcelona.
  •    Zhao, H.; Ram, S. (2004). "Begränsad kaskadgeneralisering av beslutsträd". IEEE-transaktioner på kunskaps- och datateknik . 16 (6): 727–739. CiteSeerX 10.1.1.199.2077 . doi : 10.1109/tkde.2004.3 . S2CID 8937272 .