我开始阅读一些强化学习文献,在我看来,解决强化学习问题的所有方法都是关于寻找价值函数(状态-价值函数或动作-状态价值函数)。
是否有任何算法或方法不尝试计算价值函数,而是尝试以不同的方式解决强化学习问题?
我的问题出现了,因为我不相信没有比找到价值函数更好的方法。我知道给定价值函数,我们可以定义一个最优策略,但是没有其他方法可以找到这样一个最优策略吗?
另外,我没有遇到任何非基于价值的方法的原因是这些方法不太成功吗?
我开始阅读一些强化学习文献,在我看来,解决强化学习问题的所有方法都是关于寻找价值函数(状态-价值函数或动作-状态价值函数)。
是否有任何算法或方法不尝试计算价值函数,而是尝试以不同的方式解决强化学习问题?
我的问题出现了,因为我不相信没有比找到价值函数更好的方法。我知道给定价值函数,我们可以定义一个最优策略,但是没有其他方法可以找到这样一个最优策略吗?
另外,我没有遇到任何非基于价值的方法的原因是这些方法不太成功吗?
有许多算法不是基于寻找价值函数。最常见的是策略梯度。这些方法试图通过神经网络将状态映射到动作。他们直接学习最优策略,而不是通过价值函数。
图像的重要部分是当无模型 RL分裂为 策略优化(包括策略梯度)和Q-Learning时。稍后您可以看到这两个部分在混合了两种技术的算法中重新组合在一起。即使是策略优化中最底层的三种方法也涉及某种形式的价值函数学习。最好和最先进的算法使用价值函数学习和策略优化。价值函数仅用于训练。然后当代理被测试时,它只使用策略。
您只听说过价值函数方法的最可能原因是因为策略梯度更复杂。有许多算法比只使用价值函数和策略梯度更先进的算法可以学习在连续动作空间中运行(动作可以在 -1 和 1 之间,例如移动机器人手臂时),而值函数只能在离散空间中运行动作空间(向右移动 1 或向左移动 1)。
总结:是的,还有其他方法可以在没有价值函数的情况下学习最优策略。最好的算法使用这两种类型的强化学习。
SpinningUp网站上有很多关于强化学习算法和实现的信息。您可以在此处了解有关直接策略优化的更多信息。这也是我从那里得到图像的地方。