鄧仰東專欄|機器學習的那些事兒(四):基於GPU的機器學習執行個體之AlphaGO_人工智慧

來源:互聯網
上載者:User

目錄

1.緒論

1.1.概述

1.2 機器學習簡史

1.3 機器學習改變世界:基於GPU的機器學習執行個體

     1.3.1 基於深度神經網路的視覺識別

     1.3.2 AlphaGO

     1.3.3 IBM Waston

1.4 機器學習方法分類和本書組織


1.3.2 AlphaGO

在過去的幾年中,GoogleDeepMind團隊以一系列重量級工作引起了世人關注。在收購DeepMind之前,Google本來已經在深度卷積神經網路上形成了深厚積累。DeepMind創造性地把深度卷積網路移植到增強式學習(Reinforcement Learning)架構,用深度學習改造增強式學習方法,從而以天才的一筆而創造了新的奇蹟。


DeepMind的第一項重要工作是讓人工智慧學會在雅達利2600(Atari 2600)遊戲機上打遊戲。雅達利2600遊戲機是雅達利公司1977年推出的掌上遊戲機,提供了打磚塊、小蜜蜂、吃豆子、大金剛等多款經典遊戲,是第二代電子遊戲的代表主機,相信很多資深遊戲玩家還有深刻印象。雅達利2600的螢幕解析度為210×160像素,每個像素支援128種顏色值。遊戲控制包括一個操縱杆(上、下、左、右、上左、上右、下左、下右8個方向的運動)和一個遊戲杆按鈕(該按鈕可以單獨使用,也可以結合操縱杆使用)。圖1-13是三個典型雅達利2600遊戲的螢幕。



圖1-13雅達利2600遊戲(從左至右為大金剛(Dongkey Kong)、太空入侵者(Space Invaders)和陷阱(Pitfall))


在DeepMind工作之前,深度卷積神經網已經表現出驚人的威力。然而,一般來說,傳統卷積神經網能夠建立從此時的輸入到此時輸出的關係,即關注“當下”的判斷;但是,在雅達利2600遊戲中打到高分,需要找到一個連續操作序列,其中每一步操作對整體遊戲的效果一般需要在遊戲結束時才能獲悉,也就是說需要建立現在的一步操作和一整局遊戲分數的關係。有基礎的讀者已經可以看到,解決雅達利2600遊戲的標準機器學習方法是增強式學習(RinforcementLearning,也常常叫做強化學習),例如Q-Learning演算法。Q-Learning演算法的思想是讓機器自動嘗試選擇某個動作從一個狀態跳轉到下一個狀態,直至目標狀態(例如遊戲結束或積累一定時間),然後判斷每一次動作對總體目標的影響(即回報)。增強式學習的需要缺點是在穩定性較差,特別在動作和整體目標的回報關係具有非線性時容易造成不收斂的問題。


DeepMind工作的核心創意是改造深度卷積神經網,使之能夠進行強化學習。圖1-14是該工作使用的卷積神經網的示意圖。與1.3.1中圖1-9比較,可以看出這裡的神經網並沒有本質的變化,仍然遵循卷積層+全串連層的基本樣式。我們的目標是把遊戲狀態序列(可以理解為遊戲場面的若干連續變化)和應該採取的控制操作聯絡起來。這裡狀態指遊戲整體態勢,包括遊戲情境、電腦操作物體的分布和動作輸出、以及由玩家操作的物體狀態。經過訓練過程形成的深度神經網能夠根據當前的狀態序列(即目前狀態和之前的若干狀態)輸出應該採取的下一步遊戲操作,其中的操作是玩家控制物體的一次動作。由於卷積神經網是為處理映像而設計的,因此需要對遊戲建立適當的模型,從而使得卷積神經網能夠處理。



圖1-14. DeepMind在雅達利2600遊戲問題上使用的卷積神經網示意圖(根據[6]改畫)


DeepMind的辦法是以遊戲輸出映像序列作為神經網的輸入。為了降低複雜度,採用84×84的降解析度映像,每4幀為一個序列。這些序列被三個卷積層依次處理,分別提取相應特徵。一般說來,增強式學習的結果應該是一個Q函數,描述操作和整體回報的映射。在圖1-14的卷積神經網中,DeepMind沒有採用單一的Q函數值作為輸出,而是輸出每個操作對應的Q函數值,從而能夠通過一次前向傳播就找到輸出結果。


