Über unsMediaKontaktImpressum
Prof. Dr. Jörg Frochte & Christof Kaufmann 09. Juni 2020

Zuverlässige KI und Transparenz auf unstrukturierten Daten

Im April 2019 hat die damalige EU-Kommission die Ethik-Richtlinien für vertrauenswürdige KI in ihrer überarbeiteten Form veröffentlicht [1]. Den Begriff vertrauenswürdige KI wird man in dem anglophon geprägten Umfeld sicherlich seltener lesen als die englische Version "Trustworthy AI". Unabhängig von der Bezeichnung umfassen diese Richtlinien viele Aspekte, die in dem über 50 Seiten langen Bericht diskutiert werden. Wohlgemerkt, die Anforderung und die Rechtfertigung der Anforderungen werden dargestellt, nicht die Lösungen. Diese sind nämlich nicht leicht und oft – abhängig davon, wie man die Anforderungen interpretiert – im Stand von Wissenschaft und Technik nicht vollständig umsetzbar. Ein Bereich, der besonders hervorgehoben wird, ist die Transparenz. Das bedeutet unter anderem, dass ein Mensch das Zustandekommen der Entscheidungen der KI verstehen können sollte. Selbst wenn man annimmt, dass mit Mensch hinreichend vorgebildetes Fachpersonal gemeint ist, sollte klar sein: das wird nicht leicht. Generell ist zu hoffen, dass diese Begriffe nicht absolut zu verstehen sind. Es gibt sonst die Tendenz, von einer Maschine etwas zu erwarten, was Menschen untereinander nur schwer schaffen.

Der deutsch-britische Hirnforscher John-Dylan Haynes hat einmal gesagt: Man weiß generell, dass Menschen nicht gut darin sind, zu sagen, warum sie sich auf eine bestimmte Art und Weise entschieden haben. Wir handeln oft intuitiv, ganz oft können wir gar nicht die Gründe angeben, warum wir eine Entscheidung gefällt haben, und selbst wenn wir diese Gründe angeben, sind sie oft falsch, wie sich zeigt [2].

Nun ist aber der Stand der Verständigung zwischen Mensch und Maschine noch etwas schlechter als der zwischen Menschen, sodass es sich lohnt, zu verstehen, warum das so ist und wo man ansetzen kann. Nehmen wir ein Beispiel, bei dem es Menschen eher leicht fällt, sich objektiv über Entscheidungsgrundlagen auszutauschen. Wenn wir Dinge bestimmen sollen, können wir recht gut erklären, warum wir glauben, dass es dieses oder jenes ist. Auch hier ist nicht immer alles leicht. Nehmen wir zum Beispiel die Klassen Stuhl und Sessel. Manche Dinge können wir sehr scharf einer Klasse zuordnen, aber bei manchem Schreibtischstuhl oder Schaukelstuhl beginnt dann schnell die Diskussion. Tiere sind hingegen eindeutiger klassifiziert. Als Einführungsbeispiel nehmen wir die fast schon klischeehafte Klassifizierung von Hunden und Katzen auf Bildern. Katzenaugen sind ein Indiz für eine Katze, genau wie Pfoten ohne Krallen, da eine Katze die Krallen einziehen kann. Jedoch ist es fraglich, ob eine in Bruchteilen einer Sekunde getroffene Klassifizierung eines Tieres so zu erklären ist oder ob das nicht viel direkter passiert.

Intransparenz in neuronalen Netzen

