DE102021125856A1 - Erkennen von feindlichen angriffen auf ein tiefes neuronales netz (deep neural network (dnn)) - Google Patents

Erkennen von feindlichen angriffen auf ein tiefes neuronales netz (deep neural network (dnn)) Download PDF

Info

Publication number
DE102021125856A1
DE102021125856A1 DE102021125856.1A DE102021125856A DE102021125856A1 DE 102021125856 A1 DE102021125856 A1 DE 102021125856A1 DE 102021125856 A DE102021125856 A DE 102021125856A DE 102021125856 A1 DE102021125856 A1 DE 102021125856A1
Authority
DE
Germany
Prior art keywords
dnn
hostile
input
training
classifier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021125856.1A
Other languages
English (en)
Inventor
Jialong Zhang
Zhongshu Gu
Jiyong Jang
Marc Philippe Stoecklin
Ian Michael Molloy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102021125856A1 publication Critical patent/DE102021125856A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2433Single-class perspective, e.g. one-against-all classification; Novelty detection; Outlier detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Analysis (AREA)

Abstract

Ein Verfahren, eine Vorrichtung und ein Computerprogrammprodukt zum Schützen eines tiefen neuronalen Netzes (deep neural network (DNN)) mit einer Mehrzahl von Schichten, einschließlich einer oder mehrerer Zwischenschichten. In diesem Ansatz wird ein Trainingsdatensatz empfangen. Während des Trainierens des DNNs unter Verwendung des empfangenen Trainingsdatensatzes wird eine Darstellung von Aktivierungen aufgezeichnet, die einer Zwischenschicht zugeordnet sind. Für mindestens eine oder mehrere der Darstellungen wird ein separater Klassifikator (Modell) trainiert. Die Klassifikatoren werden gemeinsam verwendet, um ein Ausreißer-Erkennungsmodell zu trainieren. Auf das Trainieren folgend wird das Ausreißer-Erkennungsmodell verwendet, um eine feindliche Eingabe in das tiefe neuronale Netz zu erkennen. Das Ausreißer-Erkennungsmodell erzeugt eine Vorhersage und einen Indikator, ob eine gegebene Eingabe die feindliche Eingabe ist. Gemäß einem weiteren Aspekt wird eine Aktion vorgenommen, um ein eingesetztes System, das dem DNN zugeordnet ist, als Reaktion auf die Erkennung der feindlichen Eingabe zu schützen.

