译者 | 布加迪
审校 | 重楼
如果您无法从头开始构建一个机器学习模型,或者缺少相应的基础设施,仅仅将应用程序连接到工作模型就可以填补这个缺口。
人工智能可供所有人以某种方式来使用。至于OpenAI Gym,有许多值得一试的训练环境为您的强化学习代理馈送内容。
那么,OpenAI Gym到底是什么?它是如何工作的?您可以用它来构建什么?
OpenAI Gym的定义
OpenAI Gym是一个Python风格的API,为强化学习代理提供模拟的训练环境,使其可以根据环境观察采取行动,每个动作都有积极或消极的奖励,这种奖励在每个时间步长都会累积。虽然代理旨在实现奖励最大化,但它会因每个意想不到的决定而受到惩罚。
时间步长是环境进入到另一种状态的离散时间单位。当代理的动作改变环境状态时,它就会累加。
OpenAI Gym如何运作?
OpenAI Gym环境基于马尔可夫决策过程(MDP),这是一种用于强化学习的动态决策模型。因此,只有当环境改变状态时,奖励才会出现。而下一个状态的事件只依赖当前状态,因为MDP不考虑过去的事件。
在继续介绍之前,不妨通过一个例子快速了解OpenAI Gym在强化学习中的应用。
假设您打算在赛车游戏中训练一辆汽车,可以在OpenAI Gym中启动赛道。在强化学习中,如果车辆向右转而不是向左转,它可能会得到-1的负奖励。赛道在每个时间步长都发生变化,并在随后的状态中可能变得更复杂。
消极的奖励或惩罚对于强化学习中的代理来说不是坏事。在一些情况下,它会鼓励代理更快地实现目标。因此,随着时间的推移,汽车逐渐了解赛道,并使用一系列奖励熟练掌握导航。
比如说,我们创建了FrozenLake-v1环境,在这个环境中,代理因掉进冰洞会而受到惩罚,但因找回礼盒而得到奖励。
我们第一次运行生成的惩罚较少,没有奖励:
然而,第三次迭代生成了更复杂的环境。但代理得到了一些奖励:
上面的结果并不意味着代理会在下一次迭代中得到改进。虽然下一次它可能会成功地避开更多的洞,但它可能得不到任何奖励。但修改几个参数可能会提高学习速度。
OpenAI的组件
OpenAI Gym API围绕以下组件:
- 训练代理所在的环境。您可以使用gym.make方法初始化环境。OpenAI Gym还支持多代理环境。
- 用于修改现有环境的包装器。虽然每个基本环境在默认情况下都预先包装,但您可以使用max_actions、min_actions和max rewards等参数重新调整其规模。
- 动作定义了代理在观察环境中的变化时所做的事情。环境中的每个动作都是一个步骤,定义了代理对观察结果的响应。步骤完成就返回观察值、奖励、信息以及截断值或终止值。
- 观察定义代理在环境中的经验。一旦观察到结果,动作就会跟随其信息。info参数是一个执行日志,便于调试。一旦一个步骤结束,环境将重置n次,这取决于所指定迭代的次数。
可以用OpenAIGym做什么?
由于OpenAI Gym允许您启用自定义学习环境,以下是在现实场景中使用它的几个方法。
1. 游戏模拟
您可以利用OpenAI Gym的游戏环境来奖励所需的行为、创建游戏奖励,并增加每个游戏级别的复杂性。
2. 图像识别
在数据、资源和时间有限的情况下,OpenAI Gym便于开发图像识别系统。在更深层次上,您可以扩展它来构建人脸识别系统,该系统将奖励正确识别人脸的代理。
3.机器人训练
OpenAI Gym还提供了3D和2D模拟的直观环境模型,您可以将所需的行为实现到机器人中。Roboschool就是一个例子,可以使用OpenAI Gym构建扩展规模的机器人模拟软件。
4. 市场营销
您还可以使用OpenAI Gym构建广告服务器、股票交易机器人、销售预测机器人、产品推荐系统等营销解决方案。比如说,您可以构建自定义OpenAI Gym模型,根据印象和点击率对广告进行惩罚。
5. 自然语言处理
将OpenAI Gym应用于自然语言处理的一些方法是涉及句子补全或构建垃圾邮件分类器的多项选择题。比如说,您可以训练一个代理来学习句子变化,从而在标记参与者时避免偏误。
如何上手OpenAI Gym?
OpenAI Gym支持Python 3.7及更高版本。若要创建OpenAI Gym环境,就需要安装Gymnasium,这是不断得到支持的分叉Gym版本:
pip install gymnasium
接下来,启动一个环境。不过,您可以创建自定义环境。但是,要想掌握OpenAI Gym概念,应先从现有的环境开始。
下面的代码启动FrozenLake-v1。env.reset方法记录了初始观察结果:
import gymnasium as gym
env = gym.make('FrozenLake-v1', render_mode="human")
observation, info = env.reset()
注意:一些环境需要额外的库才能工作。如果您需要安装另一个库,Python会通过异常消息来推荐库。
比如说,您将安装额外的库(gymnasium[toy-text])来运行FrozenLake-v1环境。
运用OpenAI Gym的力量
阻碍人工智能和机器学习发展的因素之一是缺少基础设施和训练数据集。但是当您希望将机器学习模型整合到应用程序或设备中时,由于现成的人工智能模型在网上唾手可得,现在一切都变得更容易了。其中一些工具是低成本工具,而包括OpenAI Gym在内的其他工具却是免费的开源工具。
原文标题:What Is OpenAI Gym and How Can You Use It?,作者:Idowu Omisola