Auteur : Steven Wang

"Ce que je ne peux pas créer, je ne le comprends pas." -

Richard Feynman

Préface

Créez de belles images avec Stable Diffusion et MidJourney à vos côtés.

Vous maîtrisez ChatGPT et LLaMa pour créer un texte élégant.

Vous basculez entre MuseNet et MuseGAN pour créer la musique des montagnes et de l’eau qui coule.

Il ne fait aucun doute que la capacité la plus unique de l’être humain est la création, mais aujourd’hui, avec le développement rapide de la technologie, nous créons en créant des machines ! Les machines peuvent dessiner des œuvres d'art originales dans un style donné (dessiner), écrire un long article cohérent (écrire), créer de la belle musique (composer) et développer des stratégies gagnantes pour des jeux complexes (jouer). Cette technologie est l'intelligence artificielle générative (GenAI). Ce n'est que le début de la révolution GenAI. C'est le meilleur moment pour apprendre la GenAI.

1. Générer et discriminer des modèles

GenAI est un mot à la mode, et son essence est le modèle génératif, qui est une branche de l'apprentissage automatique. L'objectif est de former un modèle pour générer de nouvelles données similaires à un ensemble de données donné.

Disons que nous avons un ensemble de données de chevaux. Premièrement, nous pouvons former un modèle génératif sur cet ensemble de données pour capturer les règles qui régissent les relations complexes entre les pixels dans les images de chevaux. Vous échantillonnez ensuite ce modèle pour créer des images réalistes de chevaux qui ne sont pas présents dans l'ensemble de données d'origine, comme indiqué ci-dessous.

Afin de véritablement comprendre les objectifs et l’importance des modèles génératifs, il est nécessaire de les comparer aux modèles discriminants. En fait, la plupart des problèmes d'apprentissage automatique sont résolus par des modèles discriminants. Voir les exemples suivants.

Supposons que nous ayons un ensemble de données de peintures, certaines peintes par Van Gogh et d'autres peintes par d'autres artistes. Avec suffisamment de données, nous pouvons former un modèle discriminant pour prédire si un tableau donné a été peint par Van Gogh, comme le montre la figure ci-dessous.

Lors de l'utilisation du modèle discriminant, chaque exemple de l'ensemble d'apprentissage a une étiquette. Pour le problème de deux classifications ci-dessus, l'étiquette de la peinture de Van Gogh est généralement 1 et celle de la peinture non Van Gogh est 0. La dernière probabilité prédite du modèle dans l'image ci-dessus est de 0,83, il est donc très probable qu'il ait été réalisé par Van Gogh. Contrairement au modèle discriminant, le modèle génératif n'exige pas que les exemples contiennent des étiquettes car son objectif est de générer de nouvelles données plutôt que de prédire des étiquettes pour les données.

Après avoir lu l'exemple, utilisons la notation mathématique pour définir avec précision le modèle génératif et le modèle discriminatif :

  • Le modèle discriminant modélise P(y|x), estimant la probabilité conditionnelle d'une étiquette y étant donné une caractéristique x.

  • Les modèles génératifs modèlent P(x), estiment directement la probabilité de la caractéristique x et échantillonnent à partir de cette distribution de probabilité pour générer de nouvelles fonctionnalités.

Il est important de noter que même si nous étions capables de construire un modèle discriminant capable d'identifier parfaitement les peintures de Van Gogh, il ne saurait toujours pas comment créer une peinture qui ressemble à Van Gogh. Il ne pourrait produire qu'une probabilité de savoir si l'image est réelle. était de Van Gogh la possibilité de la main. On voit que générer des modèles est beaucoup plus difficile que discriminer des modèles.

2. Cadre de génération de modèles

Avant de comprendre le cadre du modèle génératif, jouons à un jeu. Supposons que les points de la figure ci-dessous soient générés par une certaine règle, appelons cette règle Pdata, et laissons maintenant générer un x = (x1, x2) différent afin que ce point semble être généré par la même règle Pdata.