Generell können neuronale Netze Klassifikator-Modelle aus Daten lernen, indem Sie sich viele Beispiele ("Samples", hier: Bilder von Hunden und Katzen) anschauen und ihre Ausgabewerte verbessern, vgl. Abb. 1. Dazu werden die Ausgabewerte für die Wahrscheinlichkeiten, welche Klasse zu sehen ist, mit der tatsächlichen Klasse vergleichen. Die Differenzen werden genutzt, um die Faktoren (Gewichte) zwischen den Neuronen mit Hilfe partieller Ableitungen so zu optimieren, dass die richtigen Ausgabewerte (Wahrscheinlichkeiten) herauskommen. Dieser mehrfach wiederholte Optimierungsvorgang mit sehr vielen verschiedenen Bildern nennt sich Training. Ein neuronales Netz verallgemeinert also Beispiele und lernt nach und nach, ein Modell darzustellen. Der Anwender gibt explizit nicht vor, wie das Netz seine Aufgabe erfüllen soll, sondern nur die Architektur, also wie das Netz aufgebaut ist, und andere Hyper-Parameter wie Toleranzen im Trainingsalgorithmus. Darin liegt die Stärke, denn der Anwender muss nicht selbst das Problem lösen, sondern kann es ein neuronales Netz lösen lassen. Einen Hund von einer Katze zu unterscheiden, ist mit konventionellen Methoden der Bildverarbeitung keine triviale Aufgabe. Neuronale Netze können allerdings noch komplexere Probleme – wie beispielsweise die Hunderasse zu bestimmen – mit großer Genauigkeit lösen. Der Entwicklungsaufwand um solche Probleme zu lösen, ist mit neuronalen Netzen erstaunlich gering, u. a. weil es dafür leistungsstarke Software-Frameworks gibt und das Vorgehen meist ähnlich ist. Um dies zu verdeutlichen: Ein einfaches Netz um handgeschriebene Ziffern zu erkennen, benötigt in Python mit Keras/Tensorflow ca. 5 Zeilen Code, ein besseres ca. 15, es ist in wenigen Minuten trainiert und erreicht eine Genauigkeit von etwa 98 Prozent. Natürlich müssen mehr Neuronen für komplexere Probleme eingeplant werden, als bei einfachen Problemen – etwa eine handgeschriebene Ziffer zu erkennen. Auch müssen dann mehr Samples vorhanden sein und es wird mehr Rechenzeit benötigt.

Neuronale Netze ermöglichen einem Anwender also, komplexe Probleme zu lösen, wenn denn genug Daten vorhanden sind und Rechenzeit zur Verfügung steht. Die sehr hohe Anzahl an Freiheitsgraden – bis zu 100 Millionen für Objekterkennung auf Bildern – macht es jedoch unmöglich, sich die Gewichte im Netz einzeln auch nur anzuschauen. Daher bezeichnet man neuronale Netze als intransparent, weil man Ergebnisse nicht einfach nachvollziehen kann, obwohl alle Zahlen offen lesbar sind und die Rechenvorschrift recht einfach ist. Durch die vielen Freiheitsgrade neigen neuronale Netze jedoch leider auch dazu, Eigenschaften zu verallgemeinern, die Allgemein nicht für das Ergebnis von Belang sind. Bei Menschen würde man das Vorurteil nennen, bei Daten, die solche Verallgemeinerungen nahe legen, spricht man von einem Bias. Das Verallgemeinern von Beispielen führt also auch zu einer Schwäche von neuronalen Netzen. So würde bei einer Klassifizierung von Tieren vielleicht gelernt werden, dass ein Tier, welches einem Hund ähnlich sieht und in einer Schneelandschaft steht, ein Wolf ist, wenn die Trainingsbilder Wölfe immer auf Schnee zeigen, aber andere Hunde nie auf Schnee. Solch ein Beispiel ist ähnlich beschrieben in [3].

