五子棋吧 关注:53,009贴子:694,848

搞了这么长时间五子棋katago,想水一个帖子谈谈感想

只看楼主收藏回复

搞了这么长时间五子棋katago,想水一个帖子谈谈感想


来自Android客户端1楼2020-06-10 01:30回复
    最主要的感想是:以前的五子棋软件的水平是屎,五子棋人类最强水平可能还没有围棋业六的水平高。我瞎猜一下:黑石可能是业三,弈心业四,胚胎业四业五,现在的katagomo是业六或者低段职业
    不过棋谱的水平还算比较高的,前面说的是纯软
    别给我说什么先手必胜,稍微有水平的人都知道下五子棋必须用交换规则
    我是1月开始试图把围棋katago改成五子棋的,工作量不大,难度也不大,把围棋规则改成五子棋规则就完事了。(我不是程序员,就是个普通大学生而已,编程水平有限。)有关神经网络算法的部分我一下都没动(也不用动)。1月23找见了个大bug,之后就没有大毛病了,训练开始正常进行。
    我拿我家里的2*RTX2060跑训练(alphago的算力至少是我的1万倍,围棋katago的算力是我的100倍),后来也租过4卡2080ti(大概是我家里机子的4倍)。
    然后,惊奇的事情发生了。训练一天之后,我和embryo(又叫胚胎,是那时候的最强软件)下了几盘,竟然吊打了(当然,我没有蠢到用必胜开局测试,我全是用的平衡开局)。后来找茶馆群的人测试,发现我的测试没啥问题,无谱状态下的确吊打(可惜的是,至今还是经常被棋谱坑死,棋谱还是厉害)。这个时候(1月25)是4卡2080ti训练一天半。围棋ai训练这么长时间顶多业四。
    现在最强版本是4卡2080ti训练两个星期的版本。同样的训练量,围棋大概是业六到职业低段(katago围棋,6b结束的时候差不多就是这么多算力,最后一个6b可能比zen7强一点)。但是五子棋已经拉下embryo一大截子了。
    一些棋力对比测试结果:有禁版本大概100po一步(po是计算量单位,可以认为是节点数)能和embryo 10秒一步(i7 8700k,2000多元的cpu,因为embryo公开版只能单线程,所以占用率只有1/10)五五开(找了几百个平衡开局用来测试)。一个RTX2060显卡一秒能跑5000po左右,也就是说,就算考虑多线程胚胎,同价位硬件,katagomo给1/50的时间也能五五开(katagomo也要cpu的,考虑到这个,保守一点就是1/25)。除此以外还有一些测试表明(统计学上还不是特别显著,不到50盘),步时同时倍增,katagomo和embryo的差距会更大(100po和10s五五开,1000po比100s好像强)
    无禁的差距乘10(100po可以和100s一步对抗),我不太清楚是katago算法不适合有禁,还是胚胎的有禁程序本来就比无禁强。


    来自Android客户端2楼2020-06-10 01:38
    收起回复
      顺便提一句,现在五子棋和围棋的主流软件大多是免费的。五子棋的弈心,embyro,还有katagomo是免费的。(这几个都没有开源,katagomo我可能过两个月开源,不过开不开源感觉对绝大部分人没啥区别),围棋的katago,leela,leelazero,elf都是免费且开源的。lizzie界面(围棋各种软件,和五子棋katagomo使用的界面)也是免费的
      ---------------
      经常能看到一些人拿这些免费软件在网上骗钱,小心被骗


      来自Android客户端3楼2020-06-10 02:10
      收起回复
        至于五子棋终结者,那玩意只是给萌新用的,懂一些五子棋基础知识的就不会玩它了。它里面内置了无禁黑棋必胜谱,所以程序不出bug拿白棋是赢不了的。
        它普及了“先手必胜”的概念,不过也可能有一些误导作用。好像有很多人不知道有禁手也是黑棋必胜。无禁双方走出最强变化,黑棋33手连五,有禁是35手,差别很小。也有很多人不知道除了花浦月,还有很多开局是必胜的。无禁26开局,除了彗星开局,另外25个全是必胜,26开局以外还有一大堆必胜。


        来自Android客户端4楼2020-06-10 02:18
        收起回复
          楼主将katago的po和embryo的每秒节点数相比,这点个人不是很认可,原因在于没有可比性。传统alphabeta搜索需要通过大量节点的搜索获得启发来确定主要搜索路线,其搜索的节点数必然会远大于基于神经网络的ai,很多人以此做文章,其实并不很合理,只是一个通过搜索找路线,一个通过神经网络找路线。第二个,楼主认为katago棋力与训练时间直接正相关,并与围棋katago直接做横向对比,感觉上并不是很有说服力,因为你并不确定对于五子棋来说,随着训练时间进一步提高,棋力是线性增长还是饱和,这些都需要实验,也就是对局来证明。另外以国际象棋为例,通过对局来获得有参考意义的elo,至少需要与多个ai的上千对局来消除随机性,像是与同一个ai的几十盘小几百盘对局随机性太大。不过katago的确是能在很大程度上说明了对于五子棋ai,gpu的计算效率的确比cpu上运行传统alphabeta搜索高很多。这仅仅是从做传统棋软开发者的角度的观点,仅供参考。


          IP属地:上海6楼2020-06-10 14:14
          收起回复
            我不是拿节点数做对比,我只是拿节点数计算时间而已。每秒5000节点,每步棋100节点,那么我的意思就是1/50秒一步棋。设节点数相比设时间来说更稳定一些,在任何人的机子上100po都是一样的。
            几百盘的随机性大概是10个百分点的误差(很容易算,400盘的一个sigma是2.5%),对应50elo左右


            来自Android客户端7楼2020-06-10 17:36
            回复
              还得多训练它,太菜了


              IP属地:四川来自Android客户端8楼2020-06-10 19:58
              收起回复
                h大师太强了


                IP属地:新疆来自Android客户端9楼2020-06-11 00:29
                回复
                  群主推动了五子棋的技术。如果开源提前,那无疑又是一件时间上的推动。


                  10楼2020-06-11 01:06
                  收起回复
                    很赞


                    IP属地:湖北11楼2020-06-11 02:55
                    回复
                      人类棋手,免不了被**打的命运


                      IP属地:黑龙江12楼2020-06-12 09:11
                      收起回复
                        发展历史上应该会留下一笔,楼主加油哦


                        IP属地:广东来自Android客户端13楼2020-06-12 10:58
                        回复
                          纠正一下:
                          1.katago有国际9段、国内6段以上的水平.
                          2.crazy zero棋力有国际9段以上、国内6段以上的水平.
                          3.embryo棋力不到国内职业6段.
                          4.yixin长时间思考棋力接近国内职业6段.
                          5.无禁规则下有个棋力强于yixin弱于embryo的rapfi.
                          6.black stone及无禁的goro棋力职业2段左右.


                          来自Android客户端15楼2020-06-18 15:45
                          收起回复
                            长时间思考的embryo应该能达到国内职业6段及以上棋力.


                            来自Android客户端16楼2020-06-18 15:51
                            回复
                              恐怖如斯


                              IP属地:重庆来自Android客户端17楼2020-06-18 17:40
                              回复