AndroidEnv

Une interface pour l'apprentissage par renforcement pour accéder à l'OS Android

En bref : AndroidEnv

AndroidEnv est une nouvelle couche permettant de former des agents d'apprentissage par renforcement sur Android OS, développé par Deepmind, la très célèbre branche d'IA d'Alphabet. Il se situe entre Android et ADB d'un côté et un agent qui se forme de l'autre côté. Si vous ne le savez pas, « agent » fait référence à une application d'apprentissage automatique que vous pouvez coder et exécuter. AndroidEnv est disponible en tant que référentiel open source sur Github.

Un accès réaliste à Android

AndroidEnv vise à fournir un environnement aussi réaliste que possible pour la formation, donc les contraintes appliquées correspondent à celles auxquelles nous pouvons nous attendre pour les humains qui interagissent également avec Android :

  • un agent peut principalement lire les pixels rendus par Android ; pour cette fonctionnalité, une interface qui simule un écran tactile est utilisée pour
  • l'espace d'action (ensemble d'options disponibles pour interagir avec l'environnement) est composé de plusieurs actions simples, telles que toucher, soulever ou retirer

L'objectif d'AndroidEnv est de repousser les limites de l'apprentissage par renforcement. Semblable à la plate-forme "Universe" d'OpenAI, qui permettait aux agents d'interagir avec des scènes via une interface pour souris et clavier, la dernière création de Deepmind permet aux développeurs de former leurs modèles dans l'un des environnements les plus difficiles imaginables.

Ce que je veux dire par là, c'est que les modèles antérieurs avaient accès à leurs cibles via une interface spéciale qui simplifiait beaucoup l'interaction. De plus, AndroidEnv ne fournit pas beaucoup d'informations supplémentaires en dehors des pixels de l'écran (nous en parlerons plus tard), ce qui rend son utilisation si réaliste.

Regardons de plus près les interactions

Comme mentionné, AndroidEnv fournit un ensemble d'actions brutes qui simulent toutes des mouvements de base qu'un humain utiliserait également lors de l'interaction avec un écran tactile. Ces actions brutes sont complétées par un ensemble de gestes qui permettent un contrôle efficace par l'agent, comme le balayage ou le défilement.

Les interactions avec AndroidEnv décrivent également l'un des grands défis de cette plate-forme : selon l'application ouverte (ou la tâche en général), leur signification peut différer considérablement. Un balayage dans une application peut être utilisé dans un contexte complètement différent dans une autre application.

Également important : les agents sur AndroidEnv doivent gérer la nature en temps réel d'un système d'exploitation en temps réel, tel qu'Android. Cela signifie qu'il n'y a pas d'attente de l'application jusqu'à ce que l'agent définisse l'action suivante - le système d'exploitation continue simplement à fonctionner. Il s'agit d'un défi particulièrement difficile à surmonter pour les agents. AndroidEnv fournit un petit outil de compatibilité pour éviter les entrées faussement positives au cas où l'agent prendrait trop de temps à réagir (comme laisser un appui pendant le traitement, ce qui conduit à un appui long interprété par Android).

Définir les tâches à accomplir

Une tâche définit un problème spécifique qui doit être résolu par un agent RL. Pour permettre une bonne formation de votre agent, les tâches capturent certains aspects de données qui sont pertinents :

  • « conditions de fin d'épisode » : quand la tâche est-elle terminée ou quand a-t-elle définitivement échoué
  • « récompenses » : fournir une rétroaction numérique pour les objectifs atteints
  • d'autres applications avec lesquelles il est possible d'interagir pour la tâche

Pour permettre un retour d'informations significatif et pertinent, AndroidEnv a accès à ADB, le « Android Device Bridge », qui est un flux de journaux provenant de l'appareil et permet donc à une tâche de l'observer et de déclencher des signaux prédéfinis si nécessaire.

Une mer de possibilités

L'effet possible d'AndroidEnv sur le développement global de l'IA et de l'apprentissage par renforcement en particulier ne peut pas être surestimé. Il permet non seulement aux agents d'apprendre à interagir avec Android (« ouvrez Maps et recherchez un restaurant de sushis à proximité »), mais également d'appliquer diverses autres techniques de résolution de problèmes, en fonction de l'application. Par exemple, un agent peut être formé à jouer à des jeux (tous les jeux sur Android sont disponibles !) pour développer des stratégies gagnantes à long terme.

AndroidEnv agit comme la porte ouverte à quiconque pour écrire des modèles de ML pouvant être entraînés sur pratiquement toutes les tâches possibles. C'est époustouflant !

Mettre les voiles

Comme je ne suis pas un ingénieur en Machine Learning, mes connaissances ne sont que superficielles. Cet article sert d'introduction à AndroidEnv, mais pour plus d'informations, veuillez consulter l'addendum avec tous les liens pertinents, y compris le référentiel Github.

Suggestions

Connexe

Addenda

Langues