Il y a quelques années, il y avait un article sur ma liste de lecture intitulé Progrès et évolution du GAN pour améliorer la qualité, la stabilité et augmenter la variation . Il décrit la croissance progressive des réseaux antagonistes génératifs qui ont commencé avec des images à basse résolution et ont augmenté la granularité à mesure que l'apprentissage progressait. De nombreuses publications ont été consacrées à ce sujet car les auteurs ont utilisé leur idée pour créer des images réalistes et uniques de visages humains.
Exemples d'images générées par GAN
En regardant ces images, il semble que d'autres réseaux de neurones devront étudier de nombreux exemples pour pouvoir créer ce que les GAN produisent. Certains facteurs semblent en fait relativement simples et bien fondés - par exemple, la couleur des deux yeux doit correspondre. Mais les autres aspects sont incroyablement complexes et très difficiles à articuler. Ainsi, par exemple, quels détails sont nécessaires pour lier les yeux, la bouche et la peau ensemble en une image faciale complète? Bien sûr, je parle de la machine statistique en tant que personne, et notre intuition peut nous tromper - il se peut qu'il y ait relativement peu de variations de travail et que l'espace de solution est plus limité que nous ne l'imaginons. La chose la plus intéressante n'est probablement pas les images elles-mêmes, mais l'effet terrible qu'elles ont sur nous.
Quelque temps plus tard , mon podcast préféré mentionnait PhyloPic , une base de données d'images de silhouette d'animaux, de plantes et d'autres formes de vie. En réfléchissant sur ces lignes, je me suis demandé - que se passerait-il si vous formiez un système comme celui décrit dans l'article "Progressive GAN" sur un ensemble très diversifié de données similaires? Allons-nous nous retrouver avec de nombreuses variétés de plusieurs types d'animaux connus, ou aurons-nous de nombreuses variantes qui donneront lieu à une zoologie spéculative pilotée par des réseaux de neurones? Peu importe comment cela fonctionnait, j'étais convaincu que je pouvais en tirer de bons dessins pour mon mur d'étude, alors j'ai décidé de satisfaire ma curiosité avec une expérience.
J'ai adapté le code de l'article Progressive GAN et formé le modèle à travers 12 000 itérations en utilisant la puissance de Google Cloud (8 GPU NVIDA K80) et l'ensemble de données PhyloPic. La durée totale de la formation, y compris certaines erreurs et expériences, était de 4 jours. J'ai utilisé le modèle formé final pour créer des images individuelles de 50K, puis j'ai passé des heures à parcourir les résultats, à catégoriser, filtrer et faire correspondre les images. J'ai également modifié un peu certaines des images, en les faisant pivoter pour que toutes les créatures soient dans la même direction (pour obtenir une satisfaction visuelle). Cette approche pratique signifie que ce que vous voyez ci-dessous est une sorte de collaboration entre moi et le réseau neuronal - c'était un travail créatif, et j'y ai fait mes propres modifications.
La première chose qui m'a surpris était la beauté esthétique des résultats. Une grande partie de cela est certainement le reflet du bon goût des artistes qui ont créé les images originales. Cependant, il y a eu aussi de belles surprises. Par exemple, il semble que chaque fois qu'un réseau de neurones pénètre dans une zone d'incertitude - qu'il s'agisse de petits morceaux qu'il n'a pas encore maîtrisés ou de vols de fantaisie biologique floue - des aberrations chromatiques apparaissent dans l'image. C'est curieux car le jeu d'entrées est entièrement noir et blanc, ce qui signifie que la couleur ne peut pas être une solution à tout problème génératif qui a été adopté lors de la formation du modèle. Toute couleur est un pur artefact de l'esprit de la machine. Étonnamment, les ailes des insectes volants sont l'un des facteurs qui provoquent constamment une aberration chromatique. Cela conduit au faitque le modèle génère des centaines de variations de "papillons" aux couleurs vives comme celles illustrées ci-dessus. Je me demande si cela pourrait être une observation utile - si vous entraînez un modèle en utilisant uniquement des images en niveaux de gris et que vous avez toujours besoin d'images en couleur, alors les taches colorées peuvent être un moyen utile de montrer les zones où le modèle est incapable d'afficher avec précision l'ensemble d'entraînement.
La majeure partie de la production est une grande variété de silhouettes complètement reconnaissables - oiseaux, divers tétrapodes, de nombreux petits dinosaures carnivores gracieux, à pattes de lézard, poissons, coléoptères, arachnoïdes et humanoïdes.
Oiseaux Dinosaures
Quadrupes Poissons Coléoptères Hominidés
Choses bizarres
Dès que les créatures que nous connaissons finissent, nous sommes confrontés à des choses inconnues. L'une des questions qui m'est venue était la suivante: y aura-t-il des plans corporels plausibles d'animaux qui n'existent pas dans la nature (peut-être des hybrides de créatures inclus dans l'ensemble de données d'entrée)? Grâce à une recherche minutieuse et un peu de paréidolie, j'ai découvert des centaines d'oiseaux à quatre pattes, des cerfs à tête de serpent et d'autres monstres fantastiques.
Monstres
En allant encore plus loin dans l'obscurité, le modèle a donné naissance à d'étranges motifs abstraits et à des entités non identifiables qui créent une certaine impression de leur «vivacité».
Créatures abstraites
non identifiables
Échantillonnage aléatoire
Ce qui n'est pas visible sur les images ci-dessus, c'est l'abondance de la variation des résultats. J'ai imprimé et encadré plusieurs de ces ensembles d'images, et l'effet de centaines de petites images détaillées côte à côte à l'échelle est assez incroyable. Pour donner une idée de l'échelle de l'ensemble de données complet, j'inclus l'un des exemples d'impression ci-dessous - il s'agit d'un échantillon aléatoire d'un corpus d'images non filtré.
Apprenez comment obtenir une profession recherchée à partir de zéro ou augmenter vos compétences et votre salaire en suivant des cours en ligne payés par SkillFactory:
- Cours d'apprentissage automatique (12 semaines)
- Apprendre la science des données à partir de zéro (12 mois)
- Profession analytique avec n'importe quel niveau de départ (9 mois)
- «Python -» (9 )