在定义 MDP 的奖励函数时,我们是否必须考虑动作的可行性?

人工智能 奖励 马尔可夫决策过程
2021-11-13 12:29:41

在定义奖励函数时,我们是否必须考虑(给定s)一个动作a是否可以导致s'?

更具体地说:假设我有一个 1D 地图,例如:|A|B|C|D| 要定义奖励函数,我只是为每个动作定义了一个矩阵,其中的列和行代表状态 (AD),条目代表奖励。但我让它变得更简单了。由于达到特定状态给出了 1 的奖励,我刚刚将奖励分配给列 (C)。

1010101010101010
但是,假设矩阵是为“向右”动作指定的。现在有条目阅读:D ==> going right ==> C getting reward of 1这实际上是不可能的。但是,我认为转换函数会处理这个问题,因为我将在那里定义什么是可能的,什么是不可能的。但无论如何,据说对于一个视野,给予直接奖励,甚至不考虑转换函数。这导致任意结果。那么我必须考虑我的世界的“物理”吗?

1个回答

您的问题与您如何表示您的奖励有关,与 MDP 无关。

你选择使用一个矩阵来表示你的奖励函数,它映射(s,s)r. 如果有一些过渡ss没有发生,那么你放在那里的奖励价值根本不重要(s,s). 只是因为您决定为此使用矩阵,您甚至需要考虑它。

一个完整的奖励函数将映射s,a,s到一个标量值,也可以包括一个随机因子。您不需要使用所有因素 - MDP 可以使用其中任何一个或所有因素,并且所有 MDP 理论仍然是正确的。在您的情况下,它看起来像到达“目标状态”s=C是触发+1奖励的原因。因此,您可以定义一个函数,而不是矩阵:

r(s,a,s)={1,if s=A1,if s=C0,otherwise

这在 MDP 中与您的矩阵一样有效,并且避免了存储有关不可能转换的数据的问题。

我认为转换函数会处理这个问题,因为我将在那里定义什么是可能的,什么是不可能的。

是的,应该是这样。如果您的转换函数不允许某些状态更改,则无需在奖励函数中以任何特定方式处理它们。

但无论如何,据说对于一个视野,给出了直接的奖励,甚至没有考虑转换函数

我不确定您在哪里读过这篇文章,但它与您的表示问题或解决“不可能的”状态转换无关。

如果您使用的是基于模型的方法,例如策略迭代或价值迭代,那么您确实会使用转移函数和奖励函数——或多或少直接以贝尔曼方程的形式。在这种情况下,转换函数将为不可能的转换分配 0 的权重,因此奖励值无关紧要(在这种情况下,高效的代码甚至可能会跳过查找或计算奖励)。

如果您使用的是无模型方法,例如 Q 学习,那么代理不会直接使用转移函数或奖励函数。它们是它正在学习的环境的一部分。但是,模拟环境的任何代码都必须实现您世界的物理特性,其中包括使用转换函数来解决代理采取行动时发生的情况。在这种情况下,环境的模拟模型将防止智能体经历不可能的转换,因此永远不需要为它们计算奖励或允许它们作为奖励函数中的边缘情况(您可能仍然选择检查有效性和/或返回一些东西作为奖励函数的防御性编程,但 MDP 和强化学习不需要它)。