围棋吧 关注:349,936贴子:10,644,790
  • 13回复贴,共1

关于围棋AI的科普

只看楼主收藏回复

最近关于AI的讨论似乎又达到了一波高峰,楼主是一个人工智能爱好者,前段时间参考别人的代码大概实现了alphago zero的逻辑。根据自己理解给大家讲一下围棋AI


IP属地:上海1楼2022-12-25 23:55回复
    围棋由于状态数非常大,从一个局面到终局的可能路径也几乎无法穷尽,对于计算机来说学会下围棋曾经是一件非常难的事情。让我们看看人类是如何解决这个问题的,一局围棋的过程其实可以看做每次对手落子后,根据当前的棋盘,从可落子的位置里选择一个(你认为的)最佳落子点。实际上,大多数的落子点对于取得胜利并没有帮助,人类在下棋的时候只会考虑其中的一些点(棋感,这使得需要考虑的局面数量大大减少),再加以计算(前瞻),通过估计一手棋的价值(目数)来选择落子点。但是棋感是一个说不清道不明的东西,对杀的时候快一气和慢一气,一眼望去在视觉上好像差不多,但是对于围棋来讲天差地别。我们无法用一种确定的规则来告诉电脑怎么下棋比较好,穷举围棋又基本上是不可能的,所以传统围棋程序的水平最多也就达到业余段位。人工神经网络解决了这个问题,是它赋予了计算机棋感。


    IP属地:上海2楼2022-12-25 23:57
    回复
      2025-08-29 23:24:26
      广告
      不感兴趣
      开通SVIP免广告
      作为非专业人士,并不需要知道人工神经网络的工作原理,单从功能上讲它是一种自动的函数拟合器,给定输入和期望的输出就能自动发掘其中的关系。设想有一个函数,我们输入棋盘局面,就能直接计算出应该落子的位置。这样的函数当然是存在的,但是它可能非常复杂,恐怕没人能把这个函数写出来,神经网络这个时候就派上用场了。


      IP属地:上海3楼2022-12-26 00:00
      回复
        现在的围棋AI下棋的思路其实反而是跟人类比较接近的
        alphago有两个神经网络,一个是策略网络,一个是价值网络,策略网络的作用是给出当前情况下落子概率的分布(其实就是感觉上落在哪里比较好),价值网络的作用是对一个局面胜算的估计。这两个神经网络解决了棋感的问题。而改进后的蒙特卡洛树搜索给了AI前瞻的能力(这个过程其实就是对感觉上落子比较好的位置就是算后续的变化然后综合考虑)


        IP属地:上海4楼2022-12-26 00:07
        回复
          cy


          IP属地:吉林来自iPhone客户端5楼2022-12-26 00:09
          回复
            神经网络学习的过程需要提供期望的输出,在围棋这里也就是告诉AI当前应该怎么下最好,这就出现了一个问题,我们其实并不知道某个情况下怎么下“最好”,没有人达到了这种境界。所以这里用人类高手的棋谱来代替,一开始alphago学习的是人类棋谱,如果只是单纯的学,最多可能就跟人类水平差不多,于是引入了强化学习的技术,让AI自我对弈,然后改进自己,这样才达到了超人类的水平。alphago zero与alphago的区别在于,它一开始就是自己跟自己下,最开始可能是随机往棋盘上撒豆子,慢慢得变得有章法,到最后碾压alphago。这背后有着很大的意义:alphago大量学习的人类的下法,但是人类的下法可能是错的,如果只是学人类,AI不可能改进点三三定式。alphago zero自己探索出来了很多与人类已经发现的定式,这肯定了千年来人类在围棋上的成就。当然也有一些定式被淘汰了,说明这些定式其实并不两分,只是人们对于价值估算有误。


            IP属地:上海6楼2022-12-26 00:21
            回复
              树搜索可以分为广度优先搜索和深度优先搜索,前者的过程是,我把当前所有可以下的地方都算一次,再把所有落子之后的每种情况所有可能下的地方都算一次,以此类推。后者的过程是,我只考虑我觉得最好的棋,对手也只会按我想象的下,不考虑任何变化的可能,直接下到结束。这两种方法都很极端,不适合围棋,于是做了均衡,通过落子概率分布和某个局面到达的次数来综合选择现在要去分析的局面,比如一开始我觉得某个点最好,然后去考虑后面一步棋,每次考虑后续变化它的visits都会+1,visits变高到一定程度后说明这个节点算的差不多了,然后考虑别的点


              IP属地:上海7楼2022-12-26 00:42
              回复
                前面说了很多理论的东西,现在来说一些冷知识
                现在比较新版本的katago并不是完全自我对弈出来的,因为作者发现加入人谱能加快训练,作者同时也给出了最后没有人谱掺杂的katago权重
                我们平常说的visits/计算量指的是蒙特卡洛树搜索过程中playout的次数,也是神经网络运行的次数,具体来讲就是前面说的树搜索最开始的局面的visits上限,达到这个数就停止计算
                katago的权重有很多版本,它们拥有不同的后缀,如当前最强的网络为kata1-b40c256-s11840935168-d2898845681,这里的b和c指的是神经网络的结构,其中b指的是残差块数量,根据我的理解,理论上b的数值变为两倍,神经网络一次运行时间变为两倍,c的数值变为两倍,神经网络一次运行时间变为四倍
                并不是b的数量越大棋力越强,只是理论上的上限越高,具体要看网络训练到什么程度,比如现在已经有b60的网络了,但是ELO最高的还是b40的网络,甚至可以直接搞一个b100的网络,里面权重全是随机数,这样出来的网络大概率跟随机撒豆子差不多。


                IP属地:上海8楼2022-12-26 00:47
                回复
                  2025-08-29 23:18:26
                  广告
                  不感兴趣
                  开通SVIP免广告
                  在严格遵守禁全同的中国规则下,围棋其实有必胜法的(只是不知道是黑必胜还是白必胜,只是根据目前AI的结果感觉可能是白能必胜)!!可以引用策梅洛定理证明。所以某种程度上赢棋就是在捡勺,某一方没下到最好。所以我觉得AI的开局胜率是可能反映AI强弱的,随着AI棋力的提高,我觉得白的胜率可能还会继续提高,最终会达到百分百也不是没有可能


                  IP属地:上海9楼2022-12-26 00:52
                  收起回复
                    在当前围棋的规则下,围棋的终极境界应该是猜先之后胜负就分出来了


                    IP属地:上海10楼2022-12-26 00:55
                    回复
                      通过前面我对AI下棋过程的讲解,其实AI下棋是跟人有共通之处的,AI下棋其实也是一个估计(只是比人估计的更准,但是本质上还是估计,所以可能无法达到围棋的完美境界),计算量这个东西人基本上没法提升,但是AI用几百到一千多的计算量就已经有很高水平了,要知道这个计算量是一个落子算一次,不是指把一手棋全部算清,除非是一本道变化,不然AI实际上也算不了多少步棋。但是AI有一个很可怕的地方是棋感,根据alphago zero的论文,当计算量为1的时候(也就是只用神经网络不用树搜索,可以说是只靠棋感),棋力能达到接近alphago fan的水平(对阵樊麾二段的版本),也就是说看了棋盘直接拍就已经有职业水平。我觉得也许人类在学AI的过程中可以通过大量的训练硬去磨棋感来达到效果


                      IP属地:上海11楼2022-12-26 01:19
                      收起回复
                        围棋AI和一般的程序相比并没有凸显出计算机计算速度的优点,反而像是废材勤能补拙的典范,从随机落子开始自己对弈千万局棋,最后碾压人类


                        IP属地:上海12楼2022-12-26 01:36
                        回复