Ein Netz kann nur die Beispiele verallgemeinern, die es im Training betrachtet und es versucht die Klassen anhand der Unterschiede in den Bildern auseinander zu halten. Wenn später ein Dackel im Schnee als Wolf erkannt wird, liegt das an einer schlechten Trainingsdatenmenge, welche nicht alle Situationen enthalten hat, die in der Anwendung relevant sein könnten. Und hier liegt die Schwierigkeit beim Modellieren mit neuronalen Netzen bzw. datenbasierten Modellen allgemein. Ein Anwender kann nur schwer einschätzen, ob ein Bias in irgendeiner Art vorliegt oder hat möglicherweise einfach nicht mehr Trainingsdaten zur Verfügung. Das mit dem Modell etwas nicht stimmt, wird erst nach dem Training klar – wenn überhaupt. Dazu muss der Anwender aktiv nach falschen Klassifizierungen suchen und sich Fälle raus suchen, die für eine Anwendung kritisch sein könnten. Aber auch dann begründet das Netz nicht, warum der Dackel als Wolf klassifiziert wurde. Daher betrachten wir in diesem Artikel eine Technik, um zumindest zu sehen, welche Stellen im Bild ausschlaggebend für die Klassifizierung waren. Aber bevor wir dazu kommen, schauen wir uns die Netze an, die Objekte auf Bildern erkennen können.

Convolutional Neural Network

Im Bereich des maschinellen Lernens sind Convolutional Neural Networks die Methode der Wahl, um auf Bildern Objekte zu erkennen. Convolutional Neural Networks (CNNs) in der Art, wie wir sie heute verstehen, haben ihren Ursprung in den Arbeiten von Yann LeCun aus dem Jahr 1989 [4]. CNNs sind besonders geeignet, um sogenannte unstrukturierte Daten, die man sinnvoll in eine Gitterstruktur bringen kann, zu verarbeiten. Ein Beispiel für unstrukturierte Daten sind eben Bilder, weil hierbei die Merkmale für die Entscheidungsfindung unstrukturiert vorliegen. Hätten wir eine Datenbank, in der von Hunden und Katzen deren Gewicht, Kopfgröße, Ohrenform etc. pp. gemessen wurde und in Spalten abgelegt wurden, so wären dies strukturierte Daten. Für strukturierte Daten kann man Entscheidungen leichter – was nicht dasselbe ist wie leicht – begründen, da man z. B. sagen kann, dass diese und jene Ohrenform eine Katze als Möglichkeit ausschließt. Bei Bildern ist natürlich die Information, dass man Pfoten mit eingezogen Krallen sieht, auch vorhanden, aber eben nicht strukturiert hinterlegt. Man muss diese erst herausarbeiten. Ein CNN lernt selbständig, aus den Pixelwerten eines Bildes mehr oder weniger strukturierte Informationen zu extrahieren, jedoch hat man weder Einfluss darauf, noch Einblick darin. Warum das so ist, kann man sich anhand der prinzipiellen Funktionsweise von neuronalen Netzen klar machen.

Wie der Namensteil Convolutional (dt. faltend) schon andeutet, gehört zu der besonderen Art, wie die Netze aufgebaut sind, eben eine mathematische Operation, die als Faltung bezeichnet wird. Eine Faltung stellt abhängig vom Faltungskernel verschiedene Arten von Filtern dar, wie beispielsweise ein Kantenfilter oder Weichzeichner (s. Abb. 2). Darüber hinaus gibt es natürlich beliebig viele weitere Faltungskernel, welche bei Farbbildern auch Unterschiede zwischen Farbkanälen herausstellen könnten oder deren Bedeutung nicht mehr leicht zu interpretieren ist.

Neben den Faltungen gibt es in einem gewöhnlichen CNN auch sogenannte Pooling-Operationen. Diese verkleinern das Bild, indem sie es in rechteckige Bereich aufteilen und jedes durch ein Pixel ersetzen. Im einfachsten Fall werden die Breite und Höhe jeweils halbiert, indem aus jeweils 2×2 Pixeln der Mittelwert gebildet wird. Meistens wird aber ein Max-Pooling verwendet, welches anstatt dem Mittelwert einfach den Maximalwert verwendet. Dies ist mit einem Beispiel in Abb. 3 dargestellt.

Convolutional Neural Networks bestehen also aus verschiedenen Operationen. In einer typischen Architektur eines gewöhnlichen CNNs wiederholen sich Faltungsschichten mit anschließenden Max-Pooling-Schichten mehrfach. Die Bilder, die dabei entstehen heißen Feature-Maps. Wenn die Feature-Maps klein genug sind, folgt ein normales neuronales Netz. Dieses ist vollständig an die letzten Feature-Maps angeschlossen, d. h. jedes Neuron ist mit jedem Pixel verbunden.

