Intelligence artificielle

Introduction aux modèles génératifs réversibles – AI / ML chez Symantec

Introduction aux modèles génératifs réversibles - AI / ML chez Symantec


Trouver la fonction

Je n'ai pas encore mentionné pourquoi nous avons besoin de la fonction de densité exacte pour générer des échantillons (clairement, nous avons besoin de la fonction de densité si nous voulons calculer les densités). Les GAN, par exemple, ne l'utilisent qu'implicitement. Jusqu'à présent, j'ai supposé que la fonction qui mappe les pixels à des composants indépendants est connue, mais ce ne sera pas le cas pour un ensemble de données avec des images non triviales. Maintenant, l'apprentissage automatique entre en jeu: nous pouvons demander à un ordinateur d'apprendre la fonction au lieu de l'écrire nous-mêmes. Avec la fonction densité, apprendre les paramètres de f (x) peut se faire via une estimation du maximum de vraisemblance. Plus précisément, nous pouvons maximiser la log-vraisemblance de f (x) paramètres θ pour produire une distribution avec des composants indépendants p_H pour entrée X

Si nous choisissons la distribution indépendante comme étant gaussienne avec une moyenne de 0 et une variance σ², l'équation devient

Sans le terme log déterminant, cela revient à minimiser l'erreur quadratique moyenne entre la sortie de la fonction et 0. Dans ce cas, le meilleur θ est celui qui provoque F pour mapper chaque valeur au mode de la distribution (0), comme illustré dans la figure 8. Ce mappage produit une distribution delta de Dirac plutôt qu'une gaussienne:

Figure 8: Tous les points sont mappés sur le mode de la distribution cible en raison de la faible pente, produisant une distribution delta de Dirac lorsque la pente converge vers 0.

Voici une autre façon de comprendre comment le terme déterminant du log est nécessaire pour trouver la bonne fonction:

