上个帖子出来后,韩姥姥过来指点了一些门道,我才恍然大悟,回头恶补了一些功课。不过隔行如隔山,而且这座山还不是一般的一座山。所以读了几天,作为外行,我还是不得其解,更不要说不得其妙处所在。汗!
围棋这样的高级智力游戏,对于电脑来说,确实极具挑战。电脑要超越人脑,就必须有一些人脑所难完成的功能。把一些科普文章看下来之后,发现AlphaGo有两个主要功能,一个是管评估的,叫做value system,另外一个管决策的,叫做policy system。这两个功能之间能够互动——互相补偿,互相提高。 负责评估的这个功能,可能和图片识别的技术相似或者相关。在一轮对弈过程中,棋局是在不断变化之中。但是在每一个时间点上,一盘棋局也就是一幅静止的画面。一盘棋还没有结局,不能光靠清点点格来分胜负。这个时候棋盘上的形势如何,有多少胜算,懂棋的人也许一眼就可以看出究竟,但还是很难说出来,或者要用很多的词汇很多的语言才能表达清楚。所以他们通常用一个很笼统的概念来描述这种“气”或者“势”。人工智能可以通过不断学习,对一盘未完成的棋盘给出一个胜率的定量评估。所谓神经网络,是对大量信息进行分解归纳的一种手段,归属在这一评估系统里。学习的依据,可以来自棋谱之类的历史经验,也可以来自与自己以往的对弈经验。评估得对,下次就可以继续这样评估,如果评估不当,就要继续学习,可能要生长出新的神经元,作为进一步判断的补充。 负责决策的这个功能,主要通过一系列的实时计算来实现的。这里的过程,首先是要决定一盘棋局上有几个可以采用的点。然后根据规则缩小所要采用的点,比如在开局过程中,可能就要排除那些“草包肚”的范围,如果筛选以后的点还是太多,就通过随机抽样或者其他方式,进一步缩小样本。若干选点确定之后,让电脑从这些点上出发逐一进行“试弈”运算。所谓的“蒙特卡洛搜索树”,并不是搜索什么棋谱记录,而是指通过多级试算的办法,在所有的样本中找到胜率最高的一种下法,然后做出决策,在棋盘上走出这一步棋。在试算过程中,每一级试算出来的每一个棋盘,都要从评估系统那边获得到一个胜率的评估。而通过多级试算过程所得到的最终胜率,也可以送给评估系统作为以后的参考。这个“千算万算”的过程,和人工下棋的思路也有一点类似。会下棋的棋手都会“心算”很多步——如果我下这一招,对手会怎么防,然后我该怎么对应;如果我围攻这一块地盘,需要多少步可以拿下,同时对手围攻那一个地盘,需要多少步拿下,如果我在对手拿下那个地盘之前先完成这一块,那么那一块的困局就会如何如何。另外,棋手还都具有前瞻性,也就是说,一次长考之后,对接下来的几步棋也许就会心里有数,不要每次都算。有了这种前瞻能力,就可以临危不乱,在乱局中也能排除干扰,稳操胜券。 这次比赛中看到一些棋手评论说AlphaGo的“大局观”特别好,可能和评估功能特别强有关。另一方面,现在我们虽然知道AlphaGo有很强的“试弈”计算能力,但是还不太明白AlphaGo是否也具有“前瞻性”。有人说AlphaGo是“见招拆招”,每一手棋都是重新算起,既没有也不需要“前瞻”的能力。这种说法有一定的道理。不过从理论上说,在电脑上实现“前瞻性”并不是太难的,实际上就是记住在前面搜索过程中所找到的最佳路径。只是说电脑能及时根据棋局的变化,不把自己的决策方向局限在前面“思考”或者“搜索”出来的最佳路径上,岂不是一件更好的事情呢? AlphaGo在第四局中失利,有人说是李世石找到了电脑的Bug。我看其实不是这么回事。李世石是棋手,不是码农,不会钻到电脑里去找bug。李世石下出的那手奇招,也许电脑还没有见识过,所以在评估的时候,没有及时打出恰当的胜率。胜率评估错了,接下来的试弈分析自然也就错了。另外一个可能,是在前面的随机选点“试弈”中,没有把李世石要下的这一招选择进去,所以没有及时看到后来形成的这个局面。总之,AlaphaGo就像一位初学者,不懂对手的高招,所以败了,不是它的智力程度不行或者学习能力不高,而是它还没有学会而已。类似的缺陷一定还有不少,只能通过学习来逐渐提高。第五局我推测李世石会胜出,就是相信电脑在短时间内无法在评估系统上出现大的进步。 最后顺便贴一幅李世石获胜之后的图片。这幅图片上的笑脸让我想起我前面推荐过的韩剧《请回答,1988》。这部电视剧的五位年轻主角中,其中有一位是围棋高手,据说是根据当年的国手李昌镐故事编出来的。如果你回头看那一幅海报,你会认出哪一个是下围棋的吗? |
hanxin: https://youtu.be/C2txn4igy-M
这段录像值得看看。
fancao: 如说是bug,估计狗团队通不过,最多是个enhancement issue。

Powered by Discuz! X3.4
© 2001-2017 Comsenz Inc.