围棋吧 关注:202,025贴子:7,801,077
  • 59回复贴,共1

alphago的棋风很不直观,是由于算法的选择造成的

只看楼主收藏回复

对于最开始设计软件的人来说,他们把软件的目标定为“赢棋”,而赢多少则丝毫没有体现。从软件人员的观点,这是对目标的一个最简单也最贴切的描述,应该说,似乎是没有问题的。


然而这和人类平时的直观印象却大相径庭。人类会认为“赢半目”和“赢三十目”是天壤之别,并且把这个数目当做棋力差别的某种鉴别。


就是这个区别导致如今alphago的招法难以为人类所理解。人类棋手的策略,与其说是赢,不如说是“不但赢,还要尽量多地赢”。这有两个原因,首先是认为赢的多体现更高的棋力,所以值得追求,其次认为从“尽量多地赢”出发来下棋,会使自己优势尽量扩大从而也会导致最后赢棋可能性提高。


历史上也曾有一些棋手例外,李昌镐是最明显的,他认识到不需要赢的多,他也意识到了“赢的多”和“赢”存在某种内在矛盾。


其实设计软件的时候,是可以把“赢的多”也当做一个目标来对待的。如果设计得合理,也许甚至棋力能够超过目标只是“赢”的软件。对这一点我并没有把握,也许有人能证明以“赢”为目的的算法,棋力总是会超过目标考虑了“赢的多”的算法。但个人感觉这可能不是个简单的问题,两种可能性都有。


我相信,考虑了“赢的多”的软件,其招法会大大易于为人类所理解,而且棋力也能达到非常高的层次。即使不如alphago,也可以达到15段什么的。而向这样的软件学习,可能会容易和直观得多。


不知道绝艺是不是在目标里考虑了“赢的多”,所以下棋比较像人?


alphago这种棋风,和国象里的局面型弈法比较相似,它追求不断改善局面,不知不觉扩大赢棋的概率。而人类的招法,比较像国象里的战术组合型弈法,目标相对具体(扩大目数什么的)看得见摸得着,这里占个几目的便宜,好比象棋里吃了某个大子,说不定一下子就一战定乾坤。


人类中倒是应该多培养些局面型棋手,虽然这方面理论研究不够,李昌镐仍然是最佳人选。


