SnowballTarget 环境
SnowballTarget 是我们在 Hugging Face 使用 Kay Lousberg 的资源创建的环境。在本单元的末尾,我们有一个可选部分,**如果您想学习使用 Unity 并创建自己的环境,则可以参考它**。
智能体的目标
您将要训练的第一个智能体叫做 Julien the bear 🐻。Julien 被训练**用雪球击中目标**。
在这个环境中的目标是 Julien **在有限时间内(1000 个时间步)击中尽可能多的目标**。为此,它需要**正确地定位自己与目标之间的关系,并进行射击**。
此外,为了避免“雪球狂轰滥炸”(即每一步都射击雪球),**Julien 有一个“冷却”系统**(它需要在射击后等待 0.5 秒才能再次射击)。
奖励函数和奖励工程问题
奖励函数很简单。**每当智能体的雪球击中目标时,环境都会给予 +1 的奖励**。因为智能体的目标是最大化预期累积奖励,**它会尝试击中尽可能多的目标**。
我们可以有一个更复杂的奖励函数(例如,使用惩罚来推动智能体更快地行动)。但是,当您设计环境时,您需要避免 *奖励工程问题*,即设计过于复杂的奖励函数来强迫您的智能体按照您想要的方式行事。为什么?因为这样做,**您可能会错过智能体使用更简单的奖励函数能够找到的有趣的策略**。
从代码的角度来看,它看起来像这样
观察空间
关于观察,我们不使用正常的视觉(帧),而是**使用射线检测**。
将射线检测想象成激光,它会检测它们是否穿过了物体。
在这个环境中,我们的智能体有多组射线检测
除了射线检测之外,智能体还会获得一个“我可以射击”的布尔值作为观察结果。
动作空间
动作空间是离散的
< > 在 GitHub 上更新