Deep learning 深度价值强化学习:训练V(s)而不是Q(s,a)?

Deep learning 深度价值强化学习:训练V(s)而不是Q(s,a)?,deep-learning,dynamic-programming,reinforcement-learning,q-learning,dqn,Deep Learning,Dynamic Programming,Reinforcement Learning,Q Learning,Dqn,是否有一种基于值的(深度)强化学习RL算法可用,该算法完全围绕着只学习状态值函数V(s),而不是学习状态动作值函数Q(s,a) 如果不能,为什么不能,或者,它是否可以轻松实施 Python中是否有任何实现,比如Pytorch、Tensorflow或更高级的RLlib等 我问是因为 我有一个多智能体问题来模拟,在现实中,一些高效的集中决策(I)代表分散的智能体成功地激励讲真话,(ii)基本上取决于各种参与者的价值函数I(在Vi(si,t+1)上)对于不同的可实现后期状态si,t+1(对于所有参与

是否有一种基于值的(深度)强化学习RL算法可用,该算法完全围绕着只学习状态值函数
V(s)
,而不是学习状态动作值函数
Q(s,a)

如果不能,为什么不能,或者,它是否可以轻松实施

Python中是否有任何实现,比如Pytorch、Tensorflow或更高级的RLlib等

我问是因为

  • 我有一个多智能体问题来模拟,在现实中,一些高效的集中决策(I)代表分散的智能体成功地激励讲真话,(ii)基本上取决于各种参与者的价值函数I(在Vi(si,t+1)上)对于不同的可实现后期状态si,t+1(对于所有参与者i),定义了代理的动作。从单个代理的角度来看,具有渐进学习的多代理本质意味着只要训练没有完成,系统就看起来是非平稳的,并且由于问题的本质,我相当相信学习任何自然的Q(s,a)对于我的问题,函数的效率明显低于简单地学习终值函数V(s),集中式机制可以通过基于所有代理的值解决一个单独的子问题,从而容易地从中得出所有代理的最终操作

  • 具有时间差分学习的典型DQN的数学似乎自然适用于V(s)深度网络的仅基于状态值的训练,而不是组合的Q(s,a)。然而,在基于值的RL子域中,每个人似乎都专注于学习Q(s,a),到目前为止,我还没有发现任何纯V(s)-学习算法(除了分析和非深层的传统Bellman方程动态规划方法)


我知道决斗DQN(DDQN),但它似乎并不是我想要的至少“DDQN”有一个单独的学习者来学习
V(s)
,但总的来说,它的目标仍然是以一种分散的方式轻松地学习
Q(s,a)
,这在我的情况下似乎不太有利。

只是好奇,当你说“终值函数V(s)”,在这种情况下“终值”是什么意思?(我不熟悉多代理设置)。谢谢@巴勃罗·埃姆:实际上,也许我应该去掉这里的“终端”;我称之为终值,因为要找到周期t的作用,我们倾向于使用(主要或可能完全)t后的
V(s{t+1}
,而不是
V(s_t)
(或者可能是因为我来自经济学,我们总是解决贝尔曼方程。称V为终值函数)。由于多代理设置的原因,没有使用该术语。好的,谢谢Florian提供的信息。一旦你有了价值函数V(s),你怎么能推导出动作呢?正如你在问题中所说的,我认为调整DQN来学习V(s)而不是Q(s,a)应该是可能的(而且很容易)。然而,通常只有V(s)不足以选择行动(除非你有一个环境模型),因此学习V(s)的实际应用远比Q(s,a)有限。也许这就是大多数文献关注Q(s,a)的唯一原因。我不知道rllib,但正如您所说,pytorch可能是一个很好的框架,可以用来实验和实现您的算法。非常感谢你的解释,我并没有完全理解,但已经足够了。祝你的弗洛里安计划好运!我现在找到了一个解决方案,它可以使我更接近目标,而不必从头开始实施一切:双头网络,一头用于政策选择,一头用于价值评估。ray RLlib显然允许它使用参数
vf\u share\u layers
,Pytork也可能允许它,参见和。好奇一下,当你说“终值函数V(s)”时,“终端”在这个上下文中是什么意思?(我不熟悉多代理设置)。谢谢@巴勃罗·埃姆:实际上,也许我应该去掉这里的“终端”;我称之为终值,因为要找到周期t的作用,我们倾向于使用(主要或可能完全)t后的
V(s{t+1}
,而不是
V(s_t)
(或者可能是因为我来自经济学,我们总是解决贝尔曼方程。称V为终值函数)。由于多代理设置的原因,没有使用该术语。好的,谢谢Florian提供的信息。一旦你有了价值函数V(s),你怎么能推导出动作呢?正如你在问题中所说的,我认为调整DQN来学习V(s)而不是Q(s,a)应该是可能的(而且很容易)。然而,通常只有V(s)不足以选择行动(除非你有一个环境模型),因此学习V(s)的实际应用远比Q(s,a)有限。也许这就是大多数文献关注Q(s,a)的唯一原因。我不知道rllib,但正如您所说,pytorch可能是一个很好的框架,可以用来实验和实现您的算法。非常感谢你的解释,我并没有完全理解,但已经足够了。祝你的弗洛里安计划好运!我现在找到了一个解决方案,它可以使我更接近目标,而不必从头开始实施一切:双头网络,一头用于政策选择,一头用于价值评估。ray RLlib显然允许它使用参数
vf\u share\u layers
,pytorch也可能允许它,参见和。