Wie in Abb. 4 sieht wahrscheinlich kein im Einsatz befindliches CNN aus, aber es stellt die wesentlichen Elemente eines gewöhnlichen CNNs anschaulich dar. In der Abbildung ist zu erkennen, dass sehr viele Feature-Maps erzeugt werden. Dabei entsteht jede Feature-Map durch einen anderen Faltungskernel. Der Clou hierbei ist, dass diese Faltungskernel nicht vorgegeben, sondern vom Netz gelernt werden. Das Zusammenspiel von Faltung und Pooling-Operationen im Wechsel wird verwendet, um automatisch Merkmale zu generieren, die ähnlich wie bei strukturierten Daten sind. In den letzten Feature-Maps bedeutet ein hoher Wert also, dass an der entsprechenden Stelle ein Merkmal auftritt. Eine Feature-Map reagiert beispielsweise auf Augenpartien, eine andere beispielsweise auf Tigerfellmuster. Dabei bleibt der räumliche Bezug erhalten, wenn auch durch die Verkleinerung mittels Pooling-Operationen ungenauer, als im ursprünglichen Bild. Mit diesen durch das Netz selbst generierten Merkmalen arbeitet nun ein einfaches, vollständig verbundenes neuronales Netz. Vollständig verbundene Netze können logische Verknüpfungen nachahmen, sodass die Merkmale sinnvoll verbunden werden können, um die Tierart zu bestimmen – ähnlich wie es auch auf strukturierten Daten lernen würde.

Class Activation Maps

Nachdem nun die Funktionsweise von CNNs und die Bedeutung von Feature-Maps bekannt sind, kommen wir zurück zur Frage, welche Stellen in einem Bild ausschlaggebend für die Klassifizierung gewesen sind. Die Feature-Maps weisen an der Fundstelle des jeweiligen Features einen positiven Wert auf. Aber die Frage ist, welche Feature-Maps denn für die ermittelte Klasse relevant waren. Die Relevanz lässt sich tatsächlich als Zahlenwert ermitteln. Und zwar werden dazu ähnlich wie beim Training eines neuronalen Netzes partielle Ableitungen verwendet. Anders als beim Training wird damit aber bestimmt, welchen Einfluss die Pixel der Feature-Maps auf die Wahrscheinlichkeit der ermittelten Klasse haben. Ist die Ableitung positiv, bedeutet das, dass ein größerer Wert des Pixels – also ein stärker ausgeprägtes Merkmal an der Stelle – die Wahrscheinlichkeit für die Klasse erhöhen würde. Ist die Ableitung negativ, würde die Wahrscheinlichkeit durch einen größeren Pixelwert sinken. Wenn diese partielle Ableitung für jedes Pixel jeder Feature-Map berechnet wird, lässt sich für jede Feature-Map ein Mittelwert der Ableitungen berechnen. Dies stellt die Relevanz einer ganzen Feature-Map dar.

Nun können die Feature-Maps mit ihrer Relevanz gewichtet und überlagert werden. Diese Überlagerung ergibt wieder ein Bild, in der die Stellen, die für die ermittelte Klasse gesprochen haben, große Werte aufweisen. Dagegen werden die Stellen zur Differenzierung zu anderen Klassen, die beispielsweise kein Tigerfellmuster hatten, nicht aufgezeigt. Das würde ja auch nur irritieren.

