价值迭代的直接回报是什么?

数据挖掘 强化学习 q学习
2022-02-11 05:45:16

假设您获得了一个 MDP,其中奖励归因于达到某个状态,与操作无关。然后在进行值迭代时:

Vi+1=maxasPa(s,s)(Ra(s,s)+γVi(s))

什么是Ra(s,s)

我遇到的问题是,默认情况下,终端状态有V(sT)=R(sT)(一些终端奖励)。然后,当我尝试实现值迭代时,如果我将Ra(s,s)设置为R(s)(这是我的想法),我会得到与终端状态相邻的状态的值高于终端状态本身,因为

Pa(s,sT)(Ra(s,sT)+γVi(sT))

可以很容易地大于Vi(sT),这在实践中是没有意义的。所以我似乎能够得到的唯一结论是,就我而言,Ra(s,s)=R(s) .. 这是正确的吗?

1个回答

什么是Ra(s,s)

在这种情况下,它似乎代表了并从状态转换到状态时收到的预期即时奖励它是这样编写的,因此它可以实现为一系列方阵,每个动作一个。如果只有少数转换是可能的,那么这些矩阵当然可能非常稀疏,但它是描述 MDP 的一种很好的通用形式。ass

不同的 RL 教程之间的符号不同,所以在查看其他来源时要小心。

我遇到的问题是,默认情况下,终端状态有(一些终端奖励)。V(sT)=R(sT)

不,一个状态的价值,是未来奖励的预期贴现总和。终端状态没有未来的奖励,因此其值始终V(sT)=0 0

您系统中的“最终奖励”发生在转换,因此它的期望值应该由ssTRa(s,sT)

如果最终状态是某个目标状态,或者是某个情节的错误退出,并且您如何到达那里并不重要,那么在您给出的公式中,您仍然将其表示为,就是这样的值对您的情况无关紧要。一般来说,对于其他 MDP,它们可能很重要。Ra(s,sT)as

所以我似乎能够得到的唯一结论是,就我而言, .. 这是正确的吗?Ra(s,s)=R(s)

一般不会。然而,在某些问题中,这可能是一个合理的简化。如果您进行了这种简化,那么您应该注意在具有与单个状态相关联的值时要与奖励是用于进入特定状态还是退出特定状态保持一致。“处于某种状态”不会有奖励,最接近的方法是在进入状态时给予一致的奖励(忽略导致转换的先前状态和动作)。

在这里,您似乎在这里建议您想要退出特定状态的奖励 - 忽略其中采取了哪些操作,或者下一个状态是什么。我不知道你的 MDP 的细节,所以不能说这是否适合你。考虑到您的其余问题,也许不是。

如果您是笼统地问,那么您的答案Ra(s,s)R(s)

如果您要求处理特定的 MDP,我建议您再看看您的原始问题,并在此答案中提供额外信息。