Accueil Intelligence artificielle Posit AI Blog : Débruitage de la diffusion avec une torche

Posit AI Blog : Débruitage de la diffusion avec une torche

0
Posit AI Blog : Débruitage de la diffusion avec une torche


Un préambule, en quelque sorte

Au moment où nous écrivons ces lignes – nous sommes en avril 2023 – il est difficile d’exagérer l’attention portée, les espoirs associés et les craintes entourant la génération d’images et de textes basée sur l’apprentissage profond. Les impacts sur la société, la politique et le bien-être humain méritent plus qu’un court paragraphe consciencieux. Nous renvoyons donc le traitement approprié de ce sujet à des publications spécialisées et souhaitons simplement dire une chose : plus vous en savez, mieux c’est ; moins vous serez impressionné par les déclarations trop simplificatrices et négligeant le contexte faites par des personnalités publiques ; plus il vous sera facile de prendre votre propre position sur le sujet. Cela dit, nous commençons.

Dans cet article, nous introduisons un R torch implémentation de Modèles implicites de diffusion de débruitage (J. Song, Meng et Ermon (2020)). Le code est activé
GitHub, et est livré avec un README complet détaillant tout, des fondements mathématiques aux choix d’implémentation et à l’organisation du code jusqu’à la formation de modèles et la génération d’échantillons. Nous donnons ici un aperçu de haut niveau, situant l’algorithme dans le contexte plus large de l’apprentissage profond génératif. N’hésitez pas à consulter le README pour tout détail qui vous intéresse particulièrement !

Modèles de diffusion en contexte : apprentissage profond génératif

Dans l’apprentissage profond génératif, les modèles sont entraînés pour générer de nouveaux exemples qui pourraient probablement provenir d’une distribution familière : la distribution d’images de paysages, par exemple, ou de vers polonais. Même si la diffusion est actuellement à la mode, la dernière décennie a accordé une grande attention à d’autres approches, ou familles d’approches. Énumérons rapidement quelques-uns des plus évoqués et donnons une brève caractérisation.

D’abord, modèles de diffusion eux-mêmes. La diffusion, terme général, désigne des entités (des molécules par exemple) se propageant depuis des zones de plus forte concentration vers des zones de plus faible concentration, augmentant ainsi l’entropie. Autrement dit, les informations sont perdues. Dans les modèles de diffusion, cette perte d’information est intentionnelle : dans un processus « direct », un échantillon est prélevé et successivement transformé en bruit (gaussien, généralement). Un processus « inverse » est alors censé prendre une instance de bruit et la débruiter séquentiellement jusqu’à ce qu’il semble provenir de la distribution d’origine. Mais nous ne pouvons certainement pas inverser la flèche du temps ? Non, et c’est là qu’intervient l’apprentissage profond : au cours du processus de progression, le réseau apprend ce qui doit être fait pour « l’inversion ».

Une idée totalement différente sous-tend ce qui se passe dans les GAN, Réseaux adverses génératifs. Dans un GAN, nous avons deux agents en jeu, chacun essayant de déjouer l’autre. On essaie de générer des échantillons aussi réalistes que possible ; l’autre consacre son énergie à repérer les contrefaçons. Idéalement, ils s’améliorent tous les deux avec le temps, ce qui donne le résultat souhaité (ainsi qu’un « régulateur » qui n’est pas mauvais, mais toujours en retard).

Ensuite, il y a les VAE : Auto-encodeurs variationnels. Dans un VAE, comme dans un GAN, il y a deux réseaux (un encodeur et un décodeur, cette fois). Cependant, au lieu que chacun s’efforce de minimiser sa propre fonction de coût, la formation est sujette à une perte unique – quoique composite. Un composant garantit que les échantillons reconstruits ressemblent étroitement à l’entrée ; l’autre, que le code latent confirme à des contraintes pré-imposées.

Mentionnons enfin les flux (bien que ceux-ci aient tendance à être utilisés à des fins différentes, voir la section suivante). Un flux est une séquence de mappages différentiables et inversibles entre des données et une distribution « agréable », signifiant « quelque chose que nous pouvons facilement échantillonner ou à partir duquel nous pouvons obtenir une probabilité ». Avec les flux, comme avec la diffusion, l’apprentissage se produit au cours de la phase avancée. L’inversibilité, ainsi que la différentiabilité, garantissent alors que nous pouvons revenir à la distribution des entrées avec laquelle nous avons commencé.

Avant de nous lancer dans la diffusion, nous esquissons – très de manière informelle – quelques aspects à prendre en compte lors de la cartographie mentale de l’espace des modèles génératifs.

Modèles génératifs : Si vous vouliez dessiner une carte mentale…

Ci-dessus, j’ai donné des caractérisations plutôt techniques des différentes approches : quelle est la configuration globale, pour quoi optimisons-nous… En restant du côté technique, nous pourrions examiner des catégorisations établies telles que basées sur la vraisemblance ou non basées sur la vraisemblance. des modèles. Les modèles basés sur la vraisemblance paramétrent directement la distribution des données ; les paramètres sont ensuite ajustés en maximisant la vraisemblance des données dans le cadre du modèle. Parmi les architectures listées ci-dessus, c’est le cas des VAE et des flux ; ce n’est pas avec les GAN.

