Beeldherkenning heeft een probleem
Traditionele computer vision-modellen werken goed voor specifieke taken, maar generaliseren slecht. Een model dat katten en honden herkent, kan niet zomaar mensen herkennen. Zelfs ImageNET een dataset met 1000 categorieën, heeft zijn beperkingen. Het herkent bijvoorbeeld geen mensen, laat staan dat het onderscheid maakt tussen een kind en een volwassene. Maar nu is er CLIP.
CLIP: Generalisatie in beeldherkenning
Contrastive Language–Image Pre-training (CLIP), ontwikkeld door OpenAI, pakt dit probleem aan. CLIP is ontworpen als een algemeen model dat afbeeldingen begrijpt zonder specifieke training voor elke categorie. Het herkent niet alleen katten en honden, maar ook abstracte concepten zoals “een astronaut op een paard in de ruimte.” Dit maakt het een krachtig computer vision-model: in plaats van meerdere modellen te trainen voor verschillende taken, biedt CLIP een one-size-fits-all oplossing. Een vergelijkbare architectuur wordt ook gebruikt in GPT-4 voor beeldverwerking.
Afbeelding 1. Best matchende beschrijving bij afbeelding volgens CLIP
Hoe CLIP werkt
OpenAI beschrijft CLIP als
Die zero-shot-mogelijkheden betekenen dat het concepten kan herkennen die het nooit eerder heeft gezien. Het model heeft bijvoorbeeld nooit een afbeelding van een “astronaut op een paard in de ruimte” gezien, maar weet wél wat een astronaut, een paard en de ruimte zijn. Door deze begrippen te combineren, kan het de juiste classificatie toekennen. Om te begrijpen hoe CLIP deze generalisatie bereikt en hoe het afbeeldingen met tekst matcht, duiken we dieper in de techniek.
Onder de motorkap
CLIP koppelt tekst en beeld via embeddings—numerieke representaties van data in een hoogdimensionale ruimte. In deze ruimte staan bij elkaar horende afbeeldingen en tekst dicht bij elkaar. Dit maakt het mogelijk om taken zoals beeldbeschrijving, objectdetectie en classificatie uit te voeren. Bij het classificeren van een afbeelding vergelijkt het de afbeeldingsembedding met tekstuele beschrijvingen zoals “A photo of a dog” en “A photo of a cat”. Het model kiest de beschrijving die het beste overeenkomt met de afbeelding.
CLIP is getraind op 400 miljoen afbeelding-tekst paren die van het internet zijn gehaald. Dit biedt een voordeel ten opzichte van traditionele datasets met simpele labels zoals “kat”. CLIP’s dataset bevat rijkere beschrijvingen, zoals “een slapende kat op een stoel” of “een kat die speelt met een balletje”. Hierdoor leert het model niet alleen wat een kat is, maar ook wat een stoel of een balletje is.
Het omzetten van deze afbeelding-tekst paren naar bruikbare embeddings gebeurt in een stap die Contrastive pre-training heet. In deze stap wordt het getraind om echte afbeelding-tekst paren te matchen binnen een batch van N willekeurige paren uit de dataset. In deze stap transformeren een tekst- en afbeelding encoder hun input naar een embedding. Het doel is dat de embeddings van de afbeelding en de tekst van paar 1 hetzelfde zijn, en dit voor alle paren in de batch. Het training proces probeert de cosine-similarity tussen de embeddings van de echte paren te maximaliseren en de gelijkenis tussen de embeddings van de onjuiste paren te minimaliseren.
Afbeelding 2: Contrastive pre-training.
Door dit proces meerdere malen te herhalen voor de gehele dataset lukt het CLIP om representaties van vele concepten te leren. Na het trainen kunnen de geleerde embeddings gebruikt worden voor verschillende doeleinden. CLIP kan gebruikt worden voor de eerdergenoemde classificatie van afbeeldingen, maar er zijn nog meer interessante use cases waar de kwaliteiten van CLIP tot hun recht komen.
Use cases: Waar wordt CLIP voor gebruikt?
CLIP werd oorspronkelijk ontwikkeld voor beeldclassificatie, maar wordt nu voor veel meer toepassingen ingezet:
- Multimodaliteit in LLMs: De mogelijkheid om tekst en afbeeldingen te combineren maakt het gebruik van CLIP modellen in LLMs ook interessant. Zo kunnen ze worden ingezet voor Visual Question Answering, waarbij vragen over afbeeldingen beantwoord worden, of voor multimodale vertaling, zoals het beschrijven van een afbeelding van de gebruiker.
- Semantisch zoeksysteem: Beeldzoekmachines zijn vaak afhankelijk van menselijke handmatige tags en metadata, wat veel werk en foutgevoelig is. CLIP vertaalt tekstuele zoekopdrachten direct naar relevante beelden, zonder dat handmatige tagging nodig is.
- Content moderatie: Door de veelzijdigheid van CLIP is het ook een goede tool om content in online communities veilig te houden. CLIP kan ongewenste content zoals naaktheid, wapens of drugs detecteren en automatisch verwijderen. Dankzij de flexibiliteit kunnen extra categorieën eenvoudig worden toegevoegd zonder het model opnieuw te trainen.
- Toegankelijkheid: Blinden en slechtzienden zijn online afhankelijk van een schermlezer om te vertellen wat er op een webpagina staat. Voor deze schermlezers is het belangrijk dat afbeeldingen een alt tekst hebben die beschrijven wat er op een afbeelding staat. Deze alt tekst is jammer genoeg niet altijd aanwezig. In deze gevallen zou CLIP gebruikt kunnen worden om automatisch een beschrijving van een afbeelding te genereren.
- Aanbevelingssysteem: CLIP kan afbeeldingen matchen zonder tekst. Een gebruiker van een webwinkel kan bijvoorbeeld een foto van een bank uploaden, waarna het systeem soortgelijke producten aanbeveelt.
- Generatieve modellen: Generatieve modellen zoals [DALL-E] en [Stable Diffusion] maken onder de motorkap gebruik van CLIP om het prompt van de gebruiker om te zetten naar bruikbare numerieke input voor een generatief model.
De toekomst van CLIP
CLIP is een veelzijdige oplossing voor het probleem van generalisering in computer vision. De mogelijkheid om afbeeldingen en tekst te begrijpen opent de deur naar diverse toepassingen, van contentmoderatie tot verbeterde toegankelijkheid, efficiënte aanbevelingssystemen en nog vele andere toepassingen.
Bovendien laat de integratie in moderne LLMs zoals GPT-4 zien dat CLIP verder gaat dan computer vision alleen. De technologie maakt AI nog flexibeler en krachtiger. En met de snelheid waarmee AI zich ontwikkelt, is dit pas het begin.