Katago

疫情期间闲在家里没有多少事情,就和以前的棋友老爷爷下了几盘棋。为了提高棋艺,总结得失,复盘总是少不了的,但是自己一个人水平有限,摆来摆去也得不出个结论,突然想到现在电脑AI这么厉害,拿来分析复盘应该有帮助。上网找了找,发现有一个叫做 Katago 的开源软件很流行,我就跑去下载了一份,折腾了两天,终于在Google Comupte Engine 上建了一个虚拟机,把软件跑起来了。机器配置如下: 8 CPU 30 GB Memory NVidia Tesla V100 操作系统是 Ubuntu 18,安装过程参考的基本文档如下: Create an compute engine instance with GPU: https://cloud.google.com/compute/docs/gpus (Only N1 series machines support GPU) Install Nvidia driver and Cuda toolkit: https://cloud.google.com/compute/docs/gpus/install-drivers-gpu#ubuntu-driver-steps Install cudnn (Notice that the version of cudnn should be compatible with Cuda toolkit) Install Katago (Notice […]

利用电脑摆棋

最近看电视上的围棋解说,说现在职业棋手都是用电脑研究棋局了。下棋的时候哪一手下的不好,局后用电脑一复盘就一清二楚了,自己不由得很向往,这不是相当于请了一个围棋老师在家里吗?! 自己前一段时间把开源的围棋软件 PhonixGo 下载回来,和这个软件下过几盘,完全下不过(详情)。不过当时自己只是和电脑下棋,并没有想过要用电脑辅助研究棋局。有了这个思路以后,我就把自己前一阶段和老爷子下的一盘棋拿出来,当时对于左下角能不能吃掉黑棋有很多疑惑,实战时候没有吃掉,但是总觉得有一些机会,现在用电脑一摆,互换黑白试了一会儿,因为白棋自身的缺陷,电脑给出的结论是黑棋甚至可以先手活,不由得叹服! 电脑围棋,开创了围棋的新时代呀。

周末围棋 – 2018-10-06

今日一局大败。对于业余棋手来说,死活题永远是胜负的精髓。左上角简单的杀棋没有走出来,这样的水平输了也没有什么可遗憾的。 28 打吃可能还是直接提为好,如果黑棋拐出,白棋先手,而且以后可以掏角。实战虽然厚实,却是后手。 44可能还是拆小一路较好,遭到黑棋打入以后,黑角的毛病全部补干净了。 72拐不可理解,当然应该在73位跳。为什么当时总是觉得拐下棋型厚实呢?这个地方真是盲点。看来输棋使人清醒。 101打入很厉害,看来自己确实对于打入的严厉程度总是估计不足。 127飞是好棋,对方下出这步,输了也不冤呐。 最后左上角死活题棋感失灵,净杀的棋走成双活,让人汗颜。

周末围棋 – 2018-09-22

这盘棋有很多可以反思之处: 自己觉得打入下边活出是大成功,但是后来其实并没有领先多少,反而略有落后,不知道问题在哪里。看来围棋确实是博大精深,失败了都不明白原因在哪里呀。 中腹头绪很多的时候怎么下最好,完全没有思路,最后结果也不理想。没有打入左上角也许是个大失误。 官子下的好的话,10目的差距很容易追回来,这盘棋左上角一个大伸腿,右上角一个手筋靠入,下边一个做劫收官,直接就逆转了胜负。 顺便值得一提的是,最近下棋的心态渐渐平和,最主要的就是老爷子下棋有明显漏招的时候,我会主动提议要不悔上一步接着再下。以前可是肯定做不到这一点的。不论是否因为胜券在握而显得大度,在保持心境平和方面肯定是前进了一步。

AlphaGo到底强在什么地方呢?

作为一个围棋爱好者,AlphaGo带来的冲击确实是怎么估量也不过分的。从2015年起熬夜看完了最初的AlphaGo版本4:1战胜李世石,到后来AlphaGo Master 60连胜横扫职业棋手,乌镇围棋峰会展现无敌风采(3:0胜柯杰,战胜世界冠军联队),再到后面不需要人类知识的AlphaGo Zero再碾压AlphaGo Master,我从震惊,侥幸一直到最后的绝望与麻木,AlphgGo带来的冲击一直陪伴着我。 以我的观点看来,人类智力的几个主要特点包括模式识别,抽象思考,自然语言处理,逻辑推理等等。尤其是头几项,一直是人类智力大大领先与电脑的地方。电脑的计算速度和记忆能力虽然早已远胜于人类,但是这几项,最少在我还在学校的时候,电脑还处于非常幼稚的状态。 人工神经网络的强势崛起改变了一切。通过大规模的训练数据,将规律(也就是模式)压缩并用网络参数来表示,已经在监督学习(Supervised Learning) 中完美的展现了出来。今天的网络检索、个性化推荐、语音识别等等,都是这个类型。可是强化学习(Reinforcement Learning) 又向前大大的迈进了一步,在很大程度上摆脱了对于训练数据的依赖。这个进步在 AlphaGo 上革命性的体现了出来。一旦机器可以自己创造训练样本自己学习,那么在这样的海量数据中提取的规律,将迅速完胜人类通过有限的经验总结出的规律。正像常昊在《来自未来的对局》中所说的:“人只有四个方向的感觉,而这个机器多了一个中腹,有五个方向。问题就在于人类棋手一生最多也就下过几千盘棋,其中勇于探索中腹的又很少,而计算机没有任何先入为主的偏见,又不为胜负所约束,对于中腹的训练和相应培养的感觉远胜人类。” 通常来说,训练数据不足的时候,通过将模型复杂化获得的收益也不大。人类发明出了厚味、实地,定式、轻灵、先捞后洗等等一系列复杂概念,用于在未知局面下指导自己的行棋;而这一切已经证明远远不敌纯粹通过海量数据训练将规律压缩于人工神经网络参数的电脑。虽然我还不了解现在的电脑是怎样在局部对杀中进行计算的,但是我估计如果有足够好的局面评估函数,局部的穷举对于当代的电脑来讲,计算量并不大,不是很早就有电脑可以解封闭局面下的死活题了吗? 总结一下,在模型能够正确表示所需要的问题的前提下,通过海量数据训练出的简单模型,必然胜于少量数据训练出来的复杂模型。这就是笔者的结论。

