DE102023125179A1 - Ki-basierte steuerung für robotiksysteme und anwendungen - Google Patents

Ki-basierte steuerung für robotiksysteme und anwendungen Download PDF

Info

Publication number
DE102023125179A1
DE102023125179A1 DE102023125179.1A DE102023125179A DE102023125179A1 DE 102023125179 A1 DE102023125179 A1 DE 102023125179A1 DE 102023125179 A DE102023125179 A DE 102023125179A DE 102023125179 A1 DE102023125179 A1 DE 102023125179A1
Authority
DE
Germany
Prior art keywords
machine learning
learning models
operations
robot
training
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102023125179.1A
Other languages
English (en)
Inventor
Ankur Handa
Gavriel STATE
Arthur David Allshire
Victor Makoviichuk
Aleksei Vladimirovich Petrenko
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE102023125179A1 publication Critical patent/DE102023125179A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39271Ann artificial neural network, ffw-nn, feedforward neural network

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)
  • Feedback Control In General (AREA)

Abstract

Systeme und Techniken zum Steuern eines Roboters sind hierin beschrieben. In zumindest einem Ausführungsbeispiel wird ein maschinenlern-Modell zum Steuern eines Roboters trainiert basierend auf zumindest einer oder mehreren populationsbasierten Trainingsoperationen oder einer oder mehreren verstärkendes Lernen-Operationen. Sobald trainiert, kann das maschinenlern-Modell benutzt werden und verwendet werden, um einen Roboter zu steuern, um eine Aufgabe durchzuführen.

