Kurs
Erklärbare KI - Verständnis und Vertrauen in maschinelle Lernmodelle
Viele Branchen und Organisationen nutzen künstliche Intelligenz und maschinelle Lernmodelle, um fundierte Entscheidungen zu treffen. Da diese Technologien jedoch immer weiter fortschreiten und immer komplexer werden, sind die Menschen gefordert, den Entscheidungsprozess dieser KI-Lösungen zu verstehen und nachzuvollziehen. Eine solche Herausforderung kann mit erklärbarer KI (kurz: XAI) bewältigt werden.
Hier werden wir untersuchen, was erklärbare KI ist, ihre Bedeutung hervorheben und ihre Ziele und Vorteile erläutern. Im zweiten Teil geben wir einen Überblick und die Python-Implementierung von zwei beliebten Surrogatmodellen, LIME und SHAP, die bei der Interpretation von Machine Learning-Modellen helfen können.
KI-Upskilling für Einsteiger
Was ist Explainable AI (XAI)?
Erklärbare KI bezieht sich auf eine Reihe von Prozessen und Methoden, die darauf abzielen, die von KI und maschinellen Lernmodellen generierten Entscheidungen klar und für den Menschen verständlich zu erklären.
Durch die Integration einer Erklärungsebene in diese Modelle können Datenwissenschaftler und Praktiker des maschinellen Lernens vertrauenswürdigere und transparentere Systeme schaffen, die einer Vielzahl von Interessengruppen wie Entwicklern, Regulierungsbehörden und Endnutzern helfen.
Vertrauen schaffen durch erklärbare KI
Hier sind einige erklärbare KI-Prinzipien, die zur Vertrauensbildung beitragen können:
- Transparenz. Sicherstellen, dass die Beteiligten den Entscheidungsprozess der Modelle verstehen.
- Fairness. Wir stellen sicher, dass die Entscheidungen der Models für alle fair sind, auch für Menschen aus geschützten Gruppen (Ethnie, Religion, Geschlecht, Behinderung, Herkunft).
- Vertrauen. Bewertung des Vertrauenslevels der menschlichen Nutzer in das KI-System.
- Robustheit. Die Fähigkeit, auf Änderungen der Eingabedaten oder Modellparameter zu reagieren und selbst bei Unsicherheiten oder unerwarteten Situationen eine konsistente und zuverlässige Leistung zu erbringen.
- Privatsphäre. Gewährleistung des Schutzes von sensiblen Nutzerdaten.
- Interpretierbarkeit. Menschlich nachvollziehbare Erklärungen für ihre Vorhersagen und Ergebnisse liefern.
Die Einführung von erklärbarer KI hat mehrere Vorteile. Entscheidungsträgern und anderen Stakeholdern bietet es ein klares Verständnis der Gründe für KI-gesteuerte Entscheidungen, damit sie besser informierte Entscheidungen treffen können. Es hilft auch, mögliche Verzerrungen oder Fehler in den Modellen zu erkennen, was zu genaueren und gerechteren Ergebnissen führt.
Erklärbare KI-Beispiele
Es gibt zwei große Kategorien der Modellerklärbarkeit: modellspezifische Methoden und modellagnostische Methoden. In diesem Abschnitt werden wir den Unterschied zwischen beiden verstehen, wobei wir uns besonders auf die modellagnostischen Methoden konzentrieren.
Beide Techniken können wertvolle Einblicke in das Innenleben von maschinellen Lernmodellen bieten und gleichzeitig sicherstellen, dass die Modelle effektiv und verantwortungsbewusst sind.
Um diese Tools besser zu veranschaulichen, werden wir den Diabetes-Datensatz von Kaggle verwenden. Zuerst werden wir einen einfachen Klassifikator bauen und dann die Erklärbarkeit implementieren. Der vollständige Quellcode ist in dieser DataLab-Arbeitsmappe verfügbar.
Klassifikator bauen
Ein Random-Forest-Klassifikator wird erstellt, um mit Hilfe des Diabetes-Datensatzes Diabetes-Ergebnisse vorherzusagen. Der Code ist in mehrere Schritte unterteilt: (1) Importieren relevanter Bibliotheken, (2) Erstellen von Trainings- und Testdatensätzen, (3) Erstellen des Modells und (4) Berichten der Leistungskennzahlen über den Klassifizierungsbericht.
# Load useful libraries
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
from sklearn.metrics import classification_report
# Separate Features and Target Variables
X = diabetes_data.drop(columns='Outcome')
y = diabetes_data['Outcome']
# Create Train & Test Data
X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=0.3,
stratify =y,
random_state = 13)
# Build the model
rf_clf = RandomForestClassifier(max_features=2, n_estimators =100 ,bootstrap = True)
rf_clf.fit(X_train, y_train)
# Make prediction on the testing data
y_pred = rf_clf.predict(X_test)
# Classification Report
print(classification_report(y_pred, y_test))
Die letzte Druckanweisung erzeugt den folgenden Bericht:
Der Random-Forest-Klassifikator liefert eine ordentliche Leistung bei der Vorhersage von Diabetes-Ergebnissen, wobei offensichtlich Raum für Verbesserungen mit anderen Modellen besteht.
Jetzt können wir die Erklärbarkeitsebene in dieses Modell integrieren, um mehr Einblicke in seine Vorhersagen zu erhalten. Im nächsten Abschnitt geht es um die zwei großen Kategorien der Modellerklärbarkeit: modellspezifische Methoden und modellagnostische Methoden.
Unsere Klassifizierung beim maschinellen Lernen: Eine Einführung Artikel hilft dir dabei, etwas über die Klassifizierung beim maschinellen Lernen zu lernen, indem er erklärt, was sie ist, wie sie verwendet wird und einige Beispiele für Klassifizierungsalgorithmen zeigt.
Modell-agnostische Methoden
Diese Methoden können auf jedes maschinelle Lernmodell angewendet werden, unabhängig von dessen Struktur oder Typ. Sie konzentrieren sich auf die Analyse des Input-Output-Paares der Merkmale. In diesem Abschnitt werden LIME und SHAP, zwei weit verbreitete Surrogatmodelle, vorgestellt und diskutiert.
SHAP
Es steht für SHapley AdditiveexPlanations. Diese Methode zielt darauf ab, die Vorhersage einer Instanz/Beobachtung zu erklären, indem sie den Beitrag jedes Merkmals zur Vorhersage berechnet, und sie kann mit dem folgenden pip-Befehl installiert werden.
!pip install shap
Nach der Installation:
- Die Haupt-Shap-Bibliothek wird importiert.
- Die Klasse TreeExplainer wird verwendet, um baumbasierte Modelle zu erklären, zusammen mit der Klasse initjs.
- Die Funktion shape.initjs() initialisiert den JavaScript-Code, der für die Anzeige von SHAP-Visualisierungen in einer Jupyter-Notebook-Umgebung erforderlich ist.
- Nachdem die Klasse TreeExplainer mit dem Random Forest-Klassifikator instanziiert wurde, werden die Formwerte für jedes Merkmal jeder Instanz im Testdatensatz berechnet.
import shap
import matplotlib.pyplot as plt
# load JS visualization code to notebook
shap.initjs()
# Create the explainer
explainer = shap.TreeExplainer(rf_clf)
shap_values = explainer.shap_values(X_test)
SHAP bietet eine Reihe von Visualisierungswerkzeugen, um die Interpretierbarkeit von Modellen zu verbessern. Zwei davon werden im nächsten Abschnitt besprochen: (1) Variablenbedeutung mit dem Summary Plot, (2) Summary Plot eines bestimmten Ziels und (3) Dependency Plot.
Variable Wichtigkeit mit Übersichtsdiagramm
In dieser Darstellung werden die Merkmale nach ihren durchschnittlichen SHAP-Werten geordnet, wobei die wichtigsten Merkmale ganz oben und die unwichtigsten ganz unten stehen. Das hilft dabei, die Auswirkungen der einzelnen Merkmale auf die Vorhersagen des Modells zu verstehen.
print("Variable Importance Plot - Global Interpretation")
figure = plt.figure()
shap.summary_plot(shap_values, X_test)
Im Folgenden findest du die Interpretation, die du aus der obigen Grafik ziehen kannst:
- Wir können beobachten, dass die roten und blauen Farben die Hälfte der horizontalen Rechtecke für jede Klasse einnehmen. Das bedeutet, dass jedes Merkmal den gleichen Einfluss auf die Klassifizierung von Diabetes- (Label=1) und Nicht-Diabetes-Fällen (Label=0) hat.
- Glukose, Alter und BMI sind jedoch die ersten drei Merkmale mit der höchsten Vorhersagekraft.
- Auf der anderen Seite tragen Schwangerschaften, Hautdicke, Insulin und Blutdruck nicht so viel bei wie die ersten drei Merkmale.
Zusammenfassender Plot auf einem bestimmten Etikett
Dieser Ansatz kann einen detaillierteren Überblick über die Auswirkungen der einzelnen Merkmale auf ein bestimmtes Ergebnis (Label) geben.
Im folgenden Beispiel wird shap_values[1] verwendet, um die SHAP-Werte für Instanzen mit dem Label 1 (Diabetes) darzustellen.
shap.summary_plot(shap_values[1], X_test)
Aus der obigen Grafik:
- Auf der Y-Achse sind die Merkmale nach ihren durchschnittlichen absoluten SHAP-Werten geordnet, ähnlich wie in der Grafik in Abbildung 2.
- Die X-Achse stellt die SHAP-Werte dar. Positive Werte für ein bestimmtes Merkmal bringen die Vorhersage des Modells näher an das untersuchte Label (Label=1). Im Gegensatz dazu drängen negative Werte in die entgegengesetzte Klasse (Label=0).
- Bei einer Person mit einem hohen Glukosespiegel (rote Punkte) wird wahrscheinlich Diabetes diagnostiziert (positives Ergebnis), während ein niedriger Glukosespiegel dazu führt, dass kein Diabetes diagnostiziert wird.
- Auch die Wahrscheinlichkeit, dass bei älteren Menschen Diabetes diagnostiziert wird, ist höher. Bei jüngeren Patienten scheint das Modell jedoch unsicher zu sein, was die Diagnose angeht.
Eine Möglichkeit, mit dieser Mehrdeutigkeit für das Attribut Alter umzugehen, ist die Verwendung des Abhängigkeitsdiagramms, um mehr Erkenntnisse zu gewinnen.
Abhängigkeitsdiagramm
Im Gegensatz zu zusammenfassenden Diagrammen zeigen Abhängigkeitsdiagramme die Beziehung zwischen einem bestimmten Merkmal und dem vorhergesagten Ergebnis für jede Instanz innerhalb der Daten. Diese Analyse wird aus verschiedenen Gründen durchgeführt und ist nicht darauf beschränkt, detailliertere Informationen zu erhalten und die Bedeutung des analysierten Merkmals zu validieren, indem die Ergebnisse der zusammenfassenden Diagramme oder anderer globaler Merkmalsbedeutungsmaße bestätigt oder in Frage gestellt werden.
Das Abhängigkeitsdiagramm zeigt, dass Patienten unter 30 Jahren ein geringeres Risiko haben, an Diabetes zu erkranken. Im Gegensatz dazu ist die Wahrscheinlichkeit, eine Diabetesdiagnose zu erhalten, bei Personen über 30 höher.
LIME
Lokale interpretierbare modellagnostische Erklärungen (kurz: LIME). Anstatt ein globales Verständnis des Modells für den gesamten Datensatz zu liefern, konzentriert sich LIME darauf, die Vorhersage des Modells für einzelne Instanzen zu erklären.
LIME explainer kann in zwei Hauptschritten eingerichtet werden: (1) importiere das Kalk-Modul und (2) passe den Erklärer mit den Trainingsdaten und den Zielen an. In dieser Phase wird der Modus auf Klassifizierung eingestellt, was der durchgeführten Aufgabe entspricht.
# Import the LimeTabularExplainer module
from lime.lime_tabular import LimeTabularExplainer
# Get the class names
class_names = ['Has diabetes', 'No diabetes']
# Get the feature names
feature_names = list(X_train.columns)
# Fit the Explainer on the training data set using the LimeTabularExplainer
explainer = LimeTabularExplainer(X_train.values, feature_names =
feature_names,
class_names = class_names,
mode = 'classification')
Das folgende Codeschnipsel generiert eine LIME-Erklärung für die 8. Instanz in den Testdaten und zeigt sie an, indem es den Random-Forest-Klassifikator verwendet und den endgültigen Beitrag der Merkmale in Tabellenform darstellt.
Das Ergebnis enthält drei Hauptinformationen von links nach rechts: (1) die Vorhersagen des Modells, (2) die Beiträge der Merkmale und (3) den tatsächlichen Wert für jedes Merkmal.
Wir können feststellen, dass der achte Patient mit einer Wahrscheinlichkeit von 72 % Diabetes hat. Die Gründe, die das Modell zu dieser Entscheidung veranlasst haben, sind:
- Der Blutzuckerspiegel des Patienten ist höher als 99.
- Der Blutdruck liegt bei über 70.
Diese Werte können in der Tabelle rechts überprüft werden.
Modellspezifische Methoden
Im Gegensatz zu modellagnostischen Methoden können diese Methoden nur auf eine begrenzte Kategorie von Modellen angewendet werden. Zu diesen Modellen gehören lineare Regression, Entscheidungsbäume und die Interpretierbarkeit neuronaler Netze. Verschiedene Techniken wie DeepLIFT, Grad-CAM oder Integrated Gradients können genutzt werden, um Deep-Learning-Modelle zu erklären.
Wenn du ein Entscheidungsbaummodell verwendest, kannst du mit der Funktion plot_tree von scikit-learn einen grafischen Baum erstellen, um den Entscheidungsprozess des Modells von oben nach unten zu erklären (siehe unten).
Der Artikel Deep Learning - A Tutorial for Data Scientists beantwortet die am häufigsten gestellten Fragen zum Thema Deep Learning und beleuchtet verschiedene Aspekte des Deep Learning anhand von Beispielen aus der Praxis.
Wir trainieren einen Entscheidungsbaum-Klassifikator mit bestimmten Hyperparametern wie max_depth und min_samples_leaf, bevor wir den grafischen Baum erstellen.
from sklearn.tree import DecisionTreeClassifier, plot_tree
dt_clf = DecisionTreeClassifier(max_depth = 3, min_samples_leaf = 2)
dt_clf.fit(X_train, y_train)
# Predict on the test data and evaluate the model
y_pred = dt_clf.predict(X_test)
print(classification_report(y_pred, y_test))
Die vorherige Druckanweisung erzeugt den folgenden Klassifizierungsbericht des Modells.
Der Entscheidungsfindungsprozess des Modells kann anhand des folgenden Codes veranschaulicht werden:
fig = plt.figure(figsize=(25,20))
_ = plot_tree(dt_clf,
feature_names = feature_names,
class_names = class_names,
filled=True)
Durch die Untersuchung der Baumstruktur kann man den Entscheidungsprozess für jede Probe nachvollziehen und erhält so Einblicke in das Verhalten und die Interpretierbarkeit des Modells.
In der obigen Grafik stellt jeder Knoten eine Entscheidung oder Aufteilung auf der Grundlage eines bestimmten Merkmalswertes dar. Für jeden internen Knotenpunkt zeigt die Grafik das für die Aufteilung verwendete Merkmal, den Wert des Aufteilungskriteriums, die Gini-Verunreinigung und die Anzahl der Proben, die diesen Knotenpunkt erreichen.
In den Blattknoten werden die Mehrheitsklasse und die Anzahl der Proben angezeigt. Außerdem stellen die Farben in den Knoten die Mehrheitsklasse dar, wobei die Intensität der Farbe den Anteil der dominanten Klasse in diesem Knoten angibt. Zum Beispiel entsprechen die orangefarbenen Knoten auf dem linken Zweig dem Diabetes-Label, während die blauen Knoten keinem Diabetes entsprechen.
Herausforderungen der XAI und Zukunftsperspektiven
Da die KI-Technologie immer weiter fortschreitet und immer ausgefeilter wird, wird es immer schwieriger, die Algorithmen zu verstehen und zu interpretieren, um herauszufinden, wie sie zu Ergebnissen führen, was es den Forschern ermöglicht, weiterhin neue Ansätze zu erforschen und bestehende zu verbessern.
Viele erklärbare KI-Modelle erfordern eine Vereinfachung des zugrunde liegenden Modells, was zu einem Verlust an Vorhersagekraft führt. Außerdem decken aktuelle Erklärungsmethoden möglicherweise nicht alle Aspekte des Entscheidungsprozesses ab, was den Nutzen der Erklärung einschränken kann, vor allem wenn es um komplexere Modelle geht.
Neue Forschungsmethoden konzentrieren sich auf die Verbesserung erklärungsbedürftiger KI-Techniken durch die Entwicklung effektiverer Algorithmen, die ethische Fragen behandeln und gleichzeitig benutzerfreundliche Erklärungen erstellen.
Und schließlich werden wir mit der laufenden Forschung wahrscheinlich immer ausgefeiltere Methoden haben, die Transparenz, Vertrauenswürdigkeit und Fairness fördern.
Fazit
Dieser Artikel hat einen guten Überblick darüber gegeben, was erklärbare KI ist und welche Prinzipien zum Aufbau von Vertrauen beitragen und Data Scientists und anderen Akteuren relevante Fähigkeiten vermitteln können, um vertrauenswürdige Modelle zu erstellen, die dabei helfen, umsetzbare Entscheidungen zu treffen.
Wir haben auch modellagnostische und modellspezifische Methoden behandelt, wobei der Schwerpunkt auf der ersten Methode mit LIME und SHAP lag. Außerdem wurden die Herausforderungen, Grenzen und einige Forschungsbereiche der erklärbaren KI aufgezeigt.
Wenn du mehr über die ethischen Aspekte solcher Technologien erfahren möchtest, besuche unseren Kurs "Einführung in die Datenethik ", in dem die Grundsätze der Datenethik, ihre Beziehung zur KI-Ethik und ihre Merkmale in den verschiedenen Phasen des Datenlebenszyklus behandelt werden.
Verdiene eine Top-KI-Zertifizierung

