在价值函数逼近中,特别是在深度 Q 学习中,我知道我们首先预测每个动作的 Q 值。但是,当有很多动作时,这项任务并不容易。
但在策略迭代中,我们还必须输出与每个动作相关的 softmax 向量。所以我不明白如何将其用于连续动作空间。
为什么在连续动作域中策略梯度方法优于价值函数逼近?
在价值函数逼近中,特别是在深度 Q 学习中,我知道我们首先预测每个动作的 Q 值。但是,当有很多动作时,这项任务并不容易。
但在策略迭代中,我们还必须输出与每个动作相关的 softmax 向量。所以我不明白如何将其用于连续动作空间。
为什么在连续动作域中策略梯度方法优于价值函数逼近?
但是在策略迭代中,我们还必须输出与每个动作相关的 softmax 向量
严格来说,这不是真的。softmax 向量是表示策略的一种可能方式,适用于离散动作空间。策略梯度和价值函数方法之间的区别在于你如何使用输出。对于价值函数,您会找到最大输出,然后选择它(也许-贪婪地),它应该是对采取该行动的价值的估计。对于策略函数,您将使用输出作为选择每个动作的概率,并且您不知道采取该动作的价值。
所以我不明白这如何用于连续动作空间?
使用策略梯度方法,策略可以是参数的任何函数 哪个:
输出概率分布
可以区分为
因此,例如,您的策略功能可以是
在哪里和可以是您使用例如神经网络实现的功能。网络的输出是对动作值正态分布的描述给定一个状态值. 该策略要求您从这些值定义的正态分布中进行采样(NN 不会进行该采样,您通常必须在代码中添加它)。
为什么在连续动作域中策略梯度方法优于价值函数逼近?
虽然仍然可以在连续动作空间中估计状态/动作对的值,但这并不能帮助您选择动作。考虑如何实施- 使用动作值近似的贪婪策略:它需要对每个动作选择的动作空间进行优化,以便找到估计的最优动作。这是可能的,但可能非常缓慢/效率低下(也存在找到局部最大值的风险)。
直接使用发出概率分布的策略可以避免这个问题,前提是这些分布易于采样。因此,您经常会看到诸如控制正态分布参数的策略之类的东西,因为众所周知如何轻松地从这些分布中采样。
在价值函数方法(或批评方法)中,我们通常在估计相关价值函数后选择以下选项之一来选择我们的动作:
在策略梯度(或 Actor 方法)中,我们有两种方法:
从上面你可以清楚地看到,当涉及到连续动作空间时,PG 提供了更合理的解决方案。
有关更多信息,我建议您阅读硕士论文PG 方法: Riashat 的 SGD-DPG。他与 Silver 的 DPG 论文的合著者之一密切合作,论文结构非常好,可用 MATLAB 代码。由于涉及数学(并且多次使用不同的符号),策略梯度方法更难理解。不过,我建议您从Jan Peters开始,然后再回到 Silver 的幻灯片(我的意见 :))。