建模用于机器学习的纸牌游戏

时间:2016-04-01 21:44:08

标签: machine-learning neural-network classification deep-learning

我正在寻找一些帮助来模拟这个机器学习问题。

一只手由三行组成(分别包含3,5和5张牌)。你的目标是建立一个得分最高的牌。你会在街道上收到这些卡片,在第一条街道上收到五张卡片,在接下来的四条街道上收到三张卡片(你必须丢弃最后四条街道中的一张卡片)。放置卡片后,卡片无法移动。 More details on scoring

我的目标是建立一个系统,在给定一组街道的情况下,可以像我们最好的玩家一样玩牌。很明显,我需要为每条街道建立一个神经网络,使用基于现有手牌和街道上的一组牌的功能。我有足够的数据(街道,展示位置和最终得分),但我不知道如何对问题进行建模,因为可能的输出在卡片组中是唯一的(尽管少于第一条街3 ^ 5个位置,之后3 ^ 3个)。我之前只处理过固定类别的分类问题。

当您有独特的输出时,是否有人有类似问题的示例或建议如何准备训练数据?

1 个答案:

答案 0 :(得分:4)

一个模糊的问题给出了一个模糊的答案(这是我懒得编码的借口; - )。

你写道你有很多数据,似乎你想把游戏映射到通过监督学习获得的经验。但这不是游戏优化的工作方式。人们通常不会进行有监督的学习,而是强化学习。差异是微妙的,但强化学习(以马尔可夫决策过程作为其理论基础)提供了更多的本地视图 - 比如在特定状态下优化决策。有监督的学习相当于同时优化多项决策。

通常的监督学习方法的另一个显示阻碍是,即使你有很多数据,它几乎肯定会太少。并且它不会提供"所需的路径"。

至少自Thesauro的步步高玩家以来的常用方法是:设置游戏的基本规则,可能将人类知识作为启发式引入,然后让程序尽可能经常地对抗自己 - 这例如,google深度思维是如何建立一个高手的玩家。另请参阅this interesting video

在你的情况下,任务原则上应该不那么难,因为游戏状态相对较少,而且重要的是,任何涉及诈唬,一致游戏等心理学所涉及的问题都是完全缺席的。< / p>

再次:建立一个可以对抗自己的机器人。一个常见的基础是函数Q(S,a),它为任何游戏状态和玩家可能的行动赋值 - 这称为Q学习。而且这个函数通常被实现为一个神经网络...虽然我认为它不需要那么复杂。

我现在暂时保持模糊。但如果有必要,我很乐意为您提供进一步的帮助。