La rubrique «Lisez des articles pour vous». Octobre - décembre 2019



Bonjour, Habr! Nous continuons à publier des critiques d'articles scientifiques de membres de la communauté Open Data Science sur la chaîne #article_essense. Si vous souhaitez les recevoir avant tout le monde - rejoignez la communauté !


Articles pour aujourd'hui:


  1. Poly-encodeurs: architectures de transformateur et stratégies de pré-formation pour une notation multi-phrases rapide et précise (Facebook, 2019)
  2. Discriminateur implicite dans l'encodeur automatique variationnel (Indian Institute of Technology Ropar, 2019)
  3. L'autoformation avec Noisy Student améliore la classification ImageNet (Google Research, Carnegie Mellon University, 2019)
  4. Contraste dynamique pour l'apprentissage de la représentation visuelle non supervisé (Facebook, 2019)
  5. Benchmarking Neural Network Robustness to Common Corruptions and Perturbations (Université de Californie, Oregon State University, 2019)
  6. DistilBERT, une version distillée de BERT: plus petite, plus rapide, moins chère et plus légère (Hugging Face, 2019)
  7. Modèles de langage Plug and Play: une approche simple pour la génération de texte contrôlée (Uber AI, Caltech, HKUST, 2019)
  8. Représentation de la saillance profonde pour l'estimation de F0 dans la musique polyphonique (New York University, USA, 2017)
  9. Analyse et amélioration de la qualité d'image de StyleGAN (NVIDIA, 2019)


1. Poly-encodeurs: architectures de transformateur et stratégies de pré-formation pour une notation multi-phrases rapide et précise


Auteurs: Samuel Humeau, Kurt Shuster, Marie-Anne Lachaux, Jason Weston (Facebook, 2019)
→ Article original
Auteur de la revue: Alexey (in slack zhirzemli)


TLDR


L'article propose une nouvelle approche pour la notation des paires de phrases (énoncés). Cette procédure est pertinente dans les tâches de prédiction de la correspondance d'une réponse à un contexte conditionnel, ainsi que dans des tâches telles que la prédiction de sens suivant. La méthode Poly-Encoder proposée est comparée aux stratégies Bi-Encoder et Cross-Encoder. La méthode combine l'avantage du Bi-Encoder (la capacité de mettre en cache la présentation des réponses) et du Cross-Encoder (formation non inconditionnelle des encodeurs de contexte et de réponse)





Notation multi-phrases


(Un petit rappel sur les approches Bi et Cross Encoder. Pour ceux qui sont familiers, vous pouvez sauter)