訓練過程被組織為若干次遊戲過程。每一次過程由一系列離散時間步驟組成。在每一個實際步驟上,訓練演算法針對當前情境隨機選取遊戲操作或者從儲存下來的已有操作序列中選擇一個操作,觀察操作執行後遊戲局勢的演化結果,對此次選取的操作進行評價,並根據評價結果對神經網參數進行梯度最佳化。圖1-15是訓練過程中得分變化的例子。在打磚塊遊戲中,剛開始時不同操作沒有本質區別,但是一旦磚塊打破最上一層磚塊並在上面多次反彈,則得分會顯著增加,因此深度神經網路就會傾向於產生能夠達到上層磚塊的操作。DeepMind使用單一的神經網對49個雅達利2600遊戲進行訓練,在不需要任何遊戲知識的情況下,在一半以上的遊戲上超過了人類玩家(遊戲高手)。



圖1-15. 有效操作價值評估(根據[6]改畫)


DeepMind再接再厲,下一個目標:衝擊圍棋遊戲。圍棋的複雜度在於兩個方面。首先,弈子可能性多得驚人。一般說來,類似象棋和圍棋的對弈遊戲可以有bd種對弈序列(即雙方交替走子直至遊戲結束的完整序列),其中b為遊戲的搜尋廣度,即每一步有多少種可能性,對圍棋來說,這個可能性的平均值為250[Human][1],d為遊戲深度,即遊戲結束前走過的步數,通過棋譜統計,這個數字大約是150,因此總複雜度是驚人的250150。作為比較,國際象棋的搜尋廣度為35,深度為80。第二,總體局勢難以判斷。圍棋棋子之間不能直接比較威力(例如國際象棋中王后顯然比小兵厲害得多),而輸贏要依靠全部棋子控制的地區大小決定。因此,圍棋高手們需要依賴過人的天分和多年的訓練才能形成判斷局勢的準確直覺,並且建立一手棋和最終結果之間的關係。從這個意義上講,學棋的確是個複雜的神經網路訓練問題,只不過人依靠的是脈衝神經網以及各種基於電化學反應的學習過程。


在成為圍棋大師的漫漫征途上,棋手需要解決幾個問題:首先,如果只考慮當前盤面,最好的應對招數是什麼。其次,誰都知道與高手對弈可以快速提高自身棋力,那麼怎樣獲得高品質的陪練對手。第三,在可能的下法中,哪一步最可能帶來勝利。AlphaGo提出了一套精妙的解決方案,整合了深度學習、增強式學習和基於價值網路的蒙特卡洛搜尋樹(Monte Carlo Search Tree)三大關鍵技術,通過離線學習+線上對弈的方式來解決以上問題。



圖1-16. AlphaGo訓練過程示意圖(根據[7]改畫)


圖1-16是AlphaGo團隊在《自然》雜誌發表的論文[7]中提出的AlphaGo訓練過程示意圖。首先,AlphaGo使用專業棋手的棋譜作為輸入,訓練由深度神經網構造的策略網路,該網路以當前盤面作為輸入,輸出下一步落在所有棋盤交叉點上的機率。表徵棋盤局面看似複雜,實際上可以很簡單地實現:AlphaGo使用棋盤照片作為輸入,把盤面問題轉化為圖形模式識別問題。這一步驟實際上訓練兩個策略網路,一個速度快、精度低,另一個精度高、速度低。由於以上網路的訓練是一個監督式學習的過程,所以這個網路被稱為監督式學習策略網路。經過3千萬多個盤面的訓練後,該策略網路能夠以57%的精度根據盤面預測下一手落子。當然,最佳化的當前落子和最終的勝利是兩碼事,高手們會走出損失當前利益而最佳化最終勝利機率的妙手,怎樣達到最終的最佳化,則要依賴增強式學習。第二,AlphaGo訓練一個增強式學習策略網路,該網路以隨機結果作為起點,與前面訓練的策略網路對弈,通過對弈結果不斷修改網路結果,該網路以輸入序列為輸入,同樣輸出下一步落在所有棋盤交叉點上的機率。第三步的訓練需要解決最困難的問題,即根據當前盤面判斷最終結果。AlphaGo首先利用監督式學習策略網路產生一個隨機步數的棋局,以該局面作為神經網輸入,然後使用增強式學習策略網路進行自我對弈,以勝負結果作為標籤訓練一個價值網路,該網路反應的針對當前盤面情況下一手棋的潛在收益。


