为什么 DQN 中的动作探索不会导致不稳定?
我在 DQN 算法中看到,即使经过一些迭代,它也会选择随机动作。
我的问题是这种方法如何不会导致不稳定?甚至 epsilon(随机动作的概率)的最终值也不为零!
如果我们设置最终的 epsilon=0.01,我们将在 100 次中随机选择一个动作,这意味着我们不会在不同的运行中得到相同的答案,并且可能我们的答案并不稳定。为什么这仍然有效?
为什么 DQN 中的动作探索不会导致不稳定?
我在 DQN 算法中看到,即使经过一些迭代,它也会选择随机动作。
我的问题是这种方法如何不会导致不稳定?甚至 epsilon(随机动作的概率)的最终值也不为零!
如果我们设置最终的 epsilon=0.01,我们将在 100 次中随机选择一个动作,这意味着我们不会在不同的运行中得到相同的答案,并且可能我们的答案并不稳定。为什么这仍然有效?
所有强化学习(RL) 控制算法都必须处理探索/利用权衡。您是否相信您已经对环境有足够的了解可以采取最佳行动,或者您是否仍然需要检查替代行动。
与此相关的是,在 RL 中尝试学习最优策略时有两种基本方法。代理可以学习:
代理评估其正在采取的行动并直接调整行为的策略。为了解决策略学习的探索/探索权衡,一种常见的方法是衰减(或控制探索量的类似参数),基于对学习任务需要多少学习的一些想法。
代理具有单独的行为和目标策略的离策略。代理从探索行为策略中采取行动,并在数学上调整它得到的结果,以便它计算出不同的目标策略,这通常在某种程度上是最优的。
Q learning是一种off-policy算法,它学习始终遵循确定性贪婪动作选择的动作价值函数。在最简单的单步版本中,所需的调整非常简单——Q learning 不是根据行为策略的作用来估计动作值,而是使用最好的下一个动作进行更新,而不管选择了什么。
当使用 q 值表(即不是神经网络)时,Q 学习被证明是稳定和收敛的。然而,当与神经网络一起使用时,它实际上不是很稳定 (在哪里 是 NN 权重)。这就是为什么 DQN 需要使用经验回放和单独的目标网络 - 以对抗不稳定性。但是,不稳定性并不是由随机动作直接引起的,它比这更复杂。
如果我们设置最终的 epsilon=0.01,我们将在 100 次中随机选择一个动作,这意味着我们不会在不同的运行中得到相同的答案,并且可能我们的答案并不稳定。为什么这仍然有效?
代理不会在每次运行时表现一致,因为它仍在探索中。但是,如果设置正确,它仍然会收敛到并学习最优策略,实际上不断探索应该有助于它正确获取非最优动作选择的值,并保持正确的最大化动作。
当您在完成学习后使用Q 学习策略时,通常您会将 epsilon 设置为零并让代理贪婪地行动。
值得注意的是,即使使用确定性策略,RL 也是围绕可能发生随机事件的环境概念设计的。例如,它会在导航时学习最佳的移动方式,即使有时由于随机事件而行进的距离并不相同。当您在非确定性环境中测试代理时,每次都会发生不同的事情,这对学习过程来说不是问题。评估代理可能是个问题——您需要多次运行测试并取平均值来评估它的执行情况。