探索Alpha-Go —— AI是如何在围棋项目上打败人类的

简介: AlphaGo科普。

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud

作者介绍:irek Stanek
Azimo移动开发部门负责人,人工智能专家。自称梦想很大却在写代码,更多开发博客见http://frogermcs.github.io/

AI工程师的一项必须技能就是理解并能解释领域内的高度技术性的论文。我在AI Nanodegree课程中的一个课题就是分析《自然》杂志上关于AlphaGo的一篇文章——《Google Deepmind system which for the first time in history beat elite professional Go player, winning by 5 games to 0 with European Go champion — Fan Hui》。这篇文章的目的是为了使得这些知识更通俗易懂,尤其是对初学者和首次接触的人。

AlphaGo和数学

AlphaGo是谷歌DeepMind小组研发的针对围棋的AI。而在AlphaGo 出现之前,有预测称根据现有的最新技术,能击败人类职业围棋选手的AI还要十年才会出现。

为什么围棋比国际象棋简单,但是却引起了这么多的关注?
是因为复杂性。
围棋和国际象棋都是完美信息的游戏,每个玩家完全知道以前发生过的所有事件,因此游戏存在最优解。如果使用搜索树的方法寻找最优解,国际象棋存在10¹²³种解,而围棋存在10³⁶⁰种解(译者注:可以简单理解为围棋棋盘比较大因此解多)。而一般的多核处理器每秒钟可以做10⁹次运算,意味着如果要算尽围棋的解需要花费的时间比宇宙存在的时间还要长。

AlphaGo和其他AI游戏程序的最高级别目标是有效减少搜索空间,在合理的时间(AlphaGo的每次运动时间为5s)内,尽可能快的结束游戏。
为了估计每个游戏状态的价值,AlphaGo使用蒙特卡罗树搜索(MCTS)——通过基于搜索空间的随机抽样扩展搜索树——来分析最优的动作。 MCTS在游戏中基于许多playouts来运作,这些playouts是在随机落子的游戏中生成的;每个playout的结果都倍用来衡量游戏树中不同节点的权重,这样在未来的playouts中,好的节点更有可能被选中。通过附加策略增强的MCTS(例如预测人类专家动作)使我们有可能实现strong-amateur级别游戏。

下一步会基于预先训练好的深度卷积网络。这种技术现在广泛用于图像分类、人脸识别或玩Atari游戏。旁注:人们可以从Facebook的Intro to AI movies开始了解深度学习或卷积网络的工作原理。

AlphaGo使用神经网络的目标是:有效位置评估(价值网络)和行动抽样(策略网络)。

策略网络

为了训练策略网络,机器学习有两个阶段。
第一阶段是监督学习(SL)(它扩展了MCTS解决方案,用于预测人类职业棋手的行动)。 SL策略网络已经根据KGS Go Server的3000万个案例进行了训练。经过训练的网络能够准确预测专家行动,准确率高达57%(其他研究团队最高为44.4%)。
然而虽然新的准确性提高了,但评估速度明显较慢。因此有了另一个被称为快速推出(FR)的策略。它不太准确(27%),但更快(2μs至3ms),被用于在评估MCTS中的节点时运行rollouts一直到游戏结束。
第二阶段是增强学习(RL)。SL擅长预测下一个最有可能的行动,而RL能够预测最能够获胜的行动。在这个阶段,AlphaGo通过随机选择迭代之前的自己进行了120万场游戏。
相比RL,SL能够赢得超过80%的游戏;而与Pachi相比,这个数值高达85%(Pachi是一个基于蒙特卡洛树搜索启发式的开源程序,在KGS业余爱好者中排第二)。而之前的基于SL的解决方案在对阵Pachi时,只能够赢得约11%的游戏。

价值网络

训练的最后阶段主要集中在位置评估(position evaluation)(估计当前行动的获胜概率)。对KGS数据集的训练会导致过拟合,为了防止这种情况,新的训练集是由自动播放数据产生的(3000万个不同的位置,每个都是从不同的游戏种抽取的) 。
训练价值函数比使用rollout策略的蒙特卡洛算法更准确,其单次评估准确率与使用强化学习策略的蒙特卡罗算法类似(但计算量减少了15000倍)。

策略和价值网络搜索

AlphaGo在蒙特卡罗搜索树中使用策略和价值网络的组合。游戏树的搜索由下面4个阶段组成:
0_Pjlrc5hXdM02o6qx

  1. 选择 - 模拟通过选择具有最大动作值Q(这个移动有多好)的edge来遍历树。
  2. 扩展 - 如果任何节点被扩展,则由SL策略网络处理一次,以获得每个行动的先验概率。
  3. 评估 - 每个节点通过价值网络和FR策略进行评估。
  4. 备份 - 动作值Q由评估步骤收集的值进行更新。当游戏代理的时间结束时,通过最高动作值Q选择最佳移动。

结果

AlphaGo的表现是众所周知的。在2015年,它击败人类职业棋手樊麾,欧洲多个联赛的冠军。这是机器第一次在围棋中击败了职业棋手。在与其它最好的围棋程序(如Crazy Stone, Pachi, Zen等)进行的比赛模拟中,AlphaGo获胜率高达99.8%。 AlphaGo的分布式版本对单机版本的胜率为77%,意味着它不仅表现强劲,而且还具有很好的可扩展性。在与樊麾的比赛中,AlphaGo花费的步数要比当年深蓝大战Kasparov少了1000倍,意味着落子更加智能。

