Explainable AI mit LIME

 

was ist explainable ai mit lime
Explainable ai mit lime relevanz

Explainable AI Methoden - eine Einführung

Die Anzahl an Machine Learning-basierten Anwendungen im alltäglichen Leben steigt rasant. Wo früher statisch programmierte Regeln für die Funktion eines Programms verantwortlich waren, setzt man heutzutage vermehrt auf dynamische Modelle. Deren Ausgabe steht nicht von vornherein fest, sondern hängt sehr stark von den Trainingsdaten ab. Daher ist es bei der Entwicklung dieser Modelle entscheidend, diese nicht nur anhand von Metriken wie der erzielten Genauigkeit auf Testdaten zu evaluieren, sondern auch die Interpretierbarkeit dieser Modelle mit einzubeziehen. Interpretierbarkeit bedeutet in diesem Zusammenhang, zu verstehen, warum bestimmte Vorhersagen von einem Modell getroffen werden. Diese Gründe zu kennen, erhöht die Akzeptanz und das Vertrauen in Machine Learning-basierte Anwendungen. 

Für bestmögliche Ergebnisse mit großen und vielseitigen Datensätzen muss man häufig auf komplexe Modelle zurückgreifen. Allerdings ist deren Interpretierbarkeit durch die Anwender in der Regel gering, daher muss man teilweise Abstriche bei der Modell Performance in Kauf nehmen. Um also die Interpretierbarkeit auch von komplexen Modellen aus dem Deep Learning zu steigern, wurden Toolkits entwickelt, die die Ursachen der Modell-Vorhersagen veranschaulichen. 

Beispielsweise kann ein solches Modell dann in der Medizin bei der Krebsdetektion anhand von CT oder MRT Bildern helfen. Explainable Artificial Intelligence (XAI) Tools heben die für die Klassifizierung entscheidenden Bereiche in Aufnahmen einfach und schnell hervor und unterstützen somit den behandelnden Arzt bei der Entscheidungsfindung maßgeblich. 

Sogar bei komplexen Modellen, die im Bereich des Deep Learning z.B. bei der Bildklassifikation ihre Anwendung finden, wurden Lösungen für bessere Interpretierbarkeit entwickelt. 

LIME erklärt eine AI Modell

Die explainable AI Methode LIME (Local Interpretable Model-agnostic Explanations) hilft dabei, ein Machine Learning-Modell zu durchleuchten und dessen Vorhersagen individuell verständlich zu machen. Die Methode erklärt die Entscheidung eines Klassifikators für eine bestimmte einzelne Instanz, ist also für lokale Betrachtung geeignet. 

Vereinfacht gesagt manipuliert LIME die Input-Daten und erstellt daraus eine Reihe künstlicher Daten, die nur einen Teil der ursprünglichen Attribute enthalten. So werden beispielsweise bei Textdaten verschiedene Versionen des Ursprungstextes erzeugt, bei denen eine bestimmte Anzahl von verschiedenen, zufällig gewählten Worten entfernt wurden. Diese neuen künstlichen Daten werden anschließend verschiedenen Kategorien zugeordnet (klassifiziert). So können wir durch die Anwesenheit bzw. Abwesenheit bestimmter Schlüsselworte deren Einfluss auf die Klassifizierung des gewählten Textes erkennen. 

Prinzipiell ist die explainable AI Methode LIME mit vielen verschiedenen Klassifikatoren kompatibel und kann mit Text-, Bild-, und tabellarischen Daten verwendet werden. So können wir das gleiche Muster auch bei der Bildklassifizierung anwenden, wobei die künstlichen Daten dann nicht einen Teil der ursprünglichen Worte enthalten, sondern Bildausschnitte (Pixel) eines Bildes. 

Anhand von unserem folgenden Beispiel zeigen wir dies und trainieren ein Natural Language Processing (NLP) Modell, das Nachrichtentexte verschiedenen Kategorien wie z.B. Hockey, Autos oder Baseball zuordnet.

Explainable AI mit LIME - ein Beispiel

Für das Beispiel verwenden wir folgende Kategorien aus dem öffentlich zugängigen 20 Newsgroup Datensatz des Scikit-Learn Pakets:

  • Atheism 
  • Graphics 
  • Misc
  • Autos
  • Motorcycles
  • Baseball
  • Hockey
  • Med
  • Christian
  • Politics 

Ein Eintrag aus den Daten sieht wie folgt aus:

Kategorie: Hockey 

Text: 

Organization: Queen's University at Kingston 

From: Andy 2893684@QUCDN.QueensU.CA 

Subject: Re: If Oilers go to Hamilton 

Lines: 11 

In article 1993Apr26.023650.16749@spang.Camosun.BC.CA, ua256@freenet.Victoria.BC.CA (Tom Moffat) says: 

If the Oilers move to Hamilton what division will they play in. And won't they have to change their name to the "Steelers" or something. The only significant deposits of oil around Hamilton are those caused by the tire fire a few years back. Then again if the NBA can have the Utah Jazz or the L.A. Lakers (think about it, what lakes are in L.A.) then I guess the NHL can have the Hamilton Oilers.

Um die Nachrichten klassifizieren zu können, verwenden wir eine einfache Pipeline, welche die rohen Textdaten zuerst über einen Tf-idf-Vectorizer zunächst in Vektorform transformiert, die mit Machine Learning-Modellen kompatibel ist. Anschließend setzen wir ein multinomiales Naive Bayes Modell zur Klassifikation der transformierten Daten ein. 

