Grad-CAM : comment créer des cartes thermiques pour les problèmes de classification.
version anglaise ici
Ce n'est pas nouveau que ces dernières années, il a été de plus en plus facile de développer des algorithmes qui utilisent l'apprentissage automatique. Et ce battage médiatique a 3 principaux coupables :
- Augmentation de l'efficacité de traitement des ordinateurs.
- Des technologies de stockage et de mémoire de moins en moins chères.
- L'accès à un volume de données qui aurait rendu jaloux les chercheurs en intelligence artificielle du siècle dernier.
Cette popularité est TRÈS importante pour la diffusion d'outils qui peuvent radicalement changer la façon dont l'informatique va évoluer dans les années à venir, mais des algorithmes qui semblent miraculeux dans un contexte donné peuvent apporter des résultats dangereux dans d'autres.
Ainsi, les nouvelles sur les algorithmes biaisés sont devenues de plus en plus courantes. Cela fait place à un nouvel ensemble de techniques extrêmement nécessaires, des techniques qui cherchent à expliquer les raisons de la prise de décision de ces algorithmes. Quelque chose comme essayer de rendre ces "boîtes noires" un peu transparentes. De nombreuses études allant dans ce sens ont cité le terme XAI (abréviation de Explainable AI) comme cadre théorique regroupant plusieurs techniques différentes dans le même but.
L'une de ces techniques est Grad-CAM, qui vise à améliorer notre compréhension de la prise de décision dans les problèmes de classification d'images.
Comment fonctionne Grad-CAM
Supposons que nous disposions d'un réseau neuronal convolutif (CNN) entraîné pour la tâche de classer une image entre les classes avion, chien, chat ou personne.
Pour en savoir plus sur l'organisation d'un réseau de neurones, je vous conseille cette playlist ici . Les réseaux de neurones convolutifs sont une classe de réseaux de neurones artificiels. Pour en savoir plus sur les CNN, regardez cette vidéo ici .
Si le réseau a été bien formé, les classes Dog et Cat recevront des valeurs élevées, indiquant que ces classes sont probablement présentes dans l'image. Grad-CAM produit une carte thermique pour chaque classification possible.
Maintenant un peu de formalisme pour pouvoir décrire les étapes de l'algorithme et comment il génère une carte de chaleur à la fin du processus. Au final, la carte thermique est représentée par une matrice bidimensionnelle, analogue à l'entrée du modèle, c'est-à-dire :
En plus de la convention de nommage pour définir ce qu'est une carte thermique, il est nécessaire de définir comment nous ferons référence au score que CNN attribue à chacune des classes possibles.
Supposons que nous recherchions la carte thermique pour classer cette image en chat. Autrement dit, quelle région de l'image originale était la plus importante pour que le réseau de neurones définisse que l'image contient un chat ?
Étape 1 : Calcul du dégradé
Pour cela, il faut d'abord obtenir les gradients de chacun des canaux de la dernière couche convolutive (A1, A2 et A3) par rapport à la classe souhaitée (cat).
L'intuition derrière le résultat de ce processus est que ces matrices générées auront des pixels avec des valeurs plus élevées plus ces régions sont pertinentes pour déterminer la valeur finale que CNN a attribuée à cette classe (cat).
Le résultat de cette étape est une matrice de dimensions (u, v, k). Dans cet exemple particulier, k=3.
Étape 2 : Alphas
Pour chacun des gradients calculés à l'étape précédente, on obtient la moyenne de chacune des matrices à 2 dimensions.
En pensant à l'intuition derrière cette étape, au lieu de chercher la pertinence pixel par pixel pour une classe donnée comme nous l'avons fait à l'étape 1, nous la transformons en pertinence pour chacune des cartes (A1, A2 et A3).
Ainsi, chacun de ces "alphas" représente l'importance de chacune des cartes dans la prise de décision de classer l'image comme contenant un chat. Plus l'Alpha était élevé, plus la carte correspondante était importante pour prendre la décision pour une classe donnée.
Comme la sortie de l'étape précédente était une matrice (u, v, k), la sortie de cette étape a des dimensions (1, 1, k).
Étape 3 : carte thermique
Comme la sortie de l'étape précédente est des nombres scalaires, pour chacune des cartes A1, A2 et A3, nous pouvons effectuer la combinaison linéaire entre ces facteurs et les cartes correspondantes.
Comme étape supplémentaire, l'algorithme Grad-CAM applique une fonction ReLU au résultat de cette opération.
La sortie de cette étape a la même dimension que l'entrée de l'étape 1, c'est-à-dire une matrice (u, v, k). Comme les cartes de caractéristiques de la dernière couche convolutive ont généralement une résolution beaucoup plus faible que l'image d'origine, il est nécessaire de réinitialiser la résolution finale de la carte thermique.
Enfin, la carte thermique obtenue peut être placée au-dessus de l'image d'origine. Les régions en surbrillance étaient les régions les plus importantes pour classer l'image d'entrée comme une image contenant un chat.
Dans aucune des étapes précédentes, la classe à utiliser ne doit nécessairement être Gato . De manière analogue, nous pourrions vouloir mettre en évidence les zones que l'algorithme a considérées comme pertinentes pour prendre la décision de classer l'image comme Chien. Pour ce faire, il suffit de remplacer la classe souhaitée de la carte thermique finale dans les étapes 1, 2 et 3 de l'algorithme.
applications
Il existe des problèmes de classification où la distribution des données de formation doit être analysée très soigneusement. Grad-CAM peut être utilisé comme validateur des résultats obtenus par le modèle.
Par exemple, imaginez un classificateur de professionnels de la santé. Dans ce contexte, il n'y a que deux classes possibles : Médecins ou infirmières. L'ensemble de données de formation était en effet biaisé (78 % des images de médecins étaient des hommes et 93 % des images d'infirmières étaient des femmes) et a donc généré un modèle qui, même avec une grande précision (82 %) contenait un biais .
Lors de l'application de la technique Grad-CAM à deux images différentes, il a été remarqué que le modèle biaisé (deuxième colonne de l'image ci-dessus) "regardait" plus le visage du professionnel que ses vêtements et outils de travail.
Ce type d'analyse finit par être de plus en plus pertinent ces derniers temps, où nous avons de plus en plus d'algorithmes de classification dans les applications de notre vie quotidienne.
En plus d'une classification simple comme celle-ci, Grad-CAM peut être appliqué à des modèles classificateurs d'imagerie diagnostique. Un certain nombre de travaux ont vu le jour à cet égard lors de la récente pandémie de coronavirus.
J'espère que vous avez aimé découvrir l'idée de Grad-CAM et quelques applications possibles de cette technique