Beschreibung
Verfahren zum funktionsspezifischen Robustifizieren eines Neuronalen Netzes
Die Erfindung betrifft ein Verfahren zum funktionsspezifischen Robustifizieren eines Neuronalen Netzes. Ferner betrifft die Erfindung eine Vorrichtung zur Datenverarbeitung, ein
Computerprogrammprodukt und ein computerlesbares Speichermedium.
Maschinelles Lernen, beispielsweise auf Grundlage von Neuronalen Netzen, hat großes Potenzial für eine Anwendung in modernen Fahrerassistenzsystemen und automatisiert fahrenden Kraftfahrzeugen. Auf tiefen Neuronalen Netzen basierende Funktionen verarbeiten hierbei Sensorrohdaten (zum Beispiel von Kameras, Radar- oder Lidarsensoren), um hieraus relevante Informationen abzuleiten. Diese Informationen umfassen zum Beispiel eine Art und eine Position von Objekten in einem Umfeld des Kraftfahrzeugs, ein Verhalten der Objekte oder eine Fahrbahngeometrie oder -topologie. Unter den Neuronalen Netzen haben sich
insbesondere Faltungsnetze (engl convolutional neural networks) als besonders geeignet für Anwendungen in der Bildverarbeitung erwiesen. Während diese Neuronalen Netze klassische Ansätze an funktionaler Genauigkeit übertreffen, besitzen diese jedoch auch Nachteile. So können beispielsweise Störeinflüsse in erfassten Sensordaten oder auf adversarialen
Störeinflüssen basierende Angriffe dazu führen, dass trotz eines semantisch nicht veränderten Inhalts in den erfassten Sensordaten eine Fehlklassifizierung bzw. falsche semantische
Segmentierung erfolgt. Daher wird versucht, Neuronale Netze robust gegen diese Art von Störeinflüssen auszugestalten.
Aus der DE 10 2018 200 724 A1 ist ein Verfahren zum Erzeugen einer universellen
Datensignalstörung zum Generieren eines manipulierten Datensignals zum Täuschen eines ersten maschinellen Lernsystems bekannt, welches eingerichtet ist, eine semantische
Segmentierung eines empfangenen ein- oder mehrdimensionalen Datensignals zu ermitteln, mit den Schritten: Ermitteln eines Trainingsdatensatzes umfassend Paare von Datensignalen und zugehörigen gewünschten semantischen Segmentierungen, Generieren der
Datensignalstörung, abhängig von den Datensignalen des Trainingsdatensatzes, der zugehörigen gewünschten semantischen Segmentierung sowie geschätzten semantischen Segmentierungen der mit der Datensignalstörung beaufschlagten Datensignale. Ferner wird ein Verfahren zur Beurteilung einer Robustheit eines Aktorensteuerungssystems mit einem
maschinellen Lernsystem beschrieben, bei dem in Abhängigkeit von einem ungestörten Ansteuersignal und einem gestörten Ansteuersignal entschieden wird, ob das
Aktorsteuerungsystem robust ist oder nicht.
Das Robustifizieren von Neuronalen Netzen ist derzeit jedoch nur unbefriedigend gelöst.
Der Erfindung liegt die Aufgabe zu Grunde, ein Verfahren und eine Vorrichtung zum
funktionsspezifischen Robustifizieren eines Neuronalen Netzes zu schaffen.
Die Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des
Patentanspruchs 1 und eine Vorrichtung mit den Merkmalen des Patentanspruchs 14 gelöst. Ferner wird die Aufgabe erfindungsgemäß durch ein Computerprogrammprodukt mit den Merkmalen des Patentanspruchs 15 und ein computerlesbares Speichermedium mit den Merkmalen des Patentanspruchs 16 gelöst. Vorteilhafte Ausgestaltungen der Erfindung ergeben sich aus den Unteransprüchen.
Insbesondere wird ein Verfahren zum funktionsspezifischen Robustifizieren eines Neuronalen Netzes zur Verfügung gestellt, umfassend die Schritte:
a) Bereitstellen des Neuronalen Netzes, wobei das Neuronale Netz auf Grundlage eines Trainingsdaten umfassenden Trainingsdatensatzes trainiert wird oder trainiert wurde, b) Erzeugen mindestens eines veränderten Trainingsdatensatzes durch Manipulieren des Trainingsdatensatzes, wobei die Trainingsdaten hierzu jeweils unter Beibehaltung eines semantisch bedeutungsvollen Inhalts verändert werden,
c) Verändern von Parametern und/oder einer Architektur des Neuronalen Netzes in
Abhängigkeit eines Vergleichs zwischen einer Anwendung des ursprünglichen
Trainingsdatensatzes und des mindestens einen veränderten Trainingsdatensatzes auf das trainierte Neuronale Netz,
d) Trainieren des veränderten Neuronalen Netzes auf Grundlage des
Trainingsdatensatzes und zumindest eines Teils des mindestens einen veränderten Trainingsdatensatzes.
In einem weiteren Aspekt der Erfindung wird eine Vorrichtung zur Datenverarbeitung geschaffen, umfassend Mittel zur Ausführung der Verfahrensschritte des Verfahrens nach einer beliebigen der beschriebenen Ausführungsformen.
Weiter wird ein Computerprogramm geschaffen, umfassend Befehle, die bei der Ausführung des Computerprogramms durch einen Computer diesen veranlassen, die Verfahrensschritte des Verfahrens nach einer beliebigen der beschriebenen Ausführungsformen auszuführen.
Ferner wird ein computerlesbares Speichermedium geschaffen, umfassend Befehle, die bei der Ausführung durch einen Computer diesen veranlassen, die Verfahrensschritte des Verfahrens nach einer beliebigen der beschriebenen Ausführungsformen auszuführen.
Das Verfahren und die Vorrichtung ermöglichen es, eine Robustheit eines Neuronales Netzes, insbesondere eines Faltungsnetzes, gegenüber Störeinflüssen zu erhöhen. Hierzu wird ein Trainingsdatensatz, mit dem das Neuronale Netz trainiert wurde oder trainiert wird, verändert. Die an dem Trainingsdatensatz durchgeführten Veränderungen verändern hierbei nicht einen semantisch bedeutungsvollen Inhalt, sondern lediglich semantisch nicht bedeutungsvolle Inhalte. Ein semantisch bedeutungsvoller Inhalt bezeichnet hierbei insbesondere einen semantischen Kontext, der für eine Funktion des trainierten Neuronalen Netzes von Bedeutung ist. Der semantisch bedeutungsvolle Inhalt ist insbesondere der Inhalt, den die Funktion des trainierten Neuronalen Netzes im Rahmen einer semantischen Segmentierung bzw.
Klassifizierung erkennen soll. Im Gegensatz hierzu ist der semantisch nicht bedeutungsvolle Inhalt insbesondere ein Inhalt, der idealerweise beliebig ausgestaltet sein darf, ohne dass eine Funktion des trainierten Neuronalen Netzes hierdurch beeinträchtigt wird. Ein derart veränderter Trainingsdatensatz und der ursprüngliche Trainingsdatensatz werden anschließend auf das trainierte Neuronale Netz angewendet, das heißt die Trainingsdaten und die veränderten Trainingsdaten werden dem trainierten Neuronalen Netz jeweils als Eingangsdaten zugeführt. Anschließend wird das Neuronale Netz in Abhängigkeit eines Vergleichsergebnisses eines Vergleichs zwischen der Anwendung des ursprünglichen Trainingsdatensatzes und des mindestens einen veränderten Trainingsdatensatzes auf das trainierte Neuronale Netz verändert. Das Verändern erfolgt durch Verändern von Parametern des Neuronalen Netzes und/oder durch Verändern einer Architektur bzw. Struktur des Neuronalen Netzes. Hierdurch entsteht ein in seinen Parametern und/oder seiner Architektur bzw. Struktur verändertes Neuronales Netz. Das veränderte Neuronale Netz wird anschließend auf Grundlage des Trainingsdatensatzes und zumindest eines Teils des mindestens einen veränderten
Trainingsdatensatzes trainiert. Das trainierte veränderte Neuronale Netz wird anschließend bereitgestellt.
Der Vorteil des Verfahrens ist, dass eine Robustheit eines Neuronalen Netzes gegenüber gestörten Eingangsdaten verbessert werden kann, da Parameter und/oder eine Architektur bzw.
Struktur des Neuronalen Netzes in Abhängigkeit eines Vergleichsergebnisses eines Vergleichs zwischen einer Anwendung des ursprünglichen Trainingsdatensatzes und des mindestens einen veränderten (d.h. gestörten) Trainingsdatensatzes auf das trainierte Neuronale Netz erfolgt.
Ein Neuronales Netz ist insbesondere ein Künstliches Neuronales Netz, insbesondere ein Faltungsnetz (engl convolutional neural network). Das Neuronales Netz ist insbesondere auf eine bestimmte Funktion trainiert, beispielsweise eine Wahrnehmung von Fußgängern in erfassten Kamerabildern.
Die Trainingsdaten des Trainingsdatensatzes können eindimensional oder mehrdimensional ausgebildet sein, wobei die Trainingsdaten hinsichtlich eines semantisch bedeutungsvollen Inhalts markiert („gelabelt“) sind. Beispielsweise kann es sich bei den Trainingsdaten um erfasste und hinsichtlich eines semantisch bedeutungsvollen Inhalts (z.B. Fußgänger) markierte Kamerabilder handeln.
Zum Verändern der Trainingsdaten des Trainingsdatensatzes können verschiedene
Manipulationsverfahren eingesetzt werden. Hierbei ist insbesondere vorgesehen, dass ein semantisch bedeutungsvoller Inhalt der Trainingsdaten nicht verändert wird. Dies bedeutet insbesondere, dass nur nicht-relevante Kontextdimensionen verändert werden. Ist das
Neuronale Netz beispielsweise darauf trainiert, Fußgänger in erfassten Kamerabildern zu erkennen, so werden als Trainingsdaten verwendete Kamerabilder beim Verändern derart verändert, dass ein oder mehrere in einem erfassten Kamerabild vorhandene Fußgänger nicht oder nur in nicht relevanter Weise verändert werden. Im Beispiel der Kamerabilder können beispielsweise die folgenden Manipulationsverfahren verwendet werden: photometrische Manipulationsverfahren (z.B. eine Veränderung einer Helligkeit, eines Kontrastes, einer Sättigung), Rauschen und Unschärfe (z.B. Gaußsche Unschärfe, Gaußsches Rauschen, Salt & Pepper Rauschen) oder adversariale Manipulationsverfahren (z.B.„Fast Gradient Sign Method“). Ferner können als Manipulationsverfahren auch komplexere Verfahren angewendet werden, beispielsweise kann vorgesehen sein, eine Sommerszene in eine Wnterszene abzuändern, ohne dass ein semantisch bedeutungsvoller Inhalt (z.B. ein abgebildeter
Fußgänger) selbst entfernt wird. Weiter können beispielsweise Farben, Texturen oder sonstige Eigenschaften von Objekten und/oder Oberflächen der Objekte verändert werden,
beispielsweise kann eine Farbe eines Kraftfahrzeugs verändert werden oder ein
Reflexionsverhalten einer Oberfläche des Kraftfahrzeugs. Es können insbesondere die folgenden Manipulationen einzeln oder in Kombination miteinander vorgenommen werden: ein
hinzugefügtes Sensorrauschen in den Trainingsdaten, Kontrast-, Helligkeits- und/oder
Bildschärfeverschiebungen, Farbtonverschiebungen, Farbintensitätsverschiebungen,
Farbtiefeverschiebungen, Farbveränderungen einzelner (semantischer) Objekte, kleine Veränderungen an Objekten (z.B. Schmutz, eine Verbiegung, eine Spiegelung auf dem Objekt, Wettereinflüsse, Aufkleber oder Graffiti auf dem Objekt), eine Rotation und/oder eine
Verschiebung und/oder Verzerrungen in den Trainingsdaten, eine Veränderung der physikalischen Eigenschaften von Objekten (z.B. der Reflexionseigenschaften oder der Lackeigenschaften eines Kraftfahrzeugs etc.).
Zum Verändern der Parameter des Neuronalen Netzes und/oder der Architektur bzw. Struktur des Neuronalen Netzes können insbesondere die folgenden Verfahren verwendet werden:
- Verändern einer im Neuronalen Netz verwendeten Quantisierungsauflösung (z.B. durch Verändern eines verwendeten Datentyps),
- Pruning (Vereinfachen, Kürzen und Optimieren von Teilen des Neuronalen Netzes, beispielsweise durch Entfernen einzelner Neuronen oder von Bereichen des Neuronalen Netzes, welche besonders sensitiv auf die veränderten Trainingsdaten reagieren),
- Verändern der Gewichte im Neuronalen Netz (Verändern der Zahlenwerte der Gewichte),
- Verändern von Metaparametern (z.B. von Parametern von Faltungsschichten und von Aktivierungsfunktionen).
Das Verfahren wird insbesondere als computerimplementierte Erfindung ausgeführt.
Insbesondere wird das Verfahren mittels einer Recheneinrichtung, die auf einen Speicher zugreifen kann, ausgeführt. Die Recheneinrichtung kann als eine Kombination von Hardware und Software ausgebildet sein, beispielsweise als Programmcode, der auf einem
Mikrocontroller oder Mikroprozessor ausgeführt wird.
In einer Ausführungsform ist vorgesehen, dass die Schritte c) und d) solange wiederholt werden, bis mindestens ein Abbruchkriterium erfüllt ist. Hierdurch kann eine iterative
Optimierung bzw. Maximierung der Robustheit erzielt werden.
In einer Ausführungsform ist vorgesehen, dass auf Grundlage des Vergleichs ein
Robustheitsmaß für das Neuronale Netz bestimmt wird, wobei das Verändern auf Grundlage des bestimmten Robustheitsmaßes erfolgt. Als Robustheitsmaß kann beispielsweise eine reelle
Zahl zugeordnet werden, welche eine Beurteilung der Robustheit und einen Vergleich einer Robustheit unterschiedlicher Neuronaler Netze miteinander ermöglicht.
In einer weiterbildenden Ausführungsform ist vorgesehen, dass das Abbruchkriterium eine Konvergenz des bestimmten Robustheitsmaßes ist. Insbesondere wird hierbei überprüft, ob das Robustheitsmaß bei durchgeführten Iterationen des Verfahrens gegen einen Vorgabewert konvergiert.
In einer weiteren Ausführungsform ist vorgesehen, dass das Abbruchkriterium ein Erreichen eines Zielwertes für eine funktionale Güte des trainierten veränderten Neuronalen Netzes und/oder ein Erreichen eines Zielwertes für das bestimmte Robustheitsmaß ist.
In einer Ausführungsform ist vorgesehen, dass das Verändern der Parameter und/oder der Architektur bzw. Struktur neuronenweise und/oder bereichsweise getrennt erfolgt. Es kann beispielsweise vorgesehen sein, dass nur die auf die veränderten Trainingsdaten am sensitivsten reagierenden Neuronen und/oder Bereiche des Neuronalen Netzes verändert werden. Hierdurch wird es möglich, lediglich besonders betroffene Neuronen und/oder Bereiche beim Robustifizieren zu berücksichtigen, sodass ein Aufwand beim Verändern reduziert werden kann.
In einer Ausführungsform ist vorgesehen, dass beim Vergleichen mindestens eine
Aktivierungsdifferenz zwischen einer Aktivierung des Neuronalen Netzes durch die
Trainingsdaten des ursprünglichen Trainingsdatensatzes und einer Aktivierung durch die jeweils korrespondierenden Trainingsdaten des mindestens einen veränderten Trainingsdatensatzes bestimmt wird, wobei das Verändern auf Grundlage der bestimmten mindestens einen
Aktivierungsdifferenz erfolgt. Hierdurch kann ein Störeinfluss auf besonders aussagekräftige Weise bestimmt und analysiert werden. Eine Aktivierung wird insbesondere auf Grundlage von (inferierten) Werten an Ausgängen von Neuronen des Neuronalen Netzes bestimmt. Zum Bestimmen der Aktivierungsdifferenz werden insbesondere die (inferierten) Werte an den Ausgängen der Neuronen im Neuronalen Netz jeweils paarweise für die ursprünglichen und die veränderten Trainingsdaten miteinander verglichen.
In einer weiterbildenden Ausführungsform ist vorgesehen, dass Aktivierungsdifferenzen neuronenweise und/oder bereichsweise bestimmt und berücksichtigt werden. Dies ermöglicht es, von einer Manipulation der Trainingsdaten besonders betroffene bzw. sensitive Neuronen und/oder Bereiche des Neuronalen Netzes zu identifizieren. Insbesondere ermöglicht dies eine
detaillierte Analyse von sensitiven Neuronen und/oder Bereichen des Neuronalen Netzes, sodass diese beim nachfolgenden Verändern der Parameter und/oder der Architektur bzw. Struktur des Neuronalen Netzes bevorzugt berücksichtigt werden können. Hierzu werden beispielsweise jeweils Aktivierungsdifferenzen zwischen den Ausgängen der Neuronen des Neuronalen Netzes einzeln und/oder bereichsweise gebildet und bereitgestellt. Es kann beispielsweise vorgesehen sein, dass eine L2-Distanz (L2-Norm) zwischen
Aktivierungsvektoren gebildet wird, die eine Aktivierung der Neuronen oder Bereiche beschreiben.
Ist das Neuronale Netz als Faltungsnetz ausgebildet, so kann beispielsweise vorgesehen sein, dass eine Aktivierungsdifferenz für jeden Filter im Faltungsnetz bestimmt und bereitgestellt wird.
In einer Ausführungsform ist vorgesehen, dass bestimmte Aktivierungsdifferenzen jeweils über mehrere Neuronen und/oder über einen Bereich gemittelt berücksichtigt werden. Dies ermöglicht es, die Aktivierungsdifferenzen bzw. eine Sensitivität des Neuronalen Netzes effizienter zu analysieren und auszuwerten. Beispielsweise kann eine mittlere
Aktivierungsdifferenz für mehrere Neuronen und/oder Bereiche berechnet werden. Das Mitteln kann insbesondere mit Hilfe statistischer Verfahren erfolgen, beispielsweise kann zum Mitteln ein Erwartungswert bestimmt werden. Das anschließende Verändern der Parameter und/oder der Architektur bzw. Struktur des Neuronalen Netzes erfolgt dann ebenfalls auf Grundlage der gemittelten Aktivierungsdifferenzen, das heißt es werden dann auch sämtliche beim Mitteln berücksichtigten Neuronen bzw. der gesamte Bereich gemeinsam verändert.
In einer weiteren Ausführungsform ist vorgesehen, dass bestimmte Aktivierungsdifferenzen in Abhängigkeit einer Position einer zugehörigen Neuronenschicht innerhalb des Neuronalen Netzes gewichtet berücksichtigt werden. Dies ermöglicht es, einen zu erwartenden Einfluss auf die Ausgänge des Neuronalen Netzes zu berücksichtigen, denn in der Regel hat eine erhöhte Sensitivität einer Neuronenschicht in Eingangsnähe einen geringeren Einfluss auf ein von dem Neuronalen Netz geliefertes Endergebnis als eine erhöhte Sensitivität einer Neuronenschicht in Ausgangsnähe. Werden Aktivierungsdifferenzen von Neuronen und/oder von Bereichen des Neuronalen Netzes gemittelt, so kann die Gewichtung beim Mitteln entsprechend einer Position der Neuronenschicht im Neuronalen Netz berücksichtigt werden. Das Mitteln kann
insbesondere mit Hilfe statistischer Verfahren erfolgen, beispielsweise kann zum Mitteln ein Erwartungswert bestimmt werden.
In einer Ausführungsform ist vorgesehen, dass bestimmte Aktivierungsdifferenzen jeweils über mehrere Inferenzdurchläufe gemittelt berücksichtigt werden. Hierbei kann insbesondere
vorgesehen sein, dass die mehreren Inferenzdurchläufe jeweils für mit unterschiedlichen Manipulationsverfahren veränderte Trainingsdaten durchgeführt werden. Hierdurch können Aktivierungsdifferenzen einzelner Neuronen und/oder über mehrere Neuronen und/oder über Bereiche gemittelte Aktivierungsdifferenzen auch über mehrere Störeinflüsse gemittelt und berücksichtigt werden. Das Mitteln kann insbesondere mit Hilfe statistischer Verfahren erfolgen, beispielsweise kann zum Mitteln ein Erwartungswert bestimmt werden.
In einer weiteren Ausführungsform ist vorgesehen, dass bestimmte Aktivierungsdifferenzen jeweils in Abhängigkeit eines zugehörigen Manipulationsverfahrens gewichtet berücksichtigt werden. Beispielsweise können für mehrere Manipulationsverfahren jeweils für alle Neuronen im Neuronalen Netz die jeweiligen Aktivierungsdifferenzen bestimmt und jeweils in Abhängigkeit des zugehörigen Manipulationsverfahrens gewichtet werden. Dies ermöglicht das
Berücksichtigen sämtlicher verwendeter Manipulationsverfahren beim Verändern des
Neuronalen Netzes, wobei über die Gewichte ausgewählte Manipulationsverfahren stärker berücksichtigt werden können als andere, das heißt eine angestrebte Robustheit des
Neuronalen Netzes kann im Hinblick auf ein oder mehrere Manipulationsverfahren priorisiert werden.
In einer weiteren weiterbildenden Ausführungsform ist vorgesehen, dass Neuronen und/oder Bereiche des Neuronalen Netzes in Abhängigkeit der jeweils für diese bestimmten
Aktivierungsdifferenzen sortiert werden, wobei das Verändern auf Grundlage einer zugehörigen Rangfolge erfolgt. Es kann beispielsweise vorgesehen sein, alle (einzelnen oder gemittelten) Aktivierungsdifferenzen ihrem Betrag nach zu sortieren und entsprechend einer durch die Sortierung entstehenden Rangfolge bereitzustellen. Dies ermöglicht es, die am sensitivsten reagierenden Bereiche entweder über alle Manipulationsverfahren gemittelt oder für einzelne Manipulationsverfahren zu identifizieren. Beim nachfolgenden Verändern der Parameter und/oder der Architektur bzw. Struktur des Neuronalen Netzes kann dann beispielsweise vorgesehen sein, lediglich die sensitivsten, beispielsweise die oberen 5 % oder 10 %, der Neuronen oder Bereiche zu verändern, das restliche Neuronale Netz jedoch unverändert zu lassen.
Nachfolgend wird die Erfindung anhand bevorzugter Ausführungsbeispiele unter Bezugnahme auf die Figuren näher erläutert. Hierbei zeigen:
Fig. 1 eine schematische Darstellung einer Vorrichtung zum Ausführen des Verfahrens;
Fig. 2 ein schematisches Flussdiagramm einer Ausführungsform des Verfahrens zum funktionsspezifischen Robustifizieren eines Neuronalen Netzes;
Fig. 3 ein schematisches Ablaufdiagramm einer Ausführungsform des Verfahrens zum funktionsspezifischen Robustifizieren eines Neuronalen Netzes;
Fig. 4 eine schematische Darstellung von jeweils für einzelne Filter eines Faltungsnetzes bestimmten Aktivierungsdifferenzen;
Fig. 5 eine schematische Darstellung von jeweils für einzelne Filter eines Faltungsnetzes bestimmten Aktivierungsdifferenzen in Abhängigkeit von unterschiedlichen
Manipulationsverfahren.
In Fig. 1 ist eine schematische Darstellung einer Vorrichtung 30 zum Ausführen des Verfahrens gezeigt. Die Vorrichtung 30 umfasst Mittel 31 zum Ausführen des Verfahrens. Die Mittel 31 umfassen eine Recheneinrichtung 32 und einen Speicher 33. Zum Durchführen der
Verfahrensschritte kann die Recheneinrichtung 32 auf den Speicher 33 zugreifen und in diesem Rechenoperationen durchführen.
In dem Speicher 33 sind ein Neuronales Netz 1 und ein Trainingsdatensatz 2 hinterlegt. Die Recheneinrichtung 32 erzeugt mindestens einen veränderten Trainingsdatensatz 4 durch Manipulieren des Trainingsdatensatzes 2, wobei die Trainingsdaten hierzu jeweils unter Beibehaltung eines semantisch bedeutungsvollen Inhalts verändert werden, wobei auch der mindestens eine veränderte Trainingsdatensatz 4 in dem Speicher 33 hinterlegt ist.
Die Recheneinrichtung 32 wendet den Trainingsdatensatz 2 und den veränderten
Trainingsdatensatz 4 auf das Neuronale Netz 1 an, indem die jeweiligen Trainingsdaten den Eingängen des Neuronalen Netzes 1 zugeführt werden und durch das Neuronale Netz 1 hindurch propagiert werden. In Abhängigkeit eines Vergleichsergebnisses eines Vergleichs zwischen einer Anwendung des ursprünglichen Trainingsdatensatzes 2 und des mindestens einen veränderten Trainingsdatensatzes 4 auf das trainierte Neuronale Netz 1 verändert die Recheneinrichtung 32 Parameter und/oder eine Architektur bzw. Struktur des Neuronalen Netzes 1. Das veränderte Neuronale Netz 10 ist ebenfalls im Speicher 33 hinterlegt. Nach dem Verändern trainiert die Recheneinrichtung 32 das veränderte Neuronalen Netz 10 auf
Grundlage des Trainingsdatensatzes 2 und zumindest eines Teils des mindestens einen veränderten Trainingsdatensatzes 4. Das trainierte veränderte Neuronale Netz 12 wird
anschließend bereitgestellt, beispielsweise in Form eines digitalen Datenpakets, welches eine Architektur bzw. Struktur und Parameter und Gewichtungen des trainierten veränderten Neuronalen Netzes 12 beschreibt.
Es kann vorgesehen sein, dass beim Vergleichen mindestens eine Aktivierungsdifferenz zwischen einer Aktivierung des Neuronalen Netzes 1 durch die Trainingsdaten des
ursprünglichen Trainingsdatensatzes 2 und einer Aktivierung durch die jeweils
korrespondierenden Trainingsdaten des mindestens einen veränderten Trainingsdatensatzes 4 bestimmt wird, wobei das Verändern der Parameter und/oder der Architektur bzw. Struktur des Neuronalen Netzes 1 auf Grundlage der bestimmten mindestens einen Aktivierungsdifferenz erfolgt.
In Fig. 2 ist ein schematisches Flussdiagramm zum Verdeutlichen einer Ausführungsform des Verfahrens zum funktionsspezifischen Robustifizieren eines Neuronalen Netzes 1 gezeigt. Das Neuronale Netz 1 ist hierbei bereits auf Grundlage eines Trainingsdatensatzes 2 trainiert.
Es wird mindestens ein veränderter Trainingsdatensatz 4 durch Manipulieren des
Trainingsdatensatzes 2 mittels eines Manipulationsverfahrens 3 erzeugt, wobei die im
Trainingsdatensatz 2 enthaltenen Trainingsdaten hierzu jeweils unter Beibehaltung eines semantisch bedeutungsvollen Inhalts verändert werden.
Der Trainingsdatensatz 2 und der veränderte Trainingsdatensatz 4 werden jeweils auf das Neuronale Netz 1 angewendet, das heißt diese werden dem Neuronalen Netz 1 jeweils als Eingangsdaten zugeführt, wobei die Eingangsdaten durch das Neuronale Netz 1 im Rahmen einer Feed-Forward-Folge hindurch propagiert werden, sodass an einem Ausgang des Neuronalen Netzes 1 inferierte Ergebnisse bereitgestellt werden können.
Handelt es sich bei den Trainingsdaten beispielsweise um erfasste Kamerabilder, so wird dem Neuronalen Netz 1 jeweils ein ungestörtes Kamerabild des ursprünglichen
Trainingsdatensatzes 2 zugeführt. Ferner wird dem Neuronalen Netz 1 (anschließend) ein manipuliertes bzw. gestörtes Kamerabild aus dem veränderten Trainingsdatensatz 4 zugeführt. Hierbei werden für einzelne Neuronen und/oder Bereiche des Neuronalen Netzes 1 jeweils Aktivierungen 5 bestimmt und jeweils paarweise (ungestörtes Kamerabild / gestörtes
Kamerabild) miteinander verglichen, beispielsweise in einem Differenzbildungsschritt 6. Dieser Differenzbildungsschritt 6 liefert für betrachtete Neuronen und/oder Bereiche des Neuronalen Netzes 1 jeweils Aktivierungsdifferenzen 7.
In einem Veränderungsschritt 8 werden Parameter und/oder eine Architektur bzw. Struktur des Neuronalen Netzes 1 verändert. Das Verändern erfolgt hierbei in Abhängigkeit der bestimmten Aktivierungsdifferenzen 7.
Das derart veränderte Neuronale Netz 10 wird anschließend in einem Trainingsschritt 11 auf Grundlage des Trainingsdatensatzes 2 und zumindest eines Teils des mindestens einen veränderten Trainingsdatensatzes 4 trainiert und als trainiertes verändertes Neuronales Netz 12 bereitgestellt.
Es ist insbesondere vorgesehen, dass das Verändern der Parameter und/oder der Architektur bzw. Struktur neuronenweise und/oder bereichsweise getrennt erfolgt. Hierbei ist vorgesehen, dass Aktivierungsdifferenzen 7 entsprechend neuronenweise und/oder bereichsweise bestimmt und berücksichtigt werden.
Es ist vorgesehen, dass das Verändern und das Trainieren des veränderten Neuronalen Netzes 10 solange wiederholt werden, bis mindestens ein Abbruchkriterium 13 erfüllt ist.
Es kann vorgesehen sein, dass auf Grundlage des Vergleichs, beispielsweise auf Grundlage der bestimmten Aktivierungsdifferenzen 7, ein Robustheitsmaß 9 für das Neuronale Netz 1 bestimmt wird, wobei das Verändern auf Grundlage des bestimmten Robustheitsmaßes 9 erfolgt.
Es kann dann weiterbildend vorgesehen sein, dass das Abbruchkriterium 13 eine Konvergenz des bestimmten Robustheitsmaßes 9 ist.
Ferner kann vorgesehen sein, dass das Abbruchkriterium 13 ein Erreichen eines Zielwertes für eine funktionale Güte des trainierten veränderten Neuronalen Netzes 12 und/oder ein Erreichen eines Zielwertes für das bestimmte Robustheitsmaß 9 ist.
Es kann vorgesehen sein, dass bestimmte Aktivierungsdifferenzen 7 jeweils über mehrere Neuronen und/oder über einen Bereich gemittelt berücksichtigt werden.
Ferner kann vorgesehen sein, dass bestimmte Aktivierungsdifferenzen 7 in Abhängigkeit einer Position einer zugehörigen Neuronenschicht innerhalb des Neuronalen Netzes 1 gewichtet berücksichtigt werden.
Es kann vorgesehen sein, dass bestimmte Aktivierungsdifferenzen 7 jeweils über mehrere Inferenzdurchläufe gemittelt berücksichtigt werden. Weiterbildend kann vorgesehen sein, dass bestimmte Aktivierungsdifferenzen 7 jeweils in Abhängigkeit eines zugehörigen
Manipulationsverfahrens 3 gewichtet berücksichtigt werden.
Es kann ferner vorgesehen sein, dass Neuronen und/oder Bereiche des Neuronalen Netzes 1 in Abhängigkeit der jeweils für diese bestimmten Aktivierungsdifferenzen 7 sortiert werden, wobei das Verändern auf Grundlage einer zugehörigen Rangfolge erfolgt. Es kann
beispielsweise vorgesehen sein, alle (einzelnen oder gemittelten) Aktivierungsdifferenzen 7 ihrem Betrag nach zu sortieren und entsprechend einer durch die Sortierung entstehenden Rangfolge bereitzustellen. Dies ermöglicht es, die am sensitivsten reagierenden Neuronen und/oder Bereiche entweder über alle Manipulationsverfahren 3 gemittelt oder für einzelne Manipulationsverfahren 3 zu identifizieren. Beim nachfolgenden Verändern der Parameter und/oder der Architektur bzw. Struktur des Neuronalen Netzes 1 kann dann beispielsweise vorgesehen sein, lediglich die oberen 5 % oder 10 % der sensitivsten Neuronen oder Bereiche zu verändern, das restliche Neuronale Netz 1 jedoch unverändert zu lassen.
In Fig. 3 ist ein schematisches Ablaufdiagramm einer Ausführungsform des Verfahrens zum funktionsspezifischen Robustifizieren eines Neuronalen Netzes gezeigt.
In einem Verfahrensschritt 100 wird ein Neuronalen Netz bereitgestellt. Eine Struktur und Gewichtungen des Neuronalen Netzes sind beispielsweise in einem Speicher eines Computers hinterlegt. Das Neuronale Netz ist entweder bereits auf Grundlage eines Trainingsdaten umfassenden Trainingsdatensatzes trainiert oder wird im Rahmen des Verfahrensschritts 100 auf Grundlage des Trainingsdatensatzes trainiert. Das Neuronale Netz ist beispielsweise darauf trainiert, erfasste Kamerabilder auszuwerten und festzustellen, ob ein Fußgänger in den Kamerabildern abgebildet ist. Die Eingangsdaten des Neuronalen Netzes sind daher zweidimensionale Kamerabilder. Entsprechend sind die Trainingsdaten des
Trainingsdatensatzes markierte („gelabelte“) Kamerabilder.
In einem Verfahrensschritt 101 werden mehrere veränderte Trainingsdatensätze durch
Manipulieren des Trainingsdatensatzes erzeugt, wobei die Trainingsdaten hierzu jeweils unter Beibehaltung eines semantisch bedeutungsvollen Inhalts (z.B. Fußgänger in den
Kamerabildern) verändert werden. Die Kamerabilder, welche die Trainingsdaten des
Trainingsdatensatzes bilden, werden hierzu mit Hilfe von Manipulationsverfahren verändert.
Zum Verändern der Kamerabilder können beispielsweise die folgenden Manipulationen einzeln oder in Kombination durchgeführt werden:
- Hinzufügen eines Rauschens in den Kamerabildern (z.B. Gaußsches Rauschen, Salt & Pepper-Rauschen),
- Kontrast- und/oder Bildschärfeverschiebungen,
- Farbtonverschiebungen,
- Farbintensitätsverschiebungen, Farbtiefeverschiebungen,
- Farbveränderungen an einzelnen semantischen Objekten (z.B. abgebildete
Kraftfahrzeuge, Gebäude etc. in den Kamerabildern),
- Hinzufügen von Verschmutzungen auf abgebildeten Objekten (z.B. Schmutz,
Wettereinflüsse [Regen, Schnee], Aufkleber, Graffiti,...),
- Rotationen, Verschiebungen und/oder Verzerrungen von Teilen der Kamerabilder,
- Veränderung von physikalischen Eigenschaften von abgebildeten Objekten in den Kamerabildern (Lackeigenschaften, Reflexionseigenschaften,...).
In einem Verfahrensschritt 102 werden die Trainingsdaten des Trainingsdatensatzes und jeweils zugehörige veränderte Trainingsdaten des veränderten Trainingsdatensatzes dem Neuronalen Netz als Eingangsdaten zugeführt, das heißt es werden auf Grundlage dieser Eingangsdaten Ausgangsdaten mittels des trainierten Neuronalen Netzes inferiert. Hierbei wird mindestens eine Aktivierungsdifferenz zwischen einer Aktivierung des Neuronalen Netzes durch die Trainingsdaten des ursprünglichen Trainingsdatensatzes und einer Aktivierung durch die jeweils korrespondierenden veränderten Trainingsdaten der veränderten Trainingsdatensätze bestimmt.
Das Bestimmen der Aktivierungsdifferenz(en) kann sowohl neuronenweise als auch über Bereiche des Neuronalen Netzes gemittelt erfolgen.
Bei einem als Faltungsnetz ausgebildeten Neuronalen Netz kann beispielsweise vorgesehen sein, Aktivierungsdifferenzen für die einzelnen Filter des Faltungsnetzes zu bestimmen. Eine Metrik zum Bestimmen der Aktivierungsdifferenzen der einzelnen Filter ist beispielsweise die folgende:
Hierbei ist di die Aktivierungsdifferenz des Filters mit dem Index /, (.,.) eine
Aktivierungsdifferenzfunktion, f(x) eine Ausgangsfunktion des Filters mit dem Index /, Wi x H, eine Größe der Ausgangs-Feature Map des Filters mit dem Index /, N eine Anzahl von Bildern, x„ das ursprüngliche Kamerabild (d.h. das ursprüngliche Trainingsdatum), Ax„ das veränderte Kamerabild (d.h. das veränderte Trainingsdatum) und f(x) eine Ausgangsfunktion des Filters mit dem Index i. Es kann prinzipiell jedoch auch eine andere Metrik verwendet werden.
Ein beispielhaftes Ergebnis von Aktivierungsdifferenzen für jeden der Filter in einem
Faltungsnetz ist schematisch in der Fig. 4 gezeigt, wobei die x-Achse 20 den Index i der Filter im Faltungsnetz und die y-Achse 21 eine normierte Aktivierungsdifferenz zeigt. Die
Aktivierungsdifferenzen sind hierbei auf eine maximale Aktivierungsdifferenz normiert. Zum Manipulieren wurde beispielhaft eine Helligkeit in Kamerabildern des Trainingsdatensatzes verändert. Es ist in diesem Beispiel zu erkennen, dass das Faltungsnetz insbesondere bei den Filtern um den Filterindex von 1000 herum besonders sensitiv bzw. wenig robust ausgebildet ist.
In einem Verfahrensschritt 103 werden Parameter und/oder eine Architektur des Neuronalen Netzes in Abhängigkeit der jeweils bestimmten Aktivierungsdifferenzen verändert. Zum
Verändern der Parameter des Neuronalen Netzes und/oder der Architektur bzw. Struktur des Neuronalen Netzes können insbesondere die folgenden Verfahren verwendet werden:
- Verändern einer im Neuronalen Netz verwendeten Quantisierungsauflösung (z.B. durch Verändern eines verwendeten Datentyps),
- Pruning (Vereinfachen, Kürzen und Optimieren von Teilen des Neuronalen Netzes, beispielsweise durch Entfernen einzelner Neuronen oder von Bereichen des Neuronalen Netzes, welche besonders sensitiv auf die veränderten Trainingsdaten reagieren),
- Verändern der Gewichte im Neuronalen Netz (Verändern der Zahlenwerte der Gewichte),
- Verändern von Metaparametern (z.B. von Hyperparametern von Faltungsschichten und Verändern von Aktivierungsfunktionen).
Anschließend wird das veränderte Neuronale Netz in einem Verfahrensschritt 104 auf
Grundlage des Trainingsdatensatzes und zumindest eines Teils des mindestens einen veränderten Trainingsdatensatzes trainiert.
In einem Verfahrensschritt 105 wird überprüft, ob mindestens ein Abbruchkriterium erfüllt ist.
Das Abbruchkriterium kann beispielsweise eine Konvergenz eines bestimmten
Robustheitsmaßes sein. Alternativ oder zusätzlich kann das Abbruchkriterium auch ein
Erreichen eines Zielwertes für eine funktionale Güte des trainierten veränderten Neuronalen Netzes und/oder ein Erreichen eines Zielwertes für das bestimmte Robustheitsmaß sein.
Ist das Abbruchkriterium erfüllt, so wird das trainierte veränderte Neuronale Netz in einem Verfahrensschritt 106 ausgeben, beispielsweise in Form eines digitalen Datenpakets, dass die Architektur bzw. Struktur und Parameter und Gewichtungen des trainierten veränderten Neuronalen Netzes beschreibt.
Ergibt die Überprüfung in Verfahrensschritt 105 hingegen, dass das Abbruchkriterium nicht erfüllt ist, so werden die Verfahrensschritte 103 und 104 erneut durchgeführt, das heißt das Neuronale Netz wird erneut verändert und anschließend trainiert. Auf diese Weise kann eine Robustheit des Neuronalen Netzes iterativ erhöht werden.
Es kann im Verfahrensschritt 102 vorgesehen sein, dass bestimmte Aktivierungsdifferenzen jeweils über mehrere Neuronen und/oder über einen Bereich gemittelt werden, wobei jeweils die gemittelten Aktivierungsdifferenzen bereitgestellt und beim Verändern in
Verfahrensschritt 103 berücksichtigt werden.
Es kann im Verfahrensschritt 102 ferner vorgesehen sein, dass bestimmte
Aktivierungsdifferenzen in Abhängigkeit einer Position einer zugehörigen Neuronenschicht innerhalb des Neuronalen Netzes gewichtet bereitgestellt werden und in Verfahrensschritt 103 beim Verändern berücksichtigt werden. Insbesondere werden Aktivierungsdifferenzen von Neuronen oder Bereichen in Neuronenschichten, die näher am Eingang des Neuronalen Netzes liegen, weniger stark gewichtet als Aktivierungsdifferenzen von Neuronen oder Bereichen in Neuronenschichten, die näher am Ausgang des Neuronalen Netzes liegen. Einer Sensitivität von Neuronenschichten, die näher am Ausgang des Neuronalen Netzes liegen, kann hierdurch ein größerer Einfluss bei der Beurteilung und Erhöhung der Robustheit gegeben werden.
Es kann im Verfahrensschritten 102 weiter vorgesehen sein, dass Aktivierungsdifferenzen jeweils über mehrere Inferenzdurchläufe gemittelt werden, wobei jeweils die gemittelten Aktivierungsdifferenzen bereitgestellt und beim Verändern berücksichtigt werden. Insbesondere kann über die Inferenzdurchläufe von veränderten Trainingsdaten, welche mit unterschiedlichen Manipulationsverfahren verändert wurden, gemittelt werden. Hierdurch kann die Robustheit gemittelt über die einzelnen Manipulationsverfahren beurteilt und beim Verändern berücksichtigt werden. Beispielsweise wird hierzu ein Erwartungswert für die auf Grundlage der veränderten
Trainingsdaten jeweils bestimmten Aktivierungsdifferenzen (d.h. für ein einzelnes Neuron oder für gemittelte Bereiche) bestimmt.
Es kann in den Verfahrensschritt 102 und 103 weiter vorgesehen sein, dass bestimmte
Aktivierungsdifferenzen jeweils in Abhängigkeit eines zugehörigen Manipulationsverfahrens bereitgestellt und berücksichtigt werden. Dies ist beispielhaft in der Fig. 5 dargestellt, in der für verschiedene Manipulationsverfahren nach der oben angegebenen Metrik bestimmte
Aktivierungsdifferenzen für einzelne Filter eines Faltungsnetzes gezeigt sind, wobei die x- Achse 20 den Index i der Filter im Faltungsnetz und die y-Achse 21 eine auf die maximale Aktivierungsdifferenz normierte Aktivierungsdifferenz zeigt. Es ist deutlich zu erkennen, dass die Aktivierungsdifferenzen für verschiedene Manipulationsverfahren unterschiedliche Bereiche des als Faltungsnetzes ausgebildeten Neuronalen Netzes betreffen. So betrifft beispielsweise ein Hinzufügen von Rauschen (Fig. 5:„Gaußsches Rauschen“ und„Salt & Pepper“) fast alle Filter mehr oder weniger gleich stark. Hingegen reagieren auf eine Erhöhung der Farbsättigung („Sättigung†“) besonders die Filter mit kleinem Index (i < 1000) sensitiv. Umgekehrt reagieren auf eine adversariale Attacke mittels der„Fast Gradient Sign Method“ („FGSM“) besonders die Filter mit großem Index (i > 3000) sensitiv.
Es kann weiterbildend vorgesehen sein, dass die bestimmten Aktivierungsdifferenzen in Abhängigkeit eines jeweils zugehörigen Manipulationsverfahrens gewichtet bereitgestellt und beim Verändern in Verfahrensschritt 103 berücksichtigt werden. In dem in Fig. 5 gezeigten Beispiel würden die einzelnen Aktivierungsdifferenzen in Abhängigkeit des jeweils zugehörigen Manipulationsverfahrens mit einem Gewichtungskoeffizienten multipliziert und die Produkte anschließend für die einzelnen Filter aufsummiert werden. Das Ergebnis ließe sich in gleicher Weise grafisch darstellen und zeigt eine über die verwendeten Manipulationsverfahren gemittelte Sensitivität des Neuronalen Netzes. Hierdurch kann das Verändern in
Verfahrensschritt 103 in Abhängigkeit der über mehrere Manipulationsverfahren gemittelten Aktivierungsdifferenzen erfolgen, sodass eine Robustheit des Neuronalen Netzes gegenüber sämtlichen betrachteten Manipulationsverfahren im Mittel gesteigert werden kann.
Es kann ferner vorgesehen sein, dass Neuronen und/oder Bereiche des Neuronalen Netzes in Abhängigkeit der jeweils für diese bestimmten Aktivierungsdifferenzen sortiert werden und eine zugehörige Rangfolge bereitgestellt wird. Beispielweise können die in den Figuren 4 und 5 gezeigten und mit einem Index i der Filter versehenen Aktivierungsdifferenzen nach ihrer jeweiligen Höhe sortiert und eine der Sortierung entsprechende Rangfolge gebildet werden. Anschließend kann eine Anzahl der Filter mit den größten Aktivierungsdifferenzen identifiziert
werden. Beim nachfolgenden Verändern der Parameter und/oder der Architektur bzw. Struktur des Neuronalen Netzes im Verfahrensschritt 103 kann dann beispielsweise vorgesehen sein, lediglich die oberen 5 % oder 10 % der sensitivsten Neuronen oder Bereiche zu verändern, das restliche Neuronale Netz jedoch unverändert zu lassen. Eine Optimierung bzw. Erhöhung der Robustheit kann hierdurch zielgerichteter und effizienter erfolgen.
Bezugszeichenliste
Neuronales Netz
Trainingsdatensatz
Manipulationsverfahren
veränderter Trainingsdatensatz
Aktivierung
Differenzbildungsschritt
Aktivierungsdifferenz
Veränderungsschritt
Robustheitsmaß
verändertes Neuronales Netz
Trainingsschritt
trainiertes verändertes Neuronales Netz
Abbruchkriterium
x-Achse (Filterindex)
y-Achse (normierte Aktivierungsdifferenz)
Vorrichtung
Mittel
Recheneinrichtung
Speicher
-106 Verfahrensschritte