OpenAI demonstriert die Übertragung komplexer Manipulationen von Simulationen in die reale Welt

Nach dem Hinzufügen von Zufallsfaktoren zu einer relativ einfachen Simulation lernte der Roboter von OpenAI, wie man komplexe Handheld-Operationen ausführt




Handheld-Operationen - Dies ist eine der Aktionen, die ganz oben auf der Liste der "Fähigkeiten stehen, die keine Anstrengungen von Menschen erfordern und für Roboter äußerst schwierig sind". Ohne zu zögern können wir die Finger der Hand adaptiv steuern, sie mit Daumen und Handfläche gegenüberstellen, Reibung und Schwerkraft berücksichtigen, Objekte mit einer Hand manipulieren, die andere nicht verwenden - wahrscheinlich haben Sie diesen Trick heute oft gemacht, zumindest mit Ihrem Telefon.

Menschen brauchen jahrelanges Training, um zu lernen, wie man zuverlässig mit den Fingern arbeitet, aber Roboter haben nicht so viel Zeit zum Lernen. Solche komplexen Aufgaben werden immer noch durch praktisches Training und das Sammeln von Erfahrungen gelöst. Die Aufgabe besteht darin, einen Weg zu finden, den Roboter schneller und effizienter zu trainieren, als dem Roboterarm nur etwas zu geben, das immer wieder manipuliert werden kann, bis er dies erkennt es funktioniert und was nicht; es könnte hundert Jahre dauern.

Anstatt hundert Jahre zu warten, trainierten OpenAI- Forscher mithilfe eines Verstärkungstrainings ein Faltungs-Neutronennetzwerk , um die fünffingrige Hand des Schattenroboters zu steuern und Objekte zu manipulieren - und das in nur 50 Stunden. Dies gelang ihnen durch eine Simulation, eine Technik, die als „zum Erfolg verurteilt“ bekannt ist. Sie führten jedoch sorgfältig zufällige Faktoren ein, um sie der Variabilität der realen Welt näher zu bringen. Die echte Schattenhand war in der Lage, Handmanipulationen mit realen Objekten ohne erneutes Training erfolgreich durchzuführen.

Idealerweise sollten alle Roboter in Simulationen geschult werden, da Simulationen skaliert werden können, ohne dass viele echte Roboter erstellt werden. Möchten Sie Dofigillion Roboter Dofigillion Stunden in einem Dofigillion Bruchteil einer Sekunde trainieren? Dies ist möglich, wenn Sie über ausreichend Rechenleistung verfügen. Aber versuchen Sie es in der realen Welt anzukurbeln - und das Problem, dass niemand genau weiß, wie viel es sein wird, "Dofigillion", wird das geringste Ihrer Probleme sein.

Das Problem beim Training von Robotern in Simulationen besteht darin, dass die reale Welt nicht genau simuliert werden kann - und es noch schwieriger ist, kleinere Probleme wie Reibung, Duktilität und das Zusammenspiel mehrerer Objekte genau zu simulieren. Daher wird allgemein angenommen, dass Simulation wunderbar ist, aber es gibt eine große und schreckliche Lücke zwischen dem Erfolg der Simulation und dem Erfolg in der realen Welt, was den Wert der Simulation in gewisser Weise verringert. Die Tatsache, dass genau die Dinge, die gleichzeitig schön zu simulieren wären (z. B. Handmanipulationen), sich für genaue Simulationen als am schwierigsten herausstellen, verbessert die Situation nicht, da sie physikalisch anspruchsvoll sind.

Ein üblicher Ansatz für dieses Problem besteht darin, zu versuchen, die Simulation so genau wie möglich zu gestalten, und zu hoffen, dass sie der realen Welt nahe genug kommt, damit Sie ein nützliches Verhalten daraus extrahieren können. Stattdessen stellt OpenAI nicht die Genauigkeit an erster Stelle, sondern die Variabilität und liefert seine mäßig realistischen Simulationen mit vielen kleinen Verbesserungen, sodass das resultierende Verhalten zuverlässig genug ist, um außerhalb der Simulation zu arbeiten.

