-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung bezieht sich auf Computersysteme, die die Fähigkeit für künstliche Intelligenz aufweisen, die neuronale Netze enthalten.
-
HINTERGRUND
-
Ein DEQ-Modell (Modell mit tiefem Gleichgewicht) kann eine Vorwärtsfunktion ƒ definieren, so dass der Vorwärtsdurchlauf des Netzes durch zuerst Lösen für einen Gleichgewichtspunkt z* = f(z*, x; θ) gegeben ist. Der Rückwärtsdurchlauf kann weitgehend dem Multiplizieren mit der Jacobi-Determinante
die in ihrer exakten Form die Lösung eines linearen Systems erfordert, entsprechen. Es sind drei primäre Probleme bei der Entwicklung eines DEQ-Modells vorhanden. Eines kann das Definieren von ƒ sein, so dass der feste Punkt z* existiert und idealerweise eindeutig ist. Das zweite kann das Definieren einer Wurzelfindungsprozedur, die den festen Punkt z* in dem Vorwärtsdurchlauf finden kann, sein. Das dritte kann das Definieren eines Rückwärtsdurchlaufs, um die Multiplikation mit der Jacobi-Determinante
zu lösen, sein.
-
Frühere Verfahren für tiefes Lernen für Aufgaben mit Computersehen erfüllen die erste Eigenschaft dadurch, dass sie Schichten aufweisen, die Merkmale mit speziellen Auflösungen kombinieren und das Bild allmählich abwärtsabtasten, jedoch sind diese Schichten explizit definiert, so dass Speicheranforderungen mit der Anzahl der Schichten ansteigen. Andererseits können DEQ-Modelle größere Netze mit einem kleineren Speicherfußabdruck simulieren, lernen jedoch nicht auf hierarchische Weise. Die DEQ-Modelle können in dem Vorwärts- & Rückwärtsdurchlauf durchgehend die gleiche Auflösung beibehalten und definieren nicht mehrere Schichten explizit, und somit können die DEQ-Modelle Schwierigkeiten haben, an Zwischenpunkten in dem Netz abwärtsabzutasten.
-
ZUSAMMENFASSUNG
-
Gemäß einer Ausführungsform enthält ein computerimplementiertes Verfahren für eine Klassifizierung und zum Trainieren eines neuronalen Netzes das Empfangen von Eingabe in dem neuronalen Netz, wobei die Eingabe mehrere Auflösungseingaben mit variierenden Auflösungen enthält, Ausgeben mehrerer Merkmalstensoren für jede entsprechende Auflösung aus den mehreren Auflösungseingaben, Vereinigen der mehreren Merkmalstentoren unter Verwendung von Aufwärtsabtastung oder Abwärtsabtastung für die variierenden Auflösungen, Verwenden eines Gleichgewichtsauflösers zum Identifizieren eines oder mehrerer Vorhersagevektoren aus den mehreren Merkmalstensoren und Ausgaben eines Verlusts in Reaktion auf den einen oder die mehreren Vorhersagevektoren.
-
Gemäß einer zweiten Ausführungsform enthält ein computerimplementiertes Verfahren für eine Klassifizierung von Eingabe in ein neuronales Netz das Empfangen der Eingabe in dem neuronalen Netz, wobei die Eingabe mehrere Auflösungseingaben enthält, Identifizieren von Merkmalstensoren für jede entsprechende Auflösung der mehrere Auflösungseingaben, Eingeben der Merkmalstensoren für jede entsprechende Auflösung in einen entsprechenden Residuumblock und Verwenden eines Gleichgewichtsauflösers, um einen oder mehrere Vorhersagevektoren aus den mehreren Merkmalstensoren zu identifizieren, um eine Klassifizierung der Eingabe auszugeben.
-
Gemäß einer dritten Ausführungsform enthält ein System zum Trainieren eines neuronalen Netzes eine Eingabeschnittstelle zum Zugreifen auf Eingabedaten für das neuronale Netz und einen Prozessor in Kommunikation mit der Eingabeschnittstelle. Der Prozessor ist programmiert, die Eingabedaten in dem neuronalen Netz zu empfangen, wobei die Eingabe mehrere Auflösungseingaben mit variierenden Auflösungen enthält, Ausgeben mehrerer Merkmalstensoren für jede entsprechende Auflösung der mehreren Auflösungseingaben, Vereinigen der mehreren Merkmalstensoren unter Verwendung von Aufwärtsabtastung oder Abwärtsabtastung für die variierenden Auflösungen, Verwenden eines Gleichgewichtsauflösers, um einen Vorhersagevektor in Reaktion auf die mehreren Merkmalstensoren zu identifizieren, wobei der Vorhersagevektor Merkmale, die jedem der mehreren Merkmalstensoren zugeordnet sind, enthält, und Ausgeben des Vorhersagevektors als eine Klassifizierung der Eingabedaten.
-
Figurenliste
-
- 1 zeigt ein System 100 zum Trainieren eines neuronalen Netzes.
- 2 zeigt ein computerimplementiertes Verfahren 200 zum Trainieren eines neuronalen Netzes.
- 3 stellt die allgemeine Struktur eines MDEQ-Modells dar.
- 4 bildet eine interne Struktur des Systems 400, die einen Residuumblock enthält, ab.
- 5 bildet ein schematisches Diagramm einer Interaktion zwischen der computergesteuerten Maschine 10 und dem Steuersystem 12 ab.
- 6 bildet ein schematisches Diagramm des Steuersystems von 1 ab, das konfiguriert ist, ein Fahrzeug, das ein teilweise autonomes Fahrzeug oder ein teilweise autonomer Roboter sein kann, zu steuern.
- 7 bildet ein schematisches Diagramm des Steuersystems von 1 ab, das konfiguriert ist, eine Produktionsmaschine wie z. B. ein Stanzwerkzeug, ein Schneidewerkzeug oder einen Tieflochbohrer, des Produktionssystems, wie z. B. den Teil einer Fertigungsanlage, zu steuern.
- 8 bildet ein schematisches Diagramm des Steuersystems von 1 ab, das konfiguriert ist, ein Elektrowerkzeug, wie z. B. eine Bohrmaschine oder einen Antrieb, der eine wenigstens teilweise autonome Betriebsart aufweist, zu steuern.
- 9 bildet ein schematisches Diagramm des Steuersystems von 1 ab, das konfiguriert ist, einen automatischen persönlichen Assistenten zu steuern.
- 10 bildet ein schematisches Diagramm des Steuersystems von 1 ab, das konfiguriert ist, ein Überwachungssystem wie z. B. ein Zugangssteuerungssystem oder ein Beobachtungssystem zu steuern.
- 11 bildet ein schematisches Diagramm des Steuersystems von 1 ab, das konfiguriert ist, ein Bildaufnahmesystem, beispielsweise eine MRI-Einrichtung, Röntgen-Bildaufnahmeeinrichtung oder Ultraschalleinrichtung, zu steuern.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführungsformen der vorliegenden Offenbarung sind hier beschrieben. Es ist jedoch zu verstehen, dass die offenbarten Ausführungsformen lediglich Beispiele sind und andere Ausführungsformen verschiedene und alternative Formen annehmen können. Die Figuren sind nicht notwendigerweise maßstabsgerecht; einige Merkmale könnten übertrieben oder minimiert sein, um Einzelheiten der speziellen Komponenten zu zeigen. Deshalb sind die spezifischen strukturellen und funktionalen Einzelheiten, die hier offenbart sind, nicht als einschränkend, sondern lediglich als eine repräsentative Basis zum Lehren eines Fachmanns, die Ausführungsformen auf verschiedene Weise einzusetzen, zu interpretieren. Wie normale Fachleute verstehen werden, können verschiedene Merkmale, die mit Bezug auf irgendeine der Figuren dargestellt und beschrieben sind, mit Merkmalen, die in einer oder mehreren anderen Figuren dargestellt sind, kombiniert werden, um Ausführungsformen, die nicht ausdrücklich dargestellt oder beschrieben sind, zu produzieren. Die Kombinationen von dargestellten Merkmalen stellen repräsentative Ausführungsformen für typische Anwendungen bereit. 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 früheren DEQ-Modellen kann das Definieren einer Funktion mit einem festen Punkt heuristisch unter Verwendung von Netzstrukturen, die stabile feste Punkte empirisch zu produzieren scheinen, vorgenommen werden. Das kann das Verwenden existierender Architekturen im Transformerstil oder existierender Faltungsarchitekturen enthalten, mit geeigneter Schichtnormalisierung, um das Bereitstellen eines stabilen Systems zu versuchen. Solche Schichten kommen jedoch ohne formale Garantien für die Existenz eines festen Punkts. Für die Wurzelfindungsprozedur kann das DEQ ein nichtlineares Broyden-Verfahren verwenden, bei dem auch nicht garantiert ist, dass es eine Wurzel findet (selbst wenn eine Wurzel oder ein fester Punkt existiert). Zusätzlich kann der Rückwärtsdurchlauf ein ähnliches Broyden-Verfahren für eine lineare Lösung verwenden, für die es eine Garantie geben kann, sie mit der geeigneten Inversen zu multiplizieren, falls sie existiert, jedoch wird die Jacobinische keiner sinnvollen Ableitung entsprechen, falls der feste Punkt nicht existiert oder falls der Vorwärtsdurchlauf nicht konvergiert.
-
Ein tiefes neuronales Netz mit verdeckten Schichten z und Aktivierungen ƒ, so dass z
[i+1] = ƒ(z
[i], θ
i, c(x)) für i = 0, 1, 2, ..., L mit den Gewichten θ
i und Eingaben aus vorherigen Schichten c(x) beide schichtübergreifend verbunden sind, z. B. θ
i = θ∀i. Einige dieser Aktivierungen ƒ können eine Attraktoreigenschaft zeigen, es existiert z. B. ein fester Punkt z*, so dass z* = ƒ(z*, θ, c(x)) und
d. h. die wiederholte Anwendung von ƒ bis eine initiale Aktivierung z
[0] zu dem festen Punkt z* konvergiert. Falls das der Fall ist, kann die iterierte Funktionsanwendung auf äquivalente Weise durch ein numerisches Verfahren ersetzt werden, um den festen Punkt direkt zu finden. Das verschiebt das Problem von der Berechnung der Vorwärts- und Rückwärtsdurchläufe für mehrere Schichten zur Berechnung und Optimierung des festen Punkts direkt über numerische Verfahren. Das kann den Speicherfußabdruck reduzieren (da keine Zwischenwerte in den Schichten gespeichert werden müssen) und löst das Problem, eine optimale Anzahl von Schichten L zu finden.
-
Das Mehrskalenmodell mit tiefem Gleichgewicht (MDEQ) baut auf seinem Vorgänger des Modells mit tiefem Gleichgewicht (DEQ) auf. Während die Eingabe in das DEQ nur eine einzige Auflösung aufweist, wird die Eingabe in das MDEQ mit mehreren Auflösungen bereitgestellt, was es ihm ermöglicht, aus einem Spektrum von Auflösungen, das von feingranularen Merkmalen (hoher Auflösung) bis zu globalen Merkmalen (niedrige Auflösung) reicht, zu lernen. Das MDEQ spezifiziert außerdem einen Prozess zum Mischen und Kombinieren von Informationen unter verschiedenen Skalen. Außerdem ist die Ausgabe aus dem DEQ von der gleichen Auflösung wie seine Eingabe, während das MDEQ eine Ausgabe für jede der Eingabeskalen ergibt. Das macht das MDEQ-Modell flexibler in Bezug auf gemeinsames Lernen oder Übertragung, da die Ausgabe mit unterschiedlichen Auflösungen verwendet werden kann, um zusätzliche Verluste auf einer einzigen Trainingsaufgabe zu lernen, mehrere Aufgaben gleichzeitig zu lernen (d. h. Ausgaben mit hoher Auflösung für semantische Segmentierung und Ausgaben mit niedriger Auflösung zur Bildklassifizierung zu verwenden) oder um ein gelerntes Modell leichter von einer Aufgabe auf eine weitere zu übertragen.
-
Das MDEQ-Modell lernt auf hierarchische Weise, z. B. auf eine, die die Daten mit mehreren Skalen oder Auflösungen berücksichtigt, was für das Lernen in mehreren Aufgaben (z. B. Aufgaben für Computersehen) wesentlich ist. Das MDEQ modelliert implizit, was viel größere Netze simulieren kann, während es einen relativ kleinen Speicherfußabdruck zum Speichern und Trainieren des Modells beibehält.
-
1 zeigt ein System 100 zum Trainieren eines neuronalen Netzes. Das System 100 kann eine Eingabeschnittstelle zum Zugreifen auf Trainingsdaten 192 für das neuronale Netz umfassen. Beispielsweise kann, wie in 1 dargestellt ist, die Eingabeschnittstelle durch eine Datenspeicherschnittstelle 180 gebildet sein, die auf die Trainingsdaten 192 aus einem Datenspeicher 190 zugreifen kann. Beispielsweise kann die Datenspeicherschnittstelle 180 eine Speicherschnittstelle oder eine persistente Speicherschnittstelle sein, z. B. eine Festplatte oder eine SSD-Schnittstelle, jedoch eine Schnittstelle eines persönlichen, lokalen oder Weitbereichs-Netzes wie z. B. eine Bluetooth-, Zigbee- oder Wi-Fi-Schnittstelle oder eine Ethernet- oder Lichtwellenleiter-Schnittstelle. Der Datenspeicher 190 kann ein interner Datenspeicher des Systems 100, wie z. B. ein Festplattenlaufwerk oder eine SSD, kann jedoch auch ein externer Datenspeicher, z. B. ein über ein Netz zugänglicher Datenspeicher, sein.
-
In einigen Ausführungsformen kann der Datenspeicher 190 ferner eine Datenrepräsentation 194 einer untrainierten Version des neuronalen Netzes umfassen, auf die durch das System 100 aus dem Datenspeicher 190 zugegriffen werden kann. Es ist jedoch zu verstehen, dass die Trainingsdaten 192 und die Datenrepräsentation 194 des untrainierten neuronalen Netzes auch jeweils aus einem unterschiedlichen Datenspeicher zugreifbar sein können, z. B. über ein unterschiedliches Teilsystem der Datenspeicherschnittstelle 180. Jedes Teilsystem kann von einem Typ sein, wie vorstehend für die Datenspeicherschnittstelle 180 beschrieben ist. In anderen Ausführungsformen kann die Datenrepräsentation 194 des untrainierten neuronalen Netzes intern durch das System 100 auf der Basis von Konstruktionsparametern für das neuronale Netz erzeugt werden und kann deshalb nicht explizit auf dem Datenspeicher 190 gespeichert sein. Das System 100 kann ferner ein Prozessorteilsystem 160 umfassen, das konfiguriert sein kann, während des Betriebs des Systems 100 eine iterative Funktion als einen Ersatz für einen Stapel von Schichten des neuronalen Netzes, das zu trainieren ist, bereitzustellen. Hier können entsprechende Schichten des Stapels von Schichten, der ersetzt wird, wechselseitig gemeinsam verwendete Gewichte aufweisen und können als Eingabe eine Ausgabe einer vorhergehenden Schicht, oder für eine erste Schicht aus dem Stapel von Schichten eine initiale Aktivierung, und einen Teil der Eingabe des Stapels von Schichten empfangen. Das Prozessorteilsystem 160 kann ferner konfiguriert sein, das neuronale Netz unter Verwendung der Trainingsdaten 192 iterativ zu trainieren. Hier kann eine Iteration des Trainings durch das Prozessorteilsystem 160 einen Vorwärtspropagierungsteil und einen Rückpropagierungsteil umfassen. Das Prozessorteilsystem 160 kann konfiguriert sein, den Vorwärtspropagierungsteil durch, unter anderen Operationen, die den Vorwärtspropagierungsteil definieren, die ausgeführt werden können, Bestimmen eines Gleichgewichtspunkts der iterativen Funktion, an dem die iterative Funktion zu einem festen Punkt konvergiert, wobei das Bestimmen des Gleichgewichtspunkts das Verwenden eines numerischen Wurzelfindungsalgorithmus umfasst, um eine Wurzellösung für die iterative Funktion minus ihrer Eingabe zu finden, und durch Bereitstellen des Gleichgewichtspunkts als einen Ersatz für eine Ausgabe des Stapels von Schichten in dem neuronalen Netz ausführen. Das System 100 kann ferner eine Ausgabeschnittstelle zum Ausgeben einer Datenrepräsentation 196 des trainierten neuronalen Netzes enthalten, wobei diese Daten auch als Daten 196 des trainierten Modells bezeichnet sein können. Beispielsweise kann, wie auch in 1 dargestellt ist, die Ausgabeschnittstelle durch die Datenspeicherschnittstelle 180 gebildet sein, wobei diese Schnittstelle in diesen Ausführungsformen eine Eingabe/Ausgabe- („IO“-) Schnittstelle ist, über die die Daten 196 des trainierten Modells in dem Datenspeicher 190 gespeichert werden können. Beispielsweise kann die Datenrepräsentation 194, die das „untrainierte“ neuronale Netz definiert, während des oder nach dem Training wenigstens teilweise durch die Datenrepräsentation 196 des trainierten neuronalen Netzes ersetzt werden, in dem die Parameter des neuronalen Netzes, wie z. B. Gewichte, Hyperparameter und andere Typen von Parametern neuronaler Netze, angepasst sein können, um das Training mit den Trainingsdaten 192 widerzuspiegeln. Das ist auch in 1 durch die Bezugszeichen 194, 196, die sich auf den gleichen Datensatz auf dem Datenspeicher 190 beziehen, dargestellt. In anderen Ausführungsformen kann die Datenrepräsentation 196 getrennt von der Datenrepräsentation 194, die das „untrainierte“ neuronale Netz definiert, gespeichert sein. In einigen Ausführungsformen kann die Ausgabeschnittstelle von der Datenspeicherschnittstelle 180 separat sein, kann jedoch allgemein von einem Typ sein, wie er vorstehend für die Datenspeicherschnittstelle 180 beschrieben ist.
-
2 zeigt ein computerimplementiertes Verfahren 200 zum Trainieren eines neuronalen Netzes. Das Verfahren 200 kann einer Operation des Systems 100 von 1 entsprechen, muss das jedoch nicht, da es auch einer Operation eines anderen Typs eines Systems, einer Einrichtung oder Vorrichtung entsprechen kann oder da es einem Computerprogramm entsprechen kann.
-
Das Verfahren 200 ist so gezeigt, dass es in einem Schritt mit dem Titel „BEREITSTELLEN DER DATENREPRÄSENTATION DES NEURONALEN 'NETZES“ das Bereitstellen 210 eines neuronalen Netzes umfasst, wobei das Bereitstellen des neuronalen Netzes das Bereitstellen einer iterativen Funktion als einen Ersatz für einen Stapel von Schichten des neuronalen Netzes umfasst, wobei entsprechende Schichten des Stapels von Schichten, der ersetzt wird, wechselseitig gemeinsam verwendete Gewichte aufweisen und als Eingabe eine Ausgabe einer vorhergehenden Schicht, oder für eine erste Schicht des Stapels von Schichten eine initiale Aktivierung, und einen Teil der Eingabe des Stapels von Schichten empfangen. Das Verfahren 200 ist ferner so gezeigt, dass einen Schritt mit dem Titel „ZUGREIFEN AUF TRAININGSDATEN“ das Zugreifen 220 auf Trainingsdaten für das neuronale Netz umfasst. Das Verfahren 200 ist ferner so gezeigt, dass in einem Schritt mit dem Titel „ITERATIVES TRAINIEREN DES NEURONALEN NETZES UNTER VERWENDUNG VON TRAININGSDATEN“ das iterative Trainieren 230 des neuronalen Netzes unter Verwendung der Trainingsdaten umfasst, wobei diese Trainingsdaten 230 einen Vorwärtspropagierungsteil und einen Rückpropagierungsteil umfassen können. Das Ausführen des Vorwärtspropagierungsteils durch das Verfahren 200 kann in einem Schritt mit dem Titel „BESTIMMEN DES GLEICHGEWICHTSPUNKTS UNTER VERWENDUNG EINES WURZELFINDUNGSALGORITHMUS“ das Bestimmen 240 eines Gleichgewichtspunkts der iterativen Funktion, an dem die iterative Funktion zu einem festen Punkt konvergiert, wobei das Bestimmen des Gleichgewichtspunkts das Verwenden eines numerischen Wurzelfindungsalgorithmus zum Finden einer Wurzellösung für die iterative Funktion minus ihrer Eingabe umfasst, und in einem Schritt mit dem Titel „BEREITSTELLEN DES GLEICHGEWICHTSPUNKTS ALS ERSATZ FÜR DIE AUSGABE EINES STAPELS VON SCHICHTEN“ das Bereitstellen 250 des Gleichgewichtspunkts als einen Ersatz für eine Ausgabe des Stapels von Schichten in dem neuronalen Netz umfassen. Das Verfahren 200 kann ferner nach dem Trainieren und in einem Schritt mit dem Titel „AUSGEBEN EINES TRAINIERTEN NEURONALEN NETZES“ das Ausgeben 260 eines trainierten neuronalen Netzes umfassen. Das neuronale Netz mit tiefem Gleichgewicht (DEQ) kann ferner in der Patentanmeldung mit dem Titel „DEEP NEURAL NETWORK WITH EQUILIBRIUM SOLVER“ mit der Anmeldungsnummer X,XXX,XXX, die hier durch Bezugnahme vollständig mit aufgenommen ist, beschrieben sein.
-
3 stellt die allgemeine Struktur eines MDEQ-Modells 300 dar. Wie in dem früheren DEQ-Modell kann ƒθ die Transformation des festen Punkt, an dem das System interessiert ist, bezeichnen, und x kann die im Voraus berechnete eingegebene Repräsentation sein, die für ƒθ und z für den internen Zustand des Modells bereitgestellt wird.
-
Als Kontext kann in dem ursprünglichen DEQ-Modell das DEQ in der Vorwärtsdurchlauf- (Inferenz-) Sequenz eine Eingabe θ ∈ Rn und c ∈ Rk enthalten. Die Hyperparameter können eine Basisschichtfunktion ƒ: Rm × Rn × Rk → Rm enthalten. Der Algorithmus kann:
- 1. den Speicher z[0] initialisieren.
- 2. die Funktion g: z ↦ ƒ(z, θ, c) - z definieren.
- 3. die Subroutine z* = RootFind(λz ↦ g(z), z[0]) aufrufen.
-
Das DEQ-Modell kann z* ∈ Rm ausgeben. Konkret kann RootFind über irgendein Wurzelfindungsverfahren berechnet werden. Auf eine nicht einschränkende Weise kann das irgendeine Variante des Newton-Verfahrens enthalten, z. B. das klassische Newton-Raphson-Verfahren, das Broyden-Verfahren, das Steffensen-Verfahren usw.
-
Während der DEQ-Rückwärtsdurchlauf-Trainingssequenz kann das System als Eingaben sowohl den rückpropagierten Fehler δz ∈ Rm als auch z* ∈ Rm, c ∈ Rk aus dem Vorwärtsdurchlauf nutzen. Der Algorithmus für den Rückwärtsdurchlauf kann die folgenden Schritte ablaufen lassen:
- 1. die Funktion g: z ↦ ƒ(z, θ, c(x)) - z definieren
- 2. die partiellen Ableitungen
und
berechnen
- 3.
- A)
und
berechnen. oder
- B) das lineare System
über eine geeignete Subroutine lösen.
-
Das MDEQ-Modell, das nachstehend weiter beschrieben ist, baut auf den folgenden Vorwärtsdurchlaufsequenz und Rückwärtsdurchlaufsequenz durch Spezifizieren der Funktion ƒ
θ(x,z), die in den vorstehenden Algorithmen verwendet ist, auf. Die Hyperparameter in dem MDEQ-Modell können n, die Anzahl von Auflösungen, enthalten. Die Eingaben (z. B. Eingabe) können x = [x
1, ..., x
n] (Eingabe in jeder Skala, mit absteigend geordneten Auflösungen) und z = [z
1, ..., z
n] (verdeckter Zustand, z
i ist von der gleichen Größe wie x
n) enthalten. Der Algorithmus kann für jede Auflösung i = 1, ..., n:
-
Norm kann als eine Gruppennormalisierungsoperation (ähnlich der Batch-Normalisierung) definiert sein.
-
Dann kann das MDEQ-Modell für jede Auflösung i = 1, ..., n einen Mehrauflösungsvereinigungsschritt, der Merkmale aus anderen Maßstäben mischt, anwenden:
wobei eine oder mehrere 2-Schritt-3x3-Faltung(en) (z. B. StridedConv2d ist eins oder größer) auf höhere Auflösungen angewandt werden, und eine 1×1-Faltung gefolgt durch bilineare Interpolation auf niedrigere Auflösungen angewandt wird.
-
Die Ausgabe von ƒ ist die Menge verdeckter Zustände
Diese Schritte können jedoch modifiziert werden, solange der erste Schritt eine Transformation ist, die separat auf jede Auflösung gewandt wird, die ihre Form beibehält, und der zweite eine Transformation ist, die Informationen zwischen unterschiedlichen Auflösungen mischt.
-
Diese Funktion ƒ
θ(x, z) kann dann in den vorstehenden Vorwärts- und Rückwärtsdurchläufen verwendet werden. Nach dem Vorwärtsdurchlauf kann das Modell die Wurzel z* von ƒ
θ(x, z) erhalten, die in dem MDEQ-Fall eine Menge
von Auflösungen ist, von denen jede zur Vorhersage oder zum Trainieren verwendet werden kann, abhängig von ihrer Relevanz für die vorliegende Lernaufgabe.
-
Eines der Hauptkonzepte von MDEQ ist die Transformation von ƒ
θ, die zum Gleichgewicht getrieben wird. Das System kann eine solche Konstruktion verwenden, in der Merkmale an unterschiedlichen Auflösungen
303 zuerst durch Residuumblöcke
307 aufgenommen werden. Die Merkmale können aus einem Eingabebild
301 abgeleitet werden, das variierende Auflösungen
303 oder Auflösungsbild
303 aufweist, wie in
3 gezeigt ist. Jede Auflösung
303 kann ihren eigenen entsprechenden Residuumblock
307 aufweisen. Die Residuumblöcke
307 können flach sein und können eine gleiche Struktur aufweisen. Die Ströme unterschiedlicher Auflösung können nebeneinander oder gleichzeitig verarbeitet werden. An der Auflösung i kann der Residuumblock den internen Zustand z
i zusammen mit einer Eingaberepräsentation x
i empfangen, und gibt einen transformierten Merkmalstensor
305
mit der gleichen Auflösung aus.
-
Die Eingabe 301 kann eine Reihe von Transformationen durchlaufen, um x 303 zu bilden, das für ƒθ bereitgestellt wird. Im Gegensatz zu dem ursprünglichen DEQ-Modell, das auf einer Sequenz arbeitet und mit einer einzigen Repräsentation der Eingabe versorgt wird, kann das MDEQ mit Eingaberepräsentationen mit n Auflösungen versorgt werden (z. B. n = 4). Die Transformation an jeder Auflösung empfängt ihre eigene Eingaberepräsentation
-
xi ∈ RHi × Wi × Ci für i = 1, ..., n. Eingaberepräsentationen für niedrigere Auflösung können von der ursprünglichen (hochauflösenden) Eingabe über 2-Schritt-Faltungen abgeleitet werden.
-
Während das ursprüngliche DEQ einen internen Zustand mit einem einzigen Tensor z aufweist, enthält der MDEQ-Zustand eine Sammlung von Tensoren 305 mit n Auflösungen:
-
-
Jeder der unterschiedlichen Tensoren
305 weist unterschiedliche Dimensionen und unterschiedliche Auflösungen auf. Somit kann der Gleichgewichtsauflöser
311 auf der vorhergehenden Herangehensweise anderer DEQ-Modelle basieren. Das System kann die internen Zustände durch Einstellen von
für alle Skalen i initialisieren. Weil das System Wurzelfindung ausführt, muss das System die Tensoren für mehrere Auflösungen nicht vektorisieren. Die Sammlung von Tensoren z = [z
1, ..., z
n] kann als eine Sammlung von n Tensoren beibehalten werden, deren jeweilige Gleichgewichtszustände gleichzeitig gelöst werden und rückpropagieren können, wobei jede Auflösung ihren eigenen Gradienten enthält.
-
Der Auflöser 311 kann auch im Vergleich zu dem früheren DEQ-Modell modifiziert sein. Die hohe Dimensionalität von Bildern kann das Speichern solcher Aktualisierungen extrem teuer machen, ungeachtet ihres niedrigen Rangs. Um das zu adressieren verbessert das System die Speichereffizienz der Vorwärts- und Rückwärtsdurchläufe. Der neue Auflöser kann die neuesten m Aktualisierungen im niedrigen Rang in jedem Schritt beibehalten und verwirft die früheren. Der Auflöser 311 kann einen einzigen Vorhersagevektor 313 für alle Auflösungen ausgeben. Der Vorhersagevektor 313 kann Merkmale jedes der Vektoren für die entsprechende Auflösung enthalten.
-
Frühere implizite Modelle nehmen an, dass ein Verlust 317 auf einem einzigen Strom impliziter verdeckter Zustände definiert ist, die eine einheitliche Eingabe- und Ausgabeform aufweisen, und somit es ist nicht klar, wie ein solches Modell über strukturell unterschiedliche Aufgaben (z. B. Vortrainieren auf Bildklassifizierung und Feinabstimmen auf semantischer Segmentierung) übertragen werden kann. Darüber hinaus gibt es keinen natürlichen Weg, zusätzliche Verluste zu definieren, weil keine „Schichten“ vorhanden sind und die Vorwärts- und Rückwärts-Berechnungsbahn entkoppelt sind. Der Verlust 317 in dem MDEQ-Modell kann jedem der Vorhersagevektoren zugeordnet sein, da das MDEQ-Modell einen Verlust mehr als einem der Vektoren zuweisen kann. Somit können die Vektoren immer einen Verlust aufweisen, der wenigstens einem von ihnen zugeordnet ist.
-
Das MDEQ-Modell kann komfortable „Schnittstellen“ zu seinen Zuständen an mehreren Auflösungen freilegen. Eine Auflösung (die höchste) kann gleich der Auflösung der Eingabe sein und kann verwendet werden, um Verluste für dichte Vorhersageaufgaben wie z. B. semantische Segmentierung definieren. Beispielsweise kann das das Ableiten spezifischer Klassifizierung zugeordneter Teile von Objekten, die in dem Bild identifiziert sind, enthalten, wie z. B. Gesichtserkennung, Augenerkennung, Haarfarbe usw. Eine weitere Auflösung (z. B. die niedrigste) kann ein Vektor sein, in dem die räumlichen Dimensionen zusammengeklappt sind, und kann verwendet werden, um Verluste für Kennzeichnungsaufgaben auf Bildebene wie z. B. Bildklassifizierung zu definieren. Das kann saubere Protokolle zum Trainieren desselben Modells für unterschiedliche Aufgaben vorschlagen, entweder gemeinsam (z. B. Mehraufgabenlemen, in denen strukturell unterschiedliche Supervision durch mehrere Köpfe fließt) oder der Reihe nach (z. B. Vortrainieren zur Bildklassifizierung durch einen Kopf und Feinabstimmen zur semantischen Segmentierung durch einen weiteren).
-
Weil Batch-Normalisierung für implizite Modelle nicht direkt geeignet sein kann, weil sie die Besetzungsstatik basierend auf Schichten, die in der MDEQ-Einstellung implizit sind, schätzt und die Jacobinische Matrix der Transformation ƒθ schlecht skalieren kann, so dass der feste Punkt signifikant schwieriger zu lösen ist. Somit kann das MDEQ Gruppennormalisierung nutzen, die die Eingabekanäle gruppiert und Normalisierung innerhalb jeder Gruppe (z. B. jeder Auflösung) ausführt. Die Gruppennormalisierung kann von der Batch-Größe unabhängig sein und bietet eine natürlichere Unterstützung für das Übertragen von Lernen (z. B. Vortrainieren und Feinabstimmen auf strukturell unterschiedlichen Aufgaben). Das MDEQ kann die erlernbaren affinen Parameter der Gruppennormalisierung für Stabilität nicht nutzen.
-
Anstelle der Nutzung des herkömmlichen räumlichen Abfalls, der durch Erklärung von Sichtmodellen verwendet werden, die auf eine Zufallsmaske für gegebene Schichten in dem Netz angewandt werden, kann das MDEQ eine abweichende Abfalltechnik einsetzen, die in RNNs (rekurrenten neuronalen Netzen) zu finden ist, wo die genau gleiche Maske bei allen Aufrufen von ƒθ angewandt werden kann und am Start jeder Trainingsiteration zurückgesetzt wird.
-
Die Mehrskalenmerkmale können für alle Auflösungen i auf
initialisiert werden. Das kann jedoch gewisse Instabilitäten beim Training von MDEQ verursachen, insbesondere während seiner Startphase, die durch die drastische Änderung der Steigung von ReLU-Nichtlinearität im Original, wo die Ableitung nicht definiert ist, bedingt sein können. Um das zu bekämpfen, kann das MDEQ-Modell die letzte ReLU in sowohl dem Residuumblock als auch der Mehrskalenvereinigung durch ein Softplus in der initialen Phase des Trainierens ersetzen. Das kann später zu ReLU zurück geschaltet werden. Das Softplus stellt eine glatte Näherung an das ReLU bereit, weist jedoch eine Steigung
um z = 0 auf (wo β die Krümmung steuert).
-
Die MDEQ-Modelle können Faltungen mit kleinen rezeptiven Feldern (z. B. die zwei 3x3-Faltungsfilter in dem Residuumblock von ƒθ) auf potentiell sehr großen Bilder (z. B. Bilder mit 2048 x 1024) anwenden. Beispielsweise kann das MDEQ schließlich Modelle zur semantischen Segmentierung auf Bildern der Megapixel-Ebene auswerten. In der Praxis kann das bedeuten, dass das System typischerweise eine höhere Anzahl von Wurzelfindungsiterationen benötigen kann, um zu einem exakten Gleichgewicht zu konvergieren. Obwohl das eine Herausforderung darstellt, kann das MDEQ-Modell gleichzeitiges Up- und Abwärtsabtastung über mehrere Skalen ausführen und Quasi-Newton-Wurzelfindung nutzen, um das Modell nahe an das Gleichgewicht innerhalb einer akzeptablen Anzahl von Wurzelfindungsiterationen zu treiben.
-
4 offenbart eine interne Struktur des Systems
400, die einen Residuumblock enthält. Der Residuumblock kann eher Gruppennormalisierung
413 anstelle Batch-Normalisierung nutzen. Der Residuumblock an der Auflösung i kann formal als das Nachstehende ausgedrückt werden, mit einer Ausgabe
für jede Auflösung i = 1, , n:
-
-
-
-
Somit kann eine zweidimensionale (2D-) Faltungsschicht
405 mit Gruppennormalisierung einen Faltungskern ausgeben, der mit Schichten aufgewickelt ist, um dazu beizutragen, einen Tensor aus Ausgaben zu produzieren. Ein Gleichrichter
407 kann auf dem aus Block
405 ausgegebenen Faltungskern benutzt werden. Die Aktivierungsfunktion kann eine gleichgerichtete Lineareinheit (ReLU)
407,
411 enthalten. Die zweite 2D-Faltungsschicht
409 mit Gruppennormalisierung kann den internen Zustand z
i zusammen mit einer Eingaberepräsentation x
i empfangen und gibt einen transformierten Merkmalstensor
mit der gleichen Auflösung aus, wie in der vorstehenden Formel spezifiziert ist. Der Residuumblock kann eine 2-Schritt-3x3-Faltung auf höhere Auflösungen und eine lxl-Faltung gefolgt von bilinearer Interpolation auf niedrigere Auflösungen anwenden.
-
Folgend diesen Blöcken ist der zweite Teil von ƒ
θ ein Mehrauflösungsvereinigungsschritt, der die Merkmalskarten über unterschiedliche Skalen mischt. Die transformierten Merkmale
durchlaufen entweder Aufwärtsabtastung oder Abwärtsabtastung aus der aktuellen Skala i zu jeder anderen Skala j ungleich i. In der MDEQ-Konstruktion kann Abwärtsabtastung durch (eine oder mehrere) 2-Schritt-3X3-Conv2d ausgeführt werden, während Aufwärtsabtastung durch eine 1 X 1-Faltung gefolgt von bilinearer Interpolation ausgeführt wird. Die endgültige ausgegebene Skala j kann durch Summieren über die transformierten Merkmalskarten, die aus allen eingehenden Skalen i (zusammen mit
). bereitgestellt sind. Somit ist der ausgegebene Merkmalstensor an jeder Skala eine Mischung aus transformierten Merkmalen aus allen Skalen. Das kann erzwingen, dass die Merkmale aller Skalen konsistent sind, und treibt das gesamte System zu einem koordinierten Gleichgewicht, das die Repräsentation über Skalen harmonisiert.
-
5 bildet ein schematisches Diagramm einer Interaktion zwischen der computergesteuerten Maschine 10 und dem Steuersystem 12 ab. Die computergesteuerte Maschine 10 kann ein neuronales Netz wie in den 1-4 beschrieben enthalten. Die computergesteuerte Maschine 10 enthält einen Aktor 14 und einen Sensor 16. Der Aktor 14 kann einen oder mehrere Aktoren enthalten, und der Sensor 16 kann einen oder mehrere Sensoren enthalten. Der Sensor 16 ist konfiguriert, einen Zustand der computergesteuerten Maschine 10 zu erfassen. Der Sensor 16 kann konfiguriert sein, den erfassten Zustand in Sensorsignale 18 zu codieren und die Sensorsignale 18 zu dem Steuersystem 12 zu senden. Nicht einschränkende Beispiele des Sensors 16 enthalten Video-, Radar-, LiDAR-, Ultraschall- und Bewegungssensoren. In einer Ausführungsform ist der Sensor 16 ein optischer Sensor, der konfiguriert ist, optische Bilder einer Umgebung nahe der computergesteuerten Maschine 10 zu erfassen.
-
Das Steuersystem 12 ist konfiguriert, Sensorsignale 18 von der computergesteuerten Maschine 10 zu empfangen. Wie nachstehend dargelegt kann das Steuersystem 12 ferner konfiguriert sein, Aktorsteuerbefehle 20 abhängig von den Sensorsignalen zu berechnen und Aktorsteuerbefehle 20 zu dem Aktor 14 der computergesteuerten Maschine 10 zu senden.
-
Wie in 5 gezeigt enthält das Steuersystem 12 eine Empfangseinheit 22. Die Empfangseinheit 22 kann konfiguriert sein, Sensorsignale 18 von dem Sensor 16 zu empfangen und Sensorsignale 18 in Eingabesignale x zu transformieren. In einer alternativen Ausführungsform werden Sensorsignale 18 direkt als Eingabesignale x ohne die Empfangseinheit 22 empfangen. Jedes Eingabesignal x kann ein Abschnitt jedes Sensorsignals 18 sein. Die Empfangseinheit 22 kann konfiguriert sein, jedes Sensorsignal 18 zu verarbeiten, um jedes Eingabesignal x zu produzieren. Das Eingabesignal x kann Daten enthalten, die einem durch den Sensor 16 aufgezeichneten Bild entsprechen.
-
Das Steuersystem 12 enthält den Klassifizierer 24. Der Klassifizierer 24 kann konfiguriert sein, Eingabesignale x in ein oder mehrere Kennzeichen unter Verwendung eines Maschinenlern-Algorithmus (ML-Algorithmus) wie z. B. eines vorstehend beschriebenen neuronalen Netzes zu klassifizieren. Der Klassifizierer 24 ist konfiguriert, durch Parameter wie z. B. die vorstehend beschriebenen (z. B. Parameter θ) parametrisiert zu werden. Die Parameter θ können in einem nichtflüchtigen Speicher 26 gespeichert und durch ihn bereitgestellt werden. Der Klassifizierer 24 ist konfiguriert, Ausgabesignale y aus den Eingabesignalen x zu bestimmen. Jedes Ausgabesignal y enthält Informationen, die jedem Eingabesignal x ein oder mehrere Kennzeichen zuweisen. Der Klassifizierer 24 kann Ausgabesignale y zur Umsetzungseinheit 28 senden. Die Umsetzungseinheit 28 ist konfiguriert, Ausgabesignale y in Aktorsteuerbefehle 20 umzusetzen. Das Steuersystem 12 ist konfiguriert, Aktorsteuerbefehle 20 zu dem Aktor 14, der konfiguriert ist, die computergesteuerte Maschine 10 in Reaktion auf Aktorsteuerbefehle 20 zu betätigen, zu senden. In einer weiteren Ausführungsform ist der Aktor 14 konfiguriert, die computergesteuerte Maschine 10 basierend direkt auf Ausgabesignalen y zu betätigen.
-
Bei Empfang der Aktorsteuerbefehle 20 durch den Aktor 14 ist der Aktor 14 konfiguriert, eine Aktion auszuführen, die dem zugehörigen Aktorsteuerbefehl 20 entspricht. Der Aktor 14 kann eine Steuerlogik enthalten, die konfiguriert ist, Aktorsteuerbefehle 20 in einen zweiten Aktorsteuerbefehl zu transformieren, der verwendet wird, um den Aktor 14 zu steuern. In einer oder mehreren Ausführungsformen können die Aktorsteuerbefehle 20 verwendet werden, um eine Anzeigevorrichtung anstelle eines oder zusätzlich zu einem Aktor zu steuern.
-
In einer weiteren Ausführungsform enthält das Steuersystem 12 den Sensor 16 anstelle der oder zusätzlich zu der computergesteuerten Maschine 10, die den Sensor 16 enthält. Das Steuersystem 12 kann außerdem den Aktor 14 anstelle der oder zusätzlich zu der computergesteuerten Maschine 10, die den Aktor 14 enthält, enthalten.
-
Wie in 5 gezeigt ist, enthält das Steuersystem 12 außerdem einen Prozessor 30 und einen Speicher 32. Der Prozessor 30 kann einen oder mehrere Prozessoren enthalten. Der Speicher 32 kann eine oder mehrere Speichervorrichtungen enthalten. Der Klassifizierer 24 (z. B. ML-Algorithmen) einer oder mehrerer Ausführungsformen kann durch das Steuersystem 12, das den nichtflüchtigen Speicher 26, den Prozessor 30 und den Speicher 32 enthält, implementiert sein.
-
Der nichtflüchtige Speicher 26 kann eine oder mehrere persistente Datenspeichervorrichtungen wie z. B. ein Festplattenlaufwerk, ein optisches Laufwerk, ein Bandlaufwerk, eine nichtflüchtige Festkörpervorrichtung, Cloud-Speicher oder irgendeine andere Vorrichtung, die zum persistenten Speichern von Informationen fähig ist, enthalten. Der Prozessor 30 kann eine oder mehrere Vorrichtungen enthalten, die ausgewählt sind aus Hochleistungsrechen-Systemen (HPC-Systemen), die Hochleistungskerne, Mikroprozessoren, Mikrosteuereinheiten, digitale Signalprozessoren, Mikrocomputer, zentrale Verarbeitungseinheiten, im Feld programmierbare Gatter-Arrays, programmierbare Logikvorrichtungen, Zustandsautomaten, Logikschaltungen, analoge Schaltungen, digitale Schaltungen oder irgendwelche anderen Vorrichtungen, die Signale (analog oder digital) basierend auf computerausführbaren Anweisungen, die im Speicher 32 residieren, manipulieren, enthalten. Der Speicher 32 kann eine einzelne Speichervorrichtung oder eine Anzahl von Speichervorrichtungen enthalten, die, ohne jedoch darauf beschränkt zu sein, Direktzugriffsspeicher (RAM), flüchtigen Speicher, nichtflüchtigen Speicher, statischen Direktzugriffsspeicher (SRAM), dynamischen Direktzugriffsspeicher (DRAM), Flash-Speicher, Cache-Speicher oder irgendeine andere Vorrichtung, die zum Speichern von Informationen fähig ist, enthalten.
-
Der Prozessor 30 kann konfiguriert sein, in den Speicher 32 zu lesen und computerausführbare Anweisungen, die in dem nichtflüchtigen Speicher 26 residieren und einen oder mehrere ML-Algorithmen und/oder Methodiken einer oder mehrerer Ausführungsformen verkörpern, auszuführen. Der nichtflüchtige Speicher 26 kann ein oder mehrere Betriebssysteme und Anwendungen enthalten. Der nichtflüchtige Speicher 26 kann kompiliert und/oder interpretiert aus Computerprogrammen, die unter Verwendung einer Vielzahl von Programmiersprachen und/oder Technologien erzeugt sind, die ohne Einschränkung entweder allein oder in Kombination Java, C, C++, C#, Objective C, Fortran, Pascal, Java Script, Python, Perl und PL/SQL enthalten, speichern.
-
Bei Ausführung durch den Prozessor 30 können die computerausführbaren Anweisungen des nichtflüchtigen Speichers 26 das Steuersystem 12 veranlassen, eine/n oder mehrere/n der ML-Algorithmen und/oder Methodiken, wie sie hier offenbart sind, zu implementieren. Der nichtflüchtige Speicher 26 kann außerdem ML-Daten (die Datenparameter enthalten), die die Funktionen, Merkmale und Prozesse der hier beschriebenen einen oder mehreren Ausführungsformen unterstützen, enthalten.
-
Der Programmcode, der die Algorithmen und/oder Methodiken, die hier beschrieben sind, verkörpert, ist fähig, individuell oder kollektiv als ein Programmprodukt in einer Vielzahl unterschiedlicher Formen verteilt zu werden. Der Programmcode kann unter Verwendung eines computerlesbaren Speichermediums, das darauf computerlesbare Programmanweisungen zum Veranlassen eines Prozessors, Aspekte einer oder mehrerer Ausführungsformen auszuführen, aufweist, verteilt werden. Computerlesbare Speichermedien, die inhärent nicht-transitorisch sind, können flüchtige und nichtflüchtige und herausnehmbare und nicht herausnehmbare greifbare Medien, die in irgendeinem Verfahren oder Technologie zum Speichern von Informationen implementiert sind, wie z. B. computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten, enthalten. Computerlesbare Speichermedien können ferner RAM, ROM, löschbaren programmierbaren Festwertspeicher (EPROM), elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM), Flash-Speicher oder andere Festkörperspeichertechnologie, tragbaren Compact-Disc-Festwertspeicher (CD-ROM) oder anderen optischen Speicher, Magnetkassetten, Magnetband, Magnetplattenspeicher oder andere Magnetspeichervorrichtungen oder irgendein anderes Medium, das verwendet werden kann, um gewünschte Informationen zu speichern, und das durch einen Computer gelesen werden kann, enthalten. Computerlesbare Programmanweisungen können zu einem Computer, einem anderen Typ einer programmierbaren Datenverarbeitungseinrichtung oder einer anderen Vorrichtung von einem computerlesbaren Speichermedium oder zu einem externen Computer oder einer externen Speichervorrichtung über ein Netz heruntergeladen werden.
-
Computerlesbare Programmanweisungen, die in einem computerlesbaren Medium gespeichert sind, können verwendet werden, um einen Computer oder andere Typen programmierbarer Datenverarbeitungseinrichtungen oder andere Vorrichtungen anzuweisen, auf eine spezielle Weise zu funktionieren, so dass die Anweisungen, die in dem computerlesbaren Medium gespeichert sind, ein Herstellungserzeugnis produzieren, das Anweisungen enthält, die die Funktionen, Aktionen und/oder Operationen, die in Ablaufplänen oder Diagrammen spezifiziert sind, implementieren. In speziellen alternativen Ausführungsformen können die Funktionen, Aktionen und/oder Operationen, die in den Ablaufplänen und Diagrammen spezifiziert sind, konsistent mit einer oder mehreren Ausführungsformen umgeordnet, der Reihe nach verarbeitet und/oder gleichzeitig verarbeitet werden. Außerdem können irgendwelche der Ablaufpläne und/oder Diagramme konsistent mit einer oder mehreren Ausführungsformen mehr oder weniger Knoten oder Blöcke als die dargestellten enthalten.
-
Die Prozesse, Verfahren oder Algorithmen können insgesamt oder teilweise unter Verwendung geeigneter Hardwarekomponenten wie z. B. anwendungsspezifischer integrierter Schaltungen (ASICs), im Feld programmierbarer Gatter-Arrays (FPGAs), Zustandsautomaten, Steuereinheiten oder anderer Hardwarekomponenten oder Vorrichtungen oder einer Kombination aus Hardware-, Software- und Firmware-Komponenten verwirklicht sein.
-
6 bildet ein schematisches Diagramm des Steuersystems 12 ab, das konfiguriert ist, ein Fahrzeug 50, das ein wenigstens teilweise autonomes Fahrzeug oder ein wenigstens teilweise autonomer Roboter sein kann, zu steuern. Wie in 5 gezeigt ist, enthält das Fahrzeug 50 einen Aktor 14 und einen Sensor 16. Der Sensor 16 kann einen oder mehrere Videosensoren, Radarsensoren, Ultraschallsensoren, LiDAR-Sensoren und/oder Positionssensoren (z. B. GPS) enthalten. Eine oder mehrere aus dem einen oder den mehreren spezifischen Sensoren können in das Fahrzeug 50 integriert sein. Alternativ oder zusätzlich zu einem oder mehreren spezifischen Sensoren, die vorstehend identifiziert sind, kann der Sensor 16 ein Softwaremodul, das konfiguriert ist, bei Ausführung einen Zustand des Aktors 14 zu bestimmen, enthalten. Ein nicht einschränkendes Beispiel eines Softwaremoduls enthält ein Wetterinformations-Softwaremodul, das konfiguriert ist, einen derzeitigen oder zukünftigen Zustand des Wetter nahe dem Fahrzeug 50 oder einem anderen Ort zu bestimmen.
-
Der Klassifizierer 24 des Steuersystems 12 des Fahrzeugs 50 kann konfiguriert sein, Objekte in der Nähe des Fahrzeugs 50 abhängig von Eingabesignalen x zu detektieren. In einer solchen Ausführungsform kann das Ausgabesignal y Informationen enthalten, die die Nähe des Objekts zum Fahrzeug 50 charakterisieren. Der Aktorsteuerbefehl 20 kann in Übereinstimmung mit diesen Informationen bestimmt werden. Der Aktorsteuerbefehl 20 kann verwendet werden, um Kollisionen mit den detektierten Objekten zu vermeiden.
-
In Ausführungsformen, in denen das Fahrzeug 50 ein wenigstens teilweise autonomes Fahrzeug ist, kann der Aktor 14 in einer Bremse, einem Antriebssystem, einer Kraftmaschine, einem Antriebsstrang oder einer Lenkung des Fahrzeugs 50 verwirklicht sein. Aktorsteuerbefehle 20 können so bestimmt werden, dass der Aktor 14 so gesteuert wird, dass das Fahrzeug 50 Kollisionen mit detektierten Objekten vermeidet. Detektierte Objekte können auch gemäß dem klassifiziert werden, für das es Klassifizierer 24 am wahrscheinlichsten hält, dass sie es sind, wie z. B. Fußgänger oder Bäume. Die Aktorsteuerbefehle 20 können abhängig von der Klassifizierung bestimmt werden.
-
In anderen Ausführungsformen, in denen das Fahrzeug 50 ein wenigstens teilweise autonomer Roboter ist, kann das Fahrzeug 50 ein mobiler Roboter sein, der konfiguriert ist, eine oder mehrere Funktionen auszuführen, wie z. B. Fliegen, Schwimmen und Schreiten. Der mobile Roboter kann ein wenigstens teilweise autonomer Rasenmäher oder ein wenigstens teilweise autonomer Reinigungsroboter sein. In solchen Ausführungsformen kann der Aktorsteuerbefehl 20 so bestimmt werden, dass die Antriebseinheit, die Lenkeinheit und/oder die Bremseinheit des mobilen Roboters so gesteuert werden kann, dass der mobile Roboter Kollisionen mit identifizierten Objekten vermeiden kann.
-
In einer weiteren Ausführungsform ist das Fahrzeug 50 ein wenigstens teilweise autonomer Roboter in der Form eines Gartenarbeitsroboters. In einer solchen Ausführungsform kann das Fahrzeug 50 einen optischen Sensor als den Sensor 16 verwenden, um einen Zustand von Pflanzen in einer Umgebung nahe dem Fahrzeug 50 zu bestimmen. Der Aktor 14 kann eine Düse sein, die konfiguriert ist, Chemikalien zu sprühen. Abhängig von den identifizierten Spezies und/oder einem identifizierten Zustand der Pflanzen kann der Aktorsteuerbefehl 20 bestimmt werden, um den Aktor 14 zu veranlassen, die Pflanzen mit einer geeigneten Menge geeigneter Chemikalien zu besprühen.
-
Das Fahrzeug 50 kann ein wenigstens teilweise autonomer Roboter in der Form eines Haushaltsgeräts sein. Nicht einschränkende Beispiele für Haushaltsgerät enthalten eine Waschmaschine, einen Herd, einen Backofen, eine Mikrowelle oder einen Geschirrspüler. In einem solchen Fahrzeug 50 kann der Sensor 16 ein optischer Sensor sein, der konfiguriert ist, einen Zustand eines Objekts, das einer Verarbeitung durch das Haushaltsgerät unterzogen werden soll, zu detektieren. Beispielsweise in dem Fall, in dem das Haushaltsgerät eine Waschmaschine ist, kann der Sensor 16 einen Zustand der Wäsche in der Waschmaschine detektieren. Der Aktorsteuerbefehl 20 kann basierend auf dem detektierten Zustand der Wäsche bestimmt werden.
-
7 bildet ein schematisches Diagramm des Steuersystems 12 ab, das konfiguriert ist, ein System 100 (z. B. eine Produktionsmaschine) wie z. B. ein Stanzwerkzeug, ein Schneidewerkzeug oder einen Tieflochbohrer, des Produktionssystems 102, wie z. B. den Teil einer Fertigungsanlage, zu steuern. Das Steuersystem 12 kann konfiguriert sein, den Aktor 14 zu steuern, der konfiguriert ist das System 100 (z. B. die Produktionsmaschine) zu steuern
-
Der Sensor 16 des Systems 100 (z. B. der Produktionsmaschine) kann ein optischer Sensor sein, der konfiguriert ist, eine oder mehrere Eigenschaften des hergestellten Produkts 104 zu erfassen. Der Klassifizierer 24 kann konfiguriert sein, einen Zustand des hergestellten Produkts 104 aus einer oder mehreren der erfassten Eigenschaften zu bestimmen. Der Aktor 14 kann konfiguriert sein, das System 100 (z. B. die Produktionsmaschine) abhängig von dem bestimmten Zustand des hergestellten Produkts 104 für einen nachfolgenden Produktionsschritt des hergestellten Produkts 104 zu steuern. Der Aktor 14 kann konfiguriert sein, Funktionen des Systems 100 (z. B. der Produktionsmaschine) auf dem nachfolgenden hergestellten Produkt 106 des Systems 100 (z. B. der Produktionsmaschine) abhängig von dem bestimmten Zustand des hergestellten Produkts 104 zu steuern.
-
8 bildet ein schematisches Diagramm des Steuersystems 12 ab, das konfiguriert ist, ein Elektrowerkzeug 150, wie z. B. eine Bohrmaschine oder einen Antrieb, der eine wenigstens teilweise autonome Betriebsart aufweist, zu steuern. Das Steuersystem 12 kann konfiguriert sein, den Aktor 14 zu steuern, der konfiguriert ist, das Elektrowerkzeug 150 zu steuern.
-
Der Sensor 16 des Elektrowerkzeugs 150 kann ein optischer Sensor sein, der konfiguriert ist, eine oder mehrere Eigenschaften der Arbeitsfläche 152 und/oder des Befestigungselements 154, das in die Arbeitsfläche 152 getrieben wird, zu erfassen. Der Klassifizierer 24 kann konfiguriert sein, einen Zustand der Arbeitsfläche 152 und/oder des Befestigungselements 154 relativ zu der Arbeitsfläche 152 aus einer oder mehreren der erfassten Eigenschaften zu bestimmen. Der Zustand kann sein, dass das Befestigungselement 154 mit der Arbeitsfläche 152 bündig ist. Der Zustand kann alternativ die Härte der Arbeitsfläche 152 sein. Der Aktor 14 kann konfiguriert sein, das Elektrowerkzeug 150 zu steuern, so dass die Antriebsfunktion des Elektrowerkzeugs 150 abhängig von dem bestimmten Zustand des Befestigungselements 154 relativ zu der Arbeitsfläche 152 oder einer oder mehreren erfassten Eigenschaften der Arbeitsfläche 152 angepasst wird. Beispielsweise kann der Aktor 14 die Antriebsfunktion anhalten, falls der Zustand des Befestigungselements 154 relativ zu der Arbeitsfläche 152 bündig ist. Als ein weiteres nicht einschränkendes Beispiel kann der Aktor 14 zusätzliches oder weniger Drehmoment anwenden, abhängig von der Härte der Arbeitsfläche 152.
-
9 bildet ein schematisches Diagramm des Steuersystems 12 ab, das konfiguriert ist einen automatischen persönlichen Assistenten 900 zu steuern. Das Steuersystem 12 kann konfiguriert sein, den Aktor 14 zu steuern, der konfiguriert ist, den automatischen persönlichen Assistenten 900 zu steuern. Der automatische persönliche Assistent 900 kann konfiguriert sein, ein Haushaltsgerät wie z. B. eine Waschmaschine, einen Herd, einen Backofen, eine Mikrowelle oder einen Geschirrspüler zu steuern.
-
Der Sensor 16 kann ein optischer Sensor und/oder ein Audiosensor sein. Der optische Sensor kann konfiguriert sein, Videobilder von Gesten 904 des Anwenders 902 zu empfangen. Der Audiosensor kann konfiguriert sein, Sprachbefehle des Anwenders 902 zu empfangen.
-
Das Steuersystem 12 des automatischen persönlichen Assistenten 900 kann konfiguriert sein, Aktorsteuerbefehle 20, die konfiguriert sind, das System 12 zu steuern, zu bestimmen. Das Steuersystem 12 kann konfiguriert sein, Aktorsteuerbefehle 20 in Übereinstimmung mit Sensorsignalen 18 des Sensors 16 zu bestimmen. Der automatische persönliche Assistent 900 ist konfiguriert, Sensorsignale 18 zu dem Steuersystem 12 zu senden. Der Klassifizierer 24 des Steuersystems 12 kann konfiguriert sein, einen Gestenerkennungsalgorithmus auszuführen, um Gesten 904, die durch einen Anwender 902 gemacht werden, zu identifizieren, um Aktorsteuerbefehle 20 zu bestimmen, und die Aktorsteuerbefehle 20 zu dem Aktor 14 zu senden. Der Klassifizierer 24 kann konfiguriert sein, Informationen aus einem nichtflüchtigen Speicher in Reaktion auf die Geste 904 abzurufen und die abgerufenen Informationen in einer für den Empfang durch den Anwender 902 geeigneten Form auszugeben.
-
10 bildet ein schematisches Diagramm des Steuersystems 12 ab, das konfiguriert ist das Überwachungssystem 250 zu steuern. Das Überwachungssystem 250 kann konfiguriert sein, den Zugang durch die Tür 252 physikalisch zu steuern. Der Sensor 16 kann konfiguriert sein, eine Szene zu detektieren, die für die Entscheidung, ob der Zugang gewährt wird, relevant ist. Der Sensor 16 kann ein optischer Sensor sein, der konfiguriert ist, Bild- und/oder Videodaten zu erzeugen und zu senden. Solche Daten können durch das Steuersystem 12 verwendet werden, um das Gesicht einer Person zu detektieren.
-
Der Klassifizierer 24 des Steuersystems 12 des Überwachungssystems 250 kann konfiguriert sein, die Bild- und/oder Videodaten durch Abgleichen von Identitäten bekannter Menschen, die im nichtflüchtigen Speicher 26 gespeichert sind, zu interpretieren, und dadurch eine Identität einer Person bestimmen. Der Klassifizierer 24 kann konfiguriert sein, einen Aktorsteuerbefehl 20 in Reaktion auf die Interpretation der Bild- und/oder Videodaten zu erzeugen. Das Steuersystem 12 ist konfiguriert, den Aktorsteuerbefehl 20 zu dem Aktor 14 zu senden. In dieser Ausführungsform kann der Aktor 14 konfiguriert sein, die Tür 252 in Reaktion auf den Aktorsteuerbefehl 20 zu sperren oder zu entsperren. In anderen Ausführungsformen ist auch eine nicht physikalische, logische Zugangssteuerung möglich.
-
Das Überwachungssystem 250 kann auch ein Beobachtungssystem sein. In einer solchen Ausführungsform kann der Sensor 16 ein optischer Sensor sein, der konfiguriert ist, eine Szene zu detektieren, die unter Beobachtung ist, und das Steuersystem 12 ist konfiguriert, die Anzeigevorrichtung 254 zu steuern. Der Klassifizierer 24 ist konfiguriert, eine Klassifizierung einer Szene zu bestimmen, z. B. ob die durch den Sensor 16 detektierte Szene verdächtig ist. Das Steuersystem 12 ist konfiguriert, einen Aktorsteuerbefehl 20 zu der Anzeigevorrichtung 254 in Reaktion auf die Klassifizierung zu senden. Die Anzeigevorrichtung 254 kann konfiguriert sein, den angezeigten Inhalt in Reaktion auf den Aktorsteuerbefehl 20 anzupassen. Beispielsweise kann die Anzeigevorrichtung 254 ein Objekt, das durch den Klassifizierer 24 für verdächtig gehalten wird, hervorheben.
-
11 bildet ein schematisches Diagramm des Steuersystems 12 ab, das konfiguriert ist, ein Bildaufnahmesystem 1100, beispielsweise eine MRI-Einrichtung, Röntgen-Bildaufnahmeeinrichtung oder Ultraschalleinrichtung, zu steuern. Der Sensor 16 kann beispielsweise ein Bildaufnahmesensor sein. Der Klassifizierer 24 kann konfiguriert sein, eine Klassifizierung des gesamten oder eines Teils des erfassten Bilds zu bestimmen. Der Klassifizierer 24 kann konfiguriert sein, einen Aktorsteuerbefehl 20 in Reaktion auf die Klassifizierung, die durch das trainierte neuronale Netz erhalten wird, zu bestimmen oder auszuwählen. Beispielsweise kann der Klassifizierer 24 ein Gebiet eines erfassten Bilds als potentiell anomal interpretieren. In diesem Fall kann der Aktorsteuerbefehl 20 bestimmt oder ausgewählt werden, um zu veranlassen, dass die Anzeigevorrichtung 302 die Bildaufnahme anzeigt und das potentiell anomale Gebiet hervorhebt.
-
Die Prozesse, Verfahren oder Algorithmen, die hier offenbart sind, können an eine Verarbeitungsvorrichtung, eine Steuereinheit oder einen Computer, die/der irgendeine existierende programmierbare elektronische Steuereinheit oder dedizierte elektronische Steuereinheit enthalten kann, lieferbar sein oder durch sie/ihn implementiert werden. Ähnlich können die Prozesse, Verfahren oder Algorithmen als Daten und Anweisungen, die durch eine Steuereinheit oder einen Computer ausführbar sind, in vielen Formen gespeichert sein, die, ohne jedoch darauf beschränkt zu sein, Informationen, die permanent in nicht beschreibbaren Speichermedien wie z. B. ROM-Vorrichtungen gespeichert sind, und Informationen, die auf beschreibbaren Speichermedien wie z. B. Floppy-Disks, Magnetbändern, CDs, RAM-Vorrichtungen und anderen magnetischen und optischen Medien gespeichert sind, enthalten. Die Prozesse, Verfahren oder Algorithmen können auch in einem als Software ausführbaren Objekt implementiert sein. Alternativ können die Prozesse, Verfahren oder Algorithmen insgesamt oder teilweise unter Verwendung geeigneter Hardwarekomponenten, wie z. B. anwendungsspezifischer integrierter Schaltungen (ASICs), im Feld programmierbarer Gatter-Arrays (FPGAs), Zustandsautomaten, Steuereinheiten oder anderer Hardwarekomponenten oder Vorrichtungen oder einer Kombination aus Hardware-, Software- und Firmware-Komponenten, verwirklicht sein.
-
Obwohl beispielhafte Ausführungsformen vorstehend beschrieben sind, ist nicht beabsichtigt, dass diese Ausführungsformen alle möglichen Formen, die durch die Ansprüche eingeschlossen sind, beschreiben. Die Sprache, die in der Spezifikation verwendet ist, ist eher die Sprache der Beschreibung als der Einschränkung, und es ist zu verstehen, dass verschiedene Änderungen vorgenommen werden können, ohne von dem Geist und dem Schutzbereich der Offenbarung abzuweichen. Die vorstehend beschrieben können die Merkmale verschiedener Ausführungsformen kombiniert werden, um weitere Ausführungsformen der Erfindung, die nicht ausdrücklich beschrieben oder dargestellt sind, zu bilden. Obwohl verschiedene Ausführungsformen so beschrieben worden sein könnten, dass sie Vorteile bereitstellen oder dass sie gegenüber anderen Ausführungsformen oder Implementierungen aus dem Stand der Technik in Bezug auf eine oder mehrere gewünschte Eigenschaften bevorzugt sind, erkennen normale Fachleute, dass ein oder mehrere Merkmale oder Eigenschaften einen Kompromiss bilden können, um gewünschte Attribute des Gesamtsystems, die von der spezifischen Anwendung und Implementierung abhängen, zu erreichen. Diese Attribute können, ohne jedoch darauf beschränkt zu sein, Kosten, Festigkeit, Haltbarkeit, Lebenszykluskosten, Vermarktbarkeit, äußere Form, Verpackung, Größe, Bedienbarkeit, Gewicht, Herstellbarkeit, Einfachheit der Montage usw. enthalten. Somit sind in dem Umfang, in dem irgendwelche Ausführungsformen als weniger wünschenswert als andere Ausführungsformen oder Implementierungen aus dem Stand 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 wünschenswert sein.