作者:周秉誼 / 趨勢科技 技術經理
電腦圍棋程式AlphaGo雖然才問世短短的一年多,卻已經大大改變人類對機器學習及深度學習等人工智慧的看法。在這一年間其他電腦圍棋程式也紛紛參考AlphaGo的架構,改良自己的圍棋程式,使整體電腦圍棋實力大增,把電腦圍棋由業餘水準一舉提升到連最頂尖的棋士都無法達到的境界。本文將回顧這一年來電腦圍棋的重大改變,並從中整理出人工智慧未來發展和趨勢。
前言
Google Deepmind團隊開發的電腦圍棋(Computer Go)程式AlphaGo雖然才問世短短的一年多,卻已經大大改變人類世界對機器學習(Machine Learning)及深度學習(Deep Learning)等人工智慧(Artificial Intelligence)的看法。AlphaGo在2015年底及2016年初分別打敗樊麾及李世?兩位職業棋士,在電腦圍棋領域投下了震撼彈。因為圍棋的遊戲樹(Game tree)相當大,傳統對局演算法很難有效率的處理,所以圍棋一向被視為人類智能在對局上的最後領域,2015年底時電腦圍棋也被認為在短期內難有突破性的進展。
這個局面在2016年初就馬上被AlphaGo打破了,而DeepMind團隊也將AlphaGo的核心演算法以學術論文的型式公開在自然(Nature)期刊上,在這一年間其他電腦圍棋程式也紛紛參考AlphaGo的架構,改良自己的圍棋程式,使整體電腦圍棋實力大增。今年(2017)AlphaGo再度復出,與中國最強的柯潔棋士對戰,過程中又讓人了解到AlphaGo的架構和實作也已不可同日而語。深度學習已經完全改變電腦圍棋的世界,就像蒙地卡羅樹搜尋(MCTS, Monte Carlo tree search)在十年前將電腦圍棋由二級的棋力一路突破,在2007年到2012年五年間直到業餘六段一般。然而深度學習更是在短短一年多的時間,就把電腦圍棋由業餘水準一舉提升到連最頂尖的棋士都無法達到的境界。
AlphaGo 2016版
2016年版本的AlphaGo主要將深度學習應用在兩個不同的方面,策略網路(Policy Network)及價值網路(Value Network),並跟原本的蒙地卡羅樹搜尋整合。策略網路和價值網路這兩個詞是由強化學習(Reinforcement Learning)中的策略函數及價值函數轉化來的。AlphaGo先用人類下的圍棋棋譜以監督式學習Supervised learning)方式訓練出策略網路,再用強化學習的架構讓AlphaGo自我對奕,產生出上千萬棋局資訊來訓練價值網路。2016年AlphaGo打敗了李世?職業棋士,讓大家對AlphaGo使用的架構和演算法很有信心,也紛紛見賢思齊。
日本UEC Cup
日本棋院自2007年起每年在東京的電氣通信大學舉辦UEC Cup電腦圍棋比賽,前兩名的程式可以參加跟頂尖人類職業棋士對局的電聖戰,給了新世代的電腦圍棋程式一個切磋交流的機會,在歷屆的UEC Cup比賽中可以看到蒙地卡羅樹搜尋圍棋程式的進步。在AlphaGo之後,也帶動了UEC Cup中電腦圍棋程式的整體水準。以2017年的UEC Cup來說,前八強的程式都有與職業棋士一戰的實力,這麼突破性的進展是在2015年時令人意想不到的,更是過去電腦對局十分少有的大突破。
2017年UEC Cup前兩名的程式包括中國騰訊公司AI Lab開發的絕藝(Fine Art)、日本長久以來的最強程式Zen的深度學習版DeepZenGo,都是使用與AlphaGo相似的架構開發的。國立交通大學CGI Lab開發的CGI Go Intelligence也在本次大會拿到第七名的佳績。最強的兩個程式絕藝及DeepZenGo在總決賽上的對決也十分精采。雖然戰前大家一致看好絕藝,但在前120手戰情膠著,直到130手後戰局開始向絕藝傾斜,最後DeepZenGo在197手投子。前兩名的程式也在電聖戰中對上日本棋院的一力遼七段職業棋士,並分別以分先擊敗了一力遼棋士,這是有電聖戰以來首次以分先對局,也是首次兩個電腦程式都擊敗人類棋士。顯示了人工智慧在圍棋上的進步,並不是曇花一現,而是真正將電腦圍棋帶入一個新的里程。
AlphaGo 2017版
AlphaGo在2016年初取得勝利之後又不斷更新,並在2016年底以Master名義在網路上和眾多最頂尖的職業棋士對奕,取得六十連勝的佳績。2017年五月在中國浙江桐鄉烏鎮網際網路國際會展中心舉辦中國烏鎮圍棋峰會,其中AlphaGo與中國最強的柯潔棋士對戰三場,三戰全勝的戰績更讓人知道在這一年間AlphaGo又進化了。在峰會中AlphaGo也跟人類棋士聯手進行雙人圍棋(Pair Go)比賽,也是十分令人關注的焦點。另外在峰會中也透露了新版AlphaGo的部份細節,2017版AlphaGo是單機版使用四個TPU(Tensor processing unit)進行比賽,棋力可以讓2016版AlphaGo三子,而且使用自我對奕產生的棋譜進行訓練,計算量只需要2016版的十分之一。這些公開的資訊更是讓人震驚,且期待DeepMind團隊將來公佈的演算法和架構的細節。
由過去一年多在電腦圍棋的發展,整理出下列幾個人工智慧未來發展和趨勢,供大家參考。
資料Data
資料一向是資料分析和機器學習最重要的一環,沒有資料就沒辦法讓電腦藉由資料學習到隱藏在資料內部的洞見,越來越沉的深度學習模型更需要大量的資料來讓深度學習的類神經網路(Artificial neural network)收斂。除了資料量,資料的品質也會影響到模型訓練的成效。因此2016版AlphaGo在一開始是從KGS上高段人類棋士對戰的棋譜中取出了16萬譜棋局、2940萬個盤面作為策略網路的訓練資料(Training data),再利用自我對奕產生資料來訓練價值網路。
為了降低人類對訓練過程的介入,2017版的AlphaGo不使用人類棋譜進行訓練,而是使用強化學習的架構,讓AlphaGo自我對奕產生新的棋譜,用產生出來的棋譜訓練改進本身的模型。讓電腦自行產生資料是目前十分熱門的研究領域,以往大多是使用隨機形變(Distortion)方式來增加訓練資料,現在也有越來越多研究讓單一或多個模型互相競爭和對局,產生出更多高品質的資料,也讓模型從中學習進步。
計算資源Computing Power
為了處理大量的資料、進行更深的搜尋,計算資源對電腦對局和深度學習都是十分重要的部份。在過去追求大量的計算能力是高效能計算(HPC, High Performance Computing)的領域,以大型主機(Mainframe)或計算機叢集(Computer Cluster)的型式來達成。然而為處理網際網路時代大量資料的大資料分析平台(Big Data Platform)也成為重要的計算資源,目前更有朝向高效能計算架構邁進的趨勢,如圖形處理器(GPU, Graphics Processing Unit)。
2016版AlphaGo的價值網路在訓練時使用了50個圖形處理器進行了三個星期,如果使用單一圖形處理器需要三年的時間才會收斂。而Google更設計了自己的機器學習晶片TPU,讓深度學習的能量使用效率可以更高。在2017版AlphaGo更是使用了單一主機上的4個TPU就能達到比2016版更強大的棋士。未來TPU跟圖形處理器在深度學習上的競爭也會帶給我們更多更好的計算能力。
人機介面HCI
在中國烏鎮圍棋峰會中另外一個重點是探討電腦強大的人工智慧要如何跟人類合作,因此有人類和AlphaGo合作的雙人圍棋賽。不過很可惜的是這次比賽是以一般雙人圍棋的方式進行,而沒有特別設計出方便人類了解AlphaGo想法的人機介面(HCI, Human-computer interface)。未來人工智慧將在更多領域協助人們進行各種決策判斷,有好的人機介面才能人們更了解電腦提供資訊背後的原因、增加對人工智慧的信任。對使用人工智慧的人們來說,如果能夠將電腦的運算以更易理解的理由(Reasoning)的方式提供給人們參考,會讓人們更方便的使用人工智慧的服務。以電腦圍棋來說,有好的人機介面也能在將來整理出更多打破以往圍棋常識的新發現。
測試Testing
當人工智慧處理的工作變得更複雜、更關鍵,對人工智慧程式和服務的測試工作就變得非常困難。以DeepZenGo碰到的情況來說,在2017 UEC Cup決賽和絕藝對戰時就顯示出中後盤計算上還有不足之處,但是到了之後的世界最強棋士戰中兩度在官子階段被逆轉,才找出DeepZenGo計算目數的缺陷。
因為使用了深度學習的電腦圍棋程式已經比業餘人類棋士還強,對上棋力較弱的對手時,深度學習圍棋程式在初期就可取得大量優勢,非常不易測試到這麼細的地方。AlphaGo和絕藝在測試過程就曾和頂尖的職業棋士下過十數盤棋,這對測試調校有很大的幫助。而人類頂尖棋士和AlphaGo對戰也常被戲稱是高階軟體測試人員,由此就可以看出人工智慧程式的測試工作會面對多大的挑戰。
結語
在加入機器學習和深度學習之後,人工智慧已經走入一個新的境界,以往人們以為電腦做不到的事情,現在都一一被實現,如自走車(Self-driving car)、高頻交易(High Frequency Trading)、玩電子遊戲(Video Game)等等。顯示出深度學習或其他機器學習的潛力遠大於我們想像,只是和各個問題相應的配套機制還沒被找出來而已,一旦配套機制被探索出來,電腦就能展現出高於常人的智能。
隨著人們對人工智慧的信心增加,各個軟硬體公司也紛紛推出自己的人工智慧和機器學習平台和硬體設備。如Google推出的TPU及Google雲端計算平台的機器學習功能、NVIDIA推出的HGX平台和NVIDIA雲端計算平台等等,都可以讓一般人使用到高階的計算資源來進行自己的人工智慧開發。更進一步,甚至可以使用各個大公司使用大量資料預先訓練好的深度學習模型,來開發自己專屬的人工智慧應用。