Sådan løses de almindelige problemer i billedgenkendelse

Introduktion

De fleste klassificeringsproblemer relateret til billedgenkendelse plages med velkendte og etablerede problemer. For eksempel vil der ofte ikke være tilstrækkelige data til korrekt uddannelse af et klassificeringssystem, dataene kan have nogle underrepræsenterede klasser, og oftest vil arbejde med ukontrollerede data indebære arbejde med dårligt mærkede data.

Data er nøglen, der bestemmer, om din indsats vil mislykkes eller lykkes. Disse systemer har ikke bare brug for flere data end mennesker for at lære og skelne forskellige klasser, de har brug for tusinder af gange mere for at gøre jobbet.

Dyb læring er afhængig af enorme mængder data af høj kvalitet for at forudsige fremtidige tendenser og adfærdsmønstre. Datasættene skal være repræsentative for de klasser, som vi agter at forudsige, ellers vil systemet generalisere den skæve klassefordeling, og bias vil ødelægge din model.

Disse problemer vil normalt have en fælles sag; muligheden for at finde, udpakke og gemme store mængder data og på et andet niveau, rense, sammenstille og behandle disse data.

Selvom vi kan øge computerkraften og datalagringskapaciteten, er en maskine ikke en chance, når du kører et komplekst og stort indviklet neuralt netværk mod et stort datasæt. Det har måske ikke nok plads og vil sandsynligvis ikke have nok computerkraft til at køre klassificeringssystemet. Det vil også kræve adgang til parallel / distribueret computing gennem skyressourcer og at forstå, hvordan man kører, organiserer og sætter komplekse klynger.

Alligevel er det ikke nok at have nok data og magten til at behandle for at forhindre disse problemer.

I dette indlæg skal vi udforske og diskutere forskellige teknikker, der kan løse de problemer, der opstår, når man arbejder med små datasæt, hvordan man mindsker klassens ubalance og hvordan man forhindrer overdreven montering.

Overfør læring

Data kan være det nye kul, der citerer Neil Lawrence, og vi ved, at dybe indlæringsalgoritmer har brug for store sæt mærkede data for at træne et fuldt udbygget netværk fra bunden, men vi klarer ofte ikke fuldt ud at forstå, hvor meget data det betyder. Bare det at finde den mængde data, der imødekommer dine behov, kan være en utallig kilde til frustration, men der er nogle teknikker, såsom en dataforøgelse eller overførselslæring, der sparer dig meget energi og tid til at finde data til din model.

Transfer learning er en populær og meget kraftfuld tilgang, som kort sagt kan opsummeres som processen med at lære fra en foruddannet model, der blev instrueret af et større datasæt. Det betyder at udnytte en eksisterende model og ændre den til dine egne mål. Denne metode involverer at afskære de sidste par lag af en foruddannet model og omskolere dem med dit lille datasæt. Det har følgende fordele:

  • Det skaber en ny model over en ældre model med verificeret effektivitet til billedklassificeringsopgaver. For eksempel kan en model bygges på en CNN-arkitektur såsom Inception-v3 (en CNN udviklet af Google) og foruddannet med ImageNet;
  • Det reducerer træningstiden, da det giver mulighed for genbrug af parametre for at opnå en præstation, der kan tage uger at nå.

Ubalancerede data

Ofte kan andelen af ​​en gruppe etiketter i et datasæt i forhold til de andre være ubalanceret, og det er ofte, at denne minoritetsgruppe af etiketter er det sæt kategorier, som vi er interesseret i netop for dets sjældenhed. Antag for eksempel, at vi har et binært klassificeringsproblem, klasse X repræsenterer 95% af dataene og klasse Y de andre 5%. Modellen er således mere følsom over for klasse X og mindre følsom overfor klasse Y. Da klassificeringsenheden når en nøjagtighed på 95%, vil den dybest set forudsige klasse X hver gang.

Det er klart, at nøjagtighed her ikke er en passende score. I denne situation skal vi overveje omkostningerne ved fejlene, nøjagtigheden og tilbagekaldelsen. Et fornuftigt udgangspunkt er en 2-D repræsentation af de forskellige typer fejl, med andre ord en forvirringsmatrix. I sammenhæng med resultatet af vores klassificering kan det beskrives som metode til at illustrere de faktiske etiketter mod etiketten forudsigelse, som illustreret i nedenstående diagram.

