Deep RL 课程文档

SnowballTarget 环境

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

SnowballTarget 环境

SnowballTarget

SnowballTarget 是我们 Hugging Face 使用 Kay Lousberg 的资源创建的环境。在本单元的末尾,我们有一个可选部分,如果您想学习使用 Unity 并创建您的环境

智能体的目标

您将要训练的第一个智能体叫做 Julien 熊 🐻。Julien 的训练目标是用雪球击中目标

此环境中的目标是 Julien 在有限的时间内(1000 个时间步)尽可能多地击中目标。它需要正确地将自己放置在相对于目标的位置并射击才能做到这一点。

此外,为了避免“雪球垃圾邮件”(即每个时间步都射击雪球),Julien 有一个“冷却”系统(射击后需要等待 0.5 秒才能再次射击)。

Cool Off System
智能体需要等待 0.5 秒才能再次射击雪球

奖励函数和奖励工程问题

奖励函数很简单。每次智能体的雪球击中目标,环境都会给出 +1 奖励。由于智能体的目标是最大化预期的累积奖励,它将尝试尽可能多地击中目标

Reward system

我们可以拥有更复杂的奖励函数(例如,为了推动智能体更快地行动而进行惩罚)。但是,当您设计环境时,您需要避免奖励工程问题,即拥有过于复杂的奖励函数来迫使您的智能体按照您希望的方式行事。为什么?因为这样做,您可能会错过智能体使用更简单的奖励函数会发现的有趣策略

在代码方面,它看起来像这样

Reward

观察空间

关于观察,我们不使用正常的视觉(帧),而是使用射线投射

将射线投射想象成激光,它们会检测是否穿过物体。

Raycasts
来源:ML-Agents 文档

在此环境中,我们的智能体有多组射线投射

Raycasts

除了射线投射之外,智能体还获得一个“我可以射击吗”的布尔值作为观察。

Obs

动作空间

动作空间是离散的

动作空间 < > 在 GitHub 上更新