本文内容
为什么围棋比国际象棋难得多
1997 年深蓝击败卡斯帕罗夫时,很多人以为围棋会很快跟进。结果又过了近二十年。
难点主要有两个:
一、搜索空间大得离谱。国际象棋每一步大约有 35 种合理走法,围棋在 19×19 的棋盘上有 250 种上下。棋局长度也更长。两者相乘,围棋的可能局面数量远远超出穷举的范围。
二、局面难以评估。这才是真正的障碍。国际象棋可以数子力——车值 5 分、马值 3 分,加加减减就能得到一个不错的估值。围棋没有这种东西:一颗棋子的价值完全取决于周围的配置,同一个形状在不同的全局下可能是好棋也可能是废棋。「厚薄」「味道」这些概念,人类棋手靠直觉判断,却很难写成规则。
所以早期的围棋程序,无论怎么优化搜索,都卡在业余低段的水平上——它算得再深,也不知道算出来的局面到底谁好。
第一次突破:蒙特卡洛树搜索
2006 年前后,蒙特卡洛树搜索(MCTS)被引入围棋程序,带来了第一次质变。
它的思路绕开了「如何评估局面」这个难题:既然写不出好的评估函数,那就随机把棋下完——从当前局面开始,双方随机落子直到终局,然后数谁赢。重复成千上万次,某一手的获胜比例越高,就认为它越好。
这个方法用统计代替了判断,让程序水平跃升到业余高段。但它也有明显的天花板:随机模拟毕竟粗糙,遇到需要精确计算的局面(复杂死活、大规模对杀)经常出错。此后几年,围棋程序在业余高段附近停滞,普遍认为距离职业水平还有很长的路。
AlphaGo:神经网络加入战局
2016 年 3 月,AlphaGo 以 4:1 击败李世石,成为围棋史的分水岭。此前它已在 2015 年战胜过职业棋手樊麾。
AlphaGo 的核心思路,是用深度神经网络补上 MCTS 缺失的那块判断力:
- 策略网络负责「这个局面下值得考虑哪几手」,大幅收窄搜索范围;
- 价值网络负责「这个局面谁优」,替代粗糙的随机模拟。
换句话说,神经网络提供了人类那种「一眼看上去这里比较好」的直觉,MCTS 提供了精确的验算——两者结合,恰好补上了各自的短板。
2017 年,升级版 AlphaGo Master 在乌镇击败当时世界第一的柯洁。至此,人机之间的胜负问题基本终结。
从 AlphaGo Zero 到 AlphaZero:抛掉人类棋谱
初代 AlphaGo 的训练用到了大量人类棋谱作为起点。2017 年的 AlphaGo Zero 做了一件更激进的事:完全不用人类棋谱,只给规则,从随机下棋开始自我对弈。
结果它不仅达到了更高的水平,还更快。这个结果的意义超出了围棋本身——它说明在规则明确的领域,人类经验非但不是必需,有时反而是限制(它会把程序引向人类既有的思路,包括那些没被检验过的偏见)。
随后的 AlphaZero 把同一套方法推广到国际象棋和将棋,同样取得压倒性结果。
也正是「不继承人类经验」这一点,让 AI 推翻了一批流传已久的围棋常识——详见《AI 改变了围棋的哪些常识》。
开源浪潮:能力扩散到每个人手上
AlphaGo 系列并未公开发布可用的程序。真正让普通棋手用上顶级 AI 的,是随后的开源项目:
| 项目 | 特点 |
|---|---|
| Leela Zero | 按 AlphaGo Zero 论文复现的开源项目,靠全球志愿者贡献算力做分布式训练。它证明了社区协作可以复现顶级成果 |
| ELF OpenGo | Facebook(现 Meta)开源的实现,公开了训练好的模型,进一步降低了门槛 |
| KataGo | 目前最广泛使用的开源围棋引擎,在训练效率和实用功能上做了大量改进 |
KataGo 做对了什么
KataGo 由 David Wu(lightvector)发起。它没有停留在「复现 AlphaZero」,而是针对实际使用做了几项关键改进:
- 训练效率大幅提升。通过一系列技术改进,用远少于前人的算力达到同等甚至更强的水平——这直接决定了一个开源项目能不能持续迭代。
- 能预测目数,不只是胜率。AlphaZero 系列只优化「赢」,导致大优时会下出亏很多目的「无所谓」的棋。KataGo 额外训练了目数预测,这对复盘分析极其重要:只有胜率的话,优势局面下的失误几乎看不出来(原理见《看懂 AI 复盘》)。
- 支持不同规则、贴目和让子。中国规则、日本规则、各种贴目、让子局都能正确处理——对实际教学和训练来说,这是能不能用的问题。
- 提供人类风格模型。可以模仿特定水平的人类下法,而不只是「变弱的 AI」。这让它能当陪练,而不只是当裁判(区别见《用 AI 陪练怎么才能真的涨棋》)。
这些改进合起来,把围棋 AI 从「一个能赢棋的程序」变成了「一个能用来教棋的工具」。
今天普通人能用到什么
现在的局面是:一台普通的家用电脑,跑着的引擎棋力已经远超任何人类棋手。这在十年前是不可想象的。
剩下的问题从「有没有」变成了「好不好用」:
- 引擎本身是命令行程序,需要自己下载、配置、挂图形界面(步骤见《KataGo 怎么安装配置》);
- 它输出的是胜率、目数、候选点——数据是客观的,但要看懂需要一定基础;
- 它能告诉你「这手亏了 6 目」,但不会告诉你「为什么」。
这也是这几年围棋软件的主要发展方向:不再是比拼棋力(都已经足够强了),而是比拼怎么把这份能力交付到普通棋手手上——降低配置门槛,把数据翻译成人能理解的语言。
顶级引擎,装完就能用
知弈把引擎和模型全部预置在安装包里,下载安装完直接开始下棋——不用选后端、下模型、写配置。免费不限量对弈,AI 用人话讲解每一手。Windows / macOS。
下载知弈围棋 →