返回列表 发帖

从《有远神》一文 探讨围棋AI分析的研究规范(上)

本帖最后由 天马行空 于 2021-2-16 18:46 编辑

作者:崔灿CGF55258  2021-02-09


近日,一位名为“时年”的作者,在弈客上发表了一篇《惊:一度爆表AI的晚清一局棋,“有远神”有多神?》,以下简称《有远神》)的文章。该文使用开源围棋AI“KataGo”的古棋规则,分析了两位晚清围棋国手——周小松与陈子仙的一盘棋,并从中截取了与AI分析“吻合度极高”的中后盘片段,将其认定为“期间双方都发挥出了极高的水准”。另外,作者还发现这期间“复杂度一直居高不下,绵延80余手,其中最高达到50.9”,进一步说明了“在这么复杂的局面下,双方能取得这么高的第一选点吻合度,十分惊世骇俗”。并通过两个不同权重的“复杂度”对比,得出了“20B(256)的KataGo已经看不懂了,要40B-large(384,俗称40B胖权)才能看懂,两人的棋已经超越了AI”的结论。

像《有远神》一文这样,利用围棋AI分析数据评价棋手水平高低的尝试,如今时有出现。那么,这些研究的规范性如何?是否遵循统计学的相关标准?另外,还有一些更为根本的问题:围棋AI分析数据能否公正的鉴定棋手水平?棋谱数据与分析指标的选择,如何做到不偏不倚,令人信服?从去年十月开始,笔者已经积累了一些古谱以及当代大赛棋谱AI分析结果。下面结合这些数据,探讨一下围棋AI分析的研究方法。

(一)吻合度

AI吻合度,即棋局着法与AI推荐选择的吻合程度。如今被广泛用于棋局质量的评价,以及判定对局者是否“遛狗”的依据。本文中的“吻合度”数据,全部来自KataGo各种常用权重,版本1.50(KataGo分布式训练前最后一个版本)。为避免“先画靶再射箭”等数据操作的行为,软件及吻合度相关设置全部为默认值。

KataGo是当前最强大,功能最友好的开源围棋AI,支持各种路数的棋盘,以及现有的所有围棋规则。可以随时调节贴目,并在一定程度优势下,不会出现像AlphaGo那样无谓的目数退让行为。去年世界AI围棋大赛中,几乎所有“民间AI”都是KataGo的各种魔改版本。目前KataGo是除了绝艺与星阵之外,棋手训练提高必备的AI软件。

笔者使用分析平台程序Lizzle加载KataGo权重。可能一些棋友对围棋AI软件并不熟悉,下面以2014年第二届“百灵杯”世界围棋公开赛决赛第三局为例,介绍一下软件吻合度的判定方法。


柯洁VS邱峻(棋局片段)



棋谱数据为KataGo v1.50 20B权重,每步棋一百万(1000K)总计算量。本文所有的图谱分析数据,如无特别说明,均为这一标准。

之所以选择1000K的总计算量,是因为计算量不够高时,AI的计算结果以及胜率尚不稳定,可能与最终结果相去甚远。以《有远神》一文列出的周小松与陈子仙这盘棋,黑218时的局面为例:


不同计算量下的胜率与目差



随着计算量的增加,KataGo的胜率与目差不断波动,在1000K之后才逐渐稳定下来。根据表中数据可以看出,在计算量100K至200K这一阶段,KataGo觉得之前的判断过于乐观,胜率不断下调。但计算量到达300K至500K时,AI显然是发现了新的分支变化,胜率节节攀升,然而算到750K时,这一分支的结果又遭到了否定。

另外,上面还是个“下一手几乎必然”的案例。在更加开放的局面中,AI计算初期选点相对分散,《有远神》一文采用的每步棋20K计算量,就像是AI的“第一感”,仅能大致估计着法好坏。在布局与官子阶段尚能用来参考,差别不至于太大;对中盘复杂局面的评价,以及鉴定棋手水平,这点计算量的可靠性显然不足。

可能有人会质疑20B权重的水准,认为这是计算过程中胜率起伏不定的原因。实际上,笔者最初选用的是40B官权,但在分析当湖十局的过程中,发现该权重存在某些BUG,一些日常定式的研究也印证了这一点(下篇中会有详细讨论)。20B权重+1000K计算量,是综合考虑严谨性与效率后的结果。理想情况是每步10000K的计算量,对标AlphaGo教学工具(AlphaGo的每步棋一千万计算量,应该也是出于胜率稳定性的考虑吧),只是那样的话,这篇文章就不知何时才能动笔了。