La tâche de déterminer la correspondance du contexte (demande ou déclaration de l'utilisateur) avec l'ensemble des réponses existantes est principalement pertinente dans les systèmes de dialogue et de recherche d'informations. Il est résolu soit en trouvant une certaine vitesse (produit scalaire) entre les représentations codées du contexte et de la réponse, soit en codant conjointement le contexte et la réponse en un seul vecteur avec une transformation linéaire ultérieure en un scalaire.


La première approche est appelée Bi-Encoder et l'avantage évident de cette méthode est la possibilité de compter hors ligne les représentations de toutes les réponses disponibles. Ces vues sont mises en cache et pendant l'inférence, il vous suffit de trouver le vecteur de requête, de créer un produit scalaire avec des vecteurs de réponse et d'organiser le résultat. De plus, cette approche permet un échantillonnage négatif plus efficace au stade de la formation. A savoir, au sein de chaque lot, les représentations des échantillons positifs sont prises en compte et des exemples négatifs peuvent être pris directement à partir du même lot. Essentiellement, réutiliser la passe avant pour des exemples positifs et négatifs. L'inconvénient de l'approche Bi-Encoder est le fait que les représentations de contexte et de réponse apprennent presque indépendamment. Le seul point où au moins une sorte de flux d'informations est possible entre les vues de demande et de réponse est le botnet sous la forme du produit scalaire final. Au niveau des éléments textuels, les informations ne sont pas faussées.


La deuxième approche est Cross-Encoder. Elle implique une interaction plus puissante du contexte et de la réponse dans le processus d'apprentissage et l'inférence. Ici, les séquences de jetons de demande et de réponse sont concaténées en une seule. Un jeton de séparation spécial est placé entre eux, et une intégration spéciale est ajoutée à chaque partie (demande, réponse). En fait, cette intégration décale les représentations d'entrée des jetons de réponse d'une certaine constante, de sorte que le modèle peut plus facilement les distinguer des jetons de demande. Par conséquent, le modèle apprend à trouver une représentation conjointe de la demande et de la réponse, de sorte que la couche linéaire finale (vecteur -> scalaire) renvoie une grande valeur de logits pour les paires de phrases qui se correspondent et une petite valeur sinon. L'inconvénient de cette approche est l'impossibilité de compter hors ligne les représentations des réponses: elles doivent être évaluées au stade de l'inférence, avec un ensemble conditionnel de jetons de demande. De plus, l'astuce consistant à réutiliser les idées d'exemples négatifs et positifs au stade de la formation ne fonctionnera plus ici. Vous devrez prélever des échantillons négatifs avant la formation du lot.


La motivation
Ce qui suit est une solution qui vous permet d'atténuer les lacunes et de combiner les avantages des approches Bi et Cross Encoder. L'idée est que nous voulons former un encodeur qui, d'une part, prendra en compte la dépendance conditionnelle des jetons de réponse sur les jetons de demande, et d'autre part, l'utilisation de cette dépendance devrait avoir lieu sur des représentations pré-évaluées de la réponse et de la demande. Géométriquement, j'imagine personnellement quelque chose comme ceci: déplacer le botnet (le produit final des deux soumissions) un peu plus bas sur le réseau. Créez une interaction entre les vues de demande et de réponse. Dans le même temps, la mise en œuvre d'une telle interaction n'est pas trop éloignée de la couche finale, de sorte que la partie principale du codeur de requête reste indépendante du codeur de réponse.


Implémentation
La mise en œuvre d'une telle idée est assez simple: le codeur candidat fonctionne comme dans le cas du Bi-Encoder: on obtient la représentation de séquence sous forme vectorielle (jeton [CLS]) en utilisant le modèle à transformateur (BERT). Nous mettons en cache ces représentations après avoir formé le modèle.


L'encodeur de contexte, à son tour, ne comprime pas la représentation de la séquence d'entrée en un seul vecteur. Ici, nous laissons tous les vecteurs de séquence codés par le modèle.


Afin d'obtenir une évaluation de la conformité du contexte (un ensemble de vecteurs) et du candidat (un vecteur), le mécanisme d'attention est utilisé. Dans ce cas, le vecteur candidat est une demande et le vecteur de contexte est les clés. Il est considéré comme un produit scalaire et plus loin - softmax selon les valeurs résultantes. Les vecteurs de contexte sont pondérés par la distribution résultante et additionnés. En conséquence, nous obtenons la représentation du contexte sous la forme d'un seul vecteur. Et de plus, comme dans le Bi-Encoder habituel, nous considérons le produit scalaire du contexte et du candidat.


De plus, l'article a proposé un certain nombre de façons d'accélérer la pondération des vecteurs de contexte. L'option la plus efficace était un tel processus de comptage de l'attention, dans lequel seuls les m premiers vecteurs de la séquence de contexte étaient pris.


Résultats
En conséquence, il s'est avéré que Cross-Encoder fonctionne toujours mieux. Mais Poly-Encoder n'est pas loin derrière en termes de mesures de qualité, et en termes de vitesse d'inférence, il fonctionne des centaines de fois plus rapidement.


2. Discriminateur implicite dans l'encodeur automatique variationnel


Auteurs: Prateek Munjal, Akanksha Paul, Narayanan C. Krishnan (Indian Institute of Technology Ropar, 2019)
→ Article original
Auteur de la revue: Alex Chiron (dans sliron shiron8bit)


Dans l'article, les auteurs ont proposé une architecture qui tente de combiner les avantages des approches VAE et GAN pour la génération d'images, en contournant les inconvénients inhérents à chaque approche: flou dans le cas des auto-encodeurs, mode effondrement / mode manquant en cas de formation contradictoire. Ils y parviennent en raison des poids totaux entre l'encodeur et le discriminateur et le générateur / décodeur commun, ce qui, d'une part, réduit le nombre de poids du réseau et, d'autre part, nous permet d'obtenir des informations utiles du discriminateur par le biais de gradients si le générateur / décodeur ne tombe pas dans la distribution des données réelles.


Présentation
Dans les problèmes de génération, un rôle important est joué par la coïncidence de la distribution des données générées Q avec la distribution des données réelles P, qui est mesurée par la divergence de Kullback-Leibler. Une caractéristique distinctive de cette mesure de l'éloignement des distributions est qu'elle est asymétrique. En conséquence, nous obtiendrons des images différentes selon que nous considérons Div_KL (P || Q) ou Div_KL (Q || P). Si nous considérons deux options pour comparer les distributions (dans l'image ci-dessous), alors avec Div_KL (P || Q) (alias forward-KL, alias zéro évitant), la deuxième option donnera une valeur inférieure, et pour Div_KL (Q || P) (c'est vers l'arrière-KL, c'est aussi un forçage nul) les distributions de la première option seront considérées comme des distributions plus proches. En fait, les résultats de VAE et de GAN sont très différents: la perte de reconstruction (L2) aide à minimiser la divergence vers l'avant-KL (et donc nous préservons tous les modes, mais nous obtenons des images floues), et la formation avec un discriminateur permet de minimiser la divergence vers l'arrière-KL (les images sont obtenues plus clair, mais il y a un risque de sauter le mod)





Architecture, pertes et formation
Comme mentionné précédemment, les auteurs proposent de prendre en compte les lacunes des deux modes et de combiner les deux minimisations en raison de l'architecture du réseau (dans l'image ci-dessous), dans laquelle la plupart des poids du codeur et du discriminateur sont communs (seules les têtes entièrement connectées prédisant la `` réalité '' de l'image et des paramètres sont séparées mu, sigma de la couche latente VAE), et aussi en raison du mode d'apprentissage. L'encodeur et le générateur sont les mêmes. La plupart des pertes utilisées sont assez standard: dans l'encodeur L_enc los, l'erreur de récupération L2 et la divergence Kullback-Leibler à N (0,1) (L_prior) sont utilisées, le reste est une formation contradictoire (nous minimisons la sortie du discriminateur lors de la formation du discriminateur, maximisons-la lors de l'apprentissage d'un décodeur / générateur), mais il existe 2 particularités:


  • Dans la perte liée à la formation contradictoire, 2 types différents de données générées sont transmises au discriminateur: récupérées via un codeur / décodeur et générées par un générateur / décodeur à partir d'échantillons de N (0,1)


  • Dans la perte du décodeur L_dec, il y a un membre dans lequel les caractéristiques de l'avant-dernière couche du discriminateur (encore une fois, c'est la dernière couche commune entre le discriminateur et le codeur) sont comparées pour les images réelles et restaurées.




