具有重叠状态的Q-Learning优化

时间:2017-06-20 18:08:26

标签: machine-learning reinforcement-learning q-learning

我正在为一项简单的任务实施Q学习,该任务涉及机器人在连续坐标系中移动到目标位置。每集都有固定的长度,奖励稀疏:给出了剧集最后过渡的一个奖励,奖励是机器人和目标之间最终距离的函数。

我想知道的问题是,在计算特定状态的q值时,可能存在冲突的目标q值。例如,让我们说在剧集A中,机器人在剧集的最后一步结束时接近目标,并获得0.9的奖励。然后在剧集B中,让我们说机器人在剧集中间向右移动目标,并完成远离目标的剧集:

enter image description here

我的问题是问题状态,两集重叠。如果我将我的转换存储在重放缓冲区中,并且我从第一集中采样转换,那么该动作的目标q值将等于discount_factor x max_q(next_state) + reward,但如果对第二集的转换进行采样,则目标q值为discount_factor x max_q(next_state) + 0,因为在剧集的最终状态中只有奖励。 (我在这里假设在问题状态下,两集都采取相同的行动)。

这意味着我的优化对同一个状态 - 动作对有两个不同的目标,这是不可能学习的。

我是否误解了这个问题,还是这是一个真正的问题?或者我应该改变我的奖励分配方式吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

首先,在这两集中,州或行动确实有所不同。首先让我们假设机器人是全向的(没有“面向”方向 - 它可以向任何方向移动),然后在“重叠”状态,在剧集A中执行不同于B集的动作(因为一个上升并且右边和一个左边),由于Q值是Q(s,a)形式,因此当你将Q(s,a_A)和Q(s,a_B)“分开”拟合时,没有“冲突”。现在第二个选项 - 机器人确实有一个标题方向,因此在两个剧集中他们可能一直在执行相同的动作(如“前进”)但是然后状态s实际上包括标题方向,所以你有Q( s_A,a)和Q(s_B,a)(同样是不同的对象,只是相同的动作)。

一般情况下,当您为同一个状态/动作对获得两个不同的值时,您也无法学习 - 您将学习预期值(这是任何随机环境的典型情况)。< / p>