-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung betrifft das Steuern eines Deep-Sequence-Modells mit Prototypen.
-
HINTERGRUND
-
Deep-Learning-Modelle werden bei der Sequenzdatenanalyse eingesetzt, um bei der Entscheidungsfindung zu helfen. Deep-Sequence-Modelle, wie beispielsweise rekurrente neuronale Netze (RNN), können zum Vorhersagen eines Patientenzustands durch Modellieren elektronischer Gesundheitsakten (EHR; engl. electronic health records), Analysieren des Themas oder der Ansicht von Texten und Verstehen von Audiosignalen verwendet werden. Solche Techniken haben in verschiedenen Anwendungen Ergebnisse des Stands der Technik erzielt.
-
Trotz ihrer Leistungsfähigkeit werden RNNs oft als „Black Boxes“ betrachtet. Dies liegt an ihrer komplexen Architektur und der massiven Größe der Modellgewichte. Dieser Mangel an Interpretierbarkeit beschränkt den Einsatz von RNNs bei vielen kritischen Entscheidungsszenarien, bei welchen ein Verständnis der Gründe hinter einer Vorhersage erfordert werden können. Als ein Beispiel räumen jüngste Datenschutzbestimmungen in der Europäischen Union Einzelpersonen das „Recht auf Erklärung“ für Entscheidungen ein, die durch maschinelle Lernsysteme getroffen werden (siehe beispielsweise Voigt, Paul und Axel Von dem Bussche, „The EU General Data Protection Regulation (GDPR)", A Practical Guide, 1st Ed., Cham: Springer International Publishing (2017)).
-
Neben der Interpretierbarkeit ist die Steuerbarkeit eine weitere Herausforderung beim Einsatz von Deep-Sequence-Modellen. Viele Anwendungen könnten davon profitieren, die Domänenexperten zu unterstützen, um die Modelle mit ihren Erkenntnissen und Domänenwissen direkt zu steuern. Beispielsweise kann ein Arzt mit reicher Erfahrung mit Herzkrankheiten über wertvolles Wissen verfügen, von dem ein Modell zur Vorhersage eines Risikos einer Herzinsuffizienz profitieren kann. Zwar kann ein Ende-zu-Ende-Training tiefer neuronaler Netze eine Notwendigkeit verringern, Datenmerkmale manuell zu kuratieren, aber das Training alleine stellt fachkundigen Benutzern nicht die Funktionalität bereit, das Modell zu steuern.
-
ZUSAMMENFASSUNG
-
Bei einem oder mehreren veranschaulichenden Beispielen wird ein Verfahren zum Steuern eines Deep-Sequence-Modells mit Prototypen beschrieben. Das Verfahren enthält das Anzeigen einer visuellen Schnittstelle, wobei die visuelle Schnittstelle eine Prototyp-Übersicht enthält, die eine Vielzahl von Prototypsequenzen zeigt, die durch ein Modell durch Rückwärtspropagierung gelernt werden, wobei jede Prototypsequenz eine Reihe von Ereignissen enthält, wobei für jede Prototypsequenz statistische Informationen in Bezug auf die Verwendung der Prototypsequenz durch das Modell aufgezeigt werden. Das Verfahren enthält auch das Empfangen einer Eingabe in die visuelle Schnittstelle, wobei die Eingabe eine oder mehrere Prototypsequenzen anpasst, um eine Feinabstimmung des Modells vorzunehmen, und das Aktualisieren des Modells unter Verwendung der Vielzahl von angepassten Prototypsequenzen, um ein aktualisiertes Modell zu erstellen. Das Verfahren enthält ferner das Anzeigen von Aktualisierungen zu der Vielzahl von Prototypsequenzen, die durch das aktualisierte Modell identifiziert werden, in der visuellen Schnittstelle.
-
Bei einem oder mehreren veranschaulichenden Beispielen wird ein System zum Steuern eines Deep-Sequence-Modells mit Prototypen beschrieben. Das System enthält eine Anzeigevorrichtung; einen Speicher, der zum Erhalten bzw. Pflegen von Prototypsequenzen und eines Modells konfiguriert ist; und einen Prozessor, der mit der Anzeigevorrichtung und dem Speicher in Verbindung steht. Der Prozessor ist programmiert, um eine visuelle Schnittstelle anzuzeigen, wobei die visuelle Schnittstelle eine Prototyp-Übersicht enthält, die eine Vielzahl von Prototypsequenzen zeigt, die durch ein Modell durch Rückwärtspropagierung gelernt werden, wobei jede Prototypsequenz eine Reihe von Ereignissen enthält, wobei für jede Prototypsequenz statistische Informationen in Bezug auf die Verwendung der Prototypsequenz durch das Modell aufgezeigt werden. Der Prozessor ist auch programmiert, um eine Eingabe in die visuelle Schnittstelle zu empfangen, wobei die Eingabe eine oder mehrere Prototypsequenzen anpasst, um eine Feinabstimmung des Modells vorzunehmen; das Modell unter Verwendung der Vielzahl von angepassten Prototypsequenzen zu aktualisieren, um ein aktualisiertes Modell zu erstellen; und in der visuellen Schnittstelle Aktualisierungen zu der Vielzahl von Prototypsequenzen anzuzeigen, die durch das aktualisierte Modell identifiziert werden.
-
Figurenliste
-
- 1 veranschaulicht eine beispielhafte Architektur eines Systems zum Bereitstellen einer visuellen Schnittstelle zum Steuern eines Deep-Sequence-Modells mit Prototypen;
- die 2A, 2B und 2C veranschaulichen kollektiv ein Beispiel der visuellen Schnittstelle des Systems;
- 3 veranschaulicht einen beispielhaften Vergleichsmodus für eine Prototyp-Übersicht der visuellen Schnittstelle des Systems;
- 4 veranschaulicht ein Detail eines Beispiels eines Editiergraphen der visuellen Schnittstelle des Systems;
- die 5A und 5B veranschaulichen kollektiv ein Detail eines Beispiels eines Sequenzabfrage-/Editier-Widgets der visuellen Schnittstelle des Systems;
- 6 veranschaulicht eine detaillierte Ansicht des Modells zur Verwendung in dem System; und
- 7 veranschaulicht einen beispielhaften Prozess zum Bereitstellen einer visuellen Schnittstelle zum Steuern eines Deep-Sequence-Modells mit Prototypen.
-
DETAILLIERTE BESCHREIBUNG
-
Hierin werden Ausführungsformen der vorliegenden Offenbarung beschrieben. Es sollte jedoch klar sein, dass die offenbarten Ausführungsformen lediglich Beispiele sind und andere Ausführungsformen verschiedene und alternative Formen bzw. Ausgestaltungen annehmen können. Die Figuren sind nicht unbedingt maßstabsgetreu; einige Merkmale könnten übertrieben oder minimiert sein, um Details bestimmter Komponenten zu zeigen. Daher werden spezifische strukturelle und funktionelle Details, die hierin offenbart sind, nicht als beschränkend sondern lediglich als eine repräsentative Basis zum Lehren eines Fachmannes interpretiert, um die Ausführungsformen verschieden einzusetzen. Wie jemand mit gewöhnlichen Fähigkeiten in der Technik verstehen wird, können verschiedene Merkmale, die in Bezug auf eine beliebige Figur der Figuren veranschaulicht und beschrieben werden, mit Merkmalen kombiniert werden, die in einer oder mehreren anderen Figuren veranschaulicht sind, um Ausführungsformen hervorzubringen, die nicht explizit veranschaulicht oder beschrieben sind. Die Kombinationen der veranschaulichten Merkmale liefern repräsentative Ausführungsformen für typische Anwendungen. Verschiedene Kombinationen und Modifikationen der Merkmale, die mit den Lehren dieser Offenbarung konform gehen, könnten jedoch für bestimmte Anwendungen oder Implementierungen erwünscht werden.
-
Ein Ansatz des maschinellen Lernens, der sowohl interpretierbar als auch steuerbar ist, ermöglicht Domänenexperten, Erkenntnisse aus dem Modell zu gewinnen und auch das Modell mit ihrem Wissen zu verfeinern, wobei eine beidseitig vorteilhafte Feedbackschleife geschaffen wird. Wie hierin detailliert erläutert, ermöglichen die beschriebenen Ansätze einem Benutzer, Sequenzlernmodelle zu steuern, ohne auf Praktiker des maschinellen Lernens als Vermittler angewiesen zu sein. Die offenbarten Konzepte verwenden für sowohl eine Interpretierbarkeit als auch Vorhersagegenauigkeit ein Sequenzlernmodell, das Prototyp-Lernen und tiefe neuronale Netze kombiniert. Eine Hauptkomponente des Modells ist ein kleiner Satz von Musterfällen (hierin als Prototypen bezeichnet), die unter Verwendung von historischen Daten bzw. Stammdaten gebildet werden. Eine interaktive visuelle Schnittstelle kann ausgelegt sein, um Experten in verschiedenen Anwendungsdomänen dabei zu unterstützen, die durch das Modell gelernten Sequenzprototypen zu inspizieren, zu kritisieren und zu überarbeiten. Durch das Vornehmen dieser Überarbeitungen an dem Modell kann die Funktionalität des Computersystems verbessert werden, das das Modell verwendet.
-
Eine verbesserte visuelle Schnittstelle kann konfiguriert sein, um eine iterative Modellverfeinerung für Endbenutzer mit einem beschränkten Hintergrund im maschinellen Lernen zu unterstützten. Die visuelle Schnittstelle stellt einen Satz Visualisierungen und Interaktionen bereit, um Endbenutzern zu helfen, die Prototypen in einem Modell zu inspizieren, zu kritisieren und zu überarbeiten. Insbesondere verwendet die visuelle Schnittstelle ein Backbone-Deep-Sequence-Modell, das inhärent interpretierbar ist. (Weitere Informationen zu solch einem Modell werden in der Veröffentlichung Yao Ming, Panpan Xu, Huamin Qu und Liu Ren, „Interpretable and Steerable Sequence Learning via Prototypes“, Proceedings of the 25nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, detailliert beschrieben, die durch Verweis in vollem Umfang derselben hierin aufgenommen ist.) Das Modell kann Prototyp-Lernen einsetzen, das eine Form der fallbasierten Beweisführung bzw. Schlussfolgerung ist. Hierbei verwendet das Modell einen problemlösenden Prozess, der das Heranziehen ähnlicher Fälle in der Vergangenheit zum Formulieren von Lösungen für neue Situationen verwendet. Insbesondere bildet das Modell einen kleinen Satz prototypischer Sequenzen aus den ursprünglichen Trainingsdaten. Neue Eingaben können mit den Prototypen in dem latenten Raum eines Codierernetzes zur Vorhersage-Ausgabe verglichen werden. Die gelernten Prototypen geben folglich eine prägnante Zusammenfassung der Sequenzen, da die Anzahl derselben für gewöhnlich viel geringer als die Größe der ursprünglichen Trainingsdaten ist. Weitere Aspekte des Modells und der Verwendung desselben werden hierin detailliert erörtert.
-
1 veranschaulicht eine beispielhafte Architektur eines Systems 100 zum Bereitstellen einer visuellen Schnittstelle 110 zum Steuern eines Deep-Sequence-Modells 104 mit Prototypen. Wie gezeigt, enthält das System 100 eine Speicherschicht 102, eine Dienstschicht 120 und die visuelle Schnittstelle 110. Es sollte beachtet werden, dass die veranschaulichte Architektur nur ein Beispiel ist und andere Layouts der Elemente oder Kombinationen der Elemente verwendet werden können.
-
Die Speicherschicht 102 kann zum Pflegen historischer Snapshots bzw. Momentaufnahmen des Modells 104 konfiguriert sein. Die Speicherschicht 102 kann auch einen Datenspeicher 106 pflegen, der die Trainings-, Validierungs- und Prüfdaten enthält, um ein inkrementelles Training des Modells 104 zu unterstützen. Die Speicherschicht 102 kann auch einen Sequenzindex 108 pflegen, der abgefragt und visualisiert werden kann.
-
Die visuelle Schnittstelle 110 enthält einen reichhaltigen Satz an Visualisierungen, um eine Inspektion des Modells 104 zu unterstützen, und eine Reihe von Benutzerinteraktionen, um ein effizientes Benutzer-Feedback zu dem Modell 104 zu unterstützen. Wie nachstehend detailliert erörtert wird, kann die visuelle Schnittstelle 110 eine Prototyp-Übersicht 112, eine Sequenzdetailansicht 114, eine Sequenzcodiereransicht 116 und einen Prototyp-Editor 118 enthalten. Der Prototyp-Editor 118 kann dem Benutzer ermöglichen, Prototypen zu erstellen, zu aktualisieren und zu löschen.
-
Die Dienstschicht 120 kann einen Modellmanager 122, eine Analytik-Komponente 124 und eine Sequenzabfrage-Komponente 126 enthalten. Der Modellmanager 122 kann konfiguriert sein, um zwischen der Speicherschicht 102 und der visuellen Schnittstelle 110 zu kommunizieren. Der Modellmanager 122 kann konfiguriert sein, um eine Feinabstimmung des Modells 104 gemäß der über die visuelle Schnittstelle 110 empfangenen Benutzereingabe vorzunehmen. Der Modellmanager 122 kann ferner eine Rückgängig- oder Wiederherstellungs-Funktionalität unterstützen.
-
Die Analytik-Komponente 124 kann auch konfiguriert sein, um zwischen der Speicherschicht 102 und der visuellen Schnittstelle 110 zu kommunizieren. Die Analytik-Komponente 124 kann zum Sammeln statistischer Zusammenfassungen konfiguriert sein, die auf der visuellen Schnittstelle 110 angezeigt werden können, um Benutzern zu helfen, das Verhalten des Modells 104 besser zu verstehen. Die Analytik-Komponente 124 kann auch Vergleiche zwischen verschiedenen Momentaufnahmen des Modells 104 durchführen, um dabei zu helfen, die Änderungen zu verfolgen.
-
Die Sequenzabfrage-Komponente 126 kann auch konfiguriert sein, um zwischen der Speicherschicht 102 und der visuellen Schnittstelle 110 zu kommunizieren. Durch die Sequenzabfrage-Komponente 126 können Benutzer den Sequenzindex 108 in dem Datenspeicher 106 durchsuchen, um neue Prototypen zu erstellen.
-
Die Algorithmen und/oder Methodiken von einer oder mehreren Ausführungsformen, die hierin beschrieben werden, können unter Verwendung einer Rechenplattform implementiert werden. Die Rechenplattform kann einen Speicher, einen Prozessor und einen nichtflüchtigen Speicher enthalten. Der Prozessor kann eine oder mehrere Vorrichtungen enthalten, die aus Systemen zum Hochleistungsrechnen (HPC; engl. high-performance computing), die Hochleistungskerne enthalten, Mikroprozessoren, Mikrocontrollern, digitalen Signalprozessoren, Mikrocomputern, zentralen Verarbeitungseinheiten, feldprogrammierbaren Gatearrays, programmierbaren Logikvorrichtungen, Zustandsmaschinen, Logikschaltungen, analogen Schaltungen, digitalen Schaltungen oder beliebigen anderen Vorrichtungen ausgewählt werden, die Signale (analog oder digital) basierend auf durch einen Computer ausführbaren Anweisungen handhaben, die sich in dem Speicher befinden. Der Speicher kann eine einzelne Speichervorrichtung oder eine Anzahl von Speichervorrichtungen enthalten, die einen Direktzugriffsspeicher (RAM; engl. random access memory), einen flüchtigen Speicher, einen nichtflüchtigen Speicher, einen statischen Direktzugriffsspeicher (SRAM), einen dynamischen Direktzugriffsspeicher (DRAM), einen Flash-Speicher, einen Cache-Speicher oder jede beliebige andere Vorrichtung, die zum Speichern von Informationen fähig ist, enthalten, aber nicht darauf beschränkt sind. Der nichtflüchtige Speicher kann eine oder mehrere persistente Datenspeichervorrichtungen enthalten, wie beispielsweise eine Festplatte, ein optisches Laufwerk, ein Bandlaufwerk, eine nichtflüchtige Festkörper- bzw. Solid-State-Vorrichtung, ein Cloud-Speicher oder jede beliebige andere Vorrichtung, die zum persistenten Speichern von Informationen fähig ist.
-
Der Prozessor kann konfiguriert sein, um durch einen Computer ausführbare Anweisungen, die sich in einer Software des nichtflüchtigen Speichers befinden und Algorithmen und/oder Methodiken von einer oder mehreren Ausführungsformen verkörpern, die hierin erörtert werden, in einen Speicher einzulesen und auszuführen. Die Software kann Betriebssysteme und Anwendungen enthalten. Die Software kann von Computerprogrammen, die unter Verwendung einer Vielzahl von Programmiersprachen und/oder Technologien erstellt werden, die ohne Beschränkung und entweder alleine oder in einer Kombination Java, C, C++, C#, Objective C, Fortran, Pascal, Java Script, Python, Perl und PL/SQL enthalten, kompiliert oder interpretiert werden. Bei einer Ausführungsform kann PyTorch, das ein Paket für die Python-Programmiersprache ist, verwendet werden, um zumindest einen Abschnitt des Codes von einer oder mehreren Ausführungsformen zu implementieren.
-
Der Programmcode, der die Algorithmen und/oder Methodiken verkörpert, die hierin beschrieben werden, kann auch individuell oder kollektiv als ein Programmprodukt in einer Vielzahl von unterschiedlichen Formen verteilt werden. Der Programmcode kann unter Verwendung eines computerlesbaren Speichermediums, das auf demselben computerlesbare Programmbefehle aufweist, zum Verursachen verteilt werden, dass ein Prozessor Aspekte von einer oder mehreren Ausführungsformen ausführt. Computerlesbare Speichermedien, die inhärent nichttransitorisch sind, können flüchtige und nichtflüchtige und entfernbare und nicht-entfernbare greifbare Speichermedien enthalten, die in einem beliebigen Verfahren oder einer beliebigen Technologie zur Speicherung von Informationen implementiert werden, wie beispielsweise computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten. Die computerlesbaren Speichermedien können ferner ein RAM, ein ROM, einen löschbaren programmierbaren Festwertspeicher (EPROM; engl. erasable programmable read-only memory), einen elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM; engl. electrically erasable programmable read-only memory), einen Flash-Speicher oder eine andere Solid-State-Speichertechnologie, einen tragbaren Compact-Disc-Festwertspeicher (CD-ROM) oder anderen optischen Speicher, Magnetkassetten, ein Magnetband, einen Magnetplattenspeicher oder andere Magnetspeichervorrichtungen oder ein beliebiges anderes Medium enthalten, das zum Speichern der erwünschten Informationen verwendet werden kann und durch einen Computer gelesen werden kann. Computerlesbare Programmbefehle können über ein Netzwerk auf einen Computer, eine andere Art einer programmierbaren Datenverarbeitungseinrichtung oder eine andere Vorrichtung von einem computerlesbaren Speichermedium oder auf einen externen Computer oder eine externe Speichervorrichtung heruntergeladen werden.
-
Die 2A, 2B und 2C veranschaulichen kollektiv ein Beispiel 200 der visuellen Schnittstelle 110 des Systems 100. Wie gezeigt, enthält die visuelle Schnittstelle 110 die Prototyp-Übersicht 112, die Sequenzdetailansicht 114, einen Editiergraphen und eine Sequenzcodiereransicht. Die visuelle Schnittstelle 110 kann einer Anzeigevorrichtung bereitgestellt werden, die einen elektronischen Anzeigebildschirm, einen Berührungsbildschirm bzw. Touchscreen, einen Projektor oder jede beliebige andere geeignete Vorrichtung enthalten kann, die eine grafische Anzeige wiedergibt. Es sollte beachtet werden, dass das veranschaulichte Layout nur ein Beispiel ist und verschiedene Layouts von Elementen oder Kombinationen von Elementen verwendet werden können.
-
Wie bei (A) gezeigt, kann die Prototyp-Übersicht 112 eine Hauptkomponente der visuellen Schnittstelle 110 sein. Die Prototyp-Übersicht 112 kann konfiguriert sein, um die Prototypen in dem Modell 104 begleitet von reichhaltigen bzw. umfassenden Informationen anzuzeigen, um Benutzern dabei zu helfen, das Verhalten des Modells 104 zu verstehen. Wie gezeigt, kann jeder Prototyp als eine Sequenz horizontal angeordneter rechteckiger Ereignisse mit Ereignisnamen visualisiert werden, die als Textetiketten angezeigt werden. Zudem codiert in dem veranschaulichten Beispiel die Rand- bzw. Rahmenfarbe jedes Ereignisses die Art des Ereignisses. Insbesondere können verschiedene Farbcodierungsschemen für unterschiedliche Anwendungsszenarien verwendet werden.
-
Die Prototyp-Übersicht 112 kann ferner konfiguriert sein, um die Visualisierung des Prototypgewichts zu ermöglichen. Bei einem Beispiel kann die Prototyp-Übersicht 112 eine Gewichtsspalte enthalten, wobei die Spalte für jeden Prototyp einen Wert anzeigt, der für die relative Wichtigkeit des jeweiligen Prototyps beim Bestimmen der verschiedenen möglichen Ausgaben des Modells 104 bezeichnend ist. Bei Klassifizierungsaufgaben zeigt die Spalte die jeweilige Stärke der Assoziation zwischen den Prototypen und den verschiedenen Klassenetiketten. Die angezeigten Werte können die entsprechenden Einträge in der Gewichtsmatrix W der vollständig verbundenen Schicht fi des Modells 104 sein. Genauer ist Wij die Wichtigkeit des Prototyps pi beim Bestimmen der Ausgabe des Modells 104, die als j gekennzeichnet ist. Die kategorischen Farben differenzieren die Etiketten in der Klassifizierungsaufgabe. Beispielsweise werden negative Gewichte in einer ersten Farbe oder einem ersten Erscheinungsbild veranschaulicht, während positive Gewichte in einer zweiten Farbe oder einem zweiten Erscheinungsbild angezeigt werden.
-
Die Prototyp-Übersicht 112 kann auch konfiguriert sein, um eine Vorhersageleistung zusammenzufassen. Beispielsweise kann das System 100 für jeden Prototyp alle Dateninstanzen berechnen, die demselben am nächsten sind, wobei diese Instanzen als die Nachbarschaft des Prototyps bezeichnet werden können. Eine Zusammenfassung der Entscheidungen des Modells 104 über diese nächsten Nachbarn kann in der Prototyp-Übersicht 112 als ein gestapelter horizontaler Balken veranschaulicht werden, der in der Vorhersagespalte angezeigt wird. Die Breite des Balkens kann die Gesamtanzahl an Nachbarschaftsinstanzen repräsentieren, während die kategorische Farbe die Entscheidungen angeben kann, die durch das Modell 104 in der Klassifizierungsaufgabe getroffen werden, (ähnlich wie in Bezug auf die Gewichtsspalte gezeigt). Die Höhe des Rechtecks kann die Wertung codieren. In dem veranschaulichten Beispiel werden solide Blöcke verwendet, um korrekte Klassifizierungsergebnisse anzugeben, und mit einem Muster versehene Blöcke verwendet, um Fehler anzugeben, (wenn auch in anderen Beispielen andere Ansätze verwendet werden können). Die Breite jedes farbigen Blocks wird gezeigt, um die Anzahl an Instanzen, die korrekt oder inkorrekt klassifiziert wurden, zu dem entsprechenden Etikett zu repräsentieren. Diese visuelle Codierung hilft Benutzern, wichtige Prototypen, die eine große Anzahl an Instanzen repräsentieren, sowie Prototypen schnell zu identifizieren, die üblicherweise mit ungenauen Vorhersageergebnissen assoziiert werden. Die Prototyp-Übersicht 112 kann auch inkrementelle Änderungen, die in Erwiderung auf Benutzerbearbeitungen der Prototypen vorgenommen wurden, sowie beliebige entsprechende Aktualisierungen an dem Modell 104 veranschaulichen.
-
Die Prototyp-Übersicht 112 kann auch konfiguriert sein, um Benutzern zu ermöglichen, die Liste der Prototypen neu zu ordnen. Die Liste der Prototypen kann basierend auf mehreren verschiedenen Kriterien sortiert werden, um eine Vielzahl von analytischen Aufgaben anzugehen. Standardmäßig sortiert das System 100 die Prototypen basierend auf der Ähnlichkeit derselben. Hierfür kann das System 100 ein hierarchisches Clustering der Prototypen basierend auf den Abständen derselben in dem latenten Raum durchführen und folglich eine lineare Anordnung bzw. Ordnung erhalten. Das Sortieren kann folglich auf Prototypen einer Ähnlichkeitsgruppe basieren, die einander ähneln, wobei das Erkennen einer Redundanz unterstützt wird. Die Prototyp-Übersicht 112 kann auch konfiguriert sein, um Benutzern zu ermöglichen, die Prototypen gemäß einer Genauigkeit der Vorhersageergebnisse zu sortieren. Dies kann ermöglichen, dass auf die problematischen Prototypen zur weiteren Analyse aufmerksam gemacht wird.
-
Die Prototyp-Übersicht 112 kann auch konfiguriert sein, um ein Filtern der Prototypen zu ermöglichen. Die Anzahl sichtbarer Prototypen kann durch Filtern auf verschiedene Weisen verringert werden. Bei einem Beispiel kann der Benutzer ein paar Ereignisse spezifizieren und die Liste wird nur Prototypen anzeigen, die eines der Ereignisse enthalten. Bei einem anderen Beispiel wählt der Benutzer einen Prototyp aus und die Liste wird die ersten bzw. Top-k Prototypen anzeigen, die demselben in dem latenten Raum am ähnlichsten sind. Das Filtern durch das Ereignis kann beim Eingrenzen einer Suche helfen, wenn Interesse an einem bestimmten Prototyp besteht. Das Filtern durch die Ähnlichkeit kann beim Identifizierten potentieller doppelter Prototypen helfen. Bei einer beispielhaften Implementierung kann k auf 10 festgelegt sein.
-
Die Prototyp-Übersicht 112 kann auch konfiguriert sein, um eine Visualisierung der Bedeutung bzw. Wichtigkeit eines Ereignisses zu ermöglichen. Diese Wichtigkeit des Ereignisses kann bei einem Beispiel als ein horizontaler Balken an der Unterseite des Rechtecks (3) angezeigt werden. Die Länge des Balkens kann zu einer Wichtigkeitswertung proportional sein, um das Hervorheben der kritischsten Ereignisse zu unterstützen. Die Wichtigkeit jedes Ereignisses e in einem Prototyp p kann mit einer Leave-One-Out-Strategie berechnet werden. Genauer kann ein Algorithmus die folgenden Operationen für jedes e durchführen:
- 1. Entferne e vom Prototyp p, um eine neue Sequenz p' zu erhalten.
- 2. Berechne den Abstand zwischen dem ursprünglichen Prototyp p und p' in dem latenten Raum, der durch den Sequenzcodierer r definiert wird.
- 3. Wandle den Abstand in einen normalisierten Wert zwischen 0 und 1 um, wobei 0 angibt, dass das Entfernen von e keine Auswirkung auf die latente Darstellung von p hat. Der normalisierte Wert ist die Wichtigkeit des e.
-
Die Intuition ist, dass je wichtiger ein Ereignis e ist, desto weiter weg wird der Prototyp von der ursprünglichen Position desselben in dem latenten Raum beim Entfernen des e geschoben. Wie in den 2A und 2B gezeigt, geben die langen Balken unter den Wörtern „great“ und „horrible“ an, dass diese Wörter bei dem Prototyp #43 äußerst wichtig sind. Die Prototyp-Übersicht 112 kann auch anzeigen, wie gut sich jedes Ereignis in einem Prototyp mit denen in den Nachbarschaftssequenzen ausrichtet.
-
3 veranschaulicht einen beispielhaften Vergleichsmodus 300 für eine Prototyp-Übersicht der visuellen Schnittstelle des Systems. Der Vergleichsmodus 300 kann verwendet werden, um Benutzern zu ermöglichen, Unterschiede des Modells 104 zu visualisieren. Beispielsweise können Benutzer die Änderungen nach dem Aktualisieren der Prototypen in der Prototyp-Übersicht via Verwendung des Vergleichsmodus 300 verstehen und analysieren.
-
Ähnlich einigen beliebten Code- oder Dokumentversion-Vergleichstools kann das System 100 die Prototypen mit unterschiedlichen Farben hervorheben, um verschiedene Arten von Bearbeitungen, die vorgenommen wurden, in der Prototyp-Übersicht 112 anzugeben. Wie in 3 gezeigt, werden hinzugefügte, gelöschte und bearbeitete Prototypen mit einem grünen Kreis, der ein grünes Plus enthält, einem roten Kreis, der ein rotes x enthält, bzw. einem blauen Kreis, der ein blaues Ausrufezeichen enthält, markiert. Diese visuellen Hinweise helfen Benutzern, die Änderungen nachzuverfolgen.
-
Nachdem die Bearbeitungen festgeschrieben werden, kann eine Feinabstimmung an dem Modell 104 durch das System mit den aktualisierten Prototypen vorgenommen werden. Daher ist es nützlich, dass diese Änderungen in dem Modell 104 visualisiert werden, nachdem eine Feinabstimmung an dem Modell 104 vorgenommen wurde. Das direkte Vergleichen der Parameter des Modells 104 ist möglicherweise nicht hilfreich, da eine Interpretierung derselben äußerst schwierig sein kann. Da das System 100 ein Deep-Sequence-Modell verwendet, das inhärent interpretierbar ist, werden die Entscheidungen des Modells 104 basierend auf der Nähe der Eingaben zu den Prototypen getroffen. Folglich kann das System 100 die sich verändernden Nachbarschaften jedes Prototyps visualisieren, um den Unterschied in dem Modell 104 vor und nach der Aktualisierung zusammenzufassen.
-
Um den Vergleichsmodus 300 zu aktivieren, kann die Benutzerschnittstelle 110 eine Vergleichssteuerung an einer historischen Interaktionsaufzeichnung in dem Editiergraphen enthalten, wie in 2C gezeigt. In Erwiderung auf eine Auswahl der Vergleichssteuerung kann dann eine zusätzliche Spalte rechts neben der Prototyp-Übersicht 112 hinzugefügt werden, um die Anzahl an Instanzen anzuzeigen, die aus der Nachbarschaft jedes Prototyps zufließen bzw. einfließen und abfließen bzw. ausfließen. Wie in 3 gezeigt, kann dies beispielsweise als zwei horizontal gestapelte Balkendiagramme veranschaulicht werden. Der Balken rechts gibt die Dateninstanzen an, die aus der Nachbarschaft eines Prototyps ausfließen, während der Balken links die Dateninstanzen angibt, die einfließen. Die Längen der Balken können zu der entsprechenden Anzahl an Instanzen proportional sein. Die farbigen Blöcke können Klassifizierungsergebnisse angeben, die durch das aktualisierte Modell 104 gegeben werden. Während der Benutzer den Mauszeiger über einen Prototyp oder einen Balken bewegt, kann die Visualisierung gekrümmte Kanten anzeigen, die die Ursprünge und Zielorte der eingehenden und ausgehenden Flüsse verbinden. Beispielsweise werden in 3 diese Kanten für den obersten Prototyp angezeigt, über den der Mauszeiger bewegt wird.
-
Die Benutzerschnittstelle 110 kann auch den Editiergraphen enthalten, wie oben erwähnt wurde. Wie bei (C) der 2C gezeigt, kann der Editiergraph konfiguriert sein, um einen Verlauf der Bearbeitungen, die an dem Modell 104 durchgeführt wurden, unter Verwendung der visuellen Schnittstelle 110 anzuzeigen. Der Editiergraph kann folglich Benutzern dabei helfen, die Bearbeitungen derselben an dem Modell 104 bei Bedarf nachzuverfolgen und rückgängig zu machen.
-
4 veranschaulicht ein Detail eines Beispiels 400 des Editiergraphen der visuellen Schnittstelle 110 des Systems 100. Wie in 4 gezeigt und mit weiterem Bezug auf die 1 und 2A, 2B und 2C, kann das System 100 den Verlauf der Bearbeitungen des Modells 104 als einen gerichteten azyklischen Graphen visualisieren. Jeder Knoten in dem Graphen kann eine Momentaufnahme des Modells 104 repräsentieren. Auf die Knoten kann nochmals zurückgekommen werden und dieselben können erneut bearbeitet werden, um alternative Abzweigungen zu erzeugen. Die gerichteten Verbindungen in dem Graphen können Editierverhältnisse angeben. Zudem kann jeder Knoten eine Zusammenfassung der vorgenommenen Bearbeitungen aufzeigen, die beispielsweise angibt, wie viele Prototypen in jeder Momentaufnahme hinzugefügt, gelöscht oder bearbeitet wurden. Folglich liefert der Graph eine Verfolgbarkeit in dem System 100.
-
Wieder in Bezug auf 2C kann, wie bei (D) gezeigt, die Sequenzcodiereransicht konfiguriert sein, um die Informationen eines versteckten Zustands in der Codiererschicht für fortgeschrittene Benutzer anzuzeigen, um eine Sequenzausrichtung zu analysieren und verschiedene Prototypen zu vergleichen. Dies ermöglicht folglich dem System 100, Änderungen eines versteckten Zustands in dem Sequenzcodierer r des Systems 100 zu visualisieren. Dies ermöglicht erfahrenen Benutzern ferner, die Interna des Modells 104 zu inspizieren und die Prototypen basierend auf Erkenntnissen zu bearbeiten, die aus der Visualisierung eines versteckten Zustands gewonnen werden.
-
Die Ausgestaltung der Sequenzcodiereransicht ist ähnlich den anderen Ansichten um die visuelle Darstellung der Prototypen herum zentriert. Genauer visualisiert die Sequenzcodiereransicht die Änderungen eines versteckten Zustands der Prototypen, wenn dieselben den Sequenzcodierer durchlaufen. Da die versteckten Zustände hochdimensionale Vektoren sind, wird eine Technik zur Dimensionsverringerung verwendet, um die versteckten Zustände auf eine 2D-Ebene zu projizieren. Die projizierten versteckten Zustände des gleichen Prototyps sind verbunden, um eine Trajektorie zu bilden. Die Trajektorien helfen Benutzern dabei, signifikante Änderungen des Vektors eines versteckten Zustands zu identifizieren, die üblicherweise das Auftreten von Schlüsselereignissen oder Unterstrukturen in einer Sequenz angeben (siehe beispielsweise Andrej Karpathy, Justin Johnson und Fei-Fei Li, „Visualizing and understanding recurrent networks“, arXiv preprint arXiv: 1506.01078 (2015)). In der beispielhaften Sequenzcodiereransicht in 2B schiebt beispielsweise das Wort „schrecklich“ den versteckten Zustand erheblich nach links, wobei angegeben wird, dass dasselbe ein kritisches Wort in dem Satz ist.
-
Um die Verteilung der Nachbarn der Prototypen zu visualisieren, kann das System 100 auch die Informationen eines versteckten Zustands derselben auf der gleichen 2D-Ebene projizieren. Das Projizieren solch einer großen Datenmenge (versteckte Zustände tausender Sequenzen x mehrere zehn Ereignisse) zur gleichen Zeit kann jedoch erhebliche Rechenressourcen in Anspruch nehmen (insbesondere für Algorithmen wie t-SNE). Folglich kann das System 100 eine parametrische nichtlineare Projektionstechnik einsetzen. Ein Beispiel einer parametrischen nichtlinearen Projektionstechnik ist Kernel t-SNE (Min, Martin Renqiang, Hongyu Guo und Dinghan Shen, „Parametric t -distributed stochastic exemplar-centered embedding", Joint European Conference on Machine Learning and Knowledge Discovery in Databases. Springer, Cham, 2018). Das Verfahren trainiert eine parametrische Projektionsfunktion mit einer Teilmenge der Daten, die als Skelett-Punkte bezeichnet werden (z.B. die versteckten Zustände von Prototypsequenzen bei der Implementierung des Systems 100). Die verbleibenden Punkte können dann auf Verlangen \ohne weitere Optimierung unter Verwendung der gelernten Funktion projiziert werden, was in linearer Zeit erledigt werden kann.
-
Folglich kombiniert die Ausgestaltung der Projektionsvisualisierung die Trajektorien der Prototypen und die Konturkarten, die die Verteilung eines versteckten Zustands der Nachbarschaften derselben zusammenfassen. Diese Visualisierung hilft, redundante Prototypen zu identifizieren, deren Nachbarschafts-Konturkarten möglicherweise eine erhebliche Überlappung miteinander aufweisen. Es kann beobachtet werden, dass einige projizierte Punkte zu nahe auf der Trajektorie sind und die Etiketten miteinander möglicherweise überlappen. Daher kann das System 100 die Punkte basierend auf der Nähe derselben gruppieren und Etiketten für die Punkte kollektiv nahe dem Cluster anzeigen.
-
Wieder in Bezug auf die 2A, 2B und 2C kann, wie bei (B) gezeigt, die Sequenzdetailansicht 114 konfiguriert sein, um die Nachbarschaftsinstanzen der ausgewählten Prototypen in der Prototyp-Übersicht 112 sowie die Vorhersageergebnisse anzuzeigen. Ein Sequenzabfrage-/Editier-Widget kann auf Verlangen angezeigt werden, um Benutzern dabei zu helfen, den Datenspeicher 106 unter Verwendung einer Kombination von Fuzzy- und exaktem Phrasenabgleich abzufragen sowie potenzielle Prototypen zu erstellen und zu bearbeiten.
-
Die 5A und 5B veranschaulichen kollektiv ein Detail eines Beispiels 500 des Sequenzabfrage-/Editier-Widgets der visuellen Schnittstelle 110 des Systems 100. Wie erwähnt wurde, unterstützt das System 100 einen reichhaltigen Satz von Benutzerinteraktionen, um bei der Verfeinerung des Modells 104 durch Hinzufügen, Löschen und Überarbeiten der Prototypen zu helfen. Das Sequenzabfrage-/Editier-Widget kann verwendet werden, um weitere nützliche Interaktionen mit dem Modell 104 durchzuführen.
-
In einem zusätzlichen Aspekt kann die visuelle Schnittstelle 110 direkte Drag-and-Drop-Interaktionen unterstützen. Viele der Operationen in dem System 100 können durch ein direktes Drag-and-Drop erledigt werden. Beispielsweise kann der Benutzer Prototypen per Drag-and-Drop zu dem Papierkorb verschieben, um dieselben zu entfernen, zu der Sequenzdetailansicht 114 verschieben, um die Nachbarschaftsinstanzen zu inspizieren, und zu der Projektionsansicht (Sequenzcodiereransicht 116) verschieben, um die Verteilungen eines versteckten Zustands zu analysieren. Die Ausgestaltung der Interaktion nutzt physische Metaphern und die Benutzer können eine Vielzahl an Aufgaben durch direkte Handhabung leicht durchführen.
-
Wie bei C2 in den 5A und 5B gezeigt, kann das System 100 einen Sequenzeditor bereitstellen. Der Sequenzeditor kann eine Darstellung einer spezifischen Sequenz zeigen, die ausgewählt wurde, um durch den Benutzer ediert zu werden (z.B. durch Auswahl der Stift- / Editiersteuerung für die entsprechende Sequenz). Unter Verwendung des Sequenzeditors kann der Benutzer Ereignisse zu einem bestehenden Prototyp direkt hinzufügen und entfernen, ohne das Ereignis in einer neuen Form umzuschreiben.
-
Wie bei C1 in den 5A und 5B gezeigt, kann das System 100 ferner eine Suchschnittstelle bereitstellen, um Benutzern dabei zu helfen, neue Prototypen unter Verwendung einer großen Menge an Trainingsdaten zu erstellen. Unter Angabe einer Suchphrase von dem Benutzer kann die Suchschnittstelle eine Rangliste der Sequenzen anzeigen. Insbesondere kann der Benutzer eine Teilsequenz bzw. Teilfolge s spezifizieren, die der Benutzer in einem neuen Prototyp sehen möchte. Das System 100 kann dann die Teilfolge s zum Abgleich gegenüber den Sequenzen in dem Datenspeicher 106 verwenden.
-
Das System 100 unterstützt zwei Abgleichschemen: exakter Abgleich und sanfter Abgleich, die gemeinsam oder separat verwendet werden können. Bei dem exakten Abgleich kann eine Sequenz s' in dem Datenspeicher 106 durch len(LCS(s',s)) / len (s) gewertet bzw. bewertet werden, wobei LCS (·,·) die längste gemeinsame Teilfolge zwischen zwei Eingaben berechnet. Der sanfte Abgleich erfordert nicht, dass das Wort exakt dasselbe ist. Beim Durchführen des sanften Abgleichs berechnet das System 100 stattdessen die latenten Darstellungen der häufigsten n-gramme in den Trainingssequenzen unter Verwendung des Sequenzcodierers r. Während der Suche vergleicht das System 100 die latenten Darstellungen der Abfrage s mit den n-grammen und retourniert die Sequenzen, die die abgeglichenen n-gramme enthalten. Ein Vergleich in dem latenten Raum ermöglicht den Benutzern folglich, semantisch verwandte Sequenzen zu finden.
-
6 veranschaulicht eine detaillierte Ansicht des Modells 104 zur Verwendung in dem System 100. Das Modell 104 kombiniert die Fähigkeit der Deep-Sequence-Netzwerke bzw. tiefen Sequenz-Netze, komplexe temporale Abhängigkeiten zu modellieren, mit der Interpretierbarkeit der prototypbasierten Schlussfolgerung. Wie gezeigt, enthält das Modell 104 drei Hauptkomponenten: einen Sequenzcodierer r, die Prototypschicht p und die vollständig verbundene Schicht f mit Softmax-Ausgaben für Klassifizierungsaufgaben.
-
Der Sequenzcodierer r kann ein tiefes rekurrentes neuronales Netz sein. Der Sequenzcodierer r wandelt Sequenzen mit variabler Länge in eine Vektordarstellung mit fester Länge e = r(s), e ∈ ℝm um. Die Prototypschicht p vergleicht die latente Vektordarstellung e, die durch das Codierernetz erhalten wird, mit k Prototyp-Vektoren pi ∈ ℝm, i = 1,...,k. Durch angemessene Transformationen kann ein Vektor der Ähnlichkeitswertungen als a = p(e), ai ∈ [0,1] erhalten werden, wobei ai die Ähnlichkeitswertung zwischen der Eingabesequenz und dem Prototyp pi ist und ai = 1 angibt, dass die Eingabesequenz eine identische Einbettung mit dem Prototyp pi aufweist. Die vollständig verbundene Schicht f mit der Softmax-Ausgabe berechnet die letztendlichen Klassifizierungsergebnisse unter Verwendung des Ähnlichkeitswertungs-Vektors a. Die Einträge in der Gewichtsmatrix in f können zur besseren Interpretierbarkeit beschränkt sein, nicht negativ zu sein. Die Ähnlichkeitswertungen a zusammen mit den Einträgen in der Gewichtsmatrix können verwendet werden, um die Klassifizierungsergebnisse zu erläutern.
-
Die Prototyp-Vektoren pi, die durch Rückwärtspropagierung gelernt werden, sind nicht leicht erklärbar, da dieselben den Sequenzen bei Anwendungen in der realen Welt möglicherweise nicht entsprechen. Daher kann der Optimierungsalgorithmus für alle paar Trainingsepochen eine Prototyp-Projektion durchführen, was im Wesentlichen Sequenzen aus den ursprünglichen Trainingsdaten identifiziert, die den Prototyp-Vektoren in dem latenten Raum am ähnlichsten sind. Die Prototyp-Vektoren können dann mit den latenten Vektordarstellungen dieser Sequenzen aktualisiert werden.
-
7 veranschaulicht einen beispielhaften Prozess 700 zum Bereitstellen einer visuellen Schnittstelle 110 zum Steuern eines Deep-Sequence-Modells 104 mit Prototypen. Bei einem Beispiel kann der Prozess 700 durch das System 100 durchgeführt werden, das in 1 gezeigt ist.
-
Bei der Operation 702 zeigt das System 100 die visuelle Schnittstelle 110 an. Die visuelle Schnittstelle 110 kann die Prototyp-Übersicht 112 enthalten, die eine Vielzahl von Prototypsequenzen zeigt, die durch das Modell 104 durch Rückwärtspropagierung gelernt werden, wobei jede Prototypsequenz eine Reihe von Ereignissen enthält, wobei für jede Prototypsequenz statistische Informationen in Bezug auf die Verwendung der Prototypsequenz durch das Modell 104 dargelegt werden.
-
Bei der Operation 704 empfängt das System 100 eine Eingabe in die visuelle Schnittstelle 110. Die Eingabe enthält eine Anpassung einer oder mehreren Prototypsequenzen, um eine Feinabstimmung an dem Modell 104 vorzunehmen. Als einige Beispiele kann die Eingabe das Hinzufügen oder Entfernen von Ereignissen von einer oder mehreren Prototypsequenzen, das Löschen redundanter Prototypsequenzen und/oder das Hinzufügen neuer Prototypsequenzen enthalten.
-
Bei der Operation 706 aktualisiert das System 100 das Modell 104 unter Verwendung der Vielzahl von angepassten Prototypsequenzen, um ein aktualisiertes Modell 104 zu erstellen. Bei der Operation 708 zeigt das System 100 in der visuellen Schnittstelle 110 Aktualisierungen zu der Vielzahl von Prototypsequenzen an, die durch das aktualisierte Modell 104 identifiziert werden. Nach der Operation 708 endet der Prozess 700.
-
Verglichen zu älteren Systemen und Verfahren, setzt der beschriebene Ansatz einen Human-in-the-Loop-Ansatz ein, um ein Sequenzvorhersagemodell zu bilden. Zudem wird ein Satz Visualisierungen verwendet, um Benutzern dabei zu helfen, die Sequenzprototypen besser zu verstehen und zu inspizieren. Ferner wurden neuartige Interaktionstechniken ausgestaltet, um dem Benutzer dabei zu helfen, die Sequenzprototypen hinzuzufügen, zu entfernen und zu bearbeiten. Die Interaktionen werden durch intelligente Abfragedienste unterstützt. Folglich ermöglicht die visuelle Schnittstelle 110, dass solche smarten Interaktionen in solche Systeme eingeführt werden.
-
Folglich liefert das beschriebene System 100 ein neuartiges Mensch-Modell-Interaktionsschema, das dabei hilft, das gelernte Wissen sowohl des Benutzers als auch des Modells 104 zu verfeinern. Das neuartige visuelle Analytiksystem 100 ermöglicht folglich durch einen Menschen geführte Verfeinerungen eines tiefen Sequenz-Netzes durch interaktives Editieren eines Satzes prototypischer Sequenzen, die bei der Inferenz verwendet werden. Darüber hinaus wird eine Visualisierungsausgestaltung dargelegt, die Projektionstechniken und Konturkarten kombiniert, um die fortgeschrittene Analyse der Sequenzverteilung in dem latenten Raum zu ermöglichen.
-
Insbesondere können die beschriebenen Techniken angewandt werden, um auf beliebige Arten von Sequenzdaten zuzutreffen. Wie oben beschrieben wurde, können die beschriebenen interaktiven Sequenzmodelle verwendet werden, um eine Ansicht in Sequenzdaten in Form von textuellen Bewertungen zu klassifizieren. Als eine andere praktische Anwendung können die beschriebenen Techniken auf Spuren des Webverkehrs von Benutzern angewandt werden. Solche Daten können zum Klassifizieren, ob Benutzer einen Kauf durchführen werden, basierend auf der Sequenz des Browserverlaufs derselben verwendet werden.
-
Als wieder eine andere praktische Anwendung können die beschriebenen Techniken auf einen Fahrzeug-Bus-Verkehr angewandt werden, um bei der interaktiven Analyse der Modelle zum Wiedergeben künftiger Ereignisse in den Fahrzeugen zu helfen. Beispielsweise können Signale, wie CAN-Bus-Verkehr von Fahrzeugen in Sequenzdaten gesammelt werden. Basierend auf diesen Ereignissen, die in diesen Daten erfasst werden, können Modelle zum Vorhersagen verwendet werden, ob wahrscheinlich ein Fehler für das Fahrzeug auftritt. Diese Modelle können unter Verwendung des offenbarten Mensch-Modell-Interaktionsschemas auch leicht untersucht und verfeinert werden.
-
Computerlesbare Programmbefehle, die in einem computerlesbaren Medium gespeichert sind, können zum Anweisen eines Computers, anderer Arten einer programmierbaren Datenverarbeitungseinrichtung oder anderen Vorrichtungen verwendet werden, um auf ähnliche Weise zu fungieren, so dass die in dem computerlesbaren Medium gespeicherten Befehle bzw. Anweisungen einen Herstellungsgegenstand erzeugen, der Anweisungen enthält, die die Funktionen, Vorgänge und/oder Operationen implementieren, die in den Ablaufplänen und Diagrammen spezifiziert sind. In bestimmten alternativen Ausführungsformen können die Funktionen, Vorgänge und/oder Operationen, die in den Ablaufplänen und Diagrammen spezifiziert sind, neu geordnet werden, seriell verarbeitet werden und/oder entsprechend einer oder mehreren Ausführungsformen gleichzeitig verarbeitet werden. Darüber hinaus kann jeder beliebige der Ablaufpläne und/oder Diagramme mehr oder weniger Knoten oder Blöcke als jene enthalten, die entsprechend einer oder mehreren Ausführungsformen veranschaulicht sind.
-
Zwar wurden oben beispielhafte Ausführungsformen beschrieben, aber es ist nicht vorgesehen, dass diese Ausführungsformen alle möglichen Ausgestaltungen beschreiben, die durch die Ansprüche enthalten sind. Die in der Beschreibung verwendeten Worte sind Worte zur Beschreibung und nicht Beschränkung und es sollte klar sein, dass verschiedene Änderungen vorgenommen werden können, ohne von dem Wesen und Bereich der Offenbarung abzuweichen. Wie zuvor beschrieben wurde, können die Merkmale der verschiedenen Ausführungsformen kombiniert werden, um weitere Ausführungsformen der Erfindung zu bilden, die möglicherweise nicht explizit beschrieben oder veranschaulicht sind. Zwar könnten verschiedene Ausführungsformen beschrieben worden sein, Vorteile zu liefern oder gegenüber anderen Ausführungsformen oder Implementierungen des Stands der Technik in Bezug auf ein oder mehrere erwünschte Charakteristiken bevorzugt zu werden, aber jemand mit gewöhnlichen Fähigkeiten in der Technik erkennt, dass ein oder mehrere Merkmale oder Charakteristiken beeinträchtigt werden können, um erwünschte Attribute des gesamten Systems zu erzielen, die von der spezifischen Anwendung und Implementierung abhängig sind. Diese Attribute können beispielsweise Kosten, Festigkeit, Haltbarkeit, Lebenszykluskosten, Marktfähigkeit, Erscheinungsbild, Verpackung, Größe, Gebrauchsfähigkeit, Gewicht, Herstellbarkeit, Einfachheit der Montage etc. enthalten, sind aber nicht darauf beschränkt. Soweit beliebige Ausführungsformen als weniger wünschenswert als andere Ausführungsformen oder Implementierungen des Stands der Technik in Bezug auf ein oder mehrere Kennzeichen beschrieben werden, liegen diese Ausführungsformen an sich nicht außerhalb des Bereiches der Offenbarung und können für bestimmte Anwendungen wünschenswert sein.
-
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 Nicht-Patentliteratur
-
- Voigt, Paul und Axel Von dem Bussche, „The EU General Data Protection Regulation (GDPR)“, A Practical Guide, 1st Ed., Cham: Springer International Publishing (2017) [0003]
- Martin Renqiang, Hongyu Guo und Dinghan Shen, „Parametric t -distributed stochastic exemplar-centered embedding“, Joint European Conference on Machine Learning and Knowledge Discovery in Databases. Springer, Cham, 2018 [0035]