-
QUERVERWEIS AUF VERWANDTE ANMELDUNG
-
Diese Anmeldung beansprucht die Priorität der am 14. Dezember 2018 eingereichten Provisional-US-Patentanmeldung Nr.
62/780,095 mit dem Titel „System and Method for Selecting Important Parameters and Measurements in Wide Datasets“ (System und Verfahren zur Auswahl wichtiger Parameter und Messungen in umfangreichen Datensätzen), deren gesamter Inhalt hiermit durch Bezugnahme für alle Zwecke vollständig hierin aufgenommen wird.
-
TECHNISCHES FELD DER OFFENBARUNG
-
Die vorliegende Offenbarung betrifft im Allgemeinen Prozesssteuerungsinstrumente für Fertigungsvorgänge und insbesondere ein Prozesssteuerungsinstrument zum Auffinden wichtiger Parameter in großen und breiten Datenstrukturen, die durch komplexe Fertigungsvorgänge erzeugt werden.
-
HINTERGRUND
-
Es gibt viele spezifische Anwendungsfälle, beste Analysepraktiken, Verfahren und Systeme, um Big-Data-Anforderungen zu erfüllen. Verfügbare Systeme und Software-Tools charakterisieren Big-Data jedoch dadurch, dass sie eine große Anzahl von logischen Zeilen oder Fällen (Analyseeinheiten) mit relativ wenigen logischen Spalten oder Variablen aufweisen. Als konkretes Beispiel können typische Kundentransaktionsdatenbanken Millionen oder Hunderte von Millionen von Kunden und Transaktionen (die „Zeilen“ und Analyseeinheiten) enthalten, wobei jede logische Zeile nur relativ wenige (beispielsweise einige Hunderte oder Tausende) Merkmale oder „Variablen“ enthält, wie beispielsweise die Daten der letzten Transaktionen, die gekauften Produkte, die Höhe des ausgegebenen Geldes, demografische Informationen und andere Eigenschaften, die bestimmte Kunden beschreiben, und so weiter. Für solche Daten sind bestehende Verfahren zur analytischen Modellierung, zum Clustering oder zur prädiktiven Modellierung gut definiert und ausgereift, und diese Verfahren verlagern die Analysen im Allgemeinen auf einen Cluster von Rechenknoten, wo die Berechnungen über die Zeilen (Kunden) parallelisiert werden können, um die Leistungsanforderungen für die jeweiligen Anwendungen zu erfüllen.
-
Figurenliste
-
Für ein vollständigeres Verständnis der Merkmale und Vorteile der vorliegenden Offenbarung wird nun auf die detaillierte Beschreibung zusammen mit den begleitenden Figuren verwiesen, in denen sich entsprechende Ziffern in den verschiedenen Figuren auf entsprechende Teile beziehen und in denen:
- 1 ist eine Darstellung eines Prozesssteuerungssystems zur Verwaltung umfangreicher und großer Daten, die aus automatisierten Fertigungsvorgängen erzeugt werden, gemäß bestimmten Ausführungsbeispielen;
- 2A und 2B sind Illustrationen von Flussdiagrammen für Algorithmen zur Merkmalsauswahl, -analyse und -visualisierung eines Prozesssteuerungsinstruments des Prozesssystems, gemäß bestimmten Ausführungsbeispielen;
- 3 ist eine Illustration der Transformation von großen und umfangreichen Datenstrukturen gemäß bestimmten Ausführungsbeispielen; und
- 4 ist ein Blockdiagramm, in dem eine Rechenmaschine und Systemanwendungen gemäß bestimmten Ausführungsbeispielen dargestellt sind.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Während die Herstellung und Verwendung verschiedener Ausführungsformen der vorliegenden Offenbarung im Folgenden im Detail erörtert werden, sollte man sich darüber im Klaren sein, dass die vorliegende Offenbarung viele anwendbare erfinderische Konzepte bereitstellt, die in einer umfangreichen Vielfalt spezifischer Kontexte verkörpert werden können. Die hier besprochenen spezifischen Ausführungsformen dienen lediglich der Veranschaulichung und schränken den Umfang der vorliegenden Offenbarung nicht ein. Im Interesse der Klarheit werden in der vorliegenden Offenbarung möglicherweise nicht alle Merkmale einer tatsächlichen Implementierung beschrieben. Es versteht sich von selbst, dass bei der Entwicklung einer solchen konkreten Ausführungsform zahlreiche implementierungsspezifische Entscheidungen getroffen werden müssen, um die spezifischen Ziele des Entwicklers zu erreichen, wie beispielsweise die Einhaltung systembezogener und geschäftsbezogener Einschränkungen, die von einer Implementierung zur anderen variieren werden. Darüber hinaus wird man verstehen, dass ein solcher Entwicklungsaufwand komplex und zeitaufwendig sein kann, aber für Fachleute, die die Vorteile dieser Offenbarung aufweisen, ein Routineunternehmen sein wird.
-
Datenstrukturen werden durch die Anzahl der Spalten und Zeilen charakterisiert, und häufig enthalten sie extrem viele Spalten und relativ wenige Zeilen, obwohl oft auch Millionen von Zeilen vorhanden sind. Solche Big-and-Wide-Datenstrukturen treten in der Tat mit zunehmender Häufigkeit in verschiedenen Bereichen auf, insbesondere aber in der Halbleiterfertigung, wo Werkzeuge und Prozesse extrem gut instrumentiert sind. Es ist nicht ungewöhnlich, dass mehrere Millionen von Parametern nach Charge, Wafer und Die ausgerichtet werden können, die den Fertigungsprozess über alle Bearbeitungsschritte hinweg detailliert beschreiben. Im Allgemeinen kann es in der automatisierten Fertigung Tausende von Sensoren und (beispielsweise elektrische) Testdatenparameter geben, die nach Anlage, Maschine oder Werkzeug und Sensor indiziert sind. Darüber hinaus können Sensoren zeitlich-räumliche Abbildungen von Prozessbedingungen während eines Laufs aufzeichnen; wenn solche Messungen in den Variablen (Spalten) für jeden Sensor kodiert werden, erhöht sich die Dimensionalität oder Breite der Daten weiter. Diese Arten von Aufzeichnungen erzeugen eine große Anzahl von Zeitreihen für jede logische Zeile (beispielsweise Charge/Wafer), wodurch sich die Dimensionalität oder Breite der Daten mit Wellenformen weiter erhöht. Die Zeitreihendaten können zu einer festen Anzahl von verstrichenen Zeitintervallen über alle Zeilen hinweg aggregiert werden, und die aggregierten Messungen können als Prädiktorvariablen zu nachfolgenden Analysen hinzugefügt werden. Dieser Datenaufbereitungsschritt, der für Hunderte von Zeitreihen durchgeführt wird, kann eine erhebliche Anzahl von Prädiktorvariablen hinzufügen, was die Dimensionalität oder Breite der Daten weiter erhöht.
-
Zusätzlich zu dem Problem der großen Anzahl von Variablen beinhalten Daten, die Halbleiterfertigungsprozesse beschreiben, oft diskrete Messungen mit vielen eindeutigen Bezeichnungen. Zum Beispiel werden viele Wafer durch eine große Anzahl von Bearbeitungsschritten mit spezifischen Werkzeugen bewegt. Wenn eine große Anzahl eindeutiger Werkzeuge (mit eindeutigen Werkzeugbeschriftungen) jede einzelne Charge bearbeitet, zeichnen die resultierenden Daten die jeweilige spezifische diskrete Beschriftung auf, die bei jedem der vielen Bearbeitungsschritte angebracht wird. Da bei jedem Bearbeitungsschritt Hunderte von Werkzeugen (Etiketten) verwendet werden, muss das Problem der hohen Kardinalität in diesen diskreten Variablen angegangen werden. Das Problem der hohen Kardinalität der Daten ist mit dem Problem der umfangreichen Daten verwandt, da diskrete Daten oft in mehrere Indikatorspalten umkodiert werden (beispielsweise über die Kodierung von One-Hot- oder Dummy-Variablen), wodurch die typischerweise bereits große Anzahl von Variablen in den Daten weiter erhöht wird.
-
Eine Anforderung für viele Anwendungen ist die Durchführung nützlicher Ursachenanalysen, prädiktiver Modellierung, Risikomodellierung, Fehleridentifizierung und - klassifizierung sowie Ertragsprognosen usw., wobei die Analysen auf große und umfangreiche Daten angewendet werden müssen, die durch möglicherweise Millionen von Variablen gekennzeichnet sind. Der Begriff Modellierung bezieht sich in diesem Zusammenhang auf analytische Ziele und Verfahren wie: (1) überwachtes Lernen zum Zweck der Erstellung von Vorhersagemodellen für einige wichtige Ergebnisse (beispielsweise für Zuverlässigkeitsanalysen, Ertragsvorhersagen oder Ursachenanalysen): (2) unüberwachtes Lernen zum Zwecke der Identifizierung von Strukturen in den Zeilen und/oder Spalten der Big Data (beispielsweise Clustering von Zeilen, Clustering von Variablen, Clustering von Zuständen, wie sie durch aufeinanderfolgende Abschnitte von Zeitreihendaten definiert sind); und/oder (3) Erkennung von Anomalien (beispielsweise die Erkennung von ungewöhnlichen Mustern in einigen, den meisten oder allen gemessenen Variablen, in Bezug auf „normale“ Muster, die durch die Mehrheit der Daten definiert sind).
-
Diese Analysen erfordern typischerweise die Entwicklung von Modellierungspipelines, also von sequentiellen Verarbeitungsschritten, die in einer Pipeline solcher Verarbeitungsschritte angeordnet sind, um das jeweilige analytische Problem vorzubereiten, zu analysieren und zu berichten. Ein spezifisches Problem dabei ist, dass es viel schwieriger ist, Modellierungspipelines für solche Daten mit Millionen von Spalten zu parallelisieren. Es ist unpraktisch oder unmöglich, die Daten von einem Speicherort vor Ort zu einer entfernten Analyse-Rechenumgebung zu verschieben oder den gesamten Datensatz für die Berechnungen in den Speicher einzupassen. Derzeit gibt es keine allgemein akzeptierten oder sofort einsetzbaren Verfahren oder Systeme, die die analytischen Herausforderungen im Zusammenhang mit umfangreichen Daten zufriedenstellend und effizient lösen können. Darüber hinaus fehlt es allen bestehenden Lösungen, die für Big Data entwickelt wurden, einfach an den Fähigkeiten, die Modellierung und Analyse durchzuführen, die in Echtzeit oder nahezu in Echtzeit erforderlich sind, um operative Probleme in komplexen Fertigungsszenarien effektiv zu lösen, in denen die zeitverzögerte Erkennung von Anomalien im Fertigungsprozess zu Produkt- und Zeitverlusten und damit zu Geldverlusten führen kann.
-
Das hier vorgestellte System adressiert die oben genannten Probleme und umfasst zwei Komponenten, die in einer verteilten Verarbeitungsumgebung arbeiten, um Analysen effizient nacheinander und/oder asynchron durchzuführen, sowie eine dritte Visualisierungskomponente, um Echtzeit- oder echtzeitnahen Zugriff auf die Daten zu ermöglichen. In einer Ausführungsform arbeitet die erste der beiden Komponenten nahe an den Prozessdaten und nachdem die Prozessdaten auf eine kleinere Größe reduziert wurden, können die Daten in die zweite Komponente verschoben werden, wo die Daten in einer effizienteren In-Memory-Umgebung verarbeitet werden können. Das heißt, in dieser Ausführungsform führt die erste Komponente die anfängliche Merkmalsauswahl der Prädiktoren in der Nähe der Daten durch; die zweite Komponente nimmt die Teilmenge der ausgewählten Prädiktoren und führt eine zusätzliche Verarbeitung (d. h. eine intensivere Verarbeitung) unter Verwendung effizienter In-Memory- (oder In-Single-Dedicated-Computation-Environment-) Berechnungen durch.
-
Die erste Komponente ist ein paralleles Datenverarbeitungssystem mit mehreren Knoten, wie beispielsweise Apache Hadoop® oder Apache Spark™, in dem die anfängliche Datenvorbereitung, die Auswahl von Merkmalen, das Feature-Engineering und andere Datenaggregations-, Skalierungs- und andere Operationen durchgeführt werden, um die großen und umfangreichen Daten in eine gestapelte Struktur zu verwandeln, die effizienter verarbeitet und gefiltert werden kann. Es sollte jedoch klar sein, dass das Stapeln der Daten ein optionaler Schritt ist, der nur bei Bedarf durchgeführt wird. Das Ergebnis kann für die weitere Verarbeitung in einen umfangreichen Datensatz geschwenkt („pivoted“) werden. Diese Komponente kann von Technologien profitieren, die für eine parallelisierte und optimierte datenbankinterne (d. h. clusterinterne) Datenverarbeitung zur Verfügung stehen, beispielsweise durch TIBCO Spotfire® Data Science. Auf diese Schritte folgt dann die endgültige Modellerstellung und weitere Modellverfeinerung auf einem dedizierten Analyseserver, auf dem solche Berechnungen schnell In-Memory und mit Daten durchgeführt werden können, die nun nicht mehr Big Data sind. Der Rechenaufwand für parallelisierte datenbankinterne Berechnungen für solche nun nicht mehr Big Data würde solche Berechnungen ineffizient machen, während die Sequenzierung der datenbankinternen Big-Data-Operationen, gefolgt von On-Server-Berechnungen, effiziente kontinuierliche Berechnungen auf beiden Systemen für kontinuierliche Operationen ermöglicht. So können beispielsweise bei der Unterstützung der Ursachenanalyse bei Halbleiterherstellern die Anwendungen kontinuierlich die Datenvorbereitung und die Auswahl/Extraktion von Merkmalen anhand von (oft Petabytes großen) Daten auf ihren Big-Data-Plattformen durchführen, während die endgültigen Berechnungen der Ergebnisse an den dedizierten Berechnungsserver und die Visualisierungsplattform für den endgültigen Verbrauch der Ergebnisse übergeben werden. Die dritte Komponente ist eine visuelle Explorationsplattform, wie beispielsweise TIBCO Spotfire®, die es den Anwendern ermöglicht, die Endergebnisse interaktiv zu erforschen und so die Informationen von Interesse zu extrahieren, die auf den Analysen der umfangreichen Datenstrukturen mit möglicherweise Millionen von Eingabevariablen basieren. Somit ist das vorgeschlagene System effizient bei der Zuweisung spezifischer Rechenlasten, wo sie am besten ausgeführt werden können.
-
Das System beschreibt umfassend ein effizientes und effektives Computersystem zur Verwaltung umfangreicher Daten, die auch groß sind. Große und umfangreiche Daten erfordern, dass einige oder die meisten Berechnungen nahe an den Daten (d. h. datenbankintern) und mit minimaler Bewegung der Daten durchgeführt werden. Die Standardverfahren und -algorithmen, die alle Berechnungen ausschließlich datenbankintern durchführen, sind nicht praktikabel, da sie in der Regel für eine große Anzahl von Zeilen und nicht von Spalten optimiert sind. Daher kombiniert das System bestimmte Analyseschritte, die in der Datenbank durchgeführt werden, und verwendet parallelisierte Berechnungen, um eine Teilmenge von Variablen auszuwählen, die für die spezifischen Analysen und analytischen Ziele und Anwendungsfälle wie zuvor beschrieben wichtig sind. Die ausgewählte Teilmenge von Variablen kann dann auf den dedizierten Analyseservern sehr schnell verarbeitet werden.
-
Das hier vorgestellte System beschreibt spezifische Analyseansätze, Arbeitsabläufe und Rechnerarchitekturen, die sich mit Problemen von großen und umfangreichen Daten sowie mit den einzigartigen Problemen befassen, die mit der Analyse von sehr hochdimensionalen Daten oder Daten mit diskreten Variablen von sehr hoher Kardinalität (beispielsweise mit Tausenden von unterschiedlichen Kategorien) verbunden sind, um die Anforderungen für die Prozessüberwachung und die Erkennung von Anomalien, die prädiktive Analyse und Fehlerklassifizierung sowie die (automatisierte) Ursachenanalyse zu erfüllen. Das System wurde entwickelt, um spezifische Probleme bei automatisierten Fertigungsanwendungen, einschließlich der Halbleiterfertigung, zu lösen, und ermöglicht eine agile und hochgradig interaktive und visuelle Analyseumgebung. Der allgemeine Ansatz weist auch eine Anwendbarkeit in vielen anderen Domänen auf, in denen ähnliche Big-and-Wide-Daten- und Analyseprobleme auftreten.
-
In 1 ist ein Prozesssteuerungssystem zur Verwaltung umfangreicher und großer Daten dargestellt, die von automatisierten Fertigungsvorgängen gemäß bestimmten Ausführungsbeispielen generiert werden, allgemein als 10 bezeichnet. Das System 10 umfasst ein Prozesssteuerungsinstrument 20 zur Verarbeitung von Daten, die von automatisierten Fertigungsvorgängen 40 aus wenigstens einer komplexen Fertigungsanwendung 42A-42N, wie beispielsweise Halbleiterfertigungsanwendungen, empfangen werden. Das Prozesssteuerungsinstrument 20 umfasst ein mehrstufiges Datenverarbeitungs-, Transformations- und Analysesystem, um Visualisierungen in Echtzeit oder nahezu in Echtzeit zu erstellen, die erhebliche Vorteile für diejenigen aufweisen können, die die Produktionserträge aus diesen komplexen Fertigungsvorgängen verwalten. Das Prozesssteuerungsinstrument 20 umfasst einen Computercluster (Mehrknoten-In-Datenbank-System) 22, einen Analyseserver 24 und einen Visualisierungsserver 26 zur Durchführung von Aufgaben wie Datenaufbereitung, Merkmalsauswahl, Mehrknoten-In-Datenbank-Berechnungen, Modellerstellung, rekursive Anwendung der Merkmalsauswahl und Parameter-Ranking, um aus sehr großen Sätzen von Prozessdaten wichtige Prozessindikatoren für die Visualisierung zu erzeugen. In einer Ausführungsform kann der Analyseserver 24 ein Analyseserver sein, der speziell für die Durchführung der hier definierten Funktionen vorgesehen ist.
-
In den 2A und 2B sind Flussdiagramme eines Merkmalsauswahlalgorithmus, einer Analyse und eines Visualisierungsalgorithmus des Prozesssteuerungsinstruments 20 gemäß bestimmten Ausführungsbeispielen dargestellt, die allgemein als 60 bezeichnet werden. Der Merkmalsauswahlalgorithmus kann eine Reihe von Algorithmen verwenden, die speziell für die datenbankinterne parallelisierte Ausführung auf die Daten optimiert sind. Beispiele für solche Algorithmen umfassen den Spark-Chi-Quadrat-Selektor-Algorithmus, den Boosted-Trees-Algorithmus, den Bagged-Trees-Algorithmus (Random Forests) und Variable-für-Variable-Breakpoint-(segmentierte) Regressionsalgorithmen. Bei diesen Berechnungen können spezifische analytische Algorithmen angewendet werden, um die numerische Stabilität der erforderlichen Berechnungen zu gewährleisten, beispielsweise durch die Verwendung von Zentrierkonstanten bei der Berechnung von Mittelwerten, Standardabweichungen und höheren Momenten. Der Analyse- und Visualisierungsalgorithmus umfasst eine weitere Merkmalsauswahl und Modellbildung, die über wenigstens einen dedizierten Analyseserver ausgeführt wird, eine rekursive Anwendung der Pipeline für die Merkmalsauswahl und das Parameter-Ranking sowie die Visualisierung der Ergebnisse.
-
2A beschreibt den Merkmalsauswahlalgorithmus und beginnt mit den Blöcken 62 und 64, in denen empfangene Prozessdaten (siehe 3 für Prozessüberwachungen und Messdaten 90) für In-Database-Berechnungen über den Multiknoten-Multimode-Computercluster 22 vorbereitet werden. In diesem Schritt kann auf umfangreiche und große Daten, die beispielsweise in Hadoop® gespeichert sind, zur weiteren Verarbeitung zugegriffen werden. Für eine effiziente, parallelisierte In-Datenbank-Verarbeitung können die Prozessdaten logisch angeordnet werden. Die Daten können gestapelt werden, siehe 3, so dass jede logische Zeile der Daten einen Datenpunkt (Messung) über eine Mess-ID (Prozessbeobachtungs-ID), Zeilen-ID und tatsächliche Messung (Prozessbeobachtung) beschreibt (indiziert). Die Transformation ermöglicht eine effiziente Parallelisierung von Merkmalsauswahlverfahren in einem Multimode-Computercluster 22, d. h. einem Rechencluster 22 zur Durchführung von datenbankinternen Berechnungen. Die Daten werden jedoch nur bei Bedarf gestapelt.
-
Der Datenzugriff und die korrekte Strukturierung der Daten ist wichtig, um die erforderliche Leistung bei der Verarbeitung extrem umfangreicher Datensätze oder umfangreicher und großer Datensätze zu erreichen. Beispielsweise ist die Organisation der Daten nach logischen Zeilen in einem umfangreichen, nicht gestapelten Datenformat, bei dem jede Zeile eine Analyseeinheit darstellt, beispielsweise einen Wafer, und bei dem die Spalten Merkmale oder Variablen darstellen, beispielsweise Messungen auf den Wafern, Sensorspuren, die mit der Herstellung der Wafer verbunden sind, nicht effizient. Dies kann ein ernsthaftes und kostspieliges Problem für komplexe Fertigungsvorgänge sein, bei denen der fehlende Zugriff auf Echtzeit- oder echtzeitnahe Prozessdaten den Betrieb ernsthaft beeinträchtigen kann.
-
In den Blöcken 66, 68, 70 und 72 können kategorische (diskrete, codierte) Prozesseingangsvariablen automatisch identifiziert und mit dem Impact-Coding-Verfahren codiert werden. Im Wesentlichen werden die diskreten Variablen in kontinuierliche Prädiktorvariablen umgewandelt. Kontinuierliche Prädiktorvariablen werden standardmäßig nicht transformiert, aber Benutzer können neue Prädiktorvariablen ableiten, indem sie eine oder mehrere numerische Transformationen anwenden, wie beispielsweise Quadratwurzel-Transformationen, Log-Transformationen, usw. Diskrete Prädiktorvariablen können in kontinuierliche Prädiktorvariablen umgewandelt werden, indem das Verfahren der Auswirkungscodierung verwendet wird, das in „Modellierungstrick: Auswirkungscodierung von kategorialen Variablen mit vielen Ebenen“ beschrieben wird. Win-Vector Blog, 23. Juli 2012 von N. Zumel. Was in Zumel jedoch nicht gelehrt wurde, war die in dieser Offenbarung beschriebene Implementierung, wobei die Daten für jede diskrete Prädiktorvariable zufällig in zwei Stichproben aufgeteilt werden. Durchschnittswerte (für kontinuierliche Ergebnisse) oder durchschnittliche Häufigkeiten (für kategoriale Ergebnisse) werden dann für jede Kategorie in der diskreten Prädiktorvariable berechnet, und zwar für jede Stichprobe separat. Die diskreten Codes in jeder der beiden Stichproben werden dann durch die aus den Daten der anderen Stichprobe berechneten Mittelwerte ersetzt, wodurch alle Zeilen für die diskreten Prädiktorvariablen in kontinuierliche Werte umcodiert werden. Dadurch können alle diskreten Variablen in den nachfolgenden Schritten als kontinuierliche Prädiktorvariablen behandelt werden. Darüber hinaus wandelt das Impact-Codierungstechnik-Verfahren solche Eingangsvariablen mithilfe von Kreuzvalidierungstechniken in einspaltig gerankte Daten um.
-
Darüber hinaus können Zeitreihendaten identifiziert und in eine feste Anzahl von Intervallen umgewandelt werden, indem gängige Aggregationsfunktionen verwendet werden. Zum Beispiel kann ein SAX-ähnliches Kodierungsverfahren verwendet werden, um Aggregatwerte für eine feste Anzahl von Zeitintervallen zu erstellen, d. h. die gleiche Anzahl von Intervallen für jede Serie. SAX-ähnliche Kodierung für Zeitreihendaten (Wellenformen): Das Verfahren der Symbolic-Aggregate-approXimation oder SAX-Codierung hat sich in zahlreichen Anwendungen als effektive Technik für den Vergleich von Zeitreihenmustern (Wellenformen) auf der Skala erwiesen. Siehe beispielsweise J. Lin, E. Keogh, L. Wei, und S. Lonardi. „Experiencing SAX: A Novel Symbolic Representation of Time Series". Data Mining and Knowldege Discovery, Vol. 15, 2, S. 107-144, 2007. Dies gilt selbst dann, wenn verschiedene Zeitreihen Muster mit leichten Zeitverschiebungen enthalten (die identische Muster repräsentieren, die zu leicht unterschiedlichen Zeitpunkten auftreten), was die Anwendung rechenaufwändiger Verfahren zum Abgleich von Zeitreihen, wie beispielsweise Dynamic Time Warping (DTW)-Algorithmen, unnötig macht. DTW kann auch auf die SAXkodierten, auf Zeitintervallen basierenden Werte angewendet werden, um einen besseren Abgleich zwischen den Serien zu erreichen. Kurz gesagt kann die SAX-Kodierung die aufeinanderfolgenden Überwachungen in einer Zeitreihe konvertieren, indem (a) die Werte zu einer bestimmten festen Anzahl von Zeitintervallen aggregiert werden und (b) die Zeitreihenwerte in den Zeitintervallen typischerweise in Buchstaben oder Ganzzahlen oder in andere aggregierte Werte wie beispielsweise, aber nicht beschränkt auf Maximal- oder Minimalwerte in jedem Intervall aggregiert werden, um den jeweiligen Durchschnittswert als ein Vielfaches der Zeitreihen-Standardabweichungen über den Wertebereich der Zeitreihe zu bezeichnen. Darüber hinaus können andere gängige und neue Techniken zum Extrahieren von Zahlenvektoren aus Zeitreihen auf Zeitreihendaten angewendet werden, um Zeitreihendaten mit anderen diskreten oder kontinuierlichen Eingangsvariablen abzugleichen.
-
Das Ergebnis dieser Berechnungen ist eine Liste von Variablenrelevanz- (Prädiktor-) Werten für jede Variable in den umfangreichen Daten, d. h. eine Liste von ordinalen Rankings nach Variablen entsprechend der Wichtigkeit in Bezug auf das spezifische Analyseproblem (Clustering oder unbeaufsichtigtes Lernen; prädiktives oder überwachtes Lernen und Ursachenanalyse). Das heißt, das Ergebnis umfasst Statistiken, die die Stärke von Zusammenhängen oder Korrelationen zwischen Vorhersagewerten und einem Ergebnis messen.
-
Der Merkmalsauswahlalgorithmus von 2A umfasst verschiedene Verfahren zur Bestimmung der Variablenrelevanz, indem entweder einfache lineare R-Quadrat-Werte (Korrelationen) zwischen jeder Eingabe und der Ausgabe berechnet werden oder indem allgemeinere Statistiken der Assoziation (Beziehung) zwischen jeder Eingabe und der Ausgabe berechnet werden. Der erstere Ansatz ist schneller, erfasst aber möglicherweise keine stark nichtlinearen Zusammenhänge zwischen kontinuierlichen Variablen. Der zweite Ansatz basiert auf robusten (gegenüber Ausreißern) Chi-Quadrat-Statistiken, die für Zwei-Wege-Häufigkeitstabellen berechnet werden, die aus den sortierten Werten für jeden Prädiktor und den sortierten („binned“) oder diskreten Ausgabevariablen erstellt werden. Dieser Ansatz ist rechnerisch aufwändiger, aber oft nützlicher, um nicht-lineare und nicht-monotone Zusammenhänge zu erkennen.
-
Der Algorithmus kann eine Suche erster Ordnung durch Prädiktorvariablen durchführen; es wird nicht speziell nach Interaktionen zwischen Prädiktoren in ihrer Wirkung auf das Ergebnis gesucht. In der Praxis ist es oft der Fall, dass zusätzlich zu den Haupteffekten für die jeweiligen Prädiktoren auch Interaktionen existieren, und in diesem Fall kann eine nachfolgende Modellierung und Merkmalsauswahl, die explizit nach Interaktionen sucht, beispielsweise basierend auf dem Random-Forest-Algorithmus, diese identifizieren. Siehe E. Tuv, A. Borisov, G. Runger, und K. Torkkola, „Feature Selection with Ensembles, Artificial Variables, and Redundancy Elimination." Journal of Machine Learning Research, vol. 10, 2009, 1341-1366. Auch in vielen praktischen Anwendungen in der Halbleiterfertigung liefert die Identifizierung der spezifischen Gruppen von einzelnen Prädiktoren (beispielsweise bestimmte Sensoren), die als wichtig identifiziert werden, oft die meisten diagnostischen Informationen über die Grundursachen und/oder notwendige vorbeugende Wartungsschritte.
-
Darüber hinaus werden die Prädiktorvariablen auf Grundlage dieser Statistiken geordnet und auf eine Teilmenge der Prädiktorvariablen heruntergefiltert. Die Anzahl der Variablen, für die Daten extrahiert werden sollen, um die Teilmenge zu erstellen, kann vom Benutzer des Systems gesteuert oder automatisch bestimmt werden (für einen vollautomatischen Betrieb), basierend auf den im vorherigen Block berechneten Werten für die Gesamtbedeutung. Als Ergebnis der Analysen, die gegen die umfangreichen Daten unter Verwendung einer effizienten parallelen Rechenumgebung in der Nähe der Daten durchgeführt werden - beispielsweise Spark™ - wird eine Teilmenge „wichtiger“ Prädiktoren identifiziert, d. h. Prädiktoren, die in Bezug auf das interessierende Ergebnis diagnostisch sind. Zum Beispiel kann die Analyse aus Millionen von Prädiktoren und Sensorwellen-Daten jene spezifischen Prädiktoren und Sensorspuren identifizieren, die zwischen normalen und abnormalen Wafern oder spezifischen Fehlermodi unterscheiden. Sobald eine kleinere Teilmenge solcher wichtigen Variablen identifiziert wurde, können weitere Analysen und Modellierungen in einem speziellen Analyseserver durchgeführt werden. Darüber hinaus können diese Berechnungen asynchron zu den Berechnungen erfolgen, die in der parallelisierten datenbankinternen Rechenumgebung durchgeführt werden, so dass die datenbankinternen Berechnungen auf neu eintreffende Daten angewendet werden können, während die zweite speicherinterne Analysephase zur gleichen Zeit abläuft.
-
Der resultierende Datensatz von Variablen, d. h. die geordnete Liste, die die Teilmenge umfasst, wird geschwenkt („pivoted“), siehe 3, und an den Analysealgorithmus weitergegeben, 2B. Wenn Millionen von Prädiktoren auf diese Weise organisiert sind, ist es nicht möglich, eine effiziente Merkmalsauswahl, beispielsweise Korrelationsanalysen, zu parallelisieren. Stattdessen ermöglicht das Schwenken, Entstapeln, der Daten, so dass jede Zeile der Daten einen Wafer, einen Parameter, einen Zeitstempel (für Zeitreihen) und einen entsprechenden Messwert identifiziert, eine viel effizientere parallele Verarbeitung im Anschluss. Wenn jedoch die Teilmenge der Prädiktoren an den In-Memory Fast Analysis Server 24 übergeben wird, werden die Daten in das Zeilen- (Analyseeinheiten) und Spaltenformat (Parameter) entstapelt, was für viele Maschinenlernalgorithmen effizienter ist.
-
In 2B beginnt der Analyse- und Visualisierungsalgorithmus bei Block 74, wo die geschwenkte Teilmenge von Variablen empfangen und die Teilmenge zur weiteren Verarbeitung extrahiert wird. In Anbetracht der Daten für die ausgewählte Teilmenge von Daten führen der oder die dedizierten Analyseserver dann effizient im Speicher die endgültigen Berechnungen durch, um ein Vorhersagemodell, ein Clustermodell, eine Ursachenanalyse oder eine Anomalieerkennung zu erstellen. Diese Berechnungen können verschiedene iterative Algorithmen umfassen, die üblicherweise auf solche (nun nicht mehr großen) Daten angewendet werden, einschließlich, aber nicht beschränkt auf verschiedene Regressionsalgorithmen (beispielsweise logistische Regression), neuronale Netze, Deep-Learning-Netze oder rekursive Partitionierungsalgorithmen, einschließlich gradientenverstärkter Bäume und Treenets. Die Ergebnisse dieses Modells, einschließlich aller Vorhersagewahrscheinlichkeiten, Werte oder vorhergesagten Klassifizierungen oder Clustering-Zuordnungen oder Abstände, werden dann an die Visualisierungs-Engine zur Anzeige und Erkundung durch den Benutzer weitergeleitet.
-
In Block 76 werden Variablen und Zeilen in den Daten identifiziert, die ressourcenintensive Berechnungen erfordern. In Block 78 werden Operationen mit den identifizierten Variablen und Zeilen durchgeführt. Wenn zusätzlich die kodierten Werte, die mit mehreren Zeitintervallen verbunden sind, die zu einem bestimmten Sensor gehören, wiederholt und häufig als wichtig identifiziert werden, beispielsweise unter Verwendung einer einfachen regelbasierten Logik, die auf die Liste der wichtigen Vorhersagewerte angewendet wird, die in den vorherigen Schritten identifiziert wurden, dann kann der In-Memory-AnalyseServer-Algorithmus die ursprünglichen Rohdaten abfragen, die mit dem jeweiligen Sensor verbunden sind, und sie zur interaktiven Visualisierung nach unten senden. Auf diese Weise können aussagekräftige Wellenform-Klassifikationsanalysen mit reaktionsschnellen, interaktiven Drill-Down-Funktionen auch für sehr große Datensätze implementiert werden. Es werden Maximum-Likelihood-Schätzungsberechnungen, beispielsweise für die logistische Regression, durchgeführt und/oder explizit, d. h. algorithmisch, nach Interaktionen zwischen den wichtigen Variablen gesucht. Die Operationen werden in wenigstens einem der Verfahren „In-Memory“, „In-Virtual-Memory“ und „Multithreading“ durchgeführt. Die Operationen werden nicht parallelisiert und sind völlig unabhängige Berechnungen. Optional kann der Analysealgorithmus mehrfach (rekursiv) angewendet werden, bis eine geeignete und wünschenswerte Teilmenge wichtiger Prädiktoren oder Parameter identifiziert ist. In Block 80 werden Visualisierungen der Ergebnisse erzeugt.
-
Die Visualisierung der Ergebnisse umfasst Verfahren zur Darstellung von vorhergesagten Klassifizierungen, Vorhersagewahrscheinlichkeiten, Clusterergebnissen oder verwandten Statistiken, die die Qualität, Zuverlässigkeit und Reproduzierbarkeit der jeweiligen Analyseergebnisse widerspiegeln. Beispielsweise kann ein Pareto-ähnliches Diagramm verwendet werden, um die relative Wichtigkeit der für das endgültige Modell ausgewählten Variablen anzuzeigen, zusammen mit Konfidenzintervallen für alle Parameterschätzungen, vorhergesagten Werte, Clusterwerte usw. Darüber hinaus können Box-and-Whiskers-Diagramme interaktiv dargestellt werden, indem Sie auf eine der Boxen im Pareto-ähnlichen Diagramm klicken, um die spezifische Natur der Zusammenhänge zwischen Variablen und/oder Clustern usw. zu untersuchen, je nach den spezifischen Analysezielen der jeweiligen Analyse. Eine weitere Möglichkeit der Ergebnisvisualisierung ist die Darstellung als Variablennetzwerke, wobei Variablen, die nicht als wichtig identifiziert wurden, aber signifikant mit den ausgewählten wichtigen Prädiktoren korreliert (oder auch nur verwandt) sind, als Knoten in einem Netzwerkgraphen dargestellt werden, der über Kanten mit den wichtigen Variablen verbunden ist. Dieser Graph offenbart daher die Struktur und Clusterung in Prädiktorvariablen, die in den Analysen als wichtig identifiziert wurden, selbst wenn diese Variablen aus der endgültigen Liste der wichtigen Variablen ausgeschlossen wurden, weil sie redundant waren.
-
Die Geschwindigkeitsverbesserungen auf Hadoop®-Clustern und Spark™-Rechenumgebungen in Produktionsgröße zeigen, dass die hier beschriebene Systemarchitektur und die Algorithmen effiziente Analysen sehr umfangreicher logischer Datensätze mit Millionen von Prädiktorvariablen ermöglichen und innerhalb von Minuten Ergebnisse liefern, während herkömmliche Ansätze und Analysewerkzeuge entweder völlig versagten oder Stunden, wenn nicht Tage benötigten, bevor nützliche Erkenntnisse abgeleitet werden konnten.
-
In 4 sind eine Computermaschine 100 und ein Systemanwendungsmodul 200 gemäß Ausführungsbeispielen dargestellt. Die Computermaschine 100 kann jedem der verschiedenen hier vorgestellten Computer, mobilen Vorrichtungen, Laptops, Server, eingebetteten Systeme oder Computersysteme entsprechen. Das Modul 200 kann ein oder mehrere Hardware- oder Softwareelemente umfassen, beispielsweise andere Betriebssystemanwendungen und Benutzer- und Kernel-Space-Anwendungen, die dazu bestimmt sind, die Computermaschine 100 bei der Durchführung der verschiedenen hier vorgestellten Verfahren und Verarbeitungsfunktionen zu unterstützen. Die Computermaschine 100 kann verschiedene interne oder angeschlossene Komponenten umfassen, wie beispielsweise einen Prozessor 110, einen Systembus 120, einen Systemspeicher 130, Speichermedien 140, eine Eingabe-/Ausgabeschnittstelle 150 und eine Netzwerkschnittstelle 160 zur Kommunikation mit einem Netzwerk 170, beispielsweise einem Loopback, einem lokalen Netzwerk, einem umfangreichen Netzwerk, Mobilfunk/GPS, Bluetooth, WIFI und WIMAX zum Empfang von Fertigungsprozesseingaben, und eine Prozesssteuerung 180 zur Verarbeitung von Fertigungsprozesseingaben.
-
Die Computermaschine 100 kann als herkömmliches Computersystem, als eingebettete Steuerung, als Laptop, als Server, als mobiles Gerät, als Smartphone, als tragbarer Computer, als kundenspezifische Maschine, als beliebige andere Hardwareplattform oder als beliebige Kombination oder Vielzahl davon implementiert werden. Die Computermaschine 100 kann ein verteiltes System sein, das so konfiguriert ist, dass es mit mehreren Computermaschinen funktioniert, die über ein Datennetzwerk oder ein Bussystem miteinander verbunden sind.
-
Der Prozessor 110 kann so ausgelegt sein, dass er Codebefehle ausführt, um die hierin beschriebenen Operationen und Funktionen durchzuführen, den Anforderungsfluss und die Adresszuordnungen zu verwalten und Berechnungen durchzuführen und Befehle zu erzeugen. Der Prozessor 110 kann so konfiguriert sein, dass er den Betrieb der Komponenten in den Computermaschinen überwacht und steuert. Der Prozessor 110 kann ein Universalprozessor, ein Prozessorkern, ein Multiprozessor, ein rekonfigurierbarer Prozessor, ein Mikrocontroller, ein digitaler Signalprozessor („DSP“), ein anwendungsspezifischer integrierter Schaltkreis („ASIC“), eine Steuerung, eine Zustandsmaschine, Gated Logic, diskrete Hardwarekomponenten, eine beliebige andere Verarbeitungseinheit oder eine Kombination oder Vielzahl davon sein. Der Prozessor 110 kann eine einzelne Verarbeitungseinheit, mehrere Verarbeitungseinheiten, ein einzelner Verarbeitungskern, mehrere Verarbeitungskerne, spezielle Verarbeitungskerne, Koprozessoren oder eine beliebige Kombination davon sein. Gemäß bestimmten Ausführungsformen kann der Prozessor 110 zusammen mit anderen Komponenten der Computermaschine 100 eine softwarebasierte oder hardwarebasierte virtualisierte Computermaschine sein, die innerhalb einer oder mehrerer anderer Computermaschinen ausgeführt wird.
-
Der Systemspeicher 130 kann nichtflüchtige Speicher wie Festwertspeicher („ROM“), programmierbaren Festwertspeicher („PROM“), löschbaren programmierbaren Festwertspeicher („EPROM“), Flash-Speicher oder jede andere Vorrichtung umfassen, die in der Lage ist, Programmanweisungen oder Daten mit oder ohne angelegte Energie zu speichern. Der Systemspeicher 130 kann auch flüchtige Speicher wie Direktzugriffsspeicher („RAM“), statischen Direktzugriffsspeicher („SRAM“), dynamischen Direktzugriffsspeicher („DRAM“) und synchronen dynamischen Direktzugriffsspeicher („SDRAM“) umfassen. Es können auch andere RAM-Typen zur Implementierung des Systemspeichers 130 verwendet werden. Der Systemspeicher 130 kann mit einem einzelnen Speichermodul oder mehreren Speichermodulen implementiert werden. Obwohl der Systemspeicher 130 als Teil der Computermaschine dargestellt ist, wird ein Fachmann erkennen, dass der Systemspeicher 130 von der Computermaschine 100 getrennt sein kann, ohne vom Anwendungsbereich der vorliegenden Technologie abzuweichen. Es sollte auch gewürdigt werden, dass der Systemspeicher 130 eine nichtflüchtige Speichervorrichtung, wie die Speichermedien 140, umfassen oder in Verbindung damit arbeiten kann.
-
Die Speichermedien 140 können eine Festplatte, eine Diskette, einen Compact-Disc-Festwertspeicher („CD-ROM“), eine Digital Versatile Disc („DVD“), eine Blu-ray-Disc, ein Magnetband, einen Flash-Speicher, eine andere nichtflüchtige Speichervorrichtung, ein Solid-State-Laufwerk („SSD“), eine beliebige magnetische Speichervorrichtung, eine optische Speichervorrichtung, eine elektrische Speichervorrichtung, eine Halbleiter-Speichervorrichtung, eine physikalisch basierte Speichervorrichtung, eine andere Datenspeichervorrichtung oder eine Kombination oder Vielzahl davon umfassen. Die Speichermedien 140 können ein oder mehrere Betriebssysteme, Anwendungsprogramme und Programmmodule, Daten oder andere Informationen speichern. Die Speichermedien 140 können Teil der Computermaschine sein oder mit dieser verbunden sein. Die Speichermedien 140 können auch Teil einer oder mehrerer anderer Computermaschinen sein, die mit der Computermaschine in Verbindung stehen, wie beispielsweise Server, Datenbankserver, Cloud-Speicher, Netzwerkspeicher usw.
-
Das Anwendungsmodul 200 und andere OS-Anwendungsmodule können ein oder mehrere Hardware- oder Softwareelemente umfassen, die so konfiguriert sind, dass sie die Computermaschine bei der Durchführung der verschiedenen hier vorgestellten Verfahren und Verarbeitungsfunktionen unterstützen. Das Anwendungsmodul 200 und andere Betriebssystem-Anwendungsmodule können einen oder mehrere Algorithmen oder Sequenzen von Anweisungen umfassen, die als Software oder Firmware in Verbindung mit dem Systemspeicher 130, den Speichermedien 140 oder beidem gespeichert sind. Die Speichermedien 140 können daher Beispiele für maschinen- oder computerlesbare Medien darstellen, auf denen Anweisungen oder Code zur Ausführung durch den Prozessor 110 gespeichert werden können. Maschinen- oder computerlesbare Medien können sich im Allgemeinen auf jedes Medium oder jeden Datenträger beziehen, das bzw. der verwendet wird, um Anweisungen für den Prozessor 110 bereitzustellen. Solche maschinen- oder computerlesbaren Medien, die mit dem Anwendungsmodul 200 und anderen OS-Anwendungsmodulen verbunden sind, können ein Computersoftwareprodukt umfassen. Es sollte gewürdigt werden, dass ein Computersoftwareprodukt, das das Anwendungsmodul 200 und andere OS-Anwendungsmodule umfasst, auch mit einem oder mehreren Prozessen oder Verfahren zur Übermittlung des Anwendungsmoduls 200 und anderer OS-Anwendungsmodule an die Computermaschine über ein Netzwerk, ein beliebiges signaltragendes Medium oder eine andere Kommunikations- oder Übermittlungstechnologie verbunden sein kann. Das Anwendungsmodul 200 und andere OS-Anwendungsmodule können auch Hardware-Schaltkreise oder Informationen zur Konfiguration von Hardware-Schaltkreisen umfassen, wie beispielsweise Mikrocode oder Konfigurationsinformationen für ein FPGA oder ein anderes PLD. In einer beispielhaften Ausführungsform können das Anwendungsmodul 200 und andere Betriebssystem-Anwendungsmodule Algorithmen umfassen, die in der Lage sind, die in den hier vorgestellten Flussdiagrammen und Computersystemen beschriebenen Funktionsabläufe durchzuführen.
-
Die Eingabe-/Ausgabeschnittstelle 150 kann so konfiguriert werden, dass sie mit einem oder mehreren externen Vorrichtungen gekoppelt werden kann, um Daten von dem einen oder den mehreren externen Vorrichtungen zu empfangen und um Daten an das eine oder die mehreren externen Vorrichtungen zu senden. Solche externen Vorrichtungen können zusammen mit den verschiedenen internen Vorrichtungen auch als Peripheriegeräte bezeichnet werden. Die E/A-Schnittstelle 150 kann sowohl elektrische als auch physikalische Verbindungen zur Kopplung der verschiedenen Peripheriegeräte mit der Computermaschine oder dem Prozessor 110 umfassen. Die E/A-Schnittstelle 150 kann so konfiguriert sein, dass Daten, Adressen und Steuersignale zwischen den Peripheriegeräten, der Computermaschine oder dem Prozessor 110 übertragen werden. Die E/A-Schnittstelle 150 kann so konfiguriert werden, dass sie eine beliebige Standardschnittstelle implementiert, beispielsweise Small Computer System Interface („SCSI“), Serial-Attached SCSI („SAS“), Faserkanal, Peripheral Component Interconnect („PCI“), PCI Express (PCle), serieller Bus, paralleler Bus, Advanced Technology Attached („ATA“), Serial ATA („SATA“), Universal Serial Bus („USB“), Thunderbolt, FireWire, verschiedene Videobusse und dergleichen. Die E/A-Schnittstelle 150 kann so konfiguriert werden, dass sie nur eine Schnittstelle oder Bustechnologie implementiert. Alternativ kann die E/A-Schnittstelle 150 so konfiguriert werden, dass sie mehrere Schnittstellen oder Bustechnologien implementiert. Die E/A-Schnittstelle 150 kann als Teil des Systembusses 120, als Ganzes oder in Verbindung mit diesem konfiguriert werden. Die E/A-Schnittstelle 150 kann einen oder mehrere Puffer zum Puffern von Übertragungen zwischen einem oder mehreren externen Vorrichtungen, internen Vorrichtungen, der Computermaschine oder dem Prozessor 120 umfassen.
-
Die E/A-Schnittstelle 120 kann die Computermaschine mit verschiedenen Eingabegeräten koppeln, einschließlich Mäusen, Touchscreens, Scannern, elektronischen Digitalisierern, Sensoren, Empfängern, Touchpads, Trackballs, Kameras, Mikrofonen, Tastaturen, beliebigen anderen Zeigegeräten oder beliebigen Kombinationen davon. Die E/A-Schnittstelle 120 kann die Computermaschine mit verschiedenen Ausgabegeräten koppeln, beispielsweise mit Videobildschirmen, Lautsprechern, Druckern, Projektoren, taktilen Rückmeldegeräten, Automatisierungssteuerungen, Roboterkomponenten, Aktoren, Motoren, Lüftern, Magneten, Ventilen, Pumpen, Transmittern, Signalgebern, Leuchten usw.
-
Die Computermaschine 100 kann in einer vernetzten Umgebung betrieben werden, wobei logische Verbindungen über die NIC 160 zu einem oder mehreren anderen Systemen oder Computermaschinen über ein Netzwerk verwendet werden. Das Netzwerk kann umfangreiche Netzwerke (WAN), lokale Netzwerke (LAN), Intranets, das Internet, drahtlose Zugangsnetzwerke, drahtgebundene Netzwerke, mobile Netzwerke, Telefonnetzwerke, optische Netzwerke oder Kombinationen davon umfassen. Das Netzwerk kann paketvermittelt oder leitungsvermittelt sein, eine beliebige Topologie aufweisen und ein beliebiges Kommunikationsprotokoll verwenden. Die Kommunikationsverbindungen innerhalb des Netzwerks können verschiedene digitale oder analoge Kommunikationsmedien beinhalten, wie beispielsweise Glasfaserkabel, Freiraumoptik, Wellenleiter, elektrische Leiter, drahtlose Verbindungen, Antennen, Hochfrequenzkommunikation und so weiter.
-
Der Prozessor 110 kann über den Systembus 120 mit den anderen Elementen der Computermaschine oder den verschiedenen hierin beschriebenen Peripheriegeräten verbunden werden. Es sollte gewürdigt werden, dass der Systembus 120 innerhalb des Prozessors 110, außerhalb des Prozessors 110 oder beides sein kann. Gemäß einigen Ausführungsformen kann jeder der Prozessoren 110, die anderen Elemente der Computermaschine oder die verschiedenen hierin besprochenen Peripheriegeräte in eine einzelne Vorrichtung, wie beispielsweise ein System auf Chip („SOC“), System auf Gehäuse („SOP“) oder ASIC-Vorrichtung, integriert werden.
-
Ausführungsformen können ein Computerprogramm umfassen, das die hierin beschriebenen und dargestellten Funktionen verkörpert, wobei das Computerprogramm in einem Computersystem implementiert ist, das in einem maschinenlesbaren Medium gespeicherte Anweisungen und einen Prozessor umfasst, der die Anweisungen ausführt. Es sollte jedoch klar sein, dass es viele verschiedene Arten der Implementierung von Ausführungsformen in der Computerprogrammierung geben könnte, und die Ausführungsformen sollten nicht als auf einen Satz von Computerprogrammanweisungen beschränkt verstanden werden, sofern nicht für eine beispielhafte Ausführungsform etwas anderes offenbart wird. Des Weiteren wäre ein erfahrener Programmierer in der Lage, ein solches Computerprogramm zu schreiben, um eine Ausführungsform der offenbarten Ausführungsformen auf Grundlage der beigefügten Flussdiagramme, Algorithmen und der zugehörigen Beschreibung im Anwendungstext zu implementieren. Daher wird die Offenbarung eines bestimmten Satzes von Programmcode-Anweisungen für ein angemessenes Verständnis der Herstellung und Verwendung von Ausführungsformen nicht als notwendig erachtet. Des Weiteren wird der Fachmann erkennen, dass ein oder mehrere Aspekte der hier beschriebenen Ausführungsformen durch Hardware, Software oder eine Kombination davon ausgeführt werden können, wie sie in einem oder mehreren Computersystemen verkörpert sein können. Darüber hinaus sollte jede Bezugnahme darauf, dass eine Handlung von einem Computer ausgeführt wird, nicht so verstanden werden, dass sie von einem einzigen Computer ausgeführt wird, da mehr als ein Computer die Handlung ausführen kann.
-
Die hier beschriebenen Beispielausführungen können mit Computerhardware und - Software verwendet werden, die die zuvor beschriebenen Verfahren und Verarbeitungsfunktionen ausführen. Die hier beschriebenen Systeme, Verfahren und Prozeduren können in einem programmierbaren Computer, computerausführbarer Software oder digitalen Schaltkreisen verkörpert sein. Die Software kann auf computerlesbaren Medien gespeichert sein. Computerlesbare Medien können beispielsweise eine Diskette, RAM, ROM, Festplatte, Wechselmedien, Flash-Speicher, Memory-Stick, optische Medien, magnetooptische Medien, CD-ROM usw. umfassen. Digitale Schaltungen können integrierte Schaltungen, Gate-Arrays, Bausteinlogik, feldprogrammierbare Gate-Arrays (FPGA) usw. umfassen.
-
Die Beispielsysteme, -verfahren und -handlungen, die in den zuvor vorgestellten Ausführungsformen beschrieben sind, sind illustrativ, und in alternativen Ausführungsformen können bestimmte Handlungen in einer anderen Reihenfolge, parallel zueinander, vollständig weggelassen und/oder zwischen verschiedenen Beispielausführungsformen kombiniert werden, und/oder bestimmte zusätzliche Handlungen können ausgeführt werden, ohne vom Umfang und Geist der verschiedenen Ausführungsformen abzuweichen. Dementsprechend sind solche alternativen Ausführungsformen in der vorliegenden Beschreibung umfasst.
-
Wie hierin verwendet, sollen die Singularformen „ein“, „eine“ und „die“ auch die Pluralformen umfassen, sofern aus dem Kontext nicht eindeutig etwas anderes hervorgeht. Es versteht sich des Weiteren, dass die Begriffe „umfasst“ und/oder „aufweisen“, wenn sie in dieser Spezifikation verwendet werden, das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten spezifizieren, aber das Vorhandensein oder Hinzufügen von einem oder mehreren anderen Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon nicht ausschließen. Wie hierin verwendet, umfasst der Begriff „und/oder“ jede und alle Kombinationen von einem oder mehreren der zugehörigen aufgeführten Elemente. Wie hierin verwendet, sollten Ausdrücke wie „zwischen X und Y“ und „zwischen etwa X und Y“ so interpretiert werden, dass sie X und Y umfassen. Wie hierin verwendet, bedeuten Ausdrücke wie „von etwa X bis Y“ „von etwa X bis etwa Y“.
-
Wie hierin verwendet, kann „Hardware“ eine Kombination von diskreten Komponenten, eine integrierte Schaltung, eine anwendungsspezifische integrierte Schaltung, ein feldprogrammierbares Gate-Array oder andere geeignete Hardware umfassen. Wie hierin verwendet, kann „Software“ ein oder mehrere Objekte, Agenten, Threads, Codezeilen, Unterprogramme, separate Softwareanwendungen, zwei oder mehr Codezeilen oder andere geeignete Softwarestrukturen umfassen, die in zwei oder mehr Softwareanwendungen, auf einem oder mehreren Prozessoren (wobei ein Prozessor einen oder mehrere Mikrocomputer oder andere geeignete Datenverarbeitungseinheiten, Speichergeräte, (wobei ein Prozessor einen oder mehrere Mikrocomputer oder andere geeignete Datenverarbeitungseinheiten, Speichergeräte, Anzeigen, Dateneingabegeräte wie eine Tastatur oder eine Maus, Peripheriegeräte wie Drucker und Lautsprecher, zugehörige Treiber, Steuerkarten, Stromquellen, Netzwerkgeräte, Dockingstation-Vorrichtungen oder andere geeignete Vorrichtungen umfasst, die unter der Steuerung von Softwaresystemen in Verbindung mit dem Prozessor oder anderen Vorrichtungen arbeiten) oder andere geeignete Softwarestrukturen. In einer beispielhaften Ausführungsform kann die Software eine oder mehrere Codezeilen oder andere geeignete Softwarestrukturen umfassen, die in einer Allzweck-Softwareanwendung, wie beispielsweise einem Betriebssystem, arbeiten, und eine oder mehrere Codezeilen oder andere geeignete Softwarestrukturen, die in einer speziellen Softwareanwendung arbeiten. Wie hierin verwendet, kann der Begriff „Kopplung“ und seine verwandten Begriffe, wie „Paare“ und „gekoppelt“, eine physikalische Verbindung (wie einen Kupferleiter), eine virtuelle Verbindung (wie durch zufällig zugewiesene Speicherplätze einer Datenspeichereinrichtung), eine logische Verbindung (wie durch logische Gatter einer Halbleitereinrichtung), andere geeignete Verbindungen oder eine geeignete Kombination solcher Verbindungen umfassen. Der Begriff „Daten“ kann sich auf eine geeignete Struktur zur Verwendung, Übermittlung oder Speicherung von Daten beziehen, wie beispielsweise ein Datenfeld, einen Datenpuffer, eine Datennachricht, die den Datenwert und Sender-/Empfänger-Adressdaten aufweist, eine Steuernachricht, die den Datenwert und einen oder mehrere Operatoren aufweist, die das empfangende System oder die empfangende Komponente veranlassen, eine Funktion unter Verwendung der Daten auszuführen, oder andere geeignete Hardware- oder Softwarekomponenten zur elektronischen Verarbeitung von Daten.
-
Im Allgemeinen ist ein Softwaresystem ein System, das auf einem Prozessor arbeitet, um vorgegebene Funktionen in Reaktion auf vorgegebene Datenfelder auszuführen. Ein System kann beispielsweise durch die Funktion, die es ausführt, und die Datenfelder, auf denen es die Funktion ausführt, definiert werden. Wie hierin verwendet, bezieht sich ein NAME-System, wobei NAME typischerweise der Name der allgemeinen Funktion ist, die von dem System ausgeführt wird, auf ein Softwaresystem, das so konfiguriert ist, dass es auf einem Prozessor arbeitet und die offengelegte Funktion mit den offengelegten Datenfeldern ausführt. Sofern kein spezifischer Algorithmus offengelegt wird, fällt jeder geeignete Algorithmus, der einem Fachmann zur Ausführung der Funktion unter Verwendung der zugehörigen Datenfelder bekannt ist, in den Anwendungsbereich der Offenbarung. Beispielsweise würde ein Nachrichtensystem, das eine Nachricht erzeugt, die ein Absenderadressfeld, ein Empfängeradressfeld und ein Nachrichtenfeld enthält, eine Software umfassen, die auf einem Prozessor arbeitet, der das Absenderadressfeld, das Empfängeradressfeld und das Nachrichtenfeld von einem geeigneten System oder einer geeigneten Vorrichtung des Prozessors, wie beispielsweise einer Puffervorrichtung oder einem Puffersystem, beziehen kann, das Absenderadressfeld zusammensetzen kann, Empfängeradressfeld und Nachrichtenfeld in ein geeignetes elektronisches Nachrichtenformat zusammenstellen (wie eine elektronische Postnachricht, eine TCP/IP-Nachricht oder ein anderes geeignetes Nachrichtenformat, das ein Absenderadressfeld, ein Empfängeradressfeld und ein Nachrichtenfeld aufweist) und die elektronische Nachricht unter Verwendung elektronischer Nachrichtensysteme und -vorrichtungen des Prozessors über ein Kommunikationsmedium, wie beispielsweise ein Netzwerk, übertragen kann. Eine Person mit gewöhnlichen Fachkenntnissen wäre in der Lage, die spezifische Kodierung für eine spezifische Anwendung auf Grundlage der vorangehenden Offenbarung bereitzustellen, die dazu bestimmt ist, beispielhafte Ausführungsformen der vorliegenden Offenbarung darzulegen, und nicht dazu, eine Anleitung für jemanden bereitzustellen, der weniger als gewöhnliche Fachkenntnisse hat, wie beispielsweise jemand, der mit der Programmierung oder Prozessoren in einer geeigneten Programmiersprache nicht vertraut ist. Ein spezifischer Algorithmus zur Ausführung einer Funktion kann in Form eines Flussdiagramms oder in anderen geeigneten Formaten bereitgestellt werden, wobei die Datenfelder und zugehörigen Funktionen in einer beispielhaften Reihenfolge der Operationen dargelegt werden können, wobei die Reihenfolge in geeigneter Weise umgestellt werden kann und nicht als einschränkend zu verstehen ist, es sei denn, sie wird ausdrücklich als einschränkend bezeichnet.
-
Die oben dargestellten Ausführungsformen wurden zum Zweck der Veranschaulichung dargestellt und sollen es dem Fachmann ermöglichen, die Offenbarung in die Praxis umzusetzen, aber die Offenbarung erhebt keinen Anspruch auf Vollständigkeit oder Beschränkung auf die dargestellten Formen. Viele unwesentliche Modifikationen und Variationen werden für den Fachmann offensichtlich sein, ohne den Umfang und den Geist der Offenbarung zu verletzen. Der Umfang der Ansprüche soll die offengelegten Ausführungsformen und alle derartigen Modifikationen weitestgehend abdecken. Des Weiteren stellen die folgenden Klauseln zusätzliche Ausführungsformen der Offenbarung dar und sollten innerhalb des Umfangs der Offenbarung betrachtet werden:
- Klausel 1, ein Prozesssteuerungsinstrument zur Verarbeitung umfangreicher Daten aus automatisierten Fertigungsvorgängen: ein Merkmalswähler, der konfiguriert ist zum:
- Empfangen von Prozesseingangsdaten von wenigstens einer Fertigungsprozessanwendung, wobei die Prozesseingangsdaten eine Vielzahl von Überwachungen und zugehörigen Variablen umfassen; Konvertieren identifizierter kategorischer Variablen in numerische Variablen und identifizierter Zeitreihendaten in feste Anzahlen von Intervallen; und Berechnen von Statistiken, die die Stärke von Zusammenhängen zwischen Prädiktorvariablen und einer Ergebnisvariablen messen; einen Analyseserver, der so konfiguriert ist, dass er: wenigstens eine Operation durchführt, um Interaktionen zwischen Vorhersagewerten zu identifizieren; eine Visualisierungs-Engine, die so konfiguriert ist, dass sie die Interaktionen zur Verwendung bei der Verwaltung der Fertigungsvorgänge anzeigt.
- Klausel 2, Prozesssteuerungsinstrument von Klausel 1, wobei der Merkmalswähler des Weiteren so konfiguriert ist, dass er die empfangenen Prozesseingangsdaten in ein Stapelformat umwandelt, das für jede Variable in jeder Überwachung eine Zeile aufweist;
- Klausel 3, Prozesssteuerungsinstrument von Klausel 1, wobei die identifizierten kategorischen Variablen unter Verwendung einer Impact-Codierungstechnik in numerische Variablen umgewandelt werden;
- Klausel 4, Prozesssteuerungsinstrument von Klausel 2, wobei der Merkmalswählerdes Weiteren konfiguriert ist, um: die Vorhersagewerte auf Grundlage der berechneten Statistiken zu ordnen; die Vorhersagewerte auf Grundlage eines Schwellenwerts zu einer Untermenge von Vorhersagewerten zu filtern; und die Untermenge in ein umfangreiches Format zu schwenken („pivot“);
- Klausel 5, Prozesssteuerungsinstrument von Klausel 4, wobei der Analyseserver so konfiguriert ist, dass er: die geschwenkte Teilmenge von Vorhersagewerten empfängt; und wenigstens eine von Maximum-Likelihood-Berechnungen und vordefinierten Suchen durchführt, um Interaktionen zwischen den Vorhersagewerten in der Teilmenge zu identifizieren;
- Klausel 6, Prozesssteuerungsinstrument von Klausel 1, wobei der Analyseserver des Weiteren so konfiguriert ist, dass er mit wenigstens einem von In-Memory-, In-Virtual-Memory- und Multithreading-Berechnungen arbeitet;
- Klausel 7, Prozesssteuerungsinstrument von Klausel 1, wobei der Merkmalswähler und der Analyseserver gleichzeitig und asynchron arbeiten;
- Klausel 8, Prozesssteuerungsinstrument von Klausel 1, wobei der Analyseserver ein dedizierter Analyseserver ist;
- Klausel 9, Prozesssteuerungsinstrument von Klausel 1, wobei die Prozesseingangsdaten dadurch gekennzeichnet sind, dass sie einen umfangreichen Datensatz oder einen umfangreichen und großen Datensatz aufweisen;
- Klausel 10, Verfahren zum Verarbeiten breiter Daten von automatisierten Fertigungsvorgängen, wobei das Verfahren umfasst: Empfangen von Prozesseingangsdaten von wenigstens einer Fertigungsprozessanwendung, wobei die Prozesseingangsdaten eine Vielzahl von Beobachtungen und zugehörigen Variablen umfassen; Umwandeln identifizierter kategorischer Variablen in numerische Variablen und identifizierter Zeitreihendaten in feste Anzahlen von Intervallen; und Berechnen von Statistiken, die die Stärken von Zusammenhängen zwischen Prädiktorwerten und einer Ergebnisvariablen messen; Durchführen wenigstens einer Operation, um Interaktionen zwischen Prädiktorwerten zu identifizieren; und Anzeigen der Interaktionen zur Verwendung beim Verwalten der Fertigungsvorgänge;
- Klausel 11, Verfahren von Klausel 10, das des Weiteren Konvertieren der empfangenen Prozesseingangsdaten in ein Stapelformat umfasst, das eine Zeile für jede Variable in jeder Überwachung aufweist;
- Klausel 12, Verfahren von Klausel 10, das des Weiteren das Umwandeln der identifizierten kategorischen Variablen in numerische Variablen unter Verwendung einer Impact-Codierungstechnik umfasst;
- Klausel 13, Verfahren von Klausel 11, das des Weiteren Folgendes umfasst: Ordnen der Vorhersagewerte auf Grundlage der berechneten Statistiken; Filtern der Vorhersagewerte zu einer Teilmenge von Vorhersagewerten auf Grundlage eines Schwellenwerts; und Schwenken der Teilmenge in ein umfangreiches Format;
- Klausel 14, Verfahren von Klausel 13, das des Weiteren Folgendes umfasst: Empfangen der geschwenkten Teilmenge von Vorhersagewerten; und Durchführen von wenigstens einer von Maximum-Likelihood-Berechnungen und vordefinierten Suchen, um Interaktionen zwischen den Vorhersagewerten in der Teilmenge zu identifizieren;
- Klausel 15, ein nicht-transitorisches computerlesbares Speichermedium, das einen Satz von Computeranweisungen umfasst, die von einem Prozessor zur Verarbeitung umfangreicher Daten aus automatisierten Fertigungsvorgängen ausgeführt werden können, wobei die Computeranweisungen so konfiguriert sind, dass sie: Prozesseingangsdaten von wenigstens einer Fertigungsprozessanwendung zu empfangen, wobei die Prozesseingangsdaten eine Vielzahl von Überwachungen und zugehörigen Variablen umfassen; identifizierte kategorische Variablen in numerische Variablen und identifizierte Zeitreihendaten in feste Anzahlen von Intervallen umzuwandeln; und Statistiken zu berechnen, die die Stärken von Zusammenhängen zwischen Prädiktorwerten und einer Ergebnisvariablen messen; wenigstens eine Operation durchzuführen, um Zusammenhänge zwischen Prädiktorwerten zu identifizieren; die Zusammenhänge zur Verwendung bei der Verwaltung der Fertigungsvorgänge anzuzeigen;
- Klausel 16, nicht-transitorisches, computerlesbares Speichermedium von Klausel 15, das des Weiteren Computeranweisungen umfasst, die so konfiguriert sind, dass sie die empfangenen Prozesseingangsdaten in ein Stapelformat umwandeln, das eine Zeile für jede Variable in jeder Überwachung aufweist;
- Klausel 17, nicht-transitorisches computerlesbares Speichermedium von Klausel 15, das des Weiteren Computerbefehle umfasst, die so konfiguriert sind, dass sie eine Impact-Codierungstechnik verwenden, um die identifizierten kategorischen Variablen in numerische Variablen umzuwandeln;
- Klausel 18, nicht-transitorisches computerlesbares Speichermedium von Klausel 16, das des Weiteren Computerbefehle umfasst, die konfiguriert sind zum: Ordnen der Vorhersagewerte auf Grundlage der berechneten Statistiken; Filtern der Vorhersagewerte auf Grundlage eines Schwellenwerts zu einer Teilmenge von Vorhersagewerten; Schwenken der Teilmenge in ein umfangreiches Format; und Durchführen von wenigstens einer Maximum-Likelihood-Berechnungen und/oder vordefinierten Suchen, um Interaktionen zwischen den Vorhersagewerten in der Teilmenge zu identifizieren;
- Klausel 19, nicht-transitorisches, computerlesbares Speichermedium von Klausel 15 , das des Weiteren Computerbefehle umfasst, die konfiguriert sind, wobei der Analyseserver des Weiteren so konfiguriert ist, dass er wenigstens eine Operation durchführt, um Interaktionen zwischen Vorhersagewerten und der wenigstens einen Ergebnisvariablen in wenigstens einem von In-Memory-, In-Virtual-Memory- und Multithreading-Berechnungen zu identifizieren.
- Klausel 20, nicht-transitorisches computerlesbares Speichermedium von Klausel 15, wobei eine Untermenge der Befehle gleichzeitig mit und asynchron zu einer anderen Untermenge der Befehle arbeitet.
-
Die vorangehende Beschreibung von Ausführungsformen der Offenbarung wurde zum Zweck der Veranschaulichung und Beschreibung dargestellt. Es ist nicht beabsichtigt, erschöpfend zu sein oder die Offenbarung auf die genaue Form zu beschränken, die offenbart wurde, und Modifikationen und Variationen sind im Lichte der obigen Lehren möglich oder können aus der Praxis der Offenbarung erworben werden. Die Ausführungsformen wurden ausgewählt und beschrieben, um die Prinzipien der Offenbarung und ihre praktische Anwendung zu erläutern, damit der Fachmann die Offenbarung in verschiedenen Ausführungsformen und mit verschiedenen Modifikationen nutzen kann, die für die jeweils in Betracht gezogene Verwendung geeignet sind. Andere Substitutionen, Modifikationen, Änderungen und Auslassungen können in der Konstruktion, den Betriebsbedingungen und der Anordnung der Ausführungsformen vorgenommen werden, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Derartige Modifikationen und Kombinationen der dargestellten Ausführungsformen sowie andere Ausführungsformen werden für Fachleute bei der Lektüre der Beschreibung offensichtlich sein. Es ist daher beabsichtigt, dass die beigefügten Ansprüche alle derartigen Modifikationen oder Ausführungsformen umfassen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
-
Zitierte Nicht-Patentliteratur
-
- J. Lin, E. Keogh, L. Wei, und S. Lonardi. „Experiencing SAX: A Novel Symbolic Representation of Time Series“. Data Mining and Knowldege Discovery, Vol. 15, 2, S. 107-144, 2007 [0019]
- E. Tuv, A. Borisov, G. Runger, und K. Torkkola, „Feature Selection with Ensembles, Artificial Variables, and Redundancy Elimination.“ Journal of Machine Learning Research, vol. 10, 2009, 1341-1366 [0022]