LIME : Un outil d’interprétabilité des algorithmes de classification
- Publié le mercredi 2 mars 2022
- temps de lecture 5 minutes
![](/-/media/blog---lime.jpg?vs=1&w=1120&la=fr-FR&hash=D85CD4FE7E6DFAA20946C6C57BDAC905)
L’Intelligence Artificielle connait des progrès spectaculaires depuis l’émergence du deep learning au début des années 2010. Alors que les développeurs s’appuyaient principalement sur des systèmes experts, c’est-à-dire programmés à partir de règles définies, les réseaux de neurones privilégient une tout autre méthode : Leurs concepteurs les alimentent de tonnes d’exemples d’un phénomène donné – des images, des sons, des parties de jeu de Go etc. – en les laissant repérer les régularités au milieu de cet océan de données. En cherchant la meilleure combinaison parmi des millions de paramètres, le deep learning affiche des résultats spectaculaires. Son « raisonnement » est cependant extrêmement complexe à appréhender, si bien que l’on parle généralement de boite noire.
Quand il s’agit de reconnaître un chat ou un chien, cela ne pose guère de problème. En revanche, lorsqu’il s’agit de reconnaitre des tumeurs cancéreuses c’est beaucoup plus délicat. Cela devient même un véritable défi quand il s’agit d’éclairer un médecin sur les résultats d’une IA : Comment pourrait-il se prononcer s'il ne saisit pas la manière dont le modèle fonctionne, s'il n'a aucun moyen d'apprécier le processus logique qui a conduit à générer tel ou tel indicateur ? Il est dès lors fondamental de pouvoir expliquer les résultats d’un algorithme, aussi complexe soit-il, c’est une question de confiance et de transparence. On parle alors d’interprétabilité et d’explicabilité des algorithmes. Il faut toutefois préciser la différence entre ces deux notions : L’interprétabilité propose une évaluation globale d’un processus de décision alors que l’explicabilité s’intéresse aux variables qui ont été déterminantes pour une décision particulière. Dans le cadre de l’évaluation d’un modèle de machine learning on parle généralement d’interprétabilité car on établit une représentation (possiblement visuelle) de l’importance des variables qui mènent à ses prédictions. Si l’on veut comprendre une prédiction donnée, alors on cherche son explication.
Il existe de nombreuses méthodes et outils pour interpréter les décisions prises par un algorithme. L’une des techniques consiste à identifier pas à pas les variables d’entrée qui ont mené aux résultats que l’algorithme produit. En Computer Vision par exemple, il s’agira de revenir aux pixels ou à la région d’une image dont les poids auront été prépondérants pour aboutir à une reconnaissance de forme. L’approche de LIME, l’un des outils les plus utilisés par les Data Scientists s’inscrit dans cette logique.
LIME (pour « Local Interpretable Model-agnostic Explanations ») est une librairie open-source développée par trois chercheurs de l’Université de Washington, dont Marco Tulio Ribeiro, actuellement chercheur chez Microsoft Research. LIME propose d’expliquer les prédictions des algorithmes de classification en Machine Learning. Cela peut concerner des classifieurs de données tabulaires, de texte ou d’images.
Pour la classification d’image, LIME détermine les régions d’une image, appelées « ensembles de super-pixels », ayant l’association la plus forte avec une étiquette de prédiction. Il génère ensuite des perturbations en activant (« 1 ») et en désactivant (« 0 ») certaines de ces zones. On considère que l’image originale est une seule perturbation avec tous les super-pixels actifs : Etant donné que les perturbations sont des vecteurs multidimensionnels, au moyen de la métrique distance cosinus, on va pouvoir évaluer la distance de chaque perturbation par rapport à l’image d’origine. Une fois la distance cosinus calculée, on obtient un coefficient pour chacune des perturbations. Il suffit alors de classer les coefficients pour déterminer lesquels sont les plus importants pour une prédiction donnée. Ce résultat nous donne donc l’explication de la prédiction.
Voici un exemple pour illustrer ce processus :
Admettons que l’on veuille reconnaitre un chien sur une image comme celle ci-dessous.
LIME calcule les ensembles de super-pixels (en jaune).
Les perturbations sont générées comme ci-dessous, la distance cosinus est calculée par rapport à l’image originale.
La perturbation la plus importante pour la prédiction « chien » est retenue : On constate ci-dessous que le modèle se base bien sur les caractéristiques du chien pour faire sa prédiction.
En mars 2020, dans le cadre de mon cursus à l’Ecole IA Microsoft, j’ai travaillé sur un algorithme de classification d’images pour tenter d’aider les soignants à diagnostiquer le COVID-19. J’ai ainsi pu entrainer des modèles à partir de radiographies pulmonaires afin de déterminer si le patient souffrait du nouveau coronavirus ou d’une autre maladie respiratoire. Pour ce faire, je me suis basé sur deux jeux de données, le premier constitué des radios de patients infectés par le COVID-19, le second rassemblant différents cas de pneumonies virales et bactériennes. Il s’agissait donc d’une classification binaire composée des deux classes « covid » et « other ».
Exemples de radiographies utilisées : COVID-19 (à gauche) et pneumonie bactérienne (à droite)
Malgré un nombre limité d’exemples, environ 500 images, mon algorithme a montré des performances exceptionnelles, avec une accuracy de l’ordre de 97% ! En testant le modèle avec les images de test (non utilisées pour l’entrainement), effectivement, les prédictions se sont avérées parfaitement exactes. En revanche, en testant le modèle avec des images de radios pulmonaires choisies au hasard sur Google Images, catastrophe, le modèle générait soudain des diagnostics complétement faux ! Dans cette situation il devient indispensable de savoir sur quels critères se base l’algorithme pour établir ses prédictions. Il est en effet impératif que le modèle soit interprétable, d’une part pour pouvoir corriger ses éventuels biais, d’autre part pour pouvoir proposer à ses clients (ici le personnel soignant) un algorithme fiable et digne de confiance.
J’ai utilisé LIME pour déterminer les véritables caractéristiques prises en compte par le modèle.
Une première analyse à partir d’un vrai négatif (patient non infecté par le Coronavirus) a donné le résultat ci-dessous :
La zone en rouge explique pourquoi le modèle donne un diagnostic négatif d’infection au COVID-19, les zones vertes, moins étendues, donnent à l’inverse un avis positif. On constate que le modèle s’est intéressé à la partie extérieure de la cage thoracique.
J’ai effectué une seconde analyse ci-dessous à partir d’un faux négatif (patient infecté par le Coronavirus).
Ici le modèle a prédit à tort un diagnostic négatif de COVID-19 (« other » 100%). LIME met de nouveau en exergue des zones extérieures à la cage thoracique.
Grâce à LIME, on peut ainsi se rendre compte que le modèle est biaisé, on constate en effet que, pour effectuer son analyse, il ne se base pas sur les poumons du patient, mais au contraire, il tient compte de la forme de sa cage thoracique.
On peut donc se demander pourquoi notre modèle s’est-il particulièrement intéressé à la forme des thorax et non aux poumons ?
Comme dit précédemment, le jeu de données utilisé pour l’entrainement était construit à partir de deux sources différentes d’images pour alimenter respectivement les deux classes « covid » et « other ».
Pour « Covid » j’ai utilisé le dataset de l’université de Montréal composé de radios de patients infectés par le coronavirus. Pour « other » j’ai utilisé le dataset Chest X-Ray Pneumonia disponible sur Kaggle. En me documentant davantage sur l’origine des images de ce dernier dataset, j’ai constaté qu’il était en réalité composé de radiographies pédiatriques. Or, la forme des cages thoraciques des enfants diffère de celles des patients atteints du COVID-19, la plupart du temps des personnes âgées. Cela constitue une fuite de données, car le modèle captait probablement les caractéristiques des radiographies adultes vs enfants. Cela explique également pourquoi le modèle était aussi performant sur l'ensemble de test. Cet exemple met donc en évidence la nécessité de concevoir des modèles de Machine Learning en conjonction avec une IA explicable.
J’ai ainsi pu envisager des pistes d’amélioration, parmi lesquelles trouver exclusivement des exemples de cages thoraciques d’adultes pour alimenter la catégorie « other ». Le résultat de mon expérimentation, bien qu’encore très perfectible, a finalement montré des avancées encourageantes, les zones d’intérêt se déplaçant en partie sur les poumons eux-mêmes.
Lien vers mon notebook avec un exemple d’utilisation de LIME :
jpacifico/LIME-Explanation-test-with-Keras-VGG19-classifier: Explainability with LIME of a Covid-19 X-Ray prediction (from a VGG19 Keras classifier model) - Colab compatible (github.com)
Autres liens utiles :
LIME sur Github
Le paper de LIME
A propos de Marco Tulio Ribeiro
Dataset COVID-19 Université de Montréal
Dataset Chest X-Ray Pneumonia
Commentaires