Comment généreriez-vous ce point ? Vous pouvez utiliser les points donnés pour générer un modèle Pmodel dans votre esprit, et les positions occupées par ce modèle peuvent générer les points souhaités. On voit que le modèle Pmodel est l’estimation de Pdata. Ensuite, le modèle Pmodel le plus simple ressemble à la boîte orange dans la figure ci-dessous. Les points ne peuvent être générés qu'à l'intérieur de la boîte, mais pas à l'extérieur de la boîte.

Pour générer de nouveaux points, nous pouvons sélectionner au hasard un point dans la boîte, ou plus strictement parlant, un échantillon de la distribution modèle Pmodel. Il s'agit d'un modèle génératif minimaliste. Vous créez un modèle (case orange) à partir des données d'entraînement (points noirs), puis vous échantillonnez à partir du modèle, en espérant que les points résultants ressembleront aux points de l'ensemble d'entraînement.

Nous pouvons désormais proposer formellement un cadre pour l’apprentissage génératif.

Dévoilons maintenant la distribution réelle de génération de données Pdata et voyons comment appliquer le cadre ci-dessus à cet exemple. D'après la figure ci-dessous, nous pouvons voir que la règle de génération de données Pdata est que les points ne sont répartis que uniformément sur la terre et n'apparaissent pas dans l'océan.

Il est évident que notre modèle Pmodel est une simplification de la règle Pdata. La vérification des points A, B et C dans la figure ci-dessus peut nous aider à comprendre si le modèle Pmodel imite avec succès la règle Pdata.

  • Le point A ne respecte pas la règle Pdata car il se trouve dans la mer, mais peut être généré par le modèle Pmodel car il se trouve dans la boîte orange.

  • Le point B ne peut pas être généré par le modèle Pmodel car il apparaît en dehors de la boîte orange, mais est conforme à la règle Pdata car il se produit sur terre.

  • Le point C est généré par le modèle Pmodel et est conforme à la règle Pdata.

Cet exemple démontre les concepts de base de la modélisation générative. Bien que l'utilisation de modèles génératifs soit en réalité beaucoup plus compliquée, le cadre de base est le même.

3. Le premier modèle génératif

Supposons que vous soyez le directeur de la mode (CFO) d'une entreprise et que votre travail consiste à créer de nouveaux vêtements à la mode. Cette année, vous recevez 50 ensembles de données sur les combinaisons de mode (comme indiqué ci-dessous) et vous devez créer 10 nouvelles combinaisons de mode.

Bien que vous soyez Chief Fashion Officer, vous êtes également data scientist, vous décidez donc d'utiliser un modèle génératif pour résoudre ce problème. Après avoir regardé les 50 images ci-dessus, vous décidez d'utiliser cinq caractéristiques : le type d'accessoires, la couleur des vêtements, le type de vêtements, la couleur des cheveux et le type de cheveux. Décrivez les tenues à la mode.

Les 10 principales fonctionnalités de données d’image sont les suivantes.

Chaque caractéristique possède également un nombre différent de valeurs propres :

  • 3 types d'accessoires :

    • Blanc, Rond, Lunettes De Soleil

  • 8 couleurs de vêtements :

    • Noir, Bleu01, Gris01, Vert Pastel, Orange Pastel, Rose, Rouge, Blanc

  • 4 types de vêtements :

    • Sweat à capuche, salopette, ShirtScoopneck, ShirtVneck

  • 6 couleurs de cheveux :

    • Noir, blond, marron, rose pastel, rouge, gris argenté.

  • 7 types de cheveux :

    • NonCheveux, cheveux longsChignon, cheveux longsbouclés, cheveux longsdroits, cheveux courtscourtsondulés, cheveux courtscourtsplats, cheveux courtsfrisés

