AlphaGo
選自量子雜志
機器之心編譯出品
編譯:孫閏松、Not_God、微胖
圍棋游戲程序捕捉到了人類直覺要素,這一進展有望產(chǎn)生深遠影響。但是,作者并不認為AlphaGo 本身是一次革命性突破,毋寧說,它在這個極其重要的研發(fā)中處于領先地位:打造捕獲直覺,學會識別模式系統(tǒng)的能力。計算機科學家已經(jīng)努力了幾十年,卻沒有取得重大進展。如今,神經(jīng)網(wǎng)絡的成功有望極好地擴大我們使用計算機解決問題的范圍。
1997年,IBM 深藍擊敗了世界象棋冠軍,卡斯帕羅夫。那時,這場勝利被廣泛描述為人工智能的里程碑。但是,結果表明,深藍的技術對象棋有用,沒有其他什么意義。計算機科學并未經(jīng)歷一場變革。AlphaGo,這個最近擊敗史上最強圍棋選手的圍棋游戲系統(tǒng),會有不同嗎?
我相信答案是肯定的,但是,并不是因為你可能聽過的那些解釋。許多文章提供專家證據(jù),證明圍棋比象棋難,這讓這場比賽更加令人印象深刻。或者他們說,我們并不期待計算機會在以后十年里贏得圍棋,因此,這是一個更大的突破。一些文章提供了(正確的?。┯^察,較之象棋,圍棋有更多的落子可能性,但是他們并沒有解釋,較之人類,為什么這會對計算機造成更多的困難?
易言之,這些主張并沒有解決核心問題:讓AlphaGo贏得勝利的技術進步會有更廣泛意義嗎?為了回答這個問題,我們必須首先了解在何種方式上,導致AlphaGo的那些技術進步與導致深藍的技術進步相比,有著質的不同,也更為重要。
國際象棋游戲中,初學棋手會學習對一個象棋棋子形成價值的概念。在一個系統(tǒng)中,一個馬或者象相當于三個卒。一個車,活動范圍更大,相當于五個卒?;屎?,活動范圍最大。國王價值無限,丟掉國王等于輸了一盤棋。你能使用這些值預估怎么落子。放棄一個象,取對手的車?通常,這是個好主意。放棄馬 和象,換取對手的車?這可不是個好主意。
在計算機國際象棋中,這種價值的概念非常關鍵。絕大多數(shù)計算機象棋程序搜索百萬或數(shù)十億的落子和對抗手段組合。程序的目標就是找到一系列落子方式,將系統(tǒng)的棋盤位置的值最大化,無論對手的落子順序如何。
早期國際象棋程序評估棋盤位置,使用的是諸如‘一象抵三卒’的想法。但是,后來的程序使用了更加具體的象棋知識。比如,深藍,組合了8,000多個不同功能因素,用于評估棋盤位置。深藍并不只考慮一個車等于五個卒。假如同一方的卒位于車的前面,那么,卒會限制車的活動范圍,減損車的價值。然而,如果卒被用作‘杠桿’(levered),意思是,能夠通過捕獲對手的卒而給車讓路,深藍會認為卒是半透明的( semitransparent),而且不會同樣減損車的價值。
類似這樣的想法,需要象棋細節(jié)方面的知識,這也是深藍成功的關鍵。根據(jù)深藍小組撰寫的技術論文,在深藍與卡斯帕羅夫的第二場對弈中,這個半透明的、作為杠桿的卒的概念至關重要。
最終,深藍研發(fā)人員采用了兩個主要想法。首先,打造一個功能,吸收許多象棋知識并評估給定棋盤位置。第二,使用巨大計算能力評估許多可能的落子位置,挑選一個,促成可能最好的最終棋盤位置。
如果將這一策略運用到圍棋上,會發(fā)生什么?
結果表明,嘗試過程中,你會碰到一個難題。問題在于想辦法評估棋盤位置。頂尖圍棋選手大量使用直覺來判斷一個特定棋盤落子有多好。比如,他們會就‘良好狀態(tài)’的棋盤位置做出模糊陳述。而且如何用簡單、界定清楚的系統(tǒng)(比如,象棋棋子的價值)來表述這種直覺,并非立即一目了然。不幸的是,用傳統(tǒng)套路來解決這個問題,即使經(jīng)過數(shù)十年的嘗試,仍然沒有找到顯而易見的方式來應用搜索策略(就像國際象棋那么成功),圍棋系統(tǒng)依然讓人失望。情況發(fā)生變化是在2006年,那年引入了所謂的蒙特卡洛樹搜索算法,這種算法嘗試一種新的評估辦法,其基礎是一種更加聰明的隨機模擬游戲的方式。但是,圍棋程序仍然落后人類棋手一大截。對棋盤位置的強烈直覺似乎才是成功關鍵。