我想实现一种策略迭代的变体,它可以在每个状态中选择一个或多个动作。一个例子是在 Doom 游戏中治愈和移动。
参数化所有单个动作的幂集将是一个想法,但我想知道是否有人在类似的问题上取得了良好的结果,也许通过简单地在输出层上定义一些下限并采取所有值大于该界限的动作(即使用动作和激活值 {shoot=0.2, hea=0.51, move=0.6, jump=0.4} 如果边界为 0.5,我会选择 hea 和 move)
另一个想法是迭代地收集这些动作,即根据状态从 softmax 输出中选择一个动作(采取行动“治愈”)然后构建和使用一些临时状态评估该状态以找到另一个动作(例如“移动”)。这将需要一些仅用于表示该迭代过程结束的虚拟动作(即选择动作不会向集合中添加任何其他操作, 但它会导致这两个动作的执行并转换到下一个状态.