Il existe 3 * 8 * 4 * 6 * 7 = 4032 combinaisons de fonctionnalités, on peut donc imaginer que l'espace échantillon contient 4032 points. À partir des 50 points de données donnés, nous pouvons voir que Pdata préfère certaines valeurs de fonctionnalités pour différentes fonctionnalités. D’après le tableau ci-dessus, nous pouvons voir qu’il y a plus de couleurs de vêtements blancs et de couleurs de cheveux gris argenté dans les images. Comme nous ne connaissons pas les vrais Pdata, nous ne pouvons utiliser que ces 50 données pour construire un Pmodel afin qu'il soit proche de Pdata.

3.1 Modèle minimaliste

L'une des méthodes les plus simples consiste à attribuer un paramètre de probabilité à chaque point des 4 032 combinaisons de caractéristiques. Le modèle contient alors 4 031 paramètres, car la somme de tous les paramètres de probabilité donne 1. Vérifions maintenant les 50 données une par une, puis mettons à jour les paramètres du modèle (θ1, θ2,…, θ4031). L'expression de chaque paramètre est :

Parmi eux, N est le nombre de données d'observation, qui est de 50, et nj est le nombre de j-èmes combinaisons de caractéristiques apparaissant dans 50 données.

Par exemple, la combinaison de caractéristiques (appelée combinaison 1) de (LongHairStraight, Red, Round, ShirtScoopNeck, White) apparaît deux fois, puis

Par exemple, la combinaison de fonctionnalités (appelée combinaison 2) de (LongHairStraight, Red, Round, ShirtScoopNeck, Blue01) n'apparaît pas, alors

