DE112021003999T5 - Kontextsensitive anomalieerkennung - Google Patents

Kontextsensitive anomalieerkennung Download PDF

Info

Publication number
DE112021003999T5
DE112021003999T5 DE112021003999.7T DE112021003999T DE112021003999T5 DE 112021003999 T5 DE112021003999 T5 DE 112021003999T5 DE 112021003999 T DE112021003999 T DE 112021003999T DE 112021003999 T5 DE112021003999 T5 DE 112021003999T5
Authority
DE
Germany
Prior art keywords
context
wavelets
data
training
computer
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
DE112021003999.7T
Other languages
English (en)
Inventor
Joseph Paul Wigglesworth
Arnamoy Bhattacharyya
Cristiana Amza
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 DE112021003999T5 publication Critical patent/DE112021003999T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3075Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved in order to maintain consistency among the monitored data, e.g. ensuring that the monitored data belong to the same timeframe, to the same system or component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • 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
    • 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/044Recurrent networks, e.g. Hopfield networks
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing
    • G06F2218/02Preprocessing
    • G06F2218/04Denoising
    • G06F2218/06Denoising by applying a scale-space analysis, e.g. using wavelet analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Software Systems (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

Ein auf einem Computer implementiertes Verfahren zur kontextsensitiven Anomalieerkennung enthält ein Empfangen eines Signals, das Echtzeitdaten enthält, ein Aufteilen des empfangenen Signals in einen Satz von Trainings-Wavelets, die durch einen jeweiligen Trainings-Kontext begrenzt sind, ein Erzeugen eines Vorhersagemodells für den Trainings-Kontext durch Verarbeiten des Satzes von Trainings-Wavelets durch ein rekurrentes neuronales Netz, um Muster in einer Sequenz von Daten eines jeweiligen Trainings-Wavelets zu identifizieren. Das Verfahren enthält als Reaktion auf ein Ausführen eines aktuellen Kontextes, der sich von dem Trainings-Kontext unterscheidet, ein Extrahieren von aktuellen Wavelets aus einem Signal des aktuellen Kontextes, ein Identifizieren einer paarweisen Übereinstimmung zwischen selben Dimensionen der aktuellen Wavelets und eines Wavelet-Musters des Vorhersagemodells durch Ausrichten von Sequenzen des aktuellen Wavelets und Sequenzen des Wavelet-Musters des Vorhersagemodells. Nach einem Ermitteln, dass ein kumulativer Gesamtabstand zwischen den beiden Sequenzen einen vorgegebenen Schwellenwert überschreitet, wird eine Anomalie identifiziert.

Description

  • HINTERGRUND
  • Die vorliegende Offenbarung bezieht sich auf Systeme zur kontextsensitiven Anomalieerkennung und auf Verfahren zur Anomalieerkennung. Im Besonderen bezieht sich die vorliegende Offenbarung auf Systeme und Verfahren zum automatischen Ermitteln eines Kontextes von Echtzeitdaten und zum Erkennen von Anomalien aus Echtzeitdaten, die von einer oder mehreren Datenquellen eingehen, und auf Grundlage der Kontextermittlung.
  • Bei bestehenden Ansätzen bei der Anomalieerkennung muss ein Benutzer den Kontext der Echtzeitdaten manuell identifizieren und die darin vorhandenen Anomalien identifizieren. Es kann wünschenswert sein, den Prozess der Kontexterkennung und der Anomalieerkennung zu automatisieren und dadurch die Abhängigkeit von einer durch den Benutzer bereitgestellten Klassifizierung und/oder Identifizierung derselben zu verringern.
  • KURZDARSTELLUNG
  • Ausführungsformen der vorliegenden Offenbarung beziehen sich auf ein auf einem Computer implementiertes Verfahren zur kontextsensitiven Anomalieerkennung. Das Verfahren enthält ein Empfangen eines Signals, das Echtzeitdaten enthält, ein Aufteilen des empfangenen Signals in einen Satz von Trainings-Wavelets, die durch einen jeweiligen Trainings-Kontext begrenzt sind, ein Erzeugen eines Vorhersagemodells für den Trainings-Kontext durch Verarbeiten des Satzes von Trainings-Wavelets durch ein rekurrentes neuronales Netz, um Muster in einer Sequenz von Daten eines jeweiligen Trainings-Wavelets zu identifizieren. Das Verfahren enthält darüber hinaus als Reaktion auf ein Ausführen eines aktuellen Kontextes, der sich von dem Trainings-Kontext unterscheidet, ein Extrahieren von aktuellen Wavelets aus einem Signal des aktuellen Kontextes, ein Identifizieren einer paarweisen Übereinstimmung zwischen selben Dimensionen der aktuellen Wavelets und eines Wavelet-Musters des Vorhersagemodells durch Ausrichten von Sequenzen des aktuellen Wavelets und Sequenzen des Wavelet-Musters des Vorhersagemodells. Das Verfahren enthält darüber hinaus als Reaktion auf ein Ermitteln, dass ein kumulativer Gesamtabstand zwischen den beiden Sequenzen einen vorgegebenen Schwellenwert überschreitet, ein Identifizieren einer Anomalie.
  • Sonstige Ausführungsformen beziehen sich auf ein Computerprogrammprodukt, das die oben beschriebenen Verfahren einsetzt.
  • Sonstige Ausführungsformen beziehen sich auf ein auf einem Computer implementiertes Verfahren zum Identifizieren eines Kontextes. Das Verfahren enthält ein Empfangen von Echtzeitdaten des Kontextes über einen Zeitraum hinweg, ein Festlegen des Kontextes auf eine erste Granularitätsebene, ein Aufteilen der Echtzeitdaten in Wavelets auf Grundlage der ersten Granularitätsebene, und ein Versuchen, ein Muster in den Wavelets auf Grundlage von dynamischer Zeitnormierung zu identifizieren.
  • Die obige Kurzdarstellung soll nicht jede veranschaulichte Ausführungsform oder jede Implementierung der vorliegenden Offenbarung beschreiben.
  • Figurenliste
  • Die in der vorliegenden Anmeldung enthaltenen Zeichnungen sind in die Beschreibung eingeschlossen und bilden einen Teil davon. Sie veranschaulichen Ausführungsformen der vorliegenden Offenbarung und erläutern zusammen mit der Beschreibung die Grundgedanken der Offenbarung. Die Zeichnungen dienen lediglich der Veranschaulichung bestimmter Ausführungsformen und nicht zur Beschränkung der Offenbarung.
    • 1 ist ein Schaubild eines beispielhaften rekurrenten neuronalen Netzes gemäß Ausführungsformen.
    • 2 ist ein Graph von Echtzeitdaten für die verschiedenen Phasen eines Beispiels für einen Datenbank-Server mit langer Laufzeit gemäß Ausführungsformen.
    • 3 ist ein Graph von Echtzeitdaten für die verschiedenen Phasen eines Beispiels für einen Datenbank-Server mit langer Laufzeit gemäß Ausführungsformen.
    • 4 ist ein Ablaufplan, der ein Verfahren zum Ermitteln eines Kontextes gemäß Ausführungsformen veranschaulicht.
    • 5 ist ein Graph, der einen Vergleich zwischen einem mithilfe eines rekurrenten neuronalen Netzes gelernten Wavelet-Muster und einem anomalen Wavelet-Muster gemäß Ausführungsformen darstellt.
    • 6 ist ein Graph, der ein Beispiel für ein Wavelet-Muster, das sich von einem normalen Zustand in einen anomalen Zustand ändert, gemäß Ausführungsformen darstellt.
    • 7 ist ein Blockschaubild eines Verarbeitungssystems gemäß Ausführungsformen.
    • 8 ist ein Blockschaubild einer veranschaulichenden Cloud-Computing-Umgebung gemäß Ausführungsformen mit einem oder mehreren Datenverarbeitungsknoten, mit denen lokale Datenverarbeitungseinheiten, die durch Cloud-Kunden verwendet werden, Daten austauschen.
    • 9 ist ein Blockschaubild eines Satzes von funktionalen Abstraktionsschichten, die durch eine Cloud-Computing-Umgebung gemäß Ausführungsformen bereitgestellt werden.
  • Es ist zu erkennen, dass Elemente in den Figuren der Einfachheit und Deutlichkeit halber veranschaulicht werden. Allgemein bekannte Elemente, die in einer wirtschaftlich umsetzbaren Ausführungsform nützlich oder notwendig sein mögen, werden unter Umständen der Einfachheit halber und zum besseren Verständnis der veranschaulichten Ausführungsformen nicht dargestellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die vorliegende Offenbarung bezieht sich auf Verfahren und Systeme zur kontextsensitiven Anomalieerkennung. Bei bestimmten Ausführungsformen wird ein System bereitgestellt, das dazu konfiguriert ist, eine Anomalieerkennung in Echtzeit durchzuführen und diese Kontexte automatisch (d.h., ohne die Notwendigkeit einer Benutzereingabe) zu erkennen.
  • Datenanalyse und Datenwissenschaft werden immer weiter verbreitet. Mit der Ausbreitung des Internets der Dinge (internet of things, IOT) und von Sensoreinheiten und der stetig zunehmenden Verbreitung von Cloud-Computing ist die Qualität von Daten, die in Echtzeit von all den verschiedenen Komponenten erfasst werden, aus verschiedenen Gründen wichtig geworden. Ein Grund besteht darin sicherzustellen, dass die Analyse der Echtzeitdaten nützliche Erkenntnisse hervorbringt und dass die Analyse nicht irreführend ist. Ein weiterer Grund besteht darin, in der Lage zu sein, die Leistungsfähigkeit von in der Cloud bereitgestellten Systemen auf Grundlage von Echtzeit-Leistungsfähigkeitsdaten zu analysieren, wobei diese Echtzeitdaten von den Cloud-Infrastrukturen erfasst werden. Daher besteht ein zunehmendes Interesse an einem Erkennen von Anomalien aus den Echtzeitdaten, so dass die fehlerhaften Daten aus den umfassenderen Daten ausgefiltert werden können, bevor Erkenntnisse daraus abgeleitet werden. Ein Erkennen von Anomalien kann darüber hinaus insofern nützlich sein, als gestörte Komponenten eines Systems identifiziert werden können, was zu Verbesserungen der Leistungsfähigkeit für ein System führen kann.
  • Bestimmte Ausführungsformen nutzen Algorithmen auf Grundlage einer Kombination von Techniken für Deep Learning (z.B. rekurrente neuronale Netze) und Signalverarbeitung (dynamische Zeitnormierung), um ein Modell nach Kontext zu trainieren und anschließend die Echtzeitdaten mit einer Vorhersage von dem bestehenden Modell zu vergleichen, um Anomalien zu erkennen. Bestimmte Ausführungsformen nutzen darüber hinaus Benutzerrückmeldungen, um das Modell dynamisch zu erweitern, wodurch die Menge an falsch Positiven (d.h., einer fehlerhaften Erkennung einer Anomalie) und falsch Negativen weiter verringert wird.
  • Im Allgemeinen ist bei einer Zeitreihenanalyse eine dynamische Zeitnormierung (dynamic time warping, DTW) einer der Algorithmen zum Messen einer Ähnlichkeit zwischen zwei zeitlichen Sequenzen, die in der Geschwindigkeit oder der Dauer variieren können. DTW ist zum Beispiel auf zeitliche Sequenzen von Video-, Audio- und Graphikdaten angewendet worden. Zu konkreten Beispielen, die für DTW gelten können, zählen Spracherkennung und Signaturerkennung. In einem allgemeineren Sinne kann DTW jedoch auf jegliche Daten angewendet werden, die in eine lineare Sequenz umgewandelt werden können. Eines der Konzepte bei DTW besteht darin, Arrays mit unterschiedlichen Längen zu vergleichen, und dies kann durch Erstellen von Eins-zu-viele- und Viele-zu-eins-Abgleichen erreicht werden, so dass der Gesamtabstand zwischen den beiden minimiert werden kann. Allgemein handelt es sich bei DTW um ein Verfahren, das eine optimale Übereinstimmung zwischen zwei jeweiligen Sequenzen (z.B. einer Zeitreihe) mit bestimmten Einschränkungen und Regeln berechnet. Es ist zu erkennen, dass eine beliebige geeignete, einem Fachmann bekannte DTW-Technik auf die vorliegenden Ausführungsformen und insbesondere auf die Beispiele für Echtzeit-Datenströme im Zusammenhang mit Software-Programmen, die in der Cloud ausgeführt werden, sowie von Smart Cities erfasste Echtzeit-Sensordaten angewendet werden kann.
  • Bei den vorliegenden Ausführungsformen können neuronale Netze und sonstige Deep-Learning-Systeme eingesetzt werden, um eine automatisierte Kontextermittlung und Anomalieerkennung zu unterstützen. Ein künstliches neuronales Netz (Artificial Neural Network, ANN) (das auch allgemeiner als neuronales Netz bezeichnet wird) ist ein Datenverarbeitungssystem, das aus einer Anzahl von einfachen, stark vernetzten Verarbeitungselementen (Knoten) besteht, die Informationen durch ihre dynamische Zustandsantwort auf externe Eingaben verarbeiten. ANNs sind Verarbeitungseinheiten (Algorithmen und/oder Hardware), die grob anhand der neuronalen Struktur der Großhirnrinde von Säugetieren modelliert sind, jedoch in viel kleineren Maßstäben. Solche Systeme lernen schrittweise und selbständig Aufgaben mithilfe von Beispielen; und sie sind zum Beispiel erfolgreich in der Spracherkennung, der Textverarbeitung und bei Computer Vision eingesetzt worden. Ein großes ANN könnte hunderte oder tausende von Prozessoreinheiten aufweisen, wohingegen ein Säugetiergehirn Milliarden von Neuronen mit einer entsprechenden Zunahme der Größe ihrer Gesamtinteraktion und des auftretenden Verhaltens aufweist.
  • Es sind viele Typen von neuronalen Netzen bekannt, angefangen bei neuronalen Feedforward-Netzen wie zum Beispiel mehrlagigen Perzeptronen, neuronalen Deep-Learning-Netzen (deep learning neural networks, DNNs) und faltenden neuronalen Netzen. Bei einem neuronalen Feedforward-Netz handelt es sich um ein künstliches neuronales Netz (ANN), bei dem Verbindungen zwischen den Einheiten keinen Zyklus ausbilden. Ein neuronales Deep-Learning-Netz ist ein künstliches neuronales Netz mit mehreren verdeckten Schichten von Einheiten zwischen der Eingabeschicht und der Ausgabeschicht. Ähnlich wie bei flachen ANNs können DNNs komplexe nichtlineare Beziehungen modellieren. DNN-Architekturen, z.B. zur Objekterkennung und zum Parsing, erzeugen Kompositionsmodelle, bei denen das Objekt als geschichtete Zusammensetzung von Bildbasiselementen ausgedrückt wird. Die zusätzlichen Schichten ermöglichen die Zusammensetzung von Merkmalen aus niedrigeren Schichten, was die Möglichkeit bietet, komplexe Daten mit weniger Einheiten zu modellieren als ein ähnlich leistungsfähiges flaches Netz. DNNs werden typischerweise als Feedforward-Netze konstruiert.
  • Bei bestimmten hierin beschriebenen Ausführungsformen werden Systeme, Verfahren und Computerprogrammprodukte bereitgestellt, die Big Data und Künstliche Intelligenz (Artificial Intelligence, Al) verwenden, um eine Anomalieerkennung im Hinblick auf verschiedene Echtzeitquellen von Big Data (z.B. Daten zur Parkplatzbelegung, die im Zeitverlauf über eine Mehrzahl von Sensoren gesammelt werden) zu erleichtern. Maschinelles Lernen, bei dem es sich um eine Untergruppe der AI handelt, nutzt Algorithmen, um aus Daten (z.B. Big Data) zu lernen und auf Grundlage dieser Daten Vorausblicke zu erstellen. AI bezieht sich auf die Intelligenz, wenn Maschinen auf Grundlage von Informationen in der Lage sind, Entscheidungen zu treffen, die die Erfolgschancen bei einem bestimmten Thema maximieren. Genauer gesagt, AI ist in der Lage, aus einem Datensatz zu lernen, um Probleme zu lösen und relevante Empfehlungen bereitzustellen. AI ist eine Untergruppe der kognitiven Datenverarbeitung, die sich auf Systeme bezieht, die in großem Umfang lernen, zielgerichtet denken und auf natürliche Weise mit Menschen interagieren. Bei kognitiver Datenverarbeitung handelt es sich um eine Mischung aus Computerwissenschaft und Kognitionswissenschaft. Die kognitive Datenverarbeitung nutzt Selbstunterrichtsalgorithmen, die Daten, visuelle Erkennung und Verarbeitung von natürlicher Sprache verwenden, um Probleme zu lösen und Prozesse zu optimieren.
  • So, wie der Begriff hierin verwendet wird, bezieht sich „Big Data“ auf Daten, die zum Teil durch große Mengen von Daten (z.B. in der Größe von Terabytes, Petabytes usw.), eine große Vielfalt von Daten (z.B. einschließlich strukturierter Daten, unstrukturierter Daten usw.) und verschiedene Quellen von Daten usw. gekennzeichnet sind. Ein Beispiel für strukturierte Daten sind Transaktionsdaten in einer relationalen Datenbank. Zu Beispielen für unstrukturierte Daten zählen Bilder, eMail-Daten, Sensordaten, Ressourcen-Überwachungsdaten usw. Zu einigen Beispielen für Quellen von Big Data zählen Bankinformationen, Reiseinformationen, Krankenakten, geographische Informationen, Daten von Transportsystemen, Passagierdaten, Daten zur Parkplatzbelegung, Ressourcen-Überwachungsdaten von verschiedenen Schichten einer Cloud-Bereitstellung usw.
  • So, wie der Begriff hierin verwendet wird, bezieht sich eine „Smart City“ allgemein auf ein Großstadtgebiet, das verschiedene Typen von Big Data nutzt, und die von einer Vielfalt von Bürgern, elektronischen Sensoren des Internets der Dinge (loT) und sonstigen Einheiten erfasst werden. Die Informationen werden verarbeitet und analysiert, um verschiedene Aspekte der großstädtischen Infrastruktur wie Verkehrs- und Transportsysteme, Kraftwerke, Wasserversorgungsnetze, Abfallwirtschaft, Polizei und Feuerwehr, Informationssysteme, Schulen, Bibliotheken, Krankenhäuser, kommunale Dienste usw. zu überwachen und zu verwalten. Die Daten können verwendet werden, um die Effizienz von städtischen Abläufen und Dienstleistungen zu optimieren, zum Beispiel die effiziente Nutzung von Parkplätzen, wie hierin erörtert.
  • So, wie der Begriff hierin verwendet wird, bezieht sich „Smart Home“ allgemein auf ein Gebäude (z.B. auf ein Büro, ein Wohnhaus usw.), das eine Vielfalt von Daten nutzt, die von loT-Sensoren und sonstigen Einheiten erfasst werden. Ähnlich wie bei der obigen Beschreibung der Smart City werden diese Informationen verarbeitet und analysiert, um verschiedene Aspekte zum Beispiel eines Wohnhauses zu überwachen und zu verwalten. Die Daten können dazu verwendet werden, die Effizienz von Haushaltsgeräten, - dienstleistungen, Alarmsystemen usw. zu überwachen und zu optimieren.
  • Bei bestimmten Ausführungsformen, die Techniken zur Anomalieerkennung nutzen, gehen Echtzeitdaten von einer oder mehreren Datenquellen ein. Bei diesen Ausführungsformen findet ein Lernen des Verhaltens jeglichen Ereignisses (d.h., eines Kontextes) in Echtzeit statt. Bei einem Ereignis kann es sich zum Beispiel um eine Sequenz von Daten handeln, die über einen Zeitraum hinweg auftritt. In einem bestimmten Beispiel kann das Ereignis oder der Kontext mit Verkehrsdaten für bestimmte Straßen in einer Stadt über einen Zeitraum hinweg in Zusammenhang stehen, und dies kann ein Muster über diesen Zeitraum hinweg aufweisen. Ein weiteres Beispiel für einen Kontext oder ein Ereignis könnte für einen Teil einer ausgeführten Software-Anwendung gelten, und die Prozessorauslastung könnte im Zeitverlauf verfolgt werden. Diese Prozessorauslastung könnte ebenfalls Muster zeigen. Nachdem ein Modell für ein bestimmtes Ereignis in Echtzeit trainiert worden ist, kann das Modell dazu verwendet werden, das Verhalten solcher Ereignisse in der Zukunft vorherzusagen, und anschließend kann das Modell dazu verwendet werden zu identifizieren, ob sich das Ereignis normal oder anomal verhält (z.B. ob eine oder mehrere Anomalien für einen jeweiligen Satz von Daten vorliegen).
  • Bei bestimmten Ausführungsformen wird das Verhalten (B) eines Ereignisses (eines Kontextes) durch ein (in Echtzeit erfasstes) n-dimensionales Signal dargestellt, wobei jede Dimension für Zeitreihendaten repräsentativ ist, die von einem Generator erfasst werden (z.B. können sich die Zeitreihendaten auf verschiedene Ressourcen-Nutzungen für einen ausgeführten Prozess beziehen, oder es kann sich bei Smart Homes oder Smart Cities um Daten handeln, die von loT-Sensoren erzeugt werden). Bei den vorliegenden Ausführungsformen identifiziert das System eine paarweise Übereinstimmung (m) zwischen denselben Dimensionen si und sj zweier Signale.
  • Zum Lernen des Verhaltens jeder Dimension des Signals besteht ein erster Schritt darin, das Signal in kleinere Wavelets aufzuteilen, die durch ihren Kontext (ein Ereignis) begrenzt sind. Allgemein handelt es sich bei Wavelets um mathematische Funktionen, die Daten in Komponenten mit unterschiedlicher Dauer aufteilen, und diese verschiedenen Komponenten werden dann mit einer an ihre Größenordnung angepassten Auflösung untersucht. Der Grundgedanke hinter Wavelets ist ein Analysieren entsprechend der Größenordnung, und insofern verarbeiten Wavelet-Algorithmen Daten mit verschiedenen Größenordnungen oder Auflösungen. Wenn ein Signal mit einem großen „Fenster“ (d.h., einer groben Granularität) untersucht wird, können grobe Merkmale erkennbar sein. Wenn ein Signal mit einem kleineren „Fenster“ (d.h., einer feinen Granularität) untersucht wird, können in ähnlicher Weise kleine Merkmale erkannt werden. Das Ergebnis einer Wavelet-Analyse besteht daher darin, sowohl grobe als auch sehr kleine Merkmale in einem jeweiligen Kontext (oder Ereignis) zu erkennen.
  • Bei den vorliegenden Ausführungsformen sind die Kontexte abhängig vom Anwendungsfall definiert. Verschiedene Verfahren zum Erkennen von Kontexten werden im Folgenden beschrieben. Nachdem der Kontext identifiziert worden ist und das Signal in kleinere Wavelets aufgeteilt worden ist, setzen die vorliegenden Ausführungsformen eine oder mehrere Deep-Learning-Techniken (z.B. ein rekurrentes neuronales Netz) zum Lernen des Musters der Wavelets ein.
  • Unter Bezugnahme auf die Zeichnungen, in denen gleiche Bezugszeichen dieselben oder ähnliche Elemente darstellen, und zuerst auf 1 wird ein Beispiel für ein rekurrentes neuronales Netz 100 dargestellt. Wie oben erörtert, handelt es sich bei einem rekurrenten neuronalen Netz um eine Technik, die eine Identifizierung von Mustern in einer Sequenz von Daten ermöglicht. Nachdem die Wavelets durch Zerhacken des Echtzeitsignals entsprechend seinem Kontext ausgebildet worden sind, werden die Wavelets als Eingabe in das rekurrente neuronale Netz 100 eingespeist. Bei einer erzeugten Sequenz von Eingaben (d.h., den n Wavelets, die nach der Zerlegung des Kontextes ausgebildet werden) für eine Ausgabe yj für eine jeweilige Ressource werden die Eingaben durch xj für die j-te Eingabe bezeichnet (j = 1, 2, ... , n). In diesem Beispiel wird die entsprechende j-te Ausgabe durch die folgende Gleichung 1 berechnet: y j = W x j + W r y j 1
    Figure DE112021003999T5_0001
  • Eine Gewichtungsmatrix (Wr) bezieht die Ausgabe in dem vorherigen Schritt linear in die aktuelle Ausgabe ein. Bei bestimmten Architekturen sind eine Eingabeschicht 106, eine verdeckte Schicht 104 und eine Ausgabeschicht 102 vorhanden. In diesem Beispiel ist die verdeckte Schicht 104 rekurrent mit sich selbst verbunden. hj bezeichne die verdeckte Schicht 104 zum Zeitschritt j. Die Formeln werden durch Gleichungen 2, 3 und 4 dargestellt: h 0 = 0
    Figure DE112021003999T5_0002
    h j = σ ( W 1 x j + W r h i 1 )
    Figure DE112021003999T5_0003
    y j = W 2 h j
    Figure DE112021003999T5_0004
  • In den obigen Gleichungen ist σ eine geeignete Nichtlinearitäts-/Transferfunktion wie das Sigmoid. W1 und W2 sind die Verbindungsgewichtungen zwischen der Eingabeschicht 106 und der verdeckten Schicht 104 sowie zwischen der verdeckten Schicht 104 und der Ausgabeschicht 102. Wr stellt die rekurrenten Gewichtungen dar.
  • Der Ablauf des rekurrenten neuronalen Netzes 100 wird in 1 gezeigt. Ein Ausführen des rekurrenten neuronalen Netzes 100 über die n Trainings-Wavelets erzeugt ein Vorhersagemodell für einen jeweiligen Kontext. Mithilfe dieses Modells kann das Verhalten für das nächste Auftreten des Kontextes vorhergesagt werden, oder Anomalien können bei künftigem Auftreten des Kontextes erkannt werden.
  • Im Folgenden wird eine Anomalieerkennung mithilfe eines Wavelet-Abgleichs für ein rekurrentes neuronales Netz (RNN) beschrieben. Während der Ausführung eines Kontextes/Ereignisses können Wavelets aus dem Echtzeitsignal für diesen bestimmten Kontext extrahiert werden. Anschließend wird dynamische Zeitnormierung (DTW) verwendet, um die Übereinstimmungen zwischen dem aktuellen Wavelet und dem Wavelet-Muster zu identifizieren, das aus den vorherigen Ausführungen des Kontextes gelernt worden ist. Wie oben erwähnt, handelt es sich bei DTW um eine Signalverarbeitungstechnik oder um einen Satz von Algorithmen zum Messen einer Ähnlichkeit zwischen zwei zeitlichen Sequenzen, die in der Geschwindigkeit oder der Dauer variieren können. Während der Berechnung der Übereinstimmung zwischen zwei Wavelets enthalten beide Wavelets d Datenpunkte. In einem Beispiel bestehen die Wavelets Ti und Pi aus den folgenden abgetasteten Werten, die durch Gleichungen 5 und 6 dargestellt werden: T i = t 1 , t 2 ,..., t d
    Figure DE112021003999T5_0005
    P i = p 1 , p 1 , , p d
    Figure DE112021003999T5_0006
  • Um diese beiden Sequenzen mithilfe von DTW auszurichten, wird zunächst eine d-mal-d-Matrix erstellt, wobei das (i-te, j-te) Element der Matrix dem quadrierten Abstand entspricht, d(ti, pj) = (ti, pj)2, wobei es sich um die Ausrichtung zwischen den Punkten ti und pj handelt. Um die beste Übereinstimmung zwischen diesen beiden Sequenzen zu finden, wird ein Weg durch die Matrix abgerufen, der den kumulativen Gesamtabstand zwischen ihnen minimiert. Im Besonderen ist der optimale Weg der Weg, der den Normierungsaufwand minimiert, und dies wird durch Gleichung 7 dargestellt: D T W ( T , P ) = m i n { k = 1 K ω k }
    Figure DE112021003999T5_0007
  • In Gleichung 7 ist wk das Matrixelement (i,j)k, das auch zu dem k-ten Element eines Normierungsweges W gehört, eines zusammenhängenden Satzes von Matrixelementen, die eine Zuordnung zwischen T und P darstellen. Dieser Normierungsweg ist mithilfe einer dynamischen Programmierung zum Bewerten der folgenden, durch Gleichung 8 dargestellten Rekurrenz zu finden. γ ( i , j ) = d ( t i , p j ) + m i n { γ ( i 1, j 1 ) , γ ( i 1, j ) ,     γ ( i , j 1 )
    Figure DE112021003999T5_0008
  • In Gleichung 8 ist d(i,j) der in der aktuellen Zelle festgestellte Abstand und ist y(i, j) der kumulative Abstand von d(i, j) und die kumulativen Mindestabstände von den drei angrenzenden Zellen. Am Ende des DTW-Algorithmus ist ein Mindestabstand distmin ermittelt, der T auf P normiert. Je geringer der Abstand, desto ähnlicher sind sich die Signale.
  • Bei bestimmten Ausführungsformen besteht ein vorgegebener Schwellenwert, der festgelegt wird, um die Übereinstimmung zwischen zwei Wavelets zu erkennen. Bei einigen Ausführungsformen kann dieser Schwellenwert fortlaufend auf Grundlage von Benutzerrückmeldungen modifiziert werden.
  • Bei bestimmten Ausführungsformen wird eine automatische Kontexterkennung für einen Software-Kontext genutzt. Bei diesen Ausführungsformen können Echtzeitdaten mit Grenzen versehen werden, um Wavelets aus Daten einer Ressourcen-Nutzung in Echtzeit für eine ausgeführte Server-Software zu extrahieren. Während einer Bereitstellung in der Cloud durchläuft ein Server unterschiedliche Phasen. Unter Bezugnahme auf 2 stellt diese Figur ein Beispiel für die unterschiedlichen Phasen eines HBase-Datenbank-Servers 200 mit langer Laufzeit dar. 3 stellt ein Beispiel für unterschiedliche Phasen eines MongoDB-Datenbank-Servers 300 mit langer Laufzeit dar. 2 und 3 stellen jeweils die CPU-Auslastungs-Traces (erfasste Stack-Traces der unterschiedlichen Funktionen, die der Verarbeitungsprozess ausführt) dieser beiden Server dar, die mit einer Frequenz von 100 Hz abgetastet wurden. Drei verschiedene Verarbeitungsprozesse (siehe 2, Elemente 202, 204, 206 und 3, Elemente 302, 304, 306) werden beim Erfassen der CPU-Traces auf diesen beiden Servern ausgeführt (siehe 2, HBase-Datenbank-Server 200 und 3, MongoDB-Datenbank-Server 300).
  • 2 und 3 stellen zwei interessante Umstände dar. Als erstes durchlaufen beide Server zwei Hauptphasen, wenn der Verarbeitungsprozess ausgeführt wird, eine inaktive Phase (siehe 2, Element 208 und 3, Element 308) und eine aktive Phase (siehe 2, Element 210 und 3, Element 310). Darüber hinaus bestehen Mikrophasen innerhalb dieser zwei Hauptphasen. Während der inaktiven Phase der beiden Server treten zum Beispiel gelegentliche Spitzen in der CPU-Auslastung auf, die darauf hindeuten, dass durch die Server eine gewisse Arbeit verrichtet wird. Die verrichtete Arbeit kann abhängig von dem Server variieren. Als zweites unterscheidet sich die CPU-Auslastung der unterschiedlichen Server für denselben Verarbeitungsprozess. Beispielsweise unterscheidet sich das CPU-Auslastungsmuster des HBase-Datenbank-Servers 200 von demjenigen des MongoDB-Datenbank-Servers 300 für denselben Verarbeitungsprozess1. Die vorliegenden Ausführungsformen identifizieren die Phasengrenzen (Kontexte) aus den Zeitreihendaten der CPU-Auslastung so, dass das wiederkehrende Muster für diese Phase mithilfe eines rekurrenten neuronalen Netzes gelernt werden kann, wie oben beschrieben.
  • Bei den vorliegenden Ausführungsformen kann eine automatische Identifizierung der Phasengrenzen unter Verwendung von Momentaufnahmen von Programmen ermittelt werden. Bei bestimmten Ausführungsformen ist die Momentaufnahme (s) eines Programms zu einer jeweiligen Zeit durch das folgende durch Gleichung 9 dargestellte Tupel definiert: s = ( t : c : m ) | s S
    Figure DE112021003999T5_0009
  • In Gleichung 9 ist t der Thread-Speicherauszug, ist c die CPU-Auslastung und ist m die Speicherauslastung des Programms zu einer jeweiligen Zeit. Auf Grundlage dieser Definition einer Momentaufnahme kann die Phase p eines Programms als das folgende durch Gleichung 10 dargestellte Tupel definiert sein: p = ( s b e g i n : s e n d ) | s b e g i n , s e n d S , p
    Figure DE112021003999T5_0010
  • Die vorliegenden Ausführungsformen können Phasenänderungen während der ausgeführten Anwendung mithilfe von regelmäßig erfassten Momentaufnahmen identifizieren. In bestimmten Beispielen wird eine Phasenänderung erkannt, wenn eine erhebliche Änderung in zwei nacheinander erfassten Momentaufnahmen eines Programms erfolgt. Für eine Änderungserkennung in Momentaufnahmen eines Programms wird ein Ansatz auf Grundlage von gleitenden Fenstern eingesetzt. Während einer Analyse werden Phasen von Anwendungen online identifiziert und werden Thread-Speicherauszüge für ein gleitendes Fenster mit einer Größe w erfasst. Jedes Fenster von w Thread-Speicherauszügen weist einen Satz von w dreidimensionalen Datenpunkten auf. In diesem Beispiel sind die drei Dimensionen: der Satz von Funktionen in den Thread-Speicherauszügen; die CPU-Auslastung; und die Speicherbelegung. Um den Satz von Funktionen in den Thread-Speicherauszügen einer Anwendung so in eine reelle Zahl umzuwandeln, dass sie zum Identifizieren von Phasenänderungen verwendet werden kann, wird die folgende durch Gleichung 11 dargestellte Metrik eingesetzt: s t a c k s i m = n u m _ e l e m e n t s ( t p r e v t c u r ) n u m _ e l e m e n t s ( t c u r )
    Figure DE112021003999T5_0011
  • Die Metrik stacksim stellt dar, wie unterschiedlich der Satz von Funktionen im aktuellen Status des Programms (tcur) im Verhältnis zu dem zuvor betrachteten Satz von Funktionen (tprev) ist. In einem Beispiel stellt ein stacksim-Wert von stacksim = 1,0 keine Änderung dar, wohingegen ein Wert stacksim < 1,0 eine Änderung im Inhalt des Stack-Trace darstellt.
  • Nach dem Berechnen des stacksim-Wertes zum aktuellen Zeitquantum wird eine vollständige Darstellung der Momentaufnahme des Programms zu diesem Quantum erzeugt, wobei sich sämtliche Dimensionen im reellen Zahlenraum befinden. Zur Erkennung einer Änderung in den Phasen ermitteln die vorliegenden Ausführungsformen mathematisch, ob es sich bei der aktuellen Momentaufnahme um einen Ausreißer in dem Fenster von w zuletzt erfassten Momentaufnahmen handelt. Bei bestimmten Ausführungsformen wird eine Technik auf Grundlage einer Analyse der Hauptkomponente (Principal Component Analysis, PCA) verwendet, um zu ermitteln, ob es sich bei der aktuellen Momentaufnahme um einen Ausreißer handelt. Ein Ausreißer kennzeichnet eine Phasenänderung und stellt eine Grenze dafür bereit, wo das Echtzeitsignal zu begrenzen ist, um den Kontext zu identifizieren.
  • Bei bestimmten der oben beschriebenen Ausführungsformen wird eine automatische Kontexterkennung und Anomalieerkennung für Software-Kontexte eingesetzt. Bei sonstigen Ausführungsformen werden jedoch eine automatische Kontexterkennung und Anomalieerkennung im Hinblick auf Echtzeit-Sensordaten im Anwendungsfall von Smart Cities eingesetzt. In einem Beispiel für Echtzeitdaten aus einer Smart City handelt es sich bei den Daten um eine Fahrzeugbelegung, die von Sensoren von Parkplätzen an verschiedenen Orten in der Smart City erfasst werden. Es ist jedoch zu erkennen, dass die Parkplatzdaten lediglich ein Beispiel für Smart-City-Daten sind und sonstige Datenquellen verwendet werden können. In diesem Beispiel bestehen die Parkdaten für jedes Parkhaus (i) aus Daten für (m) Monate und werden durch die folgende Gleichung 12 dargestellt: o c c i = { m o n 1 , m o n 2 , , m o n m }
    Figure DE112021003999T5_0012
  • Jeder Satz von monatlichen Parkdaten moni j weist (d) Sätze von Datenpunkten abhängig von der Anzahl von Tagen auf, die dieser Monat hat. Die Form für monatliche Daten wird durch Gleichung 13 dargestellt: m o n j i = { d a y 1 , d a y 2 , , d a y d }
    Figure DE112021003999T5_0013
  • Schließlich weist in diesem Beispiel jeder Satz dayk w <= 288 Datenpunkte auf, wenn Daten in Fünfminutenintervallen in Echtzeit erfasst werden. Um den Kontext für Echtzeit-Sensordaten zu ermitteln, wird die Kontexterkennung mit einer groben Granularität begonnen und dann eine Suche nach sich wiederholenden Mustern von Wavelets mit feineren Granularitäten durchgeführt.
  • Unter Bezugnahme auf 4 wird ein beispielhaftes Verfahren 400 zum Ermitteln von Mustern in Echtzeitdaten dargestellt. In Vorgang 402 wird der Kontext auf eine gröbste Granularität festgelegt (z.B. Monate in diesem bestimmten Anwendungsfall), und dann wird in Vorgang 404 das Signal entsprechend diesem Kontext in Wavelets aufgeteilt. Anschließend wird in Vorgang 406 dynamische Zeitnormierung verwendet, um festzustellen, ob jegliche Muster in diesen Wavelets vorhanden sind. Wenn ein Muster vorhanden ist (Vorgang 406:JA), hält das Kontexterkennungssystem bei Vorgang 412 an. Wenn kein Muster gefunden wird, ermittelt das System in Vorgang 408, ob eine feinere Granularitätsebene vorhanden ist, die verwendet werden kann, um die Wavelets aufzuteilen. Wenn eine feinere Granularitätsebene verfügbar ist (Vorgang 408:JA), erhöht der Prozess die Granularitätsebene in Vorgang 410 (legt eine feinere Granularität fest) und setzt dann seine Suche auf der nächsten feineren Granularitätsebene (z.B. Wochen) fort, indem er zu Vorgang 404 zurückkehrt. In dieser Phase sucht das Verfahren 400 erneut nach sich wiederholenden Mustern für alle Kombinationen von Sequenzen von beispielsweise Wochen (d.h., statt Monaten) für denselben Zeitbereich von Daten. Da diese Suche hochgradig parallelisierbar ist, können die Suchvorgänge (d.h., unterschiedliche Suchvorgänge mit unterschiedlichen Granularitäten) parallel durchgeführt werden, um die Gesamtverarbeitungszeit erheblich zu verringern. Um zum Beispiel sich wiederholende Muster in einem wöchentlichen Kontext zu erkennen, können die Signale in die folgenden Wavelets aufgeteilt werden, wenn die Wochenindizes als w={1, 2, 3, 4} gegeben sind. In dem Beispiel für ein Analysieren von Daten von Echtzeitdaten aus 4 Monaten können die Indizes zum Ausbilden von Wavelets für eine Mustererkennung durch Gleichungen 14 und 15 dargestellt werden: { w 1 _ m1 , w1_m2 , w1_m3 , w1_m4 } , { w2 _ m1 , w2_m2 , w2_m3 , w2_m4 } .....
    Figure DE112021003999T5_0014
    { w1_m1 , w2_m1 , w1_m2 , w2_m2 , w1_m3 , w2_m3 , w1_m4 , w2_m4 } ...
    Figure DE112021003999T5_0015
  • Bei bestimmten Ausführungsformen werden alle solchen Kombinationen nach Längen bis zu (n-1) daraufhin durchsucht, ob n feinere Kontexte vorhanden sind. Daher wird in diesem Fall ein Suchen bis {w1,w2,w3}, {w2,w3,w4}, {w1,w3,w4} für alle vier Monate (d.h., in diesem Fall, n=4) durchgeführt. Anschließend wird ein Suchen auf ähnliche Weise in einem feineren Kontext (Tage und Stunden) fortgesetzt. Nachdem das Suchen für alle Muster in allen Kontexten abgeschlossen ist (d.h., bis die feinste Granularitätsebene erreicht worden ist, zum Beispiel in diesem Anwendungsfall stündlich), wird der Prozess bei Vorgang 412 beendet und werden die Übereinstimmungswerte in einer Rangordnung geordnet. Der am höchsten angeordnete Übereinstimmungswert wird dann als das erkannte sich wiederholende Muster bezeichnet. Bei bestimmten Ausführungsformen kann das System von Zeit zu Zeit neu trainiert werden, um neue Muster zu erkennen, wenn neue Echtzeitdaten eingehen.
  • Die vorliegenden Ausführungsformen können erfolgreich Anomalien sowohl in Daten von Verarbeitungsprozessen von Software-Anwendungen als auch in Smart-City-Daten identifizieren, indem sie Kontextinformationen zusätzlich zu Echtzeitdaten verwenden. Wie oben erwähnt, können die vorliegenden Ausführungsformen auf eine beliebige sonstige geeignete Quelle von Echtzeitdaten angewendet werden, wenngleich die Beispiele für Software-Daten und Smart-City-Daten beschrieben werden. Es sind Versuche durchgeführt worden, um mehrere weitverbreitete Software-Programme zu analysieren, die in der Cloud verwendet werden (z.B. Cassandra, MongoDB, Spark usw.), um Kontexte darin zu identifizieren. Diese Versuche haben gezeigt, dass die kontextsensitive Anomalieerkennung in der Lage ist, erhebliche Anomalien mit 100%iger Genauigkeit und mit weniger als 10 % falsch Positiven zu identifizieren.
  • Unter Bezugnahme auf 5 stellt diese Figur ein Beispiel für ein solches Wavelet dar, das aus einem Kontext gelernt wird, während ein Verarbeitungsprozess auf einem Cassandra-Datenbank-Server ausgeführt wird. Das vorhergesagte Wavelet (d.h. die dunkelste schwarze Linie) stellt das mithilfe eines rekurrenten neuronalen Netzes gelernte Muster und die anomale Ausführung (d.h., die hellste graue Linie) dar, die das Ergebnis einer fehlerhaften Platte ist. 5 stellt daher einen sichtbaren Unterschied zwischen dem gelernten Muster und der anomalen Ausführung dar. Die erheblichen Unterschiede in DTW-Werten bestätigen, dass die Sichtprüfung mit der Anomalie zusammenfällt, die automatisch durch die Verfahren der vorliegenden Ausführungsformen erkannt worden ist.
  • Die erkannte Anomalie kann automatisch aus den Daten beseitigt werden, was ihren Einfluss aus automatisch oder durch einen Menschen ermittelten Erkenntnissen in vorteilhafter Weise aus diesen Daten beseitigen kann. Bei einigen Ausführungsformen kann das System nach dem Erkennen der Anomalie einen Benutzer über die Anomalie benachrichtigen. Dies kann zusätzlich oder anstelle des Beseitigens der anomalen Daten erfolgen. Anschließend kann der Benutzer entscheiden, was zu tun ist (z.B. die anomalen Daten beseitigen, ermitteln, ob sie durch fehlerhafte Komponenten verursacht werden usw.).
  • Unter Bezugnahme auf 6 stellt diese Figur ein Beispiel für die von einem Parkhaus erfassten Echtzeit-Parkdaten dar, in dem der Kontext als Wochentage erkannt wird. Der graue Abschnitt der Figur stellt die anomalen Wavelets für 2,5 Tage in Echtzeit dar. Eine Sichtprüfung bestätigt das Vorhandensein der Anomalie, da die Daten aus diesen zwei Tagen eine Aufwärtsentwicklung in den Mindestwerten im Vergleich mit den historischen Daten darstellen. Mithilfe des Verfahrens zur kontextsensitiven Anomalieerkennung der vorliegenden Ausführungsformen können Erfolge einer Verbesserung von bis zu 40 % (oder mehr) bei der Vorhersagegenauigkeit und einer Verringerung von bis zu 50 % (oder mehr) bei den Mengen an erkannten falsch Positiven im Vergleich mit bestehenden Verfahren zur Anomalieerkennung erzielt werden. Bei bestimmten Ausführungsformen ist die Empfindlichkeit der Anomalieerkennung auf Grundlage von Benutzerrückmeldungen stärker oder schwächer einstellbar.
  • Die vorliegenden Ausführungsformen haben die Einzelheiten eines automatischen Identifizierens von Kontexten in Echtzeitdaten in zwei Szenarien beschrieben. Verfahren zum Erkennen von Kontexten bei in der Cloud ausgeführten Software-Programmen, Verfahren zum Erkennen von Kontexten bei von Smart Cities erfassten Echtzeit-Sensordaten. Die Ergänzung des erkannten Kontextes trägt dazu bei, die Vorhersagegenauigkeit zu verbessern, und verringert darüber hinaus die Mengen an falsch Positiven, die erkannt werden (d.h., im Verhältnis zu bestehenden Verfahren, die Kontexte nicht berücksichtigen). Des Weiteren kann die Ergänzung des erkannten Kontextes dazu beitragen, die Ressourcen-Nutzung der Systeme zur Anomalieerkennung zu verringern (z.B. durch Erhöhen der Genauigkeit wird die Menge an unnötiger Bestätigung oder Korrektur verringert). Es ist zu erkennen, dass die vorliegenden Ausführungsformen nicht auf die Beispiele einer Software, die in einer Cloud-Umgebung ausgeführt wird, oder auf eine Datenerfassung in einer Smart City beschränkt sind und die Ausführungsformen auf ein beliebiges geeignetes Beispiel für eine Dateneinspeisung in Echtzeit angewendet werden können.
  • Unter Bezugnahme auf 7 wird ein beispielhaftes Verarbeitungssystem 500, auf das die vorliegenden Ausführungsformen angewendet werden können, gemäß einer Ausführungsform dargestellt. Das Verarbeitungssystem 500 enthält zumindest einen Prozessor (CPU) 504, der über einen Systembus 502 mit sonstigen Komponenten in Wirkverbindung steht. Ein Cache 506, ein Festwertspeicher (Read Only Memory, ROM) 508, ein Direktzugriffsspeicher (Random Access Memory, RAM) 510, ein Eingabe-/Ausgabe(E/A)-Adapter 520, ein Audioadapter 530, ein Netzwerkadapter 540, ein Benutzerschnittstellenadapter 550 und ein Anzeigeadapter 560 stehen mit dem Systembus 502 in Wirkverbindung.
  • Eine erste Speichereinheit 522 und eine zweite Speichereinheit 524 stehen durch den E/A-Adapter 520 mit dem Systembus 502 in Wirkverbindung. Bei den Speichereinheiten 522 und 524 kann es sich um eine Plattenspeichereinheit (z.B. eine magnetische oder optische Plattenspeichereinheit), eine Halbleiter-Magneteinheit und so weiter handeln. Bei den Speichereinheiten 522 und 524 kann es sich um denselben Typ einer Speichereinheit oder um unterschiedliche Typen von Speichereinheiten handeln.
  • Ein Lautsprecher 532 steht durch den Audioadapter 530 mit dem Systembus 502 in Wirkverbindung. Ein Sender-Empfänger 542 steht durch den Netzwerkadapter 540 mit dem Systembus 502 in Wirkverbindung. Eine Anzeigeeinheit 562 steht durch den Anzeigeadapter 560 mit dem Systembus 502 in Wirkverbindung.
  • Eine erste Benutzereingabeeinheit 552, eine zweite Benutzereingabeeinheit 554 und eine dritte Benutzereingabeeinheit 556 stehen durch den Benutzerschnittstellenadapter 550 mit dem Systembus 502 in Wirkverbindung. Bei den Benutzereingabeeinheiten 552, 554 und 556 kann es sich um eine Tastatur, eine Maus, ein Tastenfeld, eine Bilderfassungseinheit, eine Bewegungserfassungseinheit, ein Mikrofon, eine Einheit, die die Funktionalität von zumindest zwei der vorhergehenden Einheiten umfasst, oder um beliebige sonstige geeignete Typen von Eingabeeinheiten handeln. Bei den Benutzereingabeeinheiten 552, 554 und 556 kann es sich um denselben Typ einer Benutzereingabeeinheit oder um unterschiedliche Typen von Benutzereingabeeinheiten handeln. Die Benutzereingabeeinheiten 552, 554 und 556 werden dazu verwendet, Informationen in das System 500 einzugeben und aus diesem auszugeben. Bei bestimmten Ausführungsformen steht die Komponente 590 des neuronalen Netzes mit einem Kontext- und Anomalieerkennungsmodus mit dem Systembus 502 in Wirkverbindung.
  • Das Verarbeitungssystem 500 kann darüber hinaus sonstige (nicht dargestellte) Elemente enthalten, wie sie durch einen Fachmann leicht in Betracht zu ziehen sind, sowie bestimmte Elemente weglassen. Beispielsweise können abhängig von seiner jeweiligen Implementierung verschiedene sonstige Eingabeeinheiten und/oder Ausgabeeinheiten in dem Verarbeitungssystem 500 enthalten sein, wie für einen Fachmann leicht zu verstehen ist. Beispielsweise können verschiedene Typen von drahtlosen und/oder drahtgebundenen Eingabe- und/oder Ausgabeeinheiten verwendet werden. Darüber hinaus können auch zusätzliche Prozessoren, Steuereinheiten, Speicher und so weiter in verschiedenen Gestaltungen eingesetzt werden, wie für einen Fachmann leicht ersichtlich ist. Diese und sonstige Varianten des Verarbeitungssystems 500 sind durch einen Fachmann in den hierin bereitgestellten Lehren der vorliegenden Offenbarung leicht in Betracht zu ziehen.
  • Es versteht sich, dass, wenngleich diese Offenbarung eine ausführliche Beschreibung zu Cloud-Computing enthält, eine Implementierung der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen sind Ausführungsformen der vorliegenden Erfindung in der Lage, gemeinsam mit einem beliebigen Typ einer jetzt bekannten oder später entwickelten Datenverarbeitungsumgebung implementiert zu werden.
  • Bei Cloud-Computing handelt es sich um ein Modell zum Erbringen von Dienstleistungen, um einen praktischen, bedarfsgesteuerten Netzwerkzugriff auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungs-Ressourcen (z.B. Netzwerken, Netzwerkbandbreite, Servern, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuellen Maschinen und Diensten) zu ermöglichen, die schnell mit möglichst geringem Verwaltungsaufwand oder Zusammenwirken mit einem Anbieter des Dienstes bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann zumindest fünf Eigenschaften, zumindest drei Dienstmodelle und zumindest vier Implementierungsmodelle enthalten.
  • Bei den Eigenschaften handelt es sich um die Folgenden:
    • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Server-Zeit und Netzwerkspeicher sorgen, ohne dass ein menschliches Zusammenwirken mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource Pooling: Die Datenverarbeitungs-Ressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt, und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die Folgenden:
    • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Auf die Anwendungen kann von verschiedenen Client-Einheiten durch eine Thin-Client-Schnittstelle wie zum Beispiel einen Web-Browser (z.B. eMail auf Grundlage des Web) zugegriffen werden. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungs-Ressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Implementierungsmodellen handelt es sich um die Folgenden:
    • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich innerhalb oder außerhalb der eigenen Räumlichkeiten befinden.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann sich innerhalb oder außerhalb der eigenen Räumlichkeiten befinden.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Entitäten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Zentrum des Cloud-Computing befindet sich eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten enthält.
  • Unter Bezugnahme auf 8 wird eine veranschaulichende Cloud-Computing-Umgebung 650 dargestellt. Wie dargestellt, enthält die Cloud-Computing-Umgebung 650 einen oder mehrere Cloud-Computing-Knoten 610, mit denen lokale Datenverarbeitungseinheiten, die von Cloud-Kunden verwendet werden, wie zum Beispiel ein persönlicher digitaler Assistent (PDA) oder ein Mobiltelefon 654A, ein Desktop-Computer 654B, ein Laptop-Computer 654C und/oder ein KFZ-Computersystem 654N, Daten miteinander austauschen können. Die Knoten 610 können Daten miteinander austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken zusammengefasst werden (nicht dargestellt), zum Beispiel in Private, Community, Public oder Hybrid Clouds, wie hierin oben beschrieben, oder in einer Kombination von diesen. Dies ermöglicht der Cloud-Computing-Umgebung 650, Infrastruktur, Plattformen und/oder Software als Dienstleistungen anzubieten, für die ein Cloud-Kunde keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es versteht sich, dass die in 6 dargestellten Typen von Datenverarbeitungseinheiten 654A bis N lediglich der Veranschaulichung dienen sollen und dass die Datenverarbeitungsknoten 610 und die Cloud-Computing-Umgebung 650 mit einem beliebigen Typ einer computerisierten Einheit über einen beliebigen Typ von Netzwerk und/oder eine über ein Netzwerk adressierbare Verbindung (z.B. mithilfe eines Web-Browsers) Daten austauschen können.
  • Unter Bezugnahme auf 9 wird ein Satz von funktionalen Abstraktionsschichten dargestellt, der durch die Cloud-Computing-Umgebung 650 (8) bereitgestellt wird. Es versteht sich im Vorhinein, dass die in 9 dargestellten Komponenten, Schichten und Funktionen lediglich der Veranschaulichung dienen sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Software-Schicht 760 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten zählen: Großrechner 761; Server 762 auf Grundlage einer RISC-Architektur (Reduced Instruction Set Computer, Computer mit reduziertem Anweisungssatz); Server 763; Blade-Server 764; Speichereinheiten 765; und Netzwerke sowie Netzwerkkomponenten 766. Bei einigen Ausführungsformen zählen zu Software-Komponenten Netzwerkanwendungs-Server-Software 767 und Datenbank-Software 768.
  • Die Virtualisierungsschicht 770 stellt eine Abstraktionsschicht bereit, von der die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server 771; virtueller Speicherplatz 772; virtuelle Netzwerke 773, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 774; und virtuelle Clients 775.
  • In einem Beispiel kann die Verwaltungsschicht 780 die im Folgenden beschriebenen Funktionen bereitstellen. Ressourcen-Bereitstellung 781 bietet eine dynamische Beschaffung von Datenverarbeitungs-Ressourcen und sonstigen Ressourcen, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung genutzt werden. Messung und Preisbildung 782 stellen eine Kostenüberwachung während der Nutzung von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen enthalten. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und sonstige Ressourcen bereit. Ein Benutzerportal 783 stellt Nutzern und Systemadministratoren einen Zugriff auf die Cloud-Computing-Umgebung bereit. Eine Dienstgüteverwaltung 784 stellt eine Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass erforderliche Dienstgütegrade erreicht werden. Eine Planung und Erfüllung von Dienstgütevereinbarungen (Service Level Agreement, SLA) 785 stellen eine Vorbereitung für und eine Bereitstellung von Cloud-Computing-Ressourcen bereit, für die eine künftige Erfordernis gemäß einer SLA erwartet wird.
  • Eine Verarbeitungsprozessschicht 790 stellt Beispiele für eine Funktionalität bereit, für die die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Verarbeitungsprozesse und Funktionen, die von dieser Schicht aus bereitgestellt werden können, zählen: Zuordnung und Navigation 791; Software-Entwicklung und Lebenszyklusverwaltung 792; Bereitstellung von virtuellen Schulungen 793; Datenanalyseverarbeitung 794, Transaktionsverarbeitung 795; und eine Verarbeitung 796 eines Trainings zur Anomalieerkennung in neuronalen Netzen.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt mit einem beliebigen Integrationsgrad technischer Details handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine materielle Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatten-Festwertspeicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination von diesen. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerk-Schnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). Bei einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gate-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsdaten der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen implementiert werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Computers oder einer sonstigen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers oder der sonstigen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen Mittel zum Implementieren der in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubildes festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts implementieren.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubildes festgelegten Funktionen/Schritte implementieren.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Implementieren der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Implementierungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit als ein Schritt, gleichzeitig, im Wesentlichen gleichzeitig, zum Teil oder vollständig überlappend ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner zu beachten, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne und Kombinationen von Blöcken in den Blockschaubildern und/oder in den Ablaufplänen durch Spezialsysteme auf Grundlage von Hardware implementiert werden können, die die angegebenen Funktionen ausführen.
  • Die Beschreibungen der verschiedenen Ausführungsformen erfolgten zur Veranschaulichung und sind nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt gemeint. Zahlreiche Modifizierungen und Varianten sind für Fachleute ersichtlich, ohne vom Umfang der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber auf dem Markt erhältlichen Technologien am besten zu erläutern oder um anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.

Claims (21)

  1. Auf einem Computer implementiertes Verfahren zur kontextsensitiven Anomalieerkennung, wobei das Verfahren aufweist: Empfangen eines Signals, das Echtzeitdaten enthält; Aufteilen des empfangenen Signals in einen Satz von Trainings-Wavelets, die durch einen jeweiligen Trainings-Kontext begrenzt sind; Erzeugen eines Vorhersagemodells für den Trainings-Kontext durch Verarbeiten des Satzes von Trainings-Wavelets durch ein rekurrentes neuronales Netz, um Muster in einer Sequenz von Daten eines jeweiligen Trainings-Wavelets zu identifizieren; als Reaktion auf ein Ausführen eines aktuellen Kontextes, der sich von dem Trainings-Kontext unterscheidet, Extrahieren von aktuellen Wavelets aus einem Signal des aktuellen Kontextes; Identifizieren einer paarweisen Übereinstimmung zwischen selben Dimensionen der aktuellen Wavelets und eines Wavelet-Musters des Vorhersagemodells durch Ausrichten von Sequenzen des aktuellen Wavelets und Sequenzen des Wavelet-Musters des Vorhersagemodells; und als Reaktion auf ein Ermitteln, dass ein kumulativer Gesamtabstand zwischen den beiden Sequenzen einen vorgegebenen Schwellenwert überschreitet, Identifizieren einer Anomalie.
  2. Verfahren nach Anspruch 1, wobei die Echtzeitdaten von einer Mehrzahl von Datenquellen empfangen werden, die durch ein in Echtzeit erfasstes Signal dargestellt werden, das n-Dimensionen aufweist, wobei jede Dimension für erfasste Zeitreihendaten repräsentativ ist.
  3. Verfahren nach Anspruch 2, wobei die n-Dimensionen enthalten: einen Satz von Funktionen in einem Thread-Speicherauszug; eine Auslastung einer CPU; und eine Speicherbelegung.
  4. Verfahren nach Anspruch 1, wobei der Trainings-Kontext durch Phasenänderungen während einer ausgeführten Anwendung mithilfe von regelmäßig erfassten Momentaufnahmen identifiziert wird.
  5. Verfahren nach Anspruch 4, wobei die Phasenänderungen erkannt werden, wenn eine Änderung zwischen zwei nacheinander erfassten Momentaufnahmen eines Programms erfolgt, die eine Schwellenwertänderung überschreitet.
  6. Verfahren nach Anspruch 4, wobei ein Ansatz mit gleitenden Fenstern eingesetzt wird, um die Phasenänderungen zu erkennen.
  7. Verfahren nach Anspruch 1, wobei das Identifizieren der paarweisen Übereinstimmung enthält Erstellen einer d-mal-d-Matrix mithilfe von d Datenpunkten von jedem der aktuellen Wavelets, in der jedes Element der Matrix einem quadrierten Abstand entspricht, d(ti, pj) = (ti, pj)2, der eine Ausrichtung zwischen den Punkten ti und pj darstellt, und Identifizieren einer besten Übereinstimmung zwischen diesen beiden Sequenzen durch Abrufen eines optimalen Weges durch die d-mal-d-Matrix, der den kumulativen Gesamtabstand zwischen den beiden Sequenzen minimiert.
  8. Verfahren nach Anspruch 7, wobei der optimale Weg durch die Matrix abgerufen wird, der einen Normierungsaufwand minimiert, der dargestellt wird durch D T W ( T , P ) = m i n { k = 1 K ω k }
    Figure DE112021003999T5_0016
    wobei wk ein Matrixelement (i,j)k ist, das auch zu dem k-ten Element eines Normierungsweges W gehört, eines zusammenhängenden Satzes von Matrixelementen, die eine Zuordnung zwischen T und P darstellen.
  9. Verfahren nach Anspruch 8, wobei der Normierungsweg mithilfe einer dynamischen Programmierung zum Bewerten einer Rekurrenz ermittelt wird, die dargestellt wird durch γ ( i , j ) = d ( t i , p j ) + m i n { γ ( i 1, j 1 ) , γ ( i 1, j ) ,   γ ( i , j 1 )
    Figure DE112021003999T5_0017
    wobei d(i,j) der in einer aktuellen Zelle festgestellte Abstand ist und y(i, j) ein kumulativer Abstand von d(i, j) und kumulative Mindestabstände von drei angrenzenden Zellen ist.
  10. Verfahren nach Anspruch 1, wobei der vorgegebene Schwellenwert auf Grundlage einer Benutzereingabe modifizierbar ist.
  11. Computerprogrammprodukt zur kontextsensitiven Anomalieerkennung, wobei das Computerprogrammprodukt aufweist: ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die gemeinsam auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind, wobei die Programmanweisungen aufweisen: Programmanweisungen zum Empfangen eines Signals, das Echtzeitdaten enthält; Programmanweisungen zum Aufteilen des empfangenen Signals in einen Satz von Trainings-Wavelets, die durch einen jeweiligen Trainings-Kontext begrenzt sind; Programmanweisungen zum Erzeugen eines Vorhersagemodells für den Trainings-Kontext durch Verarbeiten des Satzes von Trainings-Wavelets durch ein rekurrentes neuronales Netz, um Muster in einer Sequenz von Daten eines jeweiligen Trainings-Wavelets zu identifizieren; Programmanweisungen zum Extrahieren von aktuellen Wavelets aus einem Signal des aktuellen Kontextes als Reaktion auf ein Ausführen eines aktuellen Kontextes, der sich von dem Trainings-Kontext unterscheidet; Programmanweisungen zum Identifizieren einer paarweisen Übereinstimmung zwischen selben Dimensionen der aktuellen Wavelets und eines Wavelet-Musters des Vorhersagemodells durch Ausrichten von Sequenzen des aktuellen Wavelets und Sequenzen des Wavelet-Musters des Vorhersagemodells; und Programmanweisungen zum Identifizieren einer Anomalie als Reaktion auf ein Ermitteln, dass ein kumulativer Gesamtabstand zwischen den beiden Sequenzen einen vorgegebenen Schwellenwert überschreitet.
  12. Computerprogrammprodukt nach Anspruch 11, wobei die Echtzeitdaten von einer Mehrzahl von Datenquellen empfangen werden, die durch ein in Echtzeit erfasstes Signal dargestellt werden, das n-Dimensionen aufweist, wobei jede Dimension für erfasste Zeitreihendaten repräsentativ ist.
  13. Computerprogrammprodukt nach Anspruch 12, wobei die n-Dimensionen enthalten: einen Satz von Funktionen in einem Thread-Speicherauszug; eine Auslastung einer CPU; und eine Speicherbelegung.
  14. Computerprogrammprodukt nach Anspruch 11, wobei der Trainings-Kontext durch Phasenänderungen während einer ausgeführten Anwendung mithilfe von regelmäßig erfassten Momentaufnahmen identifiziert wird.
  15. Computerprogrammprodukt nach Anspruch 14, wobei die Phasenänderungen erkannt werden, wenn eine Änderung zwischen zwei nacheinander erfassten Momentaufnahmen eines Programms erfolgt, die eine Schwellenwertänderung überschreitet.
  16. Computerprogrammprodukt nach Anspruch 14, wobei ein Ansatz mit gleitenden Fenstern eingesetzt wird, um die Phasenänderungen zu erkennen.
  17. Computerprogrammprodukt nach Anspruch 11, wobei das Identifizieren der paarweisen Übereinstimmung enthält Erstellen einer d-mal-d-Matrix mithilfe von d Datenpunkten von jedem der aktuellen Wavelets, in der jedes Element der Matrix einem quadrierten Abstand entspricht, d(ti, pj) = (ti, pj)2, der eine Ausrichtung zwischen den Punkten ti und pj darstellt, und Identifizieren einer besten Übereinstimmung zwischen diesen beiden Sequenzen durch Abrufen eines optimalen Weges durch die d-mal-d-Matrix, der den kumulativen Gesamtabstand zwischen den beiden Sequenzen minimiert.
  18. Computerprogrammprodukt nach Anspruch 11, wobei der vorgegebene Schwellenwert auf Grundlage einer Benutzereingabe modifizierbar ist.
  19. Auf einem Computer implementiertes Verfahren zum Identifizieren eines Kontextes, wobei das Verfahren aufweist: Empfangen von Echtzeitdaten des Kontextes über einen Zeitraum hinweg; Festlegen des Kontextes auf eine erste Granularitätsebene; Aufteilen der Echtzeitdaten in Wavelets auf Grundlage der ersten Granularitätsebene; und Versuchen, ein Muster in den Wavelets auf Grundlage von dynamischer Zeitnormierung zu identifizieren.
  20. Auf einem Computer implementiertes Verfahren nach Anspruch 19, wobei nach einem Ermitteln, dass kein Muster in den Wavelets identifiziert worden ist: Festlegen des Kontextes auf eine zweite Granularitätsebene, die feiner als die erste Granularitätsebene ist; Aufteilen der Echtzeitdaten in Wavelets auf Grundlage der zweiten Granularitätsebene; und Versuchen, das Muster in den Wavelets auf Grundlage der dynamischen Zeitnormierung zu identifizieren.
  21. Computersystem, das aufweist: einen oder mehrere Prozessoren; einen durch einen Computer lesbaren Speicher, der mit den Prozessoren verbunden ist, wobei der durch einen Computer lesbare Speicher Anweisungen aufweist, die, wenn sie durch die Prozessoren ausgeführt werden, Vorgänge des Verfahrens nach einem der Ansprüche 1 bis 10 und 19 bis 20 durchführen.
DE112021003999.7T 2020-07-28 2021-06-03 Kontextsensitive anomalieerkennung Pending DE112021003999T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/940,508 2020-07-28
US16/940,508 US11947627B2 (en) 2020-07-28 2020-07-28 Context aware anomaly detection
PCT/CN2021/098199 WO2022022059A1 (en) 2020-07-28 2021-06-03 Context aware anomaly detection

Publications (1)

Publication Number Publication Date
DE112021003999T5 true DE112021003999T5 (de) 2023-05-11

Family

ID=80003098

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021003999.7T Pending DE112021003999T5 (de) 2020-07-28 2021-06-03 Kontextsensitive anomalieerkennung

Country Status (6)

Country Link
US (1) US11947627B2 (de)
JP (1) JP2023535202A (de)
CN (1) CN116235149A (de)
DE (1) DE112021003999T5 (de)
GB (1) GB2612272A (de)
WO (1) WO2022022059A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12039395B2 (en) * 2022-07-18 2024-07-16 NCR Alleos Corporation Method for detecting mounting of an object at a terminal device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9082401B1 (en) * 2013-01-09 2015-07-14 Google Inc. Text-to-speech synthesis
US9727821B2 (en) 2013-08-16 2017-08-08 International Business Machines Corporation Sequential anomaly detection
US20170060652A1 (en) 2015-03-31 2017-03-02 International Business Machines Corporation Unsupervised multisource temporal anomaly detection
US20160328654A1 (en) 2015-05-04 2016-11-10 Agt International Gmbh Anomaly detection for context-dependent data
US10129118B1 (en) 2016-03-29 2018-11-13 Amazon Technologies, Inc. Real time anomaly detection for data streams
US11646101B2 (en) 2018-07-24 2023-05-09 King Abdullah University Of Science And Technology Continuous wavelet-based dynamic time warping method and system
US11218498B2 (en) 2018-09-05 2022-01-04 Oracle International Corporation Context-aware feature embedding and anomaly detection of sequential log data using deep recurrent neural networks
CN110865929B (zh) 2019-11-26 2024-01-23 携程旅游信息技术(上海)有限公司 异常检测预警方法及系统

Also Published As

Publication number Publication date
US11947627B2 (en) 2024-04-02
GB2612272A (en) 2023-04-26
GB202302594D0 (en) 2023-04-12
US20220036133A1 (en) 2022-02-03
WO2022022059A1 (en) 2022-02-03
CN116235149A (zh) 2023-06-06
JP2023535202A (ja) 2023-08-16

Similar Documents

Publication Publication Date Title
DE112018005227T5 (de) Merkmalsextraktion mithilfe von multi-task-lernen
DE112018005462T5 (de) Anomalie-erkennung unter verwendung von cognitive-computing
DE112018002984T5 (de) Konformitätsbewusste Laufzeiterzeugung auf Grundlage von Anwendungsmustern und Risikobeurteilung
DE112020003820T5 (de) Erkennung von Anomalien und Abweichungen unter Verwendung eines domänenindizierten Einschränkungs-Repository
DE102017220898A1 (de) Verfahren und Vorrichtung zur Klassifizierung einer während der Sicherheitskontrolle zu kontrollierenden Person
DE112020003380B4 (de) Ermittlung des zustands der infrastruktur in einem interessierenden bereich
DE112020005610T5 (de) Identifizieren von optimalen gewichtungen zum verbessern einervorhersagegenauigkeit bei methoden für maschinelles lernen
DE112011104487T5 (de) Verfahren und System zur prädiktiven Modellierung
DE112021001566T5 (de) Ermitteln von abhängigkeiten multivariater zeitreihendaten
DE112020002110T5 (de) Ressourcenarme entitätsauflösung mit transfer learning
DE112017000669T5 (de) Semantische Segmentierung auf der Grundlage einer globalen Optimierung
DE112019003042T5 (de) Erkennung von verdächtigen aktivitäten in computernetzwerken
DE112021002867T5 (de) Defektdetektion für eine leiterplattenbaugruppe
DE112021003262T5 (de) Erkennen von quelldatensätzen, die zu einem transferlernverfahren für eine zieldomäne passen
DE112021002572T5 (de) Multikriterielles optimieren von anwendungen
DE112018001290T5 (de) Verfahren zum Schätzen der Löschbarkeit von Datenobjekten
DE112021005569T5 (de) Kontradiktorisches, halbüberwachtes one-shot-lernen
DE112020001034T5 (de) Seltene fälle berücksichtigende trainingsdaten für künstliche intelligenz
DE112019005373T5 (de) Framework für maschinelles lernen zum finden von materialien mit gewünschten eigenschaften
DE112020001774T5 (de) Datensatzabhängiges niedrigrang-zerlegen von neuronalen netzwerken
DE112022002622T5 (de) Abschwächen gegnerischer angriffe zur gleichzeitigen vorhersage und optimierung von modellen
DE112020005732T5 (de) Erzeugen von trainingsdaten zur objekterkennung
DE112021003184T5 (de) Ermittlung von laufzeitumgebungen für software-container
DE112021003999T5 (de) Kontextsensitive anomalieerkennung
DE112021006507T5 (de) Räumlich-zeitliches tiefes lernen für die verhaltensbiometrie

Legal Events

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