AI为师甚幸

近日在论坛上看到一个帖子,是关于围棋AI如何帮助低段孩子提高棋力的。其中提到有老师说什么业余4段以下不要使用AI辅助。后面有几个跟帖附和的。
这类帖子看到的已经不是少数了,感觉很滑稽可笑。虽说一个网友说的老师怕挣不到学费有玩笑的成分,但老师这种观点实在不配为师。
按他们的说法,也就是说如果当年的聂卫平、马晓春,今日的柯洁、朴廷桓前来指导,让孩子们远点,别跟他们学,水平太高了,找找市里省里业余高手指导就行了。
且不说从古到今多少棋手学艺,离乡背井投奔棋门道场。就算是做学问,程门立雪也是传诵至今的。
如果老师都这样,那久保松胜喜代何必将自己两个得意弟子木谷实、桥本宇太郎从偏远关西送到围棋中心东京深造。
还有一个,又在推荐群里就不消停的天顶,理由竟是那是纯人谱程序,比较好理解。
这更好笑,没有leelazero、katago等zero类AI也就罢了,而现在其已经成主流的情况下,落后的就是落后,虽然可用。
学习围棋孩子本来就是要提高的,他理解的未必是他成长需要的,甚至是阻碍其成长,从不解到理解才是提升。
同样举个例子,这就像吴清源小时候,打什么日本人出版的《围棋新报》的棋谱,学学顾水如师傅的棋,最多打打胡铁头的棋谱就行了。
对围棋而言,或者说人类的围棋而言,这是最坏的时代,也是最好的时代。

古谱风格大混战

前些日子,随着天气转暖,AI对战之时,A机箱会不时传来显卡风扇全速转动发出的声音。本以为是Nvidia显卡驱动更新后,AI最新权重占用加重了显卡负荷的缘故,所以减少了AI对局数,并将playouts调回5000。

后来发现是机器整体温度过高,导致显卡风扇强制全速转动散热,将机箱侧板打开后,机器又恢复正常了。

虽是陋室,但5000playouts对AI犬来说还是低了点,尤其是leelazero不少对局开局50余手就出现误算,只能例行坚持到91手才认输。看着katago100%的胜率,只得在91手前强制结束对局。

于是重新将playouts调至10000,虽然这点playouts值对AI犬来说,还是属于超快棋,但误算肯定少了血多,仅从胜率图就能看到平缓的多了。

调整完playouts第二局,二AI犬就来了一场古谱风格的扭杀。

开局本来挺平稳的,没有芈刀,右下角黑棋小飞挂后点三三,熟悉的六超时代的定式。但从45手开始,katago两次脱先,好脾气的leelazero也忍不住选择闷杀下面黑棋。

在leelazero的步步紧逼下,katago的胜率逐渐下滑,开始临近三成的危险线。但在sabaki观战时,katago认为100手是缓手,于是选择围攻白棋,从逃跑变混战。

对局中107手是leelazero没有算到的一手,此手之后,胜率虽然没有出现双降,但之后整体胜率开始下降。而katago转攻中间白子,自认胜率开始反转。

以往印象中不善攻击的leelazero此时却变得强硬,做活左边后,继续围剿中腹黑子,胜率再次扭转,但150手飞二AI犬出现分歧,katago认为这是攻击中胜率最差的一手。

sabaki实战中,katago151手吃掉下方白棋后,自认为无论胜率还是目差,都已经领先。

到了193手时,katago已经是胜券在握。

升级sabaki0.50后最大的优点,就是可以在AI犬计算的时候,通过点击热图点,查看变化图。而这个变化图跟我计算的一模一样,67%的胜率,占到两个大官子,已经足以沾沾自喜了。但对AI犬而言,只是一个参考而已。

在整理补充《寄青霞馆弈选》棋谱的时候,已经习惯于古谱的执着扭杀缠斗,以致于此后再看六超时代棋谱的时候,总有一种“怎么还不动手”的感觉。其实,一旦进入激战局势,无论是座子还是还棋头,都已经不再重要,甚至是无关紧要,比拼的就是计算力。

而这时,就有了AI犬的用武之地。

连读二本半书

这两天在伟东无所事事,下棋也难以静心,只能看书。
因为前几天调试围棋AI,遇到了三劫循环问题,所以就把书架上陈祖源的《围棋规则新论》和《围棋规则演变史》拿出来,算是仔细看了一遍。
看完之后头更疼了。
围棋毕竟是小众,研究的人也少,而因为研究的人少了,就缺乏争论的基础。所以无论是应昌期还是陈祖源,难免都有些自说自话的感觉。大半本书论述的循环劫,无非就是“全局禁止同形”。这样人明白,机器也明白。
而连篇累牍半天,无非是想证明自是而他非,争个正宗,以规则一统棋坛。而这规则前面,本应加上竞赛二字,只不过故意模糊而已。
而这规则,在翻看的第三本书《名人》中,让作者川端康成认为是对围棋的人为戕害。
此时看川端康成的书,却有种莫名的不适感,于是看了一半而放弃了。

