Page cover

Verkleinerung eines Datensatzes für das NN Training mithilfe der Algorithmen Shapley und Grad-CAM

Im Rahmen der Machbarkeitsstudie wurde überprüft, ob sich ein Datensatz für das Training neuronaler Netze verkleinern lässt, ohne einen signifikanten Genauigkeitsverlust zu erleiden. Hierzu wurden die Algorithmen Shapley und Grad-CAM zur Hilfe gezogen. Sowohl Shapley als auch Grad-CAM sind Algorithmen zur Identifizierung wichtiger Bildbereiche für die Vorhersage des NNs.

In Abbildung 1, ist beispielhaft die Visualisierung des Shapley-Algorithmus dargestellt. Hierbei wurden zwei Tierbilder (Spalte ganz links) mithilfe des Shapley-Algorithmus ausgewertet. Die rot markierten Stellen in den Bildern rechts davon stellen die Regionen dar, auf welche das neuronale Netz bei der Vorhersage achtet, bzw. die sich positiv auf die Vorhersage des NNs auswirken.

Abbildung 1: Shapley-Algorithmus (https://github.com/slundberg/shap)

In Abbildung 2 ist die Funktionsweise des Grad-CAM-Algorithmus dargestellt. Hierbei ist im linken Bild zu sehen, auf welche Bildbereiche das Modell achtet. Bei der Vorhersage der Klasse "Katze", im rechten Bild ist zu sehen, welche Bildbereiche für die Vorhersage der Klasse "Hund" wichtig sind.

Abbildung 2: Grad-CAM-Algorithmus (https://arxiv.org/pdf/1610.02391.pdf)

Es wurde untersucht, ob Bilder mit hohen/niedrigen Shapley- bzw. Grad-CAM-Werten für das Training des NNs wichtig sind, oder ob diese vernachlässigt werden können.

Validierung des Shapley-Algorithmus

Zur einfachen Reproduktion wurde das SHAP Repository von GitHub verwendet. Als Modellarchitektur des neuronalen Netzes wurde EfficientNetB0 (vortrainiert auf ImageNet) verwendet. Das Modell wurde auf 3, 5 und 10 Klassen des Opensource Datensatzes Food101 trainiert. Drei verschiedene Ansätze des Shapley-Algorithmus wurden betrachtet, welche im folgenden Schritt erklärt werden.

DeepExplainer

Dieser analysiert die Ausgabe des Modells und zeigt, welchen Beitrag jeder Input zur Gesamtvorhersage leistet. In Abbildung 3 ist zu sehen, wie jeder Pixel des Inputbildes einen Wert erhält. Dabei tragen hier gelbe Pixel positiv zur Klassifizierung des Bildes bei und dunkelblaue Pixel haben einen negativen Einfluss auf die Klassifizierung.

Abbildung 3: Beispielhafte Ergebnisse des DeepExplainer-Algorithmus

KernelExplainer

Der KernelExplainer untersucht verschiedene Gruppen von Merkmalen, um herauszufinden, wie sich ihre Veränderung auf die Vorhersage des Modells auswirkt. Hierbei wird das Bild zuerst segmentiert. Anschließend wird jedes Segment bewertet, was für einen Beitrag dieses zur Klassifikation des Bildes beiträgt. In Abbildung 4 ist bspw. gut zu sehen, wie der Schraubenschaft und das Gewinde hohe Shapley-Werte erhalten, bei Vorhersage der richtigen Klasse.

Abbildung 4: Beispielhafte Ergebnisse des KernelExplainer-Algorithmus

Data Shapley

Dies ist eine Methode aus der Datenanalyse, um herauszufinden, wie wichtig einzelne Datenpunkte in einem Datensatz sind bzw. um den Beitrag jedes Datenpunktes zur Verbesserung des Modells zu bewerten. Wenn ein Datenpunkt einen großen Einfluss hat (das Modell verbessert) bekommt er einen höheren Wert und andersherum. Dies hilft dabei, nützliche Daten zu identifizieren und unwichtige zu verwerfen, was in verschiedenen Anwendungen wie Datenreduktion/-bereinigung und Modellverbesserung nützlich ist.

Der Data Shapley Algorithmus ist jedoch mit einigen Herausforderungen verbunden. Ein bedeutendes Problem ist der enorme Rechen- und dadurch auch Zeitaufwand, der damit einhergeht. Um den Beitrag jedes einzelnen Datenpunktes zu ermitteln, muss das Modell mit zunehmender Anzahl an Datenpunkten wiederholt trainiert werden. Dieser Prozess muss mehrmals wiederholt werden, bis die Konvergenz für die Berechnung der Data Shapley-Werte erreicht ist. Mehr erfahren: Data Shapley/Proceedings of Machine Learning Research

Es ist auch wichtig zu beachten, dass die Verwendung einer GPU keine reproduzierbaren Ergebnisse liefert. Unterschiedliche Hardwarekonfigurationen und zufällige Prozessvariabilitäten können zu leichten Abweichungen in den berechneten Data Shapley-Werten führen.

Darüber hinaus werden die Data Shapley-Werte ausschließlich für die Trainingsdaten berechnet. Wenn neue Datenpunkte hinzukommen und ihre Data Shapley-Werte ermittelt werden sollen, müssen auch diese neuen Datenpunkte in das Modelltraining einbezogen werden. Dies erfordert erneut den Aufwand, das Modell mit den zusätzlichen Datenpunkten zu trainieren, was die Skalierbarkeit des Verfahrens einschränken kann.

Für den weiteren Verlauf der Machbarkeitsstudie wurde sich für die Variante des KernelExplainer des Shapley-Algorithmus entschieden, da dieser den geringeren Rechenaufwand aufweist und des Weiteren bessere Ergebnisse erzielt wurden.

Nach dem Finetuning des EfficientNetB0 Modells auf den Food101-Datensatz wurden die Shapley-Werte berechnet. In Abbildung 5 ist das Ergebnis zweier Testbilder zu sehen.

Abbildung 5: Shapley-Werte zweier Testbilder des Food101 Datensatzes

Nach Abbildung 5 erhalten visuell betrachtet die richtigen Klassen die höchsten Shapley-Werte. Um diese quantitativ zu analysieren, wurden verschiedene Metriken berechnet. Dazu gehören bspw: Summe, Betrag, Mittelwert, Varianz, z-Score.

Für jedes Bild ergibt sich nun ein Wert pro Metrik für jede Vorhersage. Dies ermöglicht eine umfassende Analyse der Beiträge der Merkmale zu den Modellvorhersagen. Im nächsten Schritt wurden Histogramme zu diesen Metriken erstellt, um die Verteilung dieser Werte zu visualisieren und Einblicke in die Bedeutung einzelner Merkmale zu gewinnen.

In Abbildung 6 sind zwei Histogramme der Klasse "Donuts" und "French Fries" zu sehen. Dabei wurde der Mittelwert der Shapley-Werte von allen Klassen und allen Bildern berechnet. Hierbei ist zu erkennen, dass die richtigen Vorhersagen die höchsten Shapley-Werte haben und sich gut von den falschen Klassen abgrenzen lassen. Somit lässt sich sagen, dass die Klassifikation der Daten durch den Mittelwert der Shapley-Werte unterstützt werden kann. Es kann dadurch auch die Hypothese aufgestellt werden, dass falsche Klassifikationen anhand des Shapley-Wertes erkannt werden könnten.

Abbildung 6: Histogramme der Shapley-Werte

Validierung des Grad-CAM-Algorithmus

Der Grad-CAM-Algorithmus beruht auf dem Paper "Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization". Zur einfachen Reproduktion wurde sich für den Grad-CAM-Algorithmus an der Keras-Implementierung orientiert. Als Modellarchitektur des neuronalen Netzes wurde EfficientNetB0 (vortrainiert auf ImageNet) verwendet. Das Modell wurde auf 3, 5 und 10 Klassen des Opensource Datensatzes Food101 trainiert.

Nach dem Finetuning des EfficientNetB0 Modells auf den Food101-Datensatz wurden die Grad-CAM-Werte berechnet. In Abbildung 7 ist das Ergebnis zweier Testbilder zu sehen.

Abbildung 7: Grad-CAM-Werte zweier Testbilder des Food101 Datensatzes

Anhand Abbildung 7 ist gut zu erkennen, dass die richtigen Klassen in den jeweiligen Bildbereichen hohe Grad-CAM-Werten erhalten. Dies sind die hell hervorgehobenen Bereiche in den Bildern. Um diese quantitativ zu analysieren, wurden ebenfalls verschiedene Metriken berechnet. Dazu gehören bspw: Summe, Betrag, Mittelwert, Varianz, z-Score.

Wie bereits für den Shapley-Algorithmus erhält man einen Wert pro Metrik für jede Vorhersage, womit anschließend ebenfalls Histogramme zu diesen Metriken erstellt wurden. In Abbildung 6 sind zwei Histogramme der Klasse "Donuts" und "French Fries" zu sehen. Dabei wurde der Mittelwert der Grad-CAM-Werte von allen Klassen und allen Bildern berechnet. Im Gegensatz zu den Shapley-Werten erhält hier die richtige Vorhersage nicht die höchsten Grad-CAM-Werte und lässt sich dadurch auch nicht von den falschen Klassen abgrenzen. Somit lässt sich sagen, dass die Klassifikation der Daten durch den Mittelwert der Grad-CAM-Werte nicht unterstützt werden kann.

Abbildung 8: Histogramme der Grad-CAM-Werte

In Abbildung 9 sind zwei Bilder zu sehen, welche das Verhalten der Histogramme erklären könnten. Einige Bilder weisen hohe Grad-CAM-Werte für falsche Vorhersagen auf. Einerseits wird der Bildbereich, in dem sich das zu klassifizierende Objekt befindet, von der richtigen Klasse hervorgehoben. Andererseits werden andere Bildbereiche von den falschen Klassen stark hervorgehoben. Dadurch ist der Grad-CAM-Mittelwert der falschen Klassen durchaus höher als der, der richtigen Klasse.

Abbildung 9: Hohe Grad-CAM-Werte für falsche Klassen (hier für zwei Bilder der Klasse "French Fries")

Untersuchung der Wichtigkeit einzelner Datenpunkte

Im Folgenden wurde untersucht, ob Bilder mit hohen/niedrigen Shapley- bzw. Grad-CAM-Werten für das Training des NNs wichtig sind, oder ob diese vernachlässigt werden können und dadurch eine Verkleinerung des Datensatzes erreicht werden kann.

Hierfür wurde sich an den erstellten Histogrammen orientiert. Sowohl für den Shapley- als auch für den Grad-CAM-Algorithmus erhält man eine gewisse Verteilung der Shapley-/Grad-CAM-Werte. Die Idee hierbei ist, die Verteilung der Shapley-/Grad-CAM-Werte in 4 gleich große Bereiche einzuteilen. Dies ist beispielhaft in Abbildung 10 dargestellt. Anschließend wird das EfficientNetB0 Modell mit folgenden Daten trainiert:

  • Alle Daten

  • Jeweils einer der vier Bereiche (Slice 1-4) wird aus dem Datensatz entfernt

  • Zufällig werden 25 % der Daten entfernt

Ziel dieser Untersuchung ist die Verkleinerung des Datensatzes. Somit gelten folgenden beiden Bedingungen:

  • Die Genauigkeit des Modells darf durch das Entfernen von Daten nicht signifikant schlechter werden

  • Die Modellgenauigkeit durch Entfernen von Daten anhand der Algorithmen ist besser als zufällig entfernte Daten

Abbildung 10: Unterteilung einer Datenverteilung in vier Bereiche

Shapley

In Abbildung 11 sind die durchschnittlichen Genauigkeiten des trainierten EfficientNetB0 Modells zu sehen. Dabei wurde, wie bereits anfangs beschrieben, das Modell auf 3, 5 und 10 Klassen des Food101 Datensatzes trainiert. Anhand der Ergebnisse aus Abbildung 11 lässt sich folgendes ableiten:

  • Das Baseline-Modell, das mit allen Daten trainiert wird, liefert die beste Genauigkeit für alle drei Modelle

  • Werden Daten für das Modelltraining aus dem ersten Bereich (Slice 1 - geringste Shapley-Werte) entfernt, wird die geringste Genauigkeit erzielt. Die Daten in diesem Bereich scheinen für das Training am wichtigsten zu sein.

  • Mit steigenden Shapley-Werten (von Slice 1 zu Slice 4), wird die Genauigkeit des Modells besser.

  • Slice 4 Modelle erzielen bessere Ergebnisse, im Vergleich zu zufällig entfernten Daten. Außerdem ist nur ein relativ geringer Genauigkeitsverlust im Vergleich zum Baseline Modell zu verzeichnen.

Abbildung 11: Untersuchung der Wichtigkeit einzelner Datenpunkte des Shapley-Algorithmus

Grad-CAM

In Abbildung 12 sind die durchschnittlichen Genauigkeiten des trainierten EfficientNetB0 Modells zu sehen. Auch hier, wurde das Modell auf 3, 5 und 10 Klassen des Food101 Datensatzes trainiert. Anhand der Ergebnisse aus Abbildung 12 lässt sich folgendes ableiten:

  • Das Baseline-Modell, das mit allen Daten trainiert wird, liefert die beste Genauigkeit für alle drei Modelle

  • Werden Daten für das Modelltraining aus dem letzten Bereich (Slice 4 - höchste Grad-CAM-Werte) entfernt, wird die geringste Genauigkeit erzielt. Die Daten in diesem Bereich scheinen für das Training am wichtigsten zu sein.

  • Mit steigenden Grad-CAM-Werten (von Slice 1 zu Slice 4), wird die Genauigkeit des Modells schlechter.

  • Slice 1 Modelle erzielen bessere Ergebnisse, im Vergleich zu zufällig entfernten Daten. Außerdem ist nur ein relativ geringer Genauigkeitsverlust im Vergleich zum Baseline-Modell zu verzeichnen.

Abbildung 12: Untersuchung der Wichtigkeit einzelner Datenpunkte des Grad-CAM-Algorithmus

Fazit

Die Ergebnisse dieses Projekts zeigen, dass der Shapley- und Grad-CAM-Algorithmus vielversprechende Methoden sind, um Datensätze zu verkleinern. Sowohl Shapley als auch Grad-CAM sind Algorithmen, zur Identifizierung wichtiger Bildbereiche für die Vorhersage eines NN. Dabei kann der Shapley Algorithmus sogar als Unterstützung der Klassifikation von Daten dienen. In den durchgeführten Experimenten wurde gezeigt, dass sowohl zwischen Shapley-Werten und Modellgenauigkeit, als auch zwischen Grad-CAM-Werten und Modellgenauigkeit eine Korrelation besteht. Für die Ergebnisse der "Untersuchung der Wichtigkeit einzelner Datenpunkte" können folgende beiden Thesen formuliert werden:

  • Bilder mit geringen Shapley-Werten, sind dem neuronalen Netz nicht bekannt, wurden somit im Training nicht gelernt. Werden diese "neuen" Daten aus dem Datensatz entfernt, verringert sich die Genauigkeit des Modells, da lediglich eine kleinere Varianz der Daten gelernt wurde. Daten mit einem hohen Shapley-Wert sind dem Netz bereits bekannte, evtl. sogar redundante, Daten. Da diese somit bereits in den Trainingsdaten vorhanden sind, können sie mit einem recht geringen Genauigkeitsverlust aus den Trainingsdaten entfernt werden.

  • Bilder mit geringen Grad-CAM-Werten, könnten auf falsche Klassifizierungen hinweisen, bzw. das Objekt kann auf dem Bild nicht detektiert werden. Werden mögliche falsche Klassifizierungen aus den Trainingsdaten herausgenommen, führt dies zu einer Verbesserung in der Vorhersage des Modells. Ist der Grad-CAM-Wert hoch, ist das Objekt gut auf dem Bild zu erkennen. Durch das Entfernen dieser guten Daten kommt es zur Verschlechterung der Modellgenauigkeit.

In weiteren Studien müssten diese Thesen weiter untersucht werden, um festzustellen, ob sich diese Zusammenhänge auch in weiteren Experimenten bestätigt werden.

Ausführung des Shapley und Grad-CAM-Algorithmus auf verschiedenen Edge-Geräten

Um den implementierten Algorithmus auf Edge-Geräten zu testen, wurde das trainierte neuronale Netz zusammen mit den jeweiligen beiden Algorithmen auf verschiedenen Embedded Geräten ausgeführt. Das Hauptziel bestand darin, die Leistungsfähigkeit der Hardware-Plattformen zu bewerten, bei Ausführung der Algorithmen. Folgende waren die untersuchten Embedded-Geräte:

  • Nvidia Jetson AGX Orin

  • Nvidia Jetson Orin Nano

  • Raspberry Pi

Dabei wurde untersucht, ob die Algorithmen auf den Geräten ausführbar sind und falls ja, mit welcher Performance. Als direkten Vergleich hierzu wurde die Nvidia RTX A4000 Grafikkarte verwendet, um die Ergebnisse auf den Edge-Geräten besser einordnen zu können.

Untersuchte Hardware-Plattformen

Die untersuchten Geräte, sowie weitere wichtige Details zu diesen, sind in folgender Tabelle aufgeführt. Die Bewertung der Größe wird mit einer Skala von 1 (sehr gut) bis 5 (mangelhaft) durchgeführt.

Gerät

RAM [GB]

Cudakerne

Preis [€]

Energiebedarf [W]

Größe

GPU - Nvidia RTX A4000

16

6144

~1000 (+ Preis PC)

~140 (+ Energiebedarf PC)

5

Nvidia Jetson AGX Orin

32

2048

~2300

~60

2

Nvidia Jetson Orin Nano

8

1024

~600

~15

1

Raspberry Pi 4B

4

-

~60

~6

1

Ergebnisse und Diskussion

Für den Proof of Concept wurde wie bereits geschrieben im ersten Schritt das trainierte Modell auf den Edge-Geräten ausgeführt. Nachdem das Modell eine Vorhersage für ein Bild ausgegeben hat, wurde diese Vorhersage anschließend dem Shapley- bzw. Grad-CAM-Algorithmus übergeben. Anhand der erhaltenen Heatmap, wurde die Metrik bzw. der entsprechende Wert berechnet. Anhand dieses Wertes konnte, wie im Test zuvor, bestimmt werden, ob dieser Datenpunkt wichtig für ein Training ist und gespeichert werden sollte oder unwichtig und verworfen werden kann (nach dem Prinzip aus Abbildung 11 + 12).

Ausschlaggebend für die Nutzbarkeit der beiden Algorithmen auf Edge-Geräten ist die Ausführungsgeschwindigkeit. Ist diese auf den jeweiligen Geräten zu niedrig, ist es nicht praktikabel diese Algorithmen, bzw. Geräte, in der Praxis einzusetzen. In Abbildung 13 wird eine Leistungsübersicht verschiedener Hardware-Plattformen und deren Fähigkeit den Shapley- bzw. den Grad-CAM-Algorithmus in Echtzeit auszuführen dargestellt. Mithilfe dieser Ergebnisse wurde bewertet, ob diese Algorithmen in Anwendungen, die Echtzeit-Verarbeitung erfordern, praktikabel sind.

Abbildung 13: Ausführung des Shapley- und Grad-CAM-Algorithmus auf verschiedenen Geräten

Shapley vs. Grad-CAM: Eignung für Echtzeit-Verarbeitung

Der Shapley-Algorithmus erfordert erheblich mehr Rechenleistung und ist daher nicht geeignet, um in Echtzeit ausgeführt zu werden. Selbst auf einem Rechner in dem die Nvidia RTX A4000 verbaut ist, wurde lediglich eine Laufzeit von 0,09 FPS (ca. 11 Sekunden pro Bild) erzielt, auf dem Nvidia Jetson AGX Orin dann nur noch 0,04 FPS (25 Sekunden pro Bild). Dies zeigt schon deutlich, dass der Shapley-Algorithmus bei der schnellen und kontinuierlichen Verarbeitung von Bildern nicht mithalten kann.

Im Gegensatz dazu zeigt der Grad-CAM-Algorithmus eine wesentlich bessere Echtzeit-Tauglichkeit. Mit 1,9 FPS auf der Nvidia RTX A4000-GPU und auch noch 1,5 FPS auf dem Nvidia Jetson AGX Orin, bietet Grad-CAM die Flexibilität, in Echtzeit-Anwendungen verwendet zu werden. Wenn in Anwendungen eine Verarbeitungszeit von etwa 1 bis 2 Sekunden pro Bild ausreichend ist, könnte selbst ein Raspberry Pi 4B verwendet werden.

Vergleich der Hardware-Plattformen

Bei diesem Vergleich werden die Leistungsunterschiede zwischen den verschiedenen Hardware-Plattformen sichtbar. Wie zu erwarten war, erreicht der Nvidia Jetson AGX Orin die besten Ergebnisse unter den untersuchten Edge-Geräten. Er erzielt nahezu eine ähnliche Leistung wie die PC-GPU (Nvidia RTX A4000) und ist mehr als doppelt so schnell wie der Nvidia Jetson Orin Nano und der Raspberry Pi 4B. Allerdings sollte hier nicht vergessen werden, dass der Nvidia Jetson AGX Orin auch preislich wesentlich teurer ist als die beiden anderen untersuchten Edge-Geräte. In Anbetracht dieser Ergebnisse muss letztlich zwischen den verschiedenen Eigenschaften der Hardware, die bspw. in Tabelle 2 aufgezeigt sind, abgewägt werden.

Zusammenfassend zeigen die Ergebnisse des Hardwaretests, dass der Shapley-Algorithmus für Echtzeit-Anwendungen nicht geeignet ist, während der Grad-CAM-Algorithmus, durchaus auf den Edge-Geräten bei ausreichender Geschwindigkeit ausgeführt werden kann. Dies unterstreicht die Wichtigkeit der Auswahl der richtigen Algorithmen und Hardware-Plattformen in Bezug auf die Anforderungen.

Last updated