Grundlæggende AI

Hvad er Few-Shot Learning?

mm
Føj Unite.AI til dine foretrukne kilder på Google

Few-shot learning refererer til en række algoritmer og teknikker, der bruges til at udvikle en AI-model med en meget lille mængde træningsdata. Few-shot learning søger at lade en AI-model genkende og klassificere nye data efter at have været udsat for kun få træningseksempler. Few-shot træning står i modsætning til traditionelle metoder til træning af maskinlæringsmodeller, hvor en stor mængde træningsdata typisk bruges. Few-shot learning bruges primært i computer vision.

For at udvikle en bedre intuition for few-shot learning, lad os undersøge begrebet i mere detalje. Vi vil undersøge motivationen og begreberne bag few-shot learning, udforske nogle forskellige typer af few-shot learning og dække nogle modeller, der bruges i few-shot learning på et højt niveau. Til sidst vil vi undersøge nogle anvendelser for few-shot learning.

Hvad er Few-Shot Learning?

“Few-shot learning” beskriver praksis med at træne en maskinlæringsmodel med en minimal mængde data. Typisk trænes maskinlæringsmodeller på store mængder data, jo større jo bedre. However, few-shot learning er et vigtigt maskinlæringsbegreb af flere årsager.

En årsag til at bruge few-shot learning er, at det kan dramatisk reducere mængden af data, der er nødvendig for at træne en maskinlæringsmodel, hvilket reducerer tiden, der er nødvendig for at mærke store datasæt. Ligeså reducerer few-shot learning behovet for at tilføje specifikke funktioner til forskellige opgaver, når man bruger en fælles datasæt til at oprette forskellige eksempler. Few-shot learning kan idealiserer gøre modellerne mere robuste og i stand til at genkende objekter baseret på mindre data, hvilket skaber mere generelle modeller i modsætning til de højtspecialiserede modeller, der er normen.

Few-shot learning bruges mest i computer vision-feltet, da computer vision-problemer kræver enten store mængder data eller en fleksibel model.

Underkategorier

Begrebet “few-shot” learning er faktisk kun en type af læring, der bruger meget få trænings eksempler. Da du kun bruger “få” trænings eksempler, er der underkategorier af few-shot learning, der også involverer træning med en minimal mængde data. “One-shot” learning er en anden type modeltræning, der indebærer at lære en model at genkende et objekt efter at have set kun ét billede af det objekt. De generelle taktikker, der bruges på tværs af one-shot learning og few-shot learning, er de samme. Vær opmærksom på, at begrebet “few-shot” learning kan bruges som en paraplybetegnelse for enhver situation, hvor en model trænes med meget lidt data.

Tilgange til Few-Shot Learning

De fleste tilgange til few-shot learning kan inddeles i tre kategorier: data-niveau tilgange, parameter-niveau tilgange og metrik-baserede tilgange.

Data-niveau Tilgange

Data-niveau tilgange til few-shot learning er meget simple i koncept. For at træne en model, når du ikke har nok træningsdata, kan du bare få mere træningsdata. Der er forskellige teknikker, en data scientist kan bruge til at øge mængden af træningsdata, de har.

Lignende træningsdata kan støtte det præcise mål-data, du træner en klassifikator på. For eksempel, hvis du træner en klassifikator til at genkende bestemte typer hunde, men manglede mange billeder af den specifikke art, du forsøgte at klassificere, kunne du inkludere mange billeder af hunde, der ville hjælpe klassifikatoren med at bestemme de generelle funktioner, der udgør en hund.

Dataforstærkning kan oprette mere træningsdata til en klassifikator. Dette indebærer typisk at anvende transformationer på eksisterende træningsdata, såsom at rotere eksisterende billeder, så klassifikatoren undersøger billederne fra forskellige vinkler. GAN’er kan også bruges til at generere nye trænings eksempler baseret på, hvad de lærer fra de få ægte eksempler på træningsdata, du har.

Parameter-niveau Tilgange

Meta-læring

En parameter-niveau tilgang til few-shot learning indebærer brugen af en teknik kaldet “meta-læring”. Meta-læring indebærer at lære en model, hvordan man lærer, hvilke funktioner er vigtige i en maskinlæringsopgave. Dette kan opnås ved at oprette en metode til at regulere, hvordan parameter-rummet af en model undersøges.

Meta-læring bruger to forskellige modeller: en lærer-model og en elev-model. Lærer-modellen lærer, hvordan man inkapslerer parameter-rummet, mens elev-algoritmen lærer, hvordan man genkender og klassificerer de faktiske elementer i datasættet. For at sige det på en anden måde, lærer-modellen lærer, hvordan man optimerer en model, mens elev-modellen lærer, hvordan man klassificerer. Lærer-modellens output bruges til at træne elev-modellen, hvilket viser elev-modellen, hvordan man navigerer i det store parameter-rum, der resulterer fra for lidt træningsdata. Derfor “meta” i meta-læring.

