階梯上的思索

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

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

(2016-02-19 09:16:27) 下一個

二、實力分析

19x19 是 5x5的15.24倍。電腦的計算是以每秒多少億次來衡量的,為什麽棋盤大了十幾倍它就無法應對了呢?

前麵說了,電腦下棋沒有別的招,隻有把接下來可能出現的所有落子一步不拉地想清楚,才能決定剛才這個子下得對不對。

人難道不是這樣下棋的嗎?衡量棋藝的好壞,難道不應該看棋手能往前目算多少步,從而可以提前預知勝負的能力嗎?

一點兒都沒錯。業餘棋手在下棋時,一般隻能目算十幾步;而職業高手則能夠目算幾十步甚至上百步。目算能力的確可以作為衡量圍棋選手水平高低的指標之一。

然而問題在於,人在下棋時,目算的都是有意義的走法。那些顯而易見的昏招或平庸的落子,在潛意識中早就被淘汰掉了。人在做目算時,看到的全都是極為關鍵的落子。

然而,對於電腦來說,昏招和妙招是沒有任何區別的。人在下棋時,絕不會輕易把自己的棋子往對方已設好的口袋陣裏擺,人的大腦無須做任何演算就知道那是一個極其危險的舉動。電腦則不然,在沒有看到接下來所有的落子都會被對方殺得片甲不留之前,它不會意識到任何危險。

讓我們把國際象棋和圍棋做一番量化比較:

  • 棋盤大小:國際象棋8x8=64,圍棋19x19=361。
  • 棋子類別:國際象棋每方16種棋子,圍棋每方一種。

國際象棋棋子的種類雖然多,但正是由於這個原因導致下棋時可走的招數並不很多:你隻能挪動棋盤上自己一方的棋子,因而這個數目一定是小於或等於16的。

換句話說,對於一個隻懂規則而不懂棋道的人來說(其實就是電腦),第一步可供選擇的國際象棋走法不過16種(考慮到有的棋子可以走不同的步數,這個數字應該在20左右)。而圍棋呢,由於你可以在棋盤上任何一個空著的地方擺子,因而總共的可能性是361。

現在該對方下了。由於國際象棋是對稱的,因此,第二步也有16種走法。圍棋呢,由於一個位置已被占掉,因而隻剩下了360種走法。

國際象棋的第一步有16種走法,第二步有16 種,因此,前兩步的總走法有16x16種可能性。圍棋的前兩步下法則有361x360種。

這就是電腦懼怕圍棋的原因:僅僅是前兩步,圍棋的複雜程度已經是國際象棋的500多倍了。然而噩夢並不止於此。對於國際象棋來說,棋盤上每吃掉一個子,複雜程度就會降低一個維度,因為棋手能動用的棋子少了一個。而圍棋則要複雜得多:即使你已經占了一大片地盤,這片棋子也有可能被對方吃掉。那樣的話,可能性又會大大地增加。電腦在和人下棋時,必須考慮這一因素。然而,要把這也算清楚,恐怕是不可能的。如果棋盤上每個地方的子都可以反複地被吃掉後又擺回去,那麽接下去演繹出來的可能性就是無窮大了。

棋盤從5x5變為19x19,麵積擴大了不少,但並沒有大到邪乎的地步。然而這一來,棋子的下法卻擴大了不知多少個數量級。這個數字到底有多大呢?穀歌官方博客裏列出了這個數字,1後麵跟171個零,比宇宙中存在的原子總數還要大!

說了半天電腦的邏輯,那麽人在下棋時就沒有這種問題嗎?

真就沒有,就像前麵舉過的5x5棋盤的例子,當黑子第一步擺在B-1之後,人會毫不猶豫地選擇走C-2。假如你問為什麽這麽走,人會撓撓頭說,這樣走當然是有道理的。因為假如接下來黑子走C-1,我就在D-1堵,假如黑子走B-2,我就在B-3堵。

這樣的邏輯聽上去很嚴絲合縫,然而對電腦是說不通的!電腦會問,你怎麽知道黑子接下去會走C-1或B-2,別的可能性多著呢!比如說黑子可能走A-0呀,也可以走E-4(OMG!),再不行,走對你有點兒威脅的D-3,這些可能性你都考慮過了嗎?

從嚴格的邏輯上講,電腦也沒錯,人是在沒有嚴格證明這些走法不正確的情況下選擇C-2的,這倒不是人喜歡偷懶,而是因為人的大腦根本轉不過來那麽多可能性。人在選擇C-2的時候,在不知不覺中就選擇了一個最佳走法;更有甚者,人在假象對方反擊的招數時,也不知不覺地選擇了那種情況下的最佳走法C-1或B-2。人的內心好像很清楚:除了這些走法之外,其他全是更昏的昏招。

人是怎樣在無意中看到這些好棋的呢?這正是令人工智能專家困惑多年的一個難題。假如人能夠說出來自己潛意識的全過程,電腦工程師則可以根據其邏輯仿造一個程序,那樣的話,電腦戰勝人類就不成問題了。

