AndroidEnv - Android学习环境
AndroidEnv是一个Python库,将Android设备作为强化学习(RL)环境暴露出来。该库为在Android操作系统之上定义自定义任务提供了灵活的平台,包括任何Android应用程序。代理通过通用操作界面 - 触摸屏 - 与设备交互,向系统发送本地化的触摸和抬起事件。该库处理这些事件,并返回由特定任务定义提供的像素观察和奖励。例如,根据研究目的和用户如何配置任务,可能会为成功下滑页面、发送电子邮件或在游戏中获得一些分数等事件给予奖励。
索引
环境特性
AndroidEnv具有许多方面,使其成为一个具有挑战性但适合强化学习研究的环境:
-
允许代理与全球数十亿用户每天使用的系统进行交互,AndroidEnv为RL代理提供了一个平台,可以在真实世界环境中导航、学习任务并产生直接影响。该环境包装了一个模拟的Android设备,它独立于环境运行,完全未经改变,其工作方式与人类使用的设备完全相同,暴露完全相同的功能和服务。
-
该平台提供了几乎无限的可能任务范围,所有任务都共享一个通用的操作界面。该库促进了为任何现有或自定义构建的Android应用程序设计强化学习任务。例如,它暴露了广泛的Android游戏世界,包括纸牌游戏、益智游戏、时间反应游戏,所有这些都需要多样化的操作组合和交互类型。
-
该环境在Android设备的实时模拟之上运行。换句话说,环境动态不会等待代理进行深思熟虑,模拟速度也无法加快。
-
观察是屏幕上显示像素对应的RGB值集合。确切的屏幕分辨率取决于模拟设备,但通常在RL环境中会被认为相对较大。然而,用户可以选择对每个观察进行下采样。
-
学习环境具有一个有趣的、复杂的操作空间,这是Android触摸屏界面独有的。
- 原始的混合操作空间由表示操作位置的连续元组和确定代理是否想要触摸屏幕或抬起虚拟手指的离散信号组成。
- 原始操作具有高度可组合性:Android UI和大多数应用程序的设计使得它们可以通过常见的触摸屏手势(如点击、滚动、滑动、捏合、拖放等)直观地导航。在AndroidEnv中仍然如此:为了触发环境中的有意义变化,代理通常必须执行精心定时和定位的原始操作序列。例如,为了导航到照片库中的下一张图片,代理必须执行滑动,多次触摸屏幕,逐渐将操作位置向右移动。因此,在大多数情况下,原始操作不会触发环境状态的变化,除非正确链接在一起形成人类手势。
- 操作界面与观察空间密切相关,因为有意义的触摸和抬起事件通常与观察中显著对象的位置或移动共同定位或强相关。例如,屏幕上按钮的位置与触发按钮按下的操作位置一致。
- 该库提供了灵活改变操作界面的工具,如果特定研究需要,例如离散化或硬编码手势技能。尽管如此,我们认为真正的挑战仍然在于设计能够通过复杂统一的操作界面处理大量多样化任务的代理。
入门
安装
获取AndroidEnv最简单的方法是使用pip:
$ python3 -m pip install android-env
请注意,此软件包不包含/examples
。
或者,您可以从git的main
分支克隆存储库:
$ git clone https://github.com/deepmind/android_env/
$ cd android_env
$ python3 setup.py install
更新:该环境现在可以在Windows上运行,但请记住,这个选项没有得到很好的维护或广泛支持,因为基于Unix的系统是该项目的主要目标平台。
创建模拟器
在运行环境之前,您需要访问模拟的Android设备。有关创建虚拟Android设备的说明,请参阅模拟器指南。
定义任务
然后,您需要定义代理的任务是什么。此时,代理将能够与模拟设备通信,但尚未有目标,也无法访问奖励或RL情节结束等信号。了解如何定义您自己的RL任务,或使用现有的任务定义进行训练。
加载和运行
要了解如何在AndroidEnv上运行和训练代理,请参阅这些详细说明。在这里,您还可以找到演示如何在AndroidEnv上运行随机代理、acme代理或人类代理的示例脚本。
关于
该库由DeepMind开发和维护。
您可以在Arxiv上找到技术报告,以及DeepMind网站上的介绍性博客文章。
如果您在研究中使用AndroidEnv,可以使用以下BibTeX引用该论文:
@article{ToyamaEtAl2021AndroidEnv,
title = {{AndroidEnv}: A Reinforcement Learning Platform for Android},
author = {Daniel Toyama and Philippe Hamel and Anita Gergely and
Gheorghe Comanici and Amelia Glaese and Zafarali Ahmed and Tyler
Jackson and Shibl Mourad and Doina Precup},
year = {2021},
eprint = {2105.13231},
archivePrefix = {arXiv},
primaryClass = {cs.LG},
volume = {abs/2105.13231},
url = {http://arxiv.org/abs/2105.13231},
}
免责声明:这不是谷歌的官方产品。