AI-basisprincipes
Wat is Few-Shot Learning?
Few-shot learning verwijst naar een verscheidenheid aan algoritmen en technieken die worden gebruikt om een AI-model te ontwikkelen met een zeer kleine hoeveelheid trainingsdata. Few-shot learning probeert een AI-model te laten herkennen en classificeren van nieuwe data nadat het is blootgesteld aan relatief weinig trainingsvoorbeelden. Few-shot training staat in contrast met traditionele methoden van trainen van machine learning-modellen, waarbij meestal een grote hoeveelheid trainingsdata wordt gebruikt. Few-shot learning wordt voornamelijk gebruikt in computer visie.
Om een beter inzicht te krijgen in few-shot learning, laten we het concept nader onderzoeken. We zullen de motivaties en concepten achter few-shot learning onderzoeken, enkele verschillende soorten few-shot learning bekijken en enkele modellen die in few-shot learning worden gebruikt op hoog niveau behandelen. Ten slotte zullen we enkele toepassingen voor few-shot learning onderzoeken.
Wat is Few-Shot Learning?
“Few-shot learning” beschrijft de praktijk van het trainen van een machine learning-model met een minimale hoeveelheid data. Typisch worden machine learning-modellen getraind op grote hoeveelheden data, hoe groter hoe beter. Echter, few-shot learning is een belangrijk machine learning-concept om een aantal redenen.
Een reden voor het gebruik van few-shot learning is dat het de hoeveelheid data die nodig is om een machine learning-model te trainen aanzienlijk kan verkleinen, wat de tijd die nodig is om grote datasets te labelen vermindert. Bovendien vermindert few-shot learning de noodzaak om specifieke functies toe te voegen voor verschillende taken wanneer een gemeenschappelijke dataset wordt gebruikt om verschillende voorbeelden te creëren. Few-shot learning kan idealiter modellen robuuster maken en in staat stellen om objecten te herkennen op basis van minder data, waardoor meer algemene modellen worden gecreëerd in plaats van de zeer gespecialiseerde modellen die de norm zijn.
Few-shot learning wordt meestal gebruikt in het veld van computer visie, omdat de aard van computer visie-problemen ofwel grote hoeveelheden data of een flexibel model vereist.
Subcategorieën
De term “few-shot” learning is eigenlijk slechts een type leren met zeer weinig trainingsvoorbeelden. Aangezien u slechts “een paar” trainingsvoorbeelden gebruikt, zijn er subcategorieën van few-shot learning die ook betrekking hebben op trainen met een minimale hoeveelheid data. “One-shot” learning is een ander type modeltraining dat betrekking heeft op het leren van een model om een object te herkennen na het zien van slechts één afbeelding van dat object. De algemene tactieken die worden gebruikt in one-shot learning en few-shot learning zijn hetzelfde. Wees zich ervan bewust dat de term “few-shot” learning mogelijk wordt gebruikt als een paraplu-term om elke situatie te beschrijven waarin een model wordt getraind met zeer weinig data.
Benaderingen van Few-Shot Learning
De meeste benaderingen van few-shot learning passen in een van drie categorieën: data-niveau benaderingen, parameter-niveau benaderingen en metrics-gebaseerde benaderingen.
Data-niveau Benaderingen
Data-niveau benaderingen van few-shot learning zijn zeer eenvoudig in concept. Om een model te trainen wanneer u niet genoeg trainingsdata heeft, kunt u gewoon meer trainingsdata krijgen. Er zijn verschillende technieken die een data scientist kan gebruiken om de hoeveelheid trainingsdata te vergroten.
Soortgelijke trainingsdata kunnen de exacte doeldata ondersteunen waarop u een classificator traint. Als u bijvoorbeeld een classificator traint om specifieke soorten honden te herkennen, maar niet veel afbeeldingen van het specifieke ras heeft dat u probeert te classificeren, kunt u veel afbeeldingen van honden opnemen die de classificator helpen om de algemene kenmerken te bepalen die een hond vormen.
Data-augmentatie kan meer trainingsdata creëren voor een classificator. Dit omvat typisch het toepassen van transformaties op bestaande trainingsdata, zoals het roteren van bestaande afbeeldingen zodat de classificator de afbeeldingen vanuit verschillende hoeken onderzoekt. GAN’s kunnen ook worden gebruikt om nieuwe trainingsvoorbeelden te genereren op basis van wat ze leren van de weinige authentieke voorbeelden van trainingsdata die u heeft.
Parameter-niveau Benaderingen
Meta-leren
Een parameter-niveau benadering van few-shot learning omvat het gebruik van een techniek genaamd “meta-leren”. Meta-leren omvat het leren van een model hoe te leren welke functies belangrijk zijn in een machine learning-taak. Dit kan worden gedaan door een methode te creëren om te reguleren hoe de parametersruimte van een model wordt onderzocht.
Meta-leren maakt gebruik van twee verschillende modellen: een leraar-model en een leerling-model. Het “leraar”-model en een “leerling”-model. Het leraar-model leert hoe de parametersruimte te omvatten, terwijl het leerling-algoritme leert hoe de daadwerkelijke items in de dataset te herkennen en classificeren. Om dat anders te zeggen, het leraar-model leert hoe een model te optimaliseren, terwijl het leerling-model leert hoe te classificeren. De uitvoer van het leraar-model wordt gebruikt om het leerling-model te trainen, waarbij het leerling-model wordt getoond hoe de grote parametersruimte die resulteert uit te weinig trainingsdata te navigeren. Vandaar de “meta” in meta-leren.
Een van de belangrijkste problemen met few-shot learning-modellen is dat ze gemakkelijk overfitting kunnen vertonen op trainingsdata, omdat ze vaak hoge dimensionale ruimtes hebben. Het beperken van de parametersruimte van een model lost dit probleem op, en hoewel dit kan worden gedaan door regularisatietechnieken toe te passen en de juiste verliesfuncties te selecteren, kan het gebruik van een leraar-algoritme de prestaties van een few-shot model aanzienlijk verbeteren.
Een few-shot learning classificator-model (het leerling-model) zal proberen te generaliseren op basis van de kleine hoeveelheid trainingsdata die het heeft ontvangen, en de nauwkeurigheid kan verbeteren met een leraar-model om het te leiden door de hoge dimensionale parametersruimte. Deze algemene architectuur wordt een “gradient-gebaseerd” meta-leren genoemd.
Het volledige proces van trainen van een gradient-gebaseerd meta-leren is als volgt:
- Maak het basis-leren (leraar) model
- Train het basis-leren model op de ondersteunende set
- Laat het basis-leren terugkeren naar voorspellingen voor de query-set
- Train het meta-leren (leerling) op de verlies die is afgeleid van de classificatiefout
Variaties op Meta-leren
Model-Agnostic Meta-leren is een methode die wordt gebruikt om de basis gradient-gebaseerde meta-leren techniek die we hierboven hebben behandeld te verbeteren.
Zoals we hierboven hebben behandeld, gebruikt een gradient-gebaseerd meta-leren de ervaring die is opgedaan door een leraar-model om zichzelf te fijnen en nauwkeurigere voorspellingen te leveren voor een kleine hoeveelheid trainingsdata. Echter, beginnen met willekeurig geïnitialiseerde parameters betekent dat het model nog steeds potentieel overfitting kan vertonen. Om dit te voorkomen, wordt een “Model-agnostisch” meta-leren gemaakt door de invloed van het leraar-model/basis-model te beperken. In plaats van het leerling-model rechtstreeks te trainen op de verlies voor de voorspellingen die zijn gedaan door het leraar-model, wordt het leerling-model getraind op de verlies voor zijn eigen voorspellingen.
Voor elke trainingsepisode van een model-agnostisch meta-leren:
- Een kopie van het huidige meta-leren model wordt gemaakt.
- De kopie wordt getraind met de hulp van het basis-model/leraar-model.
- De kopie keert terug naar voorspellingen voor de trainingsdata.
- De berekende verlies wordt gebruikt om het meta-leren bij te werken.
Metric-Leren
Metric-leren benaderingen van het ontwerpen van een few-shot learning-model typisch betrekking hebben op het gebruik van basisafstandsmaten om vergelijkingen te maken tussen voorbeelden in een dataset. Metric-leren algoritmen zoals cosinusafstand worden gebruikt om query-voorbeelden te classificeren op basis van hun gelijkenis met de ondersteunende voorbeelden. Voor een afbeeldingsclassificator zou dit betekenen dat afbeeldingen worden geclassificeerd op basis van de gelijkenis van oppervlakkige kenmerken. Nadat een ondersteunende set van afbeeldingen is geselecteerd en getransformeerd in een embedding-vector, wordt hetzelfde gedaan met de query-set en worden de waarden voor de twee vectoren vergeleken, waarbij de classificator de klasse selecteert die de dichtstbijzijnde waarden heeft tot de vectoriële query-set.
Een meer geavanceerde metric-gebaseerde oplossing is de “prototypische netwerk”. Prototypische netwerken clusteren datapunten samen door clusteringmodellen te combineren met de metric-gebaseerde classificatie die hierboven is beschreven. Net als bij K-means clustering, worden centroids voor clusters berekend voor de klassen in de ondersteunende en query-sets. Een euclidische afstandsmeting wordt vervolgens toegepast om het verschil te bepalen tussen de query-sets en de centroids van de ondersteunende set, waarbij de query-set wordt toegewezen aan de ondersteunende set-klassen die dichterbij zijn.
De meeste andere few-shot learning-benaderingen zijn slechts variaties op de basisTechnieken die hierboven zijn behandeld.
Toepassingen voor Few-Shot Learning
Few-shot learning heeft toepassingen in de vele subvelden van datawetenschap, zoals computer visie, natuurlijke taalverwerking, robotica, gezondheidszorg en signaalverwerking.
Toepassingen voor few-shot learning in de computer visie-ruimte omvatten efficiënte karakterherkenning, afbeeldingsclassificatie, objectherkenning, objectvolging, bewegingsvoorspelling en actielokalisatie. Toepassingen voor few-shot learning in natuurlijke taalverwerking omvatten vertaling, zinvoltooiing, gebruikersintentieclassificatie, sentimentanalyse en multi-label tekstclassificatie. Few-shot learning kan worden gebruikt in het veld van robotica om robots te helpen leren over taken van slechts een paar demonstraties, waardoor robots leren hoe ze acties kunnen uitvoeren, bewegen en navigeren in de wereld om hen heen. Few-shot drug discovery is een opkomend gebied van AI-gezondheidszorg. Ten slotte heeft few-shot learning toepassingen voor akoestische signaalverwerking, wat het proces is van het analyseren van geluidsdata, waardoor AI-systemen stemmen kunnen klonen op basis van slechts een paar gebruikersvoorbeelden of stemomzetting van de ene gebruiker naar de andere.