Description

  • TECHNISCHES GEBIET
  • Ausführungsbeispiele der vorliegenden Offenbarung beziehen sich im Allgemeinen auf Computerwissenschaft und Robotik und spezifischer auf künstliche Intelligenz-(KI)-basierte Steuerung für Robotiksystemen und Anwendungen.
  • HINTERGRUND
  • Roboter werden zunehmend eingesetzt, um Aufgaben in verschiedenen Umgebungen automatisch auszuführen. Ein Ansatz zur Steuerung eines Roboters zur Ausführung einer Aufgabe besteht darin, zunächst ein maschinenlern-Modell zu trainieren, das dann zur Steuerung des Roboters zur Ausführung der Aufgabe verwendet wird. Das maschinenlern-Modell kann unter Verwenden von Trainingsdaten trainiert werden, die durch Simulation generiert oder auf andere Weise erlangt werden.
  • Ein Nachteil der Verwendung herkömmlicher Techniken, um ein maschinenlern-Modell zu trainieren, einen Roboter zu steuern, ist, dass diese Techniken häufig zu unvorhersehbaren Ergebnissen führen. Wenn beispielsweise herkömmliche Techniken angewendet werden, um ein maschinenlern-Modell zu trainieren, einen Roboter zu steuern, können einige Trainingsläufe schneller konvergieren, ein trainiertes maschinelles Lernmodell zu erzeugen, als es anderen Trainingsläufen möglich ist, zu konvergieren. Darüber hinaus kann es sein, dass einige Trainingsläufe vollständig versagen zu konvergieren. Selbst wenn ein Trainingslauf konvergiert, um ein trainiertes maschinenlern-Modell zu erzeugen, mag dieser Trainingslauf die große Anzahl möglicher Roboterverhaltensweisen nicht ausreichend untersucht haben. Infolgedessen mag das trainierte Modelllernmodell nicht in der Lage sein, einen Roboter in der realen Welt korrekt zu steuern.
  • Wie das vorgenannte illustriert, sind, was in der Technik notwendig ist, effizientere Techniken zum Trainieren von maschinellen Lernmodellen, um Roboter zu steuern.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
    • 1 illustriert ein Blockdiagramm eines Systems, das konfiguriert ist, um einen oder mehrere Aspekte von zumindest einem Ausführungsbeispiel zu implementieren;
    • 2 ist eine detailliertere Illustration des maschinenlern-Servers von 1, gemäß zumindest einem Ausführungsbeispiel;
    • 3 illustriert einen Ansatz zum Trainieren eines Robotik-Steuerungs-Agenten, gemäß zumindest einem Ausführungsbeispiel;
    • 4 ist eine detailliertere Illustration des verstärkenden Lernens von 3, gemäß zumindest einem Ausführungsbeispiel;
    • 5A-5D illustrieren beispielhafte Simulationsumgebungen zum Trainieren von Robotik-Steuerungs-Agenten, um Roboter zu steuern, verschiedene Aufgaben durchzuführen, gemäß zumindest einem Ausführungsbeispiel;
    • 6 illustriert ein Flussdiagramm eines Prozesses zum Trainieren von Robotik-Steuerungs-Agenten, gemäß zumindest einem Ausführungsbeispiel;
    • 7 illustriert ein Flussdiagramm eines Prozesses zum Steuern eines Roboters unter Verwenden eines trainierten Robotik-Steuerungs-Agenten, gemäß zumindest einem Ausführungsbeispiel;
    • 8A illustriert eine Inferenzier- und/oder Trainingslogik, gemäß zumindest einem Ausführungsbeispiel;
    • 8B illustriert eine Inferenzier- und/oder Trainingslogik, gemäß zumindest einem Ausführungsbeispiel; und
    • 9 illustriert Training und Benutzung eines neuronalen Netzwerks, gemäß zumindest einem Ausführungsbeispiel.
  • DETAILLIERTE BESCHREIBUNG
  • Ausführungsbeispiele der vorliegenden Offenbarung stellen verbesserte Techniken zum Trainieren und Verwenden von maschinenlern-Modellen bereit, um Roboter zu steuern, Aufgaben durchzuführen. In zumindest einem Ausführungsbeispiel wird populationsbasiertes Training in Verbindung mit verstärkendem Training benutzt, um maschinenlern-Modelle (z.B. neuronale Netzwerke) zu trainieren, um einen Roboter zu steuern, um eine Aufgabe durchzuführen. Während des Trainings wird eine Population von maschinenlern-Modellen mit verschiedenen Parameterwerten initialisiert und die maschinenlern-Modelle werden parallel trainiert unter Verwenden von verschiedenen Hyperparameterwerten. Sowohl die Parameter und Trainings-Hyperparameterwerte für jedes maschinenlern-Modell als auch die Performance für jedes maschinenlern-Modell nach Training werden in einem gemeinsam benutzten Verzeichnis gespeichert. Nach einer Zeitdauer wird ein Prozentsatz der am schlechtesten performenden maschinenlern-Modelle unter Verwenden der gespeicherten Parameterwerten, die mit einem Prozentsatz der am besten performenden maschinenlern-Modelle assoziiert sind, reinitialisiert. Zusätzlich werden die Trainings-Hyperparameterwerte, die mit anderen maschinenlern-Modellen als den am besten performenden maschinenlern-Modellen assoziiert sind, verändert. In zumindest einem Ausführungsbeispiel wird das Training dahingehend dezentralisiert, dass die Trainingsläufe für verschiedene maschinenlern-Modelle nicht synchronisiert sind. In zumindest einem Ausführungsbeispiel umfasst das Training Meta-Optimierung eines Ziels via eine äußere Optimierungsschleife einer populationsbasierten Trainingstechnik, zusätzlich zum Optimieren einer Belohnung (reward) in einer inneren Schleife einer verstärkendes Lernen Technik. Nachdem eine Abbruchbedingung des Trainings erreicht ist, wird ein am besten performendes maschinenlern-Modell gewählt. Das am besten performende Modell kann dann benutzt werden, um einen physikalischen Roboter in einer Realwelt-Umgebung zu steuern.
  • Die Techniken zum Training und Verwenden von maschinenlern-Modell(en), um Roboter zu steuern, um Aufgaben durchzuführen, haben viele Realwelt-Anwendungen. Zum Beispiel könnten solche Techniken verwendet werden, um einen Roboter zu steuern, um ein Objekt zu erreichen, das Objekt anzuheben, das Objekt zu manipulieren und/oder das Objekt zu bewegen. Als ein anderes Beispiel könnten solche Techniken verwendet werden, um einen Roboter zu steuern, sich innerhalb einer Umgebung zu bewegen (z.B. zu gehen oder zu navigieren).
  • Die Systeme und Verfahren, die hierin beschrieben werden, können für eine Vielfalt von Zwecken verwendet werden, beispielsweise und ohne Einschränkung, zum Verwenden in Systemen, die mit Maschinensteuerung, Maschinenbewegung, Maschinenfahren, Synthetik-Daten-Erzeugung, Modelltraining, Wahrnehmung, erweiterte Realität, virtuelle Realität, gemischte Realität, Robotik, Sicherheit und Überwachung, Simulation und Digital-Zwillingserzeugung, autonome oder halb-autonome Maschinenanwendungen, Deep-Learning, Umgebungssimulation, Datencenter-Verarbeitung, Dialog-KI, Lichttransport-Simulation (z. B. Raytracing, Pfadtracing, usw.) Erzeugung gemeinschaftlichen Inhalts für 3D-Aktiva (3D-assets), Cloudberechnung und/oder irgendeine andere geeignete Anwendung assoziiert sind.
  • Offenbarte Ausführungsbeispiele können in einer Vielfalt von verschiedenen Systemen, wie beispielsweise Fahrzeugsystemen (z. B. einem Infotainment- oder Plug-in Spiele/Streaming-System einer autonomen oder halb-autonomen Maschine), Systemen, die unter Verwenden eines Roboters implementiert sind, Luftsystemen, medizinischen Systemen, Bootssysteme, smarten Bereichs-Überwachungssystemen, Systemen zum Durchführen von Deep-Learning-Operationen, Systemen zur Durchführung von Simulationsoperationen, Systemen zum Durchführen von Digital-Zwillingsoperationen, Systemen, die unter Verwenden einer Edge-Vorrichtung implementiert sind, Systemen, die eine oder mehrere virtuelle Maschinen (VMs) beinhalten, Systemen zum Durchführen von Synthetik-Daten-Erzeugungs-Operationen, Systemen, die zumindest teilweise in einem Datencenter implementiert sind, Systemen zum Durchführen von Dialog-KI-Operationen, Systemen, die eine oder mehrere Sprachmodelle - wie beispielsweise große Sprachmodelle (large language models, LLMs) implementieren, die textförmige, Audio-, Bild- und/oder Sensordaten prozessieren, um Ausgaben zu erzeugen, Systemen zum Durchführen von Lichttransport-Simulation, Systemen zum Durchführen von Erzeugung gemeinsamen Inhalts für 3D-Aktiva, Systemen, die zumindest teilweise unter Verwenden von Cloud-Berechnungsressourcen implementiert werden, und/oder anderen Typen von Systemen beinhaltet sein.
  • SYSTEMÜBERBLICK
  • 1 illustriert ein Blockdiagramm eines Systems 100, das konfiguriert ist, einen oder mehrere Aspekte zumindest eines Ausführungsbeispiels zu implementieren. Wie gezeigt, umfasst das System 100 einen maschinenlern-Server 110, einen Datenspeicher 120 und eine Rechenvorrichtung 140 in Kommunikation über ein Netzwerk 130, das ein Weitverkehrs-Netzwerk (WAN), wie beispielsweise das Internet, ein lokales Netzwerk (LAN) und/oder irgendein anderes geeignetes Netzwerk sein kann.
  • Wie gezeigt führt ein Modelltrainer 116 auf einem oder mehreren Prozessoren 112 des maschinenlern-Server 110 aus und ist in einem Systemarbeitsspeicher 114 des maschinenlern-Server 110 gespeichert. Der/die Prozessor(en) 112 empfangen Benutzereingaben von Eingabevorrichtungen, wie beispielsweise einer Tastatur oder einer Maus. Im Betrieb können der eine oder die mehreren Prozessoren 112 einen oder mehrere Primärprozessoren des maschinenlern-Servers 110 umfassen, die die Operationen von anderen Systemkomponenten steuern und koordinieren. Insbesondere kann der/die Prozessor(en) 112 Befehle ausgeben, die den Betrieb von einer oder mehreren Grafikprozessoreinheiten (GPUs) (nicht gezeigt) und/oder andere parallel prozessierende Schaltkreise (z.B. parallel prozessierende Einheiten, Deep-Learning-Beschleuniger, usw.) steuern, die Schaltkreise enthalten, die für Grafik- und Videoprozessierung optimiert sind, einschließlich beispielsweise Videoausgabe-Schaltkreise. Die GPU(s) kann/können Pixel an eine Anzeigevorrichtung liefern, die irgendeine konventionelle Kathodenstrahlröhre, eine Flüssigkristallanzeige, eine Anzeige mit lichtemittierenden Dioden und/oder ähnliches sein kann.
  • Der Systemarbeitsspeicher 114 des maschinenlern-Servers 110 speichert Inhalt, wie beispielsweise Softwareanwendungen und Daten, zum Verwenden mittels des/der Prozessor(en) 112 und der GPU(s) und/oder anderer Prozessoreinheiten. Der Systemarbeitsspeicher 114 kann jede Art von Arbeitsspeicher sein, der fähig ist, Daten und Softwareanwendungen zu speichern, wie beispielsweise ein Direktzugriffsspeicher (read access memory, RAM), ein Nurlesespeicher (read only memory, ROM), ein löschbarer programmierbarer Nurlesespeicher (EPROM oder Flash ROM), oder irgendeine geeignete Kombination des Vorgenannten. In zumindest einem Ausführungsbeispiel kann ein Speicher (nicht gezeigt) den Systemarbeitsspeicher 114 ergänzen oder ersetzen. Der Speicher kann jede Anzahl und Art von externen Arbeitsspeichern enthalten, auf die der Prozessor 112 und/oder die GPU zugreifen kann. Zum Beispiel, und ohne Einschränkung, kann der Speicher eine digitale Speicherkarte, einen Flashspeicher, eine portable Compact Disc Read-Only Memory (CD-ROM), eine optische Speichervorrichtung, eine magnetische Speichervorrichtung und/oder jede geeignete Kombination des Vorgenannten umfassen.
  • Der maschinenlern-Server 110, der hierin gezeigt wird, ist nur beispielhaft und Variationen und Modifikationen sind möglich, ohne von dem Umfang der vorliegenden Offenbarung abzuweichen. Zum Beispiel kann die Anzahl von Prozessoren 112, die Anzahl von GPUs und/oder anderer Typen von Prozessoreinheiten, die Anzahl von Systemarbeitsspeichern 114 und/oder die Anzahl von Anwendungen, die in Systemarbeitsspeicher 114 enthalten sind, wie gewünscht modifiziert werden. Ferner kann die Verbindungstopologie zwischen den verschiedenen Einheiten in 1 wie gewünscht modifiziert werden. In zumindest einem Ausführungsbeispiel kann jede Kombination des/der Prozessor(en) 112, des Systemarbeitsspeichers 114 und/oder einer GPU(s) in jeder Art von virtuellen Rechensystem, verteilten Rechensystem und/oder Cloud-Rechensystem, wie beispielsweise einem öffentlichen, privaten oder hybriden Cloudsystem, enthalten sein und/oder dadurch ersetzt werden.
  • In zumindest einem Ausführungsbeispiel ist der Modelltrainer 116 konfiguriert, um ein oder mehrere maschinenlern-Modelle, einschließlich einem Roboter-Steuerungs-Agenten zu trainieren. In solchen Fällen wird der Roboter-Steuerungs-Agent trainiert, um für einen Roboter durchzuführende Handlungen zu erzeugen, basierend auf einem Ziel und Sensordaten, die via einen oder mehrere Sensoren 180i (hierin kollektiv als Sensoren 180 und individuell als ein Sensor 180 in Bezug genommen) erlangt werden. Zum Beispiel können die Sensoren 180 in zumindest einem Ausführungsbeispiel eine oder mehrere Kameras, eine oder mehrere RGB- (rot, grün, blau) Kameras, eine oder mehrere Tiefen- (oder Stereo) Kameras (z.B. Kameras, die Flugzeit-Sensoren verwenden), einen oder mehrere LiDAR- (Lichtdetektions- und Entfernungsmessungs-) Sensoren, einen oder mehrere RADAR-Sensoren, einen oder mehrere Ultraschallsensoren, irgendeine Kombination davon, usw. umfassen. Sowohl eine Architektur des Roboter-Steuerungs-Agenten 150 als auch Techniken zum Trainieren desselben werden hierin in größeren Detail im Zusammenhang mit zumindest 3-6 diskutiert. Trainingsdaten und/oder trainierte (oder benutzte) maschinenlern-Modelle, einschließlich dem Roboter-Steuerungs-Agenten 150, können in dem Datenspeicher 120 gespeichert werden. In zumindest einem Ausführungsbeispiel kann der Datenspeicher 120 irgendeine Speichervorrichtung oder Vorrichtungen, wie beispielsweise feste Plattenlaufwerk(e), Flashlaufwerk(e), optischer Speicher, netzgebundene Speicher (network attached storage, NAS) und/oder ein Speichernetzwerk (storage area-network, SAN), umfassen. Obwohl als über das Netzwerk 130 zugreifbar gezeigt, kann der maschinenlern-Server 110 in zumindest einem Ausführungsbeispiel den Datenspeicher 120 umfassen.
  • Wie gezeigt, wird eine Roboter-Steuerungs-Anwendung 146, die den Roboter-Steuerungs-Agenten 150 verwendet, in einem Systemarbeitsspeicher 144 gespeichert und führt auf einen oder mehreren Prozessoren 142 der Rechenvorrichtung 140 aus. Sobald trainiert, kann der Roboter-Steuerungs-Agent 150 benutzt werden, wie beispielsweise via die Roboter-Steuerungs-Anwendung 146, um einen physikalischen Roboter in einer Realwelt-Umgebung zu steuern.
  • Wie gezeigt, umfasst der Roboter 160 sowohl mehrere Glieder 161, 163 und 165, die starre Elemente sind, als auch Gelenke 162, 164 und 166, die bewegliche Komponenten sind, die betätigt werden können, um Relativbewegung zwischen angrenzenden Gliedern zu bewirken. Zusätzlich umfasst der Roboter 160 mehrere Finger 168i (hierin kollektiv als Finger (Plural) 168 und individuell als ein Finger 168 in Bezug genommen), die gesteuert werden können, ein Objekt zu greifen. Zum Beispiel kann der Roboter 160 in zumindest einem Ausführungsbeispiel ein verriegeltes Handgelenk und mehrere (z.B. vier) Finger umfassen. Obwohl ein beispielhafter Roboter 160 für illustrative Zwecke gezeigt wird, in zumindest einem Ausführungsbeispiel, können die hierin offenbarten Techniken angewendet werden, um irgendeinen geeigneten Roboter zu steuern.
  • Ist eine detailliertere Illustration des maschinenlern-Server 110 von 1, gemäß verschiedenen Ausführungsbeispielen. Der maschinenlern-Server 110 kann jede Art von Rechensystem, einschließlich und ohne Einschränkung einer Servermaschine, einer Serverplattform einer Desktopmaschine, einer Laptopmaschine, einer handgehaltenen/mobilen Vorrichtung, einem Kiosksystem (digital kiosk), einem Fahrzeug-Infotainmentsystem und/oder einer anziehbaren Vorrichtung, umfassen. In zumindest einem Ausführungsbeispiel ist der maschinenlern-Server 110 eine Servermaschine, die in einem Datencenter oder in einer Cloudrechen-Umgebung, die als ein Service über ein Netzwerk skalierbare Rechenressourcen bereitstellt, operiert. In zumindest einem Ausführungsbeispiel kann die Rechenvorrichtung 140 eine oder mehrere ähnliche Komponenten wie der maschinenlern-Server 110 umfassen.
  • In verschiedenen Ausführungsbeispielen umfasst der maschinenlern-Server 110, ohne Einschränkung, den/die Prozessor(en) 112 und den/die Arbeitsspeicher, die via eine Arbeitsspeicher-Bridge 205 und einen Kommunikationspfad 213 an ein Parallelprozessor-Subsystem 212 gekoppelt sind. Die Arbeitsspeicher-Bridge 205 ist ferner via einen Kommunikationspfad 206 an eine E/A-Bridge 207 (Eingabe/Ausgabe) gekoppelt, und die E/A-Bridge ist wiederum an einen Switch 216 gekoppelt.
  • In einem Ausführungsbeispiel ist die E/A-Bridge 207 konfiguriert, um Benutzer-Eingabe-Information von optionalen Eingabevorrichtungen 208, wie beispielsweise eine Tastatur, Maus, Touchscreen, Sensordatenanalyse (z.B. Evaluieren von Gesten, Sprache oder anderen Information über eine oder mehrere Verwendungen in einem Sichtfeld oder Sensorfeld eines oder mehrerer Sensoren) und/oder ähnlichen, zu empfangen und die Eingabeinformationen zu dem/den Prozessor(en) 112 zum Prozessieren weiterzuleiten. In zumindest einem Ausführungsbeispiel kann der maschinenlern-Server 110 eine Servermaschine in einer Cloud-Rechenumgebung sein. In solchen Ausführungsbeispielen mag der maschinenlern-Server 110 keine Eingabevorrichtungen 208 umfassen, aber mag äquivalente Eingabeinformationen mittels Empfangens von Befehlen (z.B. in Reaktion auf eine oder mehrere Eingaben von einer entfernten Rechenvorrichtung) in der Form von Nachrichten empfangen, die über ein Netzwerk übermittelt werden und via den Netzwerkadapter 218 empfangen werden. In zumindest einem Ausführungsbeispiel ist der Switch 216 konfiguriert, um Verbindungen zwischen E/A-Bridge 207 und anderen Komponenten des maschinenlern-Servers 110, wie beispielsweise einem Netzwerkadapter 218 und verschiedenen Einsteckkarten 220 und 221 bereitzustellen.
  • In zumindest einem Ausführungsbeispiel ist die E/A-Bridge 207 an eine Systemplatte 214 gekoppelt, die konfiguriert sein kann, Inhalt und Anwendungen und Daten zum Verwenden mittels des/der Prozessors/en 112 und des Parallelprozessor-Subsystems 212 zu speichern. In einem Ausführungsbeispiel stellt die Systemplatte 214 nicht-volantile Speicherung für Anwendungen und Daten bereit und kann fixierte oder entfernbare Festplattenlaufwerke, Flashspeicher-Vorrichtungen und CD-ROM (Kompaktdisk-Nurlesespeicher) DVD-ROM (digitale vielseitige Disk-ROM), Blu-ray, HD-DVD (DVD hoher Auflösung) oder andere magnetische, optische oder Festkörper-Speichervorrichtungen umfassen. In verschiedenen Ausführungsbeispielen können andere Komponenten, wie beispielsweise Universal-Serial-Bus oder andere Port-Verbindungen, Kompaktdisklaufwerke, digitale vielseitige Disk-Laufwerke, Filmaufzeichnungsvorrichtungen und ähnliches auch an die E/A-Bridge verbunden sein.
  • In verschiedenen Ausführungsbeispielen kann die Arbeitsspeicher-Bridge 205 ein Northbridge-Chip sein und die E/A-Bridge 207 kann ein Southbridge-Chip sein. Zusätzlich können die Kommunikationspfade 206 und 213 genauso wie andere Kommunikationspfade innerhalb des maschinenlern-Server 110 unter Verwenden von irgendwelchen technisch geeigneten Protokollen implementiert sein, einschließlich aber nicht einschränkend AGP (Accelerated Graphics Port), HyperTransport oder irgendeinem anderen im Stand der Technik bekannten Bus oder point-to-point-Kommunikationsprotokoll.
  • In zumindest einem Ausführungsbeispiel weist das Parallelprozessor-Subsystem 212 ein Grafik-Subsystem auf, das Pixel an eine optionale Anzeigevorrichtung 210 liefert, die irgendeine konventionelle Kathodenstrahlröhre, Flüssigkristallanzeige, LED-Anzeige (lichtemittierende Diode) und/oder ähnliches sein kann. In solchen Ausführungsbeispielen kann das Parallelprozessor-Subsystem 212 Schaltkreise enthalten, die für Grafik- und Videoverarbeitung optimiert sind, einschließlich zum Beispiel Videoausgabe-Schaltkreise. Wie in größeren Detail hierin im Zusammenhang mit zumindest 2-3 beschrieben, können solche Schaltkreise über eine oder mehrere Parallelprozessor-Einheiten (parallel processing units, PPUs), hierin auch als Parallelprozessoren in Bezug genommen, hinweg eingebaut sein, die innerhalb des Parallelprozessor-Subsystem 212 enthalten sind.
  • In zumindest einem Ausführungsbeispiel enthält das Parallelprozessor-Subsystem 212 Schaltkreise, die für Universalzweck- und/oder Rechenverarbeitung optimiert (z.B. einer Optimierung unterzogen) sind. Nochmal, solche Schaltkreise können über eine oder mehrere PPUs hinweg eingebaut sein, die innerhalb des Parallelprozessor-Subsystems 212 enthalten sind, das dazu konfiguriert sind, solche Universalzweck- und/oder Rechenoperationen durchzuführen. In noch anderen Ausführungsbeispielen können die eine oder mehreren innerhalb des Parallelprozessor-Subsystem 212 enthaltenen PPUs konfiguriert sein, Grafikverarbeitung, Universalzweckverarbeitung durchzuführen und/oder Verarbeitungsoperationen zu berechnen. Der Systemarbeitsspeicher 114 umfasst zumindest einen Vorrichtungstreiber, der konfiguriert ist, die Verarbeitungsoperationen der einen oder mehreren PPUs innerhalb des Parallelprozessor-Subsystems 212 zu verwalten. Zusätzlich umfasst der Systemarbeitsspeicher 114 den Modelltrainer 116. Obwohl hierin mit Referenz auf den Modelltrainer 116 beschrieben, können die hierin offenbarten Techniken auch, entweder ganz oder teilweise, in anderer Software und/oder Hardware implementiert werden, wie beispielsweise im Parallelprozessor-Subsystem 212.
  • In verschiedenen Ausführungsbeispielen kann das Parallelprozessor-Subsystem 212 mit einem oder mehreren anderen Elementen von 1 integriert sein, um ein einziges System zu bilden. Zum Beispiel kann das Parallelprozessor-Subsystem 212 mit Prozessor 112 und anderen Verbindungsschaltkreisen auf einem einzelnen Chip integriert sein, um ein System-on-a-Chip (SoC) zu bilden.
  • In zumindest einem Ausführungsbeispiel umfasst/en der/die Prozessor(en) 112 den Primärprozessor des maschinenlern-Server 110, der Operationen von anderen Systemkomponenten steuert und koordiniert. In zumindest einem Ausführungsbeispiel gibt der/die Prozessor(en) 112 Kommandos heraus, die die Operation von PPUs steuern. In zumindest einem Ausführungsbeispiel ist Kommunikationspfad 213 ein PCIExpress-Link, in welchen dedizierte Leitungen für jede PPU allokiert sind. Andere Kommunikationspfade können ebenfalls verwendet werden. Die PPU implementiert vorteilhaft eine hochgradig parallelisierte Verarbeitungsarchitektur und die PPU kann mit einer Quantität von lokalen parallel prozessierenden Arbeitsspeicher (PP-Arbeitsspeicher) versehen werden.
  • Es wird anerkannt werden, dass das hierin gezeigte System beispielhaft ist und das Variationen und Modifikationen möglich sind. Die Verbindungstopologie einschließlich der Anzahl und Anordnung von Bridges, der Anzahl von CPUs 202 und der Anzahl von Parallelprozessor-Subsystemen 212 kann wie gewünscht modifiziert werden. Zum Beispiel könnte in zumindest einem Ausführungsbeispiel System-Arbeitsspeicher 114 mit dem/den Prozessor(en) 112 eher direkt als durch die Arbeitsspeicher-Bridge 205 verbunden sein und andere Vorrichtungen können mit dem System-Arbeitsspeicher 114 via die Arbeitsspeicher-Bridge 205 und den Prozessor 112 kommunizieren. In anderen Ausführungsbeispielen kann das Parallelprozessor-Subsystem 212 eher mit der E/A-Bridge 207 oder direkt mit dem Prozessor 112 verbunden sein als an die Arbeitsspeicher-Bridge 205. In noch anderen Ausführungsbeispielen können die E/A-Bridge 207 und die Arbeitsspeicher-Bridge 205 in einen einzigen Chip integriert sein, anstatt als eine oder mehrere diskrete Vorrichtungen zu existieren. In gewissen Ausführungsbeispielen mögen eine oder mehrere in 1 gezeigte Komponenten nicht vorhanden sein. Zum Beispiel könnte die Switch 216 weggelassen sein und der Netzwerkadapter 218 und die Einsteckkarten 220, 221 würden direkt mit der E/A-Bridge 207 verbunden sein. Schließlich könnten in gewissen Ausführungsbeispielen eine oder mehrere in 1 gezeigte Komponenten als virtualisierte Ressourcen in einer virtuellen Rechenumgebung, wie beispielsweise einer Cloud-Rechenumgebung, implementiert sein. Insbesondere kann das Parallelprozessor-Subsystem 212 in zumindest einem Ausführungsbeispiel als ein virtualisiertes Parallelprozessor-Subsystem implementiert sein. Zum Beispiel kann das Parallelprozessor-Subsystem 212 als eine virtuelle Grafik-Verarbeitungseinheit(en) (vGPU(s)) implementiert sein, das Grafiken auf einer virtuellen Maschine(n) (VM(s)) rendert, die auf einer Server-Maschine(n) ausführen, deren GPU(s) und andere physikalische Ressourcen über eine oder mehrere VMs gemeinsam benutzt werden.
  • TRAININGSMASCHINEN-LERNMODELLE ZUM STEURN VON ROBOTERN
  • 3 illustriert einen Ansatz zum Trainieren von Robotik-Steuerungs-Agenten gemäß zumindest einem Ausführungsbeispiel. Wie gezeigt, initialisiert der Modelltrainer 116 eine Population von Roboter-Steuerungs-Agenten 302i (hierin gemeinsam als Roboter-Steuerungs-Agenten 302 oder individuell als ein Roboter-Steuerungs-Agent 302 in Bezug genommen) mit verschiedenen Parameterwerten und verschiedenen Lern-Hyperparameterwerten. In zumindest einem Ausführungsbeispiel werden die Parameterwerte und die Lern-Hyperparameterwerte während der Initialisierung der Population von Roboter-Steuerungs-Agenten 302 zufällig gewählt.
  • Nachdem der Modelltrainer 116 die Population von Roboter-Steuerungs-Agenten 302 initialisiert, trainiert ein verstärkendes Lernen Modul 304 die Roboter-Steuerungs-Agenten 302 via eine verstärkendes Lernen Technik. Die Roboter-Steuerungs-Agenten 302 können trainiert werden, einen Roboter zu steuern, um jede technisch ausführbare Aufgabe durchzuführen. Beispiele von solchen Aufgaben schließen ein Neugreifen eines Objekts, Greifen und Werfen eines Objekts, Umorientieren eines Objekts und Aufgaben, die mehrere Arme eines Roboters involvieren, ein, was hierin im Zusammenhang mit 5 diskutiert wird.
  • In zumindest einem Ausführungsbeispiel werden die Roboter-Steuerungs-Agenten 302 trainiert, geschickte Einzelobjekt-Manipulationsaufgaben durchzuführen, die ein Ändern eines Zustands eines einzelnen starren Körpers erfordern, so dass der Zustand eine Zielposition x ∈ ℝ3 matcht und optional eine Zielorientierung R ∈ SO(3). Geschickte Einzelobjekt-Manipulationsaufgaben können sowohl eine Meisterung kontaktreichen Greifens mittels eines Roboters als auch eine Manipulation des Objektes in einer Hand eines Roboters verlangen, und geschickte Einzelobjekt-Manipulation kann eine essentielle Primitive sein, die verlangt wird, um Universal-Umordnungen durchzuführen. In zumindest einem Ausführungsbeispiel können geschickte Objekt-Manipulationsaufgaben als zeitdiskrete sequentielle Entscheidungsfindungs-Prozesse formalisiert werden. In solchen Fällen beobachtet zu jedem Zeitschritt ein Roboter-Steuerungs-Agent 302 einen Umgebungszustand st ∈ ℝNobs , und erzeugt eine Handlung at ∈ ℝNdof . Zum Beispiel kann die Handlung die gewünschten Winkel von Arm- und Fingergelenken des Roboters spezifizieren.
  • In zumindest einem Ausführungsbeispiel kann eine Aufgabe, die mittels eines Roboters durchzuführen ist, als ein Markov-Entscheidungsprozess (Markov Decision Process, MDP) modelliert werden, in welchem ein Roboter-Steuerungs-Agent 302 mit der Umgebung interagiert, um die erwartete episodische diskontierte Summe von Belohnungen E [ t = 0 T γ t r ( s t , a t ) ]
    Figure DE102023125179A1_0001
    zu maximieren. In solchen Fällen kann eine PPO-Technik (Optimierung der Proximal-Strategie, proximal policy optimization) verwendet werden, um sowohl eine Strategie πθ, was der Handelnde ist (z.B. der Roboter-Steuerungs-Agent), als auch eine Wertfunktion (value function) V θ π ( s )
    Figure DE102023125179A1_0002
    (hierin auch als der „Beurteiler“ („critic“) in Bezug genommen) zu lernen, wobei beides davon mittels eines einzelnen Parametervektor θ parametrisiert werden kann. In zumindest einem Ausführungsbeispiel ist die Architektur jedes Roboter-Steuerungs-Agenten 302 eines LSTM neuronalen Netzwerkes (langes Kurzzeitgedächtnis, long short-term memory), gefolgt von einem dreischichtigen Mehrschichtiges-Perzeptrons (multilayer perceptron, MLP). In zumindest einem Ausführungsbeispiel beobachten sowohl die Strategie πθ als auch der Beurteiler V θ π ( s )
    Figure DE102023125179A1_0003
    den Umgebungszustand direkt, wie beispielsweise Gelenkwinkel und Geschwindigkeiten, Handposition, Handrotation, Handgeschwindigkeit, Handwinkelgeschwindigkeit, Position der Fingerspitzen, Schlüsselpunkte des Objekts relativ zu der Hand, Schlüsselpunkte des Objekts relativ zu einem Ziel, Objektrotation, Objektgeschwindigkeit, Objektwinkelgeschwindigkeit und/oder Objektausdehnungen. In solchen Fällen kann die Strategie πθ zwei Vektoren µ, σ ∈ ℝNdof *Narm ausgeben, die als Parameter von Ndof * Narm unabhängigen gaußschen Wahrscheinlichkeitsverteilungen verwendet werden. Handlungen können Samples von solchen Verteilungen wie a N ( μ , σ )
    Figure DE102023125179A1_0004
    sein, normalisiert auf entsprechende Gelenklimits und als Zielgelenkwinkel interpretiert. Die Handlungen können dann zu einer Robotergelenksteuerung, wie beispielsweise einer PD-Steuerung (Proportional-Ableitung), übermittelt werden, die Gelenkdrehmomente liefert, um die Gelenke eines Roboters zu den Zielwinkeln, die mittels der Strategie πθ spezifiziert sind, zu bewegen.
  • 4 ist eine detailliertere Illustration des verstärkenden Lernens 304 von 3, gemäß zumindest einem Ausführungsbeispiel. In zumindest einem Ausführungsbeispiel trainiert der Modelltrainer 116 jeden Roboter-Steuerungs-Agenten unter Verwenden von verstärkendem Lernen und Simulationen eines Roboters, bei dem physikalische Parameter und/oder nicht physikalische Parameter der Simulationen innerhalb Bereichen von Werten randomisiert werden. Beispiele von physikalischen Parametern, die randomisiert werden können, schließen Gravitation, Masse, Skala, Reibung, Armatur (armature), Aufwand, Gelenksteife, Gelenkdämpfung und/oder Wiedergabe (restitution), die mit dem Roboter und/oder einem oder mehreren Objekten assoziiert sind, mit denen der Roboter interagiert, ein. Beispiele für nicht-physikalische Parameter, die randomisiert werden können, schließen eine Wahrscheinlichkeit für eine Verzögerung einer Objektpose, eine Frequenz einer Objektpose, ein beobachtetes korreliertes Rauschen, ein beobachtetes nicht-korreliertes Rauschen, eine zufällige Poseneinspeicherung (pose injection) für ein Objekt, eine Wahrscheinlichkeit für eine Handlungsverzögerung, eine Handlungslatenz, ein handlungskorreliertes Rauschen, ein handlungsunkorreliertes Rauschen und/oder einen zufälligen Netzwerk-Widersacher (random network adversary, RMA) α ein. Obwohl ein Roboter-Steuerungs-Agent 302 für beispielhafte Zwecke gezeigt ist, können in zumindest einem Ausführungsbeispiel mehrere Roboter-Steuerungs-Agenten 302 parallel trainiert werden. Die physikalischen Parameter- (z.B.,) und/oder nicht-physikalischen Parameter-Randomisierungen werden während des Trainings in die Simulationsumgebung eingeführt, um zu helfen, die „Simulationzu-Realität“ Lücke („sim-to-real“) zwischen Physiksimulatoren und Realwelt-Umgebungen zu überwinden.
  • Wie gezeigt, wird während einer Simulation 402 eine Sequenz von Handlungen aneinandergekettet, um eine Trajektorie zu bilden. Beginnend mit zufälligen Trajektorien in verschiedenen Simulationen trainiert die verstärkendes Lernen Technik den Roboter-Steuerungs-Agenten 302, zu lernen, Handlungen zu erzeugen, die verwendet werden können, um ein Ziel zu erreichen, indem Parameter des Roboter-Steuerungs-Agenten 302 aktualisiert werden basierend darauf, ob die Trajektorien zu Zuständen des Roboters und/oder des/der Objekts/e, mit dem der Roboter interagiert, führen, die näher oder weiter vom Ziel entfernt sind, wie weiter unten in größeren Detail beschrieben. Obwohl eine Simulation 402 für beispielhafte Zwecke beschrieben wird, können in zumindest einem Ausführungsbeispiel mehrere Simulationen parallel durchgeführt werden. Zum Beispiel kann in zumindest einem Ausführungsbeispiel der Modelltrainer 116 die Strategie unter Verwenden von Erfahrung, die in einem hochgradig parallelisierten GPU-beschleunigten Physiksimulator simuliert wurde, trainieren. In solchen Fällen kann, um die große Menge an Daten, die mittels des physikbasierten Simulators erzeugt wird, der Modelltrainer 116 eine effiziente PPO-Implementierung verwenden, um den Rechengraphen vollständig auf GPU(s) zu halten. Kombiniert mit einer angebrachten Minibatchgröße (z.B. 215 Übergängen) kann die Hardwarenutzung und der Lerndurchsatz maximiert werden. Observationen, Vorteile und TD-Erträge (zeitliche Differenz, temporal difference) können in zumindest einem Ausführungsbeispiel normalisiert werden, um das Training invariant bezüglich der absoluten Skala von Observationen und Belohnungen zu machen. Zusätzlich benutzt der Modelltrainer 116 in zumindest einem Ausführungsbeispiel eine adaptive Lernraten-Technik, um eine konstante Kullback-Leibler-Divergenz (KL) zwischen der trainierten Strategie πθ und der Verhaltensstrategie πθold , die Rollouts (rollout) sammelt, beizubehalten. Einige Roboteraufgaben, wie beispielsweise Neugreifen oder Umorientieren von Objekten, können eine relativ präzise Steuerung verlangen (z.B., dass die Schlüsselpunkte innerhalb einer finalen Toleranz von ε* = 1 cm vom Ziel liegen). Um einen glatten Lernverlauf zu erzeugen, vergütet (anneals) der Modelltrainer 116 in zumindest einem Ausführungsbeispiel adaptiv die Toleranz, die aus einem größeren Initialwert (z.B. ε0 = 7,5cm) vergütet wurde. In solchen Fällen prüft der Modelltrainer 116 periodisch, ob die Strategie eine Performanceschwelle (z.B. Nsucc > 3), überschreitet, in welchem Fall die aktuelle Erfolgstoleranz gesenkt werden kann (z.B. ε ← 0.9ε), bis die Erfolgstoleranz einen finalen Wert erreicht.
  • Während jeder Iteration von verstärkendem Lernen aktualisiert der Modelltrainer 116 Parameter eines Roboter-Steuerungs-Agenten 302 und eines Beurteilers 410, der zusammen mit dem Roboter-Steuerungs-Agenten 302 trainiert wird. Wie beschrieben ist der Beurteiler 410 ein neuronales Netzwerk, das eine geschätzte Wertfunktion nähert, die dazu verwendet wird, Handlungen zu beurteilen, die mittels des Roboter-Steuerungs-Agenten 302 erzeugt werden. Veranschaulichend berechnet der Beurteiler 410, nachdem der Roboter-Steuerungs-Agent 302 eine Handlung erzeugt, die mittels eines Roboters in der Simulation 402 durchgeführt wird, eine verallgemeinerte Vorteilsschätzung basierend auf (1) einem neuen Zustand 406 des Roboters und/oder eines Objekts, mit dem der Roboter interagiert, und (2) einer Belohnungsfunktion. Die verallgemeinerte Vorteilsschätzung zeigt an, ob der neue Zustand 406 besser oder schlechter als erwartet ist, und der Modelltrainer 116 aktualisiert die Parameter des Roboter-Steuerungs-Agenten 302, so dass der Roboter-Steuerungs-Agent 302 mehr oder weniger wahrscheinlich die Handlung 404 erzeugt, basierend darauf, ob der neue Zustand 406 besser bzw. schlechter ist.
  • In zumindest einem Ausführungsbeispiel kann jede technisch realisierbare Belohnungsfunktion beim Berechnen der verallgemeinerten Vorteilsschätzung verwendet werden und die Belohnungsfunktion, die verwendet wird, wird allgemein vom Typ des Roboters und der Aufgabe, die durch den Roboter durchzuführen ist, abhängen. In zumindest einem Ausführungsbeispiel ist die Belohnung dicht (dense) genug, um eine Untersuchung von möglichen Roboterverhalten zu ermöglichen, jedoch den Roboter-Steuerungs-Agenten nicht von dem spärlichen (sparse) finalen Ziel (z.B. einer Anzahl von aufeinanderfolgenden erfolgreichen Manipulationen an einem Objekt) ablenkt. In zumindest einem Ausführungsbeispiel kann, wenn die Aufgaben eine Roboterinteraktion mit einem Objekt enthalten, die Belohnungsfunktion einen oder mehrere Terme enthalten, die mit Erreichen des Objekts, Anheben des Objekts und/oder Bewegen des Objekts näher an einen Zielzustand assoziiert sind. In solchen Fällen können höhere Belohnungsfunktionswerte zu einem Lösen der Roboteraufgabe korrespondieren, und umgekehrt, und das verstärkende Lernen versucht, die Belohnungsfunktion zu maximieren. Formaler kann in solchen Fällen eine Belohnungsfunktion, die einen Roboter-Steuerungs-Agenten natürlich durch eine Sequenz von Bewegungen leitet, die benötigt werden, um eine Aufgabe zu komplettieren, vom Greifen nach einem Objekt, über Anheben des Objekts, zum Bewegen des Objekts an eine finale Position, die Form haben: r ( s , a ) = r r e a c h ( s ) + r p i c k ( s ) + r t a r g ( s ) r v e l ( a ) .
    Figure DE102023125179A1_0005
  • In Gleichung (1) belohnt rreach(s) den Roboter-Steuerungs-Agenten für ein Bewegen einer Roboterhand näher an das Objekt beim Start eines Versuchs: r r e a c h ( s ) = α r e a c h max ( d c l o s e s t d ,0 ) ,
    Figure DE102023125179A1_0006
    wobei sowohl d als auch dclosest Distanzen zwischen dem Endeffektor des Roboters und dem Objekt sind, d die aktuelle Distanz ist und dclosest die kleinste bisher während des Versuchs erzielte Distanz ist.
  • In Gleichung (1) belohnt rpick(s) den Roboter-Steuerungs-Agenten für ein Anheben eines Objekts und ein Hochheben des Objekts, wie beispielsweise weg von einem Tisch: r p i c k ( s ) = ( 1 1 p i c k e d ) α p i c k h t + r p i c k e d ,
    Figure DE102023125179A1_0007
    wobei 1picked eine Anzeigefunktion ist, die 1 wird, sobald die Höhe des Objekts relativ zu einem Tisch ht eine vordefinierte Schwelle überschreitet. Wenn die Höhe die vordefinierte Schwelle überschreitet, erhält der Roboter-Steuerungs-Agent eine zusätzliche spärliche Belohnung rpicked. Sobald das Objekt angehoben ist, belohnt rtarg in Gleichung (1) den Roboter-Steuerungs-Agenten für ein Bewegen des Objekts näher hin zu einem Zielzustand: r t a r g ( s ) = 1 p i c k e d α t a r g max ( d ^ c l o s e s t d ^ ,0 ) + r s u c c e s s ,
    Figure DE102023125179A1_0008
    wobei d̂ die maximale Distanz zwischen korrespondierenden Paaren von Objekt und Ziel-Schlüsselpunkten ist und d̂closest die kleinste solche Distanz, die während des Versuchs bisher erzielt wurde. Eine große spärliche Belohnung rsuccess wird addiert, wenn alle der Nkp Schlüsselpunkte, die mit einem Objekt assoziiert sind, innerhalb einer Toleranzschwelle ihrer Zielpositionen sind, was bedeutet, dass das Umpositionieren und/oder Umorientieren des Objekts abgeschlossen ist. Schlussendlich ist rvel in Gleichung (1) eine Gelenkgeschwindigkeits-Strafe, die eingestellt werden kann, um eine glattere Bewegung zu fördern, und die Konstanten αreach, αpick und αtarg in Gleichungen (2), (3) bzw. (4) sind relative Belohnungsgewichte. Es sollte angemerkt werden, dass zumindest in einem Ausführungsbeispiel die exakt gleiche Belohnungsfunktion in allen Szenarien angewendet werden kann. Zusätzlich folgt die Belohnungsformulierung von Gleichungen (1)-(4) einen sequentiellen Muster: die Belohnungskomponenten rreach(s), rpick(s), und rtarg(s) sind wechselseitig exklusiv und beeinträchtigen sich nicht gegenseitig. Zum Beispiel ist zu der Zeit, wenn eine Roboterhand sich einem Objekt nähert, die Komponente rreach(s) erschöpft, weil = dclosest = 0, so dass rreach für den Rest der Trajektorie nicht zur Belohnung beiträgt. Ähnlich ist rpick ≠ 0 wenn und nur wenn rtarg = 0, und umgekehrt. Die Tatsache, dass nur eine Hauptbelohnungskomponente die Bewegung in jedem Zustand der Trajektorie lenkt, macht ein Einstellen der Belohnungen und ein Vermeiden von Interferenzen zwischen Belohnungskomponenten einfacher. Als ein Ergebnis können viele mögliche lokale Minima während eines Trainings vermieden werden: zum Beispiel, wenn rpick und rtarg zusammen angewendet werden, kann der Roboter-Steuerungs-Agent, abhängig von der relativen Belohnungsstärke, wählen, das Objekt näher an die Zielposition zu der Kante eines Tisches zu schieben und weitere Versuche beenden, das Objekt anzuheben und näher an das Ziel zu kommen, aus Furcht eines Fallenlassens des Objekts. Zusätzlich haben die Belohnungen in Gleichungen (2) und (4) einen vordefinierten maximalen Gesamtwert, abhängig von der initialen Distanz zwischen der Roboterhand und dem Objekt, bzw. dem Objekt und dem Ziel. Der vordefinierte maximale Gesamtwert eliminiert belohnungszerhackende Verhalten, wo ein Roboter-Steuerungs-Agent nahe bei aber nicht genau bei einem Ziel bleibt, um weiterhin die Nähe-Belohnung zu sammeln, weil nur eine Bewegung zum Ziel belohnt wird, während bloße Nähe zu dem Ziel es nicht wird.
  • Zurückkehrend zu 3 führt, zusätzlich zum Optimieren der Belohnung in Gleichung (1) in einer inneren Schleife des verstärkenden Lernens, der Modelltrainer 116 in zumindest einem Ausführungsbeispiel ferner eine populationsbasierte Trainingstechnik durch, die eine Meta-Optimierung eines Ziels via eine externe Optimierungsschleife umfasst. In solchen Fällen erlaubt die populationsbasierte Trainingstechnik eine verbesserte Erkundung der großen Anzahl von möglichen Roboterverhalten, was, nach Konvergenz, trainierte Roboter-Steuerungs-Agenten mit einer besseren Performance relativ zu konventionellen Trainingstechniken produzieren kann, die, wie oben beschrieben, höchst unvorhersehbar sein können. Zusätzlich kann die populationsbasierte Trainingstechnik automatisch Hyperparameter einstellen, die während dem Training verwendet werden. Formaler trainiert in zumindest einem Ausführungsbeispiel die populationsbasierte Trainingstechnik eine Population von Agenten
    Figure DE102023125179A1_0009
    führt Veränderungen durch, um vielversprechende Hyperparameterkombinationen zu erzeugen, und verwendet Auswahl, um Agenten mit der besten Performance zu priorisieren. In zumindest einem Ausführungsbeispiel ist jeder Agent ( θ i , p i ) P
    Figure DE102023125179A1_0010
    assoziiert mit (1) einem Parametervektor θi, der neuronale Netzwerk-Gewichte spezifizieren kann, und (2) einem Satz von Lern-Hyperparametern pi, der sowohl Einstellungen für die verstärkendes Lernen Techniken als auch Belohnungskoeffizienten αreach, αpick, αpicked, αtarg, und rsuccess umfasst. Spezifischer können die Hyperparameter einen Abzugsfaktor γ, einen verallgemeinerten Vorteilsschätzungs-(generalized advantage estimate, GAE)-Abzug λ, eine Lernrate, eine adaptive Lernrate DKL(π|πold), eine Gradientennorm, einen Pro-Clip ε, einen kritischer-Verlust-Koeffizient, einen Entropiekoeffizienten, eine Anzahl von Agenten, eine Minibatchgröße, eine Rollout-Länge und/oder eine Anzahl von Epochen je Iteration, usw. umfassen. Mittels Initialisieren der Population von Roboter-Steuerungs-Agenten mit verschiedenen zufälligen Parameterwerten und Lern-Hyperparameterwerten und dann Kommunizieren von Informationen der besten Trainingsläufe zu anderen Trainingsläufen, kann jeder Trainingslauf von den am besten performenden Trainingsläufen profitieren, wodurch die Diskrepanz und Varianz über Trainingsläufe hinweg minimiert wird. In zumindest einem Ausführungsbeispiel kann Information von den besten Trainingsläufen zu anderen Trainingsläufen kommuniziert werden, mittels periodischen (1) Reinitialisieren eines Prozentsatzes der am schlechtesten performenden maschinenlern-Modelle unter Verwenden der gespeicherten Parameterwerte, die mit einem Prozentsatz der an besten performenden maschinenlern-Modellen assoziiert sind, und (2) Verändern der Trainings-Hyperparameterwerte, die mit anderen maschinenlern-Modellen als den am besten performenden maschinenlern-Modellen assoziiert sind, wie im größeren Detail unten beschrieben. Um Diversität einzuführen und sicherzustellen, dass die Population von Roboter-Steuerungs-Agenten nicht alle Kopien der am besten performenden Roboter-Steuerungs-Agenten werden, können die Simulationen der Roboter-Steuerungs-Agenten, einschließlich nachdem Information der am besten performenden Trainingsläufen zu den anderen Trainingsläufen kommuniziert ist, mit verschiedenen Parametern und initialen Bedingungen, wie beispielsweise randomisierte physikalische Parameter und/oder nicht-physikalische Parameter und einem zufälligen Sampling von Handlungen, etabliert werden, wie oben beschrieben.
  • Wie beschrieben, führt die populationsbasierte Trainingstechnik auch eine äußere Optimierungsschleife ein, die dazu verwendet werden kann, eine Zielfunktion, wie beispielsweise ein finales spärliches skalares Ziel, zu metaoptimieren, im Gegensatz zu der inneren verstärkendes Lernen Schleife, was verschiedene dichte Belohnungskomponenten ausgleichen kann. In zumindest einem Ausführungsbeispiel optimiert die populationsbasierte Trainingstechnik das folgende Meta-Optimierungs-Ziel: { r m e t a = ε 0 ε ε 0 ε * + 0.01 N s u c c if  ε > ε * r m e t a = 1 + N s u c c if  ε = ε * ,
    Figure DE102023125179A1_0011
    wobei Nsucc die Anzahl der aufeinanderfolgenden erfolgreichen Performances einer Aufgabe ist und ε* eine Zieltoleranz ist. Bis die Zieltoleranz ε* erreicht ist, wird das Ziel von Gleichung (5) von dem Term ε 0 ε ε 0 ε *
    Figure DE102023125179A1_0012
    dominiert. Nachdem die Zieltoleranz ε* erreicht ist, wird Nsucc im Ziel von Gleichung (5) priorisiert. In zumindest einem Ausführungsbeispiel kann die Kombination der populationsbasierten Trainingstechnik und der verstärkendes Lernen Technik gemäß Algorithmus 1 implementiert werden.
    Figure DE102023125179A1_0013
    Figure DE102023125179A1_0014
  • Eine beispielhafte Kombination der populationsbasierten Trainingstechnik und der verstärkendes Lernen Technik wird in 3 gezeigt. Beispielhaft evaluiert, nachdem jeder Robot-Steuerungs-Agent 302 via verstärkendes Lernen 304 für eine gegebene Anzahl von Iterationen trainiert ist, der Modelltrainer 116 wie gut die Roboter-Steuerungs-Agenten 302 einen Roboter steuern können, um eine Aufgabe durchzuführen, unter Verwenden des Meta-Optimierungsziels von Gleichung (5). Zusätzlich speichert der Modelltrainer 116 die Parameterwerte für jeden Roboter-Steuerungs-Agenten 302, die Trainings-Hyperparameterwerte, die verwendet wurden, um jeden Roboter-Steuerungs-Agenten 302 zu trainieren, und die Performance jedes Roboter-Steuerungs-Agenten 302 auf ein gemeinsam benutztes Verzeichnis 308.
  • In zumindest einem Ausführungsbeispiel ist das Trainieren der Roboter-Steuerungs-Agenten 302 dahingehend dezentralisiert, dass die Trainingsläufe von verschiedenen Roboter-Steuerungs-Agenten 302 nicht mittels eines zentralen Orchestrators synchronisiert sind, was typischerweise in konventionellen populationsbasierten Trainingsansätzen gefordert wird. Zum Beispiel werden in zumindest einem Ausführungsbeispiel Trainingsjobs, die mit den Roboter-Steuerungs-Agenten 302 assoziiert sind, zur Ausführung auf einem Computersystem (z.B. einem Computercluster) in eine Warteschlage eingereiht, und die Trainingsjobs können zu verschiedenen Zeiten ausführen. Unabhängig davon, wann der Trainingsjob für einen spezifischen Roboter-Steuerungs-Agenten 302 ausführt, evaluiert, nachdem der Roboter-Steuerungs-Agent 302 für eine gegebene Anzahl von Iterationen trainiert wurde, der Modelltrainer 116 wie gut der Roboter-Steuerungs-Agent 302 arbeitet, und speichert die Performance des Roboter-Steuerungs-Agenten 302 auf dem gemeinsam genutzten Verzeichnis 308. Insbesondere interagieren in zumindest einem Ausführungsbeispiel Agenten in der Population von Roboter-Steuerungs-Agenten
    Figure DE102023125179A1_0015
    durch einen Zugang mit geringer Bandbreite zu einem gemeinsam genutzten Netzwerkverzeichnis, das für jeden Roboter-Steuerungs-Agenten Historien von Checkpunkten und Performancemetriken speichert. Das Fehlen irgendeines zentralen Orchestrators beseitigt nicht nur einen Schwachpunkt, sondern erlaubt auch, dass Training in volantiler Rechenumgebung durchgeführt wird, wie in einem umkämpften Cluster, in welchem Jobs unterbrochen werden können oder für lange Zeit in einer Warteschlange bleiben. Es sollte angemerkt werden, dass Roboter-Steuerungs-Agenten, die Training zu einer späteren Zeit starten, gegenüber anderen Mitgliedern der Population von Roboter-Steuerungs-Agenten, die das Training früher gestartet haben, benachteiligt sein können. Um solch einen Nachteil abzumildern, vergleicht in zumindest einem Ausführungsbeispiel der Modelltrainer 116 eine Performance von Roboter-Steuerungs-Agenten, die später gestartet sind, nur mit historischen Checkpunkten von anderen Agenten, die zu der gleichen Menge an gesammelter Erfahrung korrespondieren.
  • Erläuternd, nach einer Zeitdauer, (1) reinitialisiert der Modelltrainer einen Prozentsatz der am schlechtesten performenden Roboter-Steuerungs-Agenten 302 mittels Ersetzens der Parameterwerte dieser am schlechtesten performenden Roboter-Steuerungs-Agenten 302 mit Parameterwerten, die mit einem Prozentsatz der am besten performenden Roboter-Steuerungs-Agenten 302 assoziiert sind, und (2) verändert die Trainings-Hyperparameterwerte, die mit anderen Roboter-Steuerungs-Agenten 302 als den am besten performenden Roboter-Steuerungs-Agenten assoziiert sind. Wie gezeigt, lädt bei 310 der Modelltrainier 116 aus dem gemeinsam genutzten Verzeichnis 308 die gespeicherten Performanceinformationen der Roboter-Steuerungs-Agenten 302. Dann führt der Modelltrainer 116 eine populationsbasierte Trainingsevaluation bei 312 durch, um die oberen 30%, die mittleren 40% und die unteren 30% der Roboter-Steuerungs-Agenten 302 hinsichtlich der Performance zu bestimmen. Obwohl die oberen 30%, die mittleren 40% und die unteren 30% hierin als ein Bezugsbeispiel beschrieben werden, können alle geeigneten Prozentsätze von spitzenperformenden, tiefstperformenden und mittelperformenden maschinenlern-Modellen in zumindest einem Ausführungsbeispiel verwendet werden. Der Modelltrainer 116 reinitialisiert, bei 316, die tiefstperformenden Roboter-Steuerungs-Agenten 302 mittels Ersetzens der Parameterwerte jedes Roboter-Steuerungs-Agenten 302 in den unteren 30% mit den Parameterwerten eines der Roboter-Steuerungs-Agenten 302 in den oberen 30%. Zusätzlich verändert, bei 316, der Modelltrainer 116 die Trainings-Hyperparameter, die zum Trainieren der unteren 30% der Roboter-Steuerungs-Agenten 302 verwendet wurden, basierend auf den Trainings-Hyperparametern, die zum Trainieren der oberen 30% der Roboter-Steuerungs-Agenten 302 verwendet wurden. Für die mittleren 40% der Roboter-Steuerungs-Agenten 302 verändert der Modelltrainer 116, bei 314, die Trainings-Hyperparameter, die zum Trainieren der mittleren 40% der Roboter-Steuerungs-Agenten verwendet wurden. Nach Aktualisieren der Parameter und der Trainings-Hyperparameter, die mit dem unteren 30% der Roboter-Steuerungs-Agenten 302 assoziiert sind, und der Trainings-Hyperparameter, die mit dem unteren 40% der Roboter-Steuerungs-Agenten assoziiert sind, trainiert der Modelltrainer 116 die Roboter-Steuerungs-Agenten 302 erneut unter Verwenden der verstärkendes Lernen Technik, bis eine Abbruchbedingung, wie beispielsweise Performancekriterien oder eine maximale Anzahl von Trainingsiterationen, erreicht ist.
  • Nachdem die Abbruchbedingung des Trainings erreicht ist, wählt der Modelltrainer 116 einen am besten performenden, wie durch die gespeicherte Performance der Roboter-Steuerungs-Agenten 302 in dem gemeinsam genutzten Verzeichnis 308 gekennzeichnet, Roboter-Steuerungs-Agenten 302 aus. Danach kann der am besten performende Roboter-Steuerungs-Agent 302 genutzt werden (z.B. als der Roboter-Steuerungs-Agent 150), um einen physikalischen Roboter in der Realwelt-Umgebung zu steuern.
  • 5A-5D illustriert beispielhafte Simulationsumgebungen zum Trainieren von Robotik-Steuerungs-Agenten, um Roboter zu steuern, um verschiedene Aufgaben durchzuführen, gemäß zumindest einem Ausführungsbeispiel. Zum Beispiel können die Simulationsumgebungen in den Trainingssimulationen 402 verwendet werden, beschrieben hierin im Zusammenhang mit zumindest der 4. Wie in 5A gezeigt, können unter Verwenden einer Simulationsumgebung 500 Roboter-Steuerungs-Agenten trainiert werden, einen Roboter (z.B. Roboter 502) zu steuern, um eine Neugreif-Aufgabe durchzuführen. In zumindest einem Ausführungsbeispiel umfasst die Neugreif-Aufgabe ein Greifen eines Objekts (z.B. Objekt 504), Anheben des Objekts von einem Tisch und Halten des Objekts in einer spezifizierten Position für eine Zeitdauer. Um bei der Neugreif-Aufgabe erfolgreich zu sein, muss ein Roboter-Steuerungs-Agent lernen, einen Roboter mit stabilen Griffen zu steuern, die die Wahrscheinlichkeit eines Fallenlassens des Objekts minimieren. In zumindest einem Ausführungsbeispiel können Roboter-Steuerungs-Agenten trainiert werden, eine Neugreif-Aufgabe unter Verwenden der populationsbasierten Trainings- und verstärkendes Lernen Techniken durchzuführen, die hierin in Zusammenhang mit den 3-4 und 6 beschrieben werden.
  • Wie in 5B gezeigt, können unter Verwenden einer Simulationsumgebung 510 Roboter-Steuerungs-Agenten trainiert werden, um einen Roboter (z.B. Roboter 512) zu steuern, eine Greifen-und-Werfen-Aufgabe durchzuführen. In zumindest einem Ausführungsbeispiel umfasst die Greifen-und-Werfen-Aufgabe ein Greifen eines Objekts (z.B. Objekt 514), ein Anheben des Objekts und ein Verlagern des Objekts in einen Container (z.B. Container 516), was in einigen Fällen ein Zielen auf den Container und ein Werfen des Objekts über eine signifikante Distanz umfassen kann. Um bei der Greifen-und-Werfen-Aufgabe erfolgreich zu sein, muss ein Roboter-Steuerungs-Agent lernen, einen Roboter zu steuern, einen Griff um das Objekt an dem richtigen Punkt der Trajektorie loszulassen, was dem Objekt die richtige Menge an Impuls gibt, um das Objekt auf das Ziel den Container zu lenken. In zumindest einem Ausführungsbeispiel können Roboter-Steuerungs-Agenten unter Verwenden der populationsbasierten Trainings- und verstärkendes Lernen Techniken, die hierin im Zusammenhang mit den 3-4 und 6 beschrieben werden, trainiert werden, eine Greifen-und-Werfen-Aufgabe durchzuführen.
  • Wie in 5C gezeigt, können unter Verwenden einer Umgebung 500 Roboter-Steuerungs-Agenten trainiert werden, einen Roboter (als Roboter 522 gezeigt) zu steuern, eine Umorientierungs-Aufgabe durchzuführen. In zumindest einem Ausführungsbeispiel umfasst die Umorientierungs-Aufgabe ein Greifen eines Objekts und nachfolgendes Bewegen des Objekts zu verschiedenen Zielpositionen und Orientierungen. Um bei der Umorientierungs-Aufgabe erfolgreich zu sein, muss ein Roboter-Steuerungs-Agent lernen (1) einen Roboter zu steuern, einen stabilen Griff um das Objekt für Minuten einer simulierten Zeit aufrechtzuerhalten, (2) die Gelenke eines Roboterarms exakt zu steuern und (3), gelegentlich, In-Hand-Rotation des Objektes, wenn die Umorientierung des Objekts nicht ohne In-Hand-Rotation durchgeführt werden kann. In zumindest einem Ausführungsbeispiel können die Roboter-Steuerungs-Agenten trainiert werden, eine Umorientierungs-Aufgabe unter Verwenden der populationsbasierten Trainings- und verstärkendes Lernen Techniken, die hierin im Zusammenhang mit den 3-4 und 6 beschrieben werden, durchzuführen.
  • In zumindest einem Ausführungsbeispiel verlangen die Neugreif- und Umorientierungs-Aufgaben, die hierin im Zusammenhang mit zumindest den 5A und 5C beschrieben werden, dass eine Anzahl von Schlüsselpunkten, die mit dem Objekt assoziiert sind, das neugegriffen oder umorientiert wird, innerhalb einer finalen Toleranz eines Ziels liegen. Zum Beispiel können, wenn das Objekt ein Würfel ist, die Schlüsselpunkte Ecken des Würfels sein, die innerhalb einer Toleranz eines Ziels sein müssen. In zumindest einem Ausführungsbeispiel können die Roboter-Steuerungs-Agenten zum Steuern eines Roboters, um die Neugreif-, Greifen-und-Werfen- und Umorientierungs-Aufgaben durchzuführen, die hierin zumindest im Zusammenhang mit den 5A-5C beschrieben werden, trainiert und an Zielobjekten mit randomisierten Proportionen getestet werden, wie beispielsweise Objekte, die verschiedene Größen von klein bis groß und verschiedene Formen (z.B. von Würfeln bis hochlänglichen Parallelepipeden) haben. Verwenden einer Vielzahl von verschiedenen Objekten während des Trainings kann die Wahrscheinlichkeit eines Überfittings bezüglich irgendeiner Objektform und -größe reduzieren.
  • Wie in 5D gezeigt, können, unter Verwenden einer Umgebung 500, die Roboter-Steuerungs-Agenten trainiert werden, um zwei Roboter (gezeigt als Roboter 532 und 534) zu steuern, eine Zwei-Arm-Aufgabe durchzuführen. In zumindest einem Ausführungsbeispiel umfasst die Zwei-Arm-Aufgabe ein Greifen eines Objekts 536, ein Weitergeben des Objekts von einer Hand des Roboters zu einer anderen Hand des Roboters und eine In-Hand-Manipulation des Objekts. In zumindest einem Ausführungsbeispiel werden sowohl Beobachtungs- als auch Aktionsraum (at ∈ ℝ2Ndof ) erweitert, um es einen einzelnen Roboter-Steuerungs-Agenten zu erlauben, beide Arme eines Roboters zu steuern. In zumindest einem Ausführungsbeispiel können Roboter-Steuerungs-Agenten trainiert werden, eine Zwei-Arm-Aufgabe unter Verwenden der populationsbasierten Trainings- und verstärkendes Lernen Techniken, die hierin im Zusammenhang mit den 3-4 und 6 beschrieben werden, durchzuführen.
  • 6 illustriert ein Flussdiagramm eines Prozesses 600 zum Trainieren von Roboter-Steuerungs-Agenten gemäß zumindest einem Ausführungsbeispiel. Obwohl der Prozess im Zusammenhang mit den Systemen von 1-2 beschrieben wird, werden Fachleute verstehen, dass jedes System, das konfiguriert ist, den Prozess in irgendeiner Reihenfolge durchzuführen, in den Umfang der vorliegenden Ausführungsbeispiele fällt.
  • Wie gezeigt, beginnt der Prozess 600 bei Operation 602, wo der Modelltrainer 116 eine Population von Roboter-Steuerungs-Agenten mit zufälligen gesampelten Parameterwerten und Trainings-Hyperparameterwerten initialisiert. In zumindest einem Ausführungsbeispiel kann die Population von Roboter-Steuerungs-Agenten jede geeignete Anzahl von Roboter-Steuerungs-Agenten umfassen.
  • Bei Operation 604 trainiert der Modelltrainer 116 jeden Roboter-Steuerungs-Agenten, um einen Roboter zu steuern, eine Aufgabe für eine Anzahl von verstärkendes Lernen Iterationen durchzuführen, unter Verwenden der Parameterwerte und der Trainings-Hyperparameterwerten, die im Prozess 600 bestimmt sind. In zumindest einem Ausführungsbeispiel kann der Modelltrainer 116 eine verstärkendes Lernen Technik durchführen, die hierin im Zusammenhang mit zumindest 4 beschrieben wurde, um die Roboter-Steuerungs-Agenten zu trainieren.
  • Bei Operation 606 evaluiert der Modelltrainer 116 jeden Roboter-Steuerungs-Agenten nach der Anzahl von verstärkendes Lernen Iterationen, um eine korrespondierende Performancemetrik zu bestimmen, und Modelltrainer 116 speichert die korrespondierende Performancemetrik in einem gemeinsam genutzten Verzeichnis. In zumindest einem Ausführungsbeispiel ist die Performancemetrik eine Anzahl von Malen, die der Roboter-Steuerungs-Agent beim Durchführen der Aufgabe, für welche die Roboter-Steuerungs-Agenten in Operation 604 trainiert wurden, erfolgreich ist. In zumindest einem Ausführungsbeispiel kann der Modelltrainer 116 auch die Parameterwerte und die Trainings-Hyperparameterwerte, die mit jedem Roboter-Steuerungs-Agenten assoziiert sind, in dem gemeinsam genutzten Verzeichnis speichern.
  • Wenn der Modelltrainer 116 bestimmt, das Training bei Operation 608 fortzusetzen, dann fährt der Prozess 600 bei Operation 610 fort, wo der Modelltrainer 116 bestimmt, ob die Roboter-Steuerungs-Agenten-Parameter und/oder die Trainings-Hyperparameter zu aktualisieren sind. In zumindest einem Ausführungsbeispiel aktualisiert der Modelltrainer 166 die Roboter-Steuerungs-Agenten-Parameter und/oder die Trainings-Hyperparameter periodisch.
  • Wenn der Modelltrainer 116 bestimmt die Roboter-Steuerungs-Agenten-Parameter und/oder die Trainings-Hyperparameter nicht zu aktualisieren, dann kehrt der Prozess 600 zu Operation 604 zurück, wo der Modelltrainer 116 mit Trainieren der Roboter-Steuerungs-Agenten fortfährt, um den Roboter zu steuern, die Aufgabe durchzuführen. Andererseits, wenn der Modelltrainer 116 bestimmt, die Roboter-Steuerungs-Agenten-Parameter und/oder die Trainings-Hyperparameter zu aktualisieren, dann fährt der Prozess mit Operation 612 fort. Bei Operation 612 ersetzt der Modelltrainer 116 die Parameter eines Prozentsatzes der am schlechtesten performenden Agenten mit Parametern eines Prozentsatzes der am besten performenden Agenten und verändert die Trainings-Hyperparameter, die mit den Roboter-Steuerungs-Agenten assoziiert sind, die nicht in dem Prozentsatz der am besten performenden Roboter-Steuerungs-Agenten sind. Danach kehrt der Prozess 600 zu Operation 604 zurück, wo der Modelltrainer 116 wiederum jeden Roboter-Steuerungs-Agenten trainiert, um den Roboter zu steuern, um die Aufgabe für eine Anzahl von verstärkendes Lernen Iterationen durchzuführen.
  • 7 illustriert ein Flussdiagramm eines Prozesses 700 zum Steuern eines Roboters unter Verwenden eines trainierten Robotik-Steuerungs-Agenten, gemäß zumindest einem Ausführungsbeispiel. Obwohl der Prozess im Zusammenhang mit den Systemen von 1-2 beschrieben wird, werden Fachleute verstehen, dass jedes System, das konfiguriert ist, den Prozess in irgendeiner Reihenfolge durchzuführen, in den Umfang der vorliegenden Ausführungsbeispiele fällt.
  • Wie gezeigt, beginnt der Prozess 700 bei Operation 702, wo die Roboter-Steuerungs-Anwendung 146 Sensordaten empfängt, die mit einem Roboter in einer Realwelt-Umgebung assoziiert sind. In zumindest einem Ausführungsbeispiel umfassen die Sensordaten Bilder, die mittels einer oder mehreren RGB-Kameras aufgenommen wurden, die an dem Roboter und/oder sonst wo in der Umgebung montiert sind. In zumindest einem Ausführungsbeispiel interagiert der Roboter in den aufgenommenen Bildern mit einen oder mehreren Objekten.
  • Bei Operation 704 wendet die Roboter-Steuerungs-Anwendung 146 einen trainierten Roboter-Steuerungs-Agenten (z.B. Roboter-Steuerungs-Agenten 150) an, um eine durchzuführende Handlung für den Roboter zu erzeugen, basierend auf den Sensordaten und einem Ziel. In zumindest einem Ausführungsbeispiel umfasst die Handlung Gelenkwinkel, die mittels Gelenken des Roboters zu erlangen sind. In zumindest einem Ausführungsbeispiel kann der trainierte Roboter-Steuerungs-Agent gemäß dem Prozess 600 trainiert sein, der hierin im Zusammenhang mit zumindest der 6 beschrieben ist.
  • Bei Operation 706 bewirkt die Roboter-Steuerungs-Anwendung 146, dass der Roboter sich gemäß der bei Operation 704 erzeugten Handlung bewegt. Zum Beispiel kann in zumindest einem Ausführungsbeispiel die Roboter-Steuerungs-Anwendung 146 die Handlung an eine Gelenk-Steuerung übermitteln, um den Roboter dazu zu bringen, sich gemäß der Handlung zu bewegen, wie hierin im Zusammenhang mit zumindest der 3 beschrieben.
  • Zumindest ein technischer Vorteil der offenbarten Techniken im Vergleich mit dem Stand der Technik ist, dass mit den offenbarten Techniken maschinenlern-Modelle erfolgreich trainiert werden können, Roboter zu steuern, um Aufgaben durchzuführen. Zusätzlich sind im Vergleich zu Stand der Technik Ansätzen die offenbarten Techniken fähig die möglichen Roboterverhaltensweisen besser zu erkunden, um ein trainiertes Modell Lernmodell zu produzieren, dass einen Realwelt-Roboter korrekt steuern kann. Zum Beispiel erlauben die offenbarten Techniken, dass ein maschinenlern-Modell trainiert wird, um einen Roboter zu steuern, der ein Hand-Arm-System mit hohen Grad an Freiheit umfasst, um ein Greifen und geschickte In-Hand-Manipulation eines Objekts durchzuführen. Diese technischen Vorteile repräsentieren eine oder mehrere Verbesserungen gegenüber Ansätzen des Standes der Technik.
  • INFERENZIER UND TRAININGSLOGIK
  • 8A illustriert eine Inferenzier- und/oder Trainingslogik 815, die verwendet wird, um Inferenzier- und/oder Trainingsoperationen durchzuführen, die mit einem oder mehreren Ausführungsbeispielen assoziiert sind. Details bezüglich Inferenzier- und/oder Trainingslogik 815 werden unten im Zusammenhang mit zumindest den 8A und/oder 8B bereitgestellt.
  • In zumindest einem Ausführungsbeispiel kann Inferenzier- und/oder Trainingslogik 815, ohne Einschränkung, einen Code- und/oder Datenspeicher 801 umfassen, um Weiterleitungs- und/oder Ausgabegewichte und/oder Eingabe/Ausgabe-Daten und/oder andere Parameter zu speichern, um Neuronen oder Schichten eines neuronalen Netzwerks zu konfigurieren, die trainiert und/oder zum Inferenzieren verwendet werden, in Aspekten von einem oder mehreren Ausführungsbeispielen. In zumindest einem Ausführungsbeispiel kann Trainingslogik 815 einen Code- und/oder Datenspeicher 801 zum Speichern von Graphcode oder andere Software zum Steuern von Timing und/oder Reihenfolge umfassen oder an diese gekoppelt sein, in den Gewichts- und/oder andere Parameterinformationen zu laden sind, um Logik, einschließlich Integer- und/oder Gleitkommaeinheiten (kollektiv, arithmetisch-logische Einheiten, (ALUs)) zu konfigurieren. In zumindest einem Ausführungsbeispiel lädt Code, wie beispielsweise Graphcode, Gewicht oder andere Parameterinformationen in Prozessor ALUs basierend auf einer Architektur eines neuronalen Netzwerks, zu dem solch Code korrespondiert. In zumindest einem Ausführungsbeispiel speichert Code- und/oder Datenspeicher 801 Gewichtsparameter und/oder Eingabe/Ausgabe-Daten jeder Schicht eines neuronalen Netzwerks, trainiert oder verwendet in Zusammenhang mit einem oder mehreren Ausführungsbeispielen während Vorwärtspropagation von Eingabe/Ausgabe-Daten und/oder Gewichtsparameter während Training und/oder Inferenzieren unter Verwenden von Aspekten von einem oder mehreren Ausführungsbeispielen. In zumindest einem Ausführungsbeispiel kann jeder Teil von Code- und/oder Datenspeicher 801 mit anderem On-Chip oder Off-Chip Datenspeicher, einschließlich L1, L2 oder L3-Cache eines Prozessors oder Systemarbeitsspeicher, ausgestattet sein.
  • In zumindest einem Ausführungsbeispiel kann jeder Teil von Code- und/oder Datenspeicher 801 intern oder extern zu einem oder mehreren Prozessoren oder anderer Hardware-Logik-Vorrichtungen oder Schaltkreisen sein. In zumindest einem Ausführungsbeispiel kann Code und/oder Code- und/oder Datenspeicher 801 Cache-Arbeitsspeicher, Dynamic Random Access Memory („DRAM“), Static random-access memory („SRAM“), nicht-volantiler Arbeitsspeicher (z.B. Flashmemory) oder anderer Speicher sein. In zumindest einem Ausführungsbeispiel kann eine Wahl, ob Code und/oder Code- und/oder Datenspeicher 801 beispielsweise intern oder extern zu einem Prozessor ist, oder DRAM, SRAM, Flash oder irgendeinen anderer Speichertyp aufweist, vom zur Verfügung stehenden Speicher On-Chip gegenüber Off-Chip, Latenznotwendigkeiten von Trainings- und/oder Inferenz-Funktionen, die durchgeführt werden, Batchgröße von Daten, die beim Inferenzieren und/oder Training eines neuronalen Netzwerks verwendet werden, oder irgendeiner Kombination dieser Faktoren abhängen.
  • In zumindest einem Ausführungsbeispiel kann Inferenzier- und/oder Trainingslogik 815, ohne Einschränkung, einen Code- und/oder Datenspeicher 805 umfassen, um Rückwärts- und/oder Ausgabegewichte und/oder Eingabe/Ausgabe-Daten zu speichern, korrespondierend zu Neuronen oder Schichten eines neuronalen Netzwerks, das zum Inferenzieren trainiert und/oder verwendet wird, in Aspekten von einem oder mehreren Ausführungsbeispielen. In zumindest einem Ausführungsbeispiel speichert Code- und/oder Datenspeicher 805 Gewichtsparameter und/oder Eingabe/Ausgabe-Daten von jeder Schicht eines neuronalen Netzwerks, das im Zusammenhang mit einem oder mehreren Ausführungsbeispielen während Rückwärtspropagation von Eingabe/AusgabeDaten und/oder Gewichtsparametern während Trainings und/oder Inferenzierens trainiert oder verwendet wird, unter Verwenden von Aspekten eines oder mehrerer Ausführungsbeispiele. In Zumindest einem Ausführungsbeispiel kann Trainingslogik 815 Code- und/oder Datenspeicher 805 enthalten oder mit diesem gekoppelt sein, um Graphcode oder andere Software zum Steuern von Timing und/oder Reihenfolge zu speichern, in welchem Gewichts- und/oder andere Parameterinformationen zu laden ist, um Logik, einschließlich Integer- und/oder Gleitkommaeinheiten (kollektiv, arithmetisch-logische Einheiten, (ALUs)), zu konfigurieren
  • In zumindest einem Ausführungsbeispiel lädt Code, wie beispielsweise Graphcode, Gewichts- oder andere Parameterinformationen in Prozessor ALUs basierend auf einer Architektur eines neuronalen Netzwerks, zu dem solch Code korrespondiert. In zumindest einem Ausführungsbeispiel kann jeder Teil von Code- und/oder Datenspeicher 805 mit anderem On-Chip oder Off-Chip Datenspeicher, einschließlich L1, L2 oder L3-Cache eines Prozessors oder Systemarbeitsspeicher, ausgestattet sein. In zumindest einem Ausführungsbeispiel kann jeder Teil von Code- und/oder Datenspeicher 805 intern oder extern zu einem oder mehreren Prozessoren oder anderer Hardware-Logik-Vorrichtungen oder Schaltkreisen sein. In zumindest einem Ausführungsbeispiel kann Code- und/oder Datenspeicher 805 Cache-Arbeitsspeicher, DRAM, SRAM, nicht-volantiler Arbeitsspeicher (z.B. Flashmemory) oder ein anderer Speicher sein. In zumindest einem Ausführungsbeispiel kann eine Wahl, ob Code- und/oder Datenspeicher 805 beispielsweise intern oder extern zu einem Prozessor ist, oder DRAM, SRAM, Flashmemory oder irgendeinen anderen Speichertyp aufweist, vom zur Verfügung stehenden Speicher On-Chip gegenüber Off-Chip, Latenznotwendigkeiten von Trainings- und/oder Inferenz-Funktionen, die durchgeführt werden, Batchgröße von Daten, die beim Inferenzieren und/oder Training eines neuronalen Netzwerks verwendet werden, oder irgendeiner Kombination dieser Faktoren, abhängen.
  • In zumindest einem Ausführungsbeispiel können Code- und/oder Datenspeicher 801 und Code- und/oder Datenspeicher 805 separate Speicherstrukturen sein. In zumindest einem Ausführungsbeispiel können Code- und/oder Datenspeicher 801 und Code- und/oder Datenspeicher 805 eine kombinierte Speicherstruktur sein. In zumindest einem Ausführungsbeispiel können Code- und/oder Datenspeicher 801 und Code- und/oder Datenspeicher 805 teilweise kombiniert und teilweise separat sein. In zumindest einem Ausführungsbeispiel kann jeder Teil von Code- und/oder Datenspeicher 801 und Code- und/oder Datenspeicher 805 mit anderem On-Chip- oder Off-Chip-Speicher, einschließlich L1, L2 oder L3-Cache eines Prozessors oder Systemarbeitsspeicher, ausgestattet sein.
  • In zumindest einem Ausführungsbeispiel kann Inferenzier- und/oder Trainingslogik, ohne Einschränkung, eine oder mehrere arithmetisch-logische Einheit(en), („ALU(s)“) 810 umfassen, einschließlich Integer- und/oder Gleitkommaeinheiten, um logische und/oder mathematische Operationen durchzuführen, die zumindest zum Teil auf Training und/oder Inferenzier-Code (z.B. Graphcode) basieren oder durch diesen gekennzeichnet werden, ein Ergebnis von diesen kann Aktivierungen (z.B. Ausgabewerte von Schichten oder Neuronen innerhalb eines neuronalen Netzwerks) produzieren, die in einem Aktivierungsspeicher 820 gespeichert werden, die Funktionen von Eingabe/Ausgabe und/oder Gewichtsparameter-Daten sind, die im Code- und/oder Datenspeicher 801 und/oder in Code- und/oder Datenspeicher 805 gespeichert sind. In zumindest einem Ausführungsbeispiel werden Aktivierungen, die in Aktivierungsspeicher 820 gespeichert sind, gemäß linearer algebraisch und oder matrixbasierter Mathematik erzeugt werden, die mittels ALU(s) 810 durchgeführt werden, in Reaktion auf ein Durchführen von Instruktionen oder anderen Codes, wobei Gewichtswerte, die im Code- und/oder Datenspeicher 805 und/oder Code- und/oder Datenspeicher 801 gespeichert sind, zusammen mit anderen Werten, wie beispielsweise Biaswerten, Gradienteninformation, Impulswerte und/oder anderen Parametern oder Hyperparametern als Operanten verwendet werden, von denen alle im Code- und/oder Datenspeicher 805 oder im Code- und/oder Datenspeicher 801 oder einem anderen Speicher On oder Off-Chip gespeichert sein können.
  • In zumindest einem Ausführungsbeispiel sind ALU(s) 810 in einem oder mehreren Prozessoren oder anderen Hardwarelogik-Vorrichtungen oder -Schaltkreisen enthalten, während in einem anderen Ausführungsbeispiel ALU(s) 810 extern zu einem Prozessor oder andere Hardwarelogik-Vorrichtungen oder -Schaltkreisen sind, die diese verwenden (z.B. ein Coprozessor). In zumindest einem Ausführungsbeispiel können ALUs 810 innerhalb einer Ausführungseinheit eines Prozessors oder auf andere Weise innerhalb einer Bank von ALUs enthalten sein, zugreifbar durch Ausführungseinheiten eines Prozessors entweder innerhalb des gleichen Prozessors oder verteilt auf verschiedene Prozessoren verschiedenen Typen (z.B. Zentral-Verarbeitungseinheiten, Grafik-Verarbeitungseinheiten, Einheiten mit fixen Funktionen, usw.). In zumindest einem Ausführungsbeispiel können Code- und/oder Datenspeicher 801, Code- und/oder Datenspeicher 805 und Aktivierungsspeicher 820 einen Prozessor oder eine andere Hardwarelogik-Vorrichtung oder -Schaltkreise gemeinsam benutzen, während sie in einem anderen Ausführungsbeispiel in verschiedenen Prozessoren oder anderen Hardwarelogik-Vorrichtungen oder -Schaltkreisen oder irgendeiner Kombination derselben oder verschiedene Prozessoren oder andere Hardwarelogik-Vorrichtungen oder -Schaltkreise sein können. In zumindest einem Ausführungsbeispiel kann irgendein Teil von Aktivierungsspeicher 820 mit anderen On-Chip- oder Off-Chip-Datenspeicher ausgestattet sein, einschließlich L1, L2 oder L3-Cache oder Systemarbeitsspeicher eines Prozessors. Ferner kann Inferenzier- oder Trainingscode mit anderen Code, zugreifbar durch einen Prozessor oder anderer Hardwarelogik oder Schaltkreisen, gespeichert und abgerufen und/oder prozessiert werden unter Verwenden von Abruf-, Dekodier-, Dispositions-, Ausführ-, Ausscheidungs- (retirement) und/oder anderen logischen Schaltkreisen.
  • In zumindest einem Ausführungsbeispiel kann Aktivierungsspeicher 820 ein Cache-Arbeitsspeicher, DRAM, SRAM, nicht-volantiler Arbeitsspeicher (z.B. Flashmemory) oder anderer Speicher sein. In zumindest einem Ausführungsbeispiel kann Aktivierungsspeicher 820 komplett oder teilweise innerhalb oder extern zu einem oder mehreren Prozessoren oder anderen Logikschaltkreisen sein. In zumindest einem Ausführungsbeispiel kann eine Wahl, ob Aktivierungsspeicher 820 beispielsweise intern oder extern zu einem Prozessor ist, oder DRAM, SRAM, Flashmemory oder irgendeinen anderen Speichertyp aufweist, vom zur Verfügung stehenden Speicher On-Chip gegenüber Off-Chip, Latenznotwendigkeiten von Trainings- und/oder Inferenz-Funktionen, die durchgeführt werden, Batchgröße von Daten, die beim Inferenzieren und/oder Training eines neuronalen Netzwerks verwendet werden, oder irgendeiner Kombination dieser Faktoren abhängen.
  • In zumindest einem Ausführungsbeispiel kann Inferenzier- und/oder Trainingslogik 815, die in 8 illustriert ist, in Verbindung mit einer anwendungsspezifischen integrierten Schaltung („ASIC“), wie beispielsweise einer TensorFlow® Verarbeitungseinheit von Google, einer Inferenzier-Verarbeitungseinheit (IPU) von Graphcore™, oder einem Nervana® Prozessor (z.B. „Lake Crest“) der Intel Corp verwendet werden. In zumindest einem Ausführungsbeispiel kann Inferenzier- und/oder Trainingslogik 815, die in 8 illustriert ist, in Verbindung mit einer Zentral-Verarbeitungseinheit („CPU“) Hardware, Grafik-Verarbeitungseinheit („GPU“) Hardware oder einer anderen Hardware, wie Field Programmable Gate Arrays („FPGA“) verwendet werden.
  • 8B illustriert Inferenzier- und/oder Trainingslogik 815 gemäß zumindest einem Ausführungsbeispiel. In zumindest einem Ausführungsbeispiel kann Inferenzier- und/oder Trainingslogik 815, ohne Einschränkung, Hardwarelogik umfassen, in der Berechnungsressourcen Gewichtswerten oder anderen Informationen, die zu einer oder mehreren Schichten von Neuronen innerhalb eines neuronalen Netzwerks korrespondieren, gewidmet sind oder auf andere Weise exklusiv in Verbindung mit diesen verwendet werden. In zumindest einem Ausführungsbeispiel kann die Inferenzier- und/oder Trainingslogik 815, die in 8B illustriert ist, in Verbindung mit einer anwendungsspezifischen integrierten Schaltung (ASIC), wie beispielsweise einer TensorFlow® Verarbeitungseinheit von Google, einer Inferenzier-Verarbeitungseinheit (IPU) von Graphcore™, oder einem Nervana® Prozessor (z.B. „Lake Crest“) der Intel Corp verwendet werden. In zumindest einem Ausführungsbeispiel kann Inferenzier- und/oder Trainingslogik 815, die in 8B illustriert ist, in Verbindung mit einer Zentral-Verarbeitungseinheit (CPU) Hardware, Grafik-Verarbeitungseinheit (GPU) Hardware oder einer anderen Hardware, wie Field Programmable Gate Arrays („FPGA“) verwendet werden. In zumindest einem Ausführungsbeispiel umfasst Inferenzier- und/oder Trainingslogik 815, ohne Einschränkung, Code- und/oder Datenspeicher 801 und Code- und/oder Datenspeicher 805, die verwendet werden können, um Code (z.B. Graphcode), Gewichtswerte und/oder andere Informationen einschließlich Biaswerten, Gradienteninformationen, Impulswerten und/oder anderer Parameter- oder Hyperparameter-Informationen zu speichern. In zumindest einem Ausführungsbeispiel, das in 8B illustriert ist, ist sowohl Code- und/oder Datenspeicher 801 als auch Code- und/oder Datenspeicher 805 mit einer zugehörigen Berechnungsressource, wie beispielsweise Berechnungshardware 802 bzw. Berechnungshardware 806, assoziiert. In zumindest einem Ausführungsbeispiel weist sowohl Berechnungsressource 802 als auch Berechnungsressource 806 eine oder mehrere ALUs auf, die mathematische Funktionen, wie beispielsweise lineare algebraische Funktionen, nur auf Informationen durchführen, die in Code- und/oder Datenspeicher 801 bzw. Code- und/oder Datenspeicher 805 gespeichert sind, wobei deren Ergebnisse in Aktivierungsspeicher 820 gespeichert werden.
  • In zumindest einem Ausführungsbeispiel korrespondieren sowohl Code- und/oder Datenspeicher 801 und 805 als auch die korrespondierende Berechnungshardware 802 bzw. 806 zu verschiedenen Schichten eines neuronalen Netzwerks, so dass eine resultierende Aktivierung von einem Speicher/Berechnungs-Paar 801/802 von Code- und/oder Datenspeicher 801 und Berechnungshardware 802 als eine Eingabe zu einem nächsten Speicher/Berechnungs-Paar 805/806 von Code- und/oder Datenspeicher 805 und Berechnungshardware 806 bereitgestellt wird, um eine konzeptionelle Organisation eines neuronalen Netzwerks zu spiegeln. In zumindest einem Ausführungsbeispiel kann sowohl Speicher/Berechnungs-Paar 801/802 als auch 805/806 zu mehr als einer Schicht eines neuronalen Netzwerks korrespondieren. In zumindest einem Ausführungsbeispiel können zusätzliche Speicher/Berechnungs-Paare (nicht gezeigt) nachfolgend oder parallel zu den Speicher/Berechnungs-Paaren 801/802 und 805/806 in die Inferenzier- und/oder Trainingslogik 815 eingefügt werden.
  • NEURONALES NETZWERK TRAINING UND BENUTZUNG
  • 9 illustriert Training und Benutzung eines Deep-Neuronalen-Netzwerkes gemäß zumindest einem Ausführungsbeispiel. In zumindest einem Ausführungsbeispiel wird ein untrainiertes neuronales Netzwerk 906 unter Verwenden eines Trainings-Datensatzes 902 trainiert. In zumindest einem Ausführungsbeispiel ist Trainings-Framework 904 ein PyTorch-Framework, während in anderen Ausführungsbeispielen Trainings-Framework 904 ein TensorFlow, Boost, Caffe, Microsoft Cognitive Toolkit/CNTK, MXNet, Chainer, Keras, Deeplearning4j oder ein anderes Trainings-Framework ist. In zumindest einem Ausführungsbeispiel trainiert Trainings-Framework 904 ein untrainiertes neuronales Netzwerk 906 und ermöglicht ihm, unter Verwenden von hierin beschriebenen Verarbeitungsressourcen trainiert zu werden, um ein trainiertes neuronales Netzwerk 908 zu erzeugen. In zumindest einem Ausführungsbeispiel können Gewichte zufällig oder mittels eines Vortrainings unter Verwenden eines Deep-Belief-Network gewählt werden. In zumindest einem Ausführungsbeispiel kann Training in entweder einer überwachten, teilweise überwachten oder unüberwachten Weise durchgeführt werden.
  • In zumindest einem Ausführungsbeispiel wird untrainiertes neuronales Netzwerk 906 unter Verwenden von überwachten Lernen trainiert, wobei Trainings-Datensatz 902 eine mit einer für eine Eingabe gewünschten Ausgabe gepaarte Eingabe umfasst oder wo Trainings-Datensatz 902 Eingabe umfasst, die eine bekannte Ausgabe hat, und eine Ausgabe vom neuronalen Netzwerk 906 wird manuell eingestuft. In zumindest einem Ausführungsbeispiel wird untrainiertes neuronales Netzwerk 906 in einer überwachten Weise trainiert und prozessiert Eingaben von Trainings-Datensatz 902 und vergleicht resultierende Ausgaben mit einem Satz von erwarteten oder gewünschten Ausgaben. In zumindest einem Ausführungsbeispiel werden Fehler dann durch untrainiertes neuronales Netzwerk 906 zurückpropagiert. In zumindest einem Ausführungsbeispiel justiert Trainings-Framework 904 Gewichte, die untrainiertes neuronales Netzwerk 906 steuern. In zumindest einem Ausführungsbeispiel umfasst Trainings-Framework 904 Werkzeuge, um zu überwachen, wie gut untrainiertes neuronales Netzwerk 906 gegen ein Modell konvergiert, wie beispielsweise trainiertes neuronales Netzwerk 908, geeignet zum Erzeugen von korrekten Antworten, wie beispielsweise im Ergebnis 914, basierend auf Eingabedaten wie beispielsweise einem neuen Datensatz 912. In zumindest einem Ausführungsbeispiel trainiert Framework 904 wiederholt das untrainierte neuronale Netzwerk 906, während Justierens von Gewichten, um eine Ausgabe vom untrainierten neuronalen Netzwerk 906 zu verbessern, unter Verwenden einer Verlustfunktion und eines Anpassungsalgorithmus, wie beispielsweise stochastische Gradienten-Abstammung (stochastic gradient descent). In zumindest einem Ausführungsbeispiel trainiert Trainings-Framework 904 das untrainierte neuronale Netzwerk 906, bis das untrainierte neuronale Netzwerk 906 eine gewünschte Genauigkeit erreicht. In zumindest einem Ausführungsbeispiel kann das trainierte neuronale Netzwerk 908 dann benutzt werden, um irgendeine Anzahl von maschinenlern-Operationen zu implementieren.
  • In zumindest einem Ausführungsbeispiel wird das untrainierte neuronale Netzwerk 906 unter Verwenden von unüberwachten Lernen trainiert, wobei das untrainierte Neuronale Netzwerk 906 versucht sich selbst unter Verwenden von ungelabelten Daten zu trainieren. In zumindest einem Ausführungsbeispiel wird unüberwachtes Lernen Trainings-Datensatz 902 Eingabedaten ohne assoziierte Ausgabedaten oder Daten mit bekannten Ergebnis („Ground-Truth“) enthalten. In zumindest einem Ausführungsbeispiel kann das untrainierte neuronale Netzwerk 906 Gruppierungen innerhalb des Trainingsdatensatzes 902 lernen und kann bestimmen, wie individuelle Eingaben mit dem untrainierten Datensatz 902 verwandt sind. In zumindest einem Ausführungsbeispiel kann unüberwachtes Lernen verwendet werden, um eine selbstorganisierende Karte im trainierten neuronalen Netzwerk 908 zu erzeugen, geeignet zum Durchführen von Operationen, die beim Reduzieren einer Dimensionalität vom neuen Datensatz 912 nützlich sind. In zumindest einem Ausführungsbeispiel kann unüberwachtes Trainieren auch verwendet werden, um Anomaliedetektion durchzuführen, was Identifikation von Datenpunkten im neuen Datensatz 912 erlaubt, die von normalen Mustern vom neuen Datensatz 912 abweichen.
  • In zumindest einem Ausführungsbeispiel kann halbüberwachtes Lernen verwendet werden, was eine Technik ist, in der Trainings-Datensatz 902 eine Mischung aus gelabelten und ungelabelten Daten enthält. In zumindest einem Ausführungsbeispiel kann Trainings-Framework 904 verwendet werden, um ein inkrementelles Lernen durchzuführen, wie beispielsweise durch transferierte Lerntechniken. In zumindest einem Ausführungsbeispiel erlaubt es inkrementelles Lernen dem trainierten neuronalen Netzwerk 908 sich an neuen Datensatz 912 anzupassen, ohne Wissen zu vergessen, das dem trainierten neuronalen Netzwerk während initialen Trainings beigebracht wurde.
  • In zumindest einem Ausführungsbeispiel ist Trainings-Framework 904 ein Framework, das in Verbindung mit einem Software-Entwicklungs-Werkzeugssatz prozessiert wird, wie beispielsweise einem OpenVINO-(Open Visual Inference and Neural network Optimization)-Werkzeugsatz. In zumindest einem Ausführungsbeispiel ist ein OpenVINO-Werkzeugsatz ein Werkzeugsatz, wie beispielsweise der, der durch Intel Corporation aus Santa Clara, Kalifornien entwickelt wurde.
  • In zumindest einem Ausführungsbeispiel ist OpenVINO ein Werkzeugsatz zum Ermöglichen von Entwicklung von Anwendungen, insbesondere neuronale Netzwerk Anwendungen, für verschiedene Aufgaben und Operationen, wie beispielsweise Emulation von menschlicher Sicht, Spracherkennung, Verarbeitung natürlicher Sprache, Empfehlungssystemen und/oder Variationen davon. In zumindest einem Ausführungsbeispiel unterstützt OpenVINO neuronale Netzwerke wie beispielsweise faltende neuronale Netzwerke (convolutional neural networks, CNN), rückgekoppelte und/oder aufmerksamkeitsbasierte (attentionbased) neuronale Netzwerke und/oder verschiedenartige andere neuronale Netzwerk Modelle. In zumindest einem Ausführungsbeispiel unterstützt OppenVINO verschiedene Softwarebibliotheken, wie beispielsweise OpenCV, OpenCL und/oder Variationen davon.
  • In zumindest einem Ausführungsbeispiel unterstützt OpenVINO neuronale Netzwerk Modelle für verschiedene Aufgaben und Operationen, wie beispielsweise Klassifikation, Segmentierung, Objektdetektion, Gesichtserkennung, Spracherkennung, Posenschätzung (z.B. Menschen und/oder Objekte), eine monokulare Tiefenschätzung, Bild-Inpainting, Stiltransfer, Handlungserkennung, Kolorierung und/oder Variationen davon.
  • In zumindest einem Ausführungsbeispiel weist OpenVINO ein oder mehrere Softwarewerkzeuge und/oder Module zur Modelloptimierung aus, auch als ein Modelloptimierer in Bezug genommen. In zumindest einem Ausführungsbeispiel ist ein Modelloptimier ein Befehlszeilen-Werkzeug, das Übergänge zwischen Training und Benutzung von neuronalen Netzwerken ermöglicht. In zumindest einem Ausführungsbeispiel optimiert ein Modelloptimierer neuronale Netzwerk-Modelle zum Ausführen auf verschiedenen Vorrichtungen und/oder Verarbeitungseinheiten, wie beispielsweise eine GPU, CPU, PPU, GPGPU und/oder Variationen davon. In zumindest einem Ausführungsbeispiel erzeugt ein Modelloptimierer eine interne Repräsentation eines Modells und optimiert dieses Modell, um eine intermediäre Repräsentation zu erzeugen. In zumindest einem Ausführungsbeispiel reduziert ein Modelloptimierer eine Anzahl von Schichten eines Modells. In zumindest einem Ausführungsbeispiel entfernt ein Modelloptimierer Schichten eines Modells, die zum Training verwendet werden. In zumindest einem Ausführungsbeispiel führt ein Modelloptimierer verschiedene neuronale Netzwerk-Operationen durch, wie beispielsweise ein Modifizieren von Eingaben in ein Modell (z.B. Größenanpassung von Eingaben in ein Modell), Modifizieren einer Größe von Eingaben eines Modells (z.B. Modifizieren einer Batchgröße eines Modells), Modifizieren einer Modellstruktur (z.B. Modifizieren von Schichten eines Modells), Normalisierung, Standardisierung, Quantifizierung (z.B. Konvertieren von Gewichten eines Modell von einer ersten Repräsentation, wie beispielsweise als Gleitkomma, zu einer zweiten Repräsentation, wie beispielsweise als Integer) und/oder Variationen davon.
  • In zumindest einem Ausführungsbeispiel weist OpenVINO eine oder mehrere Softwarebibliotheken zum Inferenzieren aus, auch als eine Inferenzierengine in Bezug genommen. In zumindest einem Ausführungsbeispiel ist eine Inferenzierengine eine C++-Bibliothek oder irgendeine geeignete Bibliothek einer Programmiersprache. In zumindest einem Ausführungsbeispiel wird eine Inferenzierengine verwendet, um Eingabedaten zu inferenzieren. In zumindest einem Ausführungsbeispiel implementiert eine Inferenzierengine verschiedene Klassen, um Eingabedaten zu inferenzieren und ein oder mehrere Ergebnisse zu erzeugen. In zumindest einem Ausführungsbeispiel implementiert eine Inferenzierengine eine oder mehrere API-Funktionen, um eine intermediäre Repräsentation zu prozessieren, Eingabe- und/oder Ausgabeformate zu setzen und/oder ein Modell auf einer oder mehreren Vorrichtungen auszuführen.
  • In zumindest einem Ausführungsbeispiel stellt OpenVINO verschiedene Befähigungen zum heterogenen Ausführen eines oder mehrerer neuronaler Netzwerk Modelle bereit. In zumindest einem Ausführungsbeispiel referenziert heterogenes Ausführen, oder heterogenes Berechnen, auf einen oder mehrere Rechenprozesse und/oder Systeme, die einen oder mehrere Typen von Prozessoren und/oder Kernen verwenden. In zumindest einem Ausführungsbeispiel stellt OpenVINO verschiedene Softwarefunktionen bereit, um ein Programm auf einer oder mehreren Vorrichtungen auszuführen. In zumindest einem Ausführungsbeispiel stellt OpenVINO verschiedene Softwarefunktionen bereit, um ein Programm und/oder Teile eines Programmes auf verschiedenen Vorrichtungen auszuführen. In zumindest einem Ausführungsbeispiel stellt OpenVINO verschiedene Softwarefunktionen bereit, um zum Beispiel einen ersten Teil von Code auf einer CPU und einen zweiten Teil von Code auf einer GPU und/oder FPGA laufen zu lassen. In zumindest einem Ausführungsbeispiel stellt OpenVINO verschiedene Softwarefunktionen bereit, um eine oder mehrere Schichten eines neuronalen Netzwerks auf einer oder mehreren Vorrichtungen (z.B. einen ersten Satz von Schichten auf einer ersten Vorrichtung, wie beispielweise einer GPU, und einen zweiten Satz von Schichten auf einer zweiten Vorrichtung, wie beispielsweise einer CPU) auszuführen.
  • In zumindest einem Ausführungsbeispiel umfasst OpenVINO unterschiedliche Funktionalität ähnlich zu Funktionalitäten, die mit einem CUDA-Programmiermodell assoziiert sind, wie beispielsweise verschiedene neuronale Netzwerk Modelloperationen, die mit Frameworks assoziiert sind, wie beispielsweise TensorFlow, PyTorch und/oder Variationen davon. In zumindest einem Ausführungsbeispiel werden eine oder mehrere CUDA Programmiermodell Operationen unter Verwenden von OpenVINO durchgeführt. In zumindest einem Ausführungsbeispiel werden verschiedene hierin beschriebene Systeme, Verfahren und/oder Techniken unter Verwenden von OpenVINO implementiert.
  • Andere Variationen liegen innerhalb des Geistes der vorliegenden Offenbarung. Daher werden, während die offenbarten Techniken für verschiedene Modifikationen und alternative Konstruktionen empfänglich sind, bestimmte dargestellte Ausführungsbeispiele davon in den Zeichnungen gezeigt und wurden hierin im Detail beschrieben. Es sollte jedoch verstanden werden, dass dabei keine Intention besteht, die Offenbarung auf eine spezifische offenbarte Form oder Formen zu beschränken, sondern, im Gegenteil, ist die Intension alle Modifikationen, alternative Konstruktionen und Äquivalente, die in den Geist und Umfang der Offenbarung fallen, wie sie in den angefügten Ansprüchen definiert wird, abzudecken.
  • Die Verwendung der Begriffe „ein“ und „eine“ und „der/die/das“ und ähnliche Bezugnahmen in dem Kontext des Beschreibens der offenbarten Ausführungsbeispiele (insbesondere im Kontext der folgenden Ansprüche) sind auszulegen, sowohl Singular als auch Plural abzudecken, solange nicht anders hierin angezeigt oder es klar mit dem Kontext in Widerspruch steht, und nicht als eine Definition eines Begriffes. Die Begriffe „aufweisen“, „haben“, „umfassen“ und „beinhalten/enthalten“ sind als offene Begriffe (d.h. „einschließlich aber nicht eingeschränkt auf“ meinend) auszulegen, solange nicht anders angegeben. „Verbunden“, wenn unmodifiziert und auf physikalische Verbindungen bezugnehmend, ist auszulegen als teilweise oder vollständig enthalten in, befestigt an oder aneinander angekoppelt, selbst wenn etwas dazwischenliegt. Zitieren von Bereichen von Werten hierin ist lediglich als ein abkürzendes Verfahren einer individuellen Bezugnahme auf jeden einzelnen Wert, der innerhalb dieses Bereichs fällt, zu dienen gemeint, solange hierin nicht anders angezeigt, und jeder einzelner Wert ist in die Spezifikation inkorporiert, als ob er hierin individuell zitiert wäre. In zumindest einem Ausführungsbeispiel ist die Verwendung des Begriffes „Satz“ (z.B. „Satz von Dingen“) oder „Teilsatz“, solange nicht anderweitig genannt oder durch den Kontext widersprochen, als eine nichtleere Kollektion auszulegen, die ein oder mehrere Elemente aufweist. Ferner, solange nicht anderweitig genannt oder durch den Kontext widersprochen, bezeichnet der Begriff „Teilsatz“ eines korrespondierenden Satzes nicht notwendigerweise einen eigentlichen Teilsatz des korrespondierenden Satzes, sondern der Teilsatz und der korrespondierende Satz können gleich sein.
  • Konjunktive Sprache, wie beispielsweise Phrasen in der Form von „zumindest eines von A, B und C“ oder „zumindest eines von A, B und C“, solange nicht explizit anderes angegeben oder anders klar durch den Kontext widersprochen, ist andererseits mit dem Kontext zu verstehen, als dass es im Allgemeinen verwendet wird, um aufzuzeigen, dass ein Ding, Begriff usw. entweder A oder B oder C oder irgendein nichtleerer Teilsatz des Satzes von A und B und C ist. Zum Beispiel nehmen, in dem illustrativen Beispiel eines Satzes mit drei Elementen, die konjunktiven Phrasen „zumindest eines von A, B und C“ und „zumindest eines von A, B und C“ Bezug auf jede der folgenden Mengen: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Daher ist solch eine konjunktive Sprache nicht generell dazu gedacht, zu implizieren, dass gewisse Ausführungsbeispiele verlangen, dass sowohl zumindest eines von A, zumindest eines von B und zumindest eines von C anwesend sind. Zusätzlich, solange nicht anderes angegeben oder durch den Kontext widersprochen, zeigt der Begriff „Vielzahl“ einen Zustand des Plurals an (z.B. „eine Vielzahl von Objekten“ indiziert mehrere Objekte). In zumindest einem Ausführungsbeispiel ist die Zahl von Objekten in einer Vielzahl zumindest zwei, kann aber mehr sein, wenn entweder explizit oder durch Kontext angezeigt. Ferner, solange nicht anderes angegeben oder durch den Kontext klar, bedeutet die Phrase „basierend auf“ „basierend zumindest zum Teil auf“ und nicht „alleinig basierend auf“.
  • Operationen von hierin beschriebenen Prozessen können in jeder geeigneten Reihenfolge durchgeführt werden, solange nichts Anderes hierin angezeigt wird oder durch den Kontext klar widersprochen wird. In zumindest einem Ausführungsbeispiel wird ein Prozess, wie beispielsweise jene Prozesse, die hierin beschrieben werden (oder Variationen und/oder Kombinationen davon), unter der Steuerung eines oder mehrerer Computersystems/e durchgeführt, konfiguriert mit ausführbaren Instruktionen, und als Code (z.B. ausführbare Instruktionen, ein oder mehrere Computerprogramm(e) oder eine oder mehrere Anwendungen) implementiert, die kollektiv auf einen oder mehreren Prozessoren ausführen, mittels Hardware oder Kombinationen davon. In zumindest einem Ausführungsbeispiel wird Code auf einem computerlesbaren Speichermedium gespeichert, zum Beispiel in der Form eines Computerprogrammes, das eine Vielzahl von Instruktionen aufweist, die mittels eines oder mehreren Prozessoren ausführbar sind. In zumindest einem Ausführungsbeispiel ist ein computerlesbares Medium ein nicht-flüchtiges (non-transitory) computerlesbares Speichermedium, was vorübergehende Signale (z.B. eine sich ausbreitende flüchtige elektrische oder elektromagnetische Übermittlung) ausschließt, aber nicht-flüchtige Datenspeicherschaltkreise (z.B. Puffer, Caches und Queues) innerhalb von Transceivern von flüchtigen Signalen umfasst. In zumindest einem Ausführungsbeispiel wird Code (z.B. ausführbarer Code oder Sourcecode) auf einem Satz von einem oder mehreren nicht-flüchtigen computerlesbaren Speichermedien gespeichert, die darauf ausführbare Instruktionen (oder anderer Arbeitsspeicher, um ausführbare Instruktionen zu speichern) gespeichert haben, die, wenn mittels eines oder mehrerer Prozessoren eines Computersystems ausgeführt werden (z.B. als ein Ergebnis davon, dass sie ausgeführt werden), das Computersystem dazu bringen, hierin beschriebene Operationen durchzuführen. In zumindest einem Ausführungsbeispiel weist ein Satz von nicht-flüchtigen computerlesbaren Speichermedien mehrere nicht-flüchtige computerlesbare Speichermedien auf, und einen oder mehreren individuellen nicht-flüchtigen Speichermedien der mehreren nicht-flüchtige computerlesbaren Speichermedien mangelt es gänzlich an Code, während mehrere nicht-flüchtige computerlesbare Speichermedien kollektiv den gesamten Code speichern. In zumindest einem Ausführungsbeispiel werden die ausführbaren Instruktionen so ausgeführt, dass verschiedene Instruktionen mittels verschiedener Prozessoren ausgeführt werden - zum Beispiel speichert ein nicht-flüchtiges computerlesbares Speichermedium Instruktionen und eine Haupt-Zentral-Verarbeitungseinheit („CPU“) führt einige der Instruktionen aus, während eine Graphik-Verarbeitungseinheit („GPU“) andere Instruktionen ausführt. In zumindest einem Ausführungsbeispiel haben verschiedene Komponenten eines Computersystems separate Prozessoren und verschiedene Prozessoren führen verschiedene Teilsätze von Instruktionen aus.
  • In zumindest einem Ausführungsbeispiel ist eine Arithmetiklogikeinheit ein Satz von kombinatorischen Logikschaltkreisen, die eine oder mehrere Eingaben nehmen, um ein Ergebnis zu produzieren. In zumindest einem Ausführungsbeispiel wird eine Arithmetiklogikeinheit durch einen Prozessor verwendet, um mathematische Operationen, wie beispielsweise Addition, Subtraktion oder Multiplikation, zu implementieren. In zumindest einem Ausführungsbeispiel wird eine Arithmetiklogikeinheit verwendet, um logische Operationen, wie beispielsweise logisches AND/OR oder XOR zu implementieren. In zumindest einem Ausführungsbeispiel ist eine Arithmetiklogikeinheit zustandslos und aus physikalisch schaltenden Komponenten, wie beispielsweise Halbleitertransistoren gemacht, die angeordnet sind, um logische Gatter zu bilden. In zumindest einem Ausführungsbeispiel kann eine Arithmetiklogikeinheit intern als eine zustandsorientierte (stateful) Logikschaltung mit einer assoziierten Clock operieren. In zumindest einem Ausführungsbeispiel kann eine Arithmetiklogikeinheit als eine asynchrone Logikschaltung mit einem internen Zustand, der in einem assoziierten Registersatz nicht aufrechterhalten wird, konstruiert sein. In zumindest einem Ausführungsbeispiel wird eine Arithmetiklogikeinheit durch einen Prozessor verwendet, um Operanden zu kombinieren, die in einem oder mehreren Registern des Prozessors gespeichert sind und um eine Ausgabe zu produzieren, die mittels des Prozessors in einem anderen Register oder Arbeitsspeicherposition gespeichert werden kann.
  • In zumindest einem Ausführungsbeispiel präsentiert, als ein Ergebnis eines Verarbeitens von Instruktionen, die mittels des Prozessors abgerufen wurden, der Prozessor eine oder mehrere Eingaben oder Operanden einer Arithmetiklogikeinheit, was die Arithmetiklogikeinheit dazu bringt, ein Ergebnis zu produzieren basierend zumindest zum Teil auf einem Instruktionscode, der Eingängen der Arithemtiklogikeinheit bereitgestellt wird. In zumindest einem Ausführungsbeispiel basieren die Instruktionscodes, die mittels des Prozessors der ALU bereitgestellt werden, zumindest zum Teil auf Instruktionen, die mittels des Prozessors ausgeführt werden. In zumindest einem Ausführungsbeispiel prozessiert Kombinationslogik in der ALU die Eingaben und produziert eine Ausgabe, die auf einen Bus innerhalb des Prozessors platziert wird. In zumindest einem Ausführungsbeispiel wählt der Prozessor ein Zielregister, eine Arbeitsspeicherposition, eine Ausgabevorrichtung oder eine Ausgabespeicherposition auf dem Ausgabebus aus, so dass ein Takten des Prozessors bewirkt, dass die Ergebnisse, die mittels der ALU produziert werden, zu der gewünschten Position gesendet werden.
  • Im Umfang dieser Anmeldung, wird der Begriff Arithemtiklogik oder ALU verwendet, um irgendeine rechnergestützte Logikschaltung in Bezug zu nehmen, die Operanden prozessiert, um ein Ergebnis zu produzieren. Zum Beispiel kann in dem vorliegenden Dokument, der Begriff ALU auf eine Gleitkommaeinheit, einen DSP, einen Tensorkern, einen Schattiererkern (shader core), einen Coprozessor oder eine CPU Bezug nehmen.
  • Demgemäß sind, in zumindest einem Ausführungsbeispiel, Computersysteme konfiguriert, um einen oder mehrere Dienste zu implementieren, die einzeln oder gemeinschaftlich Operationen von hierin beschriebene Prozessen durchführen und solche Computersysteme sind mit anwendbarer Hardware und/oder Software konfiguriert, die das Durchführen von Operationen ermöglichten. Ferner ist ein Computersystem, das zumindest ein Ausführungsbeispiel der vorliegenden Offenbarung implementiert, eine einzelne Vorrichtung und ist, in einem anderen Ausführungsbeispiel, ein verteiltes Computersystem, das mehrere Vorrichtungen aufweist, die unterschiedlich operieren, so dass das verteilte Computersystem hierin beschriebenen Operationen durchführt, und so dass keine einzelne Vorrichtung alle Operationen durchführt.
  • Die Benutzung von irgendeinem und allen Beispielen oder hierin bereitgestellter beispielhafter Sprache (z.B. „wie beispielsweise“) ist nur dazu beabsichtigt, Ausführungsbeispiele der Offenbarung besser zu beleuchten und erlegt dem Umfang der Erfindung keine Einschränkung auf, solange nicht auf andere Weise beansprucht. Keine Sprache in der Spezifikation sollte ausgelegt werden, dass sie irgendein nicht-beanspruchtes Element als essentiell für die Durchführung der Offenbarung anzeigt.
  • Alle Referenzen, einschließlich Publikationen, Patentanmeldungen und Patenten, die hierin zitiert werden, werden hiermit durch Referenzieren eingebunden im gleichen Umfang als ob für jede Referenz individuell und spezifisch angezeigt würde, dass sie mittels Referenz eingebunden ist und in ihrer Gesamtheit hier dargelegt wäre.
  • In der Beschreibung und den Ansprüchen können die Begriffe „gekoppelt“ und „verbunden“ zusammen mit deren Derivaten verwendet werden. Es sollte verstanden werden, dass diese Begriffe nicht als Synonyme füreinander gedacht sein mögen. Eher können, in spezifischen Beispielen, „verbunden“ oder „gekoppelt“ verwendet werden, um anzuzeigen, dass zwei oder mehr Elemente im direkten oder indirekten physikalischen oder elektrischen Kontakt miteinander sind. „Gekoppelt“ kann auch bedeuten, dass zwei oder mehr Elemente nicht im direkten Kontakt miteinander sind, aber immer noch miteinander kooperieren oder interagieren.
  • Solange nicht spezifisch anders angegeben, mag es gewürdigt werden, dass sich durch die Spezifikation hindurch Begriffe wie beispielsweise „prozessieren“, „berechnen“, „kalkulieren“, „bestimmen“ oder ähnliches auf Aktion und/oder Prozesse eines Computers oder Computersystems oder einer ähnliche elektronische Rechenvorrichtung beziehen, die Daten, die als physikalische, wie beispielsweise elektronische, Quantitäten innerhalb der Register des Computersystems und/oder Arbeitsspeicher repräsentiert werden, in andere Daten manipulieren und/oder transformieren, die ebenso innerhalb Arbeitsspeicher, Register oder anderer solcher Informationsspeicher-, -übertragungs- oder Anzeigevorrichtungen des Computersystems als physikalische Quantitäten repräsentiert werden.
  • Auf ähnliche Weise kann der Begriff „Prozessor“ auf jede Vorrichtung oder Teil einer Vorrichtung Bezug nehmen, die elektronische Daten aus Registern und/oder Arbeitsspeicher prozessiert und diese elektronische Daten in andere elektronische Daten transformiert, die in Registern und/oder Arbeitsspeicher gespeichert werden können. Als nicht einschränkende Beispiele kann „Prozessor“ eine CPU oder eine GPU sein. Eine „Computerplattform“ kann einen oder mehrere Prozessoren aufweisen. Wie hierin verwendet, können „Software-”Prozesse zum Beispiel Software und/oder Hardware Entitäten umfassen, die über die Zeit Arbeit durchführen, wie beispielsweise Aufgaben, Threads und intelligente Agenten. Auch kann jeder Prozess auf mehrere Prozesse zum Austragen von Instruktionen in Sequenz oder parallel, kontinuierlich oder intermittierend Bezug nehmen. In zumindest einem Ausführungsbeispiel werden die Begriffe „System“ und „Verfahren“ hierin insoweit austauschbar verwendet, als dass das System ein oder mehrere Verfahren verkörpern kann und Verfahren als ein System angesehen werden können.
  • In dem vorliegenden Dokument kann auf Erlangen, Erwerben, Empfangen oder Eingeben analoger oder digitaler Daten in ein Subsystem, Computersystem oder eine computerimplementierte Maschine Bezug genommen werden. In zumindest einem Ausführungsbeispiel kann der Prozess des Erlangens, Erwerbens, Empfangens oder Eingebens analoger und digitaler Daten auf eine Vielfalt von Wegen erreicht werden, wie beispielsweise mittels Empfangens von Daten als ein Parameter eines Funktionsaufrufs oder eines Aufrufs an eine Programmierschnittstelle. In zumindest einem Ausführungsbeispiel können Prozesse des Erlangens, Erwerbens, Empfangens oder Eingebens analoger oder digitaler Daten mittels Übertragens von Daten über eine serielle oder parallele Schnittstelle erreicht werden. In zumindest einem Ausführungsbeispiel können Prozesse des Erlangens, Erwerbens, Empfangens oder Eingebens analoger oder digitaler Daten mittels Übertragens der Daten von der bereitstellenden Entität über ein Computernetzwerk an die erwerbende Entität erreicht werden. In zumindest einem Ausführungsbeispiel kann auch Bezug auf Bereitstellen, Ausgeben, Übermitteln, Senden oder Präsentieren von analogen oder digitaler Daten genommen werden. In verschiedenen Beispielen können Prozesse des Bereitstellens, Ausgebens, Übermittelns, Sendens oder Präsentierens von analogen oder digitalen Daten mittels Übertragens der Daten als ein Eingabe- oder Ausgabeparameter eines Funktionsaufrufs, eines Parameters einer Programmierschnittstelle oder eines Interprozess-Kommunikations-Mechanismus erreicht werden.
  • 1. In einigen Ausführungsbeispielen umfasst ein Verfahren ein Durchführen einer oder mehrerer Operationen, um eine Vielzahl von maschinenlern-Modelle zu trainieren, um zumindest einen Teil eines Roboters zu steuern, um eine Aufgabe durchzuführen, ein Aktualisieren zumindest eines ersten Werts zumindest eines Parameters oder eines Hyperparameter assoziiert mit einen oder mehreren ersten maschinenlern-Modellen, enthalten in der Vielzahl von maschinenlern-Modellen zumindest basierend auf zumindest einem zweiten Wert des zumindest einen Parameters oder des zumindest einen Hyperparameter assoziiert mit einem oder mehreren zweiten maschinenlern-Modellen enthalten in der Vielzahl von maschinenlern-Modellen, und nachfolgend zu dem Aktualisieren ein Durchführen einer oder mehrerer zusätzlicher Operationen, um die Vielzahl von maschinenlern-Modellen zu trainieren, um zumindest den Teil des Roboters zu steuern, um eine Aufgabe durchzuführen.
  • 2. Das Verfahren nach Klausel 1, wobei das eine oder die mehreren ersten maschinenlern-Modelle einen vordefinierten Prozentsatz von am schlechtesten performenden maschinenlern-Modellen in der Vielzahl von maschinenlern-Modellen umfasst, und das eine oder die mehreren zweiten maschinenlern-Modelle einen vordefinierten Prozentsatz von am besten performenden maschinenlern-Modellen in der Vielzahl von maschinenlern-Modellen umfasst.
  • 3. Das Verfahren nach Klausel 1 oder 2, wobei das eine oder die mehreren ersten maschinenlern-Modelle einen vordefinierten Prozentsatz von maschinenlern-Modellen in der Vielzahl von maschinenlern-Modellen umfasst, deren Performance weder am schlechtesten noch am besten in der Vielzahl von maschinenlern-Modellen ist, und das eine oder die mehreren ersten maschinenlern-Modelle einen vordefinierten Prozentsatz von am besten performenden maschinenlern-Modellen in der Vielzahl von maschinenlern-Modellen umfassen.
  • 4. Das Verfahren nach irgendeiner der Klauseln 1-3, wobei das Aktualisieren des zumindest einen ersten Werts des zumindest einen Parameters oder des zumindest einen Hyperparameter assoziiert mit dem einen oder den mehreren ersten maschinenlern-Modellen ein Ersetzen des zumindest einen Wertes des zumindest einen Parameters oder des zumindest einen Hyperparameter assoziiert mit dem einen oder den mehreren ersten maschinenlern-Modellen mit dem zumindest einen zweiten Wert des zumindest einen Parameters oder des zumindest einen Hyperparameter assoziiert mit dem einen oder den mehreren zweiten maschinenlern-Modellen aufweist.
  • 5. Das Verfahren nach irgendeiner der Klauseln 1-4, wobei die eine oder mehreren Operationen zum Trainieren der Vielzahl von maschinenlern-Modellen eine oder mehrere verstärkendes Lernen Operationen aufweist.
  • 6. Das Verfahren nach irgendeiner der Klauseln 1-5, wobei die eine oder mehreren Operationen zum Trainieren der Vielzahl von maschinenlern-Modellen zumindest auf einer Belohnung basieren assoziiert mit zumindest einem von einem Erreichen eines Objekts, Anheben des Objekts oder Bringen des Objekts an eine Position.
  • 7. Das Verfahren nach irgendeiner der Klauseln 1-6, wobei die eine oder mehreren Operationen zum Trainieren der Vielzahl von maschinenlern-Modellen zumindest auf einer Meta-Optimierung eines Zieles basieren.
  • 8. Das Verfahren nach irgendeiner der Klauseln 1-7, wobei das Durchführen der einen oder mehreren Operationen, um die Vielzahl von maschinenlern-Modelle zu trainieren, ein Durchführen einer oder mehrerer Operationen, um ein drittes maschinenlern-Modell zu trainieren, das in der Vielzahl von maschinenlern-Modellen enthalten ist, und ein Durchführen einer oder mehrerer Operationen aufweist, um ein viertes maschinenlern-Modell zu trainieren, das in der Vielzahl von maschinenlern-Modellen enthalten ist, wobei die eine oder die mehreren Operationen zum Trainieren des dritten maschinenlern-Modelles zu einer anderen Zeit als die eine oder die mehreren Operationen zum Trainieren des vierten maschinenlern-Modells beginnen.
  • 9. Das Verfahren nach irgendeiner der Klauseln 1-8 ferner aufweisend, nachfolgend zum Durchführen der einen oder mehreren zusätzlichen Operationen, ein Auswählen eines dritten maschinenlern-Modells, das in der Vielzahl von maschinenlern-Modellen enthalten ist, basierend auf einer Performance des dritten maschinenlern-Modells, und ein Durchführen einer oder mehrerer Operationen, um zumindest den Teil des Roboters zu steuern, um die Aufgabe durchzuführen, unter Verwenden des dritten maschinenlern-Modells.
  • 10. Das Verfahren nach irgendeiner der Klauseln 1-9, wobei die Aufgabe zumindest eines von einem Neugreifen eines Objekts, einem Werfen eines Objekts oder einem Umorientieren eines Objekts mit einem oder zwei Armen des Roboters umfasst.
  • 11. Das Verfahren nach irgendeiner der Klauseln 1-10, wobei das Verfahren mittels eine Prozessors durchgeführt wird, der in zumindest einem von einem Infotainment-System für eine autonome oder halb-autonomen Maschine, einem System, zum Durchführen von Simulationsoperationen, einem System zum Durchführen von Digital-Zwillingsoperationen, einem System zum Durchführen von Lichttransport-Simulation, einem System zum Durchführen von Erzeugung gemeinsamen Inhalts für 3D-Aktiva (assets), einem System zum Durchführen von Deep-Learning-Operationen, einem System, das unter Verwenden einer Edge-Vorrichtung implementiert ist, einem System, das unter Verwenden eines Roboters implementiert ist, einem System zum Erzeugen oder Präsentieren von virtueller Realität, erweiterter Realität oder gemischter Realität Inhalt, einem System zum Durchführen von Dialog-KI-Operationen, einem System, das ein oder mehrere große Sprachmodelle (LLMs) implementiert, einem System zum Erzeugen von Synthetik-Daten, einem System, das eine oder mehrere virtuelle Maschinen (VMs) beinhaltet, einem System, das zumindest teilweise in einem Datencenter implementiert ist, oder einem System, das zumindest teilweise unter Verwenden von Cloud-Berechnungsressourcen implementiert wird, enthalten ist.
  • 12. In einigen Ausführungsbeispielen weist ein Verfahren ein Empfangen von Sensordaten assoziiert mit einem Roboter, ein Erzeugen einer Handlung basierend zumindest auf den Sensordaten und einem ersten maschinenlern-Modell und ein Steuern zumindest eines Teils des Roboters, um eine Aufgabe basierend auf der Handlung durchzuführen, wobei das erste maschinenlern-Modell mittels Durchführens einer oder mehrerer Operationen trainiert wurde, um eine Vielzahl von maschinenlern-Modellen zu trainieren, um zumindest den Teil des Roboters zu steuern, die Aufgabe durchzuführen, ein Aktualisieren zumindest eines ersten Werts von zumindest einem Parameter oder zumindest einem Hyperparameter assoziiert mit einem oder mehreren maschinenlern-Modellen, die in der Vielzahl von maschinenlern-Modellen enthalten sind, zumindest basierend auf zumindest einem zweiten Wert des zumindest einem Parameter oder des zumindest einen Hyperparameter assoziiert mit einem oder mehreren dritten maschinenlern-Modellen, die in der Vielzahl von maschinenlern-Modellen enthalten sind, nachfolgend zu dem Aktualisieren ein Durchführen einer oder mehrerer zusätzlichen Operationen, um die Vielzahl von maschinenlern-Modellen zu trainieren, um zumindest den Teil des Roboters zu steuern, die Aufgabe durchzuführen, und ein Auswählen des ersten maschinenlern-Modell von der Vielzahl von maschinenlern-Modellen auf.
  • 13. Das Verfahren nach Klausel 12, wobei das eine oder die mehreren zweiten maschinenlern-Modelle einen vordefinierten Prozentsatz von am schlechtesten performenden maschinenlern-Modellen in der Vielzahl von maschinenlern-Modellen umfassen, und das eine oder die mehreren dritten maschinenlern-Modelle einen vordefinierten Prozentsatz von am besten performenden maschinenlern-Modellen in der Vielzahl von maschinenlern-Modellen umfassen.
  • 14. Das Verfahren nach Klausel 12 oder 13, wobei die eine oder mehreren Operationen zum Trainieren der Vielzahl von maschinenlern-Modellen eine oder mehrere verstärkendes Lernen Operationen aufweisen.
  • 15. Das Verfahren nach irgendeiner der Klauseln 12-14 wobei das Durchführen der einen oder der mehreren Operationen zum Trainieren der Vielzahl von maschinenlern-Modellen ein Durchführen einer oder mehrerer Operationen zum Simulieren des Roboters in einer Vielzahl von Simulationen aufweist, und die Vielzahl von Simulationen parallel via eine oder mehrere Grafik-Verarbeitungseinheiten (GPUs) durchgeführt werden.
  • 16. Das Verfahren nach irgendeiner der Klauseln 12-15, wobei die eine oder die mehreren Operationen zum Trainieren der Vielzahl von maschinenlern-Modellen zumindest auf einem von einer Meta-Optimierung eines Ziels oder einer Optimierung einer Belohnung, die mit zumindest einem von einem Erreichen eines Objekts, einem Anheben des Objekts oder einem Verbringen des Objekts an eine Position assoziiert ist, basiert.
  • 17. Das Verfahren nach irgendeinem der Klauseln 12-16, wobei das Durchführen der einen oder der mehreren Operationen zum Trainieren der Vielzahl von maschinenlern-Modellen ein Durchführen einer oder mehrerer Operationen zum Trainieren eines vierten maschinenlern-Modell, das in der Vielzahl von maschinenlern-Modellen enthalten ist, und ein Durchführen einer oder mehrerer Operationen zum Trainieren eines fünften maschinenlern-Modell, das in der Vielzahl von maschinenlern-Modellen enthalten ist, aufweist, wobei die eine oder die mehreren Operationen zum Trainieren des vierten maschinenlern-Modells zu einer anderen Zeit als die eine oder die mehreren Operationen zum Trainieren des fünften maschinenlern-Modells beginnen.
  • 18. In einigen Ausführungsbeispielen weist ein System einen oder mehrere Prozessoren auf, um zumindest einen Teil eines Roboters zu steuern unter Verwenden eines maschinenlern-Modells, das basierend auf zumindest einer oder mehrerer populationsbasierten Trainingsoperationen und einer oder mehreren verstärkendes Lernen Operationen trainiert ist.
  • 19. Das System nach Klausel 18, wobei das Maschinenlernen mittels Durchführen von Operationen trainiert wurde, die ein Aktualisieren zumindest eines ersten Werts von zumindest einem ersten Parameter oder zumindest einem ersten Hyperparameter assoziiert mit einem oder mehreren ersten maschinenlern-Modellen, die in einer Vielzahl von maschinenlern-Modellen enthalten sind, basierend auf zumindest einem zweiten Wert zumindest eines zweiten Parameters oder zumindest eines zweiten Hyperparameters assoziiert mit einem oder mehreren zweiten maschinenlern-Modellen, die in der Vielzahl von maschinenlern-Modellen enthalten ist, aufweist.
  • 20. Das System nach Anspruch 18 oder 19, wobei der eine oder die mehreren Prozessoren zumindest den Teil des Roboters zum zumindest einem von Erreichen eines Objekts, Anheben des Objekts, Manipulieren des Objekts oder Bewegen in einer Umgebung Steuert.
  • Obwohl die Beschreibungen hierin beispielhafte Implementierungen von beschriebenen Techniken darlegen, können andere Architekturen verwendet werden, um die beschriebene Funktionalität zu implementieren und sind beabsichtigt als innerhalb des Umfanges der Offenbarung zu liegen. Ferner mögen, obwohl spezifische Verteilungen und Verantwortlichkeiten oben zum Zwecke der Beschreibung definiert sind, verschiedene Funktionen und Verantwortlichkeiten abhängig von den Umständen auf verschiedene Weisen verteilt und geteilt werden.
  • Ferner, obwohl der Gegenstand in einer Sprache beschrieben wurde, die spezifisch für strukturelle Merkmale und/oder methodische Handlungen ist, ist es zu verstehen, dass der Gegenstand, der in den angehängten Ansprüchen beansprucht wird, nicht notwendigerweise auf beschriebene spezifische Merkmale oder Handlungen beschränkt ist. Vielmehr werden spezifische Merkmale und Handlungen als exemplarische Formen der Implementierung der Ansprüche offenbart.

Claims (20)

  1. Ein Verfahren aufweisend: Durchführen einer oder mehrerer Operationen, um eine Vielzahl von maschinenlern-Modelle zu trainieren, um zumindest einen Teil eines Roboters zu steuern, um eine Aufgabe durchzuführen; Aktualisieren zumindest eines ersten Werts zumindest eines Parameters oder eines Hyperparameters assoziiert mit einem oder mehreren ersten maschinenlern-Modellen, enthalten in der Vielzahl von maschinenlern-Modellen zumindest basierend auf zumindest einem zweiten Wert des zumindest einen Parameters oder des zumindest einen Hyperparameters assoziiert mit einem oder mehreren zweiten maschinenlern-Modellen enthalten in der Vielzahl von maschinenlern-Modellen; und nachfolgend zu dem Aktualisieren, Durchführen einer oder mehrerer zusätzlicher Operationen, um die Vielzahl von maschinenlern-Modellen zu trainieren, um zumindest den Teil des Roboters zu steuern, die Aufgabe durchzuführen.
  2. Das Verfahren nach Anspruch 1, wobei das eine oder die mehreren ersten maschinenlern-Modelle einen vordefinierten Prozentsatz von am schlechtesten performenden maschinenlern-Modellen in der Vielzahl von maschinenlern-Modellen umfasst, und das eine oder die mehreren zweiten maschinenlern-Modelle einen vordefinierten Prozentsatz von am besten performenden maschinenlern-Modellen in der Vielzahl von maschinenlern-Modellen umfasst.
  3. Das Verfahren nach Anspruch 1 oder 2, wobei das eine oder die mehreren ersten maschinenlern-Modelle einen vordefinierten Prozentsatz von maschinenlern-Modellen in der Vielzahl von maschinenlern-Modellen umfasst, deren Performance weder am schlechtesten noch am besten in der Vielzahl von maschinenlern-Modellen ist, und das eine oder die mehreren ersten maschinenlern-Modelle einen vordefinierten Prozentsatz von am besten performenden maschinenlern-Modellen in der Vielzahl von maschinenlern-Modellen umfassen.
  4. Das Verfahren nach irgendeinem vorherigen Anspruch, wobei das Aktualisieren des zumindest einen ersten Werts des zumindest einen Parameters oder des zumindest einen Hyperparameters assoziiert mit dem einen oder den mehreren ersten maschinenlern-Modellen ein Ersetzen des zumindest einen Wertes des zumindest einen Parameters oder des zumindest einen Hyperparameter assoziiert mit dem einen oder den mehreren ersten maschinenlern-Modellen durch den zumindest einen zweiten Wert des zumindest einen Parameters oder des zumindest einen Hyperparameter assoziiert mit dem einen oder den mehreren zweiten maschinenlern-Modellen aufweist.
  5. Das Verfahren nach irgendeinem vorherigen Anspruch, wobei die eine oder mehreren Operationen zum Trainieren der Vielzahl von maschinenlern-Modellen eine oder mehrere verstärkendes Lernen Operationen aufweist.
  6. Das Verfahren nach irgendeinem vorherigen Anspruch, wobei die eine oder mehreren Operationen zum Trainieren der Vielzahl von maschinenlern-Modellen zumindest auf einer Belohnung basieren assoziiert mit zumindest einem von einem Erreichen eines Objekts, einem Anheben des Objekts oder einem Bringen des Objekts an eine Position.
  7. Das Verfahren nach irgendeinem vorherigen Anspruch, wobei die eine oder mehreren Operationen zum Trainieren der Vielzahl von maschinenlern-Modellen zumindest auf einer Meta-Optimierung eines Zieles basieren.
  8. Das Verfahren nach irgendeinem vorherigen Anspruch, wobei das Durchführen der einen oder mehreren Operationen, um die Vielzahl von maschinenlern-Modelle zu trainieren, aufweist: Durchführen einer oder mehrerer Operationen, um ein drittes maschinenlern-Modell zu trainieren, das in der Vielzahl von maschinenlern-Modellen enthalten ist; und Durchführen einer oder mehrerer Operationen, um ein viertes maschinenlern-Modell zu trainieren, das in der Vielzahl von maschinenlern-Modellen enthalten ist, wobei die eine oder die mehreren Operationen zum Trainieren des dritten maschinenlern-Modelles zu einer anderen Zeit als die eine oder die mehreren Operationen zum Trainieren des vierten maschinenlern-Modells beginnen.
  9. Das Verfahren nach irgendeinem vorherigen Anspruch ferner aufweisend, nachfolgend zum Durchführen der einen oder mehreren zusätzlichen Operationen: Auswählen eines dritten maschinenlern-Modells, das in der Vielzahl von maschinenlern-Modellen enthalten ist, basierend auf einer Performance des dritten maschinenlern-Modells; und Durchführen einer oder mehrerer Operationen, um zumindest den Teil des Roboters zu steuern, um die Aufgabe durchzuführen, unter Verwenden des dritten maschinenlern-Modells.
  10. Das Verfahren nach irgendeinem vorherigen Anspruch, wobei die Aufgabe zumindest eines von einem Neugreifen eines Objekts, einem Werfen eines Objekts oder einem Umorientieren eines Objekts mit einem oder zwei Armen des Roboters umfasst.
  11. Das Verfahren nach irgendeinem vorherigen Anspruch, wobei das Verfahren mittels eines Prozessors durchgeführt wird, der enthalten ist in zumindest einem von: einem Infotainment-System für eine autonome oder halb-autonomen Maschine; einem System, zum Durchführen von Simulationsoperationen; einem System zum Durchführen von Digital-Zwillingsoperationen; einem System zum Durchführen von Lichttransport-Simulation; einem System zum Durchführen von Erzeugung gemeinsamen Inhalts für 3D-Aktiva; einem System zum Durchführen von Deep-Learning-Operationen; einem System, das unter Verwenden einer Edge-Vorrichtung implementiert ist; einem System, das unter Verwenden eines Roboters implementiert ist; einem System zum Erzeugen oder Präsentieren von virtueller Realität Inhalt, erweiterter Realität Inhalt oder gemischter Realität Inhalt; einem System zum Durchführen von Dialog-KI-Operationen; einem System, das ein oder mehrere große Sprachmodelle (LLMs) implementiert; ein System zum Erzeugen von Synthetik-Daten; einem System, das eine oder mehrere virtuelle Maschinen (VMs) beinhaltet; einem System, das zumindest teilweise in einem Datencenter implementiert ist; oder einem System, das zumindest teilweise unter Verwenden von Cloud-Berechnungsressourcen implementiert wird.
  12. Ein Verfahren aufweisend: Empfangen von Sensordaten assoziiert mit einem Roboter; Erzeugen einer Handlung basierend zumindest auf den Sensordaten und einem ersten maschinenlern-Modell; und Steuern zumindest eines Teils des Roboters, um eine Aufgabe basierend auf der Handlung durchzuführen, wobei das erste maschinenlern-Modell trainiert wurde mittels: Durchführens einer oder mehrerer Operationen, um eine Vielzahl von maschinenlern-Modellen zu trainieren, um zumindest den Teil des Roboters zu steuern, die Aufgabe durchzuführen, Aktualisieren zumindest eines ersten Werts von zumindest einem Parameter oder zumindest einem Hyperparameter assoziiert mit einem oder mehreren zweiten maschinenlern-Modellen, die in der Vielzahl von maschinenlern-Modellen enthalten sind, zumindest basierend auf zumindest einem zweiten Wert des zumindest einen Parameters oder des zumindest einen Hyperparameters assoziiert mit einem oder mehreren dritten maschinenlern-Modellen, die in der Vielzahl von maschinenlern-Modellen enthalten sind, nachfolgend zu dem Aktualisieren ein Durchführen einer oder mehrerer zusätzlichen Operationen, um die Vielzahl von maschinenlern-Modellen zu trainieren, um zumindest den Teil des Roboters zu steuern, um die Aufgabe durchzuführen; und Auswählen des ersten maschinenlern-Modell aus der Vielzahl von maschinenlern-Modellen.
  13. Das Verfahren nach Anspruch 12, wobei das eine oder die mehreren zweiten maschinenlern-Modelle einen vordefinierten Prozentsatz von am schlechtesten performenden maschinenlern-Modellen in der Vielzahl von maschinenlern-Modellen umfassen, und das eine oder die mehreren dritten maschinenlern-Modelle einen vordefinierten Prozentsatz von am besten performenden maschinenlern-Modellen in der Vielzahl von maschinenlern-Modellen umfassen.
  14. Das Verfahren nach Anspruch 12 oder 13, wobei die eine oder mehreren Operationen zum Trainieren der Vielzahl von maschinenlern-Modellen eine oder mehrere verstärkendes Lernen Operationen aufweisen.
  15. Das Verfahren nach irgendeinem der Ansprüche 12 bis 14 wobei das Durchführen der einen oder der mehreren Operationen zum Trainieren der Vielzahl von maschinenlern-Modellen ein Durchführen einer oder mehrerer Operationen zum Simulieren des Roboters in einer Vielzahl von Simulationen aufweist, und die Vielzahl von Simulationen parallel via eine oder mehrere Grafik-Verarbeitungseinheiten (GPUs) durchgeführt werden.
  16. Das Verfahren nach irgendeinem der Ansprüche 12 bis 15, wobei die eine oder die mehreren Operationen zum Trainieren der Vielzahl von maschinenlern-Modellen zumindest auf einem von einer Meta-Optimierung eines Ziels oder einer Optimierung einer Belohnung basiert, assoziiert mit zumindest einem von einem Erreichen eines Objekts, einem Anheben des Objekts oder einem Verbringen des Objekts an eine Position.
  17. Das Verfahren nach irgendeinem der Ansprüche 12 bis 16, wobei das Durchführen der einen oder der mehreren Operationen zum Trainieren der Vielzahl von maschinenlern-Modellen aufweist: Durchführen einer oder mehrerer Operationen zum Trainieren eines vierten maschinenlern-Modell, das in der Vielzahl von maschinenlern-Modellen enthalten ist; und Durchführen einer oder mehrerer Operationen zum Trainieren eines fünften maschinenlern-Modell, das in der Vielzahl von maschinenlern-Modellen enthalten ist, wobei die eine oder die mehreren Operationen zum Trainieren des vierten maschinenlern-Modells zu einer anderen Zeit als die eine oder die mehreren Operationen zum Trainieren des fünften maschinenlern-Modells beginnen.
  18. Ein System aufweisend: einen oder mehrere Prozessoren auf, um zumindest einen Teil eines Roboters zu steuern unter Verwenden eines maschinenlern-Modells, das basierend auf zumindest einer oder mehrerer populationsbasierten Trainingsoperationen und einer oder mehreren verstärkendes Lernen Operationen trainiert ist.
  19. Das System nach Anspruch 18, wobei das Maschinenlernen mittels Durchführen von Operationen trainiert wurde, die ein Aktualisieren zumindest eines ersten Werts von zumindest einem ersten Parameter oder zumindest einem ersten Hyperparameter aufweisen assoziiert mit einem oder mehreren ersten maschinenlern-Modellen, die in einer Vielzahl von maschinenlern-Modellen enthalten sind, zumindest basierend auf zumindest einem zweiten Wert zumindest eines zweiten Parameters oder zumindest eines zweiten Hyperparameters assoziiert mit einem oder mehreren zweiten maschinenlern-Modellen, die in der Vielzahl von maschinenlern-Modellen enthalten sind.
  20. Das System nach Anspruch 18 oder 19, wobei der eine oder die mehreren Prozessoren zumindest den Teil des Roboters zum zumindest einem von einem Erreichen eines Objekts, Anheben des Objekts, Manipulieren des Objekts oder Bewegen in einer Umgebung Steuert.
DE102023125179.1A 2022-09-20 2023-09-18 Ki-basierte steuerung für robotiksysteme und anwendungen Pending DE102023125179A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263408434P 2022-09-20 2022-09-20
US63/408,434 2022-09-20
US18/330,905 2023-06-07
US18/330,905 US20240100694A1 (en) 2022-09-20 2023-06-07 Ai-based control for robotics systems and applications

Publications (1)

Publication Number Publication Date
DE102023125179A1 true DE102023125179A1 (de) 2024-03-21

Family

ID=90062266

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102023125179.1A Pending DE102023125179A1 (de) 2022-09-20 2023-09-18 Ki-basierte steuerung für robotiksysteme und anwendungen

Country Status (2)

Country Link
US (1) US20240100694A1 (de)
DE (1) DE102023125179A1 (de)

Also Published As

Publication number Publication date
US20240100694A1 (en) 2024-03-28

Similar Documents

Publication Publication Date Title
US20210390653A1 (en) Learning robotic tasks using one or more neural networks
Amarjyoti Deep reinforcement learning for robotic manipulation-the state of the art
CN111417964B (zh) 异策略行动者-评价者强化学习方法和系统
Ding et al. Challenges of reinforcement learning
CN111602144A (zh) 生成指令序列以控制执行任务的代理的生成神经网络系统
US11714996B2 (en) Learning motor primitives and training a machine learning system using a linear-feedback-stabilized policy
CN110799992B (zh) 使用模拟和域适配以用于机器人控制
Noothigattu et al. Interpretable multi-objective reinforcement learning through policy orchestration
JP7087006B2 (ja) 画像埋め込みを使用するロボティックエージェントのためのポリシーコントローラの最適化
CN109348707A (zh) 针对基于深度神经网络的q学习修剪经验存储器的方法和装置
Jain et al. Learning deep visuomotor policies for dexterous hand manipulation
US20130325774A1 (en) Learning stochastic apparatus and methods
JP2019523504A (ja) ドメイン分離ニューラルネットワーク
Ma et al. Contrastive variational reinforcement learning for complex observations
Kidziński et al. Artificial intelligence for prosthetics: Challenge solutions
US20210187733A1 (en) Data-efficient hierarchical reinforcement learning
US20180314963A1 (en) Domain-independent and scalable automated planning system using deep neural networks
Yu et al. Hybrid attention-oriented experience replay for deep reinforcement learning and its application to a multi-robot cooperative hunting problem
Correia et al. A survey of demonstration learning
Puente-Castro et al. Q-Learning based system for Path Planning with Unmanned Aerial Vehicles swarms in obstacle environments
Moussaoui et al. Reinforcement learning: A review
DE102023125179A1 (de) Ki-basierte steuerung für robotiksysteme und anwendungen
Alet et al. Robotic gripper design with evolutionary strategies and graph element networks
DE102023124117A1 (de) Training maschineller lernmodelle unter verwendung von simulationen für robotersysteme und -anwendungen
Thabet Imagination-augmented deep reinforcement learning for robotic applications

Legal Events

Date Code Title Description
R012 Request for examination validly filed