这些所有结论清楚地表明,多亏了AlphaGo,我们在寻找General AI and the Singularity的路上又近了一步。
数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

本文由北邮@爱可可-爱生活老师推荐,阿里云云栖社区组织翻译。
文章原标题《Understanding AlphaGo How AI beat us in Go-game of profound complexity》,作者:Mirek Stanek,译者:杨辉,审阅:段志成-海棠,张勇。
文章为简译,更为详细的内容,请查看原文

相关文章
|
2月前
|
人工智能 IDE Java
沉浸式演示:在新老项目中如何快速上手通义灵码 AI 程序员
沉浸式演示:在新老项目中如何快速上手通义灵码 AI 程序员
|
3月前
|
人工智能 移动开发 JavaScript
如何用uniapp打包桌面客户端exe包,vue或者uni项目如何打包桌面客户端之electron开发-优雅草央千澈以开源蜻蜓AI工具为例子演示完整教程-开源代码附上
如何用uniapp打包桌面客户端exe包,vue或者uni项目如何打包桌面客户端之electron开发-优雅草央千澈以开源蜻蜓AI工具为例子演示完整教程-开源代码附上
427 18
|
3月前
|
人工智能 算法 计算机视觉
【01】opencv项目实践第一步opencv是什么-opencv项目实践-opencv完整入门以及项目实践介绍-opencv以土壤和水滴分离的项目实践-人工智能AI项目优雅草卓伊凡
【01】opencv项目实践第一步opencv是什么-opencv项目实践-opencv完整入门以及项目实践介绍-opencv以土壤和水滴分离的项目实践-人工智能AI项目优雅草卓伊凡
180 63
【01】opencv项目实践第一步opencv是什么-opencv项目实践-opencv完整入门以及项目实践介绍-opencv以土壤和水滴分离的项目实践-人工智能AI项目优雅草卓伊凡
|
29天前
|
人工智能 小程序 NoSQL
【一步步开发AI运动小程序】二十一、如何将AI运动项目配置持久化到后端?
本文介绍基于云智「Ai运动识别引擎」的运动配置持久化方案,旨在优化小程序或Uni APP中AI运动识别能力。通过将运动检测参数(如`Key`、`Name`、`TickMode`、`rules`或`samples`)持久化到后端,可避免因频繁调整运动参数而重新发布应用,提升用户体验。持久化数据结构支持规则和姿态样本存储,适用于关系数据库、文件或文档数据库(如MongoDB)。此外,云智还提供运动自动适配工具及「AI乐运动」产品,助力快速实现AI体育、全民健身等场景。
|
1月前
|
人工智能 自然语言处理 安全
Anus:公开整活!完全用 Manus 复刻 Manus 功能的开源 AI 智能体项目
Anus 是一个开源 AI 智能体项目,复刻了 Manus 的部分功能,支持自然语言指令执行、多代理协作、多模态输入处理等功能,旨在为开发者提供强大且灵活的工具。
381 1
Anus:公开整活!完全用 Manus 复刻 Manus 功能的开源 AI 智能体项目
|
2月前
|
人工智能 自然语言处理 测试技术
Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
Potpie.ai 是一个基于 AI 技术的开源平台,能够为代码库创建定制化的工程代理,自动化代码分析、测试和开发任务。
264 19
Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
|
2月前
|
人工智能 资源调度 自然语言处理
钉钉项目 Teambition AI 能力重塑项目管理100种可能!
钉钉项目Teambition AI迎来重磅升级,通义千问与DeepSeek两大模型助力AI项目管理。从项目规划、任务创建到执行建议、字段管理,再到周报总结和数据分析,Teambition AI贯穿项目全流程,重塑项目管理100种可能。AI技术赋能项目管理智能化,提升团队协作效率,确保项目进度精准把控,让任务分配、资源调度和风险管理更加轻松高效。
钉钉项目 Teambition AI 能力重塑项目管理100种可能!
|
1月前
|
人工智能 Java API
ai-api-union项目,适配各AI厂商api
本项目旨在实现兼容各大模型厂商API的流式对话和同步对话接口,现已支持智谱、豆包、通义、通义版DeepSeek。项目地址:[https://gitee.com/alpbeta/ai-api-union](https://gitee.com/alpbeta/ai-api-union)。通过`ChatController`类暴露两个接口,入参为`ChatRequest`,包含会话ID、大模型标识符和聊天消息列表。流式对话返回`Flux<String>`,同步调用返回`String`
121 2
|
3月前
|
人工智能 数据处理 语音技术
Pipecat实战:5步快速构建语音与AI整合项目,创建你的第一个多模态语音 AI 助手
Pipecat 是一个开源的 Python 框架,专注于构建语音和多模态对话代理,支持与多种 AI 服务集成,提供实时处理能力,适用于语音助手、企业服务等场景。
229 23
Pipecat实战:5步快速构建语音与AI整合项目,创建你的第一个多模态语音 AI 助手
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
MMAudio:开源 AI 音频合成项目,根据视频或文本生成同步的音频
MMAudio 是一个基于多模态联合训练的高质量 AI 音频合成项目,能够根据视频内容或文本描述生成同步的音频。该项目适用于影视制作、游戏开发、虚拟现实等多种场景,提升用户体验。
302 7
MMAudio:开源 AI 音频合成项目,根据视频或文本生成同步的音频

热门文章

最新文章

下一篇
oss创建bucket