围棋吧 关注:349,132贴子:10,495,027
  • 30回复贴,共1

过时了,等级分不是划分棋力的好标准

只看楼主收藏回复

在AI棋力超过人类之后,怎样划分AI的棋力成为一个问题。之前可以使用人类的水平来标识AI的棋力,例如业1、业3、职业入门、职业顶尖等等,现在则多数是用的是elo等级分。
问题在于elo等级分不是一个合格的计量体系。如果在棋手群A(人orAI)中建立一套等级分体系,棋手群B中建立同样的等级分体系,那么是没有办法衡量他们之间的棋力高低的。
首先,等级分的绝对数值是没有意义的。没有任何规定说等级分0对应于什么水平,alphagozero初始等级分取的就和leelazero不同,两者同样的5000分棋力截然不同。
如果仅仅如此,那也就罢了。比如摄氏温标和凯尔文温标,绝对数值不同,但是两者的相对数值(例如提升1度)意义是一致的,进行比较时,只要重新标度一下坐标零点,两个体系就可以取得一致。问题在于,等级分系统的相对数值也不具备普适意义。
elo等级分相对数值表征的是胜率。比如人类A对战人类B胜率80%,leelazeroA对战leelazeroB的胜率也是80%,那么他们之间的等级分差是相同的。但是,胜率差能表征棋力差吗?假如B和leelazeroB水平相等,那么能够推出A和leelazeroA水平也相等吗?
显然不。用一个简单的模型,棋手的棋力用数值A表示,即时棋力在A的基础上有一个波动A+a,当A+a>B+b时棋手A战胜棋手B。
假设人类棋手的波动是30,leelazero的波动是3。那么人类A(棋力110)对战B(棋力100)胜率不过略大于50%,而leelazeroA(棋力110)对战leelazeroB(棋力100)胜率已经接近100%。
定量的算一下就知道,胜率表征的不是棋力差,而是棋力差/波动。
原来只有人类棋手时,都是人类大脑,其波动是差不多的(也有波动小的叫试金石,波动大的叫六脉神剑)。但是AI就完全不同了,程序的水平波动要比人类小很多,导致反映出来的等级分差也要大很多。这也是为什么人类让2子的水平差距,到了AI那儿奔着让9子去了。
所以正确的说法,AI的等级分提高1000分,说的是棋力提高了1000个AI标准波动。人类棋手等级分提高1000分,说的是棋力提高了1000个人类标准波动。之间的换算,1个人类标准波动或许等于10个AI标准波动,谁知道呢?
就算AI之间,如果算法不同,其波动也很难说就一定大。
所以,指望建立一套elo等级分来统一衡量人类和AI的棋力,是不可能的。
那么,有没有其他标准可以来衡量AI棋力的绝对高低呢?我觉得,可以试试先后手的胜率差异。比如某AI先后手胜率差异最小的是贴7.5,那么此时胜率差异偏离50%越大,那么说明AI的水平越高。这或许可以成为一个普适标准。


