我正在实施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)值收敛到它们的最佳值?
可能所有这些都有一个简单的答案,但即使我检查了很多资源和类似的线程,我仍然无法弄清楚利用背后的逻辑。非常感谢你提前的时间!
答案 0 :(得分:0)
在理论上收敛确实不是必要的。在实践中,对于以下两个原因中的一个或两个,它通常是重要/必要的:
有时候我们不仅仅是为了学习而学习,但我们也在学习/培训过程中关注我们的表现。这意味着我们需要在利用(表现良好)和探索(继续学习)之间取得平衡。
更重要的是,如果我们纯粹探索并且根本不利用,这也可能限制我们在实践中学习的能力,因为如果我们总是随机行动,我们可能根本无法达到许多状态。 / p>
为了澄清第二点,例如,考虑我们在一个大的2D网格的一个角落,我们的目标位置在对面的角落。假设每当我们靠近目标时,我们已经获得了小额奖励,并且每当我们向更远的地方移动时,我们就会得到小的负面奖励。如果我们在探索和开发之间取得平衡,我们很可能会很快学会沿着从开始到目标的路径行走,但是由于探索,它也会随机地在该路径上反弹。换句话说,我们将开始学习在该路径周围的所有州做什么。
现在,假设你只是通过随机行动(例如没有剥削)尝试在同样的情况下学习。如果我们只在一个足够大的2D网格中随机行动,而且我们总是从一个角落开始,那么我们就不太可能设法到达网格的另一边。我们只是随机地继续在起始位置周围的区域内移动,并且永远不知道在远离这个起始位置的状态下该做什么。在实践中,它不可能以纯随机行为与他们联系。显然,我们将在无限的时间内到达每个州,但我们在实践中很少有无限的时间。
答案 1 :(得分:0)
正如您所说,从理论的角度来看,RL方法总是要求所有(s,a)对经常被无限访问。但是,根据RL算法的类型,只需要开发阶段。与您的问题相关的一个关键概念是区分 on-policy 和 off-policy 算法。
在 on-policy 算法(例如SARSA)中,代理应使用与其学习的相同策略与环境进行交互。因此,这种方法需要使用学习策略(也称为利用)来实现收敛。
相反,在 off-policy 算法(例如Q-learning)中,代理可以遵循任何策略,同时收敛到最优策略。
在预先收集代理 - 环境之间的交互数据的问题中,非政策方法非常有用。例如,在您存在医生治疗 - 患者反应之间存在相互作用的医疗问题中,您可以应用非政策算法来学习最佳治疗。在这种情况下,显然您没有使用利用,因为代理在学习开始后没有与环境交互。
但是,请注意,也可以使用explotation来使用非政策方法,尽管应该清楚这不是必需的。在大多数典型的RL问题中,目标是代理人尽快选择正确的行动。在这种情况下,有必要在学习开始之后开始平衡探索 - explotation,如果算法是on-policy或off-policy,则无关紧要。