未成的三劫循环

今天用最新的20B权重katago权重与270权重的leelazero对局,在终局出现了疑似三劫循环局面。

当执白的katago落下268手后,leelazero直接认输。

对局结束后,使用lizzie调用leelazero引擎,发现266手下方的提劫并不在leelazero的计算范围之内。

而cfg文件中rules = chinese的katago,则认为应该在266下方提劫,那样将会形成三劫循环。

由于leelazero中没有设定规则的地方,是不是其放弃三劫循环认输有规则设定的问题。

无谱的缺憾:行云流水的劫争

在中日围棋擂台赛初期的一次电视转播中,当时年富力强的王汝南八段在挂盘讲解的时候,就一个劫进行了围棋技术普及,大意是:打劫不一定是非要打赢的,围绕这个劫在寻劫过程中获取足够的利益就可以了。

当时虽然开始痴迷围棋,但还是理解不了。后来虽然围棋欣赏水平有所增长,但对打劫依然停留在寻求刺激的层面上。

但那天晚上katago与leelazero的对局,给了我一次彻底地实战指导。这也是我这几天一直寻求找回这局棋谱的原因。

棋谱最终还是遗失了。而我的水平还达不到复盘的水平,只能先暂且记录一下吧,好在以后这样的对局还是会层出不穷的。

那盘棋执黑的katago开局不出所料中了芈刀,出现类似的局面,只不过左下角是二间守角。这个方向上的守角,katago自认胜率还不至于低到三成。

之后leelazero打入下方,黑棋直接从厚势方先点出头白棋,后夹下方白棋破眼攻击。而269权重的leelazero似乎没有前两个权重那样强硬,没有正面反击而选择向中腹出头。katago则利用左侧攻击顺势进入白棋左上角,并自认胜率持平,但leelazero认为形势不错,保持在7成。

左上角后来形成了一个黑棋的紧气劫,开劫之前,katago先将芈刀弱侧右侧两个孤子联络,然后开劫。这时候双方胜率突然一致起来,katago胜率升至七成。

之后的劫争中,katago并不急着打赢左上角的劫,而是通过芈刀形成的厚势继续有条不紊地缠绕攻击打入的白棋,胜率逐渐上升,最后左上角劫争已经不再重要,在将纵贯大半个棋盘的白棋大龙包围后,leelazero中盘认输。

如果是上次观看katago通过两个缓气劫逆转是刺激,那这局棋就是精彩。

飞扬围棋里面是分为涨棋党和书脊党,现在看AI群里面,也是分为涨棋帮和遛狗帮。我没有涨棋的奢望,也不图遛狗的场面。能通过AI找寻一些对围棋乐趣,足矣。

katago大爆发

昨天出去一趟,今天不知为何心情莫名糟糕,或者说更加糟糕了。
好在今天katago推出了期待已久的新版本1.3.3。同时推出的还有30b、40b新权重,这样就完全可以可以与leelazero的40b权重对等了。
调试了一下,感觉katago的开发者已经不再玩票,已经准备往大里做了。
调试的时候,顺手把几张sabaki的截图发到群里了。结果很多人都开始询问为何我的截图里面有胜率,有热图。他们基本都在使用一个以lizzie为基础的某个知名的整合包,sabaki也是使用很久之前的版本。
到了后来,管理员都有些心灰意冷,认为用sabaki就可以加载,并且有变化图,已经很完美了,整合包的意义不大了。
这一来弄得我也有些尴尬,不好在发言了。看来,在任何圈子里面,不论大小,总是存在信息不对称的问题。

顽强!katago缓气劫逆转leela zero265

在测试完katgo1.3.2的openCl版本后,调高MaxVisits值到16000后与leela zero对弈数局,均败北,其中一局居然出现了官子混乱的情况。恰好今天leela推出了新的265权重,这个权重对上一个264的胜率高达61.25%。于是下载了最新权重,首先与katago的opencl版本对弈,结果轻松获胜。    

于是katago1.3.1版本登场作战,MaxVisits调整到12000,.执白开局依然中刀。

但苦苦坚持,前100手居然能保持均势,已属不易。

黑棋leelazero逐渐掌控局势,胜率一路走高,而双方的胜率判决难得保持一致。

落后的katago168手没有将右上角中刀的白棋连回,胜率有所上升。182开始杀气,双方的胜率判断出现分歧。

