Explainable AI mit LIME

November 2020
Technology

Was ist Explainable AI?

Explainable AI Methoden wie LIME, ermöglichen es, die Vorhersagen von Machine Learning Modellen zu erklären und zu interpretieren. Sie bieten eine Lösung für den Trade-Off zwischen Nachvollziehbarkeit und Performance, bzw. zwischen komplexen Modellen, die große und vielseitige Datensätze stemmen können, und weniger komplexen Modellen, die deutlich leichter interpretierbar, allerdings in der Regel auch weniger performant sind. 

Kurz gesagt ermöglichen sie Einblick in die Kriterien hinter Vorhersagen von Machine Learning-Modellen.

Warum sind sie wichtig?

Dadurch kann man gezielt an Schwachstellen arbeiten und diesen beim Training des Modells gegensteuern.

Viele Machine Learning-Anwendungen setzen Vertrauen in diese voraus, damit die Anwendung bei einer Entscheidung helfen kann und deren Rat nicht mangels Vertrauens einfach ignoriert wird. Kennt man dank explainable AI Methoden wie LIME die Gründe einer Vorhersage, fällt die Entscheidung leichter, der Anwendung zu vertrauen.

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 miteinzubeziehen. 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 An- 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:

  • Atheismus
  • Grafiken
  • Sonstiges
  • Autos
  • Motorräder
  • Baseball
  • Hockey
  • Med
  • Christlich
  • Politik

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())
   Erklärung = 
   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.

Zusammenfassung

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.

Sie wollen mehr sehen?

Ausgewählte Beiträge

Mehr anzeigen
Kein Spam, versprochen
Erhalten Sie wertvolle Insights von unserem Expertenteam.