Zoumana ist ein vielseitiger Datenwissenschaftler, der sein Wissen gerne mit anderen teilt und anderen etwas zurückgibt. Er erstellt Inhalte auf YouTube und schreibt auf Medium. Er hat Freude am Sprechen, Programmieren und Unterrichten. Zoumana hat zwei Master-Abschlüsse. Den ersten in Informatik mit dem Schwerpunkt Maschinelles Lernen in Paris, Frankreich, und den zweiten in Datenwissenschaft an der Texas Tech University in den USA. Sein beruflicher Werdegang begann als Softwareentwickler bei Groupe OPEN in Frankreich, bevor er als Berater für maschinelles Lernen zu IBM wechselte, wo er End-to-End-KI-Lösungen für Versicherungsunternehmen entwickelte. Zoumana arbeitet bei Axionable, dem ersten nachhaltigen KI-Startup mit Sitz in Paris und Montreal. Dort arbeitete er als Data Scientist und implementierte KI-Produkte, vor allem NLP-Anwendungsfälle, für Kunden aus Frankreich, Montreal, Singapur und der Schweiz. Zusätzlich widmete er 5% seiner Zeit der Forschung und Entwicklung. Zurzeit arbeitet er als Senior Data Scientist bei der IFC, der Weltbankgruppe.
Erfahre mehr über AI!
Kurs
Konzepte der erklärbaren künstlichen Intelligenz (XAI)
Lernpfad