stub Vad är Few-Shot Learning? - Unite.AI
Anslut dig till vårt nätverk!

AI 101

Vad är Few-Shot Learning?

mm
Uppdaterad on

Få-shot-inlärning hänvisar till en mängd olika algoritmer och tekniker som används för att utveckla en AI-modell med en mycket liten mängd träningsdata. Få-shot-inlärning strävar efter att låta en AI-modell känna igen och klassificera ny data efter att ha utsatts för jämförelsevis få träningstillfällen. Få-shot-träning står i kontrast till traditionella metoder för att träna maskininlärningsmodeller, där en stor mängd träningsdata vanligtvis används. Få-shot lärande är används främst inom datorseende.

För att utveckla en bättre intuition för få-shot-inlärning, låt oss undersöka konceptet mer i detalj. Vi kommer att undersöka motiven och koncepten bakom få-shot-inlärning, utforska några olika typer av få-shot-inlärning och täcka några modeller som används i få-shot-inlärning på hög nivå. Slutligen kommer vi att undersöka några applikationer för få-shot-inlärning.

Vad är Few-Shot Learning?

"Fow-shot learning" beskriver hur man tränar en maskininlärningsmodell med en minimal mängd data. Vanligtvis tränas maskininlärningsmodeller på stora datamängder, ju större desto bättre. Men inlärning med få skott är ett viktigt maskininlärningskoncept av några olika anledningar.

En anledning till att använda få-shot-inlärning är att det dramatiskt kan minska mängden data som behövs för att träna en maskininlärningsmodell, vilket minskar tiden som behövs för att märka stora datamängder. På samma sätt minskar få-shot-inlärning behovet av att lägga till specifika funktioner för olika uppgifter när en gemensam datauppsättning används för att skapa olika prover. Få-shot-inlärning kan idealiskt göra modeller mer robusta och kunna känna igen objekt-baserade på mindre data, skapa mer generella modeller i motsats till de högt specialiserade modellerna som är normen.

Få-shot-inlärning används oftast inom datorseende, eftersom karaktären av datorseendeproblem kräver antingen stora datamängder eller en flexibel modell.

Underkategorier

Frasen "få-shot"-inlärning är faktiskt bara en typ av inlärning med väldigt få träningsexempel. Eftersom du bara använder "några" träningsexempel, finns det underkategorier av få-shot-inlärning som också involverar träning med en minimal mängd data. "One-shot"-inlärning är en annan typ av modellträning som innebär att man lär en modell att känna igen ett objekt efter att ha sett bara en bild av det objektet. Den allmänna taktiken som används för engångsinlärning och inlärning med få skott är densamma. Var medveten om att termen "få-shot"-inlärning kan användas som en paraplyterm för att beskriva alla situationer där en modell tränas med mycket lite data.

Tillvägagångssätt för inlärning av få skott

De flesta få-shot-inlärningsmetoder kan passa in i en av tre kategorier: tillvägagångssätt på datanivå, tillvägagångssätt på parameternivå och mätetalsbaserade tillvägagångssätt.

Tillvägagångssätt på datanivå

Tillvägagångssätt på datanivå för få-shot-inlärning är mycket enkla i konceptet. För att träna en modell när du inte har tillräckligt med träningsdata kan du bara få mer träningsdata. Det finns olika tekniker som en dataforskare kan använda för att öka mängden träningsdata de har.

Liknande träningsdata kan säkerhetskopiera de exakta måldata som du tränar en klassificerare på. Till exempel, om du tränar en klassificerare att känna igen specifika typer av hundar men saknade många bilder av den speciella arten du försökte klassificera, kan du inkludera många bilder av hundar som skulle hjälpa klassificeraren att avgöra de allmänna egenskaperna som utgör en hund .

Dataökning kan skapa mer träningsdata för en klassificerare. Detta innebär vanligtvis att man tillämpar transformationer på befintlig träningsdata, som att rotera befintliga bilder så att klassificeraren undersöker bilderna från olika vinklar. GAN kan också användas för att generera nya träningsexempel baserat på vad de lär sig från de få autentiska exemplen på träningsdata du har.

Parameternivå närmar sig

Meta-lärande

Ett tillvägagångssätt på parameternivå för få-shot-inlärning involverar användningen av en teknik som kallas "metalärande”. Meta-lärande innebär lära en modell hur man lär sig vilka funktioner som är viktiga i en maskininlärningsuppgift. Detta kan åstadkommas genom att skapa en metod för att reglera hur parameterutrymmet i en modell utforskas.

Meta-learning använder sig av två olika modeller: en lärarmodell och en elevmodell. ”Lärarmodellen” och en ”elevmodell”. Lärarmodellen lär sig hur man kapslar in parameterutrymmet, medan elevalgoritmen lär sig hur man känner igen och klassificerar de faktiska objekten i datamängden. För att uttrycka det på ett annat sätt, lärarmodellen lär sig hur man optimerar en modell, medan elevmodellen lär sig att klassificera. Lärarmodellens utdata används för att träna elevmodellen, och visar elevmodellen hur man förhandlar det stora parameterutrymme som blir resultatet av för lite träningsdata. Därav "meta" i meta-lärande.