text_clf_pipeline = Pipeline([ 

    ('tfidf', TfidfVectorizer()), 

    ('clf', MultinomialNB(alpha=.01)), 

]) 

text_clf_pipeline.fit(train_data.data, train_data.target)

Die Überprüfung der Klassifikationsgenauigkeit unter Verwendung eines zurückgehaltenen Testdatensatzes ergibt einen guten Wert von 91.9%. 

predicted = text_clf_pipeline.predict(test_data.data) 

print(f"Mulitinomial naive Bayes model achieved a f1-score of: {met.f1_score(test_data.target, predicted, average = 'weighted'):.3f}")

Um zu untersuchen, ob das NLP Modell auch sinnvolle Worte (Attribute) für die Klassifizierung heranzieht, verwenden wir den LIME Text Explainer. Dazu können wir dem Explainer einzelne Text-Instanzen zuführen. Die Rückgabe liefert eine Übersicht, wie groß der Beitrag der einzelnen Attribute (Worte) dazu war, die getestete Text-Instanz einer bestimmen Klasse zuzuordnen. Um die Ausgabe übersichtlich und verständlich zu halten, beschränken wir sie auf die 6 einflussreichsten Attribute bei der Klassifizierung. 

In unserem Fall wurde der oben gezeigte Text der Kategorie Hockey mit einer Wahrscheinlichkeit von 85% zugeordnet. Ausschlaggebend waren hier der Kanadische Eishockeyverein Oilers, die National Hockey League (NHL), aber auch die National Basketball Association (NBA). Während die ersten beiden Schlüsselattribute sinnvoll und richtig erscheinen, lässt die Wahl des Wortes NBA für die Klasse Hockey bereits erste Zweifel an der Korrektheit unseres Modells aufkommen.

idx = 0 

num_explained_labels = 3 

lime_explainer = LimeTextExplainer(class_names = class_names.values()) 

explanation = lime_explainer.explain_instance(df_test['Data'].iloc[idx], 

                text_clf_pipeline.predict_proba, num_features = 6, 

                top_labels = num_explained_labels) 

explanation.show_in_notebook()

Warum hat also das Modell das Wort NBA als eines der charakteristischen Attribute für die Kategorie Hockey gelernt? Eine mögliche Erklärung ist, dass NBA in unseren Trainingsdaten häufig in dieser, aber nur vereinzelt oder gar nicht in den anderen Kategorien vorkommt. Dennoch stellt sich die Frage, ob es sich hierbei um ein passendes Attribut für den Use Case des Modells handelt. Falls dies nicht der Fall ist, sollte durch gezieltes Feature Engineering und Datenpreprocessing beim Training des Modells gegengesteuert werden.

Noch offensichtlicher wird der Optimierungsbedarf an unserem Modell, wenn wir folgenden Text betrachten:

From: franjion@spot.Colorado.EDU (John Franjione)

Subject: Re: Where's Roger?

Nntp-Posting-Host: spot.colorado.edu Organization: University of Colorado, Boulder

Lines: 15

duncan@ (Nicholas Duncan) writes:

I really feel the need for a knowledgable hockey observer to explain this year's playoffs to me. I mean, the obviously superior Toronto team with the best center and the best goalie in the league keeps losing. What gives? Unfortunately, Roger is now over at r.s.baseball spewing his expertise. I guess he is afraid of posting anything here, because he knows what to expect.

-- John Franjione

Department of Chemical Engineering University of Colorado, Boulder

franjion@spot.colorado.edu

Dieser wird fälschlicherweise der Kategorie Baseball zugeordnet. Die grün hinterlegten Worte tragen positiv zur Klassifizierung in die Kategorie Baseball bei, wohingegen die rot hinterlegten Worte gegen diese Kategorie sprechen.

Hier wird ersichtlich, dass in diesem Fall die Wahl der Schlüsselworte und deren Gewichtung größtenteils nicht geeignet sind, um den Text der richtigen Kategorie zuzuordnen, sondern eher zufällig in Teilen des Trainingsdatensatzes - und vermutlich nur dort - funktionieren.

Anhand dieser einfachen Beispiele wird bereits deutlich, dass unser Modell trotz der guten Performance auf dem Testdatensatz nicht zwangsläufig geeignete Attribute verwendet, um eine Vorhersage zu machen. Diese Tatsache kann nach einem Deployment in einer Produktivumgebung schnell zu fragwürdigen Ergebnissen führen. 

Mithilfe von der explainable AI Methode LIME können diese Fehler erkannt und korrigiert werden. Für eine bessere Benutzerfreundlichkeit stellt die von uns verwendete LIME Bibliothek auch eine Methode bereit, mit der sich einfach eine repräsentative Stichprobe mit konfigurierbarer Anzahl an Probenelementen und zugehörigen Attributen ausgeben lässt. Somit lässt sich schnell ein globalerer Einblick in das untersuchte Modell erzeugen. 

Neben LIME gibt es noch weitere explainable AI Tools wie IBM AIX 360, What-if Tool und Shap, die dabei behilflich sein können, die Interpretierbarkeit und die Erklärbarkeit verwendeter Datensätze und Machine Learning-Modelle zu steigern. Die so erlangten Informationen ermöglichen die Entwicklung robusterer Modelle und eine gezielte Adaption an neue Daten. Abgesehen davon können die gewonnen Erkenntnisse dabei hilfreich sein, die Akzeptanz und das Vertrauen in Machine Learning-Anwendungen zu erhöhen.