-
Die vorliegende Offenbarung bezieht sich auf Computersysteme, die die Fähigkeit für künstliche Intelligenz aufweisen, einschließlich neuronaler Netze.
-
HINTERGRUND
-
Das allgemeine Ziel eines DEQ-Modells (Modell tiefen Gleichgewichts) kann darin bestehen, eine gewisse Vorwärtsfunktion ƒ zu definieren, so dass der Vorwärtsdurchlauf des Netzes durch zuerst Auflösen nach einem Gleichgewichtspunkt z* = ƒ(z*, x; θ) gegeben ist. Der Rückwärtsdurchlauf kann weitgehend dem Multiplizieren mit der Jacobi-Matrix
entsprechen, die in ihrer exakten Form die Lösung eines linearen Systems erfordert. Es gibt drei Hauptherausforderungen bei der Entwicklung eines DEQ-Modells. Eine kann das Definieren von ƒ derart, dass der Fixpunkt z* existiert und idealerweise eindeutig ist, sein. Die zweite kann das Definieren einer Nullstellenauffindungsprozedur sein, die den Fixpunkt z* im Vorwärtsdurchlauf auffinden kann. Die dritte kann das Definieren eines Rückwärtsdurchlaufs sein, um die Multiplikation mit der Jacobi-Matrix
zu lösen.
-
ZUSAMMENFASSUNG
-
Gemäß einer Ausführungsform umfasst ein computerimplementiertes Verfahren zum Vorhersagen einer Klassifikation und zum Trainieren einer neuronalen Arbeit das Empfangen einer Eingabe am neuronalen Netz, das Klassifizieren der Eingabe des neuronalen Netzes unter Verwendung einer Vorwärtsausbreitung, wobei die Vorwärtsausbreitung die Verwendung einer Nullstellenauffindungsprozedur umfasst, um einen Fixpunkt zu identifizieren, der einem oder mehreren Parametern des neuronalen Netzes zugeordnet ist, das Berechnen eines Vektors unter Verwendung einer linearen Transformation des Fixpunkts, das Ausgeben der Klassifikation der Eingabe in Reaktion auf ein maximales Element des Vektors und das Trainieren des neuronalen Netzes unter Verwendung einer Rückwärtsausbreitung, wobei die Rückwärtsausbreitung das Identifizieren einer Ableitung eines Verlusts umfasst, der den Parametern des Netzes zugeordnet ist.
-
Gemäß einer zweiten Ausführungsform umfasst ein computerimplementiertes Verfahren für eine Klassifikation einer Eingabe in ein neuronales Netz das Empfangen einer Eingabe am neuronalen Netz, das Identifizieren einer Klassifikation der Eingabe am neuronalen Netz unter Verwendung einer Vorwärtsausbreitung, wobei die Vorwärtsausbreitung die Verwendung einer Nullstellenauffindungsprozedur umfasst, um einen Fixpunkt zu identifizieren, der einem Parameter des neuronalen Netzes zugeordnet ist, das Berechnen eines Vektors unter Verwendung einer linearen Transformation des Fixpunkts und das Ausgeben der Klassifikation der Eingabe in Reaktion auf ein maximales Element des Vektors.
-
Gemäß einer dritten Ausführungsform umfasst ein System zum Trainieren einer neuronalen Arbeit eine Eingangsschnittstelle zum Zugreifen auf Eingangsdaten für das neuronale Netz und einen Prozessor in Kommunikation mit der Eingangsschnittstelle. Der Prozessor ist dazu programmiert, eine Eingabe am neuronalen Netz zu empfangen und ein trainiertes neuronales Netz unter Verwendung einer Vorwärtsausbreitung und einer Rückwärtsausbreitung auszugeben, wobei die Vorwärtsausbreitung die Verwendung einer Nullstellenauffindungsprozedur umfasst, um einen Fixpunkt zu identifizieren, der einem oder mehreren Parametern des neuronalen Netzes zugeordnet ist, wobei die Rückwärtsausbreitung das Identifizieren einer Ableitung eines Verlusts umfasst, der den Parametern des Netzes zugeordnet ist.
-
Figurenliste
-
- 1 zeigt ein System 100 zum Trainieren eines neuronalen Netzes.
- 2 zeigt ein computerimplementiertes Verfahren 200 zum Trainieren eines neuronalen Netzes.
- 3 stellt einen Ablaufplan 300 eines Klassifikationsprozesses eines monotonen Netzes dar.
- 4 stellt einen Ablaufplan 400 eines Trainingsprozesses eines monotonen Netzes dar.
- 5 stellt ein schematisches Diagramm einer Wechselwirkung zwischen einer computergesteuerten Maschine 10 und einem Steuersystem 12 dar.
- 6 stellt ein schematisches Diagramm des Steuersystems von 1 dar, das dazu konfiguriert ist, ein Fahrzeug zu steuern, das ein teilweise autonomes Fahrzeug oder ein teilweise autonomer Roboter sein kann.
- 7 stellt ein schematisches Diagramm des Steuersystems von 1 dar, das dazu konfiguriert ist, eine Fertigungsmaschine wie z. B. einen Stanzschneider, einen Schneider oder einen Tieflochbohrer eines Fertigungssystems wie z. B. eines Teils einer Produktionsline zu steuern.
- 8 stellt ein schematisches Diagramm des Steuersystems von 1 dar, das dazu konfiguriert ist, ein Elektrowerkzeug, wie z. B. eine elektrische Bohrmaschine oder einen Kraftschrauber, das einen zumindest teilweise autonomen Modus aufweist, zu steuern.
- 9 stellt ein schematisches Diagramm des Steuersystems von 1 dar, das dazu konfiguriert ist, einen automatisierten persönlichen Assistenten zu steuern.
- 10 stellt ein schematisches Diagramm des Steuersystems von 1 dar, das dazu konfiguriert ist, ein Überwachungssystem wie z. B. ein Steuerzugangssystem oder ein Beobachtungssystem zu steuern.
- 11 stellt ein schematisches Diagramm des Steuersystems von 1 dar, das dazu konfiguriert ist, ein Abbildungssystem, beispielsweise eine MRI-Einrichtung, eine Röntgenstrahlabbildungseinrichtung oder eine Ultraschalleinrichtung, zu steuern.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführungsformen der vorliegenden Erfindung werden hier beschrieben. Selbstverständlich sind jedoch die offenbarten Ausführungsformen nur Beispiele und andere Ausführungsformen können verschiedene und alternative Formen annehmen. Die Figuren sind nicht notwendigerweise maßstäblich; einige Merkmale könnten übertrieben oder minimiert sein, um Details von speziellen Komponenten zu zeigen. Daher sollen hier offenbarte spezielle Struktur- und Funktionsdetails nicht als Begrenzung, sondern lediglich als repräsentative Basis zum Lehren eines Fachmanns auf dem Gebiet, die Ausführungsformen verschiedenartig einzusetzen, interpretiert werden. Wie der Fachmann auf dem Gebiet versteht, können verschiedene Merkmale, die mit Bezug auf irgendeine der Figuren dargestellt und beschrieben werden, mit Merkmalen kombiniert werden, die in einer oder mehreren anderen Figuren dargestellt sind, um Ausführungsformen zu erzeugen, die nicht explizit dargestellt oder beschrieben sind. Die dargestellten Kombinationen von Merkmalen schaffen repräsentative Ausführungsformen für typische Anwendungen. Verschiedene Kombinationen und Modifikationen der Merkmale, die mit den Lehren dieser Offenbarung konsistent sind, könnten jedoch für spezielle Anwendungen oder Implementierungen erwünscht sein.
-
In den vorherigen DEQ-Modellen kann das Definieren einer Funktion mit einem Fixpunkt heuristisch unter Verwendung von Netzstrukturen durchgeführt werden, die empirisch stabile Fixpunkte zu erzeugen scheinen. Dies kann die Verwendung von existierenden Architekturen im Transformatorstil oder von existierenden faltenden Architekturen mit geeigneter Schichtnormierung umfassen, um zu versuchen, ein stabiles System zu schaffen. Solche Schichten sind jedoch nicht mit formalen Garantien für die Existenz eines Fixpunkts ausgestattet. Für eine Nullstellenauffindungsprozedur kann das DEQ ein nicht-lineares Broyden-Verfahren verwenden, von dem auch nicht garantiert ist, dass es eine Nullstelle findet (selbst wenn eine Nullstelle oder ein Fixpunkt existiert). Außerdem kann der Rückwärtsdurchlauf ein ähnliches Broyden-Verfahren für eine lineare Lösung verwenden, von dem garantiert werden kann, dass es mit der geeigneten Inversen multipliziert, wenn sie existiert, aber die Jacobi-Matrix entspricht keiner sinnvollen Ableitung, wenn der Fixpunkt nicht existiert oder wenn es dem Vorwärtsdurchlauf misslingt zu konvergieren.
-
Das monotone Operatornetz kann eine spezielle Form eines DEQ-Modells sein, die viel bessere Lösungen für die drei vorstehend identifizierten Herausforderungen bereitstellt. Insbesondere zum Definieren einer Funktion mit einem Fixpunkt verwendet das monotone Operatornetz eine spezielle parametrisierte Form der Funktion f, die die Existenz und Eindeutigkeit eines Fixpunkts garantieren kann. Durch Anwenden der Werkzeuge der monotonen Operatortheorie kann das System zwei verschiedene iterative Prozeduren ableiten, die den Gleichgewichtspunkt des Systems finden. Es kann immer garantiert werden, dass diese Prozeduren auf den Gleichgewichtspunkt konvergieren. Das System kann einen ähnlichen Satz von Algorithmen formulieren, um den Rückwärtsdurchlauf durchzuführen.
-
1 zeigt ein System 100 zum Trainieren eines neuronalen Netzes. Das System 100 kann eine Eingangsschnittstelle zum Zugreifen auf Trainingsdaten 192 für das neuronale Netz umfassen. Wie in 1 dargestellt, kann die Eingangsschnittstelle beispielsweise durch eine Datenspeicherschnittstelle 180 konfiguriert sein, die auf die Trainingsdaten 192 von einem Datenspeicher 190 zugreifen kann. Die Datenspeicherschnittstelle 180 kann beispielsweise eine Arbeitsspeicherschnittstelle oder eine Schnittstelle 30 eines dauerhaften Speichers sein, z. B. eine Festplatten- oder eine SSD-Schnittstelle, aber auch eine Schnittstelle eines persönlichen, lokalen oder weiträumigen Netzes wie z. B. eine Bluetooth-, Zigbee- oder Wi-Fi-Schnittstelle oder eine Ethernet- oder faseroptische Schnittstelle. Der Datenspeicher 190 kann ein interner Datenspeicher des Systems 100 sein, wie z. B. eine Festplattenlaufwerk oder SSD, aber auch ein externer Datenspeicher, z. B. ein für das Netz zugänglicher Datenspeicher.
-
In einigen Ausführungsformen kann der Datenspeicher 190 ferner eine Datendarstellung 194 einer untrainierten Version des neuronalen Netzes umfassen, auf die durch das System 100 vom Datenspeicher 190 zugegriffen werden kann. Es ist jedoch zu erkennen, dass auf die Trainingsdaten 192 und die Datendarstellung 194 des untrainierten neuronalen Netzes auch jeweils von einem anderen Datenspeicher, z. B. über ein anderes Untersystem der Schnittstelle 180 des Datenspeichers 5, zugegriffen werden kann. Jedes Untersystem kann von einem Typ sein, wie vorstehend für die Datenspeicherschnittstelle 180 beschrieben ist. In anderen Ausführungsformen kann die Datendarstellung 194 des untrainierten neuronalen Netzes intern durch das System 100 auf der Basis von Entwurfsparametern für das neuronale Netz erzeugt werden, und kann daher nicht explizit auf dem Datenspeicher 190 gespeichert sein. Das System 100 kann ferner ein Prozessoruntersystem 160 umfassen, das dazu konfiguriert sein kann, während des Betriebs des Systems 100 eine iterative Funktion als Ersatz für einen Stapel von Schichten des zu trainierenden neuronalen Netzes bereitzustellen. Hier können jeweilige Schichten des Stapels von Schichten, die ersetzt werden, miteinander geteilte Gewichte aufweisen und können als Eingabe eine Ausgabe einer vorherigen Schicht oder für eine erste Schicht des Stapels von Schichten eine anfängliche Aktivierung und einen Teil der Eingabe des Stapels von Schichten empfangen. Das Prozessoruntersystem 160 kann ferner dazu konfiguriert sein, das neuronale Netz unter Verwendung der Trainingsdaten 192 iterativ zu trainieren. Hier kann eine Iteration des Trainings durch das Prozessoruntersystem 160 einen Vorwärtsausbreitungsteil und einen Rückwärtsausbreitungsteil umfassen. Das Prozessoruntersystem 160 kann dazu konfiguriert sein, den Vorwärtsausbreitungsteil unter anderen Operationen durch Definieren des Vorwärtsausbreitungsteils, der durchgeführt werden kann, Bestimmen eines Gleichgewichtspunkts der iterativen Funktion, an dem die iterative Funktion auf einen Fixpunkt konvergiert, wobei das Bestimmen des Gleichgewichtspunkts die Verwendung eines numerischen Nullstellenauffindungsalgorithmus umfasst, um eine Nullstellenlösung für die iterative Funktion minus ihre Eingabe zu finden, und durch Bereitstellen des Gleichgewichtspunkts als Ersatz für eine Ausgabe des Stapels von Schichten im neuronalen Netz durchzuführen. Das System 100 kann ferner eine Ausgangsschnittstelle zum Ausgeben einer Datendarstellung 196 des trainierten neuronalen Netzes umfassen, diese Daten können auch als Daten 196 des trainierten Modells bezeichnet werden. Wie auch in 1 dargestellt, kann beispielsweise die Ausgangsschnittstelle durch die Datenspeicherschnittstelle 180 gebildet sein, wobei die Schnittstelle in diesen Ausführungsformen eine Eingangs/Ausgangs-Schnittstelle („IO“-Schnittstelle) ist, über die die Daten 196 des trainierten Modells im Datenspeicher 190 gespeichert werden können. Die Datendarstellung 194, die das „untrainierte“ neuronale Netz definiert, können beispielsweise während des oder nach dem Training zumindest teilweise durch die Datendarstellung 196 des trainierten neuronalen Netzes ersetzt werden, indem die Parameter des neuronalen Netzes wie z. B. Gewichte, Hyperparameter und andere Typen von Parametern des neuronalen Netzes angepasst werden können, um das Training an den Trainingsdaten 192 widerzuspiegeln. Dies ist auch in 1 durch die Bezugszeichen 194, 196 dargestellt, die sich auf denselben Datensatz auf dem Datenspeicher 190 beziehen. In anderen Ausführungsformen kann die Datendarstellung 196 separat von der Datendarstellung 194 gespeichert werden, die das „untrainierte“ neuronale Netz definiert. In einigen Ausführungsformen kann die Ausgangsschnittstelle von der Datenspeicherschnittstelle 180 separat sein, kann jedoch im Allgemeinen von einem Typ sein, wie vorstehend für die Datenspeicherschnittstelle 180 beschrieben.
-
2 zeigt ein computerimplementiertes Verfahren 200 zum Trainieren eines neuronalen Netzes. Das Verfahren 200 kann einem Betrieb des Systems 100 von 1 entsprechen, muss dies jedoch nicht, indem es auch einem Betrieb eines anderen Typs von System, Einrichtung oder Vorrichtung entsprechen kann oder indem es einem Computerprogramm entsprechen kann.
-
Es ist gezeigt worden, dass das Verfahren 200 in einem Schritt mit dem Titel „BEREITSTELLEN EINER DATENDARSTELLUNG DES NEURONALEN NETZES“ das Bereitstellen 210 eines neuronalen Netzes umfasst, wobei das Bereitstellen des neuronalen Netzes das Bereitstellen einer iterativen Funktion als Ersatz für einen Stapel von Schichten des neuronalen Netzes umfasst, wobei jeweilige Schichten des Stapels von Schichten, die ersetzt werden, miteinander geteilte Gewichte aufweisen und als Eingabe eine Ausgabe einer vorherigen Schicht oder für eine erste Schicht des Stapels von Schichten eine anfängliche Aktivierung und einen Teil der Eingabe des Stapels von Schichten empfangen. Ferner ist gezeigt, dass das Verfahren 200 in einem Schritt mit dem Titel „ZUGREIFEN AUF TRAININGSDATEN“, das Zugreifen 220 auf Trainingsdaten für das neuronale Netz umfasst. Ferner ist gezeigt, dass das Verfahren 200 in einem Schritt mit dem Titel „ITERATIVES TRAINING DES NEURONALEN NETZES UNTER VERWENDUNG VON TRAININGSDATEN“ das iterative Training 230 des neuronalen Netzes unter Verwendung der Trainingsdaten umfasst, wobei das Training 230 einen Vorwärtsausbreitungsteil und einen Rückwärtsausbreitungsteil umfassen kann. Das Durchführen des Vorwärtsausbreitungsteils durch das Verfahren 200 kann in einem Schritt mit dem Titel „BESTIMMEN VON GLEICHGEWICHTSPUNKT UNTER VERWENDUNG VON NULLSTELLENAUFFINDUNGSALGORITHMUS“ das Bestimmen 240 eines Gleichgewichtspunkts der iterativen Funktion, an dem die iterative Funktion auf einen Fixpunkt konvergiert, wobei das Bestimmen des Gleichgewichtspunkts die Verwendung eines numerischen Nullstellenauffindungsalgorithmus umfasst, um eine Nullstellenlösung für die iterative Funktion minus ihre Eingabe zu finden, und in einem Schritt mit dem Titel „BEREITSTELLEN VON GLEICHGEWICHTSPUNKT ALS ERSATZ FÜR DIE AUSGABE DES STAPELS VON SCHICHTEN“ das Bereitstellen des Gleichgewichtspunkts als Ersatz für eine Ausgabe des Stapels von Schichten im neuronalen Netz umfassen. Das Verfahren 200 kann ferner nach dem Training und in einem Schritt mit dem Titel „AUSGEBEN VON TRAINIERTEM NEURONALEM NETZ“ das Ausgeben 260 eines trainierten neuronalen Netzes umfassen. Die folgenden Beispiele beschreiben das neuronale Netz, einschließlich des Trainings davon, in dem ein Stapel von Schichten durch eine iterative Funktion ersetzt wird und in dem ein Nullstellenauffindungsalgorithmus verwendet wird, um einen Gleichgewichtspunkt zu bestimmen, an dem die iterative Funktion auf einen Fixpunkt konvergiert, wobei das Bestimmen des Gleichgewichtspunkts die Verwendung eines numerischen Nullstellenauffindungsalgorithmus, um eine Nullstellenlösung für die iterative Funktion minus ihre Eingabe zu finden, und in einem Schritt mit dem Titel „BEREITSTELLEN VON GLEICHGEWICHTSPUNKT ALS ERSATZ FÜR DIE AUSGABE DES STAPELS VON SCHICHTEN“ das Bereitstellen 250 des Gleichgewichtspunkts als Ersatz für eine Ausgabe des Stapels von Schichten im neuronalen Netz umfasst. Das Verfahren 200 kann ferner nach dem Training und in einem Schritt mit dem Titel „AUSGEBEN VON TRAINIERTEM NEURONALEM NETZ“ das Ausgeben 260 eines trainierten neuronalen Netzes umfassen. Das Deep Equilibrium (DEQ) neuronale Netz kann ferner in der Patentanmeldung mit dem Titel „DEEP NEURAL NETWORK WITH EQUILIBRIUM SOLVER“ mit der Anmeldungsnummer 16/985,582, eingereicht am 5. August 2020, beschrieben sein, die durch den Hinweis in ihrer Gesamtheit hier aufgenommen wird.
-
3 stellt einen Ablaufplan 300 eines Klassifikationsprozesses eines monotonen Netzes dar. In Schritt 301 kann das System eine Eingabe von einer Eingangsschnittstelle empfangen. Die Eingangsschnittstelle kann eine drahtlose Kommunikation (z. B. Wi-Fi, 4G, 5G, LTE usw.) oder eine verdrahtete Kommunikation (USB, seriell, CAN-BUS usw.) sein. Die Eingangsschnittstelle kann ermöglichen, dass das Netz mit verschiedenen Sensoren wie z. B. einer Kamera, einem Radar, einem Lidar usw. kommuniziert. Die Eingabe kann beliebige Eingabedaten sein, einschließlich, jedoch nicht begrenzt auf Bilddaten. Die Eingabe kann beispielsweise die Pixelwerte eines Bildes umfassen.
-
In Schritt
303 kann das Netz einen Fixpunkt (z. B. Gleichgewichtspunkt) über Vorwärtsausbreitung berechnen. Im monotonen Operatornetz kann das Netz eine spezielle Form der Gleichgewichtsfunktion verwenden, insbesondere die Parametrisierung:
-
Wobei σ eine gewisse nicht-lineare Funktion sein kann, und das in einer speziellen Ausführungsform der proximale Operator einer konvexen Funktion sein kann (effektiv kann dies bedeuten, dass σ mit einer Lipschitz-Konstante, die geringer als oder gleich eins ist, monoton zunimmt, z. B. es nicht expansiv ist); W und U lineare Operatoren wie z. B. eine Matrixmultiplikation oder mehrschichtige Faltung sein können, und b eine Konstante ist. Ein Schlüsselaspekt für das monotone Operatornetz besteht darin, dass W von einer speziellen Form ist, nämlich
-
wobei A und B auch lineare Operatoren wie z. B. Matrixmultiplikationen oder Faltungen sind und m > 0 eine positive Konstante ist, die so ausgewählt ist, dass standardmäßig m = 0,1. In diesem Beispiel sind die Parameter, die das Netz definieren, θ = {A, B, U, b}. Diese Parametrisierung kann garantieren, dass ein eindeutiger Fixpunkt (z. B. Gleichgewichtspunkt) besteht, der die Bedingungen z* = σ(Wz* + Ux + b) erfüllt.
-
Unter Verwendung einer solchen Parametrisierung kann das System zwei verschiedene Methoden verwenden, um den Gleichgewichtspunkt z* = σ(Wz* + Ux + b) zu berechnen. Das Netz kann eine Nullstellenauffindungsprozedur verwenden, um den Fixpunkt zu bestimmen. Die erste Methode kann das Vorwärts-Rückwärts-Aufteilungsverfahren (FB-Aufteilungsverfahren) sein. Die zweite Methode kann ein Peaceman-Rachford-Aufteilungsverfahren (PR-Aufteilungsverfahren) sein. Die Ausführung dieser Verfahren für das monotone Operatornetz ist wie folgt:
-
Algorithmus: FB-Vorwärtslösung (z. B. FB-Aufteilungsverfahren)
-
Initialisieren von z := 0
-
Wiederholen bis zur Konvergenz:
-
-
Zurückgeben von z
-
Algorithmus: PR-Vorwärtslösung (z. B. Peacean-Rachford-Aufteilungsverfahren)
-
Initialisieren von u := 0,z := 0
-
Wiederholen bis zur Konvergenz:
-
-
-
-
-
Zurückgeben von z
-
Für beide Algorithmen oder Verfahren kann α ein freier Parameter analog zu einer Schrittweite in Optimierungsverfahren auf Gradientenbasis sein. Der freie Parameter kann in Anbetracht eines speziellen Netzes abgestimmt werden, um die Konvergenzgeschwindigkeit zu verbessern. Für den PR-Vorwärtslösungsalgorithmus kann das System typischerweise α = 1 setzen, wohingegen für den FB-Vorwärtslösungsalgorithmus kein einziger Wert vorhanden sein kann, der im Allgemeinen am besten funktioniert, und der Parameter für ein spezielles Netz abgestimmt werden kann.
-
Die PR-Vorwärtslösung kann erfordern, dass das System mit der Inversen ((1 + α)I - αW)-1 multiplizieren kann. Falls die Operatoren A und B, die W definieren, dichte Matrizen sind, kann dies über direkte Inversion der Matrix bewerkstelligt werden. Falls jedoch A und B Faltungen sind, kann das System die erforderliche Inverse unter Verwendung einer schnellen Fourier-Transformation berechnen.
-
In Schritt 305 kann das neuronale Netz einen Vorhersagevektor berechnen. Das Netz kann bestimmte mathematische Operationen durchführen, um den Vorhersagevektor zu erhalten. Diese Operationen können in verborgenen Schichten (z. B. zwischen der Eingangsschicht und der Ausgangsschicht) des neuronalen Netzes durchgeführt werden. Der Vorhersagevektor kann durch Nehmen des Gleichgewichtspunkts und Anwenden einer anderen linearen Operation berechnet werden. Der Vorhersagevektor kann berechnet werden als:
-
-
Der Vorhersagevektor kann eine Funktion der Gewichte des neuronalen Netzes sein.
-
In Schritt 307 kann das System eine vorhergesagte Klassifikation ausgeben. Die vorhergesagte Klassifikation kann ein Index eines Maximalwerts von y sein. Die Klassenvorhersage kann das größte Element von y sein. In einem Beispiel kann, wenn der dritte Eintrag von y am größten ist, das System vorhersagen, dass die Klassifikation jene der Klasse ist. Der Klassifikationsschritt kann die Eingangsdaten klassifizieren. In einem Beispiel können die Eingangsdaten ein Bild sein und auf der Basis der Klassifikation kann das neuronale Netz das Bild als jenes eines Fahrzeugs oder Fußgängers klassifizieren. Die Klassifikation der Eingangsdaten kann auch verwendet werden, um das neuronale Netz zu trainieren, wie nachstehend weiter erläutert.
-
4 stellt einen Ablaufplan 400 eines Trainingsprozesses eines monotonen Netzes dar. In Schritt 401 kann das Netz eine Eingabe empfangen, die eine entsprechende Klassifikation der Eingangsdaten umfasst. Die Eingabe kann definiert sein als:
-
-
In der obigen Formel kann xi die Eingabe definieren, während yi die echte Klasse definieren kann, und i kann ein Index über die verschiedenen Beispiele im Trainingssatz sein.
-
In Schritt 403 kann das Netz bestimmen, ob eine Wiederholung für die Vorhersage erforderlich ist. Das System kann das Wiederholen stoppen, wenn ein Parameter von Werten konvergiert oder wenn der Verlust aufhört abzunehmen. Wenn ein Szenario auftritt, kann das System die Wiederholung von jedem der Schritte im Trainingsprozess stoppen.
-
In Schritt 405 kann das Netz eine Teilmenge der vollen Trainingsdaten auswählen, die als Minicharge B bezeichnet wird.
-
In Schritt 407 kann das Netz einen Vorwärtsdurchlauf ausführen, um z*i und ŷi; zu berechnen. Das Netz kann eine Vorwärtsdurchlaufberechnung ausführen, um eine Klassifikation jedes Index einer Minicharge auszugeben. Folglich können die Schritte von 3 für jeden Index der Minicharge durchgeführt werden.
-
In Schritt 409 kann das System einen Verlust berechnen. Der Verlust kann unter Verwendung eines Kreuzentropieverlusts berechnet werden. Der Verlust kann über die Gleichung berechnet werden:
-
-
Der Kreuzentropieverlust kann die Leistung eines Klassifikationsmodells messen, dessen Ausgabe ein Wahrscheinlichkeitswert zwischen zwei Werten (z. B. zwischen 0 und 1) ist. Der Kreuzentropieverlust kann zunehmen, wenn die vorhergesagte Wahrscheinlichkeit von der tatsächlichen Bezeichnung abweicht. Ein perfektes Modell hätte beispielsweise einen Verlust von null.
-
In Schritt 411 kann das System die Ableitungen des Verlusts in Bezug auf die Netzparameter berechnen. Die Berechnung des Rückwärtsdurchlaufs kann erfordern, dass das System die Ableitung des Verlusts in Bezug auf die Netzparameter berechnen kann. Das heißt, das System kann Folgendes berechnen müssen:
-
-
Das System kann beispielsweise mit
links multiplizieren müssen (der verbleibende Term
wird durch existierende automatische Differenzierungswerkzeuge leicht berechnet). Im monotonen Operatorgerüst gibt es analoge Verfahren zum Durchführen dieser Multiplikation hinsichtlich des Vorwärtsdurchlaufs. Insbesondere können in Anbetracht von
die folgenden zwei nachstehenden Algorithmen das erforderliche Produkt erzeugen. Die Ausführung dieser Verfahren für das monotone Operatornetz kann wie folgt sein:
-
Algorithmus: FB-Vorwärtslösung (z. B. FB-Aufteilungsverfahren)
-
Initialisieren von u := 0
-
Es soll gelten d = (1 - σ'(Wz* + Ux + b))/σ'(Wz* + Ux + b), wobei σ' die Ableitung von σ bezeichnet (wobei wir definieren di = ∞ falls σ'(Wz* + Ux + b) = 0)
-
Wiederholen:
-
-
für alle i (wobei die Zuweisung u
i := 0 falls d
i = ∞ ist).
-
Zurückgeben von
(wobei die Multiplikation mit
durch einen automatischen Standarddifferenzierungswerkzeugsatz durchgeführt wird)
-
Ein anderer Algorithmus: PR-Rückwärtslösung (z. B. Peacean-Rachford-Aufteilungsverfahren)
-
Initialisieren von u := 0, ν := 0
-
Es soll gelten d = (1 - σ'(Wz* + Ux + b))/σ'(Wz* + Ux + b) wobei σ' die Ableitung von σ bezeichnet (wobei wir definieren di = ∞ falls σ'{Wz* + Ux + b) = 0)
-
Wiederholen:
-
-
-
-
für alle i (wobei die Zuweisung u
i := 0 falls d
i = ∞ ist)
-
Zurückgeben von
(wobei die Multiplikation mit
durch einen automatischen Standarddifferenzierungswerkzeugsatz durchgeführt wird).
-
Wie vorher kann α ein Hyperparameter sein, der für die PR-Variante auf α = 1 gesetzt werden kann und für die FB-Varianten auf spezielle Architekturen abgestimmt werden muss, um die Anzahl von erforderlichen Iterationen zu minimieren. Es ist garantiert, dass diese Algorithmen auf die eindeutige Lösung des Rückwärtsdurchlaufs konvergieren. Wiederum können für Fälle, in denen W ein strukturierter faltender Operator ist, die erforderlichen Inversen unter Verwendung der schnellen Fourier-Transformation durchgeführt werden.
-
In Schritt 413 kann das System ihre Parameter unter Verwendung ihres Gradienten einstellen. Der Gradient kann definiert sein als:
-
-
In Schritt 415 kann das System endgültige Netzparameter ausgeben. Die endgültigen Netzparameter können W, u, b,, Wy, by usw. umfassen. Die Parameter können die verschiedenen Gewichte von Matrizen sein, wenn das Netz vollständig verbunden ist, oder können Gewichte eines faltenden Netzes für ein faltendes Netz sein.
-
5 stellt ein schematisches Diagramm einer Wechselwirkung zwischen einer computergesteuerten Maschine 10 und einem Steuersystem 12 dar. Die computergesteuerte Maschine 10 umfasst einen Aktuator 14 und einen Sensor 16. Der Aktuator 14 kann einen oder mehrere Aktuatoren umfassen und der Sensor 16 kann einen oder mehrere Sensoren umfassen. Der Sensor 16 ist dazu konfiguriert, eine Bedingung der computergesteuerten Maschine 10 zu erfassen. Der Sensor 16 kann dazu konfiguriert sein, die erfasste Bedingung in Sensorsignale 18 zu codieren und die Sensorsignale 18 zum Steuersystem 12 zu übertragen. Nicht begrenzende Beispiele des Sensors 16 umfassen Video-, Radar-, LiDAR-, Ultraschall- und Bewegungssensoren. In einer Ausführungsform ist der Sensor 16 ein optischer Sensor, der dazu konfiguriert ist, optische Bilder einer Umgebung nahe der computergesteuerten Maschine 10 zu erfassen.
-
Das Steuersystem 12 ist dazu konfiguriert, Sensorsignale 18 von der computergesteuerten Maschine 10 zu empfangen. Wie nachstehend dargelegt, kann das Steuersystem 12 ferner dazu konfiguriert sein, Aktuatorsteuerbefehle 20 in Abhängigkeit von den Sensorsignalen zu berechnen und die Aktuatorsteuerbefehle 20 zum Aktuator 14 der computergesteuerten Maschine 10 zu übertragen.
-
Wie in 5 gezeigt, umfasst das Steuersystem 12 eine Empfangseinheit 22. Die Empfangseinheit 22 kann dazu konfiguriert sein, Sensorsignale 18 vom Sensor 30 zu empfangen und die Sensorsignale 18 in Eingangssignale x zu transformieren. In einer alternativen Ausführungsform werden die Sensorsignale 18 direkt als Eingangssignale x ohne Empfangseinheit 22 empfangen. Jedes Eingangssignal x kann ein Teil jedes Sensorsignals 18 sein. Die Empfangseinheit 22 kann dazu konfiguriert sein, jedes Sensorsignal 18 zu verarbeiten, um jedes Eingangssignal x zu erzeugen. Das Eingangssignal x kann Daten umfassen, die einem durch den Sensor 16 aufgezeichneten Bild entsprechen.
-
Das Steuersystem 12 umfasst einen Klassifikator 24. Der Klassifikator 24 kann dazu konfiguriert sein, Eingangssignale x in eine oder mehrere Bezeichnungen unter Verwendung eines Maschinenlernalgorithmus (ML-Algorithmus), wie z. B. eines vorstehend beschriebenen neuronalen Netzes, zu klassifizieren. Der Klassifikator 24 ist dazu konfiguriert, durch Parameter parametrisiert zu werden, wie z. B. die vorstehend beschriebenen (z. B. Parameter 0). Die Parameter 0 können in einem nichtflüchtigen Speicher 26 gespeichert und durch diesen bereitgestellt werden. Der Klassifikator 24 ist dazu konfiguriert, Ausgangssignale y aus den Eingangssignalen x zu bestimmen. Jedes Ausgangssignal y umfasst Informationen, die jedem Eingangssignal x eine oder mehrere Bezeichnungen zuweisen. Der Klassifikator 24 kann Ausgangssignale y zu einer Umwandlungseinheit 28 übertragen. Die Umwandlungseinheit 28 ist dazu konfiguriert, Ausgangssignale y in Aktuatorsteuerbefehle 20 umzuwandeln. Das Steuersystem 12 ist dazu konfiguriert, die Aktuatorsteuerbefehle 24 zum Aktuator 14 zu übertragen, der dazu konfiguriert ist, die computergesteuerte Maschine 10 in Reaktion auf die Aktuatorsteuerbefehle 20 zu betätigen. In einer anderen Ausführungsform ist der Aktuator 14 dazu konfiguriert, die computergesteuerte Maschine 10 direkt auf der Basis der Ausgangssignale y zu betätigen.
-
Beim Empfang der Aktuatorsteuerbefehle 20 durch den Aktuator 14 ist der Aktuator 14 dazu konfiguriert, eine Handlung auszuführen, die dem zugehörigen Aktuatorsteuerbefehl 20 entspricht. Der Aktuator 14 kann eine Steuerlogik umfassen, die dazu konfiguriert ist, Aktuatorsteuerbefehle 20 in einen zweiten Aktuatorsteuerbefehl zu transformieren, der verwendet wird, um den Aktuator 14 zu steuern. In einer oder mehreren Ausführungsformen können die Aktuatorsteuerbefehle 20 verwendet werden, um anstelle von oder zusätzlich zu einem Aktuator eine Anzeige zu steuern.
-
In einer anderen Ausführungsform umfasst das Steuersystem 12 einen Sensor 16 anstelle von oder zusätzlich zur computergesteuerten Maschine 10 mit dem Sensor 16. Das Steuersystem 12 kann auch einen Aktuator 14 anstelle von oder zusätzlich zur computergesteuerten Maschine 10 mit dem Aktuator 10 umfassen.
-
Wie in 5 gezeigt, umfasst das Steuersystem 12 auch einen Prozessor 30 und einen Arbeitsspeicher 32. Der Prozessor 30 kann einen oder mehrere Prozessoren umfassen. Der Arbeitsspeicher 32 kann eine oder mehrere Arbeitsspeichervorrichtungen umfassen. Der Klassifikator 24 (z. B. ML-Algorithmen) von einer oder mehreren Ausführungsformen kann durch das Steuersystem 12 implementiert werden, das einen nichtflüchtigen Speicher 26, einen Prozessor 30 und einen Arbeitsspeicher 32 umfasst.
-
Der nichtflüchtige Speicher 26 kann eine oder mehrere dauerhafte Datenspeichervorrichtungen wie z. B. ein Festplattenlaufwerk, ein optisches Laufwerk, ein Bandlaufwerk, eine nichtflüchtige Halbleitervorrichtung, einen Cloud-Speicher oder irgendeine andere Vorrichtung umfassen, die in der Lage ist, Informationen dauerhaft zu speichern. Der Prozessor 30 kann eine oder mehrere Vorrichtungen umfassen, die aus Hochleistungsrechensystemen (HPC-Systemen) ausgewählt sind, einschließlich Hochleistungskernen, Mikroprozessoren, Mikrocontrollern, Digitalsignalprozessoren, Mikrocomputern, Zentraleinheiten, anwenderprogrammierbaren Verknüpfungsfeldern, programmierbaren Logikvorrichtungen, Zustandsmaschinen, Logikschaltungen, analogen Schaltungen, digitalen Schaltungen oder beliebigen anderen Vorrichtungen, die Signale (analog oder digital) auf der Basis von computerausführbaren Anweisungen bearbeiten, die sich im Arbeitsspeicher 32 befinden. Der Arbeitsspeicher 32 kann eine einzelne Arbeitsspeichervorrichtung oder eine Anzahl von Arbeitsspeichervorrichtungen umfassen, einschließlich, jedoch nicht begrenzt auf einen Direktzugriffsarbeitsspeicher (RAM), einen flüchtigen Arbeitsspeicher, einen nichtflüchtigen Arbeitsspeicher, einen statischen Direktzugriffsarbeitsspeicher (SRAM), einen dynamischen Direktzugriffsarbeitsspeicher (DRAM), einen Flash-Arbeitsspeicher, einen Cache-Arbeitsspeicher oder irgendeine andere Vorrichtung, die in der Lage ist, Informationen zu speichern.
-
Der Prozessor 30 kann dazu konfiguriert sein, computerausführbare Anweisungen, die sich im nichtflüchtigen Speicher 26 befinden und einen oder mehrere ML-Algorithmen und/oder Methodologien von einer oder mehreren Ausführungsformen verkörpern, in den Arbeitsspeicher 32 zu lesen und auszuführen. Der nichtflüchtige Speicher 26 kann ein oder mehrere Betriebssysteme und Anwendungen umfassen. Der nichtflüchtige Speicher 26 kann eine kompilierte und/oder interpretierte Form von Computerprogrammen speichern, die unter Verwendung einer Vielfalt von Programmiersprachen und/oder Technologien erstellt werden, einschließlich ohne Begrenzung und entweder allein oder in Kombination Java, C, C++, C#, Objective C, Fortran, Pascal, Java Script, Python, Perl und PL/SQL.
-
Bei der Ausführung durch den Prozessor 30 können die computerausführbaren Anweisungen des nichtflüchtigen Speichers 26 bewirken, dass das Steuersystem 12 einen oder mehrere der ML-Algorithmen und/oder der Methodologien, wie hier offenbart, implementiert. Der nichtflüchtige Speicher 26 kann auch ML-Daten (einschließlich Datenparametern), die die Funktionen, Merkmale und Prozesse der einen oder mehreren hier beschriebenen Ausführungsformen unterstützen, umfassen.
-
Der Programmcode, der die hier beschriebenen Algorithmen und/oder Methodologien verkörpert, ist in der Lage, individuell oder gemeinsam als Programmprodukt in einer Vielfalt von verschiedenen Formen verteilt zu werden. Der Programmcode kann unter Verwendung eines computerlesbaren Speichermediums mit computerlesbaren Programmanweisungen darauf zum Bewirken, dass ein Prozessor Aspekte von einer oder mehreren Ausführungsformen ausführt, verteilt werden. Computerlesbare Speichermedien, die von Natur aus nichttransitorisch sind, können flüchtige und nichtflüchtige und entnehmbare und nicht entnehmbare konkrete Medien umfassen, die in irgendeinem Verfahren oder irgendeiner Technologie für die Speicherung von Informationen implementiert werden, wie z. B. computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten. Computerlesbare Speichermedien können ferner einen RAM, ROM, einen löschbaren programmierbaren Festwertarbeitsspeicher (EPROM), einen elektrisch löschbaren programmierbaren Festwertarbeitsspeicher (EEPROM), einen Flash-Arbeitsspeicher oder eine andere Halbleiterarbeitsspeichertechnologie, einen tragbaren Kompaktdiskfestwertarbeitsspeicher (CD-ROM) oder einen anderen optischen Speicher, Magnetkassetten, ein Magnetband, einen Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder irgendein anderes Medium, das verwendet werden kann, um die gewünschten Informationen zu speichern, und das durch einen Computer gelesen werden kann, umfassen. Computerlesbare Programmanweisungen können auf einen Computer, einen anderen Typ von programmierbarer Datenverarbeitungseinrichtung oder eine andere Vorrichtung von einem computerlesbaren Speichermedium oder auf einen externen Computer oder eine externe Speichervorrichtung über ein Netz heruntergeladen werden.
-
Computerlesbare Programmanweisungen, die in einem computerlesbaren Medium gespeichert sind, können verwendet werden, um einen Computer, andere Typen einer programmierbaren Datenverarbeitungseinrichtung oder andere Vorrichtungen anzuweisen, in einer speziellen Weise zu funktionieren, so dass die im computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsgegenstand mit Anweisungen erzeugen, die die Funktionen, Handlungen und/oder Operationen implementieren, die in den Ablaufplänen oder Ablaufdiagrammen angegeben sind. In bestimmten alternativen Ausführungsformen können die Funktionen, Handlungen und/oder Operationen, die in den Ablaufplänen und/oder Ablaufdiagrammen angegeben sind, konsistent mit einer oder mehreren Ausführungsformen umgeordnet, seriell verarbeitet und/oder gleichzeitig verarbeitet werden. Überdies können beliebige der Ablaufpläne und/oder Ablaufdiagramme konsistent mit einer oder mehreren Ausführungsformen mehr oder weniger Knoten oder Blöcke als die dargestellten umfassen.
-
Die Prozesse, Verfahren oder Algorithmen können ganz oder teilweise unter Verwendung von geeigneten Hardware-Komponenten, wie z. B. anwendungsspezifischen integrierten Schaltungen (ASICs), anwenderprogrammierbaren Verknüpfungsfeldern (FPGAs), Zustandsmaschinen, Controllern oder anderen Hardware-Komponenten oder Hardware-Vorrichtungen oder einer Kombination von Hardware-, Software- und Firmware-Komponenten, verkörpert sein.
-
6 stellt ein schematisches Diagramm eines Steuersystems 12 dar, das dazu konfiguriert ist, ein Fahrzeug 50 zu steuern, das ein zumindest teilweise autonomes Fahrzeug oder ein zumindest teilweise autonomer Roboter sein kann. Wie in 5 gezeigt, umfasst das Fahrzeug 50 einen Aktuator 14 und einen Sensor 16. Der Sensor 16 kann einen oder mehrere Videosensoren, Radarsensoren, Ultraschallsensoren, LiDAR-Sensoren und/oder Positionssensoren (z. B. GPS) umfassen. Einer oder mehrere des einen oder der mehreren speziellen Sensoren können in das Fahrzeug 50 integriert sein. Alternativ oder zusätzlich zu einem oder mehreren speziellen Sensoren, die vorstehend identifiziert sind, kann der Sensor 16 ein Software-Modul umfassen, das dazu konfiguriert ist, bei der Ausführung einen Zustand des Aktuators 14 zu bestimmen. Ein nicht begrenzendes Beispiel eines Software-Moduls umfasst ein Wetterinformations-Software-Modul, das dazu konfiguriert ist, einen gegenwärtigen oder zukünftigen Zustand des Wetters nahe dem Fahrzeug 50 oder an einem anderen Ort zu bestimmen.
-
Der Klassifikator 24 des Steuersystems 12 des Fahrzeugs 50 kann dazu konfiguriert sein, Objekte in der Nähe des Fahrzeugs 50 in Abhängigkeit von den Eingangssignalen x zu detektieren. In einer solchen Ausführungsform kann das Ausgangssignal y Informationen umfassen, die die Nähe der Objekte zum Fahrzeug 50 charakterisieren. Der Aktuatorsteuerbefehl 20 kann gemäß diesen Informationen bestimmt werden. Der Aktuatorsteuerbefehl 20 kann verwendet werden, um Kollisionen mit den detektierten Objekten zu vermeiden.
-
In Ausführungsformen, in denen das Fahrzeug 50 ein zumindest teilweise autonomes Fahrzeug ist, kann der Aktuator 14 in einer Bremse, einem Antriebssystem, einer Kraftmaschine, einem Antriebsstrang oder einer Lenkung des Fahrzeugs 50 verkörpert sein. Die Aktuatorsteuerbefehle 20 können derart bestimmt werden, dass der Aktuator 14 derart gesteuert wird, dass das Fahrzeug 50 Kollisionen mit detektierten Objekten vermeidet. Detektierte Objekte können auch gemäß dem klassifiziert werden, was der Klassifikator 24 erachtet, was sie am wahrscheinlichsten sind, wie z. B. Fußgänger oder Bäume. Die Aktuatorsteuerbefehle 20 können in Abhängigkeit von der Klassifikation bestimmt werden.
-
In anderen Ausführungsformen, in denen das Fahrzeug 50 ein zumindest teilweise autonomer Roboter ist, kann das Fahrzeug 50 ein mobiler Roboter sein, der dazu konfiguriert ist, eine oder mehrere Funktionen auszuführen, wie z. B. Fliegen, Schwimmen, Tauchen und Schreiten. Der mobile Roboter kann ein zumindest teilweise autonomer Rasenmäher oder ein zumindest teilweise autonomer Reinigungsroboter sein. In solchen Ausführungsformen kann der Aktuatorsteuerbefehl 20 derart bestimmt werden, dass eine Antriebseinheit, eine Lenkeinheit und/oder eine Bremseinheit des mobilen Roboters derart gesteuert werden können, dass der mobile Roboter Kollisionen mit identifizierten Objekten vermeiden kann.
-
In einer anderen Ausführungsform ist das Fahrzeug 50 ein zumindest teilweise autonomer Roboter in Form eines Gartenarbeitsroboters. In einer solchen Ausführungsform kann das Fahrzeug 50 einen optischen Sensor als Sensor 16 verwenden, um einen Zustand vom Pflanzen in einer Umgebung nahe dem Fahrzeug 50 zu bestimmen. Der Aktuator 14 kann eine Düse sein, die dazu konfiguriert ist, Chemikalien zu sprühen. In Abhängigkeit von einer identifizierten Spezies und/oder einem identifizierten Zustand der Pflanzen kann der Aktuatorsteuerbefehl 20 bestimmt werden, um zu bewirken, dass der Aktuator 14 die Pflanzen mit einer geeigneten Menge von geeigneten Chemikalien besprüht.
-
Das Instrument 50 kann ein zumindest teilweise autonomer Roboter in Form eines Haushaltsgeräts sein. Nicht begrenzende Beispiele von Haushaltsgeräten umfassen eine Waschmaschine, einen Herd, einen Ofen, eine Mikrowelle oder eine Geschirrspülmaschine. In einem solchen Instrument 50 kann der Sensor 16 ein optischer Sensor sein, der dazu konfiguriert ist, einen Zustand eines Objekts zu detektieren, das einer Verarbeitung durch das Haushaltsgerät unterzogen werden soll. Im Fall, dass das Haushaltsgerät eine Waschmaschine ist, kann der Sensor 16 beispielsweise einen Zustand der Wäsche innerhalb der Waschmaschine detektieren. Der Aktuatorsteuerbefehl 20 kann auf der Basis des detektierten Zustandes der Wäsche bestimmt werden.
-
7 stellt ein schematisches Diagramm eines Steuersystems 12 dar, das dazu konfiguriert ist, eine Fertigungsmaschine 100 wie z. B. einen Stanzschneider, einen Schneider oder einen Tieflochbohrer des Fertigungssystems 102 wie z. B. eines Teils einer Produktionslinie zu steuern. Das Steuersystem 12 kann dazu konfiguriert sein, den Aktuator 14 zu steuern, der dazu konfiguriert ist, die Fertigungsmaschine 100 zu steuern.
-
Der Sensor 16 der Fertigungsmaschine 100 kann ein optischer Sensor sein, der dazu konfiguriert ist, eine oder mehrere Eigenschaften eines gefertigten Produkts 104 zu erfassen. Der Klassifikator 24 kann dazu konfiguriert sein, einen Zustand des gefertigten Produkts 104 von einer oder mehreren der erfassten Eigenschaften zu bestimmen. Der Aktuator 14 kann dazu konfiguriert sein, die Fertigungsmaschine 100 in Abhängigkeit von dem bestimmten Zustand des gefertigten Produkts 104 für einen anschließenden Fertigungsschritt des gefertigten Produkts 104 zu steuern. Der Aktuator 14 kann dazu konfiguriert sein, Funktionen der Fertigungsmaschine 100 am anschließenden gefertigten Produkt 106 der Fertigungsmaschine 100 in Abhängigkeit von dem bestimmten Zustand des gefertigten Produkts 104 zu steuern.
-
8 stellt ein schematisches Diagramm eines Steuersystems 12 dar, das dazu konfiguriert ist, ein Elektrowerkzeug 150, wie z. B. eine elektrische Bohrmaschine oder einen Kraftschrauber, zu steuern, das einen zumindest teilweise autonomen Modus aufweist. Das Steuersystem 12 kann dazu konfiguriert sein, den Aktuator 14 zu steuern, der dazu konfiguriert ist, das Elektrowerkzeug 150 zu steuern.
-
Der Sensor 16 des Elektrowerkzeugs 150 kann ein optischer Sensor sein, der dazu konfiguriert ist, eine oder mehrere Eigenschaften einer Arbeitsoberfläche 152 und/oder einer Befestigungsvorrichtung 154, die in die Arbeitsoberfläche 152 getrieben wird, zu erfassen. Der Klassifikator 24 kann dazu konfiguriert sein, einen Zustand der Arbeitsoberfläche 152 und/oder der Befestigungsvorrichtung 154 relativ zur Arbeitsoberfläche 152 aus einer oder mehreren der erfassten Eigenschaften zu bestimmen. Der Zustand kann sein, dass die Befestigungsvorrichtung 154 mit der Arbeitsoberfläche 152 bündig ist. Der Zustand kann alternativ eine Härte der Arbeitsoberfläche 154 sein. Der Aktuator 14 kann dazu konfiguriert sein, das Elektrowerkzeug 150 derart zu steuern, dass die Antriebsfunktion des Elektrowerkzeugs 150 in Abhängigkeit von dem bestimmten Zustand der Befestigungsvorrichtung 154 relativ zur Arbeitsoberfläche 152 oder einer oder mehreren erfassten Eigenschaften der Arbeitsoberfläche 154 eingestellt wird. Der Aktuator 14 kann beispielsweise die Antriebsfunktion unterbrechen, wenn der Zustand der Befestigungsvorrichtung 154 relativ zur Arbeitsoberfläche 152 bündig ist. Als anderes nicht begrenzendes Beispiel kann der Aktuator 14 ein zusätzliches oder geringeres Drehmoment in Abhängigkeit von der Härte der Arbeitsoberfläche 152 aufbringen.
-
9 stellt ein schematisches Diagramm eines Steuersystems 12 dar, das dazu konfiguriert ist, einen automatisierten persönlichen Assistenten 200 zu steuern. Das Steuersystem 12 kann dazu konfiguriert sein, den Aktuator 14 zu steuern, der dazu konfiguriert ist, den automatisierten persönlichen Assistenten 200 zu steuern. Der automatisierte persönliche Assistent 200 kann dazu konfiguriert sein, ein Haushaltsgerät wie z. B. eine Waschmaschine, einen Herd, einen Ofen, eine Mikrowelle oder eine Geschirrspülmaschine zu steuern.
-
Der Sensor 16 kann ein optischer Sensor und/oder ein Audiosensor sein. Der optische Sensor kann dazu konfiguriert sein, Videobilder von Gesten 204 eines Benutzers 202 zu empfangen. Der Audiosensor kann dazu konfiguriert sein, einen Sprachbefehl des Benutzers 202 zu empfangen.
-
Das Steuersystem 12 des automatisierten persönlichen Assistenten 200 kann dazu konfiguriert sein, Aktuatorsteuerbefehle 20 zu bestimmen, die dazu konfiguriert sind, das System 12 zu steuern. Das Steuersystem 12 kann dazu konfiguriert sein, Aktuatorsteuerbefehle 20 gemäß Sensorsignalen 18 des Sensors 16 zu bestimmen. Der automatisierte persönliche Assistent 200 ist dazu konfiguriert, Sensorsignale 18 zum Steuersystem 12 zu übertragen. Der Klassifikator 24 des Steuersystems 12 kann dazu konfiguriert sein, einen Gestenerkennungsalgorithmus auszuführen, um eine durch den Benutzer 202 gemachte Geste 204 zu identifizieren, Aktuatorsteuerbefehle 20 zu bestimmen, und die Aktuatorsteuerbefehle 20 zum Aktuator 14 zu übertragen. Der Klassifikator 24 kann dazu konfiguriert sein, Informationen von einem nichtflüchtigen Speicher in Reaktion auf die Geste 204 abzurufen und die abgerufenen Informationen in einer für den Empfang durch den Benutzer 202 geeigneten Form auszugeben.
-
10 stellt ein schematisches Diagramm eines Steuersystems 12 dar, das dazu konfiguriert ist, ein Überwachungssystem 250 zu steuern. Das Überwachungssystem 250 kann dazu konfiguriert sein, den Zugang durch eine Tür 252 physikalisch zu steuern. Der Sensor 16 kann dazu konfiguriert sein, eine Szene zu detektieren, die beim Entscheiden, ob Zugang gewährt wird, relevant ist. Der Sensor 16 kann ein optischer Sensor sein, der dazu konfiguriert ist, Bild- und/oder Videodaten zu erzeugen und zu übertragen. Solche Daten können durch das Steuersystem 12 verwendet werden, um das Gesicht einer Person zu detektieren.
-
Der Klassifikator 24 des Steuersystems 12 des Überwachungssystems 250 kann dazu konfiguriert sein, die Bild- und/oder Videodaten durch Vergleichen von Identitäten von bekannten Leuten, die im nichtflüchtigen Speicher 26 gespeichert sind, zu interpretieren, wodurch eine Identität einer Person bestimmt wird. Der Klassifikator 12 kann dazu konfiguriert sein, einen Aktuatorsteuerbefehl 20 in Reaktion auf die Interpretation der Bild- und/oder Videodaten zu erzeugen. Das Steuersystem 12 ist dazu konfiguriert, den Aktuatorsteuerbefehl 20 zum Aktuator 12 zu übertragen. In dieser Ausführungsform kann der Aktuator 12 dazu konfiguriert sein, die Tür 252 in Reaktion auf den Aktuatorsteuerbefehl 20 zu verriegeln oder zu entriegeln. In anderen Ausführungsformen ist eine nicht physikalische, logische Zugangssteuerung auch möglich.
-
Das Überwachungssystem 250 kann auch ein Beobachtungssystem sein. In einer solchen Ausführungsform kann der Sensor 16 ein optischer Sensor sein, der dazu konfiguriert ist, eine Szene zu detektieren, die unter Beobachtung steht, und das Steuersystem 12 ist dazu konfiguriert, eine Anzeige 254 zu steuern. Der Klassifikator 24 ist dazu konfiguriert, eine Klassifikation einer Szene zu bestimmen, z. B. ob die durch den Sensor 16 detektierte Szene verdächtig ist. Das Steuersystem 12 ist dazu konfiguriert, einen Aktuatorsteuerbefehl 20 zur Anzeige 254 in Reaktion auf die Klassifikation zu übertragen. Die Anzeige 254 kann dazu konfiguriert sein, den angezeigten Inhalt in Reaktion auf den Aktuatorsteuerbefehl 20 einzustellen. Die Anzeige 254 kann beispielsweise ein Objekt hervorheben, das durch den Klassifikator 24 als verdächtig erachtet wird.
-
11 stellt ein schematisches Diagramm eines Steuersystems 12 dar, das dazu konfiguriert ist, ein Abbildungssystem 300, beispielsweise eine MRI-Einrichtung, eine Röntgenstrahlabbildungseinrichtung oder eine Ultraschalleinrichtung, zu steuern. Der Sensor 16 kann beispielsweise ein Abbildungssensor sein. Der Klassifikator 24 kann dazu konfiguriert sein, eine Klassifikation von Allem oder einem Teil des erfassten Bildes zu bestimmen. Der Klassifikator 24 kann dazu konfiguriert sein, einen Aktuatorsteuerbefehl 20 in Reaktion auf die Klassifikation, die durch das trainierte neuronale Netz erhalten wird, zu bestimmen oder auszuwählen. Der Klassifikator 24 kann beispielsweise einen Bereich eines erfassten Bildes als potentiell anomal interpretieren. In diesem Fall kann der Aktuatorsteuerbefehl 20 bestimmt oder ausgewählt werden, um zu bewirken, dass die Anzeige 302 die Abbildung und Hervorhebung des potentiell anomalen Bereichs anzeigt.
-
Die Prozesse, Verfahren oder Algorithmen, die hier offenbart sind, können zu einer Verarbeitungsvorrichtung, einem Controller oder Computer, der irgendeine existierende programmierbare elektronische Steuereinheit oder zweckgebundene elektronische Steuereinheit umfassen kann, lieferbar sein/durch diesen implementiert werden. Ebenso können die Prozesse, Verfahren oder Algorithmen als Daten und Anweisungen, die durch einen Controller oder Computer ausführbar sind, in vielen Formen gespeichert werden, einschließlich, jedoch nicht begrenzt auf Informationen, die dauerhaft auf nicht beschreibbaren Speichermedien wie z. B. ROM-Vorrichtungen gespeichert sind, und Informationen, die veränderbar auf beschreibbaren Speichermedien wie z. B. Disketten, Magnetbändern, CDs, RAM-Vorrichtungen und anderen magnetischen und optischen Medien gespeichert sind. Die Prozesse, Verfahren oder Algorithmen können auch in einem durch Software ausführbaren Objekt implementiert werden. Alternativ können die Prozesse, Verfahren oder Algorithmen ganz oder teilweise unter Verwendung von geeigneten Hardware-Komponenten verkörpert sein, wie z. B. anwendungsspezifischen integrierten Schaltungen (ASICs), anwenderprogrammierbaren Verknüpfungsfeldern (FPGAs), Zustandsmaschinen, Controllern oder anderen Hardware-Komponenten oder Hardware-Vorrichtungen oder einer Kombination von Hardware-, Software- und Firmware-Komponenten.
-
Obwohl beispielhafte Ausführungsformen vorstehend beschrieben sind, ist nicht beabsichtigt, dass diese Ausführungsformen alle möglichen Formen beschreiben, die durch die Ansprüche umfasst sind. Die in der Patentbeschreibung verwendeten Worte sind vielmehr Worte zur Beschreibung als zur Begrenzung und es ist selbstverständlich, dass verschiedene Änderungen durchgeführt werden, ohne vom Gedanken und Schutzbereich der Offenbarung abzuweichen. Wie vorher beschrieben, können die Merkmale von verschiedenen Ausführungsformen kombiniert werden, um weitere Ausführungsformen der Erfindung zu bilden, die nicht explizit beschrieben oder dargestellt sein können. Obwohl verschiedene Ausführungsformen als Vorteile schaffend oder bevorzugt gegenüber anderen Ausführungsformen oder Implementierungen des Standes der Technik in Bezug auf eine oder mehrere gewünschte Eigenschaften beschrieben worden sein könnten, erkennt der Fachmann auf dem Gebiet, dass ein oder mehrere Merkmale oder Eigenschaften beeinträchtigt werden können, um gewünschte Gesamtsystemattribute zu erreichen, die von der speziellen Anwendung und Implementierung abhängen. Diese Attribute können umfassen, sind jedoch nicht begrenzt auf Kosten, Festigkeit, Haltbarkeit, Lebenszykluskosten, Vermarktungsfähigkeit, Aussehen, Verpackung, Größe, Wartbarkeit, Gewicht, Herstellbarkeit, leichte Montage usw. An sich liegen in dem Umfang, in dem beliebige Ausführungsformen als weniger erwünscht als andere Ausführungsformen oder Implementierungen des Standes der Technik in Bezug auf eine oder mehrere Eigenschaften beschrieben sind, diese Ausführungsformen nicht außerhalb des Schutzbereichs der Offenbarung und können für spezielle Anwendungen erwünscht sein.