編者按:
韓國時間2月22日下午5時,「李世石-AlphaGO人機對戰」的第二次新聞發布會在韓國棋院二樓進行,公布本次人機大戰更多比賽細節:比賽將分別於3月9日、10日、12日、13日、15日在韓國首爾的Four Seasons酒店進行,開賽時間為每日韓國時間下午1點(中國時間中午12點)。比賽最終決定採用中國圍棋競賽規則,黑貼3又3/4子(7.5目),用時為每方2小時,3次1分鐘讀秒。Deep Mind公司youtube頻道和韓國棋院圍棋TV將對本次比賽進行全程直播報導。之前0:5不敵AlphaGo的歐洲圍棋冠軍樊麾,作為比賽裁判團隊一員參與其中。
谷歌開發的人工智慧圍棋程序AlphaGo是如何用「大腦」 下棋的呢?你認為誰會贏?看完解讀,去文末投票亮出觀點吧。
文 | 董飛(矽谷工程師)
● ● ●
在象棋和西洋棋中,電腦軟體都非常厲害,只有圍棋是唯一「電腦下不過人類」的項目。而今年1月份有個爆炸性新聞:谷歌DeepMind開發的人工智慧圍棋程序AlphaGo以5:0的壓倒性優勢擊敗了歐洲圍棋冠軍、專業二段棋手。那麼3月份AlphaGo會和韓國九段、世界冠軍李世石進行對弈。如果此役AlphaGo獲勝,這意味著人工智慧真正裡程碑式的勝利。
圍棋。Gif來源:Wiki
這也引起了筆者好奇心,在春節期間,跟Facebook的田淵棟(他的背景無可挑剔,卡耐基梅隆大學機器人系博士,Google X 無人車核心團隊,Facebook人工智慧組研究員)交流,他做的也是計算機圍棋AI--黑暗森林(熟悉三體的朋友知道怎麼回事),今年1月份他的文章被機器學習頂級會議ICLR 2016接受(表達學習亦被江湖稱作深度學習或者特徵學,已經在機器學習社區開闢了自己的江山,成為學術界的一個新寵)。
他聊天中談到自從谷歌收購了DeepMind,投入大量資源去做好人工智慧項目,不為別的,就是要向世界證明谷歌智能的強大。發表在頂級期刊《Nature》的論文光看作者就20個,明顯是下了血本,前兩位都是計算機圍棋界的大牛,一作David Silver是計算機圍棋和強化學習的頂級專家,整個博士論文就是做的圍棋; 二作Aja Huang以前寫過多年圍棋軟體,自己又是AGA 6D的水平。
還是不多說廢話,下面是SpinPunch CTO 對AlphaGo的工作原理解讀(原文見參考資料):
谷歌DeepMind宣布他們研發的神經網絡圍棋AI,AlphaGo,戰勝了人類職業選手。這篇論文由David Silver等完成。裡面的技術是出乎意料地簡單卻又強大。為了方便不熟悉技術的小白理解,這裡是我對系統工作原理的解讀。
深度學習
「深度學習」是指多層的人工神經網絡和訓練它的方法。一層神經網絡會把大量矩陣數字作為輸入,通過非線性激活方法取權重,再產生另一個數據集合作為輸出。這就像生物神經大腦的工作機理一樣,通過合適的矩陣數量,多層組織連結一起,形成神經網絡「大腦」進行精準複雜的處理,就像人們識別物體標註圖片一樣。
雖然神經網絡在幾十年前就有了,直到最近才形勢明朗。這是因為他們需要大量的「訓練」去發現矩陣中的數字價值。對早期研究者來說,想要獲得不錯效果的最小量訓練都遠遠超過計算能力和能提供的數據的大小。但最近幾年,一些能獲取海量資源的團隊重現挖掘神經網絡,就是通過「大數據」技術來高效訓練。
兩個大腦
AlphaGo是通過兩個不同神經網絡「大腦」合作來改進下棋。這些大腦是多層神經網絡跟那些Google圖片搜尋引擎識別圖片在結構上是相似的。它們從多層啟發式二維過濾器開始,去處理圍棋棋盤的定位,就像圖片分類器網絡處理圖片一樣。經過過濾,13 個完全連接的神經網絡層產生對它們看到的局面判斷。這些層能夠做分類和邏輯推理。
這些網絡通過反覆訓練來檢查結果,再去校對調整參數,去讓下次執行更好。這個處理器有大量的隨機性元素,所以我們是不可能精確知道網絡是如何「思考」的,但更多的訓練後能讓它進化到更好。
第一大腦: 落子選擇器 (Move Picker)
AlphaGo的第一個神經網絡大腦是「監督學習的策略網絡(Policy Network)」 ,觀察棋盤布局企圖找到最佳的下一步。事實上,它預測每一個合法下一步的最佳概率,那麼最前面猜測的就是那個概率最高的。你可以理解成「落子選擇器」。
落子選擇器是怎麼看到棋盤的?數字表示最強人類選手會下在哪些地方的可能。
團隊通過在KGS(網絡圍棋對戰平臺)上最強人類對手,百萬級的對弈落子去訓練大腦。這就是AlphaGo最像人的地方,目標是去學習那些頂尖高手的妙手。這個不是為了去下贏,而是去找一個跟人類高手同樣的下一步落子。AlphaGo落子選擇器能正確符合57%的人類高手。(不符合的不是意味著錯誤,有可能人類自己犯的失誤)
更強的落子選擇器
AlphaGo系統事實上需要兩個額外落子選擇器的大腦。一個是「強化學習的策略網絡(Policy Network)」,通過百萬級額外的模擬局來完成。你可以稱之為更強的。比起基本的訓練,只是教網絡去模仿單一人類的落子,高級的訓練會與每一個模擬棋局下到底,教網絡最可能贏的下一手。Sliver團隊通過更強的落子選擇器總結了百萬級訓練棋局,比他們之前版本又迭代了不少。
單單用這種落子選擇器就已經是強大的對手了,可以到業餘棋手的水平,或者說跟之前最強的圍棋AI媲美。這裡重點是這種落子選擇器不會去「讀」。它就是簡單審視從單一棋盤位置,再提出從那個位置分析出來的落子。它不會去模擬任何未來的走法。這展示了簡單的深度神經網絡學習的力量。
更快的落子選擇器
AlphaGo當然團隊沒有在這裡止步。下面我會闡述是如何將閱讀能力賦予AI的。為了做到這一點,他們需要更快版本的落子選擇器大腦。越強的版本在耗時上越久——為了產生一個不錯的落子也足夠快了,但「閱讀結構」需要去檢查幾千種落子可能性才能做決定。
Silver團隊建立簡單的落子選擇器去做出「快速閱讀」的版本,他們稱之為「滾動網絡」。簡單版本是不會看整個19*19的棋盤,但會在對手之前下的和新下的棋子中考慮,觀察一個更小的窗口。去掉部分落子選擇器大腦會損失一些實力,但輕量級版本能夠比之前快1000倍,這讓「閱讀結構」成了可能。
第二大腦:棋局評估器 (Position Evaluator)
AlphaGo的第二個大腦相對於落子選擇器是回答另一個問題。不是去猜測具體下一步,它預測每一個棋手贏棋的可能,在給定棋子位置情況下。這「局面評估器」就是論文中提到的「價值網絡(Value Network)」,通過整體局面判斷來輔助落子選擇器。這個判斷僅僅是大概的,但對於閱讀速度提高很有幫助。通過分類潛在的未來局面的「好」與「壞」,AlphaGo能夠決定是否通過特殊變種去深入閱讀。如果局面評估器說這個特殊變種不行,那麼AI就跳過閱讀在這一條線上的任何更多落子。
局面評估器是怎麼看這個棋盤的。深藍色表示下一步有利於贏棋的位置。
局面評估器也通過百萬級別的棋局做訓練。Silver團隊通過 複製兩個AlphaGo的最強落子選擇器,精心挑選隨機樣本創造了這些局面。這裡AI 落子選擇器在高效創建大規模數據集去訓練局面評估器是非常有價值的。這種落子選擇器讓大家去模擬繼續往下走的很多可能,從任意給定棋盤局面去猜測大致的雙方贏棋概率。而人類的棋局還不夠多恐怕難以完成這種訓練。
增加閱讀
這裡做了三個版本的落子選擇大腦,加上局面評估大腦,AlphaGo可以有效去閱讀未來走法和步驟了。閱讀跟大多數圍棋AI一樣,通過蒙特卡洛樹搜索(MCTS)算法來完成。但AlphaGo 比其他AI都要聰明,能夠更加智能的猜測哪個變種去探測,需要多深去探測。
蒙特卡洛樹搜索算法
如果擁有無限的計算能力,MCTS可以理論上去計算最佳落子通過探索每一局的可能步驟。但未來走法的搜索空間對於圍棋來說太大了(大到比我們認知宇宙裡的粒子還多),實際上AI沒有辦法探索每一個可能的變種。MCTS做法比其他AI有多好的原因是在識別有利的變種,這樣可以跳過一些不利的。
Silver團隊讓AlphaGo裝上MCTS系統的模塊,這種框架讓設計者去嵌入不同的功能去評估變種。最後馬力全開的AlphaGo系統按如下方式使用了所有這些大腦。
1. 從當前的棋盤布局,選擇哪些下一步的可能性。他們用基礎的落子選擇器大腦(他們嘗試使用更強的版本,但事實上讓AlphaGo更弱,因為這沒有讓MCTS提供更廣闊的選擇空間)。它集中在「明顯最好」的落子而不是閱讀很多,而不是再去選擇也許對後來有利的下法。
2. 對於每一個可能的落子,評估質量有兩種方式:要麼用棋盤上局面評估器在落子後,要麼運行更深入蒙特卡羅模擬器(滾動)去思考未來的落子,使用快速閱讀的落子選擇器去提高搜索速度。AlphaGo使用簡單參數,「混合相關係數」,將每一個猜測取權重。最大馬力的AlphaGo使用 50/50的混合比,使用局面評估器和模擬化滾動去做平衡判斷。
這篇論文包含一個隨著他們使用插件的不同,AlphaGo的能力變化和上述步驟的模擬。僅使用獨立大腦,AlphaGo跟最好的計算機圍棋AI差不多強,但當使用這些綜合手段,就可能到達人類職業選手水平。
AlphaGo的能力變化與MCTS的插件是否使用有關。
這篇論文還詳細講了一些工程優化:分布式計算,網絡計算機去提升MCTS速度,但這些都沒有改變基礎算法。這些算法部中分精確,部分近似。在特別情況下,AlphaGo通過更強的計算能力變的更強,但計算單元的提升率隨著性能變強而減緩。
優勢和劣勢
我認為AlphaGo在小規模戰術上會非常厲害。它知道通過很多位置和類型找到人類最好的下法,所以不會在給定小範圍的戰術條件下犯明顯錯誤。
但是,AlphaGo有個弱點在全局判斷上。它看到棋盤式通過5*5金字塔似的過濾,這樣對於集成戰術小塊變成戰略整體上帶來麻煩,同樣道理,圖片分類神經網絡往往對包含一個東西和另一個的搞不清。比如說圍棋在角落上一個定式造成一個牆或者引徵,這會劇烈改變另一個角上的位置估值。
就像其他的基於MCTS的AI, AlphaGo對於需要很深入閱讀才能解決的大勢判斷上,還是麻煩重重的,比如說大龍生死劫。在面對一些看似正常但實際並不一樣的棋局時,AlphaGo也會困惑而失去判斷,比如天元開盤或者少見的定式,因為很多訓練是基於人類的棋局庫的。
我還是很期待看到AlphaGo和李世石9段的對決!我預測是:如果李使用直(straight)式,就像跟其他職業棋手的對決,他可能會輸,但如果他讓AlphaGo陷入到不熟悉的戰略情形下,他可能就贏。
看完SpinPunch CTO的解讀,我還想到另一個人,中國最強大腦選手鮑橒,當時看了他走出蜂巢迷宮,被他的超強的空間記憶和想像能力深深震撼了,而他的職業就是圍棋選手,並且是盲棋。他能完成1對5的圍棋盲棋,實在是很不可思議的事情。在圍棋圈內,幾乎沒有棋手能完成盲棋,因為確實太難了。筆者也向他詢問了對這個事情看法,他說,歐洲冠軍沒能摸到程序的底,但從棋譜來說,對谷歌程序我也難以取勝,確實下得不錯。雖然圍棋圈一致看好李世石,不過我不敢確定谷歌的程序3月份進展到什麼地步。
再說到Facebook田博士,跟谷歌DeepMind超豪華團隊長期投入不同,他就在半年多前從立項到實現,直到最近才有一個實習生加入幫他,而背後是他付出的心血,為了搶時間,在聖誕新年都是加班加點,按他所說,每日工作10+小時,自己搭機器,寫代碼,調參數,單槍匹馬做出成績。
談到跟谷歌團隊的較量,田博士說:「這是一場必敗的戰鬥」,但我還是很佩服他,他讓我想到三國時代趙子龍,單槍匹馬大戰曹軍,力拔山兮氣蓋世!因為他是真正的勇士。正是有了這些英勇無畏的科學家,一次次打破常規,挑戰極限,我們才知道人類如此大的潛力。
最近短短幾年的發展,從大數據,深度學習人工智慧到虛擬實境,從發現了類地球行星,證實引力波,從Hyperloop,無人駕駛,量子計算,這些魅力無窮的科技讓我們對世界的認識上升到新的高度。面對這個激動人心的時代,我想說,天空是我們的極限,宇宙是我們的極限,未來才是我們的極限!
最後允許我拿田博士的話來結束。
「我有時候會問自己:『我是不是背棄了夢想?』」我想除了我自己,任何人都不會給我答案,任何評論也不具效力。我記得有人問過,如果夢想從踐行的一開始,就在不自覺地向現實妥協,那樣的夢想還是最初的夢想麼?其實,這樣的問題沒什麼可糾結的,因為世界從來就不是二元的,夢想和現實,如同高懸的日月,日月之間,有一條灰色的路,在自己腳下蜿蜒曲折,繞過各種險阻,一直向前。
「而我能做的,只是要在奔跑時,不停提醒自己,還記得『夢想』這個詞的含義。」
參考資料:
How AlphaGo works http://www.dcine.com/2016/01/28/alphago/
Nature 論文:http://www.nature.com/nature/journal/v529/n7587/full/nature16961.html
關於 AlphaGo 論文的閱讀筆記 http://36kr.com/p/5042969.html
關於圍棋AI的新思路 http://zhuanlan.zhihu.com/yuandong/20364622
原載微信公眾號《董老師在矽谷》,《知識分子》獲授權刊載。
輸入數字編號閱讀近期熱文:
【 59 】為什麼大數據不能幫你找到女朋友?
【 18 】 爭鳴|青蒿素與泰獎:提名和獲獎的前前後後
【 34 】《紐約客》重磅長文:「發現引力波」最完整的內幕
【 66 】LIGO發現引力波:人類從此擁有新的宇宙感知力
【 92 】「真假美猴王」劇情如果反轉,量子力學怎麼看?
【 93 】女性口服避孕藥究竟安不安全?
【 59 】2016年顧孝誠講座獎提名工作啟動
關注請加微信號:the-intellectual或長按下方二維碼。投稿、授權事宜請聯繫:zizaifenxiang@163.com。