AndroidEnv

Un'interfaccia per Reinforcement Learning per accedere al sistema operativo Android

In sintesi: AndroidEnv

AndroidEnv è un nuovo livello per consentire agli agenti di Reinforcement Learning di essere addestrati su sistema operativo Android, sviluppato da Deepmind, il famoso ramo AI di Alphabet. Si trova tra Android e ADB da un lato e un agente che viene addestrato dall'altro. Se non lo sai, "agente" si riferisce a un'applicazione di apprendimento automatico che puoi codificare ed eseguire. AndroidEnv è disponibile come repository open source su Github.

Un accesso realistico ad Android

AndroidEnv mira a fornire un ambiente il più realistico possibile per l'allenamento, quindi i vincoli applicati corrispondono a quelli che possiamo aspettarci anche per gli umani che interagiscono con Android:

  • un agente può leggere principalmente i pixel visualizzati da Android; per questa funzione viene utilizzata un'interfaccia che simula un touchscreen
  • lo spazio azione (insieme di opzioni disponibili per interagire con l'ambiente) è composto da diverse azioni semplici, come toccare, sollevare o rimuovere

L'obiettivo di AndroidEnv è quello di spingere i confini per Reinforcement Learning. Simile alla piattaforma "Universe" di OpenAI, che ha consentito agli agenti di interagire con le scene tramite un'interfaccia per mouse e tastiera, l'ultima creazione di Deepmind consente agli sviluppatori di addestrare i propri modelli in uno degli ambienti più impegnativi che si possano immaginare.

Quello che intendo dire è che i modelli precedenti avevano accesso ai loro obiettivi tramite un'interfaccia speciale che semplificava molto l'interazione. Inoltre, AndroidEnv non fornisce molte informazioni aggiuntive oltre ai pixel dello schermo (ne parleremo più avanti), il che rende il suo utilizzo così realistico.

Uno sguardo più da vicino all'interazione

Come accennato, AndroidEnv fornisce una serie di azioni grezze che simulano tutti i movimenti di base che un essere umano utilizzerebbe anche quando interagisce con un touchscreen. Queste azioni grezze sono integrate da una serie di gesti che consentono un controllo efficace da parte dell'agente, come lo scorrimento o lo scorrimento.

Le interazioni con AndroidEnv delineano anche una delle grandi sfide su questa piattaforma: a seconda dell'app aperta (o dell'attività in generale), possono differire drasticamente nel significato. Uno scorrimento in un'app potrebbe essere utilizzato in un contesto completamente diverso all'interno di un'altra app.

Altrettanto importante: gli agenti su AndroidEnv devono fare i conti con la natura in tempo reale di un sistema operativo in tempo reale, come Android. Ciò significa che non c'è attesa dall'applicazione fino a quando l'agente non imposta l'azione successiva: il sistema operativo continua semplicemente a funzionare. Questa è una sfida particolarmente difficile da superare per gli agenti. AndroidEnv fornisce un piccolo strumento di compatibilità per evitare input falsi positivi nel caso in cui l'agente impieghi troppo tempo per reagire (come lasciare un tocco durante l'elaborazione, che porta a una pressione prolungata interpretata da Android).

Definire i compiti che devono essere eseguiti

Un'attività definisce un problema specifico che deve essere risolto da un agente RL. Per consentire una formazione adeguata del tuo agente, le attività acquisiscono alcuni aspetti dei dati rilevanti:

  • "condizioni di fine episodio": quando l'attività è stata eseguita o quando è definitivamente fallita
  • “ricompense”: fornire feedback numerici per obiettivi raggiunti
  • altre applicazioni con cui è possibile interagire per l'attività

Per consentire un feedback significativo e pertinente, AndroidEnv ha accesso ad ADB, l'"Android Device Bridge", che è un flusso di registri dal dispositivo e consente quindi a un'attività di osservarlo e attivare segnali predefiniti quando necessario.

Un mare di possibilità

Il possibile effetto che AndroidEnv può avere sullo sviluppo complessivo dell'AI e del Reinforcement Learning in particolare non può essere sopravvalutato. Non solo consente agli agenti di imparare a interagire con Android ("apri Mappe e cerca un ristorante di sushi nelle vicinanze"), ma anche di applicare varie altre tecniche per la risoluzione dei problemi, a seconda dell'app. Ad esempio, un agente può essere addestrato a giocare (tutti i giochi su Android sono disponibili!) per sviluppare strategie vincenti a lungo termine.

AndroidEnv funge da porta aperta a chiunque per scrivere modelli ML che possono essere addestrati praticamente su ogni attività possibile. È pazzesco!

Salpando

Poiché non sono un ingegnere di Machine Learning, la mia conoscenza è solo superficiale. Questo articolo funge da introduzione ad AndroidEnv, ma per ulteriori informazioni consulta l'addendum con tutti i collegamenti pertinenti, incluso il repository Github.

Suggerimenti

Correlati

Addendum

Lingue