代码之家  ›  专栏  ›  技术社区  ›  kz28

如何设计对某一州唯一合法行为的奖励

  •  1
  • kz28  · 技术社区  · 7 年前

    我正在做一个RL项目,但有一点被卡住了:任务是连续的(非偶发的)。根据萨顿的建议 RL book ,我使用的是平均报酬的价值函数近似方法(差别回报而不是折扣回报)。对于某些状态(由某些特性表示),只有一个动作是合法的。我不知道如何为这种行为设计奖励。在上一步分配奖励可以吗?或者分配平均报酬(取目前为止收集到的所有报酬的平均值)有没有人能告诉我决定唯一法律行动报酬的最佳方法?非常感谢。

    更新: 为了提供更多细节,我添加了一个简化示例: 让我用一个简化的例子来解释这一点:状态空间由一个大小固定的作业队列和一个服务器组成。队列状态由作业的持续时间表示,服务器状态由完成当前运行的作业所剩的时间表示。当队列未满且服务器空闲时,代理可以将作业调度到服务器以执行,并查看状态转换(将下一个作业放入队列),或者代理可以将下一个作业放入队列。但当作业队列已满且服务器仍在运行作业时,代理只能执行阻塞操作并见证状态转移(完成运行作业的剩余时间减少了一个单位时间)。阻塞操作是代理在该状态下可以执行的唯一操作。

    1 回复  |  直到 7 年前
        1
  •  2
  •   maxy    7 年前

    设计奖励是问题设置的一部分。你想鼓励代理进入唯一动作是阻塞的状态吗?还是应该避免这种状态?

    如果不知道优化目标,就不会有正确的答案。与代理人有多少法律诉讼无关。它也不必与值函数做任何事情。如果您通过随机搜索或直接在策略空间中使用遗传算法来训练代理,那么决策同样重要。

    另一个问题是如何处理学习过程中的无效行为。如果“阻塞”操作只能在没有其他决定的状态下执行,那么可以重新设计环境,使其自动跳过这些状态。它必须累积“无决策”状态的所有奖励,并将其作为上一个真实决策的组合奖励,并向代理提供下一个真实决策。如果你使用折扣奖励,你必须考虑到折扣因素,为了不修改代理优化的成本函数。