阿爾法狗和薛定諤貓
來自古哥古點
00:00 09:17最近一個星期,在全世界掀起霸屏狂潮的是一個叫狗不是狗的電腦AlphaGo。這台超級計算機和韓國九段高手李世乭的圍棋對決不僅牽動了無數圍棋愛好者的目光,而且被許多評論者認為是人類在人工智慧領域發展的一個里程碑。關於這五番棋對戰的棋局進程已經有了眾多解說,今天我們通過這隻狗和另一隻貓來講解AlphaGo的運作原理和智能計算的未來。敬請收聽。
阿爾法狗
準確地講,AlphaGo是DeepMind公司研發的一套在超級計算機上運行的圍棋對弈程序。長久以來,人們一直認為圍棋是最能體現人類智能的遊戲,因為在圍棋對弈中,變化之複雜難以窮盡,所以不僅要靠計算和記憶,更需要靠人類的直覺,而感覺是計算機難以領悟的。所以儘管憑藉超強計算力的計算機早在上世紀末就已經在國際象棋領域完勝人類世界冠軍,但圍棋一直被認為是人工智慧的禁地。
國際象棋世界冠軍卡斯帕羅夫1997年被「深藍」戰敗
不過在人工智慧領域的科技人員看來,圍棋儘管非常複雜,但仍然是一種明確的、逐步進行的、有限變化的計算任務,因此取得突破只是時間問題。果然AlphaGo如今的表現明白無誤的證明了這一點。2015年10月,他以5:0完勝歐洲職業圍棋冠軍樊麾二段。短短5個月後,2016年3月他又成功的戰勝了世界圍棋最強者之一的李世乭。
AlphaGo挑戰李世乭
那麼這隻瘋狂的狗究為什麼這麼厲害呢。其實厲害的不是機器,而是背後的人,來自DeepMind的黃世傑團隊。傳統的圍棋設計程序更多的都是從規則入手,希望把人類圍棋高手的經驗和行棋技巧用程序語言儘可能完整的描述出來,讓計算機掌握,利用計算機豐富的記憶力,能夠在實戰中選擇這些已經制定好的教條來與人博弈。然而這樣的程序設計思路似乎遇到瓶頸,不論怎麼調整和改變或者提升計算機的性能,棋力總是難以提高。根本的原因之一就是這樣的模式太教條而無法應對千變萬化的棋局。
DeepMind團隊
黃世傑提出了全新的思路,利用近期在許多應用領域取得重要成果的深度學習技術來提高計算機下圍棋能力。他使用的基本模型叫做「深度卷積神經網路」。這個名詞聽起來非常深奧,但是理解起來並不困難。這個工具其實是一個分類器,主要解決分類或者等價於分類的問題。生活中大量的問題其實都是分類問題,比如垃圾郵件過濾就是把郵件分成正常和垃圾兩類,天氣預報就是把不同區域分成晴、陰、雨、雪等類,精確廣告推送就是把用戶分成戶外、母嬰、體育健身、影視娛樂、電影、吃貨等類,人臉識別就是把面部圖像分成「是你」或者「不是你」兩類。
分類器運作的原理也非常簡單,首先提供一堆已經正確分類的樣本,叫做訓練集合。然後工具會把這些樣本拆分成許多的特徵量(這就是卷積),不同特徵量對於最後決定樣本的分類結果而言重要性是不同的,這些重要性的參數就形成一個網路。只要為這個網路設定好正確參數,那麼任何新的對象進來,分解的特徵量經過這個網路綜合後,就能得到正確分類。但是正確的網路參數人是不知道的,這就要利用已經正確分類的樣本,把這個問題反過來,輸入樣本後根據分類結果,反算出網路係數。這就如同一個學習過程,故此稱為機器學習,而深度學習是指對多個層次的網路同時學習。
AlphaGo的成果發表在《Nature》
那麼下圍棋怎麼就成了一個分類問題呢?其實這個思路很重要,就是把棋局的每一步棋,區分成「像人下的」,和「不像人下的」兩類。這樣圍棋就可以變成分類問題。具體來講,黃世傑團隊把KGS(一個國外圍棋網上對弈平台)收集到的大量對局作為樣本數據。當對局進行到某一步時,程序要決定下一步的位置。那麼所有棋盤上規則允許的位置其實就可以分成兩類,一類是人類對局的樣本數據中出現過的位置,另一類是樣本數據中未出現的位置,一般來說這代表著人類棋手不會考慮的著棋點。當然還有一種可能是,人類會選擇的合理位置卻不在樣本中,因為沒有採集到。這種情況當然存在,但是當樣本很大的時候,這種情況出現的幾率很低。接下來利用深度卷積神經網路,就可以計算網路的參數,從而讓計算機學會分類,選擇接近人類的下法。我們稱其為分類器策略。
分解特徵的卷積操作
分類器策略是遠遠不夠的,因為這只是像人類,根本沒有辦法戰勝人類。不過黃世傑的老師Remi Coulum在2006年提出的一種大膽的方法提供了重要的改進方向,這就是蒙特卡洛搜索樹方法,簡稱MCTS。這種方法看起來更簡單、更暴力、甚至有些愚蠢。它根本不需要任何的圍棋專業知識。就使用兩台電腦,進行自我對弈。第一局,完全隨機擺放棋子,只要符合規則就行。這樣亂戰的一盤棋總歸也有個勝負。然後把勝利一方的落子位置對應的評估成績加分,表示這樣落子受到了鼓勵。然後更新兩台電腦的計算程序,不再是完全隨機落子,而是根據加分後的數值決定位置,這樣就得到了一種更高質量的對局。之後重複這個過程,每次都對勝利一方的落子方法進行鼓勵,利用計算機強大的計算能力,很快就能進化出一套計算機的對弈策略。我們稱為隨機策略。
KGS訓練樣本統計勝率
直接使用隨機策略,其實效果是很差的。因為看似強大的計算機計算能力面對天文數字的棋局變化可能性時真的是滄海一粟,即使反覆運算了很長時間,你會發現那個對弈水平仍然是很低的。由於在隨機策略中,計算機完全沒有藉助任何人類經驗的指導,因此大量的對局中充滿了隨機落子的步驟。而在一個沒有價值的隨機步驟之後再去推算其他步驟是否合理基本是浪費時間,故此這種方法計算效率當然非常低。隨機策略要想改進,其實需要一種對當前形勢分析的判斷器,如果某一無厘頭的昏招出來以後,立刻判斷己方價值驟減到很低,就可以停止繼續向下分支計算了。
蒙特卡洛搜索樹
說到這裡,即使不懂計算機編程的人可能也會想到了,如果把兩個方法,分類器策略和隨機策略結合起來,讓計算機按照分類器策略決定落子,然後利用隨機策略進行快速自我對弈升級,是不是會更好呢?答案是肯定的,而這也正是AlphoGo的基本演算法。本質上來說,隨機策略是基本的程序升級處理框架,分類器策略減少了搜索的寬度,把根本沒有可能性的落子點排除,加速程序棋力提升。不過團隊後來發現這樣的速度仍然太慢,所以不僅要減少搜索寬度,還要減少搜索深度,也就是減少向後推算的步數。原先的隨機策略要下到分出勝負才能記分,其實這樣很浪費,因為人類選手不需要勝負就能判斷局面的優劣。為此AlphoGo還開發了第三個網路:價值判斷策略。同樣的,這也是一個分類網路,這個分類問題,就是把當前局面分成好或者不好兩類。
價值判斷、分類器策略和隨機策略共同組成了Alpha Go的大腦。利用輸入的海量的人類高水平棋局加上強大的左右互搏進化,難怪從戰勝歐洲冠軍短短5個月,阿爾法狗的棋力就讓職業棋手跌破眼鏡。因為人家把你喝咖啡的時間都用在深度學習上了。
不過需要澄清一個問題,這種自我博弈進化方式,並不像很多人以為的那樣重要,它既不是是阿爾法狗成功的關鍵,也不可以無休無止的提升棋力。因為這種棋局的提升方式很容易變得收斂。舉個例子,阿爾法狗經過長期自我博弈的升級版本在對自己的原始版本時,勝率超過85%,然而當面對人類棋手時,升級版本甚至不如原始版本。至於為什麼,想像朝鮮的三代大元帥吧,他們的地位和口碑在內部越來越神,然而真實的能力呢?呵呵。
薛定諤的貓
阿爾法狗取得了驕人的成績,黃世傑團隊也真的值得敬佩,不過人工智慧的種種進步最根本的動力其實是來自計算機速度的提高。理論上來說,只要計算速度快到一定程度,那演算法就完全不重要。就如同大象和人類比賽扔鉛球,大象根本不需要研究投擲技術。提到計算的未來,最有希望的無疑是量子計算技術,這就要從薛定諤的貓說起。
薛定諤的貓實驗
薛定諤的貓是量子力學當中最著名的一個理想實驗,他是1935年德國物理學家薛定諤創造出的物理學上最有名的動物。一隻小貓被關進一個裝有毒氣觸發裝置的箱子里,毒氣開關被一個有50%幾率發生衰變的原子控制,如果原子衰變了,放射出來的粒子就會觸發毒氣讓小貓死亡,反之小貓就活著。當我們打開箱子時,看到的貓只有兩種可能:生或者死。但如果不打開箱子的時候呢,貓是什麼樣的呢?一般人會認為貓已經死了或者活著,但是我們不知道而已。而量子力學的觀點就認為沒打開箱子時,貓即活著,又死了,兩者各以50%的概率係數組成一個疊加狀態。
實驗中說貓處於疊加態當然是物理錯誤的,不過這不妨礙利用它去直觀理解什麼是疊加態。在微觀世界中,疊加態是真實存在的,且早已被實驗證實。比如光的單縫實驗和雙縫實驗。疊加態非常奇妙,我們無法知道處於疊加態的粒子信息,因為其信息是不確定的。如果非要確定疊加態粒子的某種信息時,必須通過測量。然而任何測量動作都會破壞量子的疊加態,當你測量出該粒子的數據時,也就失去了疊加態的其他信息,變為一個普通粒子。就如同薛定諤貓的實驗中,打開箱子這個動作就是一種測量,一旦這個測量發生,就可以確定貓的狀態,但與此同時,原先那個半死不活的量子貓就不見了。
量子疊加態有非常多的應用,最重要的就是量子計算。傳統計算機是利用比特來表示二進位數據,通過對數據進行運算和邏輯操作處理各類計算任務。一個位只能保存一種狀態,0或者1。然而與之相對的量子位卻有著神奇的物理性質,0或者1隻是它的基本態,量子位則是疊加態,它可以即是1也是0。這就意味著,量子計算效率將呈現幾何級數的提升,因為它的一次操作將對疊加在一起的多種狀態同時操作,並且結果仍然疊加在一起。
量子疊加
如果這點不好理解,我們來舉一個調查員通神的比喻來說明。有一個調查員負責採集城市的房屋價格,通常這個調查員一次只能完成一個城市的調查工作。如果有ABCD四個城市需要調查,那麼他的操作指令應該是:調查A,然後調查B,然後調查C,然後調查D。順序完成。現在假設這個調查員會通神之術,一旦被神仙附體,靈魂進入混亂狀態,產生了四個分身可以分別同時到ABCD去。這個時候對他的操作指令只要一條:去調查。他就會同時調查四個城市的房屋價格,而四個結果就疊加在他現在被附體的靈魂中。可是你不能詢問他,一旦你問他:A的價格是多少?他就會立刻清醒過來,告訴你A的價格,但是BCD的結果卻都忘記了。在真實的物理世界中,調查員的分身可以有無數個。
疊加態量子製備的離子阱
聽完這個比喻,你就知道為什麼量子計算的潛力為什麼這麼巨大。這就是因為一個量子位的操作等於同時完成了許多狀態的操作。原先普通計算機看起來不可能完成的任務用量子計算機就變得可行。比如現代銀行等很多系統使用的RSA加密演算法就是依賴於對一個巨大質數進行驗證的計算量是普通計算機無法完成的,而1994年彼得·秀爾(PeterShor)提出量子質因數分解演算法後,利用量子計算方式破解RSA演算法就變得可能。而現在人們已經在實驗室里用14個量子位真實的完成了自然數15的因子分解。
D-Wave半量子計算機的發展
量子計算的概念最早在1969年,由史蒂芬·威斯納提出,各種技術和理論的進展在最近二十年發展飛快。著名的D-WAVE公司曾讓人們覺得量子計算的應用已經近在咫尺。2007年1月16量子位處理器問世,2009年11月開發出128量子位處理器「RAINIER」,2012年9月開發出了512量子位處理器「Vesuvius」。不過後來的研究表明D-Wave開發的並不是標準的量子計算機,而是一種利用到量子隧道效應的可以實現某些類似模擬退火演算法計算的設備,而且其計算速度是否有相對於傳統計算機有優勢也並不明確。
谷歌公司與NASA購買的D-Wave 2半量子計算機
在標準的量子計算機研製方面,2015年5月,IBM開發出四量子位原型電路,這成為未來10年量子計算機發展的基礎。中科大的潘神潘建偉教授說過,未來不長的時間,能用於某些專門問題計算的超級量子計算機已經可以預見。
潘神建偉
阿爾法狗證明了人工智慧的現在,薛定諤貓預示了人工智慧的未來。人工的顏值是被世界的壓力改變,人工的智能卻是改變世界的動力。
創業不易,耳娛心憩之餘如有您偶或中意的節目期次,請幫我們隨手轉發。書不盡言!您的鼓勵是我們最大的動力。謝謝!
推薦閱讀:
※阿爾法狗再進化,人類棋手徹底奔潰?
※怎樣看待阿爾法狗再進化?
※如果2個阿爾法狗程序對下圍棋,結果會如何?
※人機大戰巔峰對決第一局:柯潔惜敗阿爾法狗
※阿爾法狗的前世今生