Selon les règles ci-dessus, nous calculons une valeur θ pour toutes les 4031 combinaisons. Il n'est pas difficile de voir que de nombreuses valeurs θ sont 0. Ce qui est pire, c'est que nous ne pouvons pas générer de nouvelles images invisibles (θ = 0 signifie à partir d'aucune image). avec cette combinaison de caractéristiques ont été observées). Pour résoudre ce problème, ajoutez simplement le nombre total de caractéristiques d au dénominateur et 1 au numérateur, une astuce appelée lissage de Laplace.

Désormais, chaque combinaison (y compris celles qui ne figurent pas dans l'ensemble de données d'origine) a une probabilité d'échantillonnage non nulle, mais ce n'est toujours pas un modèle génératif satisfaisant car la probabilité qu'un point ne figure pas dans l'ensemble de données d'origine est une constante. Si nous essayons d’utiliser un tel modèle pour générer un tableau de Van Gogh, il fonctionnera sur les deux tableaux avec la même probabilité :

  1. Reproduction de la peinture originale de Van Gogh (pas dans l'ensemble de données original)

  2. Peinture composée de pixels aléatoires (pas dans l'ensemble de données d'origine)

Ce n'est évidemment pas ce que nous voulons pour un modèle génératif, nous voulons qu'il apprenne une structure inhérente à partir des données et soit ainsi capable d'augmenter les poids de probabilité des régions de l'espace échantillon qu'il pense être plus probables, plutôt que de mettre toutes les probabilités en évidence. poids dans le point d’existence de l’ensemble de données.

3.2 Modèle sous-simplifié

Le modèle Naive Bayes peut réduire considérablement le nombre de combinaisons des fonctionnalités ci-dessus. Selon son modèle, on suppose que chaque fonctionnalité est indépendante les unes des autres. En revenant aux données ci-dessus, il n'y a aucun lien entre la couleur des cheveux d'une personne (caractéristique xj) et la couleur de ses vêtements (caractéristique xk). L'expression mathématique est :

p(xj | xk) = p(xk)

Avec cette hypothèse, nous pouvons calculer

Le modèle Naive Bayes simplifie le problème initial consistant à « faire une estimation de probabilité pour chaque combinaison de caractéristiques » en « faire une estimation de probabilité pour chaque caractéristique ». À l'origine, nous devions utiliser 4031 (3 * 8 * 4 * 6 * 7) paramètres. Seuls 23 (3 + 8 + 4 + 6 + 7) paramètres sont requis, et l'expression de chaque paramètre est :

Parmi eux, N est le nombre de données d'observation, qui est de 50, et nkl est le nombre de l-ième valeurs propres pour la k-ième caractéristique.

En comptant 50 données, le tableau suivant donne les valeurs des paramètres du modèle Naive Bayes.

Pour calculer la probabilité que le modèle génère une certaine caractéristique de données, il vous suffit de multiplier les probabilités dans le tableau, par exemple :

La combinaison ci-dessus n'apparaît pas dans l'ensemble de données d'origine, mais le modèle lui attribue toujours une probabilité non nulle, elle peut donc toujours être générée par le modèle. Par conséquent, le modèle Naive Bayes est capable d'apprendre une certaine structure à partir des données et de l'utiliser pour générer de nouveaux exemples non vus dans l'ensemble de données d'origine. L'image ci-dessous est une image de 10 nouvelles combinaisons de mode générées par le modèle.

Dans ce problème, seules 5 caractéristiques appartiennent à des données de faible dimension. Il est raisonnable pour le modèle naïf de Bayes de supposer qu'elles sont indépendantes les unes des autres, donc les résultats générés par le modèle ne sont pas mauvais. effondrement.

4. Difficultés à générer des modèles

4.1 Données de grande dimension

En tant que responsable de la mode, vous avez généré avec succès 10 nouvelles tenues de mode à l'aide de Naive Bayes. Vous êtes extrêmement confiant et sentez que votre modèle est invincible jusqu'à ce que vous rencontriez l'ensemble de données suivant.

Cet ensemble de données n'est plus représenté par cinq entités, mais par 32*32 = 1024 pixels. Chaque valeur de pixel peut être comprise entre 0 et 255, 0 représentant le blanc et 255 représentant le noir. Le tableau suivant répertorie les 10 premières valeurs de pixels de l'image 1 à 5.

Utilisez le même modèle pour générer 10 nouveaux ensembles de correspondances de mode. Voici les résultats générés par le modèle. Chacun est très similaire en apparence et différentes caractéristiques ne peuvent pas être distinguées.

Tout d’abord, puisque le modèle Naive Bayes échantillonne les pixels indépendamment, les pixels adjacents sont en réalité très similaires. Pour les vêtements, les pixels devraient en fait être à peu près les mêmes, mais le modèle échantillonne au hasard, donc les vêtements sur l'image ci-dessus sont tous colorés. Deuxièmement, il existe trop de possibilités dans l’espace échantillon de grande dimension, dont seule une petite partie est identifiable. Si un modèle Naive Bayes traite directement de valeurs de pixels aussi hautement corrélées, les chances qu'il trouve une combinaison de valeurs satisfaisante sont très faibles.

En résumé, pour un espace échantillon de faible dimension avec une faible corrélation de caractéristiques, l'effet Bayes naïf est très bon grâce à un échantillonnage indépendant, mais pour un espace échantillon de haute dimension avec une corrélation de caractéristiques élevée, l'effet effectif est trouvé grâce à un échantillonnage indépendant des pixels ; . Les visages humains sont presque impossibles.

Cet exemple met en évidence deux difficultés que les modèles génératifs doivent surmonter pour réussir :

  1. Comment le modèle gère-t-il les dépendances conditionnelles entre les fonctionnalités de grande dimension ?

  2. Comment le modèle trouve-t-il une très petite proportion d’observations qui remplissent les conditions d’un espace échantillon de grande dimension ?

Si les modèles génératifs veulent réussir dans un espace échantillon aux dimensions élevées et aux fonctionnalités hautement corrélées, ils doivent utiliser des modèles d’apprentissage profond. Nous avons besoin d’un modèle capable de déduire des structures pertinentes à partir des données, plutôt que de savoir à l’avance quelles hypothèses faire. L’apprentissage profond peut former ses propres caractéristiques dans un espace de faible dimension, et il s’agit d’une forme d’apprentissage par représentation.

4.2 Apprentissage des représentations

L’apprentissage des représentations signifie l’apprentissage de représentations de données de grande dimension.

Supposons que vous alliez rencontrer une amie en ligne que vous n'avez jamais rencontrée auparavant. Lorsque vous arrivez au lieu de rendez-vous, il y a tellement de personnes que vous ne pouvez pas la trouver. Vous l'appelez pour lui décrire votre apparence. Je pense que vous ne diriez pas que la couleur du pixel 1 de votre image est noire, la couleur du pixel 2 est noir clair, la couleur du pixel 3 est grise, etc. Au contraire, on pourrait penser que les internautes auraient une compréhension générale de l'apparence des gens ordinaires, et utiliseraient ensuite cette compréhension pour décrire les caractéristiques du groupe de pixels. Par exemple, vous avez les cheveux noirs courts et portez une paire de lunettes scintillantes. , etc. Habituellement, avec pas plus de 10 descriptions de ce type, un internaute peut générer une image de vous dans son esprit. L'image peut être grossière, mais cela ne l'empêche pas de vous trouver parmi des centaines de personnes, même si elle ne vous a jamais rencontré.

C'est l'idée centrale de l'apprentissage des représentations. Au lieu d'essayer de modéliser directement un espace échantillon de grande dimension, nous utilisons un espace latent de basse dimension pour décrire chaque élément de l'ensemble d'apprentissage, observez les résultats, puis apprenez une fonction de cartographie qui prend. un point dans l’espace latent et le mappe à l’espace échantillon d’origine. En d’autres termes, chaque point de l’espace latent représente les caractéristiques de données de grande dimension.

Si ce qui précède n'est pas facile à comprendre, veuillez consulter l'ensemble de formation ci-dessous qui se compose de quelques images de pots en niveaux de gris.

Il n’est pas difficile de voir que ces jarres peuvent être décrites par seulement deux caractéristiques : la hauteur et la largeur. Par conséquent, nous pouvons convertir l’espace de pixels de grande dimension de l’image en un espace latent bidimensionnel, comme le montre la figure ci-dessous. De cette façon, nous pouvons échantillonner l'espace latent (points bleus) et le convertir en image via la fonction de mappage f.

Reconnaître que l'ensemble de données d'origine peut être représenté par un espace latent plus simple n'est pas facile pour la machine. Tout d'abord, la machine doit déterminer que la hauteur et la largeur sont les deux dimensions de l'espace latent qui décrivent le mieux l'ensemble de données, puis apprendre le mappage. La fonction $$f$$ peut prendre un point dans cet espace et le mapper sur une carte de pot en niveaux de gris. L’apprentissage profond nous permet d’entraîner des machines à trouver ces relations complexes sans intervention humaine.

5. Classification des modèles génératifs

Tous les types de modèles génératifs visent en fin de compte à résoudre la même tâche, mais ils modélisent tous la fonction de densité de manière légèrement différente. De manière générale, ils se répartissent en deux catégories :

  • Modéliser explicitement la fonction de densité,

    • Mais contraignez le modèle d'une manière ou d'une autre afin que la fonction de densité puisse être calculée, comme un modèle FLOW normalisant.

    • Mais l'approximation de la fonction de densité, comme l'auto-encodeur variationnel (VAE) et le modèle de diffusion (modèle de diffusion)

  • Modélisation implicite de la fonction de densité par un processus stochastique qui génère directement les données. Par exemple, le réseau contradictoire génératif (GAN)

Résumer

L'intelligence artificielle générative (GenAI) est un type d'intelligence artificielle qui peut être utilisé pour créer de nouveaux contenus et de nouvelles idées, notamment du texte, des images, des vidéos et de la musique. Comme toute intelligence artificielle, GenAI est un très grand modèle pré-entraîné par un modèle de deep learning basé sur une grande quantité de données, souvent appelé modèle de fondation (FM). Avec GenAI, nous pouvons dessiner des images plus cool, écrire des textes plus beaux et composer de la musique plus émouvante, mais la première étape nous oblige à comprendre comment GenAI crée de nouvelles choses, comme l'a dit le responsable de l'article, Richard Feynman, à propos de « J'ai gagné » Je ne comprends pas ce que je ne peux pas créer.