我如何构建玩 Whot! 纸牌游戏的 AI 模型

发布: (2025年12月22日 GMT+8 06:13)
10 min read
原文: Dev.to

Source: Dev.to

《How I built AI model that plays Whot! card game》封面图片

Ndubuisi Okorie

Problem Statement

任务是构建一个实用的 AI 模型,使其能够在人类水平上玩 Whot! 纸牌游戏。
Whot! 是技巧与运气的结合:技巧在于你是否懂得如何有效利用手中的牌,运气则在于你是否比对手更幸运地抽到更多有利的特殊牌。

Introduction

随着人工智能的不断进步,似乎几乎没有什么是 AI 不能影响的。
我们希望构建一个可以面向公众部署的 AI 模型,具备玩 Whot! 纸牌游戏的能力。这个愿景孕育了 Whot! AI

该项目也可用于揭开 AI 的神秘面纱。你可能认为 AI 是遥不可及、庞大的存在,但其实你可以自己构建 AI。如果你稍微学习一下统计学,那么机器学习(AI 的一个子集)就类似于使用已有数据集和你的统计知识来预测未来。例如,在某些条件下价格为 $1000,那么在新条件下价格会如何变化?

Whot! AI

全新的 Whot! AI 是一个能够玩 Whot! 纸牌游戏的模型。该模型采用一种称为 强化学习 (Reinforcement Learning, RL) 的机器学习方法进行训练。

  • 强化学习让 AI 代理接触环境,并通过直接与环境交互来学习。
  • 这是一种 无监督 的学习方式,不需要标记数据进行训练。

在典型的监督学习中,我们会收集带标签的数据(即我们知道数据的提问和答案)。例如,我们可能会问:

  • 这只动物体重是否很小?
  • 它有胡须吗?
  • 它有长尾巴吗?
  • 它的脸是圆形还是椭圆形?
  • 它的体重是多少千克?

通过回答这些问题,我们可以构建一个模型,将动物图像分类为狗或猫。当我们拥有足够的数据时,这种方法效果良好;否则,构建可信的 AI 模型就会非常困难。

对于像 Whot! 这样的规则驱动游戏,收集此类数据在实际操作中几乎不可能,使用传统监督学习来训练一个 100 % 正确遵守规则的 AI 也是不可行的。
如果叫牌是 Circle 7,而模型预测出 Star 7,则游戏规则被破坏。因此,监督学习并不适用于此类应用。

Source:

强化学习与 Whot! AI

这个障碍可以通过强化学习来突破!2016 年,AlphaGo 由 Google DeepMind 使用强化学习(RL)开发,击败了世界冠军李世石。强化学习不仅应用于游戏,还用于金融(例如欺诈检测)和机器人技术。

强化学习的一大美妙之处在于,我们不需要告诉智能体如何去做某件事;只需告诉它实现什么目标,它会自行学习如何实现。

工作原理

  1. 环境 – AI 智能体被放置在一个环境中(例如 Whot! 游戏)。
  2. 状态 – 环境的当前情况(例如当前的叫牌、抽牌堆的大小、你的手牌数量、对手的手牌数量)。
  3. 动作 – 在给定状态下“正确”或最合适的操作。

示例
如果叫牌是 Pick Two,且你手中有一张 Pick Two 卡,则有两种有效动作:

动作描述
1打出一张 Pick Two 卡进行防守。
2从抽牌堆抽两张牌。

这些动作会产生 状态价值状态-动作价值 函数。我们的目标是推导出一个策略,记作 π(Pi),它将给定的状态映射到一个动作。一旦拥有这样的策略,就可以构建一个能够玩 Whot! 的 AI。

最初,AI 可能不知道任何状态的正确动作,因此它可以随机采取合法动作。随着时间推移,它会停止随机行动,转而选择能够最大化奖励的动作。这个过程会构建一个 Q 表(可以把它想象成数据库表),智能体在需要行动时会查询该表。对于任意状态,它会查找奖励最高的动作。

当状态空间变得庞大且连续时,Q 表会失效,这时我们采用 Q 网络 方法,利用深度学习。Q 网络相比静态表能够更好地进行泛化。

奖励设计

核心思路是设计一个奖励函数,引导智能体的学习过程:

  • 正向奖励(例如 +1)——当智能体采取了好的动作时给予,例如在拥有 Pick Two 卡时防守 Pick Two。
  • 负向奖励(例如 ‑1)——当智能体采取了不好的动作时给予,例如本可以防守却抽了两张牌。

这些奖励就像反馈:“好孩子!你做得很好!”对应正向动作,而对负向动作则是温和的“不要”。

Whot! 的强化学习

代理在每一步后会收到 奖励(正向)或 惩罚(负向)。它的学习策略通过 Bellman 方程 进行更新。代理不断进行游戏,获取反馈,并改进其策略。此过程可以重复 10 000 个回合 或更多。

对于随机的 Whot! 游戏,模型训练了 50 000 个回合。在训练期间,代理学会:

  • 避免会产生负向奖励的动作。
  • 偏好会产生正向奖励的动作。

在训练回合结束后,代理应能够以最优方式与游戏环境交互。

示例:机器人强化学习

考虑训练机器人 跟随领舞者的舞步

  1. 人类舞者(领舞)执行一个动作(例如,举手)。
  2. 机器人最初随机做出一个动作。
  3. 如果机器人的动作 领舞者 不匹配,它会收到 负向奖励
  4. 如果机器人的动作 领舞者 匹配,它会收到 正向奖励

将此过程重复成千上万次,机器人即可学会正确的舞蹈动作。

传统基于规则的引擎与强化学习

要训练一个 AI 模型来玩 Whot!,我们需要一套游戏规则,这些规则来自 基于规则的引擎

  • 你目前正在玩的 Whot! 游戏本身就是一个基于规则的引擎:规则被显式编程,计算机严格遵循这些规则。
  • 我们在训练期间使用该引擎作为对手。RL 代理首先与基于规则的引擎对战,然后与自身对战,通过奖励函数不断积累经验。

训练结果(50 000 局):

结果胜利次数
首先出完所有牌28 315
通过计数获胜18 095
总计≈ 46 410(≈ 92 % 胜率)

AI 代理的表现超越了训练它的基于规则的引擎,表明它已经学习到了比手工构造的对手更深层的模式和策略。传统引擎是一个强大的对手——它会显式计算出在最长连胜中应出的最佳牌(例如 HoldOn、Suspension、General Market、PickTwo、Check up!)。能够超越这样的对手,说明该代理具备 泛化 超出工程化规则的能力。

下载并测试模型

您可以通过下载 Android 应用来尝试该模型:

Whot! AI on Google Play

该应用包含:

  • 传统的基于规则的引擎(经典电脑对手)。
  • 通过蓝牙、Wi‑Fi 和在线模式的多人游戏支持。

我们希望您以全新的方式享受 Whot!。请试玩、评分并撰写评论。谢谢!

开发者专用

  • Training notebook:

  • Card image‑recognition notebook:

Back to Blog

相关文章

阅读更多 »

使用强化学习 GitHub 包

引言 在机器学习中,强化学习(RL)是一种范式,问题的表述与算法本身同等重要。不同于监督学习…

OpenAI Gym

概述 OpenAI Gym 是一个用于通过试错教计算机的简单实验平台。你把任务放进去,程序尝试动作,从错误中学习,……