Adversarial Machine Learning: Wie man ML-Modelle angreift und verteidigt
Veröffentlicht: 2022-03-11Heutzutage werden Modelle des maschinellen Lernens in Computer Vision in vielen realen Anwendungen eingesetzt, wie selbstfahrende Autos, Gesichtserkennung, Krebsdiagnose oder sogar in Geschäften der nächsten Generation, um zu verfolgen, welche Produkte Kunden aus dem Regal nehmen, um ihre Anerkennung zu erhalten Karte kann beim Verlassen belastet werden.
Die zunehmende Genauigkeit dieser maschinellen Lernsysteme ist ziemlich beeindruckend, was natürlich zu einer wahren Flut von Anwendungen führte, die sie verwenden. Obwohl die mathematischen Grundlagen dahinter bereits vor einigen Jahrzehnten untersucht wurden, gab das relativ junge Aufkommen leistungsstarker GPUs den Forschern die Rechenleistung, die zum Experimentieren und Erstellen komplexer maschineller Lernsysteme erforderlich ist. Moderne Modelle für Computer Vision basieren heute auf tiefen neuronalen Netzen mit bis zu mehreren Millionen Parametern und auf Hardware, die vor nur einem Jahrzehnt noch nicht verfügbar war.
Im Jahr 2012 zeigten Alex Krizhevsky et altri als erste, wie ein tiefes Faltungsnetzwerk implementiert werden kann, das damals zum modernsten Modell in der Objektklassifizierung wurde. Seitdem wurden viele Verbesserungen ihres ursprünglichen Modells veröffentlicht, von denen jede eine Steigerung der Genauigkeit brachte (VGG, ResNet, Inception usw.). In letzter Zeit ist es maschinellen Lernmodellen gelungen, bei vielen Computer-Vision-Aufgaben menschliche und sogar übermenschliche Genauigkeit zu erreichen.
Vor einigen Jahren war es die Norm, falsche Vorhersagen von einem maschinellen Lernmodell zu erhalten. Heutzutage ist dies die Ausnahme geworden, und wir erwarten, dass sie einwandfrei funktionieren, insbesondere wenn sie in realen Anwendungen eingesetzt werden.
Bis vor kurzem wurden Modelle für maschinelles Lernen normalerweise in einer Laborumgebung trainiert und getestet, wie z. B. bei Wettbewerben für maschinelles Lernen und wissenschaftlichen Arbeiten. Da sie heutzutage in realen Szenarien eingesetzt werden, sind Sicherheitslücken aufgrund von Modellfehlern zu einem echten Problem geworden.
Die Idee dieses Artikels ist es, zu erklären und zu demonstrieren, wie hochmoderne tiefe neuronale Netze, die in der Bilderkennung verwendet werden, leicht von einem böswilligen Akteur getäuscht und so dazu gebracht werden können, falsche Vorhersagen zu treffen. Sobald wir uns mit den üblichen Angriffsstrategien vertraut gemacht haben, werden wir diskutieren, wie wir unsere Modelle dagegen verteidigen können.
Beispiele für kontradiktorisches maschinelles Lernen
Beginnen wir mit einer grundlegenden Frage: Was sind Beispiele für kontradiktorisches maschinelles Lernen?
Kontradiktorische Beispiele sind böswillige Eingaben, die absichtlich entwickelt wurden, um ein maschinelles Lernmodell zu täuschen.
In diesem Artikel beschränken wir unsere Aufmerksamkeit auf maschinelle Lernmodelle, die eine Bildklassifizierung durchführen. Kontradiktorische Beispiele sind daher von einem Angreifer erstellte Eingabebilder, die das Modell nicht richtig klassifizieren kann.
Nehmen wir als Beispiel ein GoogLeNet, das auf ImageNet trainiert wurde, um die Bildklassifizierung als unser maschinelles Lernmodell durchzuführen. Unten sehen Sie zwei Bilder eines Pandas, die für das menschliche Auge nicht zu unterscheiden sind. Das Bild auf der linken Seite ist eines der sauberen Bilder im ImageNet-Datensatz, das zum Trainieren des GoogLeNet-Modells verwendet wird. Der rechte ist eine leichte Modifikation des ersten, die durch Hinzufügen des Rauschvektors im mittleren Bild erstellt wurde. Das erste Bild wird vom Modell wie erwartet als Panda vorhergesagt. Der zweite hingegen wird (mit sehr hoher Sicherheit) als Gibbon vorhergesagt.
Das dem ersten Bild hinzugefügte Rauschen ist nicht zufällig, sondern das Ergebnis einer sorgfältigen Optimierung durch den Angreifer.
Als zweites Beispiel können wir einen Blick darauf werfen, wie man gegnerische 3D-Beispiele mit einem 3D-Drucker synthetisiert. Das Bild unten zeigt verschiedene Ansichten einer 3D-Schildkröte, die die Autoren gedruckt haben, und die Fehlklassifizierungen durch das Google Inception v3-Modell.
Wie können hochmoderne Modelle, die eine übermenschliche Klassifizierungsgenauigkeit haben, solche scheinbar dummen Fehler machen?
Bevor wir uns mit den Schwächen befassen, die neuronale Netzwerkmodelle tendenziell haben, sollten wir uns daran erinnern, dass wir Menschen unsere eigenen gegnerischen Beispiele haben. Schauen Sie sich das Bild unten an. Was siehst du? Eine Spirale oder eine Reihe konzentrischer Kreise?
Was diese verschiedenen Beispiele auch zeigen, ist, dass maschinelle Lernmodelle und menschliches Sehen ganz unterschiedliche interne Darstellungen verwenden müssen, um zu verstehen, was es in einem Bild gibt.
Im nächsten Abschnitt werden wir Strategien zur Generierung kontradiktorischer Beispiele untersuchen.
So generieren Sie kontradiktorische Beispiele
Beginnen wir mit einer einfachen Frage: Was ist ein kontradiktorisches Beispiel?
Kontradiktorische Beispiele werden generiert, indem ein sauberes Bild genommen wird, das das Modell korrekt klassifiziert, und eine kleine Störung gefunden wird, die dazu führt, dass das neue Bild vom ML-Modell falsch klassifiziert wird.
Nehmen wir an, ein Angreifer hat vollständige Informationen über das Modell, das er angreifen möchte. Dies bedeutet im Wesentlichen, dass der Angreifer die Verlustfunktion des Modells $J(\theta, X, y)$ berechnen kann, wobei $X$ das Eingabebild, $y$ die Ausgabeklasse und $\theta$ die interne Klasse sind Modellparameter. Diese Verlustfunktion ist typischerweise die negative Verlustwahrscheinlichkeit für Klassifizierungsverfahren.
In diesem White-Box-Szenario gibt es mehrere Angriffsstrategien, von denen jede unterschiedliche Kompromisse zwischen den Rechenkosten zu ihrer Herstellung und ihrer Erfolgsrate darstellt. Alle diese Verfahren versuchen im Wesentlichen, die Änderung in der Modellverlustfunktion zu maximieren, während die Störung des Eingangsbildes klein gehalten wird. Je höher die Dimension des Eingabebildraums ist, desto einfacher ist es, gegensätzliche Beispiele zu erzeugen, die vom menschlichen Auge nicht von sauberen Bildern zu unterscheiden sind.
L-BFGS-Methode
Wir haben das ${x}'$ des kontradiktorischen Beispiels gefunden, indem wir das folgende boxbeschränkte Optimierungsproblem gelöst haben:
wobei $c > 0$ ein Parameter ist, der ebenfalls gelöst werden muss. Intuitiv suchen wir nach gegnerischen Bildern ${x}'$ , sodass die gewichtete Summe der Verzerrung in Bezug auf das saubere Bild ( $\left | x - {x}' \right |$ ) und der Verlust in Bezug auf die falsche Klasse ist das Minimum möglich.
Für komplexe Modelle wie tiefe neuronale Netze hat das Optimierungsproblem keine geschlossene Lösung und daher müssen iterative numerische Methoden verwendet werden. Aus diesem Grund ist dieses L-BFGS-Verfahren langsam. Ihre Erfolgsquote ist jedoch hoch.
Schnelles Gradientenzeichen (FGS)
Mit der Methode Fast Gradient Sign (FGS) machen wir eine lineare Approximation der Verlustfunktion um den Anfangspunkt, gegeben durch den sauberen Bildvektor $X$ und die wahre Klasse $y$ .
Unter dieser Annahme gibt der Gradient der Verlustfunktion die Richtung an, in der wir den Eingabevektor ändern müssen, um eine maximale Änderung des Verlusts zu erzeugen. Um die Größe der Störung klein zu halten, extrahieren wir nur das Vorzeichen des Gradienten, nicht seine eigentliche Norm, und skalieren es mit einem kleinen Faktor Epsilon.
Auf diese Weise stellen wir sicher, dass der pixelweise Unterschied zwischen dem ursprünglichen Bild und dem modifizierten Bild immer kleiner als Epsilon ist (dieser Unterschied ist die L_infinity-Norm).
Der Gradient kann effizient unter Verwendung von Backpropagation berechnet werden. Diese Methode ist eine der schnellsten und rechengünstigsten zu implementieren. Die Erfolgsrate ist jedoch geringer als bei teureren Methoden wie L-BFGS.
Die Autoren von Adversarial Machine Learning at Scale sagten, dass es eine Erfolgsrate zwischen 63 % und 69 % bei der Top-1-Vorhersage für den ImageNet-Datensatz hat, mit Epsilon zwischen 2 und 32. Für lineare Modelle, wie die logistische Regression, die schnelle Gradienten-Signatur-Methode ist genau. In diesem Fall berichten die Autoren einer anderen Forschungsarbeit zu kontradiktorischen Beispielen von einer Erfolgsquote von 99 %.
Iteratives schnelles Gradientenzeichen
Eine offensichtliche Erweiterung der vorherigen Methode besteht darin, sie mehrmals mit einer kleineren Schrittgröße Alpha anzuwenden und die Gesamtschrittlänge zu beschneiden, um sicherzustellen, dass die Verzerrung zwischen dem sauberen und dem gegnerischen Bild geringer als Epsilon ist.