Et af de primære problemer med few-shot learning-modeller er, at de let kan overfitte på træningsdata, da de ofte har høj-dimensionale rum. At begrænse parameter-rummet af en model løser dette problem, og selvom det kan opnås ved at anvende regulariseringsteknikker og vælge de rette tab-funktioner, kan brugen af en lærer-algoritme dramatisk forbedre few-shot modellens præstation.

En few-shot learning klassifikator-model (elev-modellen) vil forsøge at generalisere baseret på den lille mængde træningsdata, den er blevet præsenteret for, og dens nøjagtighed kan forbedres med en lærer-model til at vejlede den gennem det høj-dimensionale parameter-rum. Denne generelle arkitektur kaldes en “gradient-baseret” meta-lærer.

Den fulde proces for at træne en gradient-baseret meta-lærer er som følger:

  1. Opret den grundlæggende lærer-model (lærer)
  2. Træn den grundlæggende lærer-model på støtte-sættet
  3. Lad den grundlæggende lærer returnere forudsigelser for spørg-sættet
  4. Træn meta-læreren (elev) på tabet, der er afledt fra klassifikationsfejlen

Variationer på Meta-læring

Model-Agnostic Meta-læring er en metode, der bruges til at supplere den grundlæggende gradient-baserede meta-læringsteknik, vi dækkede ovenfor.

Som vi dækkede ovenfor bruger en gradient-baseret meta-lærer den tidligere erfaring, en lærer-model har opnået, til at finjustere sig selv og leverer mere præcise forudsigelser for en lille mængde træningsdata. However, at starte med tilfældigt initialiserede parametre betyder, at modellen stadig kan overfitte data. For at undgå dette oprettes en “Model-agnostisk” meta-lærer ved at begrænse lærer-modellens indflydelse. I stedet for at træne elev-modellen direkte på tabet for forudsigelserne, som lærer-modellen har lavet, trænes elev-modellen på tabet for sine egne forudsigelser.

For hver episode af træning af en model-agnostisk meta-lærer:

  1. En kopi af den nuværende meta-lærer-model oprettes.
  2. Kopien trænes med assistance fra den grundlæggende lærer-model.
  3. Kopien returnerer forudsigelser for træningsdata.
  4. Beregnede tab bruges til at opdatere meta-læreren.

Metric-Læring

Metric-læring tilgange til design af en few-shot learning-model typisk indebærer brugen af grundlæggende distance-metrikker til at lave sammenligninger mellem eksempler i en datasæt. Metric-læring algoritmer som cosinus-afstand bruges til at klassificere spørg-eksempler baseret på deres lighed med støtte-eksemplerne. For en billed-klassifikator ville dette betyde at klassificere billeder baseret på overfladiske karakteristika. Efter at en støtte-sæt af billeder er valgt og transformeret til en indlejring-vektor, gøres det samme med spørg-sættet, og derefter sammenlignes værdierne for de to vektorer, og klassifikatoren vælger den klasse, der har de nærmeste værdier til den vektoriserede spørg-sæt.

En mere avanceret metrik-baseret løsning er “prototypisk netværk”. Prototypiske netværk grupperer data-punkter sammen ved at kombinere klaster-modeller med den metrik-baserede klassifikation, der er beskrevet ovenfor. Som i K-means-klaster, beregnes centroider for klasserne i støtte- og spørg-sættene. En euclidisk distance-metrik anvendes derefter til at bestemme forskellen mellem spørg-sættene og centroiderne af støtte-sættet, og spørg-sættet tildeles til den klasse, der er tættest på.

De fleste andre few-shot learning-tilgange er bare variationer over de grundlæggende teknikker, der er beskrevet ovenfor.

Anvendelser for Few-Shot Learning

Few-shot learning har anvendelser i mange underfelter af datavidenskab, såsom computer vision, naturlig sprogbehandling, robotik, sundhedsvidenskab og signalbehandling.

Anvendelser for few-shot learning i computer vision-rummet inkluderer effektiv tegn-genkendelse, billed-klassifikation, objekt-genkendelse, objekt-sporing, bevægelsesforudsigelse og handling-lokalisation. Naturlig sprogbehandling anvendelser for few-shot learning inkluderer oversættelse, sætning-afslutning, bruger-intention-klassifikation, sentiment-analyse og multi-label tekst-klassifikation. Few-shot learning kan bruges i robotik-feltet til at hjælpe robotter med at lære om opgaver fra kun få demonstrationer, hvilket giver robotter mulighed for at lære, hvordan de kan udføre handlinger, bevæge sig og navigere i verden omkring dem. Few-shot lægemiddel-opdagelse er et nyt område for AI-sundhedsvidenskab. Til sidst har few-shot learning anvendelser for akustisk signalbehandling, som er processen med at analysere lyd-data, hvilket giver AI-systemer mulighed for at klone stemmer baseret på kun få bruger-eksempler eller stemme-omvandling fra en bruger til en anden.

Blogger og programmør med specialer i Machine Learning og Deep Learning emner. Daniel håber at hjælpe andre med at bruge AI's kraft til sociale formål.