回复
1楼2017-05-28 22:11
    围棋的巨大分支树,最底下的节点就是终局时盘面的形态,那么每个盘面都有一个客观的胜负多少目的结果。对alphago来说,它并不考虑这个胜负多少目,它只考虑这个形态下到底是黑胜还是白胜。然而,如果我们考察分支树,那么从统计意义上说,胜负差距越小的盘面数目,应该就越多,例如,大胜200目的所有可能盘面,必然远远少于小胜2目的盘面数目。


    这一点可以大致用数学原理来分析一下。如果假设最终我们分别用黑子和白子把黑白双方占的地都填满,那么黑占181白占180的盘面数目为C(361,180),命名为c1,而黑占231白占130的盘面数目为C(361,130),命名为c2。我们来考察下c1和c2谁大谁小,简单的计算表明c1大约是c2的一百六十万倍。注意,这里的估算是非常简化的,但是看懂的人能够理解我们的定性结论,即,差距越小的盘面,其总数也就越多。


    有了这个结论,就可以分析为什么alphago并不追求目数最大化,而反而表象为目数最小化(当然首先要保证赢)似的。这完全是一个概率的事情,对alphago来说,它选择走棋也就是选择某个分支,完全是看这个分支下面自己能赢的盘面数目是不是最多。而能赢的那些盘面里,差距越小的,数目占了绝大多数,因此,这类小胜的盘面,就相当于投%票群众里大多数,所以主导了alphago的选择。比如如果有一类盘面,能够大胜50目,它们也想让alphago选择自己,但无奈人数太少,发声不够,而另一类盘面,小胜2目,但是人数众多,能够在alphago的投%票系统里得到最多的权重,所以alphago当然倾向于选择拥有最多“小胜2目”盘面的分支了。


    粗略的说就是,赢你的方法非常多,但是细分的话,大胜你的方法千千万,小胜你的方法却有万万千。然而alphago的算法是完全不分辨大胜和小胜,所以从统计上说,最后的局面落在小胜的概率远高于落在大胜的概率。


    可能有人还是困惑,他们认为,比如某个局面下,如果某一步能够获得更多的目数,那么当然能够最大化地提高胜率,那么当然alphago应该选择这一步了。然而这个结论只是一个错觉,从统计上说,任何局面下,能最大化目数的招法几乎肯定不是最大化胜率的招法,alphago的风格验证了这个数学原理。


    收起回复
    2楼2017-05-28 22:28
      可见,alphago的每一步,都和人类“扩大目数”的粗略目标不一致,那么当然你不好理解它的招法了。人类怎么可能明白,也许它的一步棋,目的在于在一百手外把棋局拉到一种“虽然不可能赢你20目,但却更可能赢你半目”的局面里呢?所以自损目数虽然是人类尽量避免的,但对它来说根本不是个事。


      人类无法提前看清终局的胜负,所以用一个代理(proxy)目标来代替真实目标(赢棋),千百年来,这个代理目标“扩大目数”一直指导人类的行棋,但并没有细想过这两个目标在多大程度上是等价的。


      收起回复
      3楼2017-05-28 22:37
        楼主写得太好了


        收起回复
        来自iPhone客户端4楼2017-05-28 22:50
          支持下LZ,思路新颖


          应用达人
          应用吧活动,去领取
          活动截止:2100-01-01
          去徽章馆》
          收起回复
          5楼2017-05-28 22:54
            只提一个想法:以赢得多为目的的AI一旦失误将会是致命的;也许这种AI大幅大目数碾压人类,但可能在alphago面前不堪一击


            收起回复
            来自iPhone客户端6楼2017-05-28 23:00


              收起回复
              来自Android客户端7楼2017-05-28 23:05
                赢多的棋局要比赢少的棋局少得多的多。


                收起回复
                8楼2017-05-28 23:05
                  击中要害


                  收起回复
                  来自手机贴吧9楼2017-05-28 23:08
                    厉害👍


                    收起回复
                    来自iPhone客户端10楼2017-05-28 23:09
                      按楼主的意思,需要把赢的目数作为神经网络反向传播的权重给价值网络和政策网络。
                      这需要建立一个新的卷积神经网络,来预测赢的目数(大多数alphago不会下完棋,价值网络能判断胜率低于一定程度就会投子认输)
                      这样的卷积网络,需要另外的极大量的完整下完的棋局去训练。如果对于alphago的胜率没有什么影响,谷歌恐怕不愿意多花费这么多资源去做。


                      收起回复
                      11楼2017-05-28 23:44
                        楼主的前提我觉得反了,“赢得多”是建立在“一定赢”的假设上,但这是不符合事实的。
                        人类高手对战阿尔法围棋无时无刻都在想“赢的多”,可无一例外都输了。在不能赢的情况下,想赢得多岂不是奢望? 阿发狗的招法也一直追求“赢的多”,但不是赢的目多,而是赢的概率多。
                        如果狗评估当前胜率50%,下一招能胜率提高至60%(其他招法都提升不明显),他就会去下。 同理,人类的招法对狗狗判断是臭棋,胜率提升不明显,所以直接否决的。


                        收起回复
                        12楼2017-05-29 00:01
                          这是最近我看到的最有营养的一个帖子了,支持楼主


                          收起回复
                          13楼2017-05-29 11:59
                            最主要是"赢得多"不知道怎么算。所谓赢得多就是 赢且多 P(赢*多) = ?
                            按蒙特卡罗算法 P(win) 是能算出来的,但赢得多好像没一个很好的算法。


                            收起回复
                            16楼2017-05-29 13:43
                              其实再想想我发现“赢得多”还是可以算的。目标函数=奖金最大。所以我们也可以知道为什么中国古棋中赢和赢得多之间是有一种微妙的平衡,因为有赌彩的关系。


                              回复
                              17楼2017-05-29 13:54
                                流传下来的古谱肯定是投机成功大胜的多,同时肯定存在大量投机失败大败的棋局,但肯定不流传了。


                                收起回复
                                18楼2017-05-29 14:19
                                  赞!


                                  回复
                                  21楼2017-05-29 16:00
                                    设计评分 系统就行
                                    赢1目评分“胜利+1分”
                                    赢2目评分“胜利+2分”


                                    失败<胜利<胜利+1<胜利+2<胜利+3<胜利+4


                                    回复
                                    22楼2017-05-29 16:03
                                      李喆恐怕出没于尾巴吧,呵呵。。。


                                      目前45/55或47/53都是猜测,没见到deepmind给出过权威的数据。谁方便去问一声?围棋tv都把师姐给请去了,结果贾罡璐就知道扯过时没用的八卦,一点有价值的消息都套不出来。


                                      从放出来的自战谱看,v18似乎五局都是白胜,这次的master加强版白胜38黑胜12,似乎都已经使白胜率远远超越了50%,这就更加朴绰迷离,难道alphago已经非常接近棋神了吗?


                                      有这么几种可能性:


                                      1,自战谱是樊麾选的,选的时候出于某些因素导致黑白胜率不具有代表性,也就是说,不知为啥选了更多白胜谱(也许白胜谱更容易出彩?),而实际白胜率没有这么高。这件事感觉可能性不大,尤其黑胜谱由于不容易所以按理说更容易出彩;


                                      2,自战谱样本太少,一共才55谱,所以有一定概率偏离真实的概率。不过说实话,偏离这么多这件事本身发生的概率就不是很高;


                                      3,alphago自我训练时都是超快棋自战,也许那时候黑白胜率还比较接近50%(这可以理解,越快双方水平越低,离棋神越远),但一旦下慢棋自战,白胜率一下子就上去了。这个可能性恐怕不小;


                                      这样看来,所谓52/48,55/45,53/47之类,可能都是自我训练超快棋的胜率比,而慢棋的白胜率,也许在v18时代就已经大大超越了50%,然而,我们知道v18还远远不到棋神。


                                      当然,白胜率固定化只是达到棋神的必要条件,而非充分条件。


                                      我还有个猜想。v18自战谱,好几局的开局都相当固定,以至于前几十手都一样。这说明当时得出的开局最佳选点已经有了相对明确的答案(至于说是不是客观的最佳选点,那就不一定,也许是过拟合的结果)。既然开局都固定了,所以对战结果也很容易固定,导致五局都是白胜。deepmind后来说过,他们引入了一个“温度”参数,使得开局时不必非选最佳点,这样使开局变得丰富分散。我有点怀疑他们是不得不这么做,否则说不定alphago永远都用同一个开局,因为经过这么多局的进化,软件可能已经找到了它自己认定的最佳开局。无论什么原因,既然开局引入了随机因素,那么搞不好现在的黑胜局还是拜此所赐,因为也许有的随机开局偏巧有利黑方。假设没有随机因素,会不会白胜率都会变为百分之百了呢?


                                      总之,需要向deepmind求证这个自战胜率的事情,这个信息十分重要。


                                      回复
                                      23楼2017-05-30 00:28
                                        个人认为,在棋力相当的情况下,目标是“赢棋”的软件要比“赢的多”的软件强大得多
                                        因为“赢得多”就代表风险大,而高手之间水平不是关键,风险才是,一个不冷静就满盘皆输了


                                        收起回复
                                        24楼2017-05-30 00:42
                                          就是一个计算量的关系,人类的计算量跟本无法跟***,所以很多狗的下法在人看来就是无理手。


                                          收起回复
                                          25楼2017-05-30 00:56