Si nous voulons mapper sur une gaussienne centrée sur 0, la perte de vraisemblance logarithmique que nous minimisons est f (x)² / 2σ² (log de l'équation de densité gaussienne avec 0 moyenne). Sans le déterminant logarithmique, cela signifie qu'une fonction qui mappe toutes les données d'entraînement à 0 aurait 0 perte (mauvais: les gaussiens devraient avoir une certaine variance). La fonction ne peut pas le faire si nous maximisons sa pente près des données d'entraînement: une pente non nulle signifie que tous les points ne sont pas mappés au même emplacement. Compte tenu de cela, il semble intuitif que le terme déterminant du log devrait être lié à la variance d'une manière ou d'une autre. Souvent, lorsque nous maximisons le MLE d’un gaussien, nous pouvons ignorer des facteurs constants tels que la variance du gaussien; cependant, dans ce cas, nous ne pouvons pas parce que le terme déterminant logarithmique n'est pas multiplié par la même constante. Comme la probabilité logarithmique d'un gaussien est l'erreur quadratique moyenne divisée par 2σ², la variance est en fait un terme de poids, une variance plus élevée augmentant l'influence du terme déterminant logarithmique en diminuant l'influence du terme de densité logarithmique. Pour que le terme déterminant du log disparaisse complètement, la variance devrait être de 0, donnant un poids infini au terme de densité logarithmique, ce qui produirait le pdf de type delta de Dirac illustré à la figure 8.

La section suivante sur la «couche de couplage» explique comment nous pourrions créer une fonction inversible avec un déterminant jacobien traitable qui est assez puissant pour mapper des images naturelles à leurs composants indépendants.

Espérons que la section précédente a clairement indiqué que nous pouvons créer un modèle génératif en utilisant une fonction inversible avec un déterminant jacobien traitable pour mapper les données d'entrée à une représentation indépendante. Étant donné la complexité de certains types de données d'entrée (images), il serait difficile de créer cette fonction manuellement. Si la fonction est différenciable et paramétrée par un nombre suffisant de variables, nous pouvons être en mesure d'utiliser un processus d'optimisation pour l'apprendre. Les réseaux de neurones ont réussi à apprendre des fonctions différenciables complexes, mais ils ne sont généralement pas inversibles avec un déterminant jacobien traitable. La couche de couplage remplit toutes ces conditions: la couche est inversible, a un déterminant jacobien traitable, est différenciable et intègre un réseau de neurones suffisamment puissant pour gérer des entrées complexes. Il y parvient avec une structure de fonction «triangulaire», où nous divisons les entrées et les sorties en deux parties. La première couche du réseau doit effectuer la division initiale en x_1 et x_2, qui se fait généralement sur les canaux ou avec un motif en damier spatial, mais pour simplifier l'illustration, la figure 9 montre un exemple de division le long de la hauteur

Figure 9: Fractionnement d'une image pour obtenir x_1 et x_2

L'inverse de cette division spécifique consiste à combiner les moitiés supérieure et inférieure en une seule image. Au début d'une couche de couplage, les données «clés» sont transmises à travers un réseau de neurones et combinées avec les données «message». La «clé» est également transmise non modifiée, ce qui signifie que nous n'avons pas besoin d'inverser le réseau neuronal, car la couche suivante a une version de l'entrée du réseau. Les couches de couplage peuvent être empilées pour créer des fonctions plus puissantes qui sont toujours inversibles avec des déterminants jacobiens traitables.

La figure 10 montre un schéma d'une couche de couplage, l'entrée est x_1 et x_2, et le résultat est les «nouvelles données clés» et les «nouvelles données de message». Le réseau neuronal, m, a influencé la moitié de ces données. En empilant ces couches, nous pouvons obtenir une représentation «profonde».

Figure 10: Couche de couplage (plus mélange) utilisée pour créer de puissantes fonctions inversibles avec des déterminants jacobiens tractables. Une trame montre la couche de couplage et l'autre montre son inverse.

g est une fonction inversible combinant x_2 et la sortie de m (x_1) (m peut être un réseau neuronal). Le diagramme est équivalent aux équations suivantes (sans la fonction de mélange) qui démontrent également l'inversibilité de la couche

La nature triangulaire du jacobien pour ces équations ne signifie que la dérivée partielle de y_2 par rapport à x_2 est nécessaire, ce qui ne nécessite pas de différencier le réseau neuronal m (en gardant le calcul simple)

Par conséquent, en choisissant le bon g et mélanger les fonctions, nous pouvons obtenir une fonction inversible avec un déterminant jacobien traitable même si m est très complexe.

g est souvent défini comme la fonction simple suivante, pour produire une «couche de couplage affine»:

Le cercle avec un point au milieu utilisé pour combiner x_2 et m_2 (x_1) est le produit Hadamard, qui est une multiplication par élément. La rétropropagation utilise également le produit Hardmard.

y_1 et y_2 sont «mélangés» avec une transformation inversible. Sans mélange, les données du «Message» ne seront jamais transmises à travers un réseau de neurones et le réseau n’apprendra pas une représentation profonde. Le diagramme ci-dessous montre deux options pour cette transformation

Figure 11: Couches de mélange NICE (en haut) vs Glow (en bas)

Le premier exemple est ce que l’article original a fait: la position d’échange de données «clé» et «message». L'inverse est trivial, permutez-les en arrière.

Le deuxième exemple est plus proche de la façon dont le papier «Glow» met en œuvre l’opération de mélange. L’article souligne que l’opération «swap» est un exemple spécifique de modification de la permutation des canaux. Il utilise une permutation plus générale implémentée comme une transformation de matrice carrée avec des poids apprenables, initialisée comme une matrice de rotation. Cette transformation est l’endroit où «Inversible 1x1 Convolutions» du titre de l’article intervient: une façon de faire une «permutation» canal par canal est de convoquer 1x1. Les convolutions 1x1 sont des convolutions avec une hauteur et une largeur de filtre de 1 et ont été utilisées dans des architectures telles que le réseau de démarrage pour changer le nombre de canaux. Dans Glow, le nombre de canaux doit rester le même pour que l'architecture soit inversible (sauf si nous modifions également les dimensions spatiales pour maintenir le nombre total de composants constant).

Je pense qu’un enseignement important de ce type de modèle est que nous ne devons pas supposer que les restrictions imposées par une approche particulière sont insurmontables. Je peux me voir en supposant que l'exigence d'une fonction inversible avec un déterminant jacobien traitable exclut l'utilisation de réseaux de neurones. Cette hypothèse s'avère incorrecte et la solution est une approche efficace pour modéliser les composants indépendants des données de grande dimension. L'architecture reste cependant limitée, ce qui signifie que des modèles comme les GAN qui ont plus de flexibilité ont pu produire des résultats de haute qualité avec beaucoup moins de temps de formation et d'utilisation de la mémoire. Je souhaite également mieux comprendre comment les modèles génératifs se comportent et comment ils peuvent apprendre des concepts utiles sans surveillance. J'ai discuté des approches à ce sujet dans les blogs précédents https://towardsdatascience.com/animating-ganime-with-stylegan-part-1-4cf764578e et https://towardsdatascience.com/animating-ganime-with-stylegan-the-tool- c5a2c31379d dans le contexte des GAN.

Afficher plus

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Articles similaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page
Fermer