Der Randomisierungsprozess ist der Schlüssel dafür, dass das System (Dactyl genannt) effektiv von der Simulation in die reale Welt übergehen kann. OpenAI ist sich bewusst, dass die von ihnen verwendeten Simulationen nicht komplex genug sind, um einen Berg der wichtigsten Dinge zu simulieren, von Reibung bis Verschleiß an den Fingerspitzen eines echten Roboterarms. Damit der Roboter verallgemeinern kann, was er lernt, führt OpenAI Zufallsvariablen in alle möglichen Aspekte der Simulation ein, um zu versuchen, die gesamte Variabilität der Welt abzudecken, die nicht gut modelliert werden kann. Dies umfasst die Masse, alle Messungen des Objekts, die Reibung seiner Oberfläche und der Finger des Roboters, die Dämpfung der Finger des Roboters, die Kraft der Motoren, die Begrenzung der Gelenke, das Spiel und das Geräusch des Motors usw. Auf das Objekt werden kleine zufällige Einflüsse angewendet, damit die Simulation mit einer Dynamik fertig wird, die nicht modelliert werden kann. Und dies ist nur der Manipulationsprozess selbst - in der Arbeit von RGB-Kameras, die die Position eines Objekts bewerten, gibt es auch viele Zufallsvariablen, die jedoch etwas einfacher zu visualisieren sind.


Zeilen zeigen Bilder von derselben Kamera. Spalten entsprechen Bildern mit zufälligen Änderungen - alle werden gleichzeitig von neuronalen Netzen gespeist.

OpenAI nennt dies "Umgebungs-Randomisierung", und im Fall von Handheld-Manipulationen wollten sie "herausfinden, ob eine Erhöhung des Umfangs der Umgebungs-Randomisierung ein Problem lösen kann, das den heutigen Robotertechniken nicht zur Verfügung steht". Und was geschah als Ergebnis von zwei unabhängig trainierten Systemen (ein visuelles, das zweite für Manipulationen), die die Position des Würfels visuell erkennen und in verschiedene Positionen drehen.



Alle diese Würfelrotationen (und das System kann mindestens 50 erfolgreiche Manipulationen hintereinander ausführen) wurden dank 6144 Prozessoren und 8 GPUs ermöglicht, die in nur 50 Stunden 100 Jahre simulierte Robotererfahrung gesammelt haben. Das einzige Feedback, das dem System zur Verfügung steht (sowohl in der Simulation als auch in der Realität), ist die Position des Würfels und der Finger, während das System gestartet wurde, ohne genau zu verstehen, wie der Würfel gehalten oder gedreht werden soll. Sie musste sich selbständig darum kümmern - einschließlich der Drehung ihrer Finger, der gleichzeitigen Koordination mehrerer Finger, der Anwendung der Schwerkraft und der Koordination der Anwendung von Kräften. Der Roboter erfand die gleichen Techniken, die Menschen verwenden, jedoch mit kleinen (und interessanten) Modifikationen:

Um ein Objekt klar zu erfassen, verwendet der Roboter normalerweise den kleinen Finger anstelle des Zeige- oder Mittelfingers. Dies ist wahrscheinlich auf das Vorhandensein der Shadow Dexterous Hand mit einem zusätzlichen Freiheitsgrad im Vergleich zu Zeige-, Mittel- und Ringfingern zurückzuführen, wodurch sie beweglicher wird. Beim Menschen sind Zeige- und Mittelfinger normalerweise beweglicher. Dies bedeutet, dass unser System in der Lage ist, die Greiftechnik, die den Menschen zur Verfügung steht, unabhängig zu erfinden. Es ist jedoch besser, sie an ihre eigenen Grenzen und Möglichkeiten anzupassen.


Die verschiedenen Arten von Griffen, die das System gelernt hat. Von links nach rechts und von oben nach unten: Griff mit den Fingerspitzen, Handflächengriff, Drei-Finger-Griff, Vier-, Fünf-Finger-Griff und kraftvoller Griff.