Ett av huvudproblemen med få-shot-inlärningsmodeller är att de lätt kan överanpassa träningsdata, eftersom de ofta har högdimensionella utrymmen. Att begränsa parameterutrymmet för en modell löser detta problem, och även om det kan uppnås genom att tillämpa regulariseringstekniker och välja rätt förlustfunktioner, kan användningen av en läraralgoritm dramatiskt förbättra prestandan för en få-shot-modell.

En inlärningsklassificeringsmodell med få skott (studentmodellen) kommer att försöka generalisera baserat på den lilla mängd träningsdata som den tillhandahålls med, och dess noggrannhet kan förbättras med en lärarmodell för att styra den genom det högdimensionella parameterutrymmet. Denna allmänna arkitektur kallas en "gradientbaserad" meta-lärare.

Hela processen för att träna en gradientbaserad meta-inlärare är som följer:

  1. Skapa baslärarmodellen (lärare).
  2. Träna basinlärarmodellen på stödsetet
  3. Få basinlärarens prognoser för frågeuppsättningen
  4. Träna meta-läraren (eleven) på förlusten som härrör från klassificeringsfelet

Variationer på meta-lärande

Modell-agnostisk meta-lärande är en metod som används för att utöka den grundläggande gradientbaserade meta-inlärningstekniken som vi täckte ovan.

Som vi behandlade ovan använder en gradientbaserad meta-lärare den tidigare erfarenhet som en lärarmodell har fått att finjustera sig själv och leverera mer exakta prognoser för en liten mängd träningsdata. Men att börja med slumpmässigt initierade parametrar innebär att modellen fortfarande potentiellt kan överanpassa data. För att undvika detta skapas en ”modellagnostisk” meta-lärare genom att begränsa lärarmodellens/basmodellens inflytande. Istället för att träna elevmodellen direkt på förlusten för de förutsägelser som görs av lärarmodellen, tränas elevmodellen på förlusten för sina egna förutsägelser.

För varje avsnitt av träning av en modellagnostisk meta-lärare:

  1. En kopia av den aktuella meta-lärarmodellen skapas.
  2. Kopian tränas med hjälp av basmodellen/lärarmodellen.
  3. Kopian returnerar förutsägelser för träningsdata.
  4. Beräknad förlust används för att uppdatera meta-läraren.

Metriskt lärande

Metriska inlärningsmetoder för att designa en inlärningsmodell med få skott involverar vanligtvis d användning av grundläggande avståndsmått för att göra jämförelser mellan prover i en datauppsättning. Metriska inlärningsalgoritmer som cosinusavstånd används för att klassificera frågesampel baserat på deras likhet med de stödjande proverna. För en bildklassificerare skulle detta innebära att bara klassificera bilder baserat på likheten mellan ytliga egenskaper. Efter att en stöduppsättning bilder har valts och omvandlats till en inbäddningsvektor, görs samma sak med frågeuppsättningen och sedan jämförs värdena för de två vektorerna, med klassificeraren som väljer den klass som har de närmaste värdena till den vektoriserade frågeuppsättningen .

En mer avancerad måttbaserad lösning är "prototypiskt nätverk”. Prototypiska nätverk kluster datapunkter tillsammans som kombinerar klustringsmodeller med den metrikbaserade klassificeringen som beskrivs ovan. Liksom i K-betyder klustring, beräknas tyngdpunkter för kluster för klasserna i stöd- och frågeuppsättningarna. Ett euklidiskt avståndsmått appliceras sedan för att bestämma skillnaden mellan frågeuppsättningarna och tyngdpunkterna för stöduppsättningen, vilket tilldelar frågeuppsättningen vilken stöduppsättningsklass som ligger närmast.

De flesta andra inlärningsmetoder med få skott är bara varianter av kärnteknikerna som behandlas ovan.

Ansökningar om Få-Shot Learning

Få-shot-inlärning har tillämpningar inom datavetenskapens många olika delområden, såsom datorseende, naturlig språkbehandling, robotik, hälsovård och signalbehandling.

Tillämpningar för få-shot-inlärning i datorseendet inkluderar effektiv teckenigenkänning, bildklassificering, objektigenkänning, objektspårning, rörelseförutsägelse och handlingslokalisering. Tillämpningar för naturlig språkbehandling för få-shot-inlärning inkluderar översättning, slutförande av meningar, klassificering av användaravsikter, sentimentanalys och textklassificering med flera etiketter. Få-shot-inlärning kan användas inom robotikområdet för att hjälpa robotar att lära sig om uppgifter från bara några få demonstrationer, låta robotar lära sig att utföra åtgärder, flytta och navigera i världen runt dem. Upptäckt av få-shot läkemedel är ett framväxande område inom AI-sjukvården. Slutligen, få-shot-inlärning har applikationer för akustisk signalbehandling, vilket är processen att analysera ljuddata, låta AI-system klona röster baserat på bara ett fåtal användarsampel eller röstkonvertering från en användare till en annan.

Bloggare och programmerare med specialiteter inom Maskininlärning och Deep Learning ämnen. Daniel hoppas kunna hjälpa andra att använda kraften i AI för socialt bästa.