我正在为一个简单的任务实现Q学习,这涉及到机器人在连续坐标系中移动到目标位置。每一集都有一个固定的长度,并且奖励是稀疏的:对于剧集的最终过渡,只有一个奖励,奖励是机器人和目标之间最终距离的函数。
我想知道的问题是,当计算特定状态的Q值时,可能存在冲突的目标Q值。例如,假设在剧集A中,机器人在剧集的最后一步接近目标,并获得0.9的奖励。然后在第二集,让我们假设机器人在一集的中间穿过目标,并在远离目标的地方完成了一集:

我的问题是问题状态,其中两个事件重叠。如果我将我的过渡存储在重放缓冲区中,并对A集的过渡进行采样,则该动作的目标Q值将等于discount_factor x max_q(next_state) + reward,但如果对B集的过渡进行采样,则目标Q值为discount_factor x max_q(next_state) + 0,因为该集的最终状态中只有一个奖励。(我在这里假设在问题状态下,两个事件采取相同的操作)。
这意味着我的优化对于同一个状态-动作对有两个不同的目标,这将是不可能学习的。
我是否误解了这个问题,或者这是一个真正的问题?或者我应该改变奖励的分配方式?
谢谢!
发布于 2017-06-21 04:25:13
首先,在这两个场景中,无论是状态还是行为都不同。首先让我们假设机器人是全向的(没有“面向”的方向-它可以在任何方向上移动),然后在“重叠”状态下,在A集中执行与B集中不同的动作(因为一个向上和向右,一个向左),并且由于Q值是Q(s,a)的形式,所以没有“冲突”,因为你分别拟合Q(s,a_A)和Q(s,a_B)。现在第二个选项-机器人确实有一个前进方向,所以在两个场景中它们可能一直在执行相同的动作(比如“前进”),但是状态s实际上包括前进方向,所以你有Q(s_A,a)和Q(s_B,a) (同样是不同的对象,只是相同的动作)。
一般来说,当您无法学习同一状态/动作对的两个不同值时,您将学习期望值(这是任何随机环境的典型情况),这也是不正确的。
https://stackoverflow.com/questions/44660178
复制相似问题