machine-learning - 针对连续状态、离散 Action 的强化学习算法

标签 machine-learning reinforcement-learning

我正在尝试在具有连续状态(dim.= 20)和离散操作(3 个可能的操作)的环境中找到最佳策略。并且有一个特定的时刻:对于最佳策略,一个操作(称为“操作 0”)的选择频率应比其他两个操作高得多(频率约为 100 倍;这两个操作风险更大)。

我尝试过使用 NN 值函数近似进行 Q 学习。结果相当糟糕:神经网络学习总是选择“ Action 0”。我认为策略梯度方法(在神经网络权重上)可能会有所帮助,但不明白如何在离散 Action 上使用它们。

您能给一些尝试的建议吗? (也许是算法,要阅读的论文)。 当状态空间连续且 Action 空间离散时,最先进的强化学习算法是什么?

谢谢。

最佳答案

在连续(状态和/或 Action )空间中应用 Q 学习并不是一项简单的任务。当尝试将 Q 学习与全局函数逼近器(例如 NN)结合起来时尤其如此(我理解您指的是常见的多层感知器和反向传播算法)。您可以在 Rich Sutton's page 中阅读更多内容。更好(或者至少更简单)的解决方案是使用局部逼近器,例如径向基函数网络(this paper 的第 4.1 节对此有很好的解释)。

另一方面,状态空间的维数可能太高而无法使用局部逼近器。因此,我的建议是使用其他算法而不是 Q-learning。对于连续状态和离散 Action 来说,一个非常有竞争力的算法是 Fitted Q Iteration ,通常与树方法结合来​​逼近Q函数。

最后,当 Action 数量较少时(如您的情况),一种常见的做法是为每个 Action 使用独立的逼近器,即,而不是采用状态 Action 对作为输入并返回的唯一逼近器Q 值,使用三个逼近器,每个 Action 一个,仅将状态作为输入。您可以在本书 Reinforcement Learning and Dynamic Programming Using Function Approximators 的示例 3.1 中找到这样的示例。

关于machine-learning - 针对连续状态、离散 Action 的强化学习算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27008226/

相关文章:

reinforcement-learning - 控制变量的离策略形式,来自 RL Barto Sutton

python - 对 Farama Gymnasium 的稳定基线 3 支持

python - 如何使用Keras的多层感知器进行多类分类

r - 如何获得 glmnet 多项逻辑回归的混淆矩阵?

python - Chainer:无法分类,训练模型(x)抛出错误

python - 如何使用 Tensorflow Optimizer 而不重新计算强化学习程序中的激活,从而在每次迭代后返回控制?

python - 给定一个训练有素的环境,我如何评估特定状态下的策略?

python - Sklearn StratifiedKFold : ValueError: Supported target types are: ('binary' , 'multiclass' )。取而代之的是 'multilabel-indicator'

python - 使用 Conv3D 的 theano 实现的建议

tensorflow - SQuAD 挑战中的 EM 分数