Wir haben eine weitere interessante Parallele in der Arbeit der Finger von Menschen und unserem Roboter beobachtet. Gemäß dieser Strategie hält die Hand ein Objekt mit zwei Fingern und dreht sich um diese Achse. Es stellte sich heraus, dass bei kleinen Kindern eine solche Motilität noch keine Zeit hat, sich zu entwickeln. Daher drehen sie Objekte normalerweise mit der proximalen oder mittleren Phalanx der Finger . Und erst später im Leben wechseln sie zu distalen Phalangen, wie es die meisten Erwachsenen tun. Interessanterweise ist unser Roboter normalerweise auf distale Phalangen angewiesen, wenn dies zum Drehen eines Objekts erforderlich ist.

Der Vorteil der Technologie besteht darin, dass Roboter, wie sich herausstellte, in Simulationen immer noch in komplexen physischen Aktionen trainiert werden können und dann die gesammelten Fähigkeiten sofort in der Realität einsetzen können - und dies ist wirklich eine großartige Leistung, da das Training in Simulationen viel schneller ist als in der Realität .

Wir haben Jonas Schneider, ein Mitglied des technischen OpenAI-Teams, kontaktiert, um mehr über dieses Projekt zu erfahren.

Editorial : Warum ist die Handmanipulation in der Robotik so schwierig?

Jonas Schneider : Manipulationen finden auf engstem Raum statt und dem Roboter stehen zahlreiche Freiheitsgrade zur Verfügung. Erfolgreiche Manipulationsstrategien erfordern eine ordnungsgemäße Koordination in all diesen Freiheitsgraden, und dies verringert die zulässige Fehlergröße im Vergleich zu herkömmlichen Interaktionen mit Objekten, wie beispielsweise der einfachen Erfassung. Während Handmanipulationen wird viel Kontakt mit dem Objekt aufgezeichnet. Das Modellieren dieser Kontakte ist eine schwierige und fehleranfällige Aufgabe. Fehler während der Ausführung müssen während der Arbeit der Hand kontrolliert werden, was Probleme im traditionellen Ansatz verursacht, der auf der Planung von Bewegungen im Voraus basiert. Beispielsweise kann ein Problem auftreten, wenn Sie eine lineare Rückkopplung haben, die die nichtlineare Dynamik des Geschehens nicht aufzeichnet.

Zufallsvariablen sind offenbar der Schlüssel, um sicherzustellen, dass die in der Simulation erworbenen Fähigkeiten in der Realität zuverlässig angewendet werden können. Wie und wie genau entscheiden Sie, welche Parameter zufällig ausgewählt werden sollen?

Während der Kalibrierung schätzen wir grob, welche Parameter variieren können, und entscheiden dann, welche davon für die Reproduktion in der Simulation am wichtigsten sind. Dann setzen wir die Werte dieser Parameter gleich den Kalibrierungswerten und fügen zufällige Variationen im Bereich des Durchschnittswerts hinzu. Die Amplitude der Variationen hängt von unserem Vertrauen ab - zum Beispiel von der Größe des Objekts, das wir nicht sehr stark verändert haben, weil wir es genau messen können.

Einige zufällige Variationen basierten auf empirischen Beobachtungen. Zum Beispiel haben wir beobachtet, wie unser Roboter manchmal ein Objekt fallen ließ, die Bürste senkte und keine Zeit hatte, es anzuheben, bis das Objekt von ihm abrollte. Wir haben festgestellt, dass aufgrund von Problemen mit dem Low-Level-Controller die Ausführung unserer Aktionen manchmal um mehrere hundert Millisekunden verzögert werden kann. Und wir könnten natürlich unsere Energie einsetzen, um den Controller zuverlässiger zu machen, aber stattdessen haben wir nur die Reaktionszeit jedes Controllers randomisiert. Es scheint uns, dass sich dies auf einer höheren Ebene als interessanter Ansatz für die Entwicklung von Robotern der Zukunft herausstellen könnte. Für einige Aufgaben kann die Entwicklung sehr genauer Geräte unannehmbar teuer sein, und wir haben gezeigt, wie diese Gerätefehler mithilfe fortschrittlicherer Algorithmen behoben werden können.

Wie würden sich Ihre Ergebnisse verbessern, wenn Sie nicht 100 Jahre simulierte Zeit, sondern beispielsweise 1000 Jahre warten würden?