Das Ergebnis nennt sich Class Activation Map (CAM), weil die Bereiche aufgezeigt werden, welche für die Aktivierung (Ermittlung) der Klasse relevant waren. Ein einfacher Algorithmus, der die CAMs genau nach der beschriebenen Prozedur erzeugt, ist Grad-CAM [5]. Abb. 5 zeigt die Class Activation Maps zweier Hundebilder, deren Rasse mit dem vortrainierten VGG-16-Netz [6] bestimmt wurde. Das VGG-16-Netz ist darauf trainiert, 1.000 verschiedene Klassen auf Bildern zu erkennen. Dafür verwendet es 13 Faltungsschichten und 5 Max-Pooling-Schichten um aus 224×224-Pixel-großen Farbbildern 512 7×7-Pixel-große Feature-Maps zu extrahieren. Diese sind an 2 Schichten mit jeweils 4.096 vollständig verbunden Neuronen angeschlossen.

Wenn man selbst Netze trainiert, kann man mit CAMs auch überprüfen, ob etwas schief gegangen ist. Wir haben ein Netz trainiert, Katzen von Hunden zu unterscheiden. Nun schauen wir mal, was wir herausbekommen haben. Unser Netz ist eher ein Hundefreund und im Zweifel tendiert es eher dazu, eine Katze zum Hund zu machen. Abb. 6 zeigt die Prognosen und die Heatmaps für drei Hundebilder. Alle drei sind richtig als Hund klassifiziert und das auch mit einer hohen Sicherheit von Seiten des CNN. Man sieht, dass sich das Netz auf Schnauzen und Schwänze zu konzentrieren scheint. Das dritte Bild ist aber verdächtig. Es wurden viele Bereiche im Bild berücksichtigt, auf denen kein Hund zu sehen ist. Entweder sind mehr Hundebilder in freier Wildbahn im Archiv oder das Netz lässt sich von Strukturen im Hintergrund leicht ablenken. Solche Klassifizierungen sollten wir mit etwas Vorsicht begegnen. Mal sehen, wie es bei den Katzen weitergeht.

Bei diesem Netz treten die Fehler eher bei den Katzen auf. Das zeigt sich auch bei den gewählten Beispielen. Die erste Katze in Abb. 7 wurde mit beinah 80 Prozent als Hund klassifiziert. Wir sehen aber auch, dass ähnlich wie bei der dritten Katze für die Klassifizierung eher der Hintergrund den Ausschlag gegeben hat. Das kann legitim sein, weil man z. B. ein Kamel eher nicht in der Antarktis vermutet, aber hier erscheint es weniger verständlich. Der Hintergrund lenkt scheinbar ab. Wie wäre es wohl ausgegangen, wenn die erste Katze ohne Hintergrund hätte eingeordnet werden sollen?

Für den Test haben wir diese einmal unfachmännisch freigestellt und erneut klassifizieren lassen. Abb. 8 zeigt eindrucksvoll, dass sich das Netz nun wieder auf Ohren und Fellaspekte konzentriert. Die Katze wird nun auch mit über 90 Prozent als Katze erkannt.

Wie sieht es mit den eingebrachten Bildern einer Farbratte, eines Luchses und eines Wolfes aus? Biologisch wäre es plausibel, wenn sich das Netz beim Luchs für Katze, beim Wolf für Hund und die Ratte als knappes Ergebnis für Katze oder Hund entscheiden würde. Die Möglichkeit, sich für etwas anderes als Hund oder Katze zu entscheiden, hat es nicht. Wie man in Abb. 9 deutlich sieht, geht unser Netz aber nicht nach der Biologie, sondern nach Mustern. Beim Wolf ist noch alles wie wir es erwarten. Es schaut auf Gesicht und Körper und sagt Hund. Beim Luchs lässt es sich wieder vom Hintergrund ablenken und klassifiziert ebenfalls als Hund. Entgegen der generellen Tendenz unseres Netzes wird die Farbratte mit großer Sicherheit zur Katze, vermutlich weil der Spielplatz der beiden Haustiere sich ähnelt. Die Ratte jedenfalls kommt in der Heatmap kaum vor.

Ein Problem ist, dass die Größe der Feature Maps am Schluss automatisch die Genauigkeit der Lokalisation beeinflusst. Hätten wir noch ein paar mehr Poolings eingebaut, wären die Feature-Maps – und damit auch die Class Activation Maps – noch kleiner gewesen. Ein anderes Problem ist, dass wir händisch vorgehen müssen. Man muss Bilder als Mensch stichprobenartig analysieren und schauen, ob das Ergebnis plausibel ist.