Description

  • HINTERGRUND
  • Technisches Gebiet
  • Diese Offenbarung bezieht sich allgemein auf die Informationssicherheit und insbesondere auf das Schützen von Maschinenlernmodellen gegen unrechtmäßige Reproduktion, Verbreitung und Verwendung.
  • Hintergrund des Standes der Technik
  • Maschinenlerntechnologien, die Hauptkomponenten vom Diensten künstlicher Intelligenz (Artificial Intelligence (AI)) sind, haben großen Erfolg beim Bereitstellen von Fähigkeiten auf Menschenebene für eine Vielfalt von Aufgaben gezeigt, wie beispielsweise Bilderkennung, Spracherkennung und Verarbeitung natürlicher Sprache und weiteren. Die meisten wichtigen Technologiefirmen bauen ihre AI-Produkte und Dienstleistungen mit tiefen neuronalen Netzen (DNNs) als die Hauptkomponenten auf. Das Aufbauen eines Tiefenlernmodells auf Produktionsebene ist eine nichttriviale Aufgabe, die eine große Menge an Trainingsdaten, leistungsstarke Datenverarbeitungsressourcen und menschliches Fachwissen erfordert. Zum Beispiel ist das Inception-v4-Modell von Google ein wegbereitendes konvolutionales neuronales Netz (Convolutional Neural Network (CNN)), das für eine Bildklassifizierung gestaltet ist; eine Erzeugung eines Modells aus diesem Netz dauert mehrere Tage bis mehrere Wochen auf mehreren GPUs mit einem Bilddatensatz, der Millionen von Bildern besitzt. Zusätzlich erfordert das Gestalten eines Tiefenlernmodells signifikantes Fachwissen zu maschinellem Lernen und zahlreiche Versuch-und-Irrtum-Iterationen zum Definieren von Modellarchitekturen und Auswählen von Modell-Hyper-Parametern.
  • Trotz ihrer signifikanten Leistungsfähigkeit bei vielen Aufgaben, hat die jüngste Forschung gezeigt, dass DNNs verletzlich gegenüber feindlichen Angriffen sind, wobei die Angriffe gestaltet sind, um absichtlich kleine Störungen (auch als „feindliche Beispiele“ (adversarial examples) bekannt) in die Eingabedaten eines DNNs einzufügen, um Fehlklassifizierungen zu verursachen. Solche Angriffe sind besonders gefährlich, wenn das Ziel-DNN in einer kritischen Anwendung verwendet wird, wie beispielsweise autonomes Fahren, Robotik, visuelle Berechtigungsprüfung und Identifikation und weitere. In einem berichteten Beispiel wurde gezeigt, dass ein feindlicher Angriff auf ein DNN-Modell für autonomes Fahren verursachte, dass das Ziel-DNN ein Stoppschild als Geschwindigkeitsbegrenzung fehlklassifizierte, was einen gefährlichen Fahrzustand erzeugte.
  • Mehrere Verteidigungsformen gegen feindliche Angriffe wurden ebenfalls vorgeschlagen, einschließlich feindliches Training, Eingabevorverarbeitung und eine andere Modellerhärtung. Obwohl es diese Verteidigungen für Angreifer schwieriger machten, feindliche Beispiele zu erzeugen, wurde gezeigt, dass diese Verteidigungen immer noch verletzlich sind und dass sie immer noch erfolgreiche feindliche Angriffe erzeugen.
  • Somit bleibt ein Bedarf im Stand der Technik, Techniken bereitzustellen, um feindliche Angriff zu beheben, die auf tiefe neuronale Netze abzielen.
  • KU RZDARSTELLU NG
  • Die Technik hierin leitet sich von einer Einsicht über die Natur feindlicher Angriffe im Allgemeinen ab, nämlich dass solche Angriffe üblicherweise nur die endgültige Zielkennzeichnung in dem DNN garantieren, wohingegen die Kennzeichnungen von Zwischendarstellungen nicht garantiert sind. Gemäß dieser Offenbarung wird diese Inkonsistenz dann als ein Indikator eingesetzt, dass ein feindlicher Angriff auf das DNN vorliegt. Eine zugehörige Einsicht liegt darin, dass selbst für die letzte (Ausgabe-) DNN-Schicht ein feindlicher Angriff nur eine feindliche Zielkennzeichnung garantiert, aber Korrelationen zwischen anderen Zwischen- (oder sekundären) Vorhersagen ignoriert. Diese zusätzliche Inkonsistenz wird dann als weiterer (oder sekundärer) Indikator (oder eine Bestätigung) des feindlichen Angriffs benutzt. Dementsprechend untersucht der Ansatz hierin vorzugsweise Kennzeichnung und optionale Korrelationskonsistenz innerhalb des DNNs selbst, um den Angriffsindikator bereitzustellen.
  • In einem üblichen Anwendungsfall ist das DNN einem eingesetzten System zugeordnet. Bei Erkennen des feindlichen Angriffs und gemäß einem weiteren Aspekt dieser Offenbarung wird dann eine gegebene Aktion in Bezug auf das eingesetzte System unternommen. Die Natur der gegebenen Aktion ist umsetzungsspezifisch, schließt aber ohne Einschränkung ein Ausgeben einer Benachrichtigung/Warnung, ein Verhindern, dass der Feind Eingaben bereitstellt, von denen bestimmt ist, dass sie feindliche Eingaben sind, ein Unternehmen einer Aktion zum Schützen des eingesetzten Systems, ein Unternehmen einer Aktion zum Umtrainieren oder anderweitigen Schützen (Erhärten) des DNNs, Sandboxing des Feindes und so fort ein.
  • Im Vorhergehenden wurden manche der relevanten Merkmale des Gegenstandes umrissen. Diese Merkmale sollten als lediglich veranschaulichend angesehen werden. Viele andere vorteilhafte Ergebnisse können durch Anwenden des offenbarten Gegenstandes in einer anderen Weise oder durch Modifizieren des Gegenstandes erzielt werden, wie beschrieben wird.
  • Figurenliste
  • Für ein vollständigeres Verständnis des Gegenstandes und dessen Vorteile wird nun auf die folgenden Beschreibungen in Verbindung mit den begleitenden Zeichnungen Bezug genommen, in denen:
    • 1 eine beispielhaftes Blockschaubild einer verteilten Datenverarbeitungsumgebung darstellt, in der Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können;
    • 2 ein beispielhaftes Blockschaubild eines Datenverarbeitungssystems ist, in dem beispielhafte Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können;
    • 3 ein DNN darstellt, das einen Satz von Schichten aufweist;
    • 4 ein DNN darstellt, das als Front-End einer Steuerung eines eingesetzten Systems agiert;
    • 5 einen Prozessablauf gemäß der Technik dieser Offenbarung darstellt, ein Ausreißer-Erkennungsmodell wird erzeugt, indem eine Konsistenz verborgener Schichten bewertet wird; und
    • 6 eine detaillierte Darstellung einer bevorzugten Technik zum Aufbauen eines Ausreißer-Erkennungsmodells gemäß einer bevorzugten Ausführungsform dieser Offenbarung bereitstellt.
  • DETAILLIERTE BESCHREIBUNG EINER VERANSCHAULICHENDEN AUSFÜHRUNGSFORM
  • Unter Bezugnahme auf die Zeichnungen und insbesondere unter Bezugnahme auf 1 bis 2 werden beispielhafte Schaubilder von Datenverarbeitungsumgebungen bereitgestellt, in denen veranschaulichende Ausführungsformen der Offenbarung umgesetzt werden können. Es versteht sich, dass 1 bis 2 nur beispielhaft sind und keine Einschränkungen in Hinblick auf die Umgebungen zusichern oder implizieren sollen, in denen Aspekte oder Ausführungsformen des offenbarten Gegenstands umgesetzt werden können. Viele Modifikationen der dargestellten Ausführungsformen können vorgenommen werden, ohne vom Geist und Umfang der vorliegenden Erfindung abzuweichen.
  • Unter Bezugnahme auf die Zeichnungen zeigt nun 1 eine bildliche Darstellung eines beispielhaften verteilten Datenverarbeitungssystems, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Ein verteiltes Datenverarbeitungssystem 100 kann ein Netzwerk von Computern enthalten, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Das verteilte Datenverarbeitungssystem 100 beinhaltet mindestens ein Netzwerk 102, welches das Medium ist, das verwendet wird, um Datenübertragungsverbindungen zwischen verschiedenen Einheiten und Computern bereitzustellen, die innerhalb des verteilten Datenverarbeitungssystems 100 miteinander verbunden sind. Das Netzwerk 102 kann Verbindungen wie Kabel, kabellose Kommunikationsverbindungen oder Lichtwellenleiter enthalten.
  • Im abgebildeten Beispiel sind ein Server 104 und ein Server 106 zusammen mit einer Speichereinheit 108 mit dem Netzwerk 102 verbunden. Darüber hinaus sind Clients 110, 112 und 114 ebenfalls mit dem Netzwerk 102 verbunden. Bei diesen Clients 110, 112 und 114 kann es sich zum Beispiel um Personal Computer, Netzwerkcomputer oder dergleichen handeln. Im abgebildeten Beispiel stellt der Server 104 den Clients 110, 112, und 114 Daten wie Startdateien (boot files), Betriebssystemabbilder (operating system images) und Anwendungen bereit. Die Clients 110, 112 und 114 sind in dem dargestellten Beispiel Clients des Servers 104. Das verteilte Datenverarbeitungssystem 100 kann zusätzliche Server, Clients und andere nicht gezeigte Einheiten enthalten.
  • In dem dargestellten Beispiel ist das verteilte Datenverarbeitungssystem 100 das Internet, wobei das Netzwerk 102 für eine weltweite Ansammlung von Netzwerken und Vermittlungseinheiten (gateways) steht, die das Protokollpaket „Transmission Control Protocol/Internet Protocol“ (TCP/IP) verwenden, um miteinander Daten auszutauschen. Das Rückgrat des Internets bilden Hochgeschwindigkeitsleitungen zum Datenaustausch zwischen größeren Knoten oder Host-Computern, die aus tausenden kommerzieller, behördlicher, Bildungs- und anderer Computersysteme bestehen, die Daten und Nachrichten leiten. Natürlich kann das verteilte Datenverarbeitungssystem 100 auch so umgesetzt sein, dass es eine Anzahl verschiedener Netzwerktypen wie zum Beispiel ein Intranet, ein lokales Netzwerk (local area network (LAN)), ein Weitverkehrsnetzwerk (wide area network (WAN)) oder dergleichen enthält. Wie oben ausgeführt ist 1 als Beispiel und nicht als architektonische Einschränkung für verschiedene Ausführungsformen des offenbarten Gegenstandes gedacht, und daher sollten die besonderen in 1 gezeigten Elemente nicht als einschränkend in Hinblick auf die Umgebungen angesehen werden, in denen die veranschaulichenden Ausführungsformen der vorliegenden Erfindung umgesetzt werden können.
  • Unter Bezugnahme auf 2 wird nun ein Blockschaubild eines beispielhaften Datenverarbeitungssystems gezeigt, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Ein Datenverarbeitungssystem 200 stellt ein Beispiel für einen Computer wie beispielsweise den Client 110 in 1 dar, in dem sich von Computern verwendbarer Code oder Anweisungen befinden können, welche die Prozesse für veranschaulichende Ausführungsformen der Offenbarung umsetzen.
  • Unter Bezugnahme auf 2 wird nun ein Blockschaubild eines Datenverarbeitungssystems gezeigt, in dem veranschaulichende Ausführungsformen umgesetzt werden können. Das Datenverarbeitungssystem 200 stellt ein Beispiel für einen Computer wie beispielsweise den Server 104 oder den Client 110 in 1 dar, in dem sich für die veranschaulichenden Ausführungsformen durch Computer verwendbarer Programmcode oder Anweisungen befinden können, welche die Prozesse umsetzen. In diesem veranschaulichenden Beispiel enthält das Datenverarbeitungssystem 200 eine Datenübertragungsstruktur 202, welche die Datenübertragung zwischen einer Prozessoreinheit 204, einem Arbeitsspeicher 206, einer permanenten Speicherung 208, einer Datenübertragungseinheit 210, einer Eingabe/Ausgabe(E/A)-Einheit 212 und einer Anzeige 214 bereitstellt.
  • Die Prozessoreinheit 204 dient zum Ausführen von Anweisungen für Software, die in den Arbeitsspeicher 206 geladen werden kann. Die Prozessoreinheit 204 kann je nach der speziellen Umsetzung ein Satz von einem oder mehreren Prozessoren oder ein Mehrfachprozessorkern sein. Ferner kann die Prozessoreinheit 204 so umgesetzt sein, dass ein oder mehrere heterogene Prozessorsysteme verwendet werden, in denen sich ein Hauptprozessor mit sekundären Prozessoren auf einem einzigen Chip befindet. In einem weiteren veranschaulichenden Beispiel kann es sich bei der Prozessoreinheit 204 um ein symmetrisches Mehrfachprozessorsystem (SMP-System) handeln, das mehrere Prozessoren desselben Typs beinhaltet.
  • Der Arbeitsspeicher 206 und die permanente Speicherung 208 stellen Beispiele für Speicherungseinheiten dar. Eine Speicherungseinheit ist jedes Hardwareelement, das fähig ist, Informationen entweder auf einer temporären Grundlage und/oder permanenten Grundlage zu speichern. Bei dem Arbeitsspeicher 206 kann es sich in diesen Beispielen zum Beispiel um einen Speicher mit wahlfreiem Zugriff oder jede andere geeignete flüchtige oder nichtflüchtige Speicherungseinheit handeln. Die permanente Speicherung 208 kann je nach spezieller Umsetzung verschiedene Formen annehmen. Zum Beispiel kann die permanente Speicherung 208 eine oder mehrere Komponenten oder Einheiten beinhalten. Bei der permanenten Speicherung 208 kann es sich zum Beispiel um ein Festplattenlaufwerk, einen Flash-Speicher, eine wiederbeschreibbare optische Platte, ein wiederbeschreibbares Magnetband oder eine Kombination des vorstehenden handeln. Bei den durch die permanente Speicherung 208 verwendeten Medien kann es sich auch um Wechselmedien handeln. Zum Beispiel kann für die permanente Speicherung 208 ein Wechselfestplattenlaufwerk verwendet werden.
  • Eine Datenübertragungseinheit 210 stellt in diesen Beispielen den Datenaustausch mit anderen Datenverarbeitungssystemen oder -einheiten bereit. In diesen Beispielen handelt es sich bei der Datenübertragungseinheit 210 um eine Netzwerkschnittstellenkarte. Die Datenübertragungseinheit 210 kann die Datenübertragung durch die Verwendung von entweder physischen oder drahtlosen Datenübertragungsverbindungen oder beidem bereitstellen.
  • Eine Eingabe/Ausgabe-Einheit 212 ermöglicht die Eingabe und Ausgabe von Daten mit anderen Einheiten, die mit dem Datenverarbeitungssystem 200 verbunden sein können. Die Eingabe/Ausgabe-Einheit 212 kann zum Beispiel eine Verbindung für Benutzereingaben über eine Tastatur und eine Maus bereitstellen. Ferner kann die Eingabe/Ausgabe-Einheit 212 Ausgaben an einen Drucker senden. Eine Anzeige 214 stellt einen Mechanismus bereit, um einem Benutzer Informationen anzuzeigen.
  • Anweisungen für das Betriebssystem und Anwendungen oder Programme befinden sich auf der permanenten Speicherung 208. Diese Anweisungen können zur Ausführung durch die Prozessoreinheit 204 in den Arbeitsspeicher 206 geladen werden. Die Prozesse der unterschiedlichen Ausführungsformen können durch die Prozessoreinheit 204 unter Verwendung von durch einen Computer umgesetzten Anweisungen durchgeführt werden, die sich in einem Arbeitsspeicher wie dem Arbeitsspeicher 206 befinden können. Diese Anweisungen werden als Programmcode, von Computern verwendbarer Programmcode oder computerlesbarer Programmcode bezeichnet, der durch einen Prozessor in der Prozessoreinheit 204 gelesen und ausgeführt werden kann. Der Programmcode in den unterschiedlichen Ausführungsformen kann auf unterschiedlichen physischen oder gegenständlichen computerlesbaren Medien wie dem Arbeitsspeicher 206 oder der permanenten Speicherung 208 ausgebildet sein.
  • Ein Programmcode 216 befindet sich in funktioneller Form auf computerlesbaren Medien 218, das wahlweise entnehmbar ist und zur Ausführung durch die Prozessoreinheit 204 auf das Datenverarbeitungssystem 200 geladen oder zu diesem übertragen werden kann. Der Programmcode 216 und die computerlesbaren Medien 218 bilden in diesen Beispielen ein Computerprogrammprodukt 220. In einem Beispiel können die computerlesbaren Medien 218 in gegenständlicher Form vorliegen, wie zum Beispiel einer optischen oder magnetischen Platte, die zur Übertragung an eine Speicherungseinheit wie eine Festplatte, die Teil der permanenten Speicherung 208 ist, in ein Laufwerk oder in eine andere Einheit, die Teil der permanenten Speicherung 208 ist, eingelegt oder dort platziert wird. In einer gegenständlichen Form können die computerlesbaren Medien 218 auch die Form einer permanenten Speicherung annehmen, wie beispielsweise eines Festplattenlaufwerks, eines USB-Sticks oder eines Flash-Speichers, das/der mit dem Datenverarbeitungssystem 200 verbunden ist. Die gegenständliche Form der computerlesbaren Medien 218 wird auch als von Computern beschreibbares Speicherungsmedium bezeichnet. In manchen Fällen können die computerlesbaren Medien 218 nicht entnehmbar sein.
  • Alternativ dazu kann der Programmcode 216 über eine Datenübertragungsverbindung mit der Datenübertragungseinheit 210 und/oder durch eine Verbindung mit der Eingabe/Ausgabe-Einheit 212 von den computerlesbaren Medien 218 an das Datenverarbeitungssystem 200 übertragen werden. Die Datenübertragungsverbindung und/oder die Verbindung kann in den veranschaulichenden Ausführungsformen physisch oder kabellos sein. Die computerlesbaren Medien können ebenso die Form nicht gegenständlicher Medien annehmen, wie beispielsweise Datenübertragungsverbindungen oder kabellose Übertragungen, die den Programmcode beinhalten. Die unterschiedlichen veranschaulichenden Komponenten für das Datenverarbeitungssystem 200 sollen keine architektonischen Einschränkungen für die Art und Weise darstellen, in der unterschiedliche Ausführungsformen umgesetzt sein können. Die unterschiedlichen veranschaulichenden Ausführungsformen können in einem Datenverarbeitungssystem umgesetzt sein, das zusätzlich zu den oder anstelle der für das Datenverarbeitungssystem 200 veranschaulichten noch weitere Komponenten enthält. Andere in 2 gezeigte Komponenten können ausgehend von den gezeigten veranschaulichenden Beispielen variiert werden. Als ein Beispiel handelt es sich bei einer Speicherungseinheit im Datenverarbeitungssystem 200 um eine beliebige Hardwarevorrichtung, die Daten speichern kann. Der Arbeitsspeicher 206, die permanente Speicherung 208 und die computerlesbaren Medien 218 zählen zu Beispielen für Speicherungseinheiten in einer gegenständlichen Form.
  • In einem weiteren Beispiel kann ein Bussystem verwendet werden, um die Datenübertragungsstruktur 202 umzusetzen und kann aus einem oder mehreren Bussen zusammengesetzt sein, wie beispielsweise einem Systembus oder einem Eingabe/Ausgabe-Bus. Selbstverständlich kann das Bussystem unter Verwendung jedes geeigneten Architekturtyps umgesetzt sein, der eine Übertragung von Daten zwischen unterschiedlichen Komponenten oder Einheiten bereitstellt, die an das Bussystem angebunden sind. Zudem kann eine Datenübertragungseinheit eine oder mehrere Einheiten enthalten, die zum Senden und Empfangen von Daten verwendet werden, wie beispielsweise ein Modem oder ein Netzwerkadapter. Ferner kann ein Arbeitsspeicher zum Beispiel der Arbeitsspeicher 206 oder ein Cache sein wie es in einem Schnittstellen- und Speichersteuerungs-Sternverteiler (hub) anzutreffen ist, der in der Datenübertragungsstruktur 202 vorhanden sein kann.
  • Computerprogrammcode zum Ausführen von Operationen der vorliegenden Erfindung kann in jeder Kombination einer oder mehrerer Programmiersprachen einschließlich einer objektorientierten Programmiersprache wie beispielsweise Java™, Smalltalk, C++ oder dergleichen und herkömmlicher prozeduraler Programmiersprachen wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen geschrieben sein. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf einem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jede beliebige Art von Netzwerk, einschließlich eines lokalen Netzwerks (local area network (LAN)) oder eines Weitverkehrsnetzwerks (wide area network (WAN)), verbunden sein, oder die Verbindung kann zu einem externen Computer (zum Beispiel unter Verwendung eines Internetdienstanbieters durch das Internet) hergestellt werden.
  • Für den Fachmann ist einzusehen, dass die Hardware in 1 bis 2 je nach Umsetzung variieren kann. Andere interne Hardware oder Peripherieeinheiten wie Flash-Speicher, entsprechender nichtflüchtiger Speicher oder optische Plattenlaufwerke und dergleichen können zusätzlich zu oder anstelle der in 1 bis 2 dargestellten Hardware verwendet werden. Zudem können die Prozesse der veranschaulichenden Ausführungsformen auf ein anderes Mehrfachprozessor-Datenverarbeitungssystem als das zuvor erwähnte SMP-System angewendet werden, ohne vom Geist und Umfang des offenbarten Gegenstandes abzuweichen.
  • Wie man sieht, können die hierin beschriebenen Techniken in Verbindung mit dem Standard-Client-Server-Paradigma arbeiten, wie beispielsweise in 1 veranschaulicht, in dem Client-Maschinen mit einem über das Internet zugänglichen Web-gestützten Portal arbeiten, das auf einem Satz von einer oder mehreren Maschinen ausgeführt wird. Endbenutzer arbeiten mit mit dem Internet verbindbaren Einheiten (z.B. Desktop-Computer, Notebook-Computer, internetfähige mobile Einheiten oder dergleichen), die fähig sind, auf das Portal zuzugreifen und mit ihm zu interagieren. Üblicherweise ist jede Client- oder Servermaschine ein Datenverarbeitungssystem wie in 2 veranschaulicht, das Hardware oder Software aufweist, und diese Entitäten tauschen miteinander Daten über ein Netzwerk aus, wie beispielsweise das Internet, ein Intranet, ein Extranet, ein privates Netzwerk oder jedes andere Datenübertragungsmedium oder jede andere Datenübertragungsverbindung. Ein Datenverarbeitungssystem enthält üblicherweise einen oder mehrere Prozessoren, ein Betriebssystem, eine oder mehrere Anwendungen und ein oder mehrere Dienstprogramme. Die Anwendungen auf dem Datenverarbeitungssystem stellen native Unterstützung für Web-Dienste bereit, einschließlich ohne Einschränkung, Unterstützung für HTTP, SOAP, XML, WSDL, UDDI und WSFL, unter anderen. Informationen hinsichtlich SOAP, WSDL, UDDI und WSFL sind von dem World Wide Web Consortium (W3C) erhältlich, das für das Entwickeln und Pflegen dieser Standards verantwortlich ist; weitere Informationen hinsichtlich HTTP und XML sind von der Internet Engineering Task Force (IETF) erhältlich. Eine Vertrautheit mit diesen Standards wird vorausgesetzt.
  • Tiefe neuronale Netze
  • Als zusätzlicher Hintergrund ist tiefes Lernen eine Art von Maschinenlern-Rahmenwerk, das ohne die Notwendigkeit einer von Hand ausgeführten Merkmalsdarstellung automatisch eine Darstellung hierarchischer Daten aus Trainingsdaten lernt. Tiefe Lernverfahren beruhen auf Lernarchitekturen, die tiefe neuronale Netze (DNNs) genannt werden, die aus vielen grundlegenden neuronalen Netzeinheiten zusammengesetzt sind, wie beispielsweise lineare Perzeptronen, Konvolutionen und nichtlineare Aktivierungsfunktionen. Diese Netzeinheiten sind als Schichten organisiert (von einigen wenigen bis zu mehr als Tausend), und sie werden direkt aus den Rohdaten trainiert, um komplizierte Konzepte zu erkennen. Untere Netzschichten entsprechen oft untergeordneten Merkmalen (z.B. in der Bilderkennung, wie beispielsweise Ecken und Kanten von Bildern). Während die höheren Schichten üblicherweise übergeordneten semantisch bedeutenden Merkmalen entsprechen.
  • Spezifisch nimmt ein tiefes neuronales Netz (DNN) die Trainingsrohdatendarstellung und bildet sie über eine parametrische Funktion auf eine Ausgabe ab. Die parametrische Funktion ist sowohl durch die Netzarchitektur als auch die kollektiven Parameter aller neuronaler Netzeinheiten definiert, die in der Netzarchitektur verwendet werden. Jede Netzeinheit empfängt einen Eingabevektor von seinen verbundenen Neuronen und gibt einen Wert aus, der an die folgenden Schichten weitergeleitet wird. Zum Beispiel gibt eine lineare Einheit das Skalarprodukt zwischen ihren Gewichtungsparametern und den Ausgabewerten ihrer verbundenen Neuronen aus den vorherigen Schichten aus. Um die Fähigkeit von DNNs beim Modellieren der komplexen Struktur in Trainingsdaten zu erhöhen, wurden unterschiedliche Arten von Netzeinheiten in Kombination von linearen Aktivierungen entwickelt und verwendet, wie beispielsweise nichtlineare Aktivierungseinheiten (hyperbolische Tangente, S-Kurve, Rectified Linear Unit, usw.), Max Pooling und Batch Normalization. Wenn der Zweck des neuronalen Netzes darin besteht, Daten in einen finiten Satz von Klassen zu klassifizieren, ist die Aktivierungsfunktion in der Ausgabeschicht üblicherweise eine Softmax-Funktion, die als die vorhergesagte Klassenverteilung eines Satzes von Klassen angesehen werden kann.
  • Vor dem Training der Netzgewichtungen für ein DNN besteht ein anfänglicher Schritt darin, die Architektur für das Modell zu bestimmen, und dies erfordert oft ein Fachwissen nichttrivialer Domänen und Entwicklungsanstrengungen. Bei gegebener Netzarchitektur wird das Netzverhalten durch Werte der Netzparameter bestimmt, θ. Formaler, sei D = {xi, zi}T i=1 die Trainingsdaten, wobei zi ∈ [0, n -1] eine Ground-Truth-Kennzeichnung für xi ist, so sind die Netzparameter optimiert, um eine Differenz zwischen den vorhergesagten Klassenkennzeichnungen und den Ground-Truth-Kennzeichnungen beruhend auf einer Verlustfunktion zu minimieren. Derzeit ist der am weitesten verwendete Ansatz zum Training von DNNs ein Rückausbreitungsalgorithmus, wobei die Netzparameter durch Ausbreiten eines Gradienten des Vorhersageverlusts aus der Ausgabeschicht durch das gesamte Netz aktualisiert werden. Am meisten verwendete DNNs sind neuronale Feed-Forward-Netze, wobei Verbindungen zwischen den Neuronen keine Schleifen bilden; andere Arten von DNNs enthalten rekurrente neuronale Netze, wie beispielsweise ein langes Kurzzeitgedächtnis („Long Short-Term Memory“ (LSTM)), und diese Arten von Netzen sind beim Modellieren sequenzieller Daten effizient.
  • Formal wurde ein DNN in der Literatur (Xu et al.) durch eine Funktion g: X → Y beschrieben, wobei X ein Eingaberaum und Y ein Ausgaberaum ist, der einen Kategoriensatz darstellt. Für eine Probe x, die ein Element von X ist, ist g(x) = fL (FL-1 (... ((f1(x)))). Jedes fi stellt eine Schicht dar und FL ist die letzte Ausgabeschicht. Die letzte Ausgabeschicht erzeugt eine Abbildung von einem verborgenen Raum zum Ausgaberaum (Klassenkennzeichnungen) durch eine Softmax-Funktion, die einen Vektor reeller Zahlen im Bereich [0, 1] ausgibt, die sich zu 1 addieren. Die Ausgabe der Softmax-Funktion ist eine Wahrscheinlichkeitsverteilung der Eingabe x über C unterschiedliche Ausgabeklassen.
  • 3 stellt ein repräsentatives DNN 300 dar, das manchmal als künstliches neuronales Netz bezeichnet wird. Wie dargestellt, ist das DNN 300 eine miteinander verbundene Gruppe von Knoten (Neuronen), wobei jeder Knoten 303 ein künstliches Neuron darstellt, und eine Linie 305, die eine Verbindung von dem Ausgang eines künstlichen Neurons zum Eingang eines anderen darstellt. In dem DNN wird die Ausgabe jedes Neurons durch eine nichtlineare Funktion der Summe seiner Eingaben berechnet. Die Verbindungen zwischen Neuronen sind als Kanten bekannt. Neuronen und die Kanten besitzen üblicherweise eine Gewichtung, die sich mit fortschreitendem Lernen anpasst. Die Gewichtung erhöht oder verringert die Stärke bei einer Verbindung. Wie dargestellt, werden in einem DNN 300 üblicherweise die Neuronen in Schichten angesammelt, und unterschiedliche Schichten können unterschiedliche Transformationen an ihren Eingaben durchführen. Wie dargestellt, bewegen sich Signale (üblicherweise reelle Zahlen) über Durchqueren einer oder mehrerer Zwischenschichten (die verborgenen Schichten) 304 von der ersten Schicht (der Eingabeschicht) 302 zur letzten Schicht (der Ausgabeschicht) 306. Die verborgenen Schichten stellen die Fähigkeit bereit, Merkmale aus der Eingabeschicht 302 zu extrahieren. Wie in 3 dargestellt, gibt es zwei verborgene Schichten, aber dies ist keine Einschränkung. Üblicherweise ist die Anzahl verborgener Schichten (und die Anzahl von Neuronen in jeder Schicht) eine Funktion des Problems, das durch das Netz gelöst wird. Ein Netz, das zu viele Neuronen in einer verborgenen Schicht enthält, kann Eingabemuster überlernen und sich somit merken, wodurch die Fähigkeit des Netzes zum Verallgemeinern begrenzt wird. Wenn es andererseits zu wenig Neuronen in der einen oder den mehreren verborgenen Schichten gibt, ist das Netz nicht in der Lage, die Eingaberaummerkmale darzustellen, was ebenfalls die Fähigkeit des Netzes zum Verallgemeinern begrenzt. Im Allgemeinen gilt, je kleiner das Netz (weniger Neuronen und Gewichtungen) desto besser das Netz.
  • Das DNN 300 wird unter Verwendung eines Trainingsdatensatzes trainiert, was dadurch zu einer Erzeugung eines Satzes von Gewichtungen führt, die dem trainierten DNN entsprechen. Formal enthält ein Trainingssatz N gekennzeichnete Eingaben, wobei die i-te Eingabe als (xi, yi) bezeichnet ist. Während des Trainings werden jeder Schicht zugehörige Parameter zufällig initialisiert und Eingabeproben (xi, yi) werden durch das Netz zugeführt. Die Ausgabe des Netzes ist eine Vorhersage g(xi), die der i-ten Probe zugeordnet ist. Um das DNN zu trainieren, wird die Differenz zwischen einer vorhergesagten Ausgabe g(xi) und ihrer wahren Kennzeichnung yi, mit einer Verlustfunktion J (g(xi), yi) modelliert, die in das Netz rückausgebreitet wird, um die Modellparameter zu aktualisieren.
  • 4 stellt ein DNN 400 dar, das als Front-End für ein eingesetztes System 402 eingesetzt wird. In einem Beispielszenario ist das eingesetzte System ein autonomes Fahrsystem eines Elektrofahrzeugs (electric vehicle (EV)) 404. Ein autonomes Fahrsystem ist eine komplexe Kombination verschiedener Komponenten oder Systeme, und wobei Wahrnehmung, Entscheidungsfindung und Betrieb des Automobils durch Elektronik und Maschinen anstatt eines menschlichen Fahrers durchgeführt werden. In diesem Kontext wird das DNN 400 üblicherweise für die Wahrnehmung (z.B. Straßen- und Verkehrsvisualisierung), sowie zur Entscheidungsfindung während des aktiven Betriebs des Fahrzeugs verwendet. Dieser Anwendungsfall ist lediglich beispielhaft für ein DNN-gesteuertes eingesetztes System, er sollte aber nicht als diese Offenbarung begrenzend genommen werden.
  • Bedrohungsmodell
  • Wie hierin verwendet, ist eine „feindliche Eingabe“ eine durch einen Feind bereitgestellte Eingabe mit einem Ziel eines Erzeugens einer inkorrekten Ausgabe aus einem Zielklassifikator (DNN). Feindliche Angriffe waren Gegenstand der Forschung seit Szegedy et al. erkannten, dass neuronale Netze anfällig für feindliche Proben sind. Zum Beispiel schlagen Goodfellow et al. das „Fast Gradient Sign Method“ (FGSM) vor, das ein ungezielter Angriff ist, der die Kostenfunktion linearisiert und nach einer Störung auflöst, welche die Kosten maximiert, die einer Einschränkung Linfty unterliegen, um Fehlklassifikationen zu verursachen. Moosavi-Dezfooli et al. haben DeepFool vorgeschlagen, eine ungezielte Technik, die nach feindlichen Beispielen durch Minimieren der L2-Norm sucht. Papernot et al. haben den „Jacobian-based Saliency Map Approach“ (JSMA) für gezielte feindliche Bilderzeugung durch iteratives Stören von Bildpixeln mit einem hohen feindlichen Salienzwert unter Verwendung einer Jakobi-Gradientenmatrix des DNN-Modells vorgelegt. Das Ziel des Angriffs besteht darin, den Salienzwert für das Pixel für eine Zielklasse zu erhöhen. Unlängst haben Carlini et al. eine neue gezielte gradientengestützte feindliche Technik entwickelt, welche die L2-Norm benutzt. Dieser Ansatz hat viel bessere Erfolgsraten gezeigt, als bestehende Ansätze unter Verwendung minimaler Störungen.
  • Ein Rahmenwerk zum Erkennen feindlicher Angriffe
  • Mit dem Vorstehenden als Hintergrund wird nun die Technik dieser Offenbarung beschrieben. Wie vorstehend beschrieben, leitet sich die Technik von einer Einsicht über die Natur feindlicher Angriffe im Allgemeinen ab, nämlich dass solche Angriffe üblicherweise nur die endgültige Zielkennzeichnung in dem DNN garantieren, wohingegen die Kennzeichnungen von Zwischendarstellungen nicht garantiert sind. Gemäß dieser Offenbarung wird diese Inkonsistenz dann als ein Indikator eingesetzt, dass ein feindlicher Angriff auf das DNN vorliegt. Eine zugehörige Einsicht liegt darin, dass selbst für die letzte (Ausgabe-) DNN-Schicht ein feindlicher Angriff nur eine feindliche Zielkennzeichnung garantiert, aber Korrelationen zwischen anderen Zwischen- (oder sekundären) Vorhersagen ignoriert. Üblicherweise ist eine Zwischenvorhersage eine Vorhersage, die bei einer (oft verborgenen) Zwischenschicht innerhalb des DNNs vorhanden ist. Diese zusätzliche Inkonsistenz wird dann als weiterer (oder sekundärer) Indikator (oder eine Bestätigung) des feindlichen Angriffs benutzt. Dementsprechend untersucht die Erkennungstechnik vorzugsweise das DNN selbst, um den Angriffsindikator bereitzustellen.
  • In einem üblichen Anwendungsfall ist das DNN einem eingesetzten System zugeordnet. Bei Erkennen des feindlichen Angriffs wird dann eine gegebene Aktion in Bezug auf das eingesetzte System unternommen. Die Natur der gegebenen Aktion ist umsetzungsspezifisch, schließt aber ohne Einschränkung ein Ausgeben einer Benachrichtigung, ein Verhindern, dass der Feind Eingaben bereitstellt, von denen bestimmt ist, dass sie feindliche Eingaben sind, ein Unternehmen einer Aktion zum Schützen des eingesetzten Systems, ein Unternehmen einer Aktion zum Umtrainieren oder anderweitigen Schützen (Erhärten) des DNNs, Sandboxing des Feindes und so fort ein.
  • 5 stellt einen Prozessablauf der grundlegenden Technik dieser Offenbarung bereit. Die Technik nimmt die Existenz eines DNNs und eines zugeordneten eingesetzten Systems an. In einer Ausführungsform beginnt ein Verfahren zum Erkennen eines feindlichen Angriffs auf das DNN oder allgemeiner das eingesetzte System währen des Trainierens des DNNs. Bei Schritt 500 wird ein Training gestartet, indem ein gesamter (oder im Wesentlichen gesamter) Trainingsdatensatz dem Netz zugeführt wird. Bei Schritt 502 wird eine Zwischendarstellung von jeder von einer Mehrzahl von Schichten (den schichtweisen Aktivierungen) des DNNs aufgezeichnet. Es ist nicht erforderlich, dass eine Zwischendarstellung für jede Schicht aufgezeichnet wird, und die Zwischendarstellung für eine bestimmte Schicht kann genügen. Bei Schritt 504 und für jede Zwischendarstellung und in einer Ausführungsform wird ein separates Maschinenlernmodell (ein Klassifikator) trainiert. Das Maschinenlernmodell bestimmt die Kennzeichnungen jeder Zwischendarstellung, und es kann durch einen Klassifizierungsalgorithmus umgesetzt werden, wie beispielsweise k-nächste-Nachbarn (k-NN), ein weiteres DNN oder dergleichen. In dieser Ausführungsform erzeugt Schritt 504 jeweilige Sätze von Kennzeichnungsanordnungen für jede Zwischendarstellung, wobei eine Kennzeichnungsanordnung einen Satz von Kennzeichnungen für die Zwischendarstellung aufweist, der durch das Maschinenlernmodell für unterschiedliche Eingaben zugewiesen wird. Nachdem jeweilige Kennzeichnungsanordnungen für die Zwischendarstellungen erzeugt wurden, werden dann bei Schritt 506 die jeweiligen Sätze von Kennzeichnungsanordnungen verwendet, um ein Ausreißer-Erkennungsmodell zu trainieren. Das Ausreißer-Erkennungsmodell wird trainiert, um eine endgültige Klassenvorhersage sowie einen Indikator hinsichtlich des Vorhandenseins oder Nichtvorhandenseins einer möglichen feindlichen Eingabe auszugeben. Bei Schritt 508 und ein zugeordnetes eingesetztes System annehmend, kann ein Test durchgeführt werden, um zu bestimmen, ob ein feindlicher Angriff für eine gegebene Eingabe oder ein gegebenes Auftreten erkannt wird. Wenn kein feindlicher Angriff erkannt wird, wird keine Aktion vorgenommen. Wenn jedoch das Ergebnis von Schritt 508 einen feindlichen Angriff anzeigt, fährt der Prozess mit Schritt 510 fort, indem als Reaktion auf die Erkennung des feindlichen Angriffs eine Aktion vorgenommen wird. Dies schließt die grundlegende Verarbeitung ab.
  • In einer alternativen Ausführungsform werden die schichtweisen Aktivierungen berechnet und das separate Maschinenlernmodell trainiert, nachdem das DNN bereits trainiert ist. In einem solchen Fall kann der vorstehend beschriebene Schritt 500 weggelassen werden.
  • Die vorstehend beschriebene Technik wird hierin manchmal als Bestimmungskennzeichnungskonsistenz bezeichnet, da das Maschinenlernmodell die Kennzeichnungsanordnungen durch Bewerten einer Inkonsistenz zwischen der endgültigen Zielkennzeichnung und der oder den Kennzeichnung(en) der Zwischendarstellungen erzeugt. Gemäß dem Ansatz hierin und neben anderen Vorteilen stellt die interne Kennzeichnungskonsistenz einen robusten Weg zum Erkennen eines feindlichen Angriffs bereit, der die Defizite und rechentechnischen Ineffizienzen bekannter Techniken, namentlich feindliches Training, Eingabeverarbeitung und unterschiedliche Modellerhärtung vermeidet.
  • 6 stellt den vorstehend beschriebenen Prozess für ein DNN 600 wieder einmal in einer nicht begrenzenden Ausführungsform dar. Wie beschrieben, empfängt das DNN 600 einen Trainingsdatensatz 602. Während des Trainings des DNNs mit dem Trainingsdatensatz 602 werden dann ein oder mehrere Modelle 604 durch Bewerten der internen Aktivierungen trainiert, namentlich dem oder den jeweiligen Zustand/Zuständen der (verborgenen) Zwischenschichten. Wie vorstehend angemerkt ist das Training selbst kein Erfordernis dieses Ansatzes. Somit, und wie dargestellt, besitzt das DNN eine erste verborgene Schicht (Schicht 1), und die internen Aktivierungen (Zustand) für diese Schnitt werden durch ein Modell 604A modelliert. Formaler wird für jede Eingabe i eine Kennzeichnungsanordnung [Ii1, Ii2, ... Iin] erzeugt, wobei Iin die Kennzeichnung der Eingabe i bei der n-ten Schicht darstellt. In diesem Beispiel besitzt das DNN auch eine zweite verborgene Schicht (Schicht 2), und die internen Aktivierungen (Zustand) für diese Schicht werden durch ein Modell 604B modelliert. Vorzugsweise, obwohl nicht erforderlich, sind die Modelle 604A und 604B in ein vereinigtes Modell oder einen Klassifikator 606 integriert. Der Klassifikator entspricht dem Ausreißer-Erkennungsmodell, das vorstehend in dem Prozessablauf in 5 beschrieben wurde. Der Klassifikator 606, der ableitend aus dem ursprünglichen Trainingsdatensatz 602 und den durch das eine oder die mehreren Modelle 604 definierten Kennzeichnungen trainiert wurde, stellt dann eine Klassifizierung als seine Ausgabe bereit. Wie angemerkt, ist die Klassifizierung üblicherweise eine Vorhersage (der vereinigten Vorhersage der internen Zustände) für eine bestimmte Dateneingabe sowie eine Anzeige, ob diese Eingabe eine feindliche Eingabe ist.
  • Wie angemerkt enthält das DNN üblicherweise viele zusätzliche (verborgene) Zwischenschichten. Jede Zwischenschicht kann ein zugeordnetes Modell 604 besitzen, aber dies ist kein Erfordernis. Einzelne der Modelle können sowohl für die Vorhersage als auch die Klassifizierung als feindliche Eingabe verwendet werden, die durch das Modell 606 in dem bevorzugten Ansatz bereitgestellt werden. Mit anderen Worten agiert der Klassifikator vorzugsweise beruhend auf der Kenntnis der vereinigten internen Aktivierung, die in die Modelle 604 eingebettet ist.
  • 6 stellt auch eine weitere Optimierung dar, die manchmal hierin als eine Korrelationskonsistenzprüfung bezeichnet wird. Insbesondere kann es ein oder mehrere Neuronen in der letzten Schicht des DNNs geben, von denen bestimmt oder angesehen wird, dass sie überempfindlich für Störungen sind. Somit wird gemäß dieser Beispielausführungsform angenommen, dass eines der Neuronen 608 in der letzten Schicht des DNNs 600 ein solches Neuron ist. Gemäß dieser Optimierung wird dieses Neuron deaktiviert/ignoriert, und die Werte der verbleibenden Neuronen in der letzten Schicht werden verwendet, um einen separaten Klassifikator zu trainieren (oder den Klassifikator 606 zu erweitern), um eine weitere Korrelationskonsistenzprüfung für die feindliche(n) Eingabe(n) bereitzustellen. Im Wesentlichen klassifiziert dieser Klassifikator die Eingabedaten basierend auf der Korrelation zwischen anderen Kennzeichnungen. Wenn sich die reale Kennzeichnung von der Kennzeichnung von dem trainierten Klassifikator unterscheidet, weisen die Eingabedaten eine hohe Wahrscheinlichkeit auf, ein feindlicher Angriff zu sein.
  • Somit und wie beschrieben wurde, erkennt die Technik hierin vorzugsweise feindliche Angriffe unter Verwendung der Kennzeichnungen der Zwischen(schicht)darstellungen (die unter Verwendung des ursprünglichen Trainingsdatensatzes trainiert worden sind), und die Technik nutzt vorteilhaft die Idee, dass Inkonsistenzen zwischen der endgültigen Zielkennzeichnung und den Kennzeichnungen der Zwischenschichtdarstellungen (die auf das Training folgend vorhanden sind) auch einen nützliche Indikator hinsichtlich eines nachfolgenden Empfangs einer feindlichen Eingabe durch das DNN bereitstellen können. Zusätzlich und da sogar für die letzte DNN-Schicht ein feindlicher Angriff nur eine feindliche Zielkennzeichnung garantiert, untersucht die Technik vorzugsweise auch Korrelationen zwischen anderen Schichten (in der letzten Schicht) für bestimmte Neuronen, um eine weitere Anzeige eines feindlichen Angriffs bereitzustellen. Somit setzt die Technik hierin eine Modellkennzeichnungskonsistenz über Schichten und (optional) eine Korrelationskonsistenz 610 über Kennzeichnungen in der letzten Schicht als Indikatoren feindlicher Angriffe ein.
  • Allgemeiner ist die Technik hierin zu bestehenden Verteidigungssystemen komplementär.
  • Ein oder mehrere Aspekte dieser Offenbarung (z.B. das anfängliche DNN-Training zum Erzeugen des Ausreißer-Erkennungsmodells) können als ein Dienst umgesetzt werden, z.B. durch eine dritte Partei. Der Gegenstand kann innerhalb oder in Zuordnung mit einem Datenzentrum umgesetzt werden, das cloudgestützte Datenverarbeitung, Datenspeicherung oder zugehörige Dienste bereitstellt.
  • In einem üblichen Anwendungsfall besitzt ein SIEM oder anderes Sicherheitssystem eine damit zugeordnete Schnittstelle, die verwendet werden kann, um API-Anfragen an das trainierte Modell und sein zugeordnetes Ausreißer-Erkennungsmodell auszugeben und Antworten auf diese Anfragen zu empfangen, einschließlich eines Antwortindikators einer feindlichen Eingabe. Die Client-Server-Architektur wie in 1 dargestellt kann für diesen Zweck verwendet werden.
  • Der Ansatz hierin ist gestaltet, um bedarfsgesteuert oder in einer automatisierten Weise umgesetzt zu werden.
  • Zugriff auf den Dienst für das Modelltraining oder die Verwendung zum Identifizieren feindlicher Eingaben kann über jedes geeignete Anfrage-Antwort-Protokoll oder jeden geeigneten Arbeitsablauf mit oder ohne API ausgeführt werden.
  • Die in dieser Offenbarung beschriebene Funktionalität kann im Ganzen oder zum Teil als eigenständiger Ansatz umgesetzt werden, z.B. eine softwaregestützte Funktion, die durch einen Hardwareprozessor ausgeführt wird, oder sie kann als ein verwalteter Dienst (einschließlich als ein Web-Dienst über eine SOAP-/XML-Schnittstelle) verfügbar sein. Die besonderen hierin beschriebenen Hardware- und Softwareumsetzungsdetails dienen lediglich veranschaulichenden Zwecken und sind nicht als den Umfang des beschriebenen Gegenstandes begrenzend gedacht.
  • Allgemeiner sind Datenverarbeitungseinheiten innerhalb des Kontextes des offenbarten Gegenstands jeweils ein Datenverarbeitungssystem (wie in 2 gezeigt), das Hardware und Software aufweist, und diese Entitäten tauschen miteinander Daten über ein Netzwerk aus, wie beispielsweise das Internet, ein Intranet, ein Extranet, ein privates Netzwerk oder jedes andere Datenübertragungsmedium oder jede andere Datenübertragungsverbindung. Die Anwendungen auf dem Datenverarbeitungssystem stellen native Unterstützung für Web- und andere bekannte Dienste und Protokolle bereit, einschließlich ohne Einschränkung, Unterstützung für HTTP, FTP, SMTP, SOAP, XML, WSDL, UDDI und WSFL, unter anderem. Informationen hinsichtlich SOAP, WSDL, UDDI und WSFL sind von dem World Wide Web Consortium (W3C) erhältlich, das für das Entwickeln und Pflegen dieser Standards verantwortlich ist; weitere Informationen hinsichtlich HTTP, FTP, SMTP und XML sind von der Internet Engineering Task Force (IETF) erhältlich. Eine Vertrautheit mit diesen bekannten Standards und Protokollen wird vorausgesetzt.
  • Das hierin beschriebene Schema kann in oder in Verbindung mit vielfältigen serverseitigen Architekturen umgesetzt werden, einschließlich einfache n-stufige Architekturen, Web-Portale, vereinigte System und dergleichen. Die Techniken hierin können in einer lose verbundenen Serverumgebung (einschließlich einer cloudgestützten) ausgeübt werden.
  • Immer noch allgemeiner kann der hierin beschriebene Gegenstand die Form einer vollständigen Hardwareausführungsform, einer vollständigen Softwareausführungsform oder einer Ausführungsform, die sowohl Hardware- als auch Softwareelemente beinhaltet, annehmen. In einer bevorzugten Ausführungsform ist die Funktion in Software umgesetzt, die Firmware, residente Software, Mikrocode und dergleichen enthält, aber nicht darauf beschränkt ist. Des Weiteren, wie vorstehend angemerkt, kann die Funktionalität der kontextbasierten Identitätszugriffssteuerung die Form eines von einem von einem Computer verwendbaren oder computerlesbaren Medium zugänglichen Computerprogrammprodukts annehmen, das Programmcode zur Verwendung durch oder in Verbindung mit einem Computer oder einem beliebigen System zur Ausführung von Anweisungen bereitstellt. Für die Zwecke dieser Beschreibung kann es sich bei einem von einem Computer verwendbaren oder computerlesbaren Medium um jede beliebige Vorrichtung handeln, die das Programm zur Verwendung durch das oder in Verbindung mit dem System, der Vorrichtung oder der Einheit zur Ausführung von Anweisungen beinhalten oder speichern kann. Bei dem Medium kann es sich um ein System (oder eine Vorrichtung oder Einheit) elektronischer, magnetischer, optischer, elektromagnetischer, Infrarot oder Halbleiter verwendender Art handeln. Zu Beispielen eines computerlesbaren Mediums zählen ein Halbleiter- oder Solid-State-Speicher, Magnetband, eine Wechselcomputerdiskette, ein Speicher mit wahlfreiem Zugriff (RAM), ein Nur-Lese-Speicher (ROM), eine starre Magnetplatte und eine optische Platte. Zu aktuellen Beispielen für optische Platten zählen ein Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine Schreib/Lese-Compact-Disk (CD-R/W) und eine DVD. Das computerlesbare Medium ist ein gegenständliches Element.
  • In einer stellvertretenden Ausführungsform sind die hierin beschriebenen Techniken in einem zweckbestimmten Computer umgesetzt, vorzugsweise in durch einen oder mehrere Prozessoren ausgeführter Software. Die Software wird in einem oder mehreren Datenspeichern oder Arbeitsspeichern gepflegt, die dem einen oder den mehreren Prozessoren zugeordnet sind, und die Software kann als ein oder mehrere Computerprogramme umgesetzt werden. Gemeinsam weist diese zweckbestimmte Hardware und Software die vorstehend beschriebene Funktionalität auf.
  • Während das Vorstehende eine bestimmte Reihenfolge von durch bestimmte Ausführungsformen durchgeführten Operationen beschreibt, sollte verstanden werden, dass eine solche Reihenfolge beispielhaft ist, da alternative Ausführungsformen die Operationen in einer anderen Reihenfolge durchführen, bestimmte Operationen kombinieren, bestimmte Operationen überlagern oder dergleichen können. Bezugnahmen in der Patentschrift auf eine gegebene Ausführungsform geben an, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder Charakteristik enthalten kann, aber jede Ausführungsform das bestimmte Merkmal, die bestimmte Struktur oder Charakteristik möglicherweise nicht notwendigerweise enthält.
  • Während schließlich gegebene Komponenten des Systems separat beschrieben wurden, wird der Fachmann verstehen, dass manche der Funktionen in gegebenen Anweisungen, Programmsequenzen, Codeabschnitten, Ausführungssträngen und dergleichen kombiniert oder gemeinsam genutzt werden können.
  • Die Techniken hierin stellen Verbesserungen einer weiteren Technologie oder eines weiteren technischen Gebietes bereit, z.B. tiefe Lernsysteme, andere Sicherheitssysteme, sowie Verbesserungen an eingesetzten Systemen bereit, die tiefe neuronale Netze verwenden, um Befehls- und Steueroperationen in Hinblick auf diese eingesetzten Systeme zu ermöglichen.
  • Die hierin beschriebenen Techniken sind nicht auf die Verwendung mit einem Modell eines tiefen neuronalen Netzes (DNN-Modell) begrenzt. Der Ansatz kann auf jedes Maschinenlernmodell erweitert werden, einschließlich, ohne Einschränkung, ein „Support Vector Machine“-Modell (SVM-Modell), ein Modell logistischer Regression (LR-Modell) und dergleichen, das interne Verarbeitungszustände (namentlich verborgene Gewichtungen) besitzt, und der Ansatz kann auch auf die Verwendung mit entscheidungsbaumgestützten Modellen erweitert werden.
  • Nachdem der Gegenstand beschrieben wurde, wird Folgendes beansprucht.

Claims (9)

  1. Verfahren zum Schützen eines tiefen neuronalen Netzes (deep neural network (DNN)) mit einer Mehrzahl von Schichten, einschließlich einer oder mehrerer Zwischenschichten, aufweisend: Aufzeichnen einer Darstellung von Aktivierungen, die einer Zwischenschicht zugeordnet sind; für jede der einen oder mehreren Darstellungen Trainieren eines Klassifikators; und auf das Trainieren des Klassifikators für jede Darstellung folgend Verwenden der von der mindestens einen oder den mehreren Darstellungen trainierten Klassifikatoren, um eine feindliche Eingabe in das tiefe neuronale Netz zu erkennen.
  2. Verfahren nach Anspruch 1, wobei das Trainieren des Klassifikators einen Satz von Kennzeichnungsanordnungen erzeugt, wobei eine Kennzeichnungsanordnung ein Satz von Kennzeichnungen für die Darstellung von Aktivierungen ist, die der Zwischenschicht zugeordnet sind.
  3. Verfahren nach Anspruch 2, wobei das Verwenden des Klassifikators ferner ein Vereinigen jeweiliger Sätze der Kennzeichnungsanordnungen in ein Ausreißer-Erkennungsmodell enthält.
  4. Verfahren nach Anspruch 3, wobei das Ausreißer-Erkennungsmodell zusammen mit dem Indikator eine Vorhersage erzeugt, ob eine gegebene Eingabe die feindliche Eingabe ist.
  5. Verfahren nach Anspruch 4, ferner enthaltend ein Vornehmen einer Aktion als Reaktion auf die Erkennung eines feindlichen Angriffs.
  6. Verfahren nach Anspruch 5, wobei es sich bei der Aktion um eines handelt von: Ausgeben einer Benachrichtigung, Verhindern, dass ein Feind eine oder mehrere zusätzliche Eingaben bereitstellt, von denen bestimmt wurde, dass es sich um feindliche Eingaben handelt, Vornehmen einer Aktion zum Schützen eines eingesetzten Systems, das dem DNN zugeordnet ist, Vornehmen einer Aktion zum Neutrainieren oder Erhärten des DNNs.
  7. Verfahren nach Anspruch 1, ferner enthaltend: Deaktivieren eines oder mehrerer Neuronen an einer letzten DNN-Schicht; Verwenden eines Satzes von Werten von einem oder verbleibenden Neuronen in der letzten DNN-Schicht, um einen zusätzlichen Klassifikator zu erzeugen; und Verwenden des zusätzlichen Klassifikators zum Bestätigen der Erkennung der feindlichen Eingabe.
  8. Vorrichtung, aufweisend: einen Prozessor; Computerspeicher, der Computerprogrammanweisungen speichert, die durch den Prozessor ausgeführt werden, um ein tiefes neuronales Netz (deep neural network (DNN)) mit einer Mehrzahl von Schichten, einschließlich einer oder mehrerer Zwischenschichten zu schützen, wobei die Programmanweisungen konfiguriert sind zum: Aufzeichnen einer Darstellung von Aktivierungen, die einer Zwischenschicht zugeordnet sind; für jede der einen oder mehreren Darstellungen Trainieren eines Klassifikators; und auf das Trainieren folgend Verwenden der von der mindestens einen oder den mehreren Darstellungen trainierten Klassifikatoren, um eine feindliche Eingabe in das tiefe neuronale Netz zu erkennen.
  9. Computerprogrammprodukt in einem nichtflüchtigen computerlesbaren Medium zur Verwendung in einem Datenverarbeitungssystem, um ein tiefes neuronales Netz (deep neural network (DNN)) mit einer Mehrzahl von Schichten, einschließlich einer oder mehrerer Zwischenschichten, zu schützen, wobei das Computerprogrammprodukt Computerprogrammanweisungen speichert, die bei Ausführen durch das Datenverarbeitungssystem konfiguriert sind zum: Aufzeichnen einer Darstellung von Aktivierungen, die einer Zwischenschicht zugeordnet sind; für jede der einen oder mehreren Darstellungen Trainieren eines Klassifikators; und auf das Trainieren folgend Verwenden der von der mindestens einen oder den mehreren Darstellungen trainierten Klassifikatoren, um eine feindliche Eingabe in das tiefe neuronale Netz zu erkennen.
DE102021125856.1A 2020-11-17 2021-10-05 Erkennen von feindlichen angriffen auf ein tiefes neuronales netz (deep neural network (dnn)) Pending DE102021125856A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/950,684 US12045713B2 (en) 2020-11-17 2020-11-17 Detecting adversary attacks on a deep neural network (DNN)
US16/950,684 2020-11-17

Publications (1)

Publication Number Publication Date
DE102021125856A1 true DE102021125856A1 (de) 2022-05-19

Family

ID=78806062

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021125856.1A Pending DE102021125856A1 (de) 2020-11-17 2021-10-05 Erkennen von feindlichen angriffen auf ein tiefes neuronales netz (deep neural network (dnn))

Country Status (5)

Country Link
US (1) US12045713B2 (de)
JP (1) JP2022080285A (de)
CN (1) CN114519185A (de)
DE (1) DE102021125856A1 (de)
GB (1) GB2601898B (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11893111B2 (en) * 2019-11-26 2024-02-06 Harman International Industries, Incorporated Defending machine learning systems from adversarial attacks
US11891195B2 (en) * 2020-07-29 2024-02-06 The Boeing Company Mitigating damage to multi-layer networks
US11818147B2 (en) * 2020-11-23 2023-11-14 Fair Isaac Corporation Overly optimistic data patterns and learned adversarial latent features
US11785024B2 (en) * 2021-03-22 2023-10-10 University Of South Florida Deploying neural-trojan-resistant convolutional neural networks
US20220318383A1 (en) * 2021-04-05 2022-10-06 Mcafee, Llc Methods and apparatus for malware classification through convolutional neural networks using raw bytes

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040059947A1 (en) 2001-12-12 2004-03-25 Lee Susan C. Method for training a hierarchical neural-network intrusion detector
US20080083029A1 (en) 2006-09-29 2008-04-03 Alcatel Intelligence Network Anomaly Detection Using A Type II Fuzzy Neural Network
US9450978B2 (en) 2014-01-06 2016-09-20 Cisco Technology, Inc. Hierarchical event detection in a computer network
US10944767B2 (en) * 2018-02-01 2021-03-09 International Business Machines Corporation Identifying artificial artifacts in input data to detect adversarial attacks
US11507785B2 (en) * 2020-04-30 2022-11-22 Bae Systems Information And Electronic Systems Integration Inc. Anomaly detection system using multi-layer support vector machines and method thereof

Also Published As

Publication number Publication date
GB202115088D0 (en) 2021-12-08
US12045713B2 (en) 2024-07-23
CN114519185A (zh) 2022-05-20
US20220156563A1 (en) 2022-05-19
GB2601898A (en) 2022-06-15
JP2022080285A (ja) 2022-05-27
GB2601898B (en) 2023-03-22

Similar Documents

Publication Publication Date Title
DE102021125856A1 (de) Erkennen von feindlichen angriffen auf ein tiefes neuronales netz (deep neural network (dnn))
DE112019000631T5 (de) Verwenden von gradienten, um backdoors in neuronalen netzen zu erkennen
DE112018004376T5 (de) Schützen kognitiver systeme vor auf gradienten beruhenden angriffen durch die verwendung irreführender gradienten
DE112020000584T5 (de) Verfahren für unüberwachte bild-zu-bild-übersetzung mit wenigen aufnahmen
DE112018005227T5 (de) Merkmalsextraktion mithilfe von multi-task-lernen
DE112021002259T5 (de) Network intrusion detection durch deep learning
DE202017007528U1 (de) Differenzmetrik für auf maschinellem Lernen basierende Verarbeitungssysteme
DE112011104487T5 (de) Verfahren und System zur prädiktiven Modellierung
DE112021006232T5 (de) Proaktive anomalieerkennung
DE112021001986T5 (de) Verfahren und System zum Verarbeiten von Datenaufzeichnungen
DE112021004652T5 (de) Hintertürerkennung gegnerischer Interpolation
DE112021003629T5 (de) Kompakte darstellung und zeitreihensegmentabruf durch deep learning
DE112021000689T5 (de) Attestierung von neuronalen abläufen
DE102022202017A1 (de) Konzeptbasiertes kontradiktorisches Erzeugungsverfahren mit steuerbarer und diverser Semantik
DE102021213118A1 (de) Verfahren und ein system für black-box-universalangriffe mit geringer abfrage
DE112021005847T5 (de) Dynamische gradientenverschleierung gegen feindliche beispiele bei maschinenlernmodellen
DE112021004174T5 (de) Föderiertes lernen zur anomalieerkennung
DE112020005732T5 (de) Erzeugen von trainingsdaten zur objekterkennung
DE102022212583A1 (de) Bildquantisierung unter Verwendung von Maschinenlernen
DE102018122019A1 (de) Computer implementiertes Verfahren zur Bewertung von Objektbilddaten eines Objektes
DE112021006507T5 (de) Räumlich-zeitliches tiefes lernen für die verhaltensbiometrie
DE112016007411T5 (de) Fuzzy-eingabe für autoencoder
DE102023212504A1 (de) Systeme und Verfahren zum Training eines Videoobjekt-Detektionsmaschinen-Lernmodells mit einem Rahmen von Lehrer und Schüler
DE102023109072A1 (de) Datenaugmentierung für domänenverallgemeinerung
EP3736749A1 (de) Verfahren und vorrichtung zur ansteuerung eines geräts mit einem datensatz

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence
R016 Response to examination communication