J’ai inventé un nouveau modèle génératif accepté à l’ICLR
(discrete-distribution-networks.github.io)- Discrete Distribution Networks (DDN) est un modèle génératif innovant fondé sur de nouveaux principes et doté de propriétés inédites
- DDN présente des résultats expérimentaux originaux et une capacité de représentation discrète 1D grâce à un algorithme d’optimisation par division et élagage
- Basé sur une structure hiérarchique, il approxime aussi des distributions continues et révèle des propriétés intéressantes comme la génération conditionnelle zero-shot
- DDN montre un potentiel d’application à diverses tâches réelles, comme la génération d’images et le transfert de style
- Il se distingue des modèles génératifs existants en matière de scalabilité, d’efficacité et de capacité d’adaptation naturelle
Présentation de DDN: Discrete Distribution Networks
Pourquoi est-ce important ?
DDN (Discrete Distribution Networks) propose une approche entièrement nouvelle par rapport aux modèles génératifs existants, avec des principes simples, une structure hiérarchique originale et des propriétés comme la génération conditionnelle zero-shot. Son fonctionnement diffère de celui des GAN et des modèles de diffusion, ce qui ouvre de nombreuses perspectives, tant en recherche qu’en application réelle.
Résumé des points clés
- DDN est un nouveau modèle génératif qui approxime la distribution des données à l’aide d’une structure hiérarchique de distributions discrètes
- Il propose une méthode d’optimisation Split-and-Prune et mène des expérimentations sur des propriétés distinctives, difficiles à obtenir avec les modèles génératifs classiques, comme la génération conditionnelle zero-shot et les représentations latentes discrètes 1D
- À chaque couche, DDN génère simultanément plusieurs échantillons et sélectionne celui qui se rapproche le plus de la cible pour l’utiliser comme condition à la couche suivante
- À mesure que le nombre de couches augmente, l’espace de représentation des sorties s’étend de manière exponentielle, ce qui permet au final de générer des échantillons proches de la cible
- Diverses expériences (CIFAR-10, FFHQ, transfert de style, super-résolution, etc.) mettent en évidence des atouts en simplicité, généralisation et applicabilité pratique par rapport aux approches existantes
Expériences d’estimation de densité avec DDN
- Démonstration du processus d’approximation d’une densité de probabilité 2D
- À gauche : tous les échantillons que DDN est actuellement capable de générer
- À droite : la carte de densité de probabilité cible
- Plusieurs distributions cibles (blur_circles, QR_code, spiral, etc.) sont appliquées successivement dans un processus d’optimisation continu
- Optimizer : utilisation simultanée de Gradient Descent et de Split-and-Prune
- Avec Split-and-Prune, la divergence KL devient même plus faible que celle des échantillons réels
Principales contributions de l’article
- Proposition d’un nouveau modèle génératif — DDN, plus simple et plus efficace
- Introduction de l’algorithme d’optimisation Split-and-Prune et de techniques pratiques associées
- Validation de propriétés telles que la génération conditionnelle zero-shot sans gradient et une représentation discrète 1D originale
- Lors de l’évaluation ICLR, le travail a été décrit comme « très différent des modèles génératifs existants et élargissant les directions de recherche »
- Principe de DDN : à chaque couche, générer de nombreux échantillons discrets, ne conserver que le résultat le plus proche de la cible, puis le raffiner hiérarchiquement
Structure et mode de fonctionnement
Structure hiérarchique de distributions discrètes
- Chaque couche prend comme entrée l’échantillon sélectionné à la couche précédente et en génère plusieurs nouveaux
- Parmi eux, seul le résultat le plus proche de l’échantillon d’entraînement courant (la vérité terrain) est transmis à la couche suivante
- À force de répétitions, les résultats se raffinent et se rapprochent de la distribution cible
- Lorsque le nombre de couches augmente, l’espace de représentation des sorties générées croît de manière exponentielle
- Le réseau peut représenter directement une distribution en générant simultanément plusieurs échantillons
Reconstruction d’images et représentation latente
- Chaque sortie de couche produit une image différente, et seuls les résultats les plus proches de l’objectif final sont transmis à la couche suivante
- Le rôle de l’échantillonneur : sélectionner l’image la plus similaire à la cible
- Pour les tâches génératives, un échantillonnage aléatoire permet de maximiser la diversité
- Les variables latentes de DDN peuvent être interprétées comme une structure arborescente, chaque échantillon étant mappé à une feuille de l’arbre
Exemples de résultats expérimentaux
- Approximation de diverses distributions 2D (spiral, QR_code, etc.)
- Avec Split-and-Prune, minimisation de la divergence KL et atténuation de problèmes comme les dead nodes ou le density shift
- Sur CIFAR-10, FFHQ, etc., confirmation d’un mode de génération original et d’une bonne efficacité face aux modèles à base de GAN ou de diffusion
Prise en charge de la génération conditionnelle zero-shot
- DDN permet la génération conditionnelle zero-shot sans gradient
- Exemple : génération texte-image à l’aide d’une black-box CLIP
- Il gère aussi efficacement des conditions variées non limitées aux pixels, comme le transfert de style ou la super-résolution
Entraînement et deux paradigmes de modèle
- Pendant l’entraînement, après sélection d’échantillons à chaque Discrete Distribution Layer (DDL), l’optimisation est effectuée avec Adam + Split-and-Prune
- Single Shot Generator : chaque couche possède ses propres poids indépendants
- Recurrence Iteration : toutes les couches partagent les mêmes poids
Divers cas d’application
Génération aléatoire de visages
- Les résultats de génération de visages basés sur un DDN entraîné montrent la diversité et la qualité des sorties
Colorisation conditionnelle d’images / conversion edge-to-color
- À partir d’une image donnée, le modèle cherche à se rapprocher au maximum du style visé tout en respectant la condition
- Résolution des images générées : 256x256
Visualisation de la génération hiérarchique (MNIST, etc.)
- Visualisation des résultats intermédiaires et finaux à chaque étape de génération
- Les grandes images correspondent à des brouillons, les petites à des résultats finaux raffinés
Perspectives de recherche et possibilités d’application
- Des réglages d’hyperparamètres, des expériences exploratoires et des analyses théoriques peuvent encore améliorer les performances de DDN
- Extension possible jusqu’à des problèmes de complexité du niveau d’ImageNet, avec l’objectif de construire des modèles exploitables en production
- Application à diverses tâches comme la super-résolution, la colorisation d’images, l’estimation de profondeur, l’estimation de pose ou la robotique
- Par rapport aux modèles de diffusion, production de multiples échantillons en un seul forward-pass
- Efficace pour des usages comme l’estimation d’incertitude et plus simple à contraindre
- Sa différentiabilité end-to-end permet une combinaison efficace avec l’apprentissage discriminatif ou par récompense
- Utilisable aussi pour des tâches non génératives (clustering non supervisé, compression de données, etc.)
- Possibilité de travaux ultérieurs appliquant les idées de conception de DDN à des modèles génératifs existants (par ex. combinaison de la diffusion avec un espace latent discret 1D)
- Proposition de nouvelles pistes en modélisation du langage, comme la modélisation directe de chaînes binaires sans tokenizer
Questions fréquentes
Q1 : augmentation des besoins en mémoire GPU ?
- Légère augmentation par rapport à un générateur GAN classique, mais sans grande différence
- Pendant l’entraînement, seuls les gradients des échantillons sélectionnés sont conservés, les autres étant immédiatement supprimés, ce qui préserve la mémoire
- En phase de génération, un seul échantillon aléatoire est produit au lieu de générer l’ensemble des échantillons, ce qui limite fortement la consommation de ressources supplémentaires
Q2 : problème de mode collapse ?
- Non. La loss n’est appliquée qu’au résultat le plus similaire à la cible, ce qui garantit la diversité
- Expérimentalement, les performances de reconstruction sur le jeu de test (robustesse de reconstruction) sont également bonnes
- En revanche, pour des données de haute dimension trop complexes pour la capacité intrinsèque de DDN, des échantillons flous peuvent apparaître
1 commentaires
Avis sur Hacker News
Les auteurs se disent heureux d’avoir trouvé les reviews d’ICLR utiles, et considèrent que ce cas montre comment la politique d’ICLR consistant à publier toutes les reviews des articles fonctionne avec succès
Les reviewers jouent un rôle de « rapport d’évaluation » pour les auteurs en montrant comment ils ont interprété l’article de façon anonyme, et cela a aussi l’avantage de permettre à des personnes extérieures au milieu universitaire traditionnel de voir les discussions qui se cachent derrière l’acceptation ou le rejet d’un article
Le lien vers les reviews de cet article est ici
La liste complète des articles rejetés est disponible ici
La Fig.18 de l’article mentionne que Taiji-DDN ressemble au taiji de l’ancienne philosophie chinoise
J’ai trouvé cette partie un peu délicate
Comme la structure en branchement est un concept assez courant, l’interprétation qui la relie spécialement à une expression classique m’a paru un peu étrange
Je ne pense pas qu’il y ait là quoi que ce soit de superstitieux ou de bizarre
Voir un article à auteur unique accepté à ICLR est particulièrement impressionnant, d’autant plus qu’il propose une méthode vraiment innovante
La structure me semble très intéressante
Elle a l’avantage d’être facile à déboguer, mais comme elle utilise un sampler et non un routeur de style Mixture-of-Experts (MoE), elle a aussi l’inconvénient de jeter effectivement K-1 calculs à chaque couche
À mes yeux, l’analogie la plus proche serait une combinaison entre MoE et un modèle de latent diffusion « x0-target », et l’innovation principale réside non pas dans le routeur, mais dans le sampler guidé et l’optimiseur split-and-prune
Je pense que cela rend l’entraînement plus simple
Comme la probabilité d’échantillonnage est de 1/K indépendamment de l’entrée, il n’est pas nécessaire en inférence d’effectuer les K calculs intermédiaires à chaque couche : on peut décider à l’avance lequel utiliser et n’exécuter que ce calcul
C’est expliqué dans la question Q1 de la section « Common Questions About DDN » en bas de l’article
Je pense que vous avez mal compris l’article
Il n’y a pas d’« experts » ; la sortie sert simplement à approximer un échantillon aléatoire issu de la distribution
Il n’y a pas de latent diffusion, et le modèle utilise des convolutions similaires à celles d’un GAN
Il est souligné qu’en inférence, l’indice de l’échantillon est choisi à l’avance, donc il n’y a pas de calcul inutile
Concept vraiment très cool
En regardant les exemples sous le résumé de l’article, j’ai été surpris par certains résultats très précis du modèle
Par exemple, la ligne d’implantation des cheveux en ligne 2 colonne 3, la couleur des chemises en ligne 2 colonnes 7/8/9/11, tout le rouge à lèvres des lignes 4/6, ou encore la position et la forme du visage et des cheveux en ligne 6 colonne 4
En particulier, la zone rouge en bas à gauche de la ligne 6 colonne 4 est fascinante : le modèle semble avoir détecté qu’il y avait quelque chose de rouge et a placé une tache rouge au bon endroit
Il peut s’agir d’un biais du dataset (par ex. le rouge à lèvres) ou de mon observation sélective, mais je me demande, pour la bretelle rouge, s’il s’agit d’une fuite de données, d’un surapprentissage, ou simplement d’un hasard
J’ai moi aussi déjà construit une architecture similaire (mais avec une autre méthode), en créant une hiérarchie de cross-attention et de requêtes apprises, puis en appliquant une pénalité L1 à la matrice d’attention pour accroître la sparsité
Les représentations hiérarchiques discrètes sont vraiment passionnantes
Le motif d’activation à chaque couche agit comme un « parse tree » pour chaque entrée, ce qui permet de compresser efficacement les images en courtes séquences d’entiers
Je pose la question parce que c’est un point que je maîtrise mal : si le réseau est composé uniquement de convolutions 1x1, n’y a-t-il alors absolument aucun échange d’information entre les pixels ?
Si c’est le cas, cela voudrait dire que chaque pixel est totalement indépendant, et je me demande si le résultat ne serait pas incohérent
Ce n’est pas le cas ici, mais il existe effectivement des architectures qui génèrent les pixels de manière indépendante les uns des autres
Elles peuvent produire n’importe quel pixel ou élément d’image sans générer le reste, de façon implicite
Comme exemples, il y a NeRF, « single-pixel GAN » et MAE, avec cet article, cet article et cet article
Si c’est possible, c’est parce qu’on peut considérer que le modèle a la capacité de « mémoriser » toutes les données possibles, et qu’une génération indépendante revient simplement à extraire une partie précise de cette « mémoire »
L’espace latent est un objet platonicien immuable, donc il n’est pas étrange de générer séparément chaque point sur le plan physique
De la même manière qu’on peut générer des points arbitraires avec une fonction comme y=mx+b, la génération d’images n’est qu’une entrée d’une fonction plus complexe
Ce concept ne se limite pas aux images : on peut aussi, dans une certaine mesure, générer le langage naturel de façon indépendante, et cela peut être étendu avec ce code et ma proposition ici
Dans DDN, les convolutions 1x1 ne sont utilisées que dans la couche de sortie de la Discrete Distribution Layer (DDL)
Les blocs de réseau neuronal entre les DDL constituent la source principale des opérations et des paramètres, et utilisent pour cela des convolutions 3x3 standard
Intéressant
Il y a quelques jours, je travaillais sur une recherche en diffusion utilisant des matrices de transformation symboliques pour paralléliser des systèmes de réaction sur graphes profonds, et beaucoup de gens semblent aller dans cette direction générale
J’ai l’impression que, dans les 1 à 2 prochaines années, les modèles fondés sur la diffusion vont dominer la génération de code
Vraiment très cool, j’ai passé pas mal de temps autrefois sur l’apprentissage de représentations, et la grille de chiffres MNIST m’a rappelé des souvenirs
Je pense sincèrement que c’est une approche intéressante et nouvelle, et je suis curieux de voir ses performances si on l’étend à des domaines non visuels
Je me demande où l’on pourra suivre la suite de vos recherches
Je publierai mes prochains résultats de recherche à la fois sur GitHub et sur Twitter(X)
Cela ressemble à une très bonne recherche, je l’ai ajoutée à ma liste de lecture
Merci de l’avoir partagée sur Hacker News