Ved at gemme antallet for hver etiket med ægte positive, falske positive, sande negativer og falske negativer, der er erhvervet fra modellens forudsigelser, kan vi estimere ydelsen for hver etiket ved hjælp af tilbagekaldelse og præcision. Præcision defineres som forholdet:

Genkald defineres som forholdet:

Genkald og / eller præcision vil afsløre et underliggende problem, men ikke løse det. Der er imidlertid forskellige metoder til at afbøde problemerne forbundet med en markant ubalance i fordelingen af ​​klasser:

  • Ved at tildele forskellige koefficienter til hver etiket;
  • Ved at resample det originale datasæt, enten ved oversampling af minoritetsklassen og / eller underudtagning af majoritetsklassen. Når det er sagt, kan oversampling være tilbøjelig til at overdrives, da klassificeringsgrænser vil være mere strenge og små datasæt indfører bias;
  • Ved at anvende SMOTE-metoden (Synthetic Minority Oversampling Technique), der lindrer dette problem, gentager data fra mindre hyppige klasser. Denne metode anvender de samme ideer bag dataforøgelse og gør det muligt at oprette nye syntetiske prøver ved at interpolere mellem nabostillinger fra minoritetsklassen.

Over-fitting

Som vi ved, lærer / generaliserer vores model nøglefunktioner på et datasæt gennem backpropagation og ved at minimere en omkostningsfunktion. Hvert trin frem og tilbage kaldes en epoke, og med hver epoke trænes modellen, og vægterne justeres for at minimere omkostningerne ved fejlene. For at teste nøjagtigheden af ​​modellen er en almindelig regel at opdele datasættet i træningssættet og valideringssættet.

Træningssættet bruges til at indstille og oprette den model, der udgør et forslag baseret på de mønstre, der ligger til grund for træningssættet, valideringssættet tester effektiviteten og valideringen af ​​modellen baseret på usete prøver.

Omend ændringen i valideringsfejlen for en reel sag har en tendens til at vise flere spring og nedture:

I slutningen af ​​hver epoke tester vi modellen med valideringssættet, og på et tidspunkt begynder modellen at huske funktionerne i træningssættet, mens omkostningsfejlen og nøjagtigheden for prøverne på valideringssættet bliver værst. Når vi når dette trin, er modellen overfyldt.

Valg af, hvor stort og komplekst netværket skal være, vil være en bestemmende årsag til overfitting. Komplekse arkitekturer er mere tilbøjelige til overfitting, men der er nogle strategier for at forhindre det:

  • Forøgelse af antallet af prøver på træningssættet; hvis netværket er trænet med mere reelle tilfælde, vil det generalisere bedre;
  • Det er en anden mulighed, at stoppe bagpropagering, når der overmonteres, at kontrollere omkostningsfunktionen og nøjagtigheden af ​​valideringssættet for hver epoke;
  • Anvendelse af en regulariseringsmetode er et andet populært valg for at undgå overfyldning.

L2-regulering

L2-regularisering er en metode, der kan bruges til at reducere en kompleksitet af en model ved at tildele en begrænsning til større individuelle vægte. Ved at indstille en strafbegrænsning reducerer vi afhængigheden af ​​vores model af træningsdataene.

Droppe ud

Frafald er også en almindelig mulighed for regulering, det bruges på de skjulte enheder i højere lag, så vi ender med forskellige arkitekturer for hver epoke. Grundlæggende vælger systemet tilfældigt neuroner, der skal fjernes under træningen. Som følge heraf tvinges netværket ved konstant at omklassificere vægtene til at lære mere generelle mønstre fra dataene.

Konklusion

Som vi har set er der forskellige forskellige metoder og teknikker til at løse de mest almindelige klassificeringsproblemer i billedgenkendelse, hver med deres fordele og potentielle ulemper. Der er problemer som ubalancerede data, overdreven tilpasning, og ofte er der ikke tilstrækkelige data tilgængelige, men som vi har forklaret, kan deres effekt afhjælpes med overførselslæring, samplingmetoder og reguleringsteknikker.

Dette er et område, som vi fortsat udforsker, når vi udvikler vores egen Imaginize-billedgenkendelsesteknologi. Denne nye produktfunktion er designet til at hjælpe vores eCommerce-kunder med at forbedre klassificeringen, mærkningen og findbarheden af ​​deres produkter gennem at være i stand til automatisk at identificere og genkende farver og kategorier.