1000K的计算量可以保证一局棋中,超过95%的时候计算(胜率)到达稳定状态。至于权重,刚才那个局面黑218的时候,就算是40B胖权,也是800K的计算量后才达到了稳定(胜率波动范围前后不超过1%),期间同样经历了与20B权重类似的胜率过山车。我们后面会看到,在吻合度这一指标上,权重不同所带来的差别,并没有那么重要。


柯洁VS邱峻 KataGo全局“鹰眼”数据



回到柯洁的那盘棋。KataGo吻合度的默认标准,是“AI推荐的前三选点,且计算量不低于最高值20%”。对计算量的要求,是为了避免出现偏离“唯一正解”太远却被纳入吻合;前三选点则是考虑到几个选点极度接近,或完全等价的局面,例如上图黑棋在哪里收气。

这种标准当然无法涵盖所有情况,比如黑棋第一步能不能踏入吻合,完全看AI的心情——最高计算量是否在棋盘的右上角。“AI评分”在一定程度上弥补了这一不足。


KataGo“AI评分”计算公式



AI评分公式的思路,是将所有计算过的选点,按照计算量的比例赋予相应的评价。与只看前三的吻合度相比,AI评分进一步降低了偶然性,应该说更为合理。但根据两百多盘已完成分析的古今棋谱数据观察,该指标与吻合度密切相关,两者的数值差在+1至-8之间浮动,平均-2左右。这种差异笔者目测在统计学意义上不显著。固然“AI评分”稍微科学一点,但继续使用知名度更高的“吻合度”也未尝不可。

那么,吻合度究竟能不能作为判定棋手水平的依据呢?

相信部分棋友原本就对刚才那盘棋有些印象。第一次登上世界大赛舞台的柯洁,第三局一上来就在大雪崩外拐定式中刀,局部下完已经可以“起立”了。从胜率曲线与目差来看,黑方后面确实没什么机会。然而这盘棋柯洁全局吻合度达到了67.4%(这个数值在1000K的计算量,并且棋局没有漫长官子阶段的情况下相当高,详见后文),比白棋还要高!这还是围棋进入AI时代之前的棋谱,没有如今的“布局红利”,一场完败的吻合度如此之高,甚至还高于对手,这是怎么回事呢?

在笔者使用AI分析棋谱的过程中,多次出现“棋输了但吻合度高于对手”的现象。不过在这种情况下,负者的平均胜率波动一定高于胜者,也就是说虽然“命中率”更高,但“脱靶”造成的后果更严重。由此可见,平均胜率波动可以成为棋力判定的“否决性”参考指标——低波动不一定下的好,有可能是一场完败,胜率没有什么下跌的空间;但胜率波动过高,则一定是水平有限,在棋局关键阶段的洞察能力不足。常见于业余低水平棋手的“胜率心电图”就是如此。


左:AI分段评分 右:柯洁中刀过程(16=▲)



至于为什么上来就大势已定的一盘棋,最终竟收获了如此之高的吻合度?通过与吻合度近似的“AI评分”不同阶段数据,可以看出一些端倪——尽管开局第一个定式就中刀,AI对黑棋布局的评价一点也不低。让我们重温一下柯洁的中刀过程:

在大雪崩外拐定式的这一型中,黑1本应在7位压(顺便一提,这个人类定式,黑1之前白棋胜率已经80%多了),实战“不识定式”的柯洁遭到了白6以下的组合拳,白棋先弃三子,最终将黑左边五子吃回,形成通天厚势,可以说棋局已然结束。

然而,图中黑方这十步棋除了黑1扳之外,其余九手全部踏入了AI吻合度区间!由于黑方中刀之后的变化“一本道”,反而让黑棋的吻合度大幅提升。另外,虽然AI对人类的大雪崩定式颇有微词,但整个定式过程存在大量必然的下法,同样提升了双方布局阶段吻合度。显然,这种吻合度对判定棋手水平毫无意义。

在“AI评古”相关的研究中,最常见的质疑就是上面这个现象——接触战中的“必然”下法会增加。像古棋那样普遍的全盘战斗风格,大量的必然下法会使吻合度偏高。不过笔者认为,“风格”是不能量化的。我们可以就棋盘上某个具体的局部,主观认定其吻合度并不体现水平,但某种棋风影响吻合度这一假说,无法用统计学的方法找到有效证据。

