当需要考虑时间时,如何避免代理倾向于以负面状态终止?

人工智能 强化学习 奖励
2021-10-30 08:08:26

在未知环境中,当需要考虑时间时,如何避免代理倾向于以负面状态终止其轨迹?

假设以下示例使我的问题清楚:

  • 鼠标 (M) 从其世界的左下角开始
  • 它的目标是到达右上角的奶酪(C)(+5奖励),同时还要避开陷阱(T)(-5奖励)
  • 它应该尽快执行此操作,因此对于每个时间步,它也会受到惩罚(-1 奖励)

如果网格世界足够大,它实际上可能需要鼠标许多动作才能到达奶酪。

是否存在鼠标可能选择陷阱(-1*small + -5 累积奖励)而不是奶酪(-1*large + 5 累积奖励)的场景?这是可以避免的吗?这如何转化为未知环境,其中到达正终端状态所需的时间步数未知?

1个回答

这是奖励塑造中的常见问题。您希望您的代理有某种行为,但要完全用奖励来描述它具有挑战性。您所描述的这种情况特别具有挑战性,因为随着网格世界的增长,随机绊倒目标状态的机会变得不太可能 AKA 探索问题。不过,有一些技术可以用来解决这个问题,这里有一些。

0)这是环境和伽玛的一个紧急属性(基于0,因为它更直接地解决您的问题:p)

如果 gamma 很小,您的代理会更重视近期的奖励,而当 gamma 接近 1 时,代理会更重视未来的奖励。在您的网格世界中,网格的大小会影响此伽玛如何影响您的代理。就像在您的示例中一样,如果您的网格是 100x100,如果陷阱靠近代理,则您的 gamma 必须接近 0 才能让您的代理避开陷阱,因为它比移动到“不”的单元更糟糕一个陷阱。这很有趣,因为 gamma 的全部目的是增加暂时远离奖励的加权值,但是当您使陷阱比目标更有利时,进入陷阱是最佳策略。:)

1) 在模型中包含更多观察数据

这并不总是可能的,但根据您的应用程序和可用的资源,您可能会为您的代理提供解决您的任务所需的信息。例如,在您的无限网格示例中,您可以包括代理与目标之间的距离或目标的方向。

2) 包括有助于塑造进步方向的奖励。

人们可以轻松地创建一个无限的网格世界,其中实际上没有目标,而是一项持续的任务,代理必须在所需方向上覆盖距离,同时避开障碍物。你会如何处理这个问题?也许是一种奖励,它专门查看代理在所需方向上随时间访问的细胞数量,也就是速度的离散模拟。当然,这仍然取决于一个已知的方向,但是考虑如何随着环境的增长(例如,向网格世界添加越来越多的单元格)处理环境的“限制”有助于直观地了解您的代理可能会丢失。

3) 使用基于好奇心的方法 从 2) 开始,如果方向未知,要考虑的一件事是,不要对每个时间步进行惩罚,而是激励代理更快,奖励访问“不常访问”状态。由于任务要求智能体尽可能快地执行,因此保持或返回到先前访问过的状态显然不会使智能体受益。采用这种奖励“不经常访问/未访问过/状态”的概念,进一步导致了最近的研究课题,即利用好奇心让 RL 代理具有新颖的探索策略。

尽管定义好奇心的方法有很多(经常有争议),但它们都有一个想法,即当智能体进入以前从未访问过的状态时给予奖励。一篇很好地回顾了好奇心方法并介绍了一种新方法的论文是来自 OpenAI的Random Network Distillation 。