階梯上的思索

為何我寫作?------我心中所蘊蓄的必得流露出來,所以我才寫作。
個人資料
歸檔
正文

走近人工智能——寫在AlphaGo與李世乭鏖戰前夕(七之一)

(2016-02-16 09:31:21) 下一個

前言

二〇一六年一月二十八日,一條石破天驚的消息在人工智能及圍棋界爆出:穀歌公司研製的智能圍棋軟件AlphaGo於去年十月以5:0完勝歐洲圍棋冠軍樊麾二段。接下來,AlphaGo將乘勝追擊,挑戰世界圍棋頂尖人物李世乭九段,雙方將於三月九日至十五日期間在韓國首爾舉行五場對抗賽。

人類經過多年不懈的努力,終於開發出了能在不被讓子的情況下擊敗職業圍棋選手的電腦軟件。這意味著什麽?人工智能的這項標誌性進展是不是意味著我們距離“機器統治人類”的時代不遠了?機器真的像我們想象的那麽聰明嗎?

本文試圖從圍棋的人機對弈問題入手,以最淺顯的實例來闡述人工智能的基本機理,讓大家對這一貌似高深而神秘的領域有所了解,對人類社會近期的發展走向做到心中有數。

本文屬於科普文章,對象是對人工智能及圍棋一竅不通但又對這方麵的知識懷有很強好奇心的讀者。文中沒有任何數學演算和專業術語,全部用人們熟悉的普通實例去闡述人工智能的基本概念。全文將分為七次連載。

一、從國際象棋說到圍棋

1996年2月,由IBM研製的名為“深藍”的巨型電腦首次挑戰國際象棋世界冠軍卡斯帕羅夫(Garry Kasparov),在總共六局的比賽中,有兩局下成平局,其餘均是卡斯帕羅夫獲勝。後來IBM的研究人員將算法加以改良,於1997年5月再度挑戰卡斯帕羅夫。這一回“深藍”表現不凡,以二勝、三平、一負的總成績取得了勝利。電腦首次在國際象棋這項賽事中擊敗了人類最為聰明的大腦。

消息傳出,世界為之震驚。人們紛紛猜測離機器統治世界的時間還有多遠。然而圍棋界的朋友們在得知這一結果後卻不屑一顧地說:不用擔心,電腦國際象棋的能力雖已超出人類,不過我們還有圍棋可以自豪,圍棋才是代表人類智慧最高水準的遊戲。

圍棋起源於中國,表麵上看它是一種非常簡單的遊戲:黑白兩色的棋子擺在361個方格點之上,誰圍的地盤大誰就獲勝。然而在真正對弈時圍棋棋盤上卻能夠風雲突變、殺機四起,方寸之間產生讓人歎為觀止、無窮無盡的變化。人們經常把圍棋和詩歌、繪畫、音樂、醇酒、哲學、信仰甚至人生相聯係,將棋盤上的對弈視為一種既高雅又極富挑戰性的藝術。

圍棋的這種複雜性讓很多人工智能專家感到不知所措。他們撰寫了大量的論文,發明了一條又一條理論,試驗了一個又一個算法,將精心寫成的軟件搭載在每秒能處理億萬條指令的電腦上。然而這些努力在人類發明的遊戲麵前均顯得微不足道。棋聖聶衛平就曾預言:圍棋博大精深,變化無窮,恐怕再過3000年,電腦也勝不了人腦。韓國九段棋手劉昌赫則認為,至少要到五十年後計算機圍棋程序才能戰勝世界頂級高手。

圍棋於黑白之間所展現出來的魅力讓很多高智商的人為之著迷。上世紀五十年代,身居普林斯頓大學的愛因斯坦從一位日本同事那裏學會了下圍棋,後來他還得到了日本棋院頒發的榮譽段位證書。電腦祖師爺阿蘭•圖靈更是一個圍棋迷。二戰期間,阿蘭•圖靈在破譯德軍密碼係統的同時不但自己熱衷於下圍棋,還將這種遊戲推薦給同事。

相對於國際象棋來說,圍棋的人機對弈在過去五十年裏進展緩慢。最早的國際象棋人機對弈軟件出現於五十年代,阿蘭•圖靈自己就曾親手寫過這樣的軟件。到了七十年代,電腦的國際象棋水平已經相當高了。而在圍棋領域,到1962年為止,公開發表過的圍棋軟件隻有兩則,並且它們都沒有真正和人對弈過。