Für ein Beispiel einer bestimmten Aufgabe ist dies schwer zu bewerten, da wir nie mehr als 50 Umdrehungen getestet haben. Es ist noch nicht genau klar, wie die asymptotische Kurve der Merkmale aussieht, aber wir betrachten unser Projekt als abgeschlossen, da selbst eine erfolgreiche Wendung weit über die Fähigkeiten der besten Lehrmethoden hinausgeht, die es heute gibt. Tatsächlich haben wir die Zahl von 50 Umdrehungen gewählt, weil wir entschieden haben, dass 25 Umdrehungen definitiv zeigen würden, dass das Problem gelöst wurde, und dann weitere 25 für 100% Marge hinzugefügt. Wenn es Ihre Aufgabe ist, für sehr lange Abfolgen von Aktionen und hohe Zuverlässigkeit zu optimieren, hilft wahrscheinlich eine Erhöhung des Trainings. Aber irgendwann, wie wir denken, wird sich der Roboter mehr an die Simulation anpassen und in der realen Welt schlechter arbeiten, und dann müssen Sie noch mehr Randomisierungen hinzufügen, um die Simulation zu komplizieren, was wiederum die Zuverlässigkeit des endgültigen Systems erhöht.

Wie gut können sich Ihre Ergebnisse verallgemeinern lassen? Wie viel Aufwand müssten Sie beispielsweise für wiederholte Trainingseinheiten aufwenden, um einen kleineren oder einen weichen oder rutschigen Würfel zu drehen? Was ist mit einer anderen Kameraanordnung?

Übrigens haben wir aus Gründen des Interesses versucht , weiche und kleinere Würfel zu manipulieren, und es stellte sich heraus, dass die Arbeitsqualität im Vergleich zur Rotation eines festen Würfels nicht wesentlich abnimmt. In der Simulation haben wir auch mit Würfeln unterschiedlicher Größe experimentiert, und dies hat auch gut funktioniert (obwohl wir dies nicht mit einem echten Roboter versucht haben). In der Simulation haben wir auch zufällige Variationen in der Größe des Würfels verwendet. Wir haben nicht versucht, genau das zu tun, aber ich denke, wenn wir einfach die Streuung zufälliger Variationen in der Größe des Würfels in der Simulation erhöhen, kann die Hand die Würfel unterschiedlicher Größe manipulieren.

Bei den Kameras wurde das visuelle Modell separat trainiert, und bisher nehmen wir nur kleine zufällige Abweichungen in der Position der Kameras vor. Mit jeder Änderung der Kameraposition beginnen wir erneut mit dem Training. Einer unserer Praktikanten, Xiao-Yu Fish Tan, arbeitet nur daran, das visuelle Modell völlig unabhängig von der Position der Kameras zu machen. Dabei wird dieselbe grundlegende Technik angewendet, bei der die Position und Ausrichtung der Kamera über große Grenzen hinweg zufällig variiert wird.

Wie unterscheidet sich das Training in Simulation vom Brute-Force- Ansatz, bei dem eine Reihe echter Roboter zum Einsatz kommen?

Interessanterweise begann unser Projekt mit der Tatsache, dass wir die Idee in Frage stellten, Simulationen zur Förderung der Robotik einzusetzen. Seit vielen Jahren beobachten wir , wie Robotik in Simulationen mit verstärktem Lernen beeindruckende Ergebnisse erzielt. In Gesprächen mit Forschern der klassischen Robotik sind wir jedoch ständig mit einem Mangel an Vertrauen konfrontiert, dass solche Methoden in der realen Welt funktionieren werden. Das Hauptproblem besteht darin, dass die Simulatoren aus physikalischer Sicht nicht vollständig genau sind (selbst wenn sie für das menschliche Auge gut aussehen). Fügt Probleme hinzu und die Tatsache, dass genauere Simulationen mehr Rechenleistung erfordern. Aus diesem Grund haben wir uns entschlossen, einen neuen Standard zu etablieren, der die Arbeit mit einer sehr komplexen Plattform in Bezug auf die Ausrüstung erfordert, auf der wir uns allen Einschränkungen von Simulationen stellen müssen.