假日围棋

最近一段时间圣诞节加新年休假在家,和老爷子又下了好几盘围棋。总的感觉是我渐渐从心理上已经占据了上风,下棋的时候感觉一般都很好,计算精准,运子灵活。虽然还是互有输赢,但是很多时候已经确有获胜的把握。比起前一阵子,尽力折腾仍然输掉的感觉,自然是好了很多。 只是围棋实在是非常消耗脑力的一项游戏,每次下完棋回到家都觉得有些头晕恶心,后背发紧,有时候回家看看李世石的自战解说,觉得围棋对于人脑来说实在是太难了,变化庞杂,一路之差就有天翻地覆的效果,职业棋手的一局棋谱下来,变化纷纷杂杂数千个都有了,实在是耗尽心力,这样的游戏在古时候大家主要都是体力工作者的时候,也许是个好东西,但是现在大家主要都是脑力工作者了,恐怕价值实在不大。 以后下棋的时间恐怕是越来越少了,体育锻炼、读书、做家务等等才是花费时间的正道。

又和老爷子下了两盘棋

第一盘棋虽然取胜,但是下得不好,总是靠局部发力来取得一些便宜,难道我的大局观真的不行? 另外,接近终局的时候次序有些记不清楚了。 第二盘棋扩张大模样以后攻击不力,局势有些落后。不过由于当天时间太晚,棋没有下完,后面还很漫长。只不过我对于自己的官子也没有任何信心。 值得一提的是,下完棋以后回到家,不知道为什么突然头晕恶心的很久,我想大概是因为用脑过度的原因,上午XX,工作,家长会,下棋,一天下来体力和脑力都透支了。以后下棋还是尽量排在上午比较好。

假期围棋

这周休假,张老爷子又邀请我下围棋,终究技痒难耐,欣然应约。 双方一共下了三局,第一局我输掉的过程和以前几乎一模一样,开局的棋走的太薄,被老爷子的攻势完全压制,不久就被吃掉一块,最终完败。剩下的两局终于有了一些长进,能拆三的地方老老实实拆二,孤棋多花一手出头走畅而不是贪抢实地,结果老爷子的棋很快就露出了破绽,被我抓住。第二局开局就吃掉对方一条大龙,第三局中央一步飞枷,吃掉棋筋,两局均胜。特别是第三局,发挥的水平已经接近我顶尖时候(2014年打上弈城四段)的状态,颇为得意。 第一局 开局走的太薄,只注意掏空,左上角被围攻后并吃掉之后,棋基本上就不行了。这个过程和8月20日那一局基本类似,只不过那次侥幸取胜,结果这次还是没有吸取教训。 第二局 这局棋实际下了两天,第一天走厚上方,结果对方急于打入,全部被吃掉。因为时间关系,下到112手时封盘。晚上花了点时间摆了摆中央和下方的变化,第二天果然用上,下方大龙轻松逃脱,中央防线屹立不倒。最终有惊无险的取胜。 第三局 这局棋开局注意走畅孤棋,很快对方在上方露出破绽,被我打穿大空。左边突围的时候又下出手筋,吃掉对方棋筋。后来虽然下的有些不简明,但是黑方一直没有什么像样的机会。 感悟与总结 培锋说的很对,长周末有空下一下棋是可以的,平时也就算了。培锋还提到老爷子在家的地位肯定没有我在家的地位高,到我们家培锋总是又倒茶又拿水果,在老爷子家一切之后我们自己动手。女人这种地方总是很敏锐。 每次下棋老爷子都主动提出要拿黑棋,难道他还是觉得我的棋下的比他好?我自己现在都没有这种心理优势了。不过黑棋确实有利于他发挥攻击力,这一点毋庸置疑。 托尔斯泰说他没有办法戒掉赌博,我也没有办法戒掉围棋吗?不过按照我2014年的经历,一旦能够克制自己,有规律的下棋,实际上也不是一件太坏的事。平时练习要能够立刻放下(做题,看视频),实际对局输了也能收手。能做到这一点就好了。 我的棋局部计算还成,但是有时太贪,棋走得太薄,跟老爷子下,这个棋风是大忌。克服这一点以后,获胜的把握就大了很多。其他类型的对手我还没有怎么遇到过,反正现在是不会随便到网上去下棋了。