我的问题是如何确定拒绝卡和赢得一轮的奖励。有任何想法吗?正面还是负面?
在强化学习中,您必须设置奖励,以便在代理达到问题的目标时最大化它们。您应该避免尝试通过为可能帮助其实现这些目标的事情设置临时奖励来“帮助”代理。
对于卡拒绝,如果这是游戏的一部分(即打出“错误”卡是有效的,并且您输掉了轮到您的回合),那么没有奖励或负数可能就足够了。可能你不应该得到任何奖励,因为惩罚就是无论如何都没有赢得那轮比赛。
如果一张无效牌实际上不能按照游戏规则打出,并且没有“通过”动作或等价物,那么你不应该让代理人选择它。在进行动作选择时,只需将动作从考虑中删除。代理/环境以硬编码的方式强制执行此操作是可以的:如果您的代理输出一组离散的动作概率或偏好,一种常见的方法是通过环境的一组允许的动作过滤该集合,并重整化。
如果您希望代理了解正确的卡片选择怎么办?一旦你决定了,它就会成为一个学习目标,你可以使用奖励计划。动作不再是“打牌”,而是“提议打牌”。如果提案有效,则该轮比赛的状态更改和奖励将正常处理。如果提案无效,那么状态不会改变,代理应该会收到一些负奖励。这种方法需要注意两点:
为了赢得一轮,您 可能希望根据其累积的游戏分数奖励代理。假设整个游戏的获胜者是得分最高的玩家,这应该是可以的。
然而,有一点需要注意:如果代理通过某些比赛让其他玩家得分更高,那么仅仅计算代理获得多少分并不足以使其具有竞争力。相反,您需要非常简单的稀疏奖励:例如,+1 表示获胜,0 表示平局,-1 表示失败。首先使用 RL 方法的主要优点是算法可以而且应该能够弄清楚如何使用这些稀疏信息并将其转化为最优策略。例如,这完全是 AlphaGo Zero 的工作原理——它绝对没有帮助评估临时位置,它只会根据输赢获得奖励。
如果您以+1 获胜,-1 失去奖励,那么您可能会将玩家当前的分数作为状态观察的一部分。如果存在风险/赌博因素,即得分落后的玩家可能愿意在最后一回合冒一切风险,只是为了获得整体获胜的小机会,这可能有助于决策。