飞扬围棋

 找回密码
 注册
搜索
查看: 8984|回复: 3
打印 上一主题 下一主题

转载 对自我训练型AI下让子棋的一些策略

[复制链接]
跳转到指定楼层
1#
发表于 2019-2-12 07:07 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
主题:对自我训练型AI下让子棋的一些策略
楼主|Utenanthy|2019-02-11 22:22:40|只看此ID
很早就在版上提出过这个策略问题,但是感觉版上缺少兴趣,也就懒得再多说了。意冷之际,版上KKAA22DXAI发了多封信件,多次表示很有兴趣,作为回应,我还是说一说吧。

首先说一下,目前我测试过的只有Leela Zero,也就是换过几个权重,我个人没条件测试其他那些知名的AI,但既然是策略,就包含了一定的指导思想,不是简单的套路,那么对其他AI也应该有一定的效果。目前最主要的问题是只有我一个人感觉有效,所以这个策略到底是不是真的有效,还得有比较多的人实际测试之后才能判断。

策略考虑到的问题:
1,AI的强项是计算力,人类无法和AI比计算,遇到拼计算,人类必然吃亏。
2,AI一个显著特点就是抢实地很厉害,这一点早先樊麾就强调过很多次,经常是你觉得自己也没走什么坏棋,但是一数目,发现实地差了很多。一旦AI实地领先,人类就毫无办法了,因为计算力上的差距,人类即便拥有外势,也难以发挥,围空效率很低。

策略的指导思想:
1,限制AI计算力特长的发挥。人类尽量减少棋盘上可能出现的变化数量,缩小棋盘,减少AI那些全局关联型手段的施展空间。
如何减少变化呢?
一个是减少棋盘空旷,让棋盘空间变小,棋盘小了,就不利于AI发挥计算力的特长。
一个是选择避战而简明的走法,效率低一些,但是避开复杂纷争。
让子棋人类一开始就有很大的优势,所以有条件使用效率低的走法。

另外具体总结了几点:
A、能定型的及早定型,不做任何保留。
B、不轻易脱先,不抢先手,安分跟着走,除非是那种AI抢了一步价值很大的棋,把先手让给你。
C、不走大模样,及早限制AI起大模样的可能性。
D、甘心选择吃亏的走法,换取变化更少,换取及早定型。

以往的棋理要求保留变化,要求争先,要求行棋“务张其势”,要求子效,我这ABCD四点,全都与以往棋理相悖,但确是对付强AI让子棋的要点。

2,重视目数而非胜率。
自从有了AI胜率,人类棋手就过于看重这个,比如之前那帖子有说背AI棋谱的,还有学AI定式的,目的就是追求高效,追求不吃亏,至少开局前几十手不吃亏,这个想法看上去很好,但我认为这是欲速则不达,拔苗助长。
你开局丝毫不吃亏,意味着什么?意味着子效极高,意味着棋撑得很满,绷得很紧。
开局阶段看似二分,但是接下来呢?人类棋手的计算力完全不能与AI抗衡,你撑得越满,绷得越紧,也就越是类似于走独木桥,甚至走钢丝,要求一步不能错。但是没有强大的计算力做支撑,你那些子效极高的棋,接下来就会面临各种考验,要么你走的对,不吃亏,要么走错就吃大亏。但你是人类,你不可能走对,很快就会漏洞百出。

AI那个胜率,是基于“后面也是AI来下”才有的那个胜率,对人类来说并不可靠,结果就是你开局前几十手看似更接近胜利,实则远离最终胜利。
我选择开局阶段吃亏,走的很松,但是却换来了之后棋局变化很少,限制了AI发挥计算力的空间,也为自己争取了更宽裕的活动空间,后面可以调整吃亏的幅度,吃小亏换取避免吃大亏,不断让出一些优势,但是换取最终的胜利。
你学AI,模仿AI,拿现在一句时髦的话说,“你把路走窄了”,我退一步海阔天空,把路走宽了。

策略的具体实施:
开局尽量占据空旷处,比如边星位,本身没有目数,但是可以呼应角星位,减小棋盘各处的价值,可以有效把棋盘变小,让AI可施展的空间变小。

星位会被AI点三三,AI抢得实地,若人类顺其自然而取外势,虽然道理上是二分,但是人类经营外势太困难了,看似二分,实则对人类不利。
点三三也有一些定式可以让实地二分,但是外围会变得比较薄,借用很多,与全盘关联起来,有利于AI发挥计算力的优势,对人类不利。
基本上只有连扳的定式是可以取回角部实地的,这个连扳取回角地的定式本身是吃亏的定式,但是考虑到让子棋的优势,可以吃这个亏,换来两个好处:
一是确保了实地,实地占优。人类不去经营外势,让AI去经营外面。
二是局部彻底定型了,后续的变化很少。就一块棋,没有断点,不会被攻击。定型就意味着棋盘变小。
连扳定式,原本的弱点是白棋先手提一朵花,很厚,边上发展潜力很大,这一点后面会说到。

