一轮“游戏”的强化学习(特别是强化算法)

人工智能 深度学习 强化学习
2021-10-27 06:58:33

我对在似乎更适合监督学习的环境中使用强化学习很感兴趣。有一个数据集X并且对于每个样本x需要做出一些决定。不能使用监督学习,因为没有任何算法可以解决或近似问题(所以我无法在数据集上解决它)但是对于给定的决定,很容易确定它有多好(定义奖励)。

例如,您可以考虑背包问题 - 假设我们有一个数据集,其中每个样本x是一个对象列表(假设大小为 5),每个对象都与一个权重和一个值相关联,我们想要决定选择哪些对象(当然,您可以解决大小为 5 的列表的背包问题,但让我们想象一下,您可以't)。对于每个解决方案,奖励是所选对象的值(如果权重超过允许的权重,则奖励为 0 或其他值)。所以,我们让代理“玩”每个样本M有时,玩只是意味着选择一些子集并使用给定值进行训练。

为了i-th 样本的步骤可以调整为:

θ=θ+αθlogπθ(a|xi)v
对于每个带有“动作”的“游戏”a和价值v.

而不是原来的步骤:

θ=θ+αθlogπθ(at|st)vt
本质上,我们用样本替换了状态。

问题在于 REINFORCE 假设一个动作也会导致一些新的状态,而这里情况并非如此。无论如何,你认为这样的事情可行吗?

4个回答

这似乎是一个多臂老虎机问题(这里不涉及任何状态)。前段时间我遇到了同样的问题,建议我对输出分布进行 M 次采样,计算奖励,然后将它们提供给代理,这也在本文算法 1 第 3 页中进行了解释(但不同的问题和不同的上下文) . 老实说,我不知道这是否适用于您的情况。你也可以看看这个例子

我认为您问题的关键可能不是一轮使用 RL 解决背包问题与组合优化的主题 rl有很大关系。你可以使用神经组合优化和强化学习来获得一些想法并找到更多相关的解决方案。

您应该研究上下文老虎机,特别是梯度老虎机求解器(参见第 13 节)。

你对梯度的推导对我来说似乎是正确的。您可以使用采样奖励,而不是采样/引导值函数(如在 Actor-Critic 中)或采样全回报(在 REINFORCE 中)。您可能希望从中减去基线v,例如当前策略的滚动平均奖励。

我已经成功地使用梯度强盗求解器来解决具有 5000 维动作的一次性优化问题。它不如自定义优化器或 SAT 求解器强大,但这是否对您来说是个问题取决于问题。

除了上下文强盗或多臂强盗视角,如果你想使用数据集来训练 RL 策略,我会推荐你Batch RL,它是另一个以监督学习方式训练策略的 RL。

对于您的问题,我认为您仍然可以使用单态轨迹来训练 REINFORCE。例如,有一个轨迹,τ=(s,a,r,s), 那里s一片空白。通过使用 REINFORCE,您可以获得渐变θ=θ+αθlogπθ(a|s)r, 你不需要s这里。