从评论中,您说除了在单个情节中得分高外,选择对手没有“外部”目标。
您可以将最初的对手选择建模为部分独立的马尔可夫决策过程 (MDP),其中选择对手是一个单步插曲,其回报等于参与游戏的次要 MDP 获得的任何奖励。然而,这个“外部” MDP 根本不是一个 MDP,它更像是一个上下文强盗。此外,内部玩游戏代理的表现会随着对手的选择而变化,随着时间的推移,随着它学会更好地对抗每个对手。这使得外部 MDP 不平稳。它还需要内部 MDP 知道它面临的对手是什么,以便正确预测正确的选择和/或未来的奖励。
最后一部分——任何“内部”代理都需要意识到它正在对抗的对手——无论你选择什么结构,都可能是必要的。对手的选择需要成为这个内部代理状态的一部分,因为它会对未来可能的奖励产生影响。对手的特征也需要成为您可以用于外部代理的任何预测模型的一部分。
对于您的问题,一个更自然且可能更有用的 MDP 模型是有一个 MDP,其中第一个操作一个0就是选择对手。这与您用于描述问题的语言相匹配,并解决了您尝试运行代理层次结构的问题。分层强化学习是一件真实的事情,对于解决可以分解为代理可以自主发现的有意义的子目标的问题非常有趣,但它似乎不适用于您的问题。
这给您留下了一个实际问题,即创建一个模型,该模型可以在两组完全不同的动作之间进行选择。选择对手动作只发生在游戏的第一个状态,两组动作完全不重叠。然而,就理论 MDP 模型而言,这根本不是问题。如何让 Q 函数逼近器适应两种截然不同的动作类型只是一个实际问题。有几种方法可以解决这个问题。这里有几个可能对你有用:
一个共享网络
总是预测各种动作选择,所以代理一直预测切换对手直到游戏结束。然后将操作选项过滤到仅在任何时间步可用的选项。什么时候t = 0仅将预测用于选择对手的动作,例如t≥1 _ _仅使用与游戏中的移动有关的预测。
两个独立的逼近器
在你的代理中有两个函数逼近器,用一个来预测奖励t = 0这涵盖了不同的对手选择,并在游戏的其余部分使用另一个。如果n很小并且对手之间没有概括(即没有对手“统计数据”可以为最终结果提供某种线索),那么对于第一个逼近器,您甚至可以使用 Q 表。
对于更新步骤,您需要知道是否在一个或其他 Q 函数中建模了任何特定的操作值 - 这自然会引导您引导
q^○(s0,一个0,θ0) ←r1+ γ最大限度一个'q^p(s1,一个',θ1)
在哪里q^○是你选择对手的行动价值的近似模型(和一个0必须是对手的选择)在游戏开始时,并且q^p是您用于其余部分的 nodel(和一个'必须是游戏中的位置游戏)。我滥用了←这里代表用于将动作值更新为新估计的任何过程 - 一种表格方法,它将是当前估计的滚动平均值,在神经网络中当然是使用反向传播的梯度下降。