第九十七章 推理
向前道:“让我来先回答其中一个问题:通过推理可以得出‘金角’这个结论。为什么呢?因为在中腹,围中间几目空,四周都要摆上子;而围边上的空,底线不用摆,只需摆三条边;到了角上,有两条底线交叉,摆两条边就围住了。你看,围同样的目数,角上用的棋子最少,效率最高。围棋是追求棋子效率最大化的,下棋自然从角部开始了。这就是人类进行推理的过程。” 韩东道:“是的,前哥确实用推理的方式推导出了‘金角’这个结论,究其原因,都是因为底线不用摆棋子这个底线上点的位置特性起了作用。” 向前问:“能不能编一个程序,让电脑进行这样的推理呢?” 这个问题把两人难倒了。从上世纪中叶电子计算机诞生,几十年过去了,没有人进行过这方面的尝试。 但,两人明白,正如向前一再强调的,“超级脑”就是要面对这样一类的问题,做前人没有做过的事情。 邓强道:“让我来试试人类的思维过程,看能不能发现一些借鉴的地方。 “两个无聊的人发明了围棋,开始下棋。一开始是乱下的,互有胜负。接着,聪明的那个人就开始琢磨怎么样才能赢对方,于是他就想,你围地我也围地,同样几手棋,如果我围的地更多,岂不是就赢了?于是开始琢磨哪里落子围地效率最高,然后就如同刚才前哥一样,进行一番推理后得出了‘金角银边草肚皮’的结论。” “对,是这样。”韩东道。 向前道:“我把邓强的思维过程分解一下。第一层即根本目标:赢棋。这是思维的出发点。就是问自己,怎么样赢棋呢?第二层:让棋子效率最大化。翻译成电脑的语言就是,用最少的棋子围更多的空;或者等价推理成:围相同的空用最少的棋子;第三层:得出结论‘金角银边草肚皮’。 “我们一步步来思考,首先,第一层目标赢棋是这个系统的使命,可以由我们人类赋予。以后设计高级机器人的时候,这样的使命或者说根本原则非常重要,就如上世纪有人提出的‘机器人三原则’,关系到机器人能不能和人类相互和谐共处,现在不做深究。那么,人类是怎样从第一层赢棋的目标,推导出第二个目标棋子效率最大化的呢?” 韩东道:“这个推论不难得出。所谓赢棋,就是在最后数子的时候我的子比你多,所以电脑每下一步,就是要让下的子围得最多。” 邓强道:“你说的这个推论,对人来说是一目了然,但电脑不会这样推论。除非你编程的时候告诉它。” 向前道:“没错,人类的这个简单推论,其实没什么难的,不过是局部和整体,分步和整个过程的关系问题。但现在的电脑不会推理,我们完全可以把这样一个推理过程程式化,成为‘超级脑的一部分’。这样的推理程序多了,理顺了,电脑便会越来越会推理,给人的感觉是电脑越来越聪明了。” 两人点头称是。 邓强道:“前哥,一开始听韩东介绍‘超级脑’,觉得特别难。经你这样一分析,忽然就有了信心。这个‘超级脑’虽然难,但正如你刚才说的,把推理的过程都程式化了,‘超级脑’就出来了。” 向前道:“邓强,你说的这话不全面。逻辑学里面不是有一个争论了很久的命题么,就是‘演绎法不能得出新的知识’。‘超级脑’光会推理是不够的,我们的目标是会创新。扯远了,这第一层到第二层的目标,一步到位有点难,这次的围棋程序还只能是我们替电脑分解,以后随着‘超级脑的完善’,围棋程序的智能化也会越来越强。希望有朝一日,‘超级脑’能够告诉我们一些大家还不懂的棋理。我们再看一看第二步到第三步的推理,电脑能学会吗?” 韩东道:“这一步比较容易吧,让电脑试着在棋盘上随机围一目空,试验的次数一多,很快就会发现这个规律。” 向前道:“你这样‘试’出来,是一种办法,就是目前流行的统计学方法,没什么稀奇,大家早就这样做了。我现在说的是推理出来。按照‘试’这种思路编出来的围棋程序,不一定能赢古鸽的贝塔电脑,因为这方面,他们研究了很多年,我们很难比他们做得更好。” 邓强道:“对电脑来说,通过观察分析得出这个结论,其实不容易。我再来模拟一下人类分析的过程。 “人类面对一张空白棋盘的时候,他看到的不只是线上的361个孤立的点,是一个面。对面上的那些点,他会很快识别出它们的一些特性,例如天元附近那些点,离边上最远。” “对棋盘上随便某个地方围起的一小块地,人类就想,围这一小块地,整个棋盘都要这么多棋子么?当他目光移动到边上的时候,发现可以少放一条边的棋子,效率在边上显然提高了。当他眼睛移向角部的时候,发现角上可以进一步少围一条边。效率最高。推理完毕。” 向前道:“我觉的邓强说得很好。人类注视棋盘的时候,首先有一个整体的相互联系的观念,绝不是电脑那样,只知道点的坐标。同时还会进行局部观察,对里面的元素进行分类,提取它们的特性。 “如邓强所说,人类推这个结论的时候,也用眼睛扫描全盘,事实上等于快速检索了一遍整个棋盘。但不是韩东那样盲目试上无数个样本做统计。很明显人类这样扫视的时候,大脑在进行快速的特性提取和匹配。 “韩东、邓强,不要小看了人脑的能力,电脑要做到这一点还挺难。别忘了正是意识到了人脑工作的不同方法,创造出‘神经网络’算法的。现在这种算法已经是人工智能的主流算法。而这种快速提取特性和匹配的能力,也是‘超级脑’一个与众不同的能力。邓强,这个任务就交给你了。但不是紧急的任务,你先思考一段时间。” “是,前哥。” 向前继续分析:“对特性匹配以后,就很容易发现‘金角银边草肚皮’的道理,或者说得出这个棋理性质的结论。至于韩东提到的‘试’的方法,大家都熟悉,我们不作讨论。而推理和‘试’相结合的方法,就是我们的方向,先推理,得出分目标,推不下去了,就用试得出结论。‘试’不下去了,就用蒙特卡洛搜索树选一个最可靠的选项,韩东,这正是我们在雁翎度假酒店时讨论后得出的结论。” 韩东道:“是的,前哥。” 邓强道:“前哥,这里有一个难点。” “请说。”向前道。 “这个推理的“理”刚才我们研究过了,暂时电脑还不能自己推出,只能靠编程序的人告诉电脑。如果编程序的人自己对围棋的‘理’理解都不深刻,又怎么可能编出高水平的程序呢?” 向前道:“你这个问题我考虑过。我们只能分阶段来。先依据我们自己的水平编出一个初步的程序,我的业余段位是七段,根据电脑强大的运算能力,我认为我们自己编出来的程序很可能有专业初段以上的水平,可以和九段让两子互有胜负了。这已经是国内一流的围棋程序了,这个时候,我们找一些二三线的八九段加盟我们的程序提升一下棋理就可以了。” 邓强道:“我们的围墙程序就相当于把一个九段棋手的大脑的运算和记忆能力换成电脑的运算和记忆能力,水平应该是超级恐怖的。” “那就不是九段了,很可能是三十段,一百段。”韩东道。 向前道:“你封它个一百段吧,聂卫平才九段呢。” 三人皆笑。 韩东道:“等我们的‘超级脑’做成了,不知道会怎样。” 邓强道:“我估摸,‘超级脑’进入实用,起码得三五年。到它成长成熟,得十年以上。” 向前道:“按常理是这样。” 不按常理呢?向前没有说。没把握的事情乱说出去,就成了吹牛。 “我们这样编出来的程序,能不能打败贝塔啊?”韩东有点信心不足。 向前道:“按棋理编制的程序会和按电脑传统方法编出来的程序完全不同。你们想啊,在九段的眼中,棋盘上的棋都按照一块一块,一条龙一条龙这样看待的,被这样分割以后,盘面上可落子的点其实不多,所以人脑这么慢的运算速度和这么小的记忆容量也能下出正确的着法。如刚才邓强所说,我们这种方法,等于把人脑的运算和记忆能力换成了电脑的能力,这的确很恐怖。譬如贝塔用蒙特卡洛搜索法计算后面三十步的变化,我很可能是七十步八十步甚至上百步,谁优谁劣不是一目了然吗?谁胜谁负也是预料中的事了。只是,棋理这种东西转化成程序,要付出艰辛的努力。”