Table des matières
CLIP aka "Contrastive Language Image Pre-training" est l'un des algorithmes renommés discutés dans un livre blanc intitulé "Learning Transferable Visual Models From Natural Language Supervision" publié par des chercheurs d'OpenAI - Un laboratoire de recherche en intelligence artificielle. La consommation majeure de CLIP se fait dans les cas d'utilisation basés sur la vision par ordinateur qui utilise un algorithme nommé "Dall-E 2" qui a également été développé par l'équipe Open AI. Plus précisément, CLIP est utilisé comme modèle d'assistance pour l'algorithme "Dall-E 2". Mais ne vous méprenez pas sur le fait que CLIP n'est pas puissant car il est consommé comme modèle d'assistance :)
Bien qu'il s'agisse d'un modèle d'assistance, CLIP est considéré comme une étape importante dans la recherche sur l'apprentissage en profondeur. Nous pouvons implémenter CLIP pour une résolution de problèmes séparée même sans "Dall-E 2". Dans cet article, nous pouvons discuter de l'objectif, de la procédure de travail et de certains des avantages et inconvénients du CLIP à travers des exemples concrets et comment nous pouvons simplifier la vie de nos projets d'apprentissage en profondeur.
L'objectif principal de l'algorithme CLIP est de trouver un texte particulier dans une liste de textes qui ressemble davantage à l'image donnée.
Par example,
Considérons l'image suivante comme entrée-
Et disons que nous avons certains des textes dans une liste donnée-
La tâche principale d'un modèle CLIP est de faire correspondre le texte le plus approprié de la liste donnée à l'image d'entrée, comme indiqué ci-dessous.
Fondamentalement, il s'agit d'un réseau de neurones artificiels qui considère chaque texte de la liste comme une classe et attribue une valeur de probabilité à chaque texte correspondant à l'image. Logiquement, le texte qui obtient la valeur de probabilité maximale peut être considéré comme la sortie.
Un gros point positif du CLIP est qu'il connaît déjà tous les mots de la langue « anglaise ». Certaines des caractéristiques du modèle CLIP qui le rendent spécial par rapport à d'autres algorithmes similaires sont-
Le modèle CLIP ne se limite pas à un seul mot dans le texte. Au lieu de cela, il essaie d'extraire chaque élément d'information de tous les mots de la phrase d'entrée et de tous les pixels d'une image. Il n'oublie jamais de se souvenir de tous les aspects d'une image d'entrée tels que les objets en arrière-plan, la couleur, les formes, etc.
Par example,
Considérons l'image d'entrée suivante-
Tous les textes de la liste donnée, à l'exception du dernier, ressemblent à une correspondance logique pour l'entrée. Tout autre modèle aurait eu du mal à atteindre une valeur de probabilité de conviction élevée pour une classe particulière. Cependant, le CLIP aurait analysé les motifs pour tous les aspects de cette image tels que le chenil, la cellule, le chien, etc.
La lumière du soleil semble venir de l'extérieur vers l'intérieur. Par conséquent, il devrait s'agir d'une structure intérieure. De plus, il y a la présence d'un animal au lieu d'un humain. Par conséquent, cela ne devrait pas être une prison mais pourrait être un chenil.
Ce type d'analyse avancée prenant en compte tous les aspects de l'image et du texte pourrait ne pas être possible pour d'autres modèles de la même ligue.
L'algorithme CLIP a été formé sur 400 millions d'images avec des descriptions de texte appariées qui le rendent très bien informé sur l'univers et confiant dans la résolution de tâches complexes avec des images et des textes complexes.
L'ensemble de données Imagenet ne comprend que 1,2 million d'images. 400 millions, c'est presque 300 fois plus que 1,2 million. La plupart des 400 millions d'images sont directement extraites d'Internet, ce qui en fait une collection très diversifiée et vaste qui augmente sa capacité de détection de motifs.
Pour le développement de l'architecture CLIP, nous avons besoin d'encoder à la fois les images et les textes correspondants en vecteurs mathématiques. En effet, un algorithme d'apprentissage automatique ne pourra pas déduire les informations si elles sont dans un format visuel ou textuel. Par conséquent, nous devons les convertir en valeurs numériques.
L'entrée d'image est convertie en un vecteur mathématique à l'aide d'un algorithme Transformer ou Resnet
L'entrée textuelle est dans un vecteur mathématique à l'aide d'un algorithme Transformer-
Puisque nous avons une liste de paires Image-Texte, nous devons la désigner en utilisant certains alphabets.
Chaque image est notée I1, I2, I3...IN etc.
Chaque texte est dénoté comme T1,T2,T3…TN etc.
Après cela, nous devons construire une matrice de similarité avec chacune des images en lignes et chacun des textes en colonnes.
Comme mentionné dans l'image ci-dessus, les paires diagonales image-texte auront plus de similitudes car elles font référence au même contexte. Les éléments non diagonaux sont des paires aléatoires qui n'appartiennent pas au même contexte. Par conséquent, leur valeur de similarité sera faible.
Le but des fonctions d'optimisation sera d'augmenter au maximum la valeur de similarité pour les paires diagonales et de diminuer la similarité entre les paires image-texte non diagonales.
À un moment donné de l'apprentissage, le modèle sera capable d'apprendre les motifs cachés qui correspondent aux images et aux textes qui appartiennent au même contexte et de différencier les images et les textes qui appartiennent à des contextes différents.
Cette procédure est techniquement appelée "pré-formation contrastée" .
CLIP est considéré comme un algorithme "efficace en termes de calcul". En effet, ils utilisent l'algorithme du transformateur pour encoder des images et des textes qui accèdent aux données de manière parallèle. Si nous utilisons d'autres algorithmes tels que LSTM ou RNN, ils ont tendance à accéder aux données pour l'encodage en série, ce qui peut consommer beaucoup de temps et d'espace.
Étant donné que le CLIP peut faire correspondre une image à une longue phrase, les chercheurs créent généralement une invite de texte quelque chose comme "Une photo d'un _____". Ensuite, tout en parcourant une liste de textes, le programme informatique adapte automatiquement chaque mot de la liste dans cette invite de texte comme-
Ce texte est ensuite codé et mis en correspondance avec le vecteur codé de l'image d'entrée pour calculer la valeur de similarité.
Sur les ensembles de données avec des fractionnements d'entraînement, les performances du CLIP à tir zéro sont en moyenne compétitives avec la simple ligne de base supervisée d'un classificateur linéaire au-dessus des fonctionnalités ResNet-50. Sur la plupart de ces jeux de données, les performances de cette ligne de base sont désormais bien en deçà de l'état de l'art global. Un travail important est encore nécessaire pour améliorer les capacités d'apprentissage et de transfert des tâches de CLIP. Alors que la mise à l'échelle a jusqu'à présent régulièrement amélioré les performances et suggère une voie d'amélioration continue, les chercheurs estiment qu'une augmentation d'environ 1000 fois de l'informatique est nécessaire pour que le CLIP zéro-shot atteigne des performances globales de pointe. Il est impossible de s'entraîner avec le matériel actuel. Des recherches supplémentaires sur l'amélioration de l'efficacité des calculs et des données de CLIP seront nécessaires.
Il s'avère que les performances zéro coup de CLIP sont encore assez faibles sur plusieurs types de tâches. Par rapport aux modèles spécifiques à une tâche, les performances de CLIP sont médiocres sur plusieurs types de classification fine tels que la différenciation des modèles de voitures, des espèces de fleurs et des variantes d'avions. CLIP se débat également avec des tâches plus abstraites et systématiques telles que compter le nombre d'objets dans une image. Enfin, pour les nouvelles tâches qui ne seront probablement pas incluses dans l'ensemble de données de pré-formation de CLIP, telles que la classification de la distance jusqu'à la voiture la plus proche sur une photo, les performances de CLIP peuvent être presque aléatoires.
Alors que le CLIP zéro-shot se généralise bien à de nombreuses distributions d'images naturelles telles qu'étudiées, les chercheurs ont observé que le CLIP zéro-shot se généralise toujours mal aux données qui sont vraiment hors distribution pour lui.
Par exemple, CLIP apprend une représentation OCR sémantique de haute qualité qui fonctionne bien sur le texte rendu numériquement, ce qui est courant dans son ensemble de données de pré-formation, comme en témoignent les performances sur Rendered SST2.
Cependant, CLIP n'atteint qu'une précision de 88% sur les chiffres manuscrits du MNIST. Un embarrassant
la ligne de base simple de la régression logistique sur les pixels bruts surpasse le CLIP zéro-shot. La récupération sémantique et quasi-dupliquée du voisin le plus proche vérifie qu'il n'y a presque pas d'images qui ressemblent aux chiffres MNIST dans notre ensemble de données de pré-formation.
Cela suggère que CLIP ne fait pas grand-chose pour résoudre le problème sous-jacent de la généralisation fragile des modèles d'apprentissage en profondeur. Au lieu de cela, CLIP essaie de contourner le problème et espère qu'en s'entraînant sur un ensemble de données aussi vaste et varié, toutes les données seront effectivement diffusées. Il s'agit d'une hypothèse naïve qui, comme le démontre le MNIST, est facile à violer.
Bien que CLIP puisse générer de manière flexible des classificateurs à tir zéro pour une grande variété de tâches et d'ensembles de données, CLIP est toujours limité à choisir uniquement ces concepts dans un classificateur à tir zéro donné. Il s'agit d'une restriction importante par rapport à une approche vraiment flexible comme le sous-titrage d'image qui pourrait générer de nouveaux résultats.
CLIP ne résout pas non plus la faible efficacité des données de l'apprentissage en profondeur. Au lieu de cela, CLIP compense en utilisant une source de supervision qui peut être étendue à des centaines de millions d'exemples de formation. Si chaque image vue pendant la formation d'un modèle CLIP était présentée à un rythme d'une par seconde, il faudrait 405 ans pour parcourir les 12,8 milliards d'images vues sur 32 époques de formation. Combiner CLIP avec des méthodes d'auto-supervision et d'auto-formation est une direction prometteuse compte tenu de leur capacité démontrée à améliorer l'efficacité des données par rapport à l'apprentissage supervisé standard.
Certains des domaines où CLIP a été utilisé pour résoudre des cas d'utilisation en temps réel sont :
Il existe un site Web appelé "paint.wtf" où nous pouvons jouer à Pictionary. Les joueurs ici seront jugés par le CLIP.
CLIP peut être utilisé pour implémenter des filtres tels que "NSFW (Non sûr pour le travail)".
"DALL-E", un algorithme d'Open AI utilise CLIP comme modèle d'assistance, comme nous l'avons vu précédemment.
CLIP est utilisé pour indexer des photos sur des sites Web comme Unsplash .
CLIP peut être utilisé pour trouver des images appropriées pour des langages complexes tels que la poésie, l'énigme, les rimes, les romans, etc.
CLIP peut également être utilisé pour sélectionner des images corrompues ou déformées. Un nouveau document de recherche intitulé « Problèmes inverses exploitant des représentations contrastées pré-entraînées » montre comment une méthode d'inversion supervisée a été utilisée pour obtenir des représentations efficaces d'images corrompues.
Sorti en 2021, un modèle génératif appelé CLIP + VQGAN ou Vector Quantized Generative Adversarial Network est utilisé dans le paradigme texte-image pour générer des images de tailles variables, à partir d'un ensemble d'invites de texte. Cependant, contrairement à VQGAN, CLIP n'est pas un modèle génératif et est simplement formé pour représenter efficacement les images et le texte.
C'est un fait indéniable dans l'industrie de l'apprentissage en profondeur que CLIP a ouvert la voie au développement d'algorithmes avancés pour résoudre des cas d'utilisation complexes liés au traitement d'images et au NLP.
CLIP peut être considéré comme un aqueduc innovant entre la vision par ordinateur et la PNL. De plus, comme il ne nécessite pas de données d'entraînement spécifiques à une tâche, il est possible d'alimenter d'énormes quantités de données textuelles et cela s'améliorerait lentement de mieux en mieux pour des tâches plus indépendantes.
Nous pouvons ensemble attendre avec impatience les avancées révolutionnaires que CLIP apportera à l'avenir. J'espère que vous avez une introduction de base au concept derrière l'algorithme CLIP de manière lucide.
J'ai ajouté les liens vers le document de recherche dans la section de référence que vous pouvez utiliser au cas où vous auriez besoin de vous référer à la mise en œuvre approfondie.
Documentation CLIP d' Open AI
"Apprentissage de modèles visuels transférables à partir de la supervision du langage naturel" - Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger, Ilya Sutskever
"Problèmes inverses tirant parti des représentations contrastives pré-formées" - Sriram Ravula *, Georgios Smyrnis *, Matt Jordan, Alexandros G. Dimakis, Université du Texas à Austin, NeurIPS 2021
"VQGAN-CLIP : Génération et édition d'images de domaine ouvert avec guidage en langage naturel" - Katherine Crowson, Stella Biderman, Daniel Kornis, Dashiell Stander, Eric Hallahan, Louis Castricato et Edward Raff
Radford, Alec; Narasimhan, Karthik ; Salimans, Tim ; Sutskever, Ilya (11 juin 2018). "Améliorer la compréhension du langage par la pré-formation générative" (PDF) . OpenAI . p. 12. Archivé (PDF) de l'original le 26 janvier 2021. Récupéré le 23 janvier 2021.
Johnson, Khari (5 janvier 2021). "OpenAI lance DALL-E pour générer des images à partir de texte" . Venture Beat. Archivé de l'original le 5 janvier 2021. Récupéré le 5 janvier 2021.
Ramesh, Aditya; Dhariwal, Prafulla ; Nichol, Alex; Chu, Casey ; Chen, Mark (12 avril 2022). "Génération hiérarchique d'images textuelles conditionnelles avec CLIP Latents" . arXiv : 2204.06125 .