Grad-Cam

Qu’est-ce que la méthode Grad-CAM ?

Shana Elbaz

Shana Elbaz

3 min

Au cours des dernières années, l’explicabilité a été un sujet récurrent mais toujours de niche dans l’apprentissage automatique. La méthode Grad-CAM est une solution pour répondre à ce problème.

Plus récemment, l’intérêt pour ce sujet a commencé à s’accélérer. Une des raisons de cette évolution : le nombre croissant de modèles d’apprentissage automatique en production. D’une part, cela se traduit par un nombre croissant d’utilisateurs finaux qui ont besoin de comprendre comment les modèles prennent leurs décisions. D’autre part, un nombre croissant de développeurs de Machine Learning ont besoin de comprendre pourquoi (ou pourquoi pas) un modèle fonctionne d’une manière particulière.

Les réseaux neuronaux convolutifs se sont avérés très efficaces dans des tâches telles que la classification d’images, la reconnaissance de visages et l’analyse de documents. Mais avec l’augmentation de l’efficacité et de la complexité, on constate une diminution progressive de l’interprétabilité de ces algorithmes. Une solution à des problèmes comme la reconnaissance des visages implique des centaines de couches et des milliers de paramètres à entraîner, ce qui rend difficile la lecture, le débogage et la confiance dans le modèle. Les CNN apparaissent comme des boîtes noires qui prennent des entrées et donnent des sorties avec une grande précision sans donner d’intuition sur le fonctionnement. 

En tant que data scientist, il est de notre responsabilité de s’assurer que le modèle fonctionne correctement. Supposons que l’on nous confie la tâche de classer différents oiseaux. L’ensemble de données contient des images de différents oiseaux et de plantes/arbres en arrière-plan. Si le réseau regarde les plantes et les arbres au lieu de l’oiseau, il y a de fortes chances qu’il classe mal l’image et qu’il rate toutes les caractéristiques de l’oiseau. Comment savoir si notre modèle regarde la bonne chose ? Dans cet article, nous verrons une approche pour identifier si le CNN travaille correctement avec les caractéristiques qui sont importantes pour la classification ou la reconnaissance.

La méthode Grad-CAM

Une façon de s’en assurer est de visualiser ce que les CNN regardent réellement, en utilisant la méthode du Grad-CAM.

La carte d’activation de classe pondérée par le gradient (Grad-CAM) produit une carte thermique qui met en évidence les régions importantes d’une image en utilisant les gradients de la cible (chien, chat) de la couche convolutive finale. 

La méthode Grad-CAM est une technique populaire de visualisation qui est utile pour comprendre comment un réseau neuronal convolutif a été conduit à prendre une décision de classification. Elle est spécifique à chaque classe, ce qui signifie qu’elle peut produire une visualisation distincte pour chaque classe présente dans l’image.

En cas d’erreur de classification, cette méthode peut s’avérer être très utile afin de comprendre où se trouve le problème dans le réseau convolutif. Cela permet aussi d’être plus transparent sur l’algorithme.

Comment ça marche ?

Grad-CAM consiste à chercher quelles parties de l’image ont conduit un réseau neuronal convolutif à sa décision finale. Cette méthode consiste à produire des cartes thermiques représentant les classes d’activation sur les images reçues en entrée. Une classe d’activation est associée à une classe de sortie spécifique.

Ces classes vont permettre d’indiquer l’importance de chaque pixel par rapport à la classe concernée en augmentant ou diminuant l’intensité du pixel.

Par exemple, si une image est utilisée dans un réseau convolutif de chiens et de chats, la visualisation de Grad-CAM permet de générer une heatmap (carte thermique) pour la classe “chat”, indiquant dans quelle mesure les différentes parties de l’image correspondent à un chat, et également une carte thermique pour la classe “chien”, indiquant dans quelle mesure les parties de l’image correspondent à un chien.

Par exemple, considérons un CNN de chiens et de chats. La méthode Grad-CAM va permettre de générer une heatmap (carte thermique) pour la classe d’objets chat pour indiquer dans quelle mesure chacune des parties d’une image correspond à un chat et également une heatmap pour la classe d’objet chien en procédant de la même manière.

La carte d’activation de classe attribue une importance à chaque position (x, y) dans la dernière couche convolutive en calculant la combinaison linéaire des activations, pondérée par les poids de sortie correspondants pour la classe observée (terrier australien dans l’exemple ci-dessous). La cartographie d’activation de classe résultante est ensuite rééchantillonnée à la taille de l’image d’entrée. Ceci est illustré par la carte thermique (une heatmap) ci-dessous.

Carte Thermique
Source : https://arxiv.org/abs/1512.04150

Reprenons maintenant l’exemple de la classification de chiens et de chats. La méthode Grad-CAM va donc permettre de rendre thermique les zones utilisées pour la classification de chacun des objets de notre image et cela produira le résultat suivant :

Résultat de la méthode Grad-CAM
Source : https://glassboxmedicine.com/2020/05/29/grad-cam-visual-explanations-from-deep-networks/

Dans cet article, nous avons vu une nouvelle technique pour interpréter les réseaux neuronaux convolutifs qui sont une architecture de pointe, en particulier pour les tâches liées à l’image. La recherche dans le domaine de l’apprentissage automatique interprétable progresse à un rythme accéléré et s’avère très importante pour gagner la confiance des utilisateurs et contribuer à l’amélioration des modèles.

Cet article vous a plu ? Si vous êtes convaincu par l’importance du Machine Learning aujourd’hui, et par l’efficacité de notre formation Bootcamp