1楼2018-01-02 00:10回复
    看先后手胜率差异也不行吧……棋力基本上取决于优势下简化局面的能力和劣势下搅乱局面的能力两个方面,前者强后者弱的ai的自战对局应该会很简明,贴目有利一方的胜率很高,但综合棋力可能跟前者弱后者强的ai差不多。


    IP属地:上海3楼2018-01-02 00:30
    回复
      请细化一下你的定量分析。


      IP属地:北京4楼2018-01-02 00:37
      回复
        @29077017990669 如下图,上面是人类的棋力,下面是AI的棋力,都有波动,假设是高斯分布。人类波动大,AI波动小。重叠的体积代表以弱胜强的概率,人类棋力3的基本稳赢棋力为0的,而对于AI来说,棋力0.75的对战棋力为0的就可以达到同样的胜率了。同样棋力差3,AI的等级分差是人类的4倍。
        这个用一点微积分就算出来了。


        5楼2018-01-02 01:20
        回复
          先后手胜率差不是一样受到“波动幅度”的影响吗,没区别啊


          来自Android客户端7楼2018-01-02 02:30
          回复
            等级分失真是建立在对局数量极其有限的情况下的,如果每个人都和其余对手对弈无穷多盘,那时候的等级分才是各个棋手真正的等级分


            来自手机贴吧8楼2018-01-02 08:04
            回复
              人类的棋力波动比AI大是楼主自我想象出来的,没有任何客观数据来证明。也许同一种算法的不同版本间对弈时,棋力波动会显得小。这就像今年的柯洁和去年的柯洁对弈,也许能取得很高的胜率,因为今年的柯洁知道去年的柯洁在想什么。


              9楼2018-01-02 10:27
              收起回复
                ELO体系下可以有“标准差”这个参数的。


                IP属地:美国来自iPhone客户端10楼2018-01-03 06:34
                收起回复
                  那么楼主觉得怎样才是最好的呢?


                  IP属地:广东来自iPhone客户端11楼2018-01-03 11:19
                  回复
                    没有绝对准确的衡量体系,现在这套应该算比较准的了,但时间一拉长就不准了,我印象最深的是最近赵惠莲赢了李昌镐,导致其十几二十年前的历史等级分暴涨,简直搞笑


                    IP属地:广东来自手机贴吧12楼2018-01-03 13:13
                    回复
                      我随便说两句吧。刚才和楼主算是吵了几架,反省了一下,是看错了他的正文,以为他说的波动是针对等级分的。刚才又看了一遍,发现他确实自己定义了一个“棋力”,这样的话大概还是可以自洽的。另外虽然数学上楼主由于犯懒没有细致推导,但大面上的方法似乎还没什么太大问题。
                      不过我还是反对“等级分过时”这个看法,并且极端一点说,这个概念不但不过时,可能也很难过时,即使以后搞出了一个实用性更好的新概念,恐怕也和等级分的想法很相似,而不是和楼主提出的“棋力”相似。
                      我的想法是这样的。一个模型,用的假设一般来说越少越好,奥卡姆剃刀在这里应该是适用的。你的假设越多,出问题的可能就越大。等级分概念高明的地方就在于,它不需要太多额外的假设,而只把目光集中在胜负上,然后用概率的方式表达出来。它不关心胜负的原因和机理是什么,直接从最老老实实的胜负数据出发来定义,这样就避免了人类主观的偏好可能加进的人为因素。
                      如果引入了胜负的机理,那就复杂了,你先要证明你的机理是符合实际的,而这基本是不可能的,胜负是一个结果简单但过程可以无比复杂的事情,哪那么容易被模型出来,可以说任何简单的模型都只能造成引入的问题比解决的问题更多。而复杂的模型则偏离了人们需要一个简明的概念来描述胜负世界这一愿望。
                      等级分概念确实有一些弱点,比如它假设了某种程度的传递性,2000分对2400分胜率是10%,1600分对2000分胜率是10%,那么是否就能推出1600分对2400分胜率是1%呢。但这一弱点是可以被克服的,方法就是让所有选手都参与到广泛的对战之中,不要人为割裂选手的人群,这样,如果对战人群足够大,那么在它内部建立的等级分应该是较有意义的。
                      现在ai出现了,确实存在ai和人类彼此割裂的可能性,就像目前的国象ai也不怎么和人类下棋一样。不过,这是由于人类棋手不愿意和ai对战,并不是真有什么天然的障碍导致ai和人类不能混同比赛。依我看,如果存在各个水平阶段的ai,而人类又不排斥和ai比赛的话,等级分完全可以延伸到ai上去。如果将来人类和ai下棋确实永远是输(依我看这件事的可能性也不大,永远有各个水平的ai存在,你还可以人为调低ai思考的时间),不愿意和ai下棋了,那也许两方面各自计算自己的等级分也不是一件坏事。
                      说了这么多,总结一下。等级分概念并不完美,但想找到一个比它更好的替代物,没有那么简单,说不定是不可能的。


                      IP属地:北京13楼2018-01-03 13:55
                      回复
                        @29077017990669
                        这么说吧,“棋力”是客观存在的棋手的内在属性。存在“棋力”不是假设,但是问题在于我们不知道棋手的棋力是多少,怎么去“测量”这个棋力。
                        现在,等级分系统就是一种试图对于“棋力”进行测量的手段,测量出来的值叫做“等级分”。我这篇文章论述的是,这种测量存在一个前提:每个棋手的峰宽是一样的。但是,在AI出现之后,这个前提失效了。
                        棋手这个群体是一个复杂的对象,包含了非常多的变量。要想描述它,需要建立模型,这其中就必须用到一些假设,或者说简化。
                        首先要引入的就是棋力,这是描述棋手强弱的。高手棋力就高,弱手棋力就低。
                        其次要引入的是峰宽。否则没法谈胜率。只有棋力没有峰宽的话,高手对低手就只会胜,不会败。
                        目前的模型就这两个变量,其他的变量舍去了。例如棋风,如果想解释A对B胜率>50%,B对C胜率>50%,C对A胜率>50%,仅靠棋力和峰宽就不够。
                        再有的假设就是大数假设,认为每两个棋手之间都有足够的对局,这个对AI适用,对人不适用。
                        所以我这里的假设不在于引入了棋力和峰宽,这些属性是客观存在的。而是我舍弃了棋风和其他更复杂的变量,等级分系统也是这样。


                        14楼2018-01-03 14:57
                        收起回复
                          其实这个问题可以简单类比于物体的质量。
                          物体有一个质量的內秉属性,哪怕早在牛顿之前,人们也已经认识到了这一点。但是存在质量和怎么测量质量是两码事。后来,人们学会了测量重量,就使用重量(地球的引力)来表示质量。因为质量和重量严格成正比,所以这种表示没有问题。
                          但是有一天,人类登上了月球,把弹簧秤也带了过去。这时人们发现,因为月球的重力加速度不同,再统一用重量来表示质量就行不通了。
                          对于围棋来说,等级分就是一种重量,它是用来表示“棋力”这种內秉属性的。AI出现后,由于峰宽不同,再统一用旧的等级分系统来表示棋力也行不通了。


                          15楼2018-01-03 20:06
                          回复