AndroidEnv

Eine Schnittstelle für Reinforcement Learning für den Zugriff auf das Android-Betriebssystem

Auf einen Blick: AndroidEnv

AndroidEnv ist eine neue Schicht, die das Training von Reinforcement Learning-Agenten auf dem Android-Betriebssystem ermöglicht, entwickelt von Deepmind, dem ziemlich berühmten KI-Zweig von Alphabet. Es sitzt zwischen Android und ADB auf der einen Seite und einem Agenten, der auf der anderen Seite geschult wird. Wenn Sie es nicht wissen, bezieht sich „Agent“ auf eine Machine-Learning-Anwendung, die Sie programmieren und ausführen können. AndroidEnv ist als Open-Source-Repository auf Github verfügbar.

Ein realistischer Zugang zu Android

AndroidEnv zielt darauf ab, eine möglichst realistische Umgebung für das Training bereitzustellen, daher entsprechen die angewendeten Einschränkungen denen, die wir auch für Menschen erwarten können, die mit Android interagieren:

  • ein Agent kann in erster Linie die Pixel lesen, die Android rendert; für diese Funktion wird eine Schnittstelle verwendet, die einen Touchscreen simuliert
  • Der Aktionsraum (Satz verfügbarer Optionen zur Interaktion mit der Umgebung) besteht aus mehreren einfachen Aktionen wie Berühren, Heben oder Entfernen

Das Ziel von AndroidEnv ist es, die Grenzen des Reinforcement Learning zu erweitern. Ähnlich wie bei OpenAIs „Universe“-Plattform, die es Agenten ermöglichte, über eine Schnittstelle für Maus und Tastatur mit Szenen zu interagieren, ermöglicht es die neueste Kreation von Deepmind Entwicklern, ihre Modelle in einer der schwierigsten Umgebungen zu trainieren, die man sich vorstellen kann.

Damit meine ich, dass frühere Modelle über eine spezielle Schnittstelle auf ihre Ziele zugreifen konnten, was die Interaktion stark vereinfachte. Außerdem liefert AndroidEnv außer den Pixeln des Bildschirms nicht viele zusätzliche Informationen (dazu später mehr), was die Verwendung so realistisch macht.

Ein genauerer Blick auf die Interaktion

Wie bereits erwähnt, bietet AndroidEnv eine Reihe von Rohaktionen, die alle grundlegende Bewegungen simulieren, die ein Mensch auch bei der Interaktion mit einem Touchscreen verwenden würde. Diese groben Aktionen werden durch eine Reihe von Gesten ergänzt, die eine effektive Steuerung durch den Agenten ermöglichen, wie z. B. Wischen oder Scrollen.

Auch die Interaktionen mit AndroidEnv skizzieren eine der großen Herausforderungen dieser Plattform: Je nach geöffneter App (bzw. Aufgabe im Allgemeinen) können sie sich in ihrer Bedeutung drastisch unterscheiden. Ein Wischen in einer App kann in einem völlig anderen Kontext in einer anderen App verwendet werden.

Auch wichtig: Agenten auf AndroidEnv müssen sich mit der Echtzeit-Natur eines Echtzeit-Betriebssystems wie Android auseinandersetzen. Das bedeutet, dass von der Anwendung nicht gewartet werden muss, bis der Agent die nächste Aktion einstellt – das Betriebssystem läuft einfach weiter. Dies ist eine besonders schwierige Herausforderung für Agenten. AndroidEnv bietet ein kleines Kompatibilitätstool, um falsch positive Eingaben zu vermeiden, falls der Agent zu lange braucht, um zu reagieren (z. B. das Verlassen eines Fingertipps während der Verarbeitung, was zu einem langen Drücken führt, das von Android interpretiert wird).

Aufgaben definieren, die erledigt werden müssen

Eine Aufgabe definiert ein bestimmtes Problem, das von einem RL-Agenten gelöst werden muss. Um eine angemessene Schulung Ihres Agenten zu ermöglichen, erfassen Aufgaben bestimmte relevante Datenaspekte:

  • „Episode-Abbruchbedingungen“: wann ist die Aufgabe erledigt oder wann ist sie definitiv fehlgeschlagen
  • „Belohnungen“: numerisches Feedback für erreichte Ziele geben
  • andere Anwendungen, mit denen für die Aufgabe interagiert werden kann

Um aussagekräftiges und relevantes Feedback zu ermöglichen, hat AndroidEnv Zugriff auf ADB, die „Android Device Bridge“, die ein Stream von Protokollen vom Gerät ist und es daher einer Aufgabe ermöglicht, diese zu beobachten und bei Bedarf vordefinierte Signale auszulösen.

Ein Meer von Möglichkeiten

Die möglichen Auswirkungen von AndroidEnv auf die Gesamtentwicklung von KI und insbesondere von Reinforcement Learning können nicht hoch genug eingeschätzt werden. So können Agenten nicht nur lernen, mit Android zu interagieren („Maps öffnen und nach einem nahegelegenen Sushi-Restaurant suchen“), sondern je nach App auch verschiedene andere Techniken zur Problemlösung anwenden. Zum Beispiel kann ein Agent darin geschult werden, Spiele zu spielen (alle Spiele auf Android sind verfügbar!), um langfristige Gewinnstrategien zu entwickeln.

AndroidEnv fungiert als Tor, das jedem geöffnet wurde, um ML-Modelle zu schreiben, die für praktisch jede mögliche Aufgabe trainiert werden können. Es ist umwerfend!

Segel setzen

Da ich kein Machine Learning-Ingenieur bin, ist mein Wissen nur oberflächlich. Dieser Artikel dient als Einführung in AndroidEnv, aber für weitere Informationen lesen Sie bitte das Addendum mit allen relevanten Links, einschließlich des Github-Repositorys.

Vorschläge

Verwandt

Anhang

Sprachen