Mit einem modifizierten VGG-16-Netz, wobei das vollständig verbundene Netz viel kleiner ist und nur noch Hunde von Katzen unterscheiden kann, sehen CAM-Bilder plausibler aus, s. Abb. 10. Man sieht, dass sich auch unser Problem mit der Katze auf dem interessanten Hintergrund endlich erledigt hat. Das Netz konzentriert sich jetzt scheinbar primär auf die Tiere und weniger auf Muster im Hintergrund. Scheinbar ist deshalb wichtig, weil wir uns mit Grad-CAM nur einzelne Fälle ansehen. Natürlich kann es sein, dass es in anderen Fällen noch suboptimal läuft. Neben den Class Activation Maps betrachtet man selbstverständlich immer auch die Genauigkeit auf der Testmenge, die hier bei 97.1 Prozent liegt, und die Konfusionsmatrix, welche angibt, wie viele Samples welcher Klasse als was erkannt wurden. Diese ist hier der Vollständigkeit halber angegeben:

  Katze (vorhergesagt) Hund (vorhergesagt)
Katze (tatsächlich) 95.06% 4.94%
Hund (tatsächlich) 0.08% 99.2%

Fazit

Transparenz von Entscheidungen ist politisch und wohl auch gesellschaftlich gewünscht, aber technisch schwierig umzusetzen. Falsche Entscheidungen basieren häufig auf zu wenig Daten oder Daten, die eine Bias-Verzerrung – Wölfe kommen fast immer zusammen mit Schnee vor – haben. Grad-CAM markiert bei Objekterkennung in Bildern mit Convolutional Neural Networks die Stellen, die besonders relevant für die ermittelte Klasse waren. Wenn ein Hund auf Schnee als Wolf erkannt wird und Grad-CAM den Schnee markiert, kann das dabei helfen, zu verstehen, was mit den Trainingsdaten nicht in Ordnung ist. Solche Probleme zu finden und auch zu beheben kostet allerdings viel Entwicklungsaufwand.

Quellen
  1. Künstliche Intelligenz: EU-Kommission lässt Vorschläge zu ethischen Leitlinien in der Praxis testen
  2. Wikipedia: J.-D. Haynes
  3. M. T. Ribeiro, S. Singh, and C. Guestrin. "Why should I trust you?" Explaining the predictions of any classifier. In Proceedings of the 22nd ACM SIGKDD international conference on knowledge discovery and data mining, pages 1135–1144, 2016.
  4. Y. LeCun. Generalization and network design strategies, pages 143–155. Elsevier Science, 1989.
  5. R. R. Selvaraju, M. Cogswell, A. Das, R. Vedantam, D. Parikh, and D. Batra. Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization. In Proceedings of the IEEE international conference on computer vision, pages 618–626, 2017.
  6. K. Simonyan and A. Zisserman. Very Deep Convolutional Networks for Large-Scale Image Recognition. In Yoshua Bengio and Yann LeCun, editors, 3rd International Conference on Learning Representations, ICLR 2015, San Diego, CA, USA, May 7-9, 2015, Conference Track Proceedings, 2015.

Autoren

Prof. Dr. Jörg Frochte

Prof. Frochte ist Mitbegründer der Bergischen Innovationsplattform für Künstliche Intelligenz und assoziiertes Mitglied des interdisziplinären Zentrums Machine Learning and Data Analytics (IZMD) der Bergischen Universität…
>> Weiterlesen

Christof Kaufmann

Christof Kaufmann ist Dozent beim KI-Weiterbildungsprojekt Weiterbildung AI der Hochschule Bochum. Er studierte Elektrotechnik und Informationstechnologie als Jahrgangsbester.
>> Weiterlesen

Kommentare (0)

Neuen Kommentar schreiben