图1右下角点三三,脱先占据边星位,之后AI任意方向爬三路,黑棋就走在四路,若AI飞在二路,黑棋还是走在四路,若AI跳在三路,黑棋就飞在五路。这个角部实地拱手让给AI,但是换取了接下来全局的主动。
右上左下两个点三三,连扳取角地,AI虽然提了两朵花,但是正因为有右下角那个局部比较损的定型,限制了这两朵花在各自边上的发展潜力。
为什么右下第一个点三三时不连扳取角呢?就是因为那个时候棋盘空旷,AI先手提一子,在边上可以有很大发展空间,就可能选择挂角,而不是点三三。
待右下角定型之后,边星位也被黑棋占据,再连扳取角,让AI先手提一子,发展空间也很小了。
同时也正是因为边上的价值变小了,所以AI选择点星位的三三,而不是选择小飞挂角。
连续这几个定型之后,棋盘可发展的空间就变小了,人类也没有弱棋,实地也不少,这样就极大限制了AI的发挥,进入有利于人类控制的局面。


这套策略运用辩证法,欲取先予,欲扬先抑。以前华以刚讲棋喜欢用拳击作比喻,讲“想要打人,先把自己的拳头缩回来”。你害怕对手,不想对手靠近自己,于是伸直了胳膊乱抡,表面上是尽量让对手远离自己,实际上存在大量破绽漏洞,对手抓住你的破绽,就可不断近身打击你。所以你要把胳膊缩回来,主动缩小防御半径,表面上看,对手距离你更近了,但是你防御范围小了,破绽漏洞也就少了,对手反而不好出手。
这种缩回拳头蓄势待发,如果对手是人类棋手,人家稍微试探试探,发觉你根本没有力量,蓄势待发只是装样子,其实是蓄势不发,无力可发,人家就会施展各种欺招骗招,且得寸进尺。
但是AI不同,AI默认你这个对手的计算力和它是相同的,它默认过分的欺招走法必然会遭到反击,它会吃亏,所以它看你蓄势待发就不会进逼了。
这个对AI的策略能够有效,就依赖于AI不会使用欺招骗招,即便你退让,AI也不会过分,不会故意欺负你,不会刻意的逼你去战斗,你退让一些,AI也不会得寸进尺,这样一来,你虽然吃亏退让,但是AI的步伐也小,占的便宜也很有限,你吃的亏也就有限,让子棋的优势让你亏得起,能够支持你亏到终局。

目前我个人只能赢让3子,让2子就赢不了了,感觉主要还是我个人的水平比较低,计算力差,为了让局面足够简明,保持在可控范围内,不得不让出更多的利益,导致让2子的优势不足以支持我退让到终局。而如果我不退让那么多,安全边际不留那么多,就无法将局面保持在我的计算力能够控制的范围内,一旦超出可控范围,战斗起来就不是AI的对手了。
我觉得如果是职业高手,有更强的计算力,就可以用吃亏更小的走法换取局面的简化,有了更强的计算力,安全边际的要求也会更低,让2子的优势有可能就足够职业高手保持到终局了。

这套策略,包含了一些通用的辩证法和战略战术思想的运用,也是发现并利用了AI的一些特点,或者说是AI下让子棋的一些缺陷。
这套策略,我自己感觉对AI是很有效的,但也可能是个人主观感觉的一种纸上谈兵,KKAA22DXAI还有其他版友有兴趣可以按这个策略自己去测试一下,验证一下。
--
修改:Utenanthy FROM 221.196.41.*
FROM 221.196.41.*
单击此查看原图
单击此查看原图
单击此查看原图
1楼|zxf|2019-02-11 22:32:08|只看此ID
很不错,尤其是不要盲目追求胜率,说的很好。虽然已经有很多人提到这一点,
但是AI出现后,这仍然是一个长期的人类误区。

经常看直播就有明显体会,有的90%胜率分分钟翻盘,有的70%胜率纹丝不动,可见
相同的胜率对人类而言可以天差地别。AI胜率的前提是你能走出正解,起码达到AI的
水平,否则有时胜率不过是镜中花水中月。
回复

使用道具 举报

2#
发表于 2019-2-12 14:58 | 只看该作者
楼主说的很有道理,学AI不如先学会了解自己!
回复 支持 反对

使用道具 举报

3#
发表于 2019-2-12 20:55 | 只看该作者
柯洁对alphago的第一局半目胜负,就是想少变化,还是输了!
AI会智能的跟你跬步下棋,拼官子!
回复 支持 反对

使用道具 举报

4#
发表于 2019-2-12 23:49 | 只看该作者
很好的心得,学习了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|飞扬围棋网 ( 苏ICP备11029047号-1 )

GMT+8, 2024-11-23 09:16 , Processed in 0.128482 second(s), 18 queries .

since 2003飞扬围棋论坛 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表