【发布时间】:2018-03-04 08:35:20
【问题描述】:
我正在尝试为Buraco 纸牌游戏(2 人和 4 人)构建一个有效的 AI。
我想避免启发式方法:我不是游戏专家,在我以这种方式开发的最后几款游戏中,我通过这条路径获得了平庸的结果。
我知道montecarlo tree search algorithm,我将它用于跳棋游戏,结果离散,但我对最近其他机器学习选项的成功感到非常困惑。
例如,我在堆栈溢出中发现了 this answer,这真的让我很困惑,它说: “再说一遍:构建一个可以与自己对抗的机器人。一个常见的基础是函数 Q(S,a),它为任何游戏状态和玩家的可能动作分配一个值——这被称为 Q 学习。这函数通常被实现为神经网络……尽管我认为这里不需要那么复杂。”
我对机器学习非常陌生(这应该是强化学习,对吧?),我只知道一点 Q-learning,但这听起来是个好主意:我带着我的机器人,与自己对战,然后它从结果中学习……问题是我不知道如何开始! (无论这种方法好不好)。
你能帮我找到正确的方向吗? Q-learning 策略是否适合我的领域? Montecarlo 仍然是我的最佳选择吗? 它在像 Buraco(2 个对手和 1 个队友)这样的 4 人游戏中是否有效? 还有其他我忽略的方法吗?
PS:我的目标是为休闲应用开发一个有趣的 AI,我什至可以考虑让 AI 作弊的可能性,例如通过查看玩家的手牌或牌组。即使有了这个,嗯,许可我将无法建立一个好的启发式,我认为:/
谢谢大家的帮助!
【问题讨论】:
-
选择 MCTS。是的,强化学习很有趣,也很强大,但是:获得成功要困难得多。进行自我游戏时的自相关等问题真的很痛苦。此外:您通常需要将 RL 学习的函数逼近器与 MCTS 或 AlphaBeta 相结合才能具有竞争力(就像在 AlphaGo 中使用的那样)。这是很多工作,甚至可能会使用大量资源。例如,AlphaGo 是从历史游戏中引导出来的,纯粹的自我博弈学习是痛苦的。除此之外:围棋是一个具有完整信息的确定性游戏,而你的可能不是。如果是随机的 -> 痛苦。
-
@sascha:MCTS 是强化学习理论中的一个特殊变体,参见例如第 8.7 章。当前的Sutton and Barto draft。强化学习并不意味着自我发挥。
-
@davidhigh 是的,
MCTS ∈ RL。但这与我的评论并不冲突,尤其是在作者谈到不使用我在 RL 视图中考虑和提到的近似值函数之后,AlphaGo 也使用了。 -
@sascha:我的评论只是作为...评论:-)。你的很有价值,所以谢谢。
-
@Giggioz 你在这方面有什么进展吗?我也有兴趣做同样的事情,我想知道你能走多远。也许我们可以一起工作。
标签: machine-learning artificial-intelligence montecarlo