Réseau de neurones sous-alimentés

Les réseaux de neurones permettent de prédire ce qui, par exemple, figure sur une image. Pour ce faire, ils doivent être entraînés sur de grandes quantités d’images connues. Malheureusement, quand on a pas beaucoup d’images, par exemple parce qu’elles sont obtenues par des essais coûteux, peut-on encore espérer des réseaux de neurones quand ils sont sous ou mal alimentés?

Inception

L’inception consiste à partir d’une image et d’un réseau de neurones préentrainé de déduire ce qui est dessus. Le cas test classique consiste à entraîner le réseau de neurones sur des images de chiens et de chats (exemple ce challenge Kaggle). Mais il en faut beaucoup. Dans la base de chiens et de chats, il y a 25000 images bien propres, bien régulières. Avec cela comme base d’entraînement on peut espérer de bonnes performances. Mais dans la vie, c’est rarement le cas. Les données dont on dispose sont ce qu’elles sont. Elles viennent d’époques et de sources variées. Bien sûr celles qui représentent toutes un objet donné le montrent, mais sous différents aspects, sous différentes qualités, sous différents angles.

Shiva et Ganesh

Bien que notre objectif soit d’utiliser des réseaux de neurones sur les processus industriels, nous allons ici tester les limites au travers d’un algorithme de reconnaissance des dieux. Shiva est le dieu le plus complexe qui soit. Il a 1008 identités et de multiples formes.

Shiva sous trois formes

Ce dieu aux multiples facettes est un bon candidat pour tester la résistance d’un réseau de neurones à des données brutes. Ganesh est son fils et le dieu de la chance et du bonheur.

Dans cette expérience, les images sont venues non pas d’une sélection très précise, mais d’une recherche BING avec les termes Shiva et Ganesh. Notre base d’apprentissage contient donc 1175 images de taille et de type variés, avec des représentations graphiques, des bas-reliefs, des statues… Un ensemble très petit et très hétérogène qui, selon les règles de la statistique et le théorème VC, ne devrait conduire à rien.

Augmentation

Pour améliorer la reconnaissance, les images peuvent être soumises à des transformations pour permettre au réseau de neurones de reconnaître quand même une image retournée ou déformée.

 

Après quelques heures d’apprentissage

L’apprentissage s’est fait sur environ 1000 images avec 100 images pour la validation (il s’agit d’un réseau convolutionnel à dix couches cachées).  Les images sont réduites à 150×150 pixels en 32 couleurs. Le réseau de neurones, malgré la piètre qualité des données d’entrées, atteint 75 % de succès.

Lorsqu’on lui soumet de nouvelles images, même des visions d’artiste, il découvre le dieu dans la plupart des cas

Image à analyser Prédiction du réseau de neurones Image à analyser Prédiction du réseau de neurones
⇨ Shiva ⇨ Ganesh

Il est intéressant de voir le processus qui conduit à la détection d’une représentation de Shiva. Dans les planches suivantes nous voyons la détection d’éléments constitutifs de l’image conduisant à sa catégorisation.

Image d’origine

1ere couche de convolution

Maxpooling 1

Seconde couche de convolution

Symbole tripundra

On peut notamment voir apparaître l’identification du trident (trishula) comme élément d’identification. La détection des aspects symboliques est également assez inattendue. Ainsi, la tripundra, symbole représentant trois aspects de Shiva (volonté, savoir, action) et souvent tracé sur le front des hindous, est bien analysée comme étant Shiva.

Une performance inattendue

Dans une récente conférence Yann Le Cun, constatait que les réseaux de neurones convolutionnels marchaient tellement bien que c’était quelque peu inespéré. Bien que l’usage que nous vous proposons ici, sur peu de données, soit en opposition avec les analyses et recommandations de la statistique, il fonctionne relativement bien. Il arrive que nous n’ayons aucun modèle mathématique ou physique pour décrire un phénomène. Le recours alors à des expériences nombreuses est alors la seule solution. Les réseaux de neurones profonds permettent de débroussailler un domaine pour peu que l’on prenne garder à conserver un esprit critique sur les résultats, voire de compléter les plans d’expérimentation.

Une définition dans la boîte

Au delà de l’application scientifique de cette technologie, cela nous interroge sur le sens du sens. En effet, si nous faisons une recherche d’image sur le dieu Shiva, nous serons, après en avoir vu quelques-unes seulement capable de l’identifier dans d’autres contextes. Pour cela, notre cerveau apprend par rapport à nos références culturelles, c’est à dire qu’il n’établit pas de « règles » comme « être bleu », « avoir le Gange qui sort des cheveux »… En fait ces règles, qui forment l’essentiel des algorithmes sémantiques ou des systèmes experts, ne sont ni toujours ni souvent vérifiées. En cela le petit réseau de neurones de 6 Mo présenté ici contient une définition informulée de Shiva. C’est-à-dire qu’il n’a pas établi de règles qu’il utiliserait pour identifier qui est sur l’image, mais plutôt une définition « culturelle » de Shiva. Comme cela a été observé par certains, c’est la première fois que nous avons une définition non humaine de ce qui nous entoure. Et cela, c’est en soit un évènement.

 

 

Voir aussi:

Télécharger cet article au format PDF ou ePub

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.