Interprétabilité des modèles#
Le machine learning tend à déléguer une partie de la modélisation pour fabriquer des modèles opaques, avec beaucoup de coefficients là où les statistiques privilégient la simplicité. On gagne en rapidité lors de la mise en oeuvre et on perd en interprétabilité. Il est de plus en plus important de comprendre pourquoi un modèle se trompe, pourquoi il donne telle ou telle réponse pour une plus grande transparence. La loi sur le Règlement général sur la protection des données (voir aussi Règlement européen sur la protection des données : ce qui change pour les professionnels), va dans le sens d’une plus grande transparence. Elle doit rentrer en application à partir du 25 mai 2018. La compréhension des décisions d’un modèle est parfois une nécessité. Quelques idées de recherche :
Déléguer la complexité sur les variables : on utilise un modèle simple (linéaire, arbre de décision), et on construit de nouvelles variables ou features parfois complexes qui font du sens pour le problèmes et qu’un modèle de machine learning ne pourrait pas reproduire aisément (voir aussi feature learning).
Sélectionner les variables et en garder le moins possibles, voir feature selection, voir aussi Feature importances with forests of trees.
Extraire des informations sur les variables elle-même, une forêt d’arbre produit une décision pour une observation qui n’utilise qu’une petite partie du modèle, il est possible d’extraire la liste des variables impliquées dans cette décision et de les trier par ordre d’importance, on regarde les parties du modèle activées lors de la prédiction, voir treeinterpreter.
Poser des contraintes sur le modèle comme la monotonie de la décision par rapport aux variables, voir Isotonic Regression.
Apprendre un second modèle dédié à l’interprétation, voir Making Tree Ensembles Interpretable.
Contenir la complexité des modèles, voir The information bottleneck method
Visualiser la décision.
Ces approches sont principalement macro et permettent de construire une vue d’ensemble. Pour étudier un cas particulier, une observation, on choisira plutôt d’explorer autour d’une observation en changeant quelques-unes des variables par d’autres valeurs plausibles. C’est l’idée de l’approche LIME. Ces approches sont sensibles au nombre de variables, plus il y a de dimensions, plus il est difficile de donner du sens à une variable en particulier quand celle-ci est présente sur quelques observations seulement.
Notebooks
(à venir) lime, shap, unified approach, partial_dependence, permutation_importance (bientôt dans scikit-learn 0.22)
Interpret scikit-learn machine learning models (from scikit-learn’s consortium workshop)
Lectures - LIME - SHAP
« Why Should I Trust You? » Explaining the Predictions of Any Classifier (sans doute un des articles à lire en premier - lime)
Defining Locality for Surrogates in Post-hoc Interpretablity
Lectures : livre
Lectures : expliquer
Understanding variable importances in forests of randomized trees
Confidence Intervals for Random Forests: The Jackknife and the Infinitesimal Jackknife
Edward: A library for probabilistic modeling, inference, and criticism
Interpretable Policies for Reinforcement Learning by Genetic Programming
An Efficient Explanation of Individual Classifications using Game Theory **
Interpretability Beyond Feature Attribution: Quantitative Testing with Concept Activation Vectors (TCAV), tutorial)
To Trust Or Not To Trust A Classifier, Mind the Gap: A Generative Approach to Interpretable Feature Selection and Extraction
Intelligible Models for HealthCare: Predicting Pneumonia Risk and Hospital 30-day Readmission
TREPAN Reloaded: A Knowledge-driven Approach to Explaining Black-box Models
Controlling a confound in predictive models with a test set minimizing its effect
INTERPRÉTABILITÉ ET EXPLICABILITÉ (FORMALISÉ) DES MODÈLES PRÉDICTIFS
Lectures : monotonie
Fast and Flexible Monotonic Functions with Ensembles of Lattices
Reluplex: An Efficient SMT Solver for Verifying Deep Neural Networks (pas tout à fait sur la monotonie mais plutôt sur une façon de s’assurer que le modèle ne produit pas de valeur aberrante)
Isotone Optimization in R: Pool-Adjacent-Violators Algorithm (PAVA) and Active Set Methods
Lectures : assemblage de modèles simples
Lectures : local
Lectures : modèle graphique
Lectures : erreurs, outliers
Lectures : information bottleneck
Information bottleneck method (wikipédia)
Opening the black box of Deep Neural Networks via Information
Lectures : causalité
The State of Applied Econometrics: Causality and Policy Evaluation
Estimating Treatment Effects with Causal Forests: An Application
Lectures : régression discontinue
Vidéos
Modules
Plein d’autres options sont disponibles sur cette page : awesome-machine-learning-interpretability.
eli5 (développement actif)
shap (développement actif)
alibi explain (développement actif)
deepdive: ce n’est pas un module python, cet outil a été développé pour étudier les relations dans les données et plus particulièrement les dark data
ml-insights : méthode empiriques pour observer les prédictions en fonctions de variations des features
confound_prediction, plus vraiment maintenu mais il y a peut-être quelques idées à récupérer
Modules de visualisation
Netron : cet outil n’explique pas vraiment mais permet de visualiser des modèles de machine learning.
VisualDL : cet outil n’explique pas vraiment mais permet de visualiser des modèles de deep learning.
A suivre