我正在为openai健身房做一个纸牌游戏,目前我问自己如何塑造它的奖励功能。游戏的第一轮由每个玩家从手中挑选一张牌组成,而不是每一张牌都取决于其中一位玩家以前玩过的牌。对于每一组扑克牌,都有一个总顺序,这样,拥有最高牌的玩家就能赢得这一轮。
在卡被拒绝的情况下,我想给代理人一些奖励。
在无效卡的情况下,很难判断该卡是否比任何其他有效卡更接近有效卡。此外,代理应该知道,这张卡是不可玩的,在这一点。
为了完整起见,代理获取它能够记住的游戏的所有内容的离散观察(它自己的牌,在当前回合中玩的牌,过去几轮中玩的牌,游戏模式(定义牌的总顺序))。然后,它应该玩一个离散的动作,这要么是一种游戏模式的开始,或一张牌在回合中。然后,它要么因为它的卡被拒绝而得到奖励,要么根据它是否赢得这一轮而得到奖励。根据这一轮中扑克牌的星座,该游戏在一轮比赛中占了一定数量的点数。
我的问题是如何形成对拒绝牌和赢得一轮比赛的奖励。有什么想法吗?积极还是消极?
如果需要更多的细节,只需问他们。
发布于 2018-03-09 10:35:38
我的问题是如何形成对拒绝牌和赢得一轮比赛的奖励。有什么想法吗?积极还是消极?
在强化学习中,你必须设置奖励,这样当行为者达到问题的目标时,奖励就会最大化。你应该避免试图“帮助”代理人,为可能帮助它实现这些目标的事情设置临时奖励。
对于拒绝牌,如果这是游戏的一部分(即,它是有效的玩一张“错误”的牌,而你输了你的回合),那么要么没有奖励,要么一个消极的可能就足够了。也许你应该不带报酬地去,因为不管怎么说,不赢那一轮都会受到惩罚。
如果一张无效的牌实际上不能按照游戏规则进行,并且没有“传球”移动或等效,那么您不应该允许代理选择它。在进行操作选择时,只需将操作从考虑范围内移除。代理/环境可以以硬编码的方式强制执行此操作:如果您的代理输出一组离散的操作概率或首选项,则通常的方法是过滤环境允许的操作集所设置的操作,并进行重命名。
如果你想让代理人了解正确的卡片选择怎么办?一旦你决定了,那么它就成为一个学习的目标,你可以使用奖励计划。这个动作不再是“玩一张牌”,而变成“提议一张牌去玩”。如果建议有效,则该回合的状态更改和奖励将按正常方式处理。如果建议无效,那么国家就不会改变,代理人应该得到一些负面的奖励。关于这种方法,有两点需要注意:
如果你赢了一轮比赛,你可能会想要根据他累积的比赛成绩来奖励他。假设整个比赛的胜利者是得分最高的球员,这应该是可以的。
然而,有一个警告:如果通过一定的游戏,代理人打开其他球员的得分更高,那么简单地计算多少积分,不足以使它具有竞争力。相反,你想要非常简单的稀疏奖励:例如,赢得比赛+1,平局0,输球1。首先,使用RL方法的主要优点是算法能够并且应该能够找到如何使用这种稀疏信息并将其转化为最优策略。例如,这就是AlphaGo Zero的工作原理--它对评估临时头寸毫无帮助,它只会因得失而得到回报。
如果你与+1赢,-1失去奖励,那么你可能会使球员目前的分数成为状态观察的一部分。这可能有助于决策,如果有风险/赌博的因素,在得分落后的球员可能愿意冒险的一切,在最后一轮,只是一个小机会赢得整体。
https://datascience.stackexchange.com/questions/28858
复制相似问题