Was den Ansatz der „Karpalfarm“ betrifft, so besteht die Hauptbeschränkung beim Training physischer Roboter in der geringen Skalierbarkeit der erworbenen Fähigkeiten für komplexere Aufgaben. Dies kann erreicht werden, indem alles so angeordnet wird, dass Sie viele Objekte in einer sich selbst stabilisierenden Umgebung haben, die keine unterschiedlichen Zustände aufweist (z. B. einen Korb mit Bällen). Es wird jedoch sehr schwierig sein, auf die gleiche Weise etwas zusammenzubauen, wenn sich Ihr System nach jedem Lauf in einem neuen Zustand befindet. Anstatt das gesamte System einmal einzurichten, müssen Sie es N-mal einrichten und betriebsbereit halten, nachdem beispielsweise ein Roboter herumgefegt und etwas kaputt gemacht hat. All dies ist in Simulationen mit elastischer Rechenleistung viel einfacher und einfacher.

Infolgedessen unterstützt unsere Arbeit die Idee des Trainings in Simulationen, da wir gezeigt haben, wie das Übertragungsproblem auch bei sehr komplexen Robotern gelöst werden kann. Dies negiert jedoch nicht die Idee, einen echten Roboter zu trainieren. Es wäre sehr schwierig, die Einschränkungen von Simulationen beim Arbeiten mit verformbaren Objekten und Flüssigkeiten zu umgehen.

Wo ist Ihr System am dünnsten?

Im Moment sind dies zufällige Variationen, die manuell entwickelt und für eine bestimmte Aufgabe geschärft wurden. In Zukunft kann es möglich sein, diese Variationen durch Hinzufügen einer weiteren Optimierungsebene zu erlernen. Dies ist der Prozess, den wir heute manuell durchführen („Probieren Sie einige Randomisierungen aus und prüfen Sie, ob sie helfen“). Sie können auch noch weiter gehen und das Spiel zwischen dem Lernagenten und seinem Gegner verwenden, um seinen Fortschritt zu behindern (aber nicht viel). Diese Dynamik kann zur Entstehung sehr zuverlässiger Regeln für die Arbeit von Robotern führen, denn je besser der Agent wird, desto schlauer muss der Gegner sein, um ihn zu stören, was die Arbeit des Agenten weiter verbessert und so weiter. Diese Idee wurde bereits von anderen Forschern untersucht.

Sie sagen, dass Ihr Hauptziel darin besteht, Roboter für die reale Welt zu entwickeln. Was muss noch getan werden, bevor dies möglich wird?

Wir versuchen, die Fähigkeiten von Robotern zu erweitern, um in einer Umgebung ohne strenge Einschränkungen zu arbeiten. In solchen Umgebungen ist es unmöglich, alles im Voraus vorauszusehen und für jedes Objekt ein Modell zu erstellen. Es kann auch unpraktisch sein, Gegenstände außerhalb des Labors zu markieren. Es stellt sich heraus, dass unsere Roboter lernen müssen, in vielen Situationen zu handeln und in einer Situation, die sie zuvor noch nicht erlebt haben, eine vernünftige Wahl zu treffen.

Woran wirst du als nächstes arbeiten?

Wir werden weiterhin Roboter mit immer ausgefeilterem Verhalten entwickeln. Es ist zu früh zu sagen, welches. Langfristig hoffen wir, Robotern die allgemeine Fähigkeit zu geben, Objekte zu manipulieren, damit sie lernen können, wie ein Baby mit der Umgebung umzugehen - mit Objekten in der Nähe zu spielen, nicht unbedingt unter der Aufsicht von Erwachsenen. Wir glauben, dass Intelligenz an die Interaktion mit der realen Welt gebunden ist. Um unsere Aufgabe zu erfüllen, sichere künstliche Intelligenz für allgemeine Zwecke zu schaffen, müssen wir in der Lage sein, aus sensorischen Daten aus der realen Welt und basierend auf Simulationen zu lernen.

Source: https://habr.com/ru/post/de420209/


All Articles