leelazero寻劫231、233点入右下角,katago234手终于打赢了这个缓气劫,杀掉右边黑棋。但黑棋235手立下后,白棋的胜率却跌至最低点。katago236手断开黑棋,打劫,做困兽犹斗。

几个回合之后,白棋258手强硬粘劫,选择与黑棋对杀。从264手开始打第二个缓气劫。胜率虽然有所提升,但也仅仅维持在十位数而已。但296手落下后,胜率陡然上升,胜负就此逆转。

不甘心的leelazero又坚持数手后认输。

内行看门道,外行看热闹。katago的顽强,让我看的真是惊心动魄。

过瘾啊!

逆转再逆转

昨天是LG杯决赛第一局,因为忙着伺候开学第一天的儿子,加上是韩国棋手内战,开始并没有怎么关注,下午闲下来看的时候,已经进入后半盘读秒阶段。
现在看围棋转播,首先看AI形势分析,也就是概率。一般只要是AI认为胜率超过九成,除非出现leelazero那样的低级错误,肯定不会输出去的,尤其进入官子阶段。
但人类棋手就不一样了。从开局胜率不足一成,到逆转到九成的朴廷桓还是被翻盘逆转了,这应该也是还半决赛逆转的债吧。
感觉自己观棋的水平还是有长进的,实在看不懂的那手棋,就是朴廷桓的昏招败招。
而AI在判断这手之后申真谞下一手的时候,也很滑稽,胜率是先维持低位,然后过了一会缓过劲,胜率的的直方图极速变换,同时曲线垂直拉升。
对AI而言,这样的急剧变换,一般代表算法错误。而胜率一旦减低,也就意味着出现了误算,形势不妙。
好在AI没有感情,即便出现误算,也不会影响后面的着法,这样的棋,反而少了不少乐趣。

leelazero另一低级误算

在katago发布了新的版本1.3.1及新权重后,面对leelazero的260、261版本的权重实现了一波六连胜,这波势头随着leelazero的新262权重的推出才遏制住,然后随后实现对katago的反超。

相对于katago的程序版本与权重同步更新,leelazero更侧重的是权重的更新,有时间频繁的一日一更,今天,新的权重263已经推出,相对于前一个版本的权重胜率高达55.19%。

leelazero是由一位比利时程序员起头开发的。开发者的围棋水平未知,但应该没有专业棋手的加入,同时其开发不使用人类棋谱与累积的围棋知识,仅根据围棋规则,使用单一类神经网络从自我对弈中学习。

这应该也可以解释leelazero在征子方面的弱智表现。即便网上所说计算量的原因,但不考虑征子的特殊棋形,单作为简单死活,也不应该出现这样的低级错误。

另一方面在官子阶段,leelazero和其他围棋ai一样,是很少犯错的,但有些情况下犯的错和征子一样低级,这应该和leelazero的算法应该有关系。

这是katago官子逆转的一局。说是逆转,是因为通过sabaki对弈的时候,leelazero的自认胜率一直很高,但即便以我的水平,也能看出自从282手开始的单官劫黑棋是无法打赢的,但leelazero的持续高胜率让我开始怀疑自己的水平和katago算法。直到328手后,leelazero的胜率才低于50%,但也一直持续在30%左右,也就是说还没有到认输的份上。

棋谱是到了346手,后面leelazero还在不停地填子,并在katago多次pass后才认输。

显然,问题不是出在官子计算上,而是在死活计算上。出现这个问题,leelazero一是对左下角的双活计算不清,再者就是忽略了328手后如果不应而粘劫有双活的手段。

这个计算量应该是不大的。出现这种低级误算应该是leelazero重计算积累而轻算法效率的一个表现吧。

leelazero征子水平似乎有提升

进入2020年,久未更新的katago发布了新的版本1.30和权重文件。新权重还未没来得及全面测试,三天后就又推出了新版本1.31及新权重。
春节前连续出差归来休整,安装好win64的gpu编译好的版本,文件名中已经明确对应cuda版本为10.1,这样看来前段时间在linux先提前升级cuda到10.2是有些超前了。
1.31同配置下速度快了不少。在gtx1660 6G+ e3-1230 v3+8G配置下,katago的默认配置文件中maxVisits从原先1.2的6000逐步提高到10000,速度未变,已经可以和lz默认配置一战。三局中两次屠龙。
随后1月25日再次释放新权重,这个权重提升很大,将对局时间调整为一分钟一步后,同硬件配置下原先处于下风的katago连胜leelazero6局,其中leelazero最新261权重两局。
其中第六局leelazero再次出现征子问题。但这次leelazero还不是那么太丢人,这个征子还是有点技术含量。