5月23日,AlphaGo2.0版本在人機圍棋比賽中以四分之一子的微弱優勢戰勝了柯潔,一方面繼續彰顯了人工智慧的強大,但也讓人們對AlphaGo和人工智慧有了新的認識。先説出結論,再看分析。
1.在圍棋這個項目上AlphaGo目前走在了人類的前面,但並沒有完全攻克圍棋這項運動。它只是通過深度學習找到了一個比人類認識更優的解,但不是最優解。最優解無法找到,即便用盡地球上所有的資源。從專業的角度來講,就是用深度學習去逼近了一個強化學習中的價值判斷函數,然後再跟蒙特卡洛搜索樹結合的方法(具體詳解可參看《鄭宇:一張圖解ALphaGo原理及弱點》,不再重復)。既然人工智慧和人類都不能找到最優解,現在説哪一方已經完全徹底的失敗還早。
2. 人類也是在進步的,我們也不要低估了人類後天的快速(小樣本)學習能力,這點AlphaGo基於現在的學習方法還做不到。短期來看人獲勝概率小,但長遠來看(未來5-10年)人還有機會,因為人也有很強的學習能力,可以從少量跟AlphaGo的對弈的棋局中快速學習。而即便再給AlphaGo1億副棋譜,再添加一萬塊GPU,如果還是基於現有的學習體系,它進步的速度也終將放緩,因為新增的棋譜和計算資源相對於2x10171這個搜索空間來説只是滄海一粟。我們對人腦的了解還遠不如對圍棋的認識,這裡面還有很大的未知數。
3. 目前人類職業棋手跟AlphaGo的差距也就在一個貼目的水準,沒有大家想像的那麼大。其實這個貼目的差距(按中國標準7目半),在職業棋手看來,已經是非常大的差距了。很多職業高手,進入官子階段後發現自己還落後對方7-8目,就會主動投子認輸了。很多通過數子來決定勝負的比賽,輸贏往往都在1-2目之間(比如柯潔就輸給AlphaGo半目)。否則會被其他專業棋手笑話,自己落後那麼多都不知道,點空能力太弱了。
要能真正客觀、準確的看待這個問題急需要較強的人工智慧專業知識,也需要一定的圍棋功底。下面先糾正網上認知的一些誤區:
誤區一:AlphaGo可以讓人類頂尖棋手4個子,AlphaGo2.0可以讓上一個版本4-5個子。
要消除這個誤解,首先要跟大家普及一下圍棋知識:在圍棋裏“讓對方兩個子”和“贏對方2個子”有著天壤之別。這點對於下圍棋的人不用多説,但我今天才意識到,很多吃瓜群眾一直以為這就是一回事。難怪網上會流傳以上的錯誤言論。
讓對方兩個子: 在圍棋裏讓2子是説讓一方先在棋盤上放上2個棋子(棋子只能放在星位),然後對方才開始走。這兩個子在對弈之初的價值巨大,對於專業棋手來講,每個棋子價值至少在10目以上(這是最保守估計了)。讓兩子相當於至少先讓出去對方20多目的地盤。由於棋盤是有限的,如果不能在後面的比賽中,在有限的空間裏贏回這20多目,那就是讓子失敗了。而且讓子數越多,被讓方獲得的價值不單是線性增長的,因為子力之間會形成配合,獲取更大的利益。比如説,讓子,其價值就可能遠不止40目了。
贏對方2個子:是指雙方下完後,贏的一方比輸的一方多出2個子。如果按照吃住對方一個子算兩目的方法來算,那2個子只相當於4目。AlphaGo贏了柯潔1/4子,就相當於半目棋子而已。
所以“讓對方兩個子”和“贏對方2個子”不可同年而語。如果真的有圍棋之神存在(既他一定能找到最優解,我們人是沒有希望下過他的),一般頂尖專業棋手認為他們跟這個神的差距在讓2-3子之間。由於AlphaGo可以被證明不能保證找到最優解,所以他離神還有一定的距離。因此,説AlphaGo可以讓人類頂尖棋手4個子,這簡直就是天方夜談。
誤區二:AlphaGo也會下出一些明顯不好的招數,是因為他自我判斷形式佔優,而放鬆了自身的要求。
AlphaGo的搜索策略就是優先對獲勝概率比較大的分支進行更多的深度搜索,這個策略在任何時候都不會改變,也不能改變。他不會覺得自己優勢了就下出緩手。下得不好的時候是因為其價值判斷本來就是一個近似,而且搜索空間也不能窮盡,得不到最優解,因此,有時估計還不錯的棋,其實不一定是真的最好的下法,AlphaGo出現這種不穩定狀況是正常的。這也是人類善存的希望所在。當然人類也有自身的弱點,如疲勞、情緒波動等,人也會判斷失誤。而且棋局很長,有些之前不太好的棋,經過後面的變化(包括不是預料中的變化)有可能會變成好棋。所以,不是所有的錯誤,都會直接影響到比賽的結果。而且現在大家似乎有點怕AlphaGo了,即便是AlphaGo下出一招不好的棋,大家更多的是懷疑自己的水準(是不是我們沒看懂啊?),而選擇相信AlphaGo的“深謀遠慮“。
誤區三:AlphaGo可以不斷自學習,從新的棋局裏獲取經驗,快速提升自己。
AlphaGo的系統由於參數非常多,需要大量的數據來訓練,新增的幾幅棋譜對提高它的棋力起不到任何作用。而且AlphaGo在做參數調整時是針對一大批數據的整體優化,也必須對很多棋譜做批量處理,訓練時間非常長,不可能在很短時間內大幅提升自身的水準。即便是同一組訓練棋譜,參數調整方法不一樣也會訓練出棋力水準差異較大的系統。其實AlphaGo是通過自我對弈來生成很多棋譜,然後利用棋譜中的(兩個連續的)盤面跟最後的勝負對應關係訓練出價值網路來。這裡只是借用了一下強化學習的框架來訓練深度神經網路的參數而已,主要貢獻還是深度學習的近似能力帶來的(解決了傳統強化學習針對複雜環境和動作狀態無法求解的難題)。因此,AlphaGo並沒有大家想像的那種自我博弈就能自己不斷進步的能力。
誤區四:AlphaGo會故意放水輸掉一局比賽。
這個沒有可能。要想輸還不能輸的那麼難看和明顯,是一件非常難辦的事情,可能比贏棋還要難。在模型訓練好之後,AlphaGo能夠臨時改動的只有在搜索部分投入的資源多少(搜索多大的空間)可以改動。縮減的太小,幾乎不會有太大變化,但如果縮減太多,就會下出一些非常低級的棋來。這點從技術角度來講很難把握。
誤區五:電腦的計算能力一定比人強,所以不要去跟AlphaGo比計算,應該把局面簡單化,避免複雜的戰鬥。
AlphaGo依靠的是一種基於樹的搜索演算法,遇到複雜局面搜索空間變大,對未來輸贏的價值判斷也會變難。因此,人算不過來的複雜局面,對AlphaGo來説也很困難。如果局面太簡單,機器可以非常好的計算出比較優的解,人類棋手更加沒有希望。因此,把局面弄複雜,人類棋手才有希望獲勝,雖然這個對人類也提出了更大的挑戰。
總結
基於人類目前對圍棋的認識和理解,現階段仍然會輸給人工智慧。我並不是覺得柯潔有希望能夠贏得後面的比賽,但人類也在進步,通過跟AlphaGo的對弈,人類也在重新認識圍棋。只要人類的思想和文明在不斷進步,人就有可能在未來5-10年裏通過不斷的學習趕上當前的AlphaGo。當然,AlphaGo也會進步,但它還不是圍棋之神,也沒有攻克圍棋這個難題。如果現有的學習方法沒有全面的革新,其進步的速度也會慢慢放緩。基於此考慮,人類還會有機會。當人們對圍棋有了更深入的了解之後,又會設計出更好的人工智慧演算法。兩者其實並不矛盾,相輔相成,互相促進,不管誰輸誰贏都是人類文明進步的體現。人類的智慧也將始終走在機器的前面,而不會被機器取代。
(作者:鄭宇,CCF傑出會員、CCCF編委、CCF ADL工作組組長,微軟亞洲研究院資深研究員、“城市計算”領域負責人、上海交通大學講座教授、香港科技大學客座教授;擔任人工智慧國際權威期刊(SCI一區刊物)ACM TIST主編、ACM數據挖掘中國分會(KDD China)秘書長;擔任國際知名會議ICDE2014和CIKM2017程式委員會主席(Industrial Track);在頂尖國際會議和期刊上發表論文百餘篇(其中以主作者身份發表論文50余篇),論文被引用13000余次,Google Scholar H-Index 53(截至2017-5-23), 2016年論文單年被引用3400余次。他主持開發了多個城市大數據系統,其中Urban Air首次利用大數據來監測和預報細粒度空氣品質,該服務覆蓋了中國的300多個城市,並被中國環境保護部採用。他主持了城市大數據平臺的設計和實施,並成功在中國大數據示範基地貴陽市部署。2013年他被MIT科技評論評為“全球傑出青年創新者”(TR35),並作為現代創新者代表登上了美國《時代》週刊。2014年,由於他主導的城市計算具有巨大的商業前景和改變行業格局的潛力,他被美國《財富》評選為中國40位40歲以下商界精英。2016年他被評為美國電腦學會傑出科學家。)
[責任編輯:郭曉康]