設萬維讀者為首頁 廣告服務 聯繫我們 關於萬維
簡體 繁體 手機版
分類廣告
版主:彎刀
萬維讀者網 > 競技沙龍 > 帖子
ZT墨綠 (1)
送交者: cruiser 2004年02月15日20:44:52 於 [競技沙龍] 發送悄悄話

◆               墨 綠

               ·萬精油·

  墨綠的出現,同時震驚了中日韓三國棋院,一個共同的問題是:墨綠究竟是誰?

                ——人民日報體育版2005年9月10日

  看着《人民日報》的這篇報道,我心裡充滿了喜悅,自豪和得意。這世界上除我之外再沒有第二個人知道墨綠的真實身份了。

                一.引子

  話要從大約十年前說起。由IBM科研小組研製出來的“深藍”國際象棋程序,戰勝了當時的世界第一高手卡斯帕洛夫,西方輿論界為之譁然。被西方人作為第一智力遊戲的國際象棋,人類被機器打成下手,驚呼當然是很自然的。但是,在一片叫好聲中,紐約時報有一篇報道卻在幽默中表現出冷靜。它說:“我們這裡的大呼小叫,最多讓亞洲人(日本,中國和韓國)伸伸懶腰,不以為然。因為對他們所玩的遊戲——圍棋——來說,計算機還處在原始時代”。

  計算機圍棋程序處在原始時代,並不是因為沒人重視。事實上,相當大的人力物力投入了圍棋程序的開發。個人的,集體的;有計算機專業人員,也有職業棋手。最大的投入要數日本,他們的第五代機算機開發的一個重要課題就是圍棋程序。台灣的億萬富翁應昌期先生生前還為此設了巨額獎金。說是在二十世紀末如有計算機程序戰勝台灣職業棋手,則可得一百萬美元的獎金。如此種種,目前的圍棋程序卻仍被冠以“原始時代”的雅號,追究起來其主要原因是圍棋太難。國際象棋與它的難度相差不是一兩個數量級的問題。

  我對圍棋程序的熱衷由來已久。我寫過很多別的遊戲程序,但對自己最喜愛的圍棋卻一直沒敢寫,因為不知從何下手,想得到的思路別人早已試過了。這個願望一直懸在那裡,心裡放不下,手上又搞不動。九八年上半年事情開始有了轉機。由於工作需要,我接觸到一些遺傳編程(GENETIC PROGRAM-MING)的東西。有一天讀一個樣板程序,突然想到也許可以用同樣的思路來寫圍棋程序。程序開始的好壞不要緊,關鍵是要有很好的鑑別函數使其能合理地進化。

               二.原始版

  照着樣板程序,很快就寫了一個原始程序。它沒有任何高級技術,只懂得提子規則以及最後的點目。基本的想法是讓它自己與自己下,利用它懂得的這兩點基本功能來進化出高級技術。這樣做成功的先例是有的。有人用這種想法寫過一個BACKGAMMON的程序,沒有任何高級技術,完全利用基本規則,在它自己與自己下完五萬盤以後,進化出一個可以與人類最強手對抗的程序。不幸的是,同樣的想法不能搬到圍棋上來,因為圍棋的變化實在是太多了。事實很快證明了這一點。我的原始程序進化來進化去,全是盲目的,看不出一點朝着好的方向前進的跡象。根本算不上進化,最多只能叫變化。看來完全靠原始程序是不行的,還得加一些高級一點的概念,比如角上的基本對應以及群體死活(而不是每顆子的死活)概念。從理論上來說,這些概念都可以從基本規則中推出來。但是,因為影響進化的因素幾乎都是局部的,像群體死活這類的高級概念很難進化出來,但這些概念在基礎階段卻尤其重要。

  加進這些高級概念以後,情況開始有了一點起色。要死的棋居然知道逃。雖然明明逃不出去,但從局部來說,能延緩死亡時間就是進步。因為是程序同程序下,逃不出去的棋有時也居然就給它逃出去了,這又進一步強化了這種愚蠢的下法。但不管怎樣,相對於先前的盲目變化,這種暫時性的進步也是很可喜的。許多別的高級概念也似乎有了一些模型。不過,從一些明顯的愚蠢變化中,我也發現了許多原始程序的問題,並做了相應改動。就這樣程序自己的進化加上我的隨時改動,半年以後這程序居然有了一點會下棋的樣子。再也沒有自己撞緊氣之類的明顯錯誤,偶爾竟然會走出枷這樣的概念。這種時候我感到特別的驚喜。估計照這樣下去,它就會逐漸強大起來。

  遺憾的是事情並不按照這種理想的路子走下去。初始時期的快速進步逐漸緩慢下來。因為總是程序跟程序自己下,沒有外來的影響,基因庫很快就達到局部穩定狀態。不管再讓它們自己下多少盤,結果總是在原地打轉。而且,通過半年的進化,中間的一些程序我已經看不懂,也不可以像開始那樣任意加上我的改動。當然我可以同它下,讓它從我的下法中取得新變化的基因。但這種辦法是幾乎不可以想象的慢,因為進化的過程需要很多很多盤才可以實現,而我是不可能一天二十四小時都陪它下棋的。而且我也不會摹仿壞棋,我的棋下出去都是這程序不可以接受的跳躍。於是這程序就這樣死在那裡。

  由於我的心思完全套死在這個程序上,一個明顯的出路放在那裡我竟然一直看不見。現在想起來很自然的事,當時卻一直想不到。我在網絡上下棋好多年了,但一直把它當成消遣娛樂的地方,從來沒有想到過我的程序也可以從上面學棋。有一天我突然意識到,只要寫一個界面程序,就可以把它一直掛在網上,一天二十四小時與人對弈。

               三.網上學棋

  網上下棋的人很多,各種水平的都有,而且風格各異,正適合我的程序用來學棋。我的程序掛在那裡,只要有人邀請,不管什麼水平,馬上就跟他下。這樣一天二十四小時下下來,比我跟它下不知好了多少倍。一方面時間多,另一方面網上可以找到很多初學者,學起來恰到好處。但真正的進化需要很多這樣的機會,一天二十四小時我仍然嫌不夠。於是我又給我的界面引進了多線功能,也就是說同時可以有好幾個同樣的程序在下棋。只要有人邀請,他就馬上開一盤。這樣一來每天都可以下很多盤,進化的機會也就多起來。每到周末我就對程序作一次全面整理。一個月以後,我的程序有了明顯進步。而且居然有了帶星號的27級。雖然很差,但比起最低級別,還算是贏面占多。這使我很興奮,這至少說明它是在進步,而且這是在沒有我介入的情況下獲得的。又過了一個月,它又升到26級。高興之餘也發現了新問題。

  這所謂自我學習,就是要不斷產生新的子程序,新的模式。久而久之,程序就變得越來越大,運行起來就越來越慢。像生物學上的進化一樣,新產生出來的東西並不是都有用的。事實上,我們人類的DNA鏈上絕大部分都是沒有用的。開始階段我還可以用人工的辦法把那些沒有用的東西去掉。到後來,新產生的東西越來越多,靠人工是完全不能勝任了。而且,最嚴重的是,我的判定並不可靠。我認為沒有用的東西或許在意想不到的地方有用。這個問題困惑了我很久,我的程序也從網上取了下來,因為我不能再讓它產生新的子程序。

  正在我不知從哪裡突破的時候,有一天在網上看見一篇講進化論中的用進廢退原理。我突然意識到我的程序中就缺少這麼一個機制。於是,我就在我的程序里加了這樣一個檢驗程序。如果一個模式或者一個子程序在一定時間裡沒有被調用過,主程序就自動把它去掉。這樣一來,它雖然失去了一些可能產生好基因的途徑,但主要障礙清除了,又創造出許多別的機會。很有意思的是,我發現有一個子程序被調用的特別多,就把它取出來看一看。一般來說它自已進化出來的子程序我是看不懂的。但我這次存了心一定要看它是幹什麼用的。花了好幾個晚上一步步地看,終於發現它居然是用來判斷征子是否有利的。這種子程序都能進化出來,我對它的前途產生了很大的信心。

  重新上網以後,每天都有新程序產生,也有一些舊程序和模式被清除。程序逐漸快了起來(因為開始堆積的廢物太多)。等級分又開始往上走,半年以後升到了15級。這時候它的棋已經下得有模有樣,尤其是局部戰鬥,已經有一定的殺力。但圍棋不是單靠局部拼殺定勝負的,必須要有整體觀念,而這整體觀念是不能從15級的對手中學來的。這程序又像上次那樣停在那裡,長久沒有進步。好幾個月都一直是15級。

               四.向專家學棋

  一般來說進化都是局部性的,在局部上有優勢的走法就很自然地被保留下來,這樣永遠也不會有整體觀念的突破。雖然加進了突變的概念,但也最多產生出枷、飛、伸大腿這樣的局部技術,棄子取勢這樣的整體觀念是不可能自動進化出來的。

  有一天我在網上看富士通決賽,好幾步棋都看不懂,仍然看得精精有味。突然想到要學棋並不一定只學完全懂的棋。專家的棋看多了,走起棋來自然而然就有了好形,而且也知道什麼地方是大場。所謂“熟讀唐詩三百首,不會作詩也會吟”就是這個道理。想到了這個思路,剩下的就好辦了。專家的棋網上有的是,要多少有多少。幾個晚上就從網上搞來了上千盤棋譜。我先給我的程序加了一些模式識別的功能,然後就讓它沒日沒夜地打起譜來了。從打譜中學會了占大場,占完大場後接下來的變化它並不清楚。但這不是什麼問題,因為這些變化大都是局部的,而我這程序的強項就是局部變化。幾個星期下來,再把它放到網上的時候,棋力已經大長,在同級棋手中所向披靡,很快就升到7級,然後與7級的棋手盤旋了幾個星期又慢慢地升到6級,5級,4級。

  我這個程序的成長與我們大多數人學任何新東西一樣,都是一個階梯一個階梯地上。許多人到了某個階梯,因為沒有明師指點,就長期停在那裡。我自己就認識很多下棋十幾二十年都不長棋,打牌十多年不長牌,打球十多年不長球的人,因為他們總是邁不過眼前這個階梯。這是由遊戲本身內在的複雜性所決定的,與學它的人無關。我這程序也一樣,每過一段時間就要遇見一個階梯而停步不前。IGS的4級似乎就是這樣一個階梯。它長到4級以後就再也不長了,長期停在那裡。

  說起來,IGS的4級已經比現在其它所有的圍棋程序高出一大截,如果拿出去賣已經很可以大賺一筆了。但這不是我想要的,我的最終目的是要產生一個戰勝專業棋手的程序。IGS的4級與專業棋手還有很大的差距。雖然如此,這個級別的棋已經有相當的水平,再往上進步已經不能單靠計算,還要講究對棋有感覺。而感覺這個東西是現在的任何程序都不具備的。這次停下來,一停就是半年。雖然也隨時在網上與別人下棋,但總是沒有長進。出路在哪裡呢?

             

0%(0)
標 題 (必選項):
內 容 (選填項):
實用資訊
回國機票$360起 | 商務艙省$200 | 全球最佳航空公司出爐:海航獲五星
海外華人福利!在線看陳建斌《三叉戟》熱血歸回 豪情築夢 高清免費看 無地區限制
一周點擊熱帖 更多>>
一周回復熱帖
歷史上的今天:回復熱帖
2003: 阿呆的情人花
2003: 阿呆的驢
2002: 顧家隊和春節腕會
2002: 也說雙人滑--想起熊倪