然而,讓人工智能專家感到沮喪的是,任何一個圍棋手,不管他是專業的還是業餘的,給出的回答都一模一樣:這步棋我看到了,然而看到了就是看到了,我也不知道自己是怎麽看到的。棋手就是這樣煉成的。

人腦的這種神奇功能是從哪裏來的?以下的解釋純屬筆者個人的推斷,沒有任何理論依據。

人從一生下來就開始接觸這個世界裏的所有事物,積累各種不同的經驗。這些完全不相關的經驗在人腦中是相互作用的。舉個通俗的例子,你小時候被狗咬了一口的經驗對你長大後碰到歹徒搶劫時所產生的反應是有影響的。你小時候被同桌女生欺負的經驗對你長大後害怕談女朋友的行為也是有關聯的。人工智能發展到現在,雖然也開始向人一樣學習過去的經驗,但還沒能做到讓完全不相幹的事物一起進入決策機製。

再回到前麵5x5圍棋盤上來。一個人雖然可以沒下過圍棋,但他很可能有過下述經驗:看見貓在牆角圍堵一隻老鼠;被學校裏那個欺負人的大個子趕到牆角;看見警察把一個壞人逼到牆角……即使你在現實生活中沒有經曆過,你在電影、畫報、小人書上也肯定見過類似的場麵。

當你看到這個5x5的圍棋盤,腦子中的潛意識會把這些場景調出來加以比較:那黑子不就是老鼠,被欺負的同學,或警察追捕的獵物嗎?在這種情況下,獵手處在哪個位置會最容易捕獲到獵物?

於是人憑借這毫不相幹的生活經驗,在從未學習過圍棋的情況下也能找到最佳下法。這樣的能力,電腦運算速度再快,也沒法做到。因為,它畢竟沒有上過幼兒園,沒有上過小學,弄不清抓蛐蛐逮螞蚱下河摸魚是咋回事。而這些存儲在人的大腦中的潛意識,是人類能夠產生直覺判斷的主要因素。

筆者以為,即使是那些不食人間煙火的圍棋精英們,也必須依靠各種生活經驗來提高圍棋技能。在對弈時,棋盤上的任何一個微小的變動都會激起圍棋選手潛意識中的無窮聯想:試探虛實、高枕無憂、全力進攻、退避三舍、危險臨近、舍生取義、兩敗俱傷……,而圍棋選手就是通過這些潛意識中的聯想來決定下一步該如何落子。

棋手在看一盤棋時,看到的絕不隻有黑白兩種棋子。在棋手的腦海中,棋盤上的棋子是和現實世界中各種栩栩如生的概念息息關聯的。比如說,把一塊棋看成是根據地,把根據地邊上的幾個子看成是哨兵,把將要打入對方腹地的子看成是先鋒……有了這樣的對應,在對方落子的一刹那,自己立刻就會做出反應:對方想要偷襲根據地後方,想要切斷左軍和右軍的聯係,想要聲東擊西或是沾點兒小便宜?

棋手棋藝提高的過程,便是這種潛意識思維逐漸成熟的過程。棋手見過的棋局越多,對自己當前處境的判斷也就越精準,於是便能夠立即通過直覺判斷出哪裏出了危險,哪裏需要加強,自己的通盤部署在哪裏遇到了阻礙……如此這般,下一招該在哪裏落子也就顯而易見了。

人工智能專家把這一切一五一十地向電腦和盤托出,告訴它人腦的運行機理。專家還解釋說由於電腦的內存裏沒有存儲任何來自現實生活的經驗,因而想靠模仿人類的潛意識思維來編寫下棋軟件是不可能的事。

電腦聽完後極為沮喪,它想,既然自己缺乏從咿呀啼哭到長大成人的人生閱曆,那麽今生今世想要在圍棋盤上戰勝人類恐怕是不可能的了。

人工智能專家對電腦說,其實你還是得發揮自己的特長,依靠蠻力去下棋,隻是要想辦法把這蠻力用得不那麽野蠻……你且附耳過來,我看你可以如此這般、這般如此、這麽這麽這麽辦。

電腦聞之,如同打了嗎啡一般跳將起來,道:言之有理,這下我有取勝的希望了!它當即頂盔貫甲、罩袍束帶、係甲纜裙,手提一杆明晃晃的丈八蛇矛槍,哇呀呀一聲怪叫衝出大帳。一邊走一邊想,來來來,人類的直覺,俺要與你大戰三百回合!

待續

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

[ 打印 ]
閱讀 ()評論 (2)
評論
階梯講師 回複 悄悄話 回複 'shamrock100' 的評論 : 感謝您這麽多的鼓勵,其實寫文章的主要目的就是把自己的思路理清楚,如能與大家分享則更是錦上添花。
shamrock100 回複 悄悄話 把複雜的問題深入淺出講明白, 真功夫也, 階梯講師不虛也!
登錄後才可評論.