Neuronale Netze eignen sich sehr gut für die Klassifikation von Bildern und finden bereits heute vielfach Verwendung. Sie liefern hierbei herausragende Ergebnisse auf Benchmark-Datensätzen, wie dem ImageNet-Datensatz (90% Erfolgsrate), und sind ein beliebtes Mittel, um Bildverarbeitungsaufgaben verschiedenster Art zu lösen. Dazu zählen die Analyse von medizinischen Bildern, zum Beispiel MRT-Scans, die Bestimmung von Pflanzenarten anhand von Fotos und die Klassifikation von Verkehrszeichen im autonomen Fahren. Feindliche Angriffe auf diese Vorhersagemodelle des Maschinellen Lernens, so auch im Straßenverkehr, könnten hier zu großem (Personen-)Schaden führen.
Drei Lernphasen eines Neuronalen Netz-Klassifikators
Mittels Neuronaler Netze (NN) können Eigenschaften, zum Beispiel aus Trainingsbildern, zu einzelnen Klassen zugeordnet werden. Zu diesem Zweck müssen die Klassen der Trainingsbeispiele vorab bekannt sein. Die Unterscheidung der Klassen anhand der vorhandenen Bildmerkmale kann von einem Neuronalen Netz gelernt werden. Dabei handelt es sich um eine Unterscheidungsfunktion, wodurch Bilder in eine der bekannten Klassen sortiert werden können (Hinweis: In manchen Anwendungsfällen gibt es eine zusätzliche Rückweisungsklasse, falls keine der bekannten Klassen zutrifft). Diese Funktion wird auch Klassifikator genannt. Im Beitrag zum Deep Learning finden Sie eine tiefer gehende Erklärung zur Funktionsweise Neuronaler Netze.
Das Anlernen eines NN-Klassifikators besteht aus mehreren Phasen, wobei zu den jeweiligen Phasen verschiedene Daten betrachtet werden. In diesem Fall betrachten wir überwachtes Lernen, bei dem es bestimmte Feedback-Schleifen gibt.
Trainingsphase: Aus Trainingsdaten extrahiert das Netzwerk bestimmte Eigenschaften, mit denen dann die Klassifikationsfunktion gebildet wird.
Validierungsphase: Anschließend wird mit anderen Bildern die Klassifikationsleistung bestimmt. Mit dem Ergebnis wird die gelernte Unterscheidung der Klassen angepasst, sodass das Netzwerk zukünftig ein besseres Ergebnis liefert.
Mit dieser verbesserten Klassifikationsfunktion wird nun wieder eine Trainingsphase durchlaufen und deren Ergebnis im Anschluss wieder validiert. Dieses Vorgehen wird so lange durchgeführt, bis eine gewisse Anzahl an Durchläufen erreicht wurde.
Testphase: Am Ende des Trainings wird, mit einer dem Netzwerk bisher unbekannten Testmenge, die finale Klassifikationsleistung bestimmt.
Wichtig ist, dass die verschiedenen Mengen keine gleichen Elemente beinhalten, da das Netzwerk sonst einfach nur die gegebenen Bilder auswendig lernt, anstatt Eigenschaften der Bilder zu analysieren. Außerdem kann es vorkommen, dass in der Validierungsphase sehr gute Ergebnisse erzielt werden, doch bei der finalen Testung keine gute Klassifikation zu beobachten ist. Dieses Phänomen bezeichnet man als Overfitting, wobei die Klassifikation zu sehr an die bekannten Trainings- und Validierungsdaten angepasst worden ist.
Die Angriffsfläche eines Netzes lässt sich im Hinblick auf die Informationen und Möglichkeiten definieren, über die ein Angreifer verfügt. Je mehr Informationen ein Angreifer über ein maschinelles Lernmodell hat, desto mehr Optionen für einen Angriff bieten sich ihm und desto präziser können Angriffe auf ein Modell abgestimmt werden. Es ist möglich, in jeder der drei obig beschriebenen Phasen des Lernprozesses ein Modell zu korrumpieren.
Am häufigsten passieren Angriffe auf fertig trainierte und getestete Modelle durch die sogenannten Explorativen Attacken, bei denen versucht wird, eine falsche Klassifikation zu erzeugen oder Informationen über das Modell zu erhalten. Hierzu zählen zum Beispiel Spam-Emails, die mit geschickter Veränderung des Inhalts, wie absichtlichen Rechtschreibfehlern, nicht durch Spamfilter erkannt und herausgefiltert werden. In diesem Fall hat ein Angreifer keinen Zugriff auf den Trainingsprozess oder die Struktur des Modells, sondern hat nur die Möglichkeit, Daten an das trainierte Modell zu übergeben. Daher fallen diese Art der Angriffe in die Testphase, in der kein Einfluss auf das Modell genommen wird.
White-Box und Black-Box-Angriffe
Prinzipiell lassen sich Angriffe zur Testphase nach den Informationen des Angreifers über das Modell aufteilen. Dabei lassen sich White-Box- und Black-Box-Angriffe unterteilen.
Bei einem White-Box-Angriff hat der Angreifer Wissen über die Struktur des Netzwerks, über die Art des Trainingsverfahrens und über die vorliegenden Daten, mit denen das Netz trainiert wird. So ist es ihm möglich, das Modell und seine Schwachstellen zu analysieren sowie bewusst kleine Abweichungen in Daten einzubauen und eine Fehlklassifikation zu erzeugen.
In einem Black-Box-Szenario hat ein Angreifer dieses Wissen nicht, sondern sieht nur die Eingabedaten und die Ergebnisse, die das Netzwerk dazu ausgibt. Während eines Angriffs werden dann beispielweise verschiedene verfälschte Bilder in das Netzwerk gegeben und anhand des Outputs eruiert, wo im Neuronalen Netz mögliche Schwachstellen sein könnten. Grundlegende Informationen zu den manipulierten Inputs finden Sie in unserem Beitrag zu den sogenannten Adversarial Examples.
Ziel dieser Angriffe ist es gleichermaßen eine Fehlklassifikation des Netzes hervorzurufen und augenscheinlich so wenig Änderungen wie möglich an den Ursprungsdaten vorzunehmen. So kann ein Mensch nicht feststellen, dass ein Angriff ausgeübt wurde. Die herbeigeführte Fehlklassifikation des Neuronalen Netzes kann in der Praxis zudem massive Auswirkungen haben. So könnte sie verhindern, dass ein autonomes Fahrzeug ein Verkehrszeichen korrekt erkennt und sich dementsprechend verhält.
Anwendung einer Black-Box-Attacke
Wie leicht die Klassifikation eines maschinellen Lernverfahrens gebrochen werden kann, zeigen wir in folgendem Beispiel:
Dabei arbeiten wir auf einem Datensatz deutscher Verkehrszeichen der Ruhr Universität Bochum (GTSRB). Auf diesen Daten wird ein Klassifikations-Modell trainiert. Mithilfe der Adversarial Robustness Toolbox von LF AI bzw. IBM lassen sich verschiedene Angriffe ausführen. Wir nutzen hier beispielsweise die Hop-Skip-Jump Attacke. Bei diesem Black-Box-Angriff wird iterativ nach guten Adversarial Examples gesucht, die also das Ausgangsbild möglichst wenig verändern und gleichzeitig das ML-Modell hoch wirksam angreifen. Schlussendlich wird das beste Example für den Angriff genutzt.
Abwehr einer Black-Box-Attacke
Unser Beispiel verdeutlicht die Gefahren feindlicher Angriffe auf Vorhersagemodelle des Maschinellen Lernens. Im konkreten Anwendungsfall nahmen wir zur Abwehr des Angriffs Adversarial Examples in die Trainingsdaten auf. Manipulierte Daten wurden so zu einem gewissen Anteil durch das ML-Modell mitgelernt, wodurch dessen Klassifikation nicht so leicht gebrochen werden kann. Wir haben dafür DeepFool genutzt. Dies ist ein Generator für Adversarial Examples, der speziell für tiefe neuronale Netze manipulierte Bilder erzeugt und ebenfalls in der Adversarial Robustness Toolbox enthalten ist. Weil das Netzwerk damit bereits im Training bestimmte Manipulationsmuster lernt, müssen Angriffe über das Hop-Skip-Jump Verfahren spezifischer werden. In unserem Anwendungsfall reichte nach der von uns gefahrenen Abwehrstrategie die bloße Manipulation durch den Angriff daher nicht mehr aus, um das Modell zu einer Fehlklassifikation zu bringen.
So vielseitig wie die Angriffsformen auf Modelle des Maschinellen Lernens sind auch die durch die Forschungscommunity entwickelten Gegenmaßnahmen. Daher sollte in der Entwicklung industrieller und produktiver Systeme mit Künstlicher Intelligenz immer die Robustheit gegenüber Angriffen bedacht werden. Bei Bedarf können mit den vorhandenen Abwehrmechanismen die maschinellen Lernverfahren und resultierenden Modelle zu einem gewissen Grad geschützt werden. Einen Überblick über verschiedene Abwehrstrategien gegen Adversarial Examples gibt der Beitrag unserer Kollegin Linara Adilova.