L'outil Saimple développé par Numalis permet d'améliorer l'entraînement des réseaux de neurones. Les biais sont courants dans l'apprentissage des algorithmes d'intelligence artificielle. Bien que ces problèmes potentiels soient connus, il n'est pas facile de les détecter.
L'objectif est de créer et d’entraîner un modèle de classification comportant un biais d’association, c'est-à-dire un modèle qui donne des résultats plus ou moins corrects mais dont la prise de décision ne se base pas que sur la caractéristique représentant la classe.
Pour ce faire, un dataset comprenant de nombreuses images de guêpes et d’abeilles a été utilisé. Deux classes seront donc représentées : « bee » et « wasp » (respectivement « abeille » et « guêpe »). Les images du dataset sont classées en deux catégories pour chaque classe :
La première expérimentation va s’effectuer en entraînant le modèle sur des données « biaisées ». Les images d’abeilles et de guêpes étant classées en deux catégories différentes, le but va être d’entraîner le modèle sur une seule des catégories de chacune des classes. Ainsi les images d’abeilles utilisées seront en milieu naturel et les images de guêpes seront en milieu laboratoire. L’objectif est de faire en sorte que le modèle se base sur le milieu plutôt que sur l’insecte pour prendre sa décision.
Le dataset biaisé comporte donc des images d’abeilles dans un milieu naturel et des images de guêpes dans un milieu type laboratoire, réparties suivant 2469 images d’abeilles et 2816 images de guêpes.
Les performances du modèle sont testées sur 4 images :
Nous observons que le modèle classifie bien les images sur lesquelles il a été entraîné (abeille en milieu naturel et guêpe en milieu laboratoire) mais il ne classifie pas correctement les autres. Effectivement, si le modèle prend en compte l'environnement lors de son apprentissage plutôt que l'insecte, alors quand il évalue une image de guêpe dans un milieu naturel, il va identifier qu'il s'agit d'une abeille.
Classe prédite et classe réelle en fonction de l'image d'entrée du réseau
Voici les données de relevance obtenues par SAIMPLE, avec les 4 images présentées précédemment :
Relevance du modèle biaisé sur les 4 images de référence
L’utilisation du modèle sur Saimple est révélatrice du mauvais apprentissage et de la présence d’un biais. Les zones prises en compte par le réseau de neurones afin de statuer sur la classe de l’insecte sont visuellement représentées grâce à la fonction relevance de Saimple. Nous observons que sur une évaluation qui est exécutée avec une image de guêpe dans un milieu naturel, la dominance sera très élevée pour la classe "bee" et la relevance montre que le modèle ne se base pas que sur l'insecte, mais aussi sur ce qui l'entoure (par exemple une fleur ou un arrière-plan). Il n’y a pas d’éléments pertinents qui sont pris en compte. La totalité du corps des insectes est sélectionnée, ainsi que des parties du paysage comme les fleurs. Le biais d’association est clairement visible.
Le but est ici d’entraîner le modèle sans qu’il y ait un biais. L’ensemble des données va donc être utilisé et le modèle sera sauvegardé à chaque époque de l'entraînement, afin de pouvoir suivre l’évolution de l’apprentissage et de la performance du modèle. Le dataset non biaisé a été équilibré et comporte dorénavant 3183 images pour chaque classe : d’abeilles et de de guêpes en milieu laboratoire et naturel.
Tout d'abord, à la fin de la phase d’entraînement, on obtient un pourcentage de classifications correctes de 80%, pour la 30ème époque. Ce deuxième modèle montre des résultats de moins bonnes précisions par rapport au précédent sur les données de validation. Il est normal que le modèle ait perdu en précision puisqu'il est maintenant basé sur les caractéristiques réelles de l'insecte et non plus simplement sur l'environnement dans lequel il se trouve. Ce nouveau modèle fait cependant les bonnes classifications pour les 4 images de test présentées précédemment.
Relevance du modèle non biaisé sur les 4 images de référence
On peut voir grâce à Saimple que le modèle se focalise plus sur le corps de l'insecte, on ne remarque plus de signes du biais. Un autre point intéressant peut être observé sur l'image de l'abeille dans le laboratoire, en effet, on peut voir que de nombreux points de relevance sont placés sur le pétiole de l'abeille. Sachant que le pétiole des guêpes est beaucoup plus fin que celui des abeilles, le fait que le modèle se concentre sur ce point prouve que le modèle a appris des caractéristiques fondamentales pour distinguer ces deux insectes.
Grâce à Saimple, il est possible de comparer les résultats du modèle en fonction des époques. On évalue alors sur une même image trois états différents de ce modèle correspondant à un entraînement faible, moyen et conséquent (respectivement 1 époque, 15 époques, 30 époques). L'image utilisée est une image de guêpe sur fond naturel, que le modèle biaisé confond donc avec une abeille.
Evolution de la relevance au cours des époques
Les résultats de relevance obtenus avec Saimple permettent de s’assurer que le modèle a correctement appris en vérifiant quels éléments sont importants pour la classification. A la vue des résultats on peut en déduire que le modèle n’est pas assez entraîné aux époques 1 et 15 car des parties de la fleur sont encore prises en compte et que la classe dominante est en conflit avec d’autres classes, la dominance ne peut pas être assurée. Effectivement, une classe est dominante, si son score de dominance est toujours supérieur au score de dominance de toutes les autres classes.
Saimple permet donc de détecter facilement un biais d’association, qui est très difficile à détecter sans l’usage d’un tel outil. En effet, on ne peut pas savoir à l’avance sur quoi le modèle va se baser. Dans le cas d’un biais d’association, ce sont les données d’apprentissage qui introduisent le biais or il est impossible d’envisager qu’un opérateur humain puisse vérifier les données d’un dataset entier.
Dans ce cas d’usage, Saimple a permis non seulement de détecter le biais, mais aussi de le corriger, et enfin de s’assurer que le modèle n’était effectivement plus biaisé.
Enfin, Saimple permet de suivre l’évolution de l'entraînement du modèle au fil des époques. Cela permet de savoir au bout de combien de temps le modèle est suffisamment entraîné, évitant les problèmes de sous-apprentissage et de sur-apprentissage.
Si vous êtes intéressés par Saimple et que voulez en savoir plus sur le use case ou encore si vous voulez avoir accès à un environnement démo de Saimple:
contactez nous : support@numalis.com
Crédit image : Hans-Peter Gauster