AiToolGo的标志

AI扑克机器人:算法如何学会虚张声势并获胜

深入讨论
技术性
 0
 0
 1
本文探讨了扑克AI的进展,详细介绍了不完整信息博弈中决策的复杂性。它讨论了AI代理面临的挑战、扑克AI的历史发展以及这些算法在各个领域的实际应用。此外,它还介绍了一个旨在利用机器学习开发扑克机器人的黑客马拉松。
  • 主要观点
  • 独特见解
  • 实际应用
  • 关键主题
  • 核心洞察
  • 学习成果
  • 主要观点

    • 1
      深入探讨了AI在扑克和不确定性决策中的应用。
    • 2
      提供了扑克AI发展的历史背景,展示了重要的里程碑。
    • 3
      阐述了扑克算法在现实世界应用中的实际意义。
  • 独特见解

    • 1
      多主体环境中决策的递归性质。
    • 2
      扑克AI策略在金融和营销领域的潜在应用。
  • 实际应用

    • 本文提供了关于扑克AI如何应用于现实世界决策场景的宝贵见解,使其与各领域从业者相关。
  • 关键主题

    • 1
      不完整信息博弈中的AI
    • 2
      扑克AI的发展
    • 3
      机器学习在决策中的应用
  • 核心洞察

    • 1
      对扑克AI挑战的全面分析。
    • 2
      深入了解扑克AI数十年的演变。
    • 3
      将扑克策略与现实世界应用联系起来。
  • 学习成果

    • 1
      理解不完整信息博弈中AI的复杂性。
    • 2
      了解扑克AI的历史发展及其里程碑。
    • 3
      探索扑克AI策略在各行业的实际应用。
示例
教程
代码示例
可视化内容
基础知识
高级内容
实用技巧
最佳实践

不完整信息博弈中的人工智能入门

世界上充满了多主体交互相关的任务。历史上,人类是这些多人情境下的主要参与者,但随着人工智能的发展,我们有机会将算法引入日常生活,作为平等的参与者和我们可以与之互动的代理。目前,类似的计算机代理正在解决许多任务:从自动电话系统这样简单无害的任务,到安全管理甚至自动驾驶交通管理这样关键的任务。这使得我们能够显著自动化许多日常流程,将决策权转移给算法,从而减轻人类的负担。与信息完全可用的同等规模博弈相比,具有不对称性和不完整信息的博弈在决策方面需要更复杂的方法。任何给定时间的最佳解决方案取决于对对手策略的了解,而对手的策略又取决于对我们隐藏且仅他们可获得的信息,而这些信息只能通过他们的过往行为来评估。然而,他们之前的行为也取决于对我们行动隐藏的信息以及我们的行动如何揭示这些信息。这个递归过程显示了构建有效决策算法的主要困难。

编程AI代理的挑战

代理是指在过程中做出决策的任何自主参与者,无论是人类还是计算机。在多主体环境中,代理之间会相互作用,并且并不总是了解其他代理的策略、目标和能力。代理在这种环境中最大化其结果的最佳行为取决于其他代理的行动。要在多主体环境中构建一个有效的代理,有必要适应其他代理的行为,模拟它们的策略并根据它们的行为进行学习。为了使代理能够实时适应,它们需要在实现其结果的同时选择最优行动。如果使用基于强化学习的方法,代理将为其行动积累奖励。代理还将平衡遵循其计划行为(利用)和实验性探索性行动(探索)之间的关系,试图学习关于其他玩家策略的有用信息。除了已经复杂的问题陈述之外,代理还将面临与在不完整信息的多主体环境中工作相关的其他限制。这些包括有限的观察、观察的随机性、观察信息的不足以及动态行为。

扑克AI:一个复杂环境

扑扑克是上述所有特性的一个复杂环境的典型例子。它涉及关于牌的不完整信息、参与玩家的策略、与发牌相关的机会因素以及游戏中遇到的其他困难。此外,描述游戏情况的可能游戏状态的数量是巨大的。扑克AI的发展历史跨越了30多年,其中最显著的成就在过去3年内发生。游戏的复杂性源于不完整信息、战略深度和随机性等因素,使其成为AI研究中具有挑战性但有价值的领域。

扑克AI发展中的关键里程碑

早期的扑克AI程序出现在20世纪80年代,但范式转变发生在21世纪初,转向专门针对扑克的建模方法。2015年,阿尔伯塔大学推出了Cepheus,它“解决了”限注一对一扑克。这是一个重要的里程碑,因为它是唯一一个具有不完整信息但拥有完整最优解的游戏。2017年,阿尔伯塔大学推出了DeepStack用于无限注一对一扑克,卡内基梅隆大学的Libratus击败了职业扑克玩家,展示了AI处理复杂策略游戏的能力。

扑克AI解决方案的实际应用

尽管扑克机器人看似在现实世界任务中的适用性有限,但它们的开发产生了许多可以从纸牌游戏中转移到实践中的方法。击败顶尖人类玩家的现代扑克机器人算法是通用的,并且通常旨在训练代理在信息不完整和不对称的环境中进行决策。它们可以转移到许多需要类似复杂环境中决策的应用中:从安全到营销,在营销中可以模拟受众竞价。在银行业,也有许多实际任务,先进扑克机器人的算法可以在其中找到应用。在Sberbank的这些业务任务中,值得主要注意的是风险回报管理以及在有许多其他银行对象的市场中的定价。但这些应用的列表可以轻松扩展到客户价值管理或下一最佳行动等任务。

Sberbank Holdem挑战赛:开发扑克AI

Sberbank Holdem挑战赛是一个旨在通过挑战参与者创建能够在不确定条件下做出最优决策并模拟扑克中其他玩家行为的AI代理来促进机器学习和AI发展的黑客马拉松。该挑战赛专注于最复杂的扑克变体——无限注德州扑克,并涉及开发能够在一系列回合中与其他AI机器人对战的代理。比赛包括一场在线资格赛和一场面向前100名决赛选手的线下黑客马拉松。

编程自己的扑克机器人

要创建扑克机器人,您需要一种编程语言、一个扑克游戏模拟器(如PyPokerEngine)以及机器人代码本身。一个简单的机器人可以用Python实现,它处理游戏事件并声明动作。游戏策略的开发不限于Python,也可以用任何其他编程语言完成。机器人通过标准输入/输出与模拟器交互,接收游戏事件并以动作响应。

分析游戏回放和策略

每场比赛结束后,参赛者都可以访问包含所有机器人游戏日志的存档。这使您可以通过观看对手在游戏中的行动来分析对手的策略。但是,请记住,其他参与者也可以分析您的机器人的游戏风格,并在下一场比赛中为您的机器人设置陷阱。游戏回放以JSON对象的形式记录,包含规则、座位和回合等字段。

准备和提交您的解决方案

运行机器人的环境是一个专门准备的docker镜像。打包在ZIP存档中的机器人代码必须发送到验证系统。存档必须包含一个metadata.json文件,指定docker镜像和入口点。可执行命令通过标准输入/输出与游戏模拟器进行交换。模拟器以event_type<\t>data的格式,每行向标准输入传输一个事件,其中data是一个包含事件参数的JSON对象。作为对declare_action事件的响应,机器人必须在规定时间内在标准输出中以action<\t>amount的格式回复一行。

 原始链接:https://habr.com/ru/companies/sberbank/articles/337264/

评论(0)

user's avatar

      相关工具