Les recherches sur l'apprentissage profond des machines ont permis à Google d'améliorer certains de ses outils et d'en créer des nouveaux. C'est le cas par exemple de la « Recherche par image » apparue discrètement dans Google Images et qui permet de rechercher des images identiques ou similaires en important une image sur le service ou en indiquant son URL via l'icône du petit appareil photo située à droite du champ de recherche.
Pour créer ce type d'outils, les ingénieurs de Google entraînent un puissant réseau de neurones artificiels en le « nourrissant » avec des millions d'images, de manière à ce qu'il apprenne à reconnaître et classifier les contenus. Cette technique donne d'excellents résultats avec une marge d'erreur de plus en plus faible (moins de 5%), et pourtant, les chercheurs ne savent toujours pas exactement comment le système fonctionne. C'est en voulant essayer de percer cette énigme que les chercheurs ont donné naissance à l'incroyable projet « Deep Dream », ou le « rêve profond » des machines. Explications...
Ordinateur, dis-moi ce que tu vois !
Dans un billet intitulé Inceptionnisme, plus loin dans les réseaux neuronaux, les ingénieurs logiciels de Google qui travaillent sur l'apprentissage des machines ont dévoilé les résultats de leurs recherches. Au départ, le projet Deep Dream visait à améliorer leur système de reconnaissance d'image qui fonctionne par le biais d'un réseau de neurones artificiels, composé généralement de 10 à 30 couches de neurones superposées. Inspiré du cerveau humain, ce système est capable de résoudre des problèmes et de se perfectionner à mesure qu'il apprend : « Pour faire de la reconnaissance d'image, nous formons un réseau neuronal en lui montrant des millions d'exemples de formes et nous ajustons graduellement ses paramètres du réseau jusqu'à ce qu'il donne les classifications souhaitées. Chaque image passe par la couche d'entrée, qui l'analyse et la transmet à la couche suivante et ainsi de suite jusqu'à la couche de sortie ».Dans cet article, ils expliquent que l'un des défis de la recherche sur les réseaux de neurones est de parvenir à comprendre ce qu'il se passe exactement sur chaque couche de neurones durant l'analyse d'une image. Il arrive parfois que le réseau neuronal ne recherche pas le contenu pour lequel ils l'ont programmé : « Lors d'un exercice, nous avons demandé au réseau de classifier des haltères. Il a bien reconnu des haltères, mais celles-ci étaient systématiquement tenues par un bras d'haltérophile. Peut-être qu'il n'avait jamais vu d'haltères sans bras pour les tenir. ».
Concrètement, les ingénieurs pensent que les premières couches traitent les éléments les plus simples tels que les angles et les coins d'un objet. Les couches intermédiaires se chargent d'interpréter quant à elles les formes et les différents composants de l'image. Enfin, les dernières couches regroupent un peu comme un puzzle toutes les données récoltées et fournissent une interprétation finale complexe comme des bâtiments, ou des arbres entiers. Mais ce que les chercheurs ignorent, c'est comment les différentes couches de neurones se représentent le contenu d'une image, les formes qu'elles identifient peu à peu et qui sont gardées, ou non, à la fin de l'analyse.
L'équipe de Google a donc eu l'idée de créer un outil de visualisation pour pouvoir vérifier que le réseau neuronal traite bien l'objet qu'il est censé reconnaître durant une analyse. Pour cela, ils ont amplifié son niveau de reconnaissance. Au lieu de lui demander de reconnaître un élément en particulier, comme un chien ou un chat, les ingénieurs lui ont demandé de montrer tout ce qu'il voit en lui donnant pour seule et unique instruction : « Peu importe ce que tu vois, je veux en voir encore plus ! ».
Le but est de pousser le réseau à surinterpréter les formes dans les images, détaillent les chercheurs : « Si un nuage ressemble un peu à un oiseau, le système le fera ressembler encore plus à un oiseau... En réitérant l'action progressivement sur les différentes couches de neurones, le système va reconnaître de plus en plus distinctement un oiseau jusqu'à le faire apparaître de manière très détaillée au milieu de nulle part ! ». Résultat, le réseau se met à générer des formes totalement psychédéliques sur les clichés : des escargots avec des têtes d'oiseau apparaissent dans les feuilles des arbres, des pagodes sur la crête des montagnes, des grappes de raisin sur le visage de personnes, etc. Des visions hypnotiques qui enflamment la toile.
L'inceptionnisme
Les images générées par les « rêves » du réseau neuronal sont publiées sur une galerie dédiée et donnent même naissance à un nouveau mouvement artistique baptisé « Inceptionnisme » par l'équipe de Google, en référence à Inception, le film de science-fiction avec Leonardo DiCaprio. Face à l'engouement suscité par ses travaux, Google décide quelques jours plus tard de publier le code source de Deep Dream sur GitHub. Très vite, la communauté de développeurs open source s'est mise a créer divers logiciels et interfaces Web comme Deep Dream Generator permettant aux internautes d'utiliser facilement le service.L'une des intrigantes images générées par la « machine à rêves » de Google.
Des milliers d'images « taguées » à l'intelligence artificielle de Google, et affublées du hashtag #deepdream ou #deepdream bot ont déferlé sur les réseaux sociaux. Lorsque nous avons testé Deep Dream Generator il y a quelques semaines, son interface permettait juste de télécharger des photos et d'attendre le résultat, sans pouvoir jouer avec les différentes couches de neurones. Le service rencontrait par ailleurs un tel succès qu'il fallait patienter entre 3 et 4 jours pour générer une image. A condition d'ouvrir gratuitement un compte sur le site, il est désormais possible de générer une image en quelques minutes, et d'accéder à différents réglages pour solliciter les différentes couches de neurones et jouer avec la résolution pour accentuer la reconnaissance.
Les « paréidolies » de Clubic Mag
L'expérience de Google nous plonge dans nos propres illusions d'optique appelées paréidolies. Ce mot que l'on n'a pas vraiment l'habitude d'utiliser tous les jours désigne notre capacité à reconnaître, par exemple, la forme d'un visage dans un rocher, ou d'un animal dans les nuages. Les images générées par Deep Dream ne représentent donc pas des rêves, mais plutôt des paréidolies d'ordinateur. Les résultats varient énormément d'une image à une autre, mais sont toujours très intrigants.Un vélo bien chargé !
Cette image qui se révèle pourtant très sobre à la base a vraisemblablement affolé les visions du système. Pour parvenir à ce résultat, nous avons réitéré l'opération six fois, comme le permet le service Deep Dream Generator .
Des chevaux très psychédéliques
Cette interprétation tient plus du cauchemar que du rêve. Entraîné à reconnaître essentiellement les animaux, le réseau de neuronal à tendance à en voir partout. Une créature mi-écureuil mi-oiseau, un bulldog avec des oreilles de chauves-souris, des têtes de serpent et des canards dans les feuilles d'arbre, le peintre Jérôme Bosch n'a qu'à bien se tenir...
Des mutants sur la Rambla
La plus célèbre avenue de Barcelone prend des allures vraiment très inquiétantes. Avec leurs visages de monstres et leurs tenues faites de fourrure, de plumes, et de têtes d'animaux divers et variés, les passants pourraient bien figurer au générique d'un film d'horreur.
La plus belle avenue du monde
C'est l'une des images les plus étonnantes que nous ayons générées. Les Champs Élysées durant les fêtes de Noël se transforment en une sorte de salle de casino peuplée d'animaux. Des formes apparaissent même dans le ciel pourtant complètement noir. Il faut dire que là aussi, nous avons poussé le réseau de neurones à son maximum en lui demandant de renforcer sa reconnaissance.