經過訓練,我們現在有兩個監督式學習策略網路和一個價值網路。AlphaGo用蒙特卡洛搜尋樹實現線上對弈。蒙特卡洛搜尋樹在本質上就是決策樹,也就是說每一手棋都會產生若干可能的分支。為了避免盲目的遍曆式搜尋,蒙特卡洛搜尋樹利用有針對性的採樣方法減少不必要的搜尋空間。AlphaGo針對具體盤面形勢,使用快速監督式學習策略網路和價值網路輸出的加權和決定應該向哪個方向進行深度搜尋(即探索下一步棋的可能結果),最終選擇最佳化的落子決策。


以上的訓練和對弈過程計算需求極高。AlphaGo團隊設計了精巧的並行計算引擎,單機版使用48個CPU和8個GPU進行計算,而分布式的計算引擎則使用1202個CPU和176個GPU。


AlphaGo的戰績大家都已經熟悉,2015年AlphaGo打敗職業圍棋選手,2016年3月在五番棋比賽中以4:1擊敗圍棋世界冠軍李世乭,從而被韓國棋院授予名譽職業九段,2016年7月AlphaGo在圍棋高手中的積分已經名列世界第一。


AlphaGo的成就應該從幾個方面來看。首先,AlphaGo並沒有從圍棋知識本身出發進行訓練,也就是說沒有直接學習先驗領域知識,而是通過映像方式直接判斷盤面,就能夠取得如此成功,的確是深度機器學習有效性的最強證據。很多評論認為AlphaGo並不會思維,恐怕是對人類思維過於自負了。思維可能也只不過是大腦神經網中大量脈衝的組合和整合,事實上,人類棋手的學習過程也是讓自己的脈衝神經網能夠形成有效圍棋直覺,恐怕在這個層次上與AlphaGo並沒有本質的區別。第二,人類也不必妄自菲薄。我們大腦的計算能力遠不如AlphaGo的電腦,能夠使用的功耗在20瓦以下,只有一個GPU的十分之一。頂尖棋手畢生看過的盤面,也遠遠沒有達到3000萬盤之多。AlphaGo還應該繼續向人類學習,特別是基於小樣本甚至單樣本的訓練。比如說,人類棋手從大師的著名對局(例如吳清源1933年對戰秀哉名人、推出新布局的第一盤)中可以體會無窮,而單純的一盤的深度學習引擎的意義極為有限。第三,即使只看圍棋,AlphaGo也並非無懈可擊。雖然AlphaGo從3000萬個盤面學習,然而這與圍棋250150的可能性來比實在只是滄海一粟而已。同時,卷積神經網機制決定其更有效於局部模式的提取[2],而蒙特卡洛搜尋樹的搜尋時間嚴重依賴於搜尋空間的大小,因此如果在對弈中盡量走出對多塊棋子有影響的招法,則會嚴重影響AlphaGo決策的準確性。圖1-17中標有三角形的白子是李世乭在與AlphaGo第4局對弈中第78步走出的妙手。這一步之前,人們普遍認為局勢對AlphaGo有利或者基本相當。第78手對四片白棋都有深刻的潛在影響,AlphaGo的價值網路未能充分判斷這一步棋的價值,最終導致失敗。因此,AlphaGo的成功,也會促使人類棋手設計新的對局思想,使用更為華麗、更具有大局觀的對弈策略,為古老的圍棋遊戲注入全新的活力。



圖1-17. 李世乭在與AlphaGo第4局對弈中走出的妙手



[1]圍棋棋盤縱橫各有19條線,因此共有19x19個交叉點,第一手的可能性為361種,第二手有360種,第三手359種,以此類推。一般來說不需要下到把棋盤填滿,因此一個合理的估計是平均每手250種可能性。

[2]因此,在精細的局部搏殺上,人類很可能從此無法有效抗衡AlphaGo。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.