深度强化学习课程文档
Unity ML-Agents 如何工作?
加入 Hugging Face 社区
并获得增强的文档体验
开始使用
Unity ML-Agents 如何工作?
在训练我们的智能体之前,我们需要理解 ML-Agents 是什么以及它是如何工作的。
什么是 Unity ML-Agents?
Unity ML-Agents 是游戏引擎 Unity 的一个工具包,它允许我们使用 Unity 创建环境或使用预制环境来训练我们的智能体。
它由 Unity Technologies 开发,Unity Technologies 是 Unity 的开发者,Unity 是最著名的游戏引擎之一,被《看火人》、《茶杯头》和《城市:天际线》的创作者使用。

六个组件
使用 Unity ML-Agents,您有六个基本组件

- 第一个是学习环境,它包含 Unity 场景(环境)和环境元素(游戏角色)。
- 第二个是 Python 底层 API,它包含 用于交互和操作环境的底层 Python 接口。这是我们用来启动训练的 API。
- 然后,我们有外部通信器,它将学习环境(用 C# 制作)与底层 Python API (Python) 连接起来。
- Python 训练器:用 PyTorch 制作的强化学习算法(PPO、SAC…)。
- Gym 包装器:将 RL 环境封装在 gym 包装器中。
- PettingZoo 包装器:PettingZoo 是 gym 包装器的多智能体版本。
学习组件内部
在学习组件内部,我们有两个重要元素
- 第一个是智能体组件,场景中的演员。我们将通过优化其策略(这将告诉我们在每种状态下采取什么行动)来训练智能体。该策略被称为“大脑”。
- 最后,是学院(Academy)。该组件协调智能体及其决策过程。可以将该学院视为处理 Python API 请求的老师。
为了更好地理解其作用,让我们回顾一下 RL 过程。这可以建模为一个如下所示的循环

现在,让我们想象一个智能体学习玩平台游戏。RL 过程如下所示

- 我们的智能体从环境中接收状态 — 我们接收到游戏的第一帧(环境)。
- 基于该状态, 智能体采取动作 — 我们的智能体将向右移动。
- 环境进入一个新的 状态 — 新帧。
- 环境给智能体一些奖励 — 我们没有死 (正向奖励 +1)。
这个 RL 循环输出状态、动作、奖励和下一个状态的序列。智能体的目标是最大化预期的累积奖励。
学院将是向我们的智能体发送指令并确保智能体同步的角色
- 收集观察
- 使用你的策略选择你的动作
- 执行动作
- 如果达到最大步数或完成,则重置。

现在我们了解了 ML-Agents 的工作原理,我们准备好训练我们的智能体了。
< > 在 GitHub 上更新