当奖励仅在最后一个状态可用时,如何应用 Q-learning?

人工智能 强化学习 q学习 奖励函数 稀疏奖励 组合优化
2021-11-08 17:37:31

我有一个调度问题,其中有n插槽和m客户。我正在尝试使用 Q-learning 解决问题,因此我制作了以下状态动作模型。

一个状态st由当前槽位给出t=1,2,,n和一个动作at在插槽t由一位客户提供,at{1,2,,m}. 在我的情况下,我没有任何与状态-动作对相关的奖励(st,at)直到最后一个槽的终端状态。换句话说,对于所有st{1,2,,n1},奖励为0并且对于st=n我可以计算给定的奖励(a1,a2,,an).

在这种情况下,Q 表,Q(st,at), 将仅包含零,除了包含更新奖励的最后一行。

在这种情况下我还能应用 Q-learning 吗?如果我只使用最后一行,为什么我需要一个 Q 表?

2个回答

在最后只有非零奖励并不少见。当奖励稀疏时,与一路上有很多不同的奖励相比,学习变得有点困难,但对于你的问题,总是达到目标状态,所以这应该不是问题。(稀疏奖励的真正问题是,如果代理可以进行大量探索而没有找到目标,那么它基本上不会收到任何反馈并且会随机行事,直到碰巧偶然发现非常罕见的奖励状态。)

我对您的问题更关心的是,最终奖励不仅取决于上次访问的状态,还取决于到目前为止所采取的行动链。这意味着,要使其成为适当的 MDP,您需要将动作链保持在状态中。所以,你的状态将是某种类型(sk,[a1,a2,,ak1]).

这种组合问题并不是 RL 真正擅长的。当状态和动作一起提供大量关于下一个状态的信息时,RL 真的很好。在这里,在您的表述中,下一个状态似乎与前一个动作无关。

与其将其视为 RL 问题,不如将其表示为具有相关奖励的动作序列,并将其视为组合优化问题。

如果通过,

我可以计算给定的奖励(a1,a2,,an)

你只是说你的游戏是确定性的,这绝对没问题。我觉得另一个答案假设您暗示您的最终奖励是某个顺序的问题。然而,RL 确实在具有不确定奖励的游戏中更加挣扎,直到最终状态,然而,这是完全正常的,但却是一个重大挑战。

在实现方面,只需在每场比赛结束时记录奖励,并仅在每个终端状态后执行一次训练步骤,将此奖励分配给该游戏中记录的每个转换。与其在给定数量的步骤之后更新您的目标网络,不如在一定数量的终端状态之后更新它。我建议以 20 款游戏作为更新目标网络频率的起点。