Introduction à l'XAI
L'Intelligence Artificielle eXplicable (eXplainable Artificial Intelligence ou XAI) est un domaine de l'intelligence artificielle qui vise à rendre les modèles d'IA plus transparents, compréhensibles et interprétables par les humains.
Avec l'essor des modèles complexes tels que les réseaux de neurones profonds, il devient crucial de comprendre comment ces modèles prennent leurs décisions, surtout dans des domaines sensibles comme la santé, la justice, etc.
Dans ce cours, nous explorerons les concepts fondamentaux de l'XAI et diverses techniques existantes pour interpréter les modèles d'IA, en particulier ceux à base de CNN que nous avons vus en vision par ordinateur.
Étant donné le temps imparti, ce cours ne pourra pas être exhaustif et se concentrera sur quelques méthodes représentatives.
À ce jour, il n’existe pas de technique ultime en XAI : les approches disponibles ont chacune leurs limites et s’adaptent plus ou moins bien selon le modèle, les données et le contexte d’usage. Ce domaine est donc un sujet de recherche très actif.
Installation de Docker Desktop
Docker Desktop est une application qui permet de créer et gérer des conteneurs sur votre machine.
Pour l'installer :
- Rendez-vous sur le site officiel Docker Desktop
- Téléchargez la version correspondant à votre système d'exploitation (Windows, macOS, ou Linux)
- Suivez les instructions d'installation
- Une fois installé, lancez Docker Desktop et attendez qu'il soit complètement démarré
Pour vérifier que Docker est correctement installé, ouvrez un terminal et exécutez :
docker --version
Téléchargement de l'image Docker
L'image Docker fournie pour ce cours contient un environnement Python complet avec les bibliothèques suivantes :
- NumPy et Pandas : analyse et manipulation de données
- OpenCV et PIL (Pillow) : traitement et manipulation d'images
- PyTorch et TorchVision : framework d'apprentissage profond
- scikit-learn : apprentissage automatique (ici pour les splits et les métriques)
- AlbumentationsX : augmentation de données pour les images
- tqdm : barres de progression
- Jupyter Lab : interface de développement interactive
Pour télécharger l'image, exécutez la commande suivante dans un terminal :
Terminal
docker pull gregorybourguin/pytorch-jupyter:latest
NB : Le téléchargement peut prendre plusieurs minutes selon votre connexion internet, l'image faisant plusieurs gigaoctets.
Création et démarrage du conteneur
Une fois l'image téléchargée, vous devez créer un conteneur à partir de cette image.
Créez un dossier sur votre machine qui contiendra vos notebooks (par exemple ~/cours_cv), puis exécutez :
Terminal
docker run -it --rm --name gb_pytorch -p 8888:8888 -v /chemin/vers/votre/dossier:/workspace gregorybourguin/pytorch-jupyter:latest
Explication des options :
-it : permet d'exécuter le conteneur en mode interactif avec un terminal
--rm : supprime automatiquement le conteneur une fois qu'il est arrêté
--name gb_pytorch : (optionnel) permet de nommer le conteneur
-p 8888:8888 : rend Jupyter Lab accessible sur le port 8888 de votre machine
-v /chemin/vers/votre/dossier:/workspace : monte votre dossier local dans le conteneur pour sauvegarder votre travail
--gpus all : (optionnel) utiliser les GPU de votre machine si disponibles
--shm-size=16g : (optionnel) augmente la taille de la mémoire partagée
Après le démarrage du conteneur, un lien vers Jupyter Lab sera affiché dans le terminal.
Arrêt du conteneur
Pour arrêter le conteneur, vous pouvez :
- Faire
CTRL+C dans le terminal où le conteneur s'exécute
- Ou utiliser Docker Desktop pour arrêter le conteneur graphiquement
Pour redémarrer votre environnement de travail, il suffit de relancer la commande docker run ou de démarrer le conteneur existant via Docker Desktop.
Organisation des TDs
Les travaux dirigés seront fournis sous forme de notebooks Jupyter (.ipynb).
Pour chaque TD :
- Téléchargez le notebook fourni
- Placez-le dans le dossier que vous avez monté dans le conteneur
- Ouvrez Jupyter Lab via votre navigateur
- Naviguez vers le notebook et ouvrez-le
- Complétez les exercices en suivant les instructions
NB : Vos modifications sont automatiquement sauvegardées dans votre dossier local grâce au montage de volume.
Vous ne perdrez pas votre travail même si vous arrêtez le conteneur.
Images de démonstration
Les images de démonstration qui seront utilisées dans la plupart des TPs sont disponibles ici.
L’XAI est un champ de recherche très large, et nous n’avons forcément pas pu aborder tous les aspects dans ce cours.
Voici quelques références pour aller plus loin :
-
Interpretable Machine Learning (Christoph Molnar)
Un livre en ligne (gratuit) très complet : notions clés (permutations, PDP/ICE, SHAP, LIME, etc.), bonnes pratiques
et limites d’interprétation.
-
Captum (PyTorch)
Bibliothèque XAI officielle pour PyTorch que nous avons abordée en TP et qui propose bien d'autres outils.
-
Xplique (DEEL)
Librairie Python orientée TensorFlow/Keras (avec quelques outils pour PyTorch) pour produire des explications.
-
SHAP Documentation
Documentation officielle de SHAP : valeurs de Shapley pour expliquer des prédictions (global/local), avec de nombreux
exemples (TreeExplainer, KernelExplainer, DeepExplainer) et visualisations.
-
DiCE (Diverse Counterfactual Explanations)
Outil pour générer des explications contrefactuelles.