Andere Techniken, wie die in Nicholas Carlinis Artikel vorgeschlagenen, sind Verbesserungen gegenüber dem L-BFGS. Sie sind auch teuer in der Berechnung, haben aber eine hohe Erfolgsquote.
In den meisten realen Situationen kennt der Angreifer jedoch die Verlustfunktion des Zielmodells nicht. In diesem Fall muss der Angreifer eine Blackbox-Strategie anwenden.
Black-Box-Angriff
Forscher haben wiederholt beobachtet, dass kontradiktorische Beispiele ziemlich gut zwischen Modellen übertragen werden können, was bedeutet, dass sie für ein Zielmodell A entworfen werden können, aber letztendlich gegen jedes andere Modell wirksam sind, das auf einem ähnlichen Datensatz trainiert wurde.
Dies ist die sogenannte Übertragbarkeitseigenschaft von gegnerischen Beispielen, die Angreifer zu ihrem Vorteil nutzen können, wenn sie keinen Zugriff auf vollständige Informationen über das Modell haben. Der Angreifer kann mit den folgenden Schritten gegnerische Beispiele generieren:
- Fragen Sie das Zielmodell mit den Eingaben $X_i$ für $i=1…n$ ab und speichern Sie die Ausgaben $y_i$ .
- Erstellen Sie mit den Trainingsdaten $(X_i, y_i)$ ein weiteres Modell, das Ersatzmodell genannt wird.
- Verwenden Sie einen der oben gezeigten White-Box-Algorithmen, um kontradiktorische Beispiele für das Ersatzmodell zu generieren. Viele von ihnen werden erfolgreich übertragen und werden auch zu gegnerischen Beispielen für das Zielmodell.
Eine erfolgreiche Anwendung dieser Strategie auf ein kommerzielles maschinelles Lernmodell wird in diesem Papier der Computer Vision Foundation vorgestellt.
Verteidigung gegen gegnerische Beispiele
Der Angreifer gestaltet den Angriff und nutzt dabei alle Informationen aus, die er über das Modell hat. Je weniger Informationen das Modell zur Vorhersagezeit ausgibt, desto schwieriger ist es für einen Angreifer, einen erfolgreichen Angriff zu konzipieren.
Eine erste einfache Maßnahme zum Schutz Ihres Klassifizierungsmodells in einer Produktionsumgebung besteht darin, die Anzeige von Konfidenzwerten für jede vorhergesagte Klasse zu vermeiden. Stattdessen sollte das Modell nur die obersten $N$ (z. B. 5) wahrscheinlichsten Klassen bereitstellen. Wenn dem Endbenutzer Konfidenzwerte bereitgestellt werden, kann ein böswilliger Angreifer sie verwenden, um den Gradienten der Verlustfunktion numerisch zu schätzen. Auf diese Weise können Angreifer White-Box-Angriffe erstellen, indem sie beispielsweise die schnelle Gradientenzeichenmethode verwenden. In dem zuvor zitierten Artikel der Computer Vision Foundation zeigen die Autoren, wie dies anhand eines kommerziellen maschinellen Lernmodells durchgeführt werden kann.
Betrachten wir zwei Verteidigungen, die in der Literatur vorgeschlagen wurden.
Defensive Destillation
Diese Methode versucht, ein neues Modell zu generieren, dessen Gradienten viel kleiner sind als das ursprüngliche ungeschützte Modell. Bei sehr kleinen Gradienten sind Techniken wie FGS oder Iterative FGS nicht mehr sinnvoll, da der Angreifer große Verzerrungen des Eingangsbildes benötigen würde, um eine ausreichende Änderung der Verlustfunktion zu erreichen.
Defensive Destillation führt einen neuen Parameter $T$ namens Temperatur in die letzte Softmax-Schicht des Netzwerks ein:
Beachten Sie, dass wir für T = 1 die übliche Softmax-Funktion haben. Je höher der Wert von $T$ ist, desto kleiner ist der Gradient des Verlusts in Bezug auf die Eingabebilder.
Defensive Destillation läuft wie folgt ab:
- Trainieren Sie ein Netzwerk, das Lehrernetzwerk genannt wird, mit einer Temperatur $T » 1$ .
- Verwenden Sie das geschulte Lehrernetzwerk, um Softlabels für jedes Bild im Trainingssatz zu generieren. Ein Soft-Label für ein Bild ist der Satz von Wahrscheinlichkeiten, die das Modell jeder Klasse zuweist. Wenn das Ausgabebild beispielsweise ein Papagei ist, könnte das Lehrermodell Softlabels wie (90 % Papagei, 10 % Papagayo) ausgeben.
- Trainieren Sie ein zweites Netzwerk, das destillierte Netzwerk , auf den Softlabels, wobei Sie wiederum die Temperatur $T$ verwenden. Das Training mit Soft-Labels ist eine Technik, die eine Überanpassung reduziert und die Out-of-Sample-Genauigkeit des destillierten Netzwerks verbessert.
- Führen Sie schließlich zum Vorhersagezeitpunkt das destillierte Netzwerk mit der Temperatur $T=1$ aus.
Defensive Destillation schützt das Netzwerk erfolgreich vor einer Reihe von Angriffen, die in Destillation as a Defense to Adversarial Perturbations against Deep Neural Networks versucht werden.
Unglücklicherweise präsentierte ein späteres Papier von Forschern der University of California, Berkeley, eine neue Reihe von Angriffsmethoden, die die Destillation der Defensive besiegen. Diese Angriffe sind Verbesserungen gegenüber der L-BFGS-Methode, die beweisen, dass die defensive Destillation keine allgemeine Lösung gegen gegnerische Beispiele ist.
Gegnerisches Training
Gegnerisches Training ist heutzutage die effektivste Verteidigungsstrategie. Kontradiktorische Beispiele werden generiert und beim Trainieren des Modells verwendet. Wenn das Modell während des Trainings kontradiktorische Beispiele sieht , ist seine Leistung zum Vorhersagezeitpunkt intuitiv besser für kontradiktorische Beispiele, die auf die gleiche Weise generiert werden.
Idealerweise möchten wir jede bekannte Angriffsmethode verwenden, um während des Trainings gegnerische Beispiele zu generieren. Für einen großen Datensatz mit hoher Dimensionalität (wie ImageNet) sind robuste Angriffsmethoden wie L-BFGS und die im Berkeley-Papier beschriebenen Verbesserungen jedoch zu rechenintensiv. In der Praxis können wir es uns nur leisten, eine schnelle Methode wie FGS zu verwenden, oder iterative FGS kann verwendet werden.
Das gegnerische Training verwendet eine modifizierte Verlustfunktion, die eine gewichtete Summe der üblichen Verlustfunktion bei sauberen Beispielen und einer Verlustfunktion aus gegnerischen Beispielen ist.
Während des Trainings generieren wir für jeden Batch von $m$ sauberen Images $k$ gegnerische Images unter Verwendung des aktuellen Zustands des Netzwerks. Wir leiten das Netzwerk sowohl für saubere als auch für kontradiktorische Beispiele weiter und berechnen den Verlust mit der obigen Formel.
Eine in diesem Konferenzbeitrag vorgestellte Verbesserung dieses Algorithmus wird als Ensemble-Adversarial-Training bezeichnet. Anstatt das aktuelle Netzwerk zu verwenden, um kontradiktorische Beispiele zu generieren, werden mehrere vortrainierte Modelle verwendet, um kontradiktorische Beispiele zu generieren. Bei ImageNet erhöht diese Methode die Robustheit des Netzwerks gegenüber Blackbox-Angriffen. Diese Verteidigung war der Gewinner der 1. Runde des NIPS 2017-Wettbewerbs zur Verteidigung gegen gegnerische Angriffe .
Schlussfolgerungen und weitere Schritte
Ab heute ist es einfacher, ein maschinelles Lernmodell anzugreifen, als es zu verteidigen. Modernste Modelle, die in realen Anwendungen eingesetzt werden, lassen sich leicht durch gegnerische Beispiele täuschen, wenn keine Verteidigungsstrategie angewendet wird, was potenziell kritischen Sicherheitsproblemen Tür und Tor öffnet. Die zuverlässigste Verteidigungsstrategie ist das gegnerische Training, bei dem gegnerische Beispiele generiert und zur Trainingszeit zu den sauberen Beispielen hinzugefügt werden.
Wenn Sie die Robustheit Ihrer Bildklassifizierungsmodelle gegenüber verschiedenen Angriffen bewerten möchten, empfehle ich Ihnen, die Open-Source-Python-Bibliothek cleverhans zu verwenden. Viele Angriffsmethoden können mit Ihrem Modell getestet werden, einschließlich der in diesem Artikel erwähnten. Sie können diese Bibliothek auch verwenden, um ein kontradiktorisches Training Ihres Modells durchzuführen und seine Robustheit gegenüber kontradiktorischen Beispielen zu erhöhen.
Das Finden neuer Angriffe und besserer Verteidigungsstrategien ist ein aktives Forschungsgebiet. Es ist sowohl mehr theoretische als auch empirische Arbeit erforderlich, um Modelle für maschinelles Lernen in realen Anwendungen robuster und sicherer zu machen.
Ich ermutige den Leser, mit diesen Techniken zu experimentieren und neue interessante Ergebnisse zu veröffentlichen. Darüber hinaus ist jedes Feedback zum vorliegenden Artikel vom Autor sehr willkommen.
- Soundlogik und monotone KI-Modelle
- Die vielen Anwendungen des Gradientenabstiegs in TensorFlow