Introduction à l'IA explicable

Explainable AI en Python

Fouad Trad

Machine Learning Engineer

À propos de moi

fouadtrad.jpg

Fouad Trad
  • Ingénieur en Machine Learning
  • Doctorant
  • Spécialisé en IA pour la cybersécurité
LinkedIn

mylinkedin.jpg

Explainable AI en Python

Intelligence artificielle

  • L'IA permet aux machines d'exécuter des tâches humaines

Image montrant un humain jouant aux échecs avec une machine.

Explainable AI en Python

Le besoin d'explicabilité

 

Image montrant un système en boîte noire recevant une entrée et générant une sortie.

 

  • IA en boîte noire : aucune compréhension de la prise de décision
Explainable AI en Python

Le besoin d'explicabilité

 

Image montrant un système en boîte ouverte recevant une entrée et générant une sortie.

 

  • IA en boîte noire : aucune compréhension de la prise de décision
  • IA explicable : comprendre le fonctionnement interne du modèle
Explainable AI en Python

Explicabilité vs précision

  • Modèles simples :

    • Plus explicables
    • Moins précis
  • Modèles complexes :

    • Plus précis
    • Moins explicables

Image montrant des modèles d'IA sur un graphique des plus simples aux plus complexes (à base de règles, modèles linéaires, arbres de décision, k-NN, SVM et réseaux de neurones), soulignant que les modèles simples sont souvent plus explicables mais moins précis, alors que les modèles complexes sont très précis mais plus difficiles à interpréter.

Explainable AI en Python

Arbres de décision vs réseaux de neurones

Arbres de décision

Visualisent le chemin de décision selon des conditions

Représentation d'un arbre de décision montrant comment les prédictions sont faites à partir de multiples conditions

Explainable AI en Python

Arbres de décision vs réseaux de neurones

Arbres de décision

Visualisent le chemin de décision selon des conditions

Arbre de décision pour l'exemple d'admission : si l'étudiant n'a pas de diplôme de 1er cycle, il est refusé. Sinon, il est accepté seulement si sa note est supérieure à 8,5.

Explainable AI en Python

Arbres de décision vs réseaux de neurones

Arbres de décision

Visualisent le chemin de décision selon des conditions

Arbre de décision pour l'exemple d'admission : si l'étudiant n'a pas de diplôme de 1er cycle, il est refusé. Sinon, il est accepté seulement si sa note est supérieure à 8,5.

Réseaux de neurones

Peu transparents par nature

Image montrant la structure d'un réseau de neurones : une série de couches cachées, chacune ayant plusieurs neurones.

Explainable AI en Python

Arbres de décision vs réseaux de neurones

Arbres de décision

Visualisent le chemin de décision selon des conditions

Arbre de décision pour l'exemple d'admission : si l'étudiant n'a pas de diplôme de 1er cycle, il est refusé. Sinon, il est accepté seulement si sa note est supérieure à 8,5.

Réseaux de neurones

Peu transparents par nature

Image montrant le même réseau de neurones recevant des caractéristiques d'étudiant et prédisant s'il doit être accepté ou refusé.

Explainable AI en Python

Prédiction d'admission d'étudiants

GRE Score TOEFL Score University Rating SOP LOR CGPA Accept
337 118 4 4.5 4.5 9.65 1
316 104 3 3 3.5 8.00 1
314 103 2 2 3 8.21 0

 

  • Résultats aux tests : GRE et TOEFL
  • Cote de l'université
  • SOP : « statement of purpose »
  • LOR : lettre de recommandation
  • CGPA : moyenne cumulative
Explainable AI en Python

Prédiction d'admission d'étudiants

Arbre de décision
from sklearn.tree import DecisionTreeClassifier

model = DecisionTreeClassifier(max_depth=5)

model.fit(X_train, y_train)
y_pred = model.predict(y_test)
acc = accuracy_score(y_test, y_pred) print(f"Accuracy of Decision Tree: {acc}")
Accuracy of Decision Tree: 0.82
Réseau de neurones
from sklearn.neural_network import MLPClassifier

model = MLPClassifier(hidden_layer_sizes=(1000,1000))

model.fit(X_train, y_train)
y_pred = model.predict(y_test)
acc = accuracy_score(y_test, y_pred) print(f"Accuracy of Neural Network: {acc}")
Accuracy of Neural Network: 0.9
Explainable AI en Python

Règles de l'arbre de décision

from sklearn.tree export_text

rules = export_text(model, feature_names=list(X_train.columns))

print(rules)
|--- CGPA <= 8.34
|   |--- GRE Score <= 320.50
|   |   |--- class: 0

| |--- GRE Score > 320.50 | | |--- class: 1
|--- CGPA > 8.34 | |--- GRE Score <= 319.50 | | |--- class: 1 ...
Explainable AI en Python

Techniques spécifiques au modèle vs agnostiques au modèle

Spécifique au modèle

S'applique à un modèle particulier

Image montrant une clé conçue pour une serrure précise

Explainable AI en Python

Techniques spécifiques au modèle vs agnostiques au modèle

Spécifique au modèle

S'applique à un modèle particulier

Image montrant une clé conçue pour une serrure précise

Agnostique au modèle

S'applique à tout modèle

Image montrant une clé passe-partout pouvant ouvrir plusieurs serrures

Explainable AI en Python

La suite ?

  • Techniques spécifiques et agnostiques au modèle
  • Méthodes locales et globales
  • Sujets avancés :
    • Mesures d'explicabilité
    • Explicabilité non supervisée
    • Explicabilité de l'IA générative

Logos des bibliothèques : SHAP, LIME et Scikit-learn

Explainable AI en Python

Passons à la pratique !

Explainable AI en Python

Preparing Video For Download...