3

我正在实施 Q 学习算法,我观察到我的 Q 值没有收敛到最优 Q 值,即使策略似乎正在收敛。我将动作选择策略定义为 epsilon-greedy,并且 epsilon 从 1 开始减少 1/N(N 是迭代的总数)。这样,在早期的迭代中,算法探索随机状态,然后这个速率逐渐降低,导致被利用。此外,我将学习率定义为 1/N_t(s,a),其中 N_t(s,a) 是访问 (s,a) 的总次数。

一切似乎都是正确的,但由于我无法达到最佳 Q 值,我开始研究不同的策略,同时变得非常困惑。我知道当所有 (s,a) 对被无限频繁地访问时,就可以实现收敛。这不等于说所有 (s,a) 对都被探索了很多次吗?换句话说,为什么我们需要利用来实现收敛?如果我们不利用而只专注于探索怎么办?如果我们这样做,我们会搜索所有的解决方案空间,因此这还不足以找到最优策略吗?

此外,当它说 Q 值收敛到最优值时,只有 max_a[Q(s,a)] 收敛到它的最优值还是所有 Q(s,a) 值收敛到它们的最优值?

可能所有这些都有一个简单的答案,但是即使我检查了很多资源和类似的线程,我仍然无法弄清楚利用背后的逻辑。非常感谢您提前抽出时间!

4

2 回答 2

1

理论上,开发确实不是收敛所必需的。在实践中,由于以下两个原因之一或两者,它通常很重要/必要:

  1. 有时我们不仅仅是为了学习而学习,而是在学习/培训过程中我们也关心我们的表现。这意味着我们需要在开发(表现良好)和探索(继续学习)之间取得平衡。

  2. 更重要的是,如果我们纯粹探索而不去探索,这也可能会限制我们在实践中学习的能力,因为如果我们总是随机行事,我们可能根本无法达到许多状态。

为了澄清第二点,请考虑,例如,我们在一个大的 2D 网格的一个角落,而我们的目标位置在对面的角落。假设当我们更接近目标时,我们已经获得了小额奖励,而每当我们远离目标时,我们已经获得了小额负奖励。如果我们在探索和利用之间取得平衡,我们很可能会很快学会沿着从起点到目标的路径行走,但也会由于探索而在这条路径上随机反弹。换句话说,我们将开始学习在这条路径周围的所有州应该做什么。

现在,假设您尝试在相同的情况下仅通过随机行为(例如不利用)来学习。如果我们只是在足够大的二维网格中随机行动,并且总是从一个角落开始,那么我们就不太可能设法到达网格的另一侧。我们只是随机地在起始位置周围的区域中移动,永远不会知道在远离这个起始位置的状态下要做什么。在实践中,不可能通过纯粹的随机行为来达到他们的目的。显然,我们将在无限的时间内达到每个状态,但在实践中我们很少有无限的时间。

于 2018-03-29T08:15:18.670 回答
0

正如您已经说过的,从理论的角度来看,RL 方法总是要求所有 (s,a) 对都被无限频繁地访问。然而,开发阶段只是必要的,具体取决于 RL 算法的类型。与您的问题相关的一个关键概念是区分on-policyoff-policy算法。

on-policy算法(例如 SARSA)中,agent 应该使用它正在学习的相同策略与环境交互。因此,这种方法需要使用学习策略(也称为利用)来实现收敛。

相反,在离策略算法(例如 Q 学习)中,代理可以遵循任何策略,同时收敛到最优策略。

离策略方法在预先收集代理环境之间交互数据的问题中非常有用。例如,在一个医疗问题中,您存储了医生治疗与患者反应之间的交互作用,您可以应用一种非策略算法来学习最佳治疗方法。在这种情况下,显然您没有使用开发,因为在学习开始后代理没有与环境交互。

但是,请注意,使用探索也可以使用非策略方法,尽管应该清楚这不是必需的。在大多数典型的 RL 问题中,目标是代理尽快选择正确的动作。在这种情况下,在学习开始后就开始在探索-探索之间进行平衡是有意义的,如果算法是在策略上还是在策略外,独立性。

于 2018-03-29T09:58:40.240 回答