AndroidEnv

Una interfaz para que el aprendizaje por refuerzo acceda al sistema operativo Android

De un vistazo: AndroidEnv

AndroidEnv es una nueva capa para capacitar a los agentes de aprendizaje por refuerzo en el sistema operativo Android, desarrollado por Deepmind, la famosa rama de inteligencia artificial de Alphabet. Se encuentra entre Android y ADB por un lado y un agente que se está capacitando por el otro. Si no lo sabe, "agente" se refiere a una aplicación de aprendizaje automático que puede codificar y ejecutar. AndroidEnv está disponible como un repositorio de código abierto en Github.

Un acceso realista a Android

AndroidEnv tiene como objetivo proporcionar un entorno lo más realista posible para el entrenamiento, por lo tanto, las restricciones aplicadas coinciden con las que podemos esperar para los humanos que también interactúan con Android:

  • un agente puede leer principalmente los píxeles que renderiza Android; para esta función, se utiliza una interfaz que simula una pantalla táctil para
  • el espacio de acción (conjunto de opciones disponibles para interactuar con el entorno) se compone de varias acciones simples, como tocar, levantar o quitar

El objetivo de AndroidEnv es ampliar los límites del aprendizaje por refuerzo. Similar a la plataforma "Universe" de OpenAI, que permitió a los agentes interactuar con escenas a través de una interfaz para mouse y teclado, la última creación de Deepmind permite a los desarrolladores entrenar sus modelos en uno de los entornos más desafiantes imaginables.

Lo que quiero decir con eso es que los modelos anteriores tenían acceso a sus objetivos a través de una interfaz especial que simplificaba mucho la interacción. Además, AndroidEnv no proporciona mucha información adicional aparte de los píxeles de la pantalla (más sobre esto más adelante), lo que hace que su uso sea tan realista.

Una mirada más cercana a la interacción

Como se mencionó, AndroidEnv proporciona un conjunto de acciones sin procesar que simulan movimientos básicos que un humano también usaría al interactuar con una pantalla táctil. Estas acciones sin procesar se complementan con un conjunto de gestos que permiten un control efectivo por parte del agente, como deslizar o desplazarse.

Las interacciones con AndroidEnv también describen uno de los grandes desafíos de esta plataforma: dependiendo de la aplicación abierta (o tarea en general), pueden diferir drásticamente en su significado. Un deslizamiento en una aplicación puede usarse en un contexto completamente diferente dentro de otra aplicación.

También es importante: los agentes en AndroidEnv tienen que lidiar con la naturaleza en tiempo real de un sistema operativo en tiempo real, como Android. Esto significa que la aplicación no tiene que esperar hasta que el agente establezca la siguiente acción: el sistema operativo simplemente continúa. Este es un desafío particularmente difícil de superar para los agentes. AndroidEnv proporciona una pequeña herramienta de compatibilidad para evitar entradas falsas positivas en caso de que el agente tarde demasiado en reaccionar (como dejar un toque mientras procesa, lo que lleva a una pulsación larga interpretada por Android).

Definición de tareas que deben realizarse

Una tarea define un problema específico que debe ser resuelto por un agente de RL. Para permitir una adecuada formación de su agente, las tareas capturan ciertos aspectos de los datos que son relevantes:

  • "Condiciones de terminación del episodio": cuándo se realiza la tarea o cuándo ha fallado definitivamente
  • "Recompensas": proporcionar retroalimentación numérica para los objetivos cumplidos
  • otras aplicaciones con las que se puede interactuar para la tarea

Para permitir comentarios significativos y relevantes, AndroidEnv tiene acceso a ADB, el "Android Device Bridge", que es un flujo de registros del dispositivo y, por lo tanto, permite que una tarea lo observe y active señales predefinidas cuando sea necesario.

Un mar de posibilidades

No se puede exagerar el posible efecto que AndroidEnv puede tener en el desarrollo general de la inteligencia artificial y el aprendizaje por refuerzo en particular. No solo permite a los agentes aprender a interactuar con Android ("abrir Maps y buscar un restaurante de sushi cercano"), sino también aplicar otras técnicas para la resolución de problemas, según la aplicación. Por ejemplo, se puede capacitar a un agente en juegos (¡todos los juegos en Android están disponibles!) Para desarrollar estrategias ganadoras a largo plazo.

AndroidEnv actúa como la puerta que se ha abierto para que cualquiera pueda escribir modelos de aprendizaje automático que puedan capacitarse en prácticamente todas las tareas posibles. ¡Es increíble!

Ajustando la vela

Como no soy un ingeniero de aprendizaje automático, mi conocimiento es solo superficial. Este artículo actúa como una introducción a AndroidEnv, pero para obtener más información, consulte el apéndice con todos los enlaces relevantes, incluido el repositorio de Github.

Sugerencias

Relacionados

Adenda

Idiomas