Résultats
Les auteurs ont comparé les résultats avec VAE et d'autres travaux, essayant d'une manière ou d'une autre de combiner VAE et GAN (VAE-GAN, alpha-GAN et AGE de Dmitry Ulyanov et Victor Lempitsky) sur les jeux de données celeba et cifar10 (merci pour non mnist), a reçu presque les meilleurs indicateurs concernant l'erreur de reconstruction et la métrique Frechet Inception Distance (compare les statistiques d'activation du maillage pré-formé pour les images réelles et générées). Il a été noté séparément que le classement par FID dépend fortement de l'architecture choisie, le résultat est donc préférable de vérifier l'ensemble des «experts» (différentes architectures).


3. L'auto-formation avec Noisy Student améliore la classification ImageNet


Auteurs: Qizhe Xie, Eduard Hovy, Minh-Thang Luong, Quoc V. Le (Google Research, Carnegie Mellon University, 2019)
→ Article original
Auteur de la revue: Alexander Belsky (in slack belskikh)


Google a obtenu une impression de 87,4% de top1 et 98,2% de top5 de précision absolument impressionnante. Zayuzali obscurcit les pseudoleiling et les réseaux très audacieux. L'approche s'appelait Noisy Student.





L'algorithme est quelque chose comme ceci:


  1. Nous prenons un modèle d'enseignant, nous enseignons une image normale.
  2. Nous générons des étiquettes psudo douces sur les images du jeu de données JFT.
  3. Nous enseignons le modèle étudiant sur des pseudo-étiquettes souples, et nous intervenons dès que possible: fortes augs, abandons et profondeur stochastique
  4. Prenez le modèle de l'élève, utilisez-le comme enseignant à l'étape 2 et répétez le processus.Le jeu de données est équilibré selon les classes comme suit. Pour commencer, nous avons pris EfficientNet-B0, formé sur l'image, conduit ses prédictions sur le jeu de données JFT. Ils ont ensuite pris les exemples pour lesquels la confiance maximale est supérieure à 0,3. Pour chaque classe, 130K images ont été prises (si après filtrage par 0,3 poubelle elles étaient moins - dupliquées, si plus - prises selon les portées de prédicat les plus élevées). Reçu 130 millions d'images, émissions en double, 81 millions à gauche

Architecture:
EfficeintNet, en outre, le modèle étudiant prend un modèle enseignant beaucoup plus gros. Ils ont également scanné EfficientNet lui-même en EfficientNet-L0 / L1 / L2, résultant en un modèle L2 avec 480M paramètres (Resnet50 a 26M paramètres, pour comparaison)


Processus d'apprentissage:
Butchesize 2048. Le modèle Sota L2 a enseigné 350 époques. Le plus grand modèle L2 étudié dans ce mode pendant 3,5 jours sur Cloud TPU v3 Pod avec 2048 cœurs.


Procédure d'apprentissage itératif:
Au début, ils ont enseigné le B7 en tant qu'étudiant et en tant que professeur. Ensuite, en utilisant B7 comme enseignants, ils ont enseigné le plus gros L0 en tant qu'étudiant. Puis, en changeant leur place comme ceci, nous sommes arrivés au modèle L2, que nous avons finalement utilisé comme enseignant pour le même modèle L2. Résultat :: sota: avec 2 fois moins de paramètres de modèle par rapport à la cellule précédente (FixRes ResNeXt-101 WSL 829M paramètres)


A également obtenu de très bons résultats sur ImageNet-A / C / P





4. Contraste de momentum pour l'apprentissage de la représentation visuelle non supervisé


Auteurs de l'article: Kaiming He, Haoqi Fan, Yuxin Wu, Saining Xie, Ross Girshick (Facebook, 2019)
→ Article original
Auteur de la revue: Arseny Kravchenko (in slack arsenyinfo)


SotA est un prétrain non supervisé pour plusieurs tâches de vision par ordinateur (de la classification à l'estimation de pose dense), testé sur différents ensembles de données (imagenet, instagram) et principales tâches (imagenet, COCO, paysages urbains, LVIS etc.).





Comment fonctionne le pré-entraînement non supervisé? Nous proposons une sorte de tâche pour laquelle les étiquettes ne sont pas nécessaires, nous apprenons l'encodeur, le gelons, puis nous résolvons le problème principal en ajoutant les couches manquantes (linéaire pour la classification, décodeurs pour la segmentation, etc.). L'une des tâches les plus populaires dans ce créneau est la discrimination d'instance, basée sur la perte contrastive, c'est-à-dire nous voulons que les caractéristiques des différentes augmentations de la même image soient proches les unes des autres (par exemple, en termes de distance cosinus), et les caractéristiques des différentes sont éloignées.


Vous pouvez essayer d'enseigner cette tâche de bout en bout, mais cela dépend beaucoup de la taille du lot: la qualité dépend fortement de la variété d'exemples à l'intérieur du lot. Les expériences montrent qu'avec l'augmentation de la taille des lots, la qualité finale s'améliore. Mais le lot est un peu similaire à Moscou: ce n'est pas du caoutchouc, ça ne marchera pas longtemps pour l'augmenter au front.


Les anciens types proches des cellules ont foiré une banque de mémoire: les caractéristiques des lots précédents ont été stockées séparément dans la mémoire et ont également été utilisées pour générer des négatifs, c'est-à-dire échantillons différents. Cela a aidé en partie, mais aussi imparfaitement: pendant l'entraînement, les poids de l'encodeur changent et les anciennes fonctionnalités vont mal.


Enfin, l'idée de l'article:


  1. Remplaçons une simple banque de mémoire par une file d'attente où se trouvent des fonctionnalités assez récentes;
  2. Nous conserverons deux versions de l'encodeur: l'une est utilisée pour le lot en cours et est entraînée, et l'autre est plus stable, ses poids sont mis à jour à partir de la première version, mais avec un grand élan;
  3. Les fonctionnalités du lot sont considérées comme le premier encodeur, les fonctionnalités de la file d'attente sont comptées par le deuxième encodeur.

Cette approche permet de se rapprocher de la qualité de la formation de bout en bout, mais, grâce à la longue programmation, elle permet d'obtenir les résultats potentiels d'un lot irréaliste. De cette façon, vous obtenez des mesures intéressantes pour différentes tâches, y compris à certains endroits, c'est même un peu mieux que l'image traditionnelle supervisée sur l'imaginette.


5. Analyse comparative de la robustesse du réseau de neurones aux perturbations et perturbations courantes


Auteurs: Dan Hendrycks, Thomas Dietterich (University of California, Oregon State University, 2019)
→ Article original
Auteur de la revue: Vladimir Iglovikov (in ternaus slack)





Il a été accepté à l'ICLR 2019 et si je comprends bien, c'est l'un de ces travaux DL qui n'a été formé dans aucun réseau.


La tâche était comme ça - mais essayons l'augmentation pour la validation d'ImageNet, mais nous nous entraînerons sur celle ininterrompue. De plus, contrairement à adevrsarial, nous n'avons pas pour tâche de rendre les transformations petites et invisibles à l'œil.


Ce qui a été fait:


  1. Un ensemble d'augmentations a été sélectionné. Les auteurs disent que c'est le plus courant, mais, à mon avis, ils mentent.
    Ils ont utilisé: GaussianNoise, ISONoise, Downscale, Defocus, MotionBlur, ZoomBlur, FrostedGlassBlur, JpegCompression, Snow, Fog, Rain, Elastic transoform, etc.
  2. Toutes ces transformations ont été appliquées à la validation ImageNet. L'ensemble de données résultant a été nommé ImageNet-C
  3. Une variante appelée ImageNet-P a également été proposée dans laquelle des ensembles de transformations de différentes forces ont été appliqués à chaque image.
  4. Une métrique a été proposée pour évaluer la stabilité du modèle.
  5. Plusieurs modèles ont été évalués dans le cadre de cette métrique: AlexNet, VGG-11, VGG-19, Resnet-50, Resnet-18, VGG-19 + BN, etc.

Conclusions:


  1. Plus l'augmentation est forte, plus la précision du modèle en souffre. : capitan_obvious:
  2. Plus le modèle est complexe, plus il est stable.
  3. L'application de CLAHE dans les images avant l'inférence aide un peu.
  4. des blocs d'agrégation comme l'aide de DenseNet ou Resnext.
  5. Les réseaux multi-échelles sont plus stables. Un exemple de tels réseaux est MSDNet, Multigrid (je n'ai pas entendu parler de tels réseaux)

Code


6. DistilBERT, une version distillée de BERT: plus petit, plus rapide, moins cher et plus léger


Auteurs: Victor Sanh, Lysandre Debut, Julien Chaumond, Thomas Wolf (Hugging Face, 2019)
→ Article original
Auteur de la revue: Yuri Kashnitsky (in yorko slack)


L'article est court, il est très facile à lire. Au début, quelques mots généraux sur la course aux armements dans la PNL et l'empreinte environnementale. De plus, l'idée de distillation (et Hinton l'a fait ici aussi) Dans la tâche de modélisation du langage, nous prédisons généralement le mot suivant en contexte. Habituellement, la perte d'entropie croisée compare le vecteur des probabilités prédites (la longueur de tout le dictionnaire) avec un vecteur binaire, où il n'y a qu'une seule unité indiquant le mot réel à un endroit donné dans l'ensemble d'apprentissage. Autrement dit, le deuxième, le troisième, etc. le mot que le modèle considère approprié est ignoré par la perte. Un exemple est donné dans l'article: "Je pense que c'est le début d'un beau [MASQUE]", au lieu de [MASQUE] BERT veut remplacer d'abord le jour ou la vie, mais les mots futur, histoire et monde qui suivent selon la probabilité prédite fonctionnent aussi bien. Peut-on en quelque sorte tenir compte du fait que le modèle produit une bonne distribution de probabilité? En gros, pour récompenser le modèle pour le fait qu'il n'y a pas de Murdock, de tolérance, de maternité et d'autres quelques mots appropriés dans le haut.





L'idée de la distillation
L'idée d'un programme spécifique enseignant-élève est que nous avons un grand modèle d' enseignant ( enseignant , BERT) et un modèle plus petit ( étudiant , DistilBERT), qui transmettront les «connaissances» du modèle d'enseignant. Le modèle de l'élève optimisera la perte de distillation, à savoir la perte d'entropie croisée, définie pour les distributions de probabilité de l'enseignant et de l'élève: L = Σ t_i * log (s_i). Autrement dit, pour un mot spécifique effacé par le symbole [MASQUE], et qui doit être prédit par le contexte, nous comparons deux distributions de probabilité de l'apparition de chaque mot du dictionnaire: {t_i} et {s_i} - prédites, respectivement, par le modèle et le modèle de l'enseignant étudiant. Ainsi, un signal d'apprentissage riche est obtenu - le modèle étudiant sur chaque mot reçoit un signal calculé non seulement en comparant son vecteur de prévision avec le mot réel dans l'échantillon d'apprentissage, mais en le comparant avec le vecteur de projection du modèle enseignant.


Modèle DistilBERT
L'idée est que l'élève est un modèle plus petit que l'enseignant. DistilBERT — BERT, . token-type embeddings pooler, , . , DistilBERT 40% — 66 . 110 BERT


DistilBERT
DistilBERT distillation loss — masked language modeling loss, BERT cosine embedding loss — ( , , "" - , "" ). : ablation studies, , masked language modeling loss, , .. distillation loss cosine embedding loss. , RoBERTa next sentence prediction dynamic masking.


, BERT (eng. wiki + Toronto Book Corpus) 90 8 V100 (16 GB). RoBERTa 1024 V100 (32 GB).


Résultats
BERT — "it performed surprisingly well", DistilBERT — GLUE surprisingly well — 5 9 , BERT , SQuAD IMDb — . , DistilBERT 60% — .



DistilBERT iPhone 7 Plus. 70% , BERT-base ( ), 200 . ablation studies: , — distillation loss cosine embedding loss.


3 , DistilBERT — BERT, 40% , 60% "97% " BERT ( ML).


-, BERT, .


:
Jay Alammar
, DistilBERT + Catalyst:


7. Plug and Play Language Models: A Simple Approach To Controlled Text Generation


: Sumanth Dathathri, Andrea Madotto, Janice Lan, Jane Hung, Eric Frank, Piero Molino, Jason Yosinski, and Rosanne Liu (Uber AI, Caltech, HKUST, 2019)

: ( Egor Timofeev)


. , / / (, . https://arxiv.org/pdf/1909.05858.pdf ). , , , , .



( x_prev ), p(x), conditional LM (, — CTRL) p(x|a).


: p(x|a) ∝ p(x)p(a|x), p(x) , (, GPT2), p(a|x) — . — , /. , , .


:


  1. , log(p(a|x)) ( ). hidden state .
  2. , hidden state log(p(a|x)). H_new.
  3. : p(x). , : -, KL(H, H_new), -, .. post-norm fusion ( https://arxiv.org/pdf/1809.00125.pdf ), p(x) non conditional LM , .
  4. .

, p(a|x).


Résultats
, - topic relevance. : (GPT2) < + << < + .





8. Deep Salience Representation for F0 Estimation in Polyphonic Music


: Rachel M. Bittner, Brian McFee, Justin Salamon, Peter Li, Juan Pablo Bello ( New York University, USA, 2017)

: ( nglaz)


. , . , – . , - . constant-Q , ( ) .



. constant-Q - f_min - F. f_min f_min * h, , , . h {0.5, 1, 2, 3, 4, 5}, . , 3- , 2- 3- (, , ). , , , , (0.5f, f, 2f, 3f, 4f, 5f), . ( 55) . , , dilated-.


, , constant-Q F, .


F0 estimation, , . 2017 , , state-of-the-art. , .


9. Analyzing and Improving the Image Quality of StyleGAN


: Tero Karras, Samuli Laine, Miika Aittala, Janne Hellsten, Jaakko Lehtinen, Timo Aila (NVIDIA, 2019)

: ( shiron8bit)


GAN- , , . , , , , ( FID) :


  • droplet-like ( / ), AdaIN.
  • , ProGAN- / end-to-end MSG-GAN. , /, .
  • Path Length Regularization.
  • : W, , stylegan2.




Artefacts de gouttelettes et AdaIN
Les auteurs de l'article avancent l'argument suivant contre l'utilisation de la couche AdaIN: adain normalise chaque carte d'entités, détruisant ainsi les informations sur les valeurs d'amplitude les unes par rapport aux autres, et droplet est une tentative du générateur de pousser ces informations d'une manière différente. En option pour affaiblir AdaIN, ce qui suit a été proposé: nous ferons toute la mise à l'échelle (modulation / démodulation) directement dans la convolution, en fonction du style provenant du bloc A et du décalage du signal sortant (au lieu de mu (y) / y_ {b, i} dans AdaIN) laissez le bloc B transformer le bruit. Cette innovation a en même temps permis d'accélérer la formation dans les mêmes conditions.


Échec de ProGAN
Dans l'article sur MSG-GAN, il a été proposé d'utiliser des connexions de saut, connectant les blocs générateurs correspondants et les blocs discriminateurs par résolution. Les auteurs de Stylegan ont développé cette idée en résumant les sorties des blocs générateurs de toutes les résolutions (avec suréchantillonnage) et en alimentant la version sous-échantillonnée correspondante de l'image à l'entrée de chaque bloc discriminateur. Il a été suggéré que les blocs résiduels soient utilisés comme deuxième option, tandis que les connexions sautées dans le générateur et les blocs résiduels dans le discriminateur ont montré les meilleurs résultats (le discriminateur est similaire à LAPGAN, mais sans discriminateurs pour chaque résolution, les cartes de caractéristiques sont transmises plus loin). comme dans le cas de ProGAN, dans les itérations initiales, les parties de la grille responsables des résolutions inférieures et de l'image globale apportent une plus grande contribution, puis l'accent est transféré sur les petits détails.


Régularisation de la longueur du trajet
Notant que les faibles valeurs FID ne donnent pas toujours des images de haute qualité, et notant également une corrélation entre la qualité de l'image et la métrique PPL (Perceptual Path Length - initialement la différence entre les caractéristiques vgg des images avec de petits pas en Z, mais la différence a été remplacée par LPIPS), les auteurs ont proposé Path Régularisation de la longueur, qui consiste à minimiser la fonctionnalité

JwTy= nablaw(g(w)y)


où g est le générateur lui-même, J_w est le Jacobien dans les variables d'espace latent. Dans ce cas, les calculs jacobiens peuvent être effectués via backprop, et il est également dit que pour faciliter les calculs, le régularisateur ne peut être compté que pour 16 lots. Le nombre a est calculé comme la moyenne mobile exponentielle de la norme jacobienne. L'utilisation de la régularisation de la longueur du chemin permet une interpolation plus "fluide" de l'espace caché W, qui, en plus d'améliorer la qualité de l'image, peut améliorer la réversibilité (c'est-à-dire trouver w qui donne une image donnée après avoir parcouru le générateur), et ouvre également des perspectives en termes d'animation et d'interpolation entre les images clés (dans la nouvelle architecture, entre les projections d'images similaires, il devrait y avoir des points responsables des images proches I). L'introduction de cette régularisation a également joué un rôle dans la simplification de la détection des images générées par cette architecture.

Le temps de formation pour 8 GPU à une résolution de 1024 * 1024 était de 2 à 9 jours pour différentes configurations.

Source: https://habr.com/ru/post/fr485122/


All Articles