-
Technisches Gebiet
-
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum Ermitteln, ob in einem Kommunikationsnetzwerk eine Anomalie vorliegt, ein Computerprogramm, und ein maschinenlesbares Speichermedium.
-
Stand der Technik
-
Aus der nicht vorveröffentlichten
DE 10 2017 210 787 ist ein Verfahren zum Ermitteln, ob in einem Kommunikationsnetzwerk eine Anomalie vorliegt, bekannt, wobei mindestens eine über das Kommunikationsnetzwerk übermittelte Nachricht analysiert wird, indem abhängig von der, d.h. insbesondere aus der, übermittelten Nachricht eine Eingangsgröße eines Kodierers ermittelt wird, wobei mittels des Kodierers eine Zwischengröße reduzierter Dimensionalität ermittelt wird, und wobei abhängig von der Zwischengröße mittels eines Dekodierers eine Ausgangsgröße mit der Dimensionalität der Eingangsgröße ermittelt wird, wobei abhängig von Eingangsgröße und Ausgangsgröße entschieden wird, ob die Anomalie vorliegt, oder nicht.
-
Aus der nicht vorveröffentlichten
DE 10 2017 213 119 ist ein Verfahren zum Ermitteln, ob in einem Kommunikationsnetzwerk eine Anomalie vorliegt, bekannt, wobei in einer ersten Phase ein Diskriminator trainiert wird, zu erkennen, ob über das Kommunikationsnetzwerk übermittelte Nachrichten auf ein Vorliegen der Anomalie hinweisen,
wobei beim Trainieren dem Diskriminator Normaldaten und von einem Generator erzeugte künstliche Daten als Eingangsgröße zugeführt werden und der Diskriminator darauf trainiert wird, zu erkennen, dass keine Anomalie vorliegt, wenn ihm Normaldaten zugeführt werden und dass eine Anomalie vorliegt, wenn ihm künstliche Daten zugeführt werden,
wobei in einer zweiten Phase der Generator darauf trainiert wird, künstliche Daten derart zu erzeugen, dass sie, wenn sie dem Diskriminator zugeführt werden, von diesem mit möglichst großer Wahrscheinlichkeit als Normaldaten klassifiziert werden,
wobei in einer dritten Phase der Diskriminator ein Inhalt von über das Kommunikationsnetzwerk empfangenen Nachrichten als Eingangsgröße zugeführt wird, abhängig von der Eingangsgröße eine Ausgangsgröße ermittelt wird und abhängig von der Ausgangsgröße darauf entschieden wird, ob die Anomalie vorliegt, oder nicht.
-
In den beiden vorgenannten Verfahren werden ausschließlich Normaldaten zum Training verwendet.
-
Vorteil der Erfindung
-
Das Verfahren mit den Merkmalen des unabhängigen Anspruchs 1 hat demgegenüber den Vorteil, dass durch die Verwendung von Trainingsdaten, in denen Anomaliedaten vorliegen eine noch wirksamere Erkennung von Anomalien in dem Kommunikationsnetzwerk möglich ist. Vorteilhafte Weiterbildungen sind Gegenstand der unabhängigen Ansprüche.
-
Offenbarung der Erfindung
-
Ein wichtiger Aspekt heutiger Maschinen, Geräte und Systeme besteht in ihrem internen sowie externen Datenaustausch. Innerhalb eines Geräts werden Daten beispielsweise zwischen einzelnen Bauteilen ausgetauscht, um deren gewünschtes Zusammenwirken zu ermöglichen (z. B. zwischen Steuergeräten in einem Kraftfahrzeug). Ein externer Datenaustausch kann beispielsweise zwischen unabhängigen Geräten derselben Art erfolgen (z. B. zwischen mehreren Fahrzeugen, die sich gemeinsam im selben Verkehr bewegen, oder zwischen Haushaltsgeräten, die innerhalb eines vernetzten Hauses miteinander kommunizieren).
-
In einem realen Zusammenschluss kommunizierender Systeme und Geräte kann der Datenverkehr dabei grundsätzlich in zwei Gruppen unterteilt werden: Die erste Gruppe, das „Normalverhalten“, beschreibt die Art des Datenverkehrs wie er im normalen Betrieb - d.h. ohne Fehler, Ausfälle, äußere Manipulationen o. ä. - anfällt. In einem korrekt arbeitenden System treten dann nur fehlerfreie Daten auf und die einzelnen Daten hängen im Allgemeinen durch spezifische (sowohl stationäre als auch zeitlich veränderliche) Korrelationen voneinander ab.
-
Die zweite Gruppe, „Anomalien“, beschreibt die Art des Datenverkehrs, der vom „Normalverhalten“ abweicht. Aus verschiedenen Gründen können im realen Betrieb in den Daten Abweichungen vom Normalverhalten auftreten. Ursachen dafür können beispielsweise folgender Natur sein:
- (i) Defekte oder ganz ausgefallene Sensoren liefern falsche oder gar keine Daten,
- (ii) Bauteile sind beschädigt,
- (iii) das System wurde durch eine externe Quelle (z. B. durch einen Hackerangriff) manipuliert.
-
Es ist von hoher Bedeutung, solche Anomalien zu erkennen, da es beispielsweise möglich sein könnte, über solche Angriffe die Kontrolle über ein Kraftfahrzeug zu übernehmen.
-
Es ist möglich, ein Verfahren zur Detektion von Anomalien regelbasiert zu implementieren. Hierbei wird für eine Auswahl an möglichem, nicht-normalem Verhalten eine Liste an Abfragen, Überprüfungen und Folgerungen erstellt, anhand der das System verfährt.
-
Ein anderer möglicher Ansatz verwendet einen Satz an Beispieldaten, die zusätzliche Information enthalten, ob es sich dabei um einen normalen oder anormalen Zustand handelt. Geeignete Systeme wie z. B. neuronale Netze können dann anhand dieser Labels trainiert werden (überwachtes Lernen), um später ähnliche Zustände erkennen zu können.
-
Eine Schwierigkeit regelbasierter oder auf dem Training gelabelter Daten basierenden Verfahren ist hierbei, dass die Art und Weise einer möglichen Anomalie vor deren Eintreten bekannt sein sollte. Alleine der spezielle Fall eines (Hacker-)Angriffs auf ein System, um dessen Verhalten zu manipulieren, macht klar, dass eine solche Annahme mit großem Aufwand verbunden ist.
-
Es kann daher wie aus der nicht vorveröffentlichten
DE 10 2017 210 787 bekannt ein datenbasiertes Modell des Normalverhaltens vorgesehen werden, das in der Lage ist, den Raum der möglichen Systemzustände, die während des „Normalverhaltens“ auftreten, in einem reduziert-dimensionalen Raum vollständig abzudecken und aus diesem das Normalverhalten wieder zu reproduzieren, während Anomalien, d. h. Abweichungen vom Normalverhalten, durch das Modell nicht reproduziert werden können. Anhand der Abweichung zwischen dem tatsächlichen Datenpunkt und der Modellvorhersage kann dann ein „Anomaly Score“ berechnet werden, der Auskunft darüber gibt, ob ein Testdatenpunkt als normal oder anormal anzusehen ist.
-
In einem ersten Aspekt betrifft die Erfindung ein Verfahren zum Ermitteln, ob in einem Kommunikationsnetzwerk, insbesondere eines Kraftfahrzeugs, eine Anomalie vorliegt,
wobei in einer Trainingsphase ein unüberwacht trainierbarer Detektor unüberwacht trainiert wird, zu erkennen, dass keine Anomalie vorliegt, wenn ihm Normaldaten zugeführt werden, indem dem Detektor zum Trainieren in dieser ersten Phase tatsächliche Normaldaten als Eingangsdaten zugeführt werden, wobei der Detektor in dieser Trainingsphase auch unüberwacht trainiert wird, zu erkennen, dass eine Anomalie vorliegt, wenn ihm Anomaliedaten zugeführt werden, indem dem Detektor zum Training in dieser zweiten Phase tatsächliche Anomaliedaten als Eingangsdaten zugeführt werden, wobei in einer Detektionsphase dem Detektor ein Inhalt von über das Kommunikationsnetzwerk empfangenen Nachrichten als Eingangsdaten zugeführt wird, abhängig von den Eingangsdaten Ausgangsdaten des Detektors ermittelt werden und abhängig von den Ausgangsdaten darauf entschieden wird, ob die Anomalie vorliegt, oder nicht.
-
Mit „tatsächlichen Anomaliedaten“ sind Daten von real vorgekommenen und aufgezeichneten Anomalien, zu deren Erkennung das Kommunikationsnetzwerk trainiert werden soll. Im Folgenden wird synonym zum Begriff „Eingangsdaten“ auch der Begriff „Eingangsgröße(n)“ verwendet, synonym zum Begriff „Ausgangsdaten“ auch der Begriff „Ausgangsgröße(n)“.
-
Dieses Verfahren nutzt also die überraschende Erkenntnis aus, dass es trotz der Verwendung des Lerndogmas des unüberwachten Lernens möglich ist, sowohl Normaldaten als auch Anomaliedaten zum Trainieren zu verwenden. In einem weiterbildenden Aspekt ist vorgesehen, dass in der ersten Phase und in der zweiten Phase jeweils Parameter des Detektors derart angepasst werden, dass die jeweiligen Parameter in der ersten Phase eine erste Kostenfunktion und in der zweiten Phase eine zweite Kostenfunktion optimieren, wobei diese Kostenfunktionen jeweils abhängig von Ausgangsdaten des Detektors ermittelt werden und derart gewählt sind, dass dann, wenn dem Detektor tatsächliche Anomaliedaten als Eingangsdaten zugeführt werden, die erste Kostenfunktion nach der zweiten Phase weniger optimale Werte annimmt als vor der zweiten Phase.
-
Die Optimierung ist hierbei entweder eine Minimierung oder eine Maximierung. Für den Fall, dass die erste Kostenfunktion bei der Optimierung minimiert wird, bedeutet „weniger optimal“, dass die erste Kostenfunktion nach der zweiten Phase größere Werte annimmt als vor der zweiten Phase, für den Fall, dass die erste Kostenfunktion bei der Optimierung maximiert wird, bedeutet „weniger optimal“, dass die erste Kostenfunktion nach der zweiten Phase kleinere Werte annimmt als vor der zweiten Phase.
-
In einer alternativen oder zusätzlichen Weiterbildung kann vorgesehen sein, dass in der Trainingsphase der Detektor ein- oder mehrfach zunächst mit Normaldaten trainiert wird und dann mit Anomaliedaten trainiert wird.
-
Sollen also Anomaliedaten für das Training verwendet werden, kann also nach jeweils einer ersten Anzahl Trainingsiterationen mit Normaldaten ein derart beschriebener Iterationsschritt eine zweite Anzahl von Malen durchgeführt werden.
-
Ebenso ist es möglich, das Anomalieerkennungssystem mit neuen Daten (welche Normaldaten und/oder Anomaliedaten enthalten können) zu aktualisieren. Hierzu kann die oben beschriebene Trainingsiteration durchgeführt werden. Eine vorteilhafte Wahl ist es, den Wert der ersten Anzahl gleich null zu setzen, d.h. es werden ausschließlich Trainingsiterationen mit Anomaliedaten durchgeführt.
-
In einer alternativen Weiterbildung kann vorgesehen sein, dass in der Trainingsphase der Detektor mit gemischten Batches trainiert wird, die sowohl Normaldaten als auch Anomaliedaten umfassen.
-
In einem weiteren Aspekt kann vorgesehen sein, dass der Detektor durch einen Autoencoder gegeben ist, wobei dann bevorzugt abhängig von einem Abstand der Ausgangsdaten von den Eingangsdaten des Detektor darauf entschieden wird, ob die Anomalie vorliegt, oder nicht.
-
Die grundlegende Idee zur Verwendung eines Autoencoders ist folgende: Die (physikalische oder kausale) Ursache für die anfallenden Daten im Normalverhalten lässt sich in einem relativ niedrig-dimensionalen Raum beschreiben. Beispielsweise ist der Zustand eines Kraftfahrzeugs oder seines Motors durch wenige physikalische Größen wie Geschwindigkeit, Beschleunigung, Temperatur, Luftdruck, usw. festgelegt. Die daraus entstehende Menge an (Mess-)Daten ist wesentlich höher-dimensional und untereinander teils hoch korreliert. (Beispielsweise gibt es in einem Kraftfahrzeug u.U. mehrere Tausend Sensordaten, die durch entsprechende Kennfelder in Zusammenhang stehen.)
-
Es ist folglich möglich, gemäß einem Encoder-Decoder-Schema den hochdimensionalen (Mess-)Datenraum im Wesentlichen ohne Informationsverlust auf einen niedrig-dimensionaleren Raum latenter Variablen zu projizieren und umgekehrt. Daten des Normalverhaltens werden dabei in guter Näherung auf sich selbst abgebildet, während vom Normalverhalten abweichende Daten durch dieses Schema nicht reproduziert werden können. Anhand eines Rekonstruktionsfehlers kann somit beurteilt werden, ob es sich bei einem Datenpunkt um Normalverhalten handelt oder um eine Anomalie.
-
In einem weiteren Aspekt betrifft die Erfindung ein Verfahren zum Trainieren des erwähnten Anomalieerkennungssystems in der vorgenannten Trainingsphase, wobei in einer Trainingsphase ein unüberwacht trainierbarer Detektor unüberwacht trainiert wird, zu erkennen, dass keine Anomalie vorliegt, wenn ihm Normaldaten zugeführt werden, indem dem Detektor zum Trainieren in dieser ersten Phase tatsächliche Normaldaten als Eingangsdaten zugeführt werden, wobei der Detektor in dieser Trainingsphase auch unüberwacht trainiert wird, zu erkennen, dass eine Anomalie vorliegt, wenn ihm Anomaliedaten zugeführt werden, indem dem Detektor zum Training in dieser zweiten Phase tatsächliche Anomaliedaten als Eingangsdaten zugeführt werden.
-
In einer Weiterbildung kann vorgesehen sein, dass in der Trainingsphase dem Detektor neben Normaldaten und Anomaliedaten auch von einem Generator erzeugte künstliche Daten als Eingangsdaten zugeführt werden und der Detektor darauf trainiert wird, zu erkennen, dass keine Anomalie vorliegt, wenn ihm Normaldaten zugeführt werden und dass eine Anomalie vorliegt, wenn ihm künstliche Daten zugeführt werden, wobei in einer weiteren Generator-Trainingsphase der Generator darauf trainiert wird, künstliche Daten derart zu erzeugen, dass sie, wenn sie dem Detektor zugeführt werden, von diesem mit möglichst großer Wahrscheinlichkeit als Normaldaten klassifiziert werden.
-
In noch weiteren Aspekten betrifft die Erfindung ein Computerprogramm, welches eingerichtet ist, eines der vorgenannten Verfahren nach einem der vorherigen Ansprüche auszuführen, wenn es auf einem Computer ausgeführt wird, sowie ein maschinenlesbares Speichermedium, auf dem dieses Computerprogramm gespeichert ist.
-
In einem noch weiteren Aspekt betrifft die Erfindung das vorgenannte Anomalieerkennungssystem welches mit genannten Trainingsverfahren trainiert worden ist.
-
In einem noch weiteren Aspekt betrifft die Erfindung ein Trainingssystem für das vorgenannte Anomalieerkennungssystem, wobei das Trainingssystem eingerichtet ist, das vorgenannte Trainingsverfahren auszuführen (beispielsweise durch Abspielen des vorgenannten Computerprogramms).
-
Nachfolgend werden Ausführungsformen der Erfindung unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. In den Zeichnungen zeigen:
- 1 schematisch ein Kommunikationsnetzwerk in einem Kraftfahrzeug;
- 2 schematisch einen Signalfluss in der Überwachungseinheit;
- 3 einen beispielhaften Aufbau von Kodierer und Dekodierer;
- 4 einen weiteren beispielhaften Aufbau von Kodierer und Dekodierer;
- 5 einen beispielhaften Aufbau eines Systems zum Training von Detektor und Generator;
- 6 in einem Flussdiagramm eine Ausführungsform des Verfahrens zum Detektieren von Anomalien;
- 7 zeitliche Verläufe eines Eingangssignals, eines Ausgangssignals und ihres Differenzsignals;
- 8 in einem Flussdiagramm eine Ausführungsform eines Verfahrens zum Trainieren des Detektors;
- 9 in einem Flussdiagramm eine Ausführungsform eines Aspekts des Verfahrens zum Trainieren von Diskriminator und Generator.
-
Beschreibung der Ausführungsbeispiele
-
1 zeigt ein beispielhaftes Kommunikationsnetzwerk in einem Kraftfahrzeug 100. Das Kommunikationsnetzwerk ist in diesem Beispiel durch einen CAN-Bus 300 gegeben, über den Kommunikationsteilnehmer 110, 120 und 130 durch Austausch von Nachrichten miteinander kommunizieren können. Die Überwachungseinheit 200 ist ebenfalls an den CAN-Bus 300 angeschlossen und kann Nachrichten, die die Kommunikationsteilnehmer 110, 120, 130 einander zuschicken ebenfalls empfangen und ggf. selbst eine Nachricht auf den CAN-Bus 300 absetzen, um bei erkannter Anomalie Gegenmaßnahmen einzuleiten. Kommunikationsteilnehmer 110, 120, 130 und das sie verbindende Netzwerk, hier der CAN-Bus 300, bilden zusammen das Kommunikationsnetzwerk.
-
Selbstverständlich ist die Erfindung nicht auf einen CAN-Bus beschränkt. Stattdessen kann sie auch in Kraftfahrzeugen angewandt werden, in denen ein anderer Bus oder eine Kombination mehrerer Bus-Systeme vorhanden sind, beispielsweise Ethernet. Das Verfahren kann auch außerhalb eines Kraftfahrzeugs angewendet werden, beispielsweise in einem Smart Home.
-
Die Überwachungseinheit 200 weist einen Computer 210 auf, der ein maschinenlesbares Speichermedium 220 aufweist. Auf diesem maschinenlesbaren Speichermedium 220 kann ein Computerprogramm gespeichert sein, das Anweisungen umfasst, die, wenn sie von dem Computer 210 ausgeführt werden, das erfindungsgemäße Verfahren ausführen. Selbstverständlich ist es auch möglich, dass Teile des Verfahrens oder das gesamte Verfahren in Hardware implementiert sind.
-
2 illustriert den Signalfluss innerhalb der Überwachungseinheit 200. Einem Eingangsblock 1000 wird eine Nachricht N zugeführt, die die Überwachungseinheit 200 über den CAN-Bus 300 empfangen hat. Der Eingangsblock extrahiert aus der Nachricht eine Eingangsgröße x, beispielsweise einen Nutzdateninhalt (Englisch „pay load“) und/oder Metadaten der Nachricht N. Diese Eingangsgröße wird dem Detektor 1050 zugeführt, der hieraus die Ausgangsgröße y ermittelt. Die Ausgangsgröße y kann eine Wahrscheinlichkeit quantifizieren, dass im Kommunikationsnetzwerk eine Anomalie vorliegt. Der Detektor 1050 wird durch Parameter P parametriert, die von einem ersten Parameterspeicher 1110 zur Verfügung gestellt werden.
-
Die Ausgangsgröße y wird beispielhaft einem Überwachungsblock 1300 zugeführt, der abhängig hiervon ein Fehlersignal F ermittelt. Das Fehlersignal F charakterisiert, ob im Kommunikationsnetzwert, also in der Kommunikation zwischen den Kommunikationsteilnehmern 110, 120, 130 über den CAN-Bus 300 oder in der Überwachungseinheit 200 eine Anomalie vorliegt. Beispielsweise kann das Fehlersignal F ein binär codiertes Signal sein, z.B. „0“ = „keine Anomalie liegt vor“, „1“ = „eine Anomalie liegt vor“. Das Fehlersignal F kann beispielsweise auf den Wert „1“ gesetzt werden wenn der Wert des Ausgangssignals y einen vorgebbaren Schwellwert überschreitet.
-
Das Fehlersignal F wird optional einer Ansteuerung 1400 zugeführt, die hieraus eine Ansteuergröße A ermittelt, die über den CAN-Bus 300 einem oder mehreren der Kommunikationsteilnehmer 110, 120, 130 des Kommunikationsnetzwerks übermittelt wird.
-
Beispielsweise ist es möglich, dass das Kraftfahrzeug 100 in einen abgesicherten Zustand überführt wird. Handelt es sich bei dem Kraftfahrzeug 100 um ein autonom fahrbares Kraftfahrzeug 100, kann ein Fahrer aufgefordert werden, die Kontrolle des autonom fahrenden Kraftfahrzeugs 100 wieder zu übernehmen. Alternativ oder zusätzlich ist es möglich, dass die Kommunikation über den CAN-Bus 300 auf essentielle Nachrichten eingeschränkt wird.
-
Enthält das Fehlersignal F bereits spezifische Informationen darüber was die Ursache für die Anomalie ist, kann die Ansteuergröße A eine spezifische Gegenmaßnahme einleiten, wie etwa einen der Kommunikationsteilnehmer 110, 120, 130 vom Datenverkehr über den CAN-Bus abzuschneiden.
-
3 zeigt beispielhaft den Aufbau des Detektors 1050 gemäß eines ersten Ausführungsbeispiels, in dem der Detektor 1050 durch einen Autoencoder gegeben ist. Hier umfasst der Detektor 1050 einen Kodierer 1100 und einen Dekodierer 1199. Die Komponenten der Eingangsgröße x werden hier mit x1, x2, x3 bezeichnet. Diese werden Neuronen a1, a2, a3, a4 einer ersten Zwischenschicht 1111 zugeführt. Aus den Ausgangsgrößen der Neuronen a1, a2, a3, a4 wird die Zwischengröße h mit Komponenten h1, h2 ermittelt. Diese Komponenten werden Neuronen b1, b2, b3, b4 einer zweiten Zwischenschicht 1211 zugeführt, aus der die Ausgangsgröße y mit Komponenten y1, y2, y3 ermittelt werden.
-
Der Autoencoder 1050 kann beispielsweise auch als „stacked Autoencoder“, „denoising Autoencoder“, „variational Autoencoder“, „smooth Autoencoder“, „rekurrenter Autoencoder“ oder „LSTM Autoencoder“ implementiert sein.
-
Selbstverständlich können erste Zwischenschicht 1111 und/oder zweite Zwischenschicht 1211 jeweils wieder aus einer Mehrzahl von Schichten bestehen, beispielsweise, wenn der Autoencoder 1150 als „stacked Autoencoder“ oder als „deep Autoencoder“ implementiert ist.
-
Ganz konkret kann ein solcher Autoencoder 1150 beispielsweise durch drei aufeinander folgende fully-connected Layer implementiert sein, wobei der mittlere der drei fully-connected Layer kleiner dimensioniert ist als die beiden äußeren.
-
4 zeigt beispielhaft den Aufbau von Kodierer 1100 und Dekodierer 1199 gemäß einem zweiten Ausführungsbeispiel. Die Eingangsgröße x mit Komponenten x1, x2, x3 wird hierbei einem Block 1120 zugeführt, der eine Hauptkomponentenanalyse (durch Multiplikation einer geeigneten Matrix M mit der Eingangsgröße x) durchführt. Als Ergebnis dieser Matrixmultiplikation wird eine Kodierer-Zwischengröße k mit Komponenten k1, k2, k3 ermittelt, und einem zweiten Block 1130 zugeführt. Der zweite Block 1130 ermittelt hieraus die Zwischengröße h mit Komponenten h1, h2, beispielsweise, indem nur diejenigen N Komponenten k1, k2, k3 der Kodierer-Zwischengröße k übernommen werden, deren zugehörige Eigenwerte bei der Hauptkomponentenanalyse den größten Wert haben. N ist hierbei eine fest vorgebbare Zahl. D.h. die Kodierer-Zwischengröße k wird also mathematisch auf einen Raum, der der Dimensionalität der Zwischengröße h entspricht, projiziert. Blöcke 1120 und 1130 entsprechen zusammen dem Kodierer 1100.
-
Der Dekodierer 1199 umfasst einen dritten Block 1220 und einen vierten Block 1230. Der dritte Block 1220 ermittelt aus der Zwischengröße h eine Dekodierer-Zwischengröße p mit Komponenten p1, p2, p3, aus denen der vierte Block mittels einer inversen Hauptkomponentenanalyse (also einer Matrixmultiplikation der (links-)Inversen M_inv der Matrix M mit der Dekodierer-Zwischengröße p). Als Ergebnis dieser Matrixmultiplikation wird die Ausgangsgröße y mit Komponenten y1, y2, y3 ermittelt.
-
Ausgangsgröße y und Dekodierer-Zwischengröße p haben die gleiche Dimensionalität. Um die Dekodierer-Zwischengröße p aus der Zwischengröße h zu ermitteln, kann der dritte Block 1220 die vektorwertige Größe h beispielsweise kanonisch einbetten (d.h. die Komponenten der „fehlenden“ Dimensionen auf den Wert „Null“ ergänzen).
-
Anstatt einer Hauptkomponentenanalyse kann in Block 1120 auch eine Unabhängigkeitsanalyse durchgeführt werden. In Block 1230 wird dann statt einer inversen Hauptkomponentenanalyse eine inverse Unabhängigkeitsanalyse durchgeführt.
-
Selbstverständlich ist es auch möglich, Hauptkomponentenanalyse und Unabhängigkeitsanalyse hintereinander auszuführen.
-
Noch ferner ist es möglich, dass anstelle oder zusätzlich zur dimensionalen Reduktion im zweiten Block 1130 und dimensionalen Einbettung im dritten Block 1220 ein Autoencoder, wie er beispielhaft in 3 illustriert ist, eingesetzt wird.
-
5 illustriert den Aufbau einer Vorrichtung 400 zum Trainieren des Detektors 1050 gemäß einer Ausführungsform. Die Vorrichtung 400 kann als Computerprogramm implementiert und auf dem maschinenlesbaren Speichermedium 220 der Überwachungseinheit 200 implementiert sein. Sie kann aber auch in einer separaten Vorrichtung implementiert sein, beispielsweise als Computerprogramm, das auf einem PC abläuft.
-
Über einen Schalter 1150 kann ausgewählt werden, welche Daten dem Detektor 1050 als Eingangsdaten zugeführt werden. Dem Detektor 1050 werden als Eingangsdaten x in einer ersten Schalterstellung A Normaldaten n zugeführt, die von einem Block 1101 generiert werden, beispielsweise, indem sie aus einer Datei ausgelesen werden.
-
In einer zweiten Schalterstellung B werden dem Detektor 1050 Anomaliedaten a als Eingangsdaten x zugeführt, die von einem Block 1301 generiert werden, beispielsweise, indem sie aus einer Datei ausgelesen werden.
-
In einer optionalen dritten Schalterstellung C werden dem Detektor 1050 künstliche Daten f zugeführt, die von einem Generator 1200 erzeugt werden. Der Generator 1200 erzeugt die künstlichen Daten f abhängig von Zufallsgrößen r, die ihm von einem Block 1201 zugeführt werden. Block 1201 kann beispielsweise einen Pseudo-Zufallszahlengenerator umfassen, oder einen (beispielsweise in HW implementierten) Zufallszahlengenerator.
-
Der Detektor 1050 wird durch erste Parameter P parametriert, die von einem ersten Parameterspeicher 1110 zur Verfügung gestellt werden. Der Generator 1200 wird durch zweite Parameter Q parametriert, die von einem zweiten Parameterspeicher 1210 zur Verfügung gestellt werden. Bei dem ersten Parameterspeicher 1110 und/oder bei dem zweiten Parameterspeicher 1210 kann es sich beispielsweise um dedizierte Speicherbereiche in einem maschinenlesbaren Speichermedium handeln.
-
Detektor 1050 und/oder Generator 1200 können jeweils durch ein neuronales Netz realisiert sein, beispielsweise durch eine Hintereinanderschaltung mehrerer fully-connected layer.
-
Der Generator 1200 erzeugt die Ausgangsgröße y und führt sie einem Block 1500 zu. Block 1500 wird optional die Stellung des Schalters 1150 übermittelt.
-
Block 1500 ermittelt neue Parameter P', Q', die dem ersten Parameterspeicher 1110 und/oder dem zweiten Parameterspeicher 1120 übermittelt werden. Die neuen ersten Parameter P' ersetzen im ersten Parameterspeicher 1110 die aktuellen ersten Parameter P und/oder die neuen zweiten Parameter Q' ersetzen im zweiten Parameterspeicher 1120 die aktuellen zweiten Parameter Q.
-
6 zeigt in einem Flussdiagramm beispielhaft ein Verfahren, wie es in der Überwachungseinheit 200 durchgeführt werden kann.
-
Zunächst (2000) werden eine oder mehrere CAN-Nachrichten N über den CAN-Bus 300 empfangen. Dann (2100) extrahiert Eingangsblock 1000 den Nutzdateninhalt und erzeugt so die Eingangsgröße x = (x1, x2, x3 ... xd)T, wobei d der Dimensionalität der Eingangsgröße x entspricht.
-
Anschließend (2200) wird mittels Kodierer 1100 und Dekodierer 1199 die Ausgangsgröße y = (y1, y2, y3 ... yd)T ermittelt.
-
Nun (2300) ermittelt Überwachungsblock 1300 das Differenzsignal δ = ∥(δ1, δ2, δ3 ...δd)T ∥ mit δi = xi - yi für i=1...d und überprüft, ob das Differenzsignal δ größer ist als ein vorgebbarer Schwellwert S. Ist dies nicht der Fall (Ausgang „n“), wird zu Schritt 2400 verzweigt, in dem das Fehlersignal F einen Wert erhält, der aussagt, dass kein Fehler detektiert wurde, und dieser Durchgang des Verfahrens endet. Andernfalls (Ausgang „j“) wird zu Schritt 2500 verzweigt. Das Fehlersignal F erhält einen Wert, der aussagt, dass ein Fehler detektiert wurde. Dann (2600) wird das Fehlersignal F der Ansteuerung 1400 übermittelt, die optional abhängig vom Wert des Fehlersignals F die Ansteuergröße A ermittelt. Damit endet das Verfahren.
-
Alternativ oder zusätzlich kann in Schritten 2300-2600 auch für jede Komponente δi des Differenzsignals δ separat überprüft werden, ob sie den vorgebbaren Schwellwert S überschreitet und ggf. ein für jede der Komponenten individuell vorgebbares Fehlersignal F definiert werden. Ansonsten kann das Verfahren wie oben beschrieben ablaufen.
-
Alternativ oder zusätzlich kann in den Schritten 2300-2600 auch ein anderes Fehlermaß δ = δ(x, y) abhängig von Eingangsgröße x und Ausgangsgröße y verwendet werden, das mit einem Schwellwert S verglichen wird, um festzustellen, ob eine Anomalie vorliegt.
-
In den obigen Ausführungsbeispielen muss der Schwellwert S nicht zwangsläufig konstant sein. Er kann auch abhängig von der Eingangsgröße x gewählt werden, also S = S(x) oder abhängig von Ausgangsgröße y, also S = S(y), oder abhängig von beiden, also S = S(x,y).
-
7 zeigt beispielhaft zeitliche Verläufe der (zur Vereinfachung eindimensional dargestellten) Eingangsgröße x, der (zur Vereinfachung eindimensional dargestellten) Eingangsgröße y und des Differenzsignals δ. Im konkreten Beispiel tritt vor einem ersten Zeitintervall T1 ein Fehler in einer Einspritzpumpe des Kraftfahrzeugs 100 auf. Dieser Fehler bewirkt, dass im ersten Zeitintervall T1, in einem zweiten Zeitintervall T2 und in einem dritten Zeitintervall T3 das Differenzsignal δ den Schwellwert S überschreitet, sodass hier auf einen Fehler erkannt wird.
-
8 zeigt beispielhaft ein Verfahren zum Trainieren des in
3 beispielhaft dargestellten Autoencoders
1150. Zunächst (
3000) werden Trainingsdaten generiert, beispielsweise indem Eingangssignale
x aus einer Datei ausgelesen werden. Dann (
3100) werden mittels des mit aktuellen Parameterwerten
P parametrierten Autoencoders
1150 Ausgangssignale
y ermittelt und anschließend (3200) Differenzsignale δ
P(x,y) generiert. Das aufsummierte Differenzsignal δ
P = Σ
(x,y) δ
P(x, y) wird auch als Kostenfunktion bezeichnet. Dann (
3300) werden (z.B. in einem Gradientenabstiegsverfahren und Backpropagation) optimale Parameterwerte
näherungsweise ermittelt, und der Autoencoder
1150 wird dann vorzugsweise mit diesen optimalen Parameterwerten P* eingesetzt. Mit „näherungsweiser Ermittlung“ ist gemeint, dass selbstverständlich im Allgemeinen die ermittelten optimalen Parameterwerte P* Gleichung (I) nicht exakt erfüllen, sondern einen numerischen Fehler aufweisen. Dieser numerische Fehler kann beispielsweise im Wesentlichen dadurch bestimmt sein, dass ein Konvergenzkriterium vor Erreichen des tatsächlichen Optimalwerts erfüllt ist und das numerische Verfahren beendet wird, und/oder dadurch bestimmt sein, dass das numerische Verfahren statt des globalen Minimums ein lokales Minimum erreicht hat.
-
Die Abfolge der Schritte 3100, 3200 und 3300 kann optional mehrfach wiederholt werden, beispielsweise n1 mal, wobei n1 eine vorgebbare Zahl ist.
-
Anschließend (3400) wird Schalter 1150 in Stellung „B“ umgeschaltet, und es werden Trainingsdaten generiert, beispielsweise indem anomale Eingangssignale x aus einer Datei ausgelesen werden. Dann (3500) werden mittels des mit aktuellen Parameterwerten P parametrierten Autoencoders 1150 Ausgangssignale y ermittelt und anschließend (3600) zweite Differenzsignale δ2P(x,y) generiert. Das aufsummierte zweite Differenzsignal δ2P = Σ(x,y) δ2P(x,y) wird auch als zweite Kostenfunktion bezeichnet.
-
Beispielsweise kann das zweite Differenzsignal δ2
P als
gewählt werden.
-
Anschließend (
3700) werden analog zu Schritt
3300 (z.B. in einem Gradientenabstiegsverfahren und Backpropagation) näherungsweise optimale Parameterwerte
ermittelt.
-
Diese Wahl der zweiten Kostenfunktion δ2
P ist nicht zwingend, sie sollte jedoch vorteilhafterweise so gewählt sein, dass dann, wenn Anomaliedaten
a als Eingangsdaten
x verwendet werden, gilt
-
Im optionalen Schritt
3800 wird mit den optimalen Parameterwerte P* das Differenzsignal δ
P* ermittelt und der Schwellwert S auf den Wert
mit einem vorgebbaren Sicherheitsfaktor
F (z.B. F = 1,2) gesetzt. Damit endet dieses Verfahren.
-
9 illustriert in einem Flussdiagramm einen weiteren Aspekt einer Ausführungsform des Verfahrens, wie es von der Vorrichtung 400 zum Trainieren des Detektors 1050 an Stelle der Schritte 3000 bis 3300 des in 8 illustrierten Verfahrens ablaufen kann.
-
Zunächst werden Normaldaten n von Block 1101 generiert (4000), beispielsweise aus einer Datei ausgelesen. Dann werden Zufallsgrößen r generiert (4100), beispielsweise ebenfalls aus einer Datei ausgelesen (nachdem sie vorher von einem echten Zufallszahlengenerator generiert wurden). Die Zufallsgrößen r werden dem Generator 1200 zugeführt, der abhängig von Zufallsgrößen r und zweiten Parametern Q die künstlichen Daten f erzeugt (4200).
-
D.h. der Generator
1200 setzt eine üblicherweise nichtlineare mathematische Beziehung g
um. Die Funktion g kann beispielsweise wie beschrieben durch ein neuronales Netzwerk gegeben sein.
-
Nun wird der Detektor 1050 überwacht trainiert (4300): Durch Wahl der Schalterstellung A, C werden dem Detektor 1050 wechselweise Batches von Normaldaten n bzw. künstlichen Daten f als Eingangsgröße x zugeführt, und wie in Formel 1 beschrieben Ausgangsgrößen y ermittelt.
-
Die Wahl der Schalterstellung A, C vermittelt also der Eingangsgröße x indirekt ein Label, je nachdem, ob die Eingangsgröße x ein Normaldatum n oder ein künstliches Datum f ist. Daher ist es selbstverständlich auch möglich, dem Detektor gemischte Batches zuzuführen, die sowohl Normaldaten n als auch künstliche Größen f enthalten.
-
Durch ein Gradientenabstiegsverfahren wird nun eine von den ermittelten Ausgangsgrößen y, der Schalterstellung A, C und von den ersten Parametern P abhängige Kostenfunktion k(y; P) (englisch: loss function) optimiert, beispielsweise (wenn der Detektor 1050durch ein neuronales Netz gegeben ist) mittels Backpropagation. Die Kostenfunktion k ist dabei derart gewählt, dass sie umso kleinere Werte annimmt, je häufiger der Detektor 1050 auf das Vorliegen einer Anomalie entschieden hat, wenn ihm künstliche Daten f zugeführt wurden, und auf die Abwesenheit einer Anomalie entschieden hat, wenn ihm Normaldaten n zugeführt wurden. Dies kann im Ausführungsbeispiel dadurch geschehen, dass die Kostenfunktion k so realisiert ist, dass der Ausgabewert y des Detektors 1050 mit der wahren Label A, C für jeden Trainingspunkt der Eingangsdaten x verglichen wird. Sowohl auf künstlichen Daten als auch auf normalen Daten sollte diese Abweichung klein sein.
-
Es sei angemerkt, dass dieses Tainieren des Detektors 1050 keine mit Labeln versehenen Trainingsdaten erfordert und daher trotz des implizit durch die Stellung des Schalters 1150 gegebenen Labels ein unüberwachtes Trainingsverfahren ist.
-
Somit werden in jeder Trainingsiteration neue Parameterwerte P* bestimmt, die beispielsweise durch ein numerisches, iteratives Verfahren die Lösung der Gleichung
approximieren. Die ersten Parameterwerte
P werden durch die neuen Parameterwerte P* ersetzt.
-
Dann wird der Generator 1200 trainiert (4400). Es werden erneut Zufallsgrößen r generiert (optional können auch die oben in Schritt 3100 bereits generierten Zufallsgrößen r übernommen werden) dem Generator 1200 zugeführt, und dann die künstlichen Daten f in Abhängigkeit der aktuellen zweiten Parameterwerte Q generiert. Schalter 1150 wird in der zweiten Schalterstellung B gehalten und die künstlichen Daten f dem Detektor 1050 zugeführt. Der Detektor 1050 ermittelt abhängig von den aktuellen ersten Parameterwerten P erneut die Ausgangsgröße y. Block 1500 ermittelt nun durch ein Gradientenabstiegsverfahren eine von der Ausgangsgröße y, von den ersten Parametern P und zweiten Parametern Q abhängige zweite Kostenfunktion m(y; P, Q).
-
Ist der Detektor 1050 so konfiguriert, dass die Ausgangsgröße y als Wahrscheinlichkeit interpretiert wird, dass es sich bei der Eingangsgröße x um Normaldaten n handelt, kann die zweite Kostenfunktion m(y;P,Q) so konfiguriert werden, dass sie angibt, wie wahrscheinlich es sich um Normaldaten n handelt. Die Kostenfunktion m(y;P,Q) kann dann minimiert werden, beispielsweise durch Backpropagation (wenn der Detektor 1050 und der Generator 1200 neuronale Netze sind).
-
Hierdurch kann erreicht werden, dass der Detektor 1050 vom Generator 1200 generierte künstliche Daten f wahrscheinlicher als Normaldaten n ansieht.
-
Somit werden in jeder Trainingsiteration neue zweite Parameterwerte Q* bestimmt, die beispielsweise durch ein numerisches, iteratives Verfahren die Lösung der Gleichung
approximieren. Die zweiten Parameterwerte
Q werden durch die neuen zweiten Parameterwerte Q* ermittelt.
-
Vorzugsweise verzweigt das Verfahren zurück zu Schritt 400 und führt die Schritte 4000 bis 4400 wiederholt aus, beispielsweise eine vorgebbare Anzahl von Wiederholungen oder bis ein Konvergenzkriterium des ersten Parameterwerts P und/oder des zweiten Parameterwerts Q erfüllt ist.
-
Damit endet dieser Teil des Verfahrens.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- DE 102017210787 [0002, 0013]
- DE 102017213119 [0003]