1968年,美國威斯康辛•麥迪遜大學(University of Wisconsin-Madison)數學係出了一位天才,此人名叫阿爾弗雷德•佐布裏斯特(Alfred Zobrist),他後來對遊戲理論有很大的貢獻。當時他正在攻讀博士學位,專門研究模式識別方麵的課題。作為博士論文的副產品,他寫出了一則圍棋軟件,能正式和人麵對麵地進行圍棋博弈。從今天的眼光來看,這則軟件實在太小兒科了,因為它唯一能打敗的隻有那些剛學了三天半圍棋的新手。不過這仍然是一個非常令人振奮的飛躍。從那以後,各路英豪便將大量的時間、金錢及智慧貢獻到圍棋人機對弈這個極富挑戰性的課題當中。然而,令人沮喪的是,此後的四十來年間,電腦的圍棋水平始終沒有取得令人矚目的進展。

為什麽圍棋軟件這麽難寫呢?要理解這個問題,我們得先說說電腦是如何思考的。

如今電腦已走進千家萬戶,每日做著讓我們驚歎不已的事情。然而,假如我們仔細看看電腦最底層的工作原理,恐怕每個人都會覺得電腦實在是個超級低能兒。

下麵我們來看真正的圍棋問題。在這裏先說一句,您完全用不著懂圍棋,而且越不懂圍棋越容易比較出人腦與電腦的差別。

且看棋盤:黑子擺在了B-1的位置,現在輪到白子走,請問白子若想圍住黑子,應該往那裏下子?

這是個用腳都能想清楚的問題,白子當然應該下在C-2的位置了。請注意,這和圍棋能力無關,即便是一個正在上小學從未接觸過圍棋的孩子,也會給出正確的回答。

如果你問人為什麽會這麽想,得到的答案恐怕隻有一個:不知道,就是覺得應該這麽下,直覺。

然而這個人類閉著眼睛就想得出答案的問題,卻會讓電腦抓瞎的。你要是問電腦這個子該下在哪裏,它首先會去查圍棋規則:由於圍棋規定你的棋子隻能擺在空著的格點上,因此棋盤山共有24個可以下子的地方:A0到A4,B0,B2到B4,C0到C4,最後一直到E4。對,除了已被黑子占領的B1,電腦都覺得可以下子。

哪有這麽弱智的下法?對,電腦就是這麽弱智。很多我們人類覺得輕而易舉的事情,對電腦來說簡直比微積分、數論、群論、場論這些艱深的理論還要難上千萬倍。

雖然電腦很弱智,但它也有自己的強項,那就是每秒可以進行億萬次的高速運算。因而電腦在和人類對弈時,絕對不會去比誰更聰明,而是比誰的蠻力更大。

還以這個5x5的棋盤為例,讓我們以電腦的思維來下這盤棋。就從的最傻的一招開始吧:首先電腦會想,假如我先走E-4,那麽接下來對手有23種下法,讓我假定黑子走E-3吧,再假定我接下來走E-0,再假定黑子接下來走D-4,噢,我被吃了一個子,這種下法不大靈。

電腦又回到原點:還是假定我先走E-4,但接下來黑子不走E-3,而是走D-4,我走E-0,黑子走E-3,噢,我被吃了一個子,這種下法還是不大靈。

電腦繼續試下去,還是自己先走E-4,一直到把所有的可能性都琢磨一遍後,才會怏怏地思忖,嗯,看來E-4不是一步好棋,現在讓我來試E-3。

別發笑,電腦就是這麽下棋的。

對於5x5的棋盤,電腦才不把它當回事呢。即使把所有的可能性都列出來,不就是若幹億億種可能性嗎?我隻需把這些可能性全部羅列出來,看看哪種下法最後我能贏,就會知道這一步該往哪裏走了。要是一台電腦不夠,就多弄它幾台:一台列舉我先走E-4的可能性,一台列舉我先走E-3的可能性,反正你人類的大腦比不過我矽片上的CPU。

人類不動聲色地說,莫急莫急,真正圍棋盤的大小並非5x5,而是19x19,比這個用來舉例的棋盤大14倍還多。

電腦聽到這個數字後,立刻暈了菜。

待續

階梯講師原創作品•謝謝閱讀

[ 打印 ]
閱讀 ()評論 (1)
評論
shamrock100 回複 悄悄話 好, 有意思。
登錄後才可評論.