按照上面的逻辑,古棋支持者同样可以说由于局面复杂,吻合的难度会增加。况且古棋的战斗风格与当代大型定式相比,到底哪一边吻合度更“沾光”也难以定论;平稳风格的局面,中盘也不可能没有棋子接触,“必然性”就一定不高?这种无法用数据来证实的事情,根本不可能探讨出结果。作为一个用数据说话,追求严谨性与可靠性的研究,存而不论是最好的办法。

刚刚从火箭转投篮网的NBA球星哈登,是过去三个赛季常规赛的“得分王”。然而大量球迷对此并不感冒,认为他的场均高分与其“碰瓷”打法(投篮时主动寻找手臂接触,造犯规获得罚球)密不可分,这是在钻篮球规则的空子,不能体现真正的得分能力。很显然,我们不可能客观的判定每一次造犯规是否属于“碰瓷”,从而计算出哈登“真正”的得分能力。“吻合度受到对局风格影响”的说法,与上面这件事情有相似之处。从学术角度探讨问题,“观感”的说服力必然有限。

吻合度的另一个问题,是目前这一代围棋AI在复杂局面或多手数的直线计算中,有时会出现盲点或误算。此时的“吻合”自然失去了作用。


上个月春兰杯八强赛的一盘棋中,就出现了这样的案例。正如胡耀宇文中所说,无论是KataGo各种权重,还是绝艺和星阵的精解分析,都没能发现黑棋一路点的正确时机。倘若实战黑149真的下出了这一妙手,反而会导致“吻合”减1。在前面柯洁中刀的那一图中,AI同样没算出白12退(左边第48手)的好手。尽管这步棋之后,白棋的胜率与目差双双上升,也无法改变“不吻合”的结果。

好在如今围棋AI的综合水平远超人类,这样的局面极其有限。在一盘棋上百手的“大样本”中,一两个错误的AI判断,基本不影响全局的吻合数值。如果统计的棋局总数足够多,这个问题更是可以忽略不计。

对吻合度的怀疑,还有“AI认为的最佳选点,对人类棋手来说不一定是最好的,我们更应该选择自己能够理解、掌控的下法”。这种观点固然有一定道理,但在逻辑上直接否定了“AI分析能够判定棋手水平”这一前提,继续讨论下去也是鸡同鸭讲。至少在今天,绝大多数棋手还是认可“吻合度”与招法好坏的相关性。然而,该指标在如今的应用中,普遍存在标准不一的问题。


当湖十局不同计算量下的吻合度



暂且不论不同围棋AI的吻合度能否直接对比,哪怕是在同一AI且权重相同的情况下,不同计算量下的吻合度也存在明显区别。通过上表可以看出,吻合度与计算量的高低,总体呈反比关系。可能的原因是在高计算量下,不同选点之间的计算差值被放大,在一些局面中,与一选存在“真正差异”的第二、三选点,难以实现“计算量不低于最高值20%”。简而言之就是计算量的增加,减少了一些“不当”选点蒙混过关的机会。低计算量下一盘70%吻合度的棋,在高计算量下可能只有50%多,这两个数字给人的感觉天壤之别!


当湖十局不同权重的吻合度



与计算量相比,权重是否一致反而没有那么重要。几个常用的官方权重在相同的计算量下,虽然每盘棋的吻合度都略有差别,但总体数值一看就没有显著差异。谨慎起见,笔者还是做了个检验,结果也没有丝毫意外。


不同权重数据的方差分析



综上所述,将“吻合度”作为判定棋手水平的指标,尽管有着这样那样的缺点,在样本选择合理的情况下还是可以接受的。前提是每步棋的计算量不能过低,对吻合度进行比较时,应保证权重与计算量的一致性。至于数据是使用哪一个权重得出的,并没有那么重要。哪怕真的“没看懂”个别招法,在大样本中也会被掩盖。作为一项严谨的研究而言,抛开计算量空谈吻合度就是耍流氓。在使用吻合度进行对比与论证观点时更是如此。

(本文共分三篇。中篇将详细解析《有远神》一文中的观点与变化图,下篇会谈谈“复杂度”以及围棋AI分析的样本选择问题)
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

返回列表