Mais nous pouvons aussi adopter une perspective différente : celle du but. Premièrement, sommes-nous intéressés par l’apprentissage des représentations ? Autrement dit, aimerions-nous condenser l’espace des échantillons en un espace plus clairsemé, qui expose les caractéristiques sous-jacentes et donne des indications sur une catégorisation utile ? Si tel est le cas, les VAE sont les candidats classiques à considérer.

Alternativement, sommes-nous principalement intéressés par la génération et souhaitons-nous synthétiser des échantillons correspondant à différents niveaux de granularité grossière ? Les algorithmes de diffusion sont alors un bon choix. Il a été démontré que

[…] les représentations apprises en utilisant différents niveaux de bruit ont tendance à correspondre à différentes échelles d’entités : plus le niveau de bruit est élevé, plus les entités capturées sont à grande échelle.

Comme dernier exemple, que se passe-t-il si nous ne sommes pas intéressés par la synthèse, mais souhaitons évaluer si une donnée donnée pourrait probablement faire partie d’une certaine distribution ? Si tel est le cas, les flux pourraient être une option.

Zoom avant : modèles de diffusion

Comme toute architecture de deep learning, les modèles de diffusion constituent une famille hétérogène. Citons ici quelques-uns des membres les plus en vogue.

Lorsque, ci-dessus, nous avons dit que l’idée des modèles de diffusion était de transformer séquentiellement une entrée en bruit, puis de la débruiter à nouveau séquentiellement, nous avons laissé ouverte la manière dont cette transformation est opérationnalisée. Il s’agit en fait d’un domaine dans lequel les approches rivales ont tendance à différer.
Y. Song et coll. (2020), par exemple, utilisez une équation différentielle stochastique (SDE) qui maintient la distribution souhaitée pendant la phase avant de destruction d’informations. À l’opposé, d’autres approches, inspirées par Ho, Jain et Abbeel (2020), s’appuient sur les chaînes de Markov pour réaliser des transitions d’état. La variante introduite ici – J. Song, Meng et Ermon (2020) – garde le même esprit, mais gagne en efficacité.

Notre mise en œuvre – aperçu

Le LISEZMOI fournit une introduction très complète, couvrant (presque) tout, du contexte théorique aux détails de mise en œuvre en passant par la procédure de formation et le réglage. Ici, nous décrivons simplement quelques faits de base.

Comme nous l’avons déjà indiqué ci-dessus, tout le travail se déroule pendant la phase avancée. Le réseau prend deux entrées, les images ainsi que des informations sur le rapport signal/bruit à appliquer à chaque étape du processus de corruption. Ces informations peuvent être codées de différentes manières, puis intégrées, sous une forme ou une autre, dans un espace de dimension supérieure plus propice à l’apprentissage. Voici à quoi cela pourrait ressembler, pour deux types différents de planification/intégration :

L'une en dessous de l'autre, deux séquences où l'image originale de la fleur se transforme en bruit à des vitesses différentes.

Du point de vue de l’architecture, les entrées ainsi que les sorties prévues étant des images, le principal outil de travail est un U-Net. Il fait partie d’un modèle de haut niveau qui, pour chaque image d’entrée, crée des versions corrompues, correspondant aux taux de bruit demandés, et exécute U-Net sur celles-ci. À partir de ce qui est renvoyé, il tente de déduire le niveau de bruit qui régissait chaque instance. La formation consiste ensuite à faire améliorer ces estimations.

Modèle formé, le processus inverse – génération d’images – est simple : il consiste en un débruitage récursif selon le programme de taux de bruit (connu). Dans l’ensemble, le processus complet pourrait alors ressembler à ceci :

Transformation par étapes d'une fleur en bruit (rangée 1) et inversement.

En conclusion, cet article, en lui-même, n’est en réalité qu’une invitation. Pour en savoir plus, consultez le Dépôt GitHub. Si vous avez besoin de motivation supplémentaire pour le faire, voici quelques images de fleurs.

Un arrangement 6x8 de fleurs.

Merci d’avoir lu!

Dieleman, Sander. 2022. « Les modèles de diffusion sont des auto-encodeurs. » https://benanne.github.io/2022/01/31/diffusion.html.

Ho, Jonathan, Ajay Jain et Pieter Abbeel. 2020. «Modèles probabilistes de diffusion de débruitage». https://doi.org/10.48550/ARXIV.2006.11239.

Chanson, Jiaming, Chenlin Meng et Stefano Ermon. 2020. «Modèles implicites de diffusion de débruitage». https://doi.org/10.48550/ARXIV.2010.02502.

Song, Yang, Jascha Sohl-Dickstein, Diederik P. Kingma, Abhishek Kumar, Stefano Ermon et Ben Poole. 2020. «Modélisation générative basée sur les scores via des équations différentielles stochastiques». CoRR abs/2011.13456. https://arxiv.org/abs/2011.13456.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici