向前道:“讓我來先回答其中一個問題:通過推理可以得出‘金角’這個結論。為什么呢?因為在中腹,圍中間幾目空,四周都要擺上子;而圍邊上的空,底線不用擺,只需擺三條邊;到了角上,有兩條底線交叉,擺兩條邊就圍住了。你看,圍同樣的目數,角上用的棋子最少,效率最高。圍棋是追求棋子效率最大化的,下棋自然從角部開始了。這就是人類進行推理的過程。”
韓東道:“是的,前哥確實用推理的方式推導出了‘金角’這個結論,究其原因,都是因為底線不用擺棋子這個底線上點的位置特性起了作用。”
向前問:“能不能編一個程序,讓電腦進行這樣的推理呢?”
這個問題把兩人難倒了。從上世紀中葉電子計算機誕生,幾十年過去了,沒有人進行過這方面的嘗試。
但,兩人明白,正如向前一再強調的,“超級腦”就是要面對這樣一類的問題,做前人沒有做過的事情。
鄧強道:“讓我來試試人類的思維過程,看能不能發現一些借鑒的地方。
“兩個無聊的人發明了圍棋,開始下棋。一開始是亂下的,互有勝負。接著,聰明的那個人就開始琢磨怎么樣才能贏對方,于是他就想,你圍地我也圍地,同樣幾手棋,如果我圍的地更多,豈不是就贏了?于是開始琢磨哪里落子圍地效率最高,然后就如同剛才前哥一樣,進行一番推理后得出了‘金角銀邊草肚皮’的結論。”
“對,是這樣。”韓東道。
向前道:“我把鄧強的思維過程分解一下。第一層即根本目標:贏棋。這是思維的出發點。就是問自己,怎么樣贏棋呢?第二層:讓棋子效率最大化。翻譯成電腦的語言就是,用最少的棋子圍更多的空;或者等價推理成:圍相同的空用最少的棋子;第三層:得出結論‘金角銀邊草肚皮’。
“我們一步步來思考,首先,第一層目標贏棋是這個系統的使命,可以由我們人類賦予。以后設計高級機器人的時候,這樣的使命或者說根本原則非常重要,就如上世紀有人提出的‘機器人三原則’,關系到機器人能不能和人類相互和諧共處,現在不做深究。那么,人類是怎樣從第一層贏棋的目標,推導出第二個目標棋子效率最大化的呢?”
韓東道:“這個推論不難得出。所謂贏棋,就是在最后數子的時候我的子比你多,所以電腦每下一步,就是要讓下的子圍得最多。”
鄧強道:“你說的這個推論,對人來說是一目了然,但電腦不會這樣推論。除非你編程的時候告訴它。”
向前道:“沒錯,人類的這個簡單推論,其實沒什么難的,不過是局部和整體,分步和整個過程的關系問題。但現在的電腦不會推理,我們完全可以把這樣一個推理過程程式化,成為‘超級腦’的一部分。這樣的推理程序多了,理順了,電腦便會越來越會推理,給人的感覺是電腦越來越聰明了。”
兩人點頭稱是。
鄧強道:“前哥,一開始聽韓東介紹‘超級腦’,覺得特別難。經你這樣一分析,忽然就有了信心。這個‘超級腦’雖然難,但正如你剛才說的,把推理的過程都程式化了,‘超級腦’就出來了。”
向前道:“鄧強,你說的這話不全面。邏輯學里面不是有一個爭論了很久的命題么,就是‘演繹法不能得出新的知識’。‘超級腦’光會推理是不夠的,我們的目標是會創新。扯遠了,這第一層到第二層的目標,一步到位有點難,這次的圍棋程序還只能是我們替電腦分解,以后隨著‘超級腦的完善’,圍棋程序的智能化也會越來越強。希望有朝一日,‘超級腦’能夠告訴我們一些大家還不懂的棋理。我們再看一看第二步到第三步的推理,電腦能學會嗎?”
韓東道:“這一步比較容易吧,讓電腦試著在棋盤上隨機圍一目空,試驗的次數一多,很快就會發現這個規律。”
向前道:“你這樣‘試’出來,是一種辦法,就是目前流行的統計學方法,沒什么稀奇,大家早就這樣做了。我現在說的是推理出來。按照‘試’這種思路編出來的圍棋程序,不一定能贏古鴿的貝塔電腦,因為這方面,他們研究了很多年,我們很難比他們做得更好。”
鄧強道:“對電腦來說,通過觀察分析得出這個結論,其實不容易。我再來模擬一下人類分析的過程。
“人類面對一張空白棋盤的時候,他看到的不只是線上的361個孤立的點,是一個面。對面上的那些點,他會很快識別出它們的一些特性,例如天元附近那些點,離邊上最遠。”
“對棋盤上隨便某個地方圍起的一小塊地,人類就想,圍這一小塊地,整個棋盤都要這么多棋子么?當他目光移動到邊上的時候,發現可以少放一條邊的棋子,效率在邊上顯然提高了。當他眼睛移向角部的時候,發現角上可以進一步少圍一條邊。效率最高。推理完畢。”
向前道:“我覺的鄧強說得很好。人類注視棋盤的時候,首先有一個整體的相互聯系的觀念,絕不是電腦那樣,只知道點的坐標。同時,人類還會進行局部觀察,對里面的元素進行分類,提取它們的特性。
“如鄧強所說,人類推這個結論的時候,也用眼睛掃描全盤,事實上等于快速檢索了一遍整個棋盤。但不是韓東那樣盲目試上無數個樣本做統計。很明顯人類這樣掃視的時候,大腦在進行快速的特性提取和匹配。
“韓東、鄧強,不要小看了人腦的能力,電腦要做到這一點還挺難。別忘了正是意識到了人腦工作的不同方法,創造出‘神經網絡’算法的。現在這種算法已經是人工智能的主流算法。而這種快速提取特性和匹配的能力,也是‘超級腦’一個與眾不同的能力。鄧強,這個任務就交給你了。但不是緊急的任務,你先思考一段時間。”
“是,前哥。”
向前繼續分析:“對特性匹配以后,就很容易發現‘金角銀邊草肚皮’的道理,或者說得出這個棋理性質的結論。至于韓東提到的‘試’的方法,大家都熟悉,我們不作討論。而推理和‘試’相結合的方法,就是我們的方向,先推理,得出分目標,推不下去了,就用試得出結論。‘試’不下去了,就用蒙特卡洛搜索樹選一個最可靠的選項,韓東,這正是我們在雁翎度假酒店時討論后得出的結論。”
韓東道:“是的,前哥。”
鄧強道:“前哥,這里有一個難點。”
“請說。”向前道。
“這個推理的‘理’剛才我們研究過了,暫時電腦還不能自己推出,只能靠編程序的人告訴電腦。如果編程序的人自己對圍棋的‘理’理解都不深刻,又怎么可能編出高水平的程序呢?”
向前道:“你這個問題我考慮過。我們只能分階段來。先依據我們自己的水平編出一個初步的程序,我的業余段位是七段,根據電腦強大的運算能力,我認為我們自己編出來的程序很可能有專業初段以上的水平,可以和九段讓兩子互有勝負了。這已經是國內一流的圍棋程序了,這個時候,我們找一些二三線的八九段加盟我們的程序提升一下棋理就可以了。”
鄧強道:“我們的圍墻程序就相當于把一個九段棋手的大腦的運算和記憶能力換成電腦的運算和記憶能力,水平應該是超級恐怖的。”
“那就不是九段了,很可能是三十段,一百段。”韓東道。
向前道:“你封它個一百段吧,聶衛平才九段呢。”
三人皆笑。
韓東道:“等我們的‘超級腦’做成了,不知道會怎樣。”
鄧強道:“我估摸,‘超級腦’進入實用,起碼得三五年。到它成長成熟,得十年以上。”
向前道:“按常理是這樣。”
不按常理呢?向前沒有說。沒把握的事情亂說出去,就成了吹牛。
“我們這樣編出來的程序,能不能打敗貝塔啊?”韓東有點信心不足。
向前道:“按棋理編制的程序會和按電腦傳統方法編出來的程序完全不同。你們想啊,在九段的眼中,棋盤上的棋都按照一塊一塊,一條龍一條龍這樣看待的,被這樣分割以后,盤面上可落子的點其實不多,所以人腦這么慢的運算速度和這么小的記憶容量也能下出正確的著法。如剛才鄧強所說,我們這種方法,等于把人腦的運算和記憶能力換成了電腦的能力,這的確很恐怖。譬如貝塔用蒙特卡洛搜索法計算后面三十步的變化,我很可能是七十步八十步甚至上百步,誰優誰劣不是一目了然嗎?誰勝誰負也是預料中的事了。只是,棋理這種東西轉化成程序,要付出艱辛的努力。”