1. 程式人生 > >看DeepMind如何用Reinforcement learning玩遊戲

看DeepMind如何用Reinforcement learning玩遊戲

有效 重新 sco 而且 會有 服務 最優解 count body

原文地址:http://www.infoq.com/cn/articles/atari-reinforcement-learning

原文作者:作者簡介

尹緒森,Intel實習生,熟悉並熱愛機器學習相關內容,對自然語言處理、推薦系統等有所涉獵。目前致力於機器學習算法並行、凸優化層面的算法優化問題,以及大數據平臺性能調優。對Spark、Mahout、GraphLab等開源項目有所嘗試和理解,並希望從優化層向下,系統層向上對並行算法及平臺做出貢獻。


引子

說到機器學習最酷的分支,非Deep learning和Reinforcement learning莫屬(以下分別簡稱DL和RL)。這兩者不僅在實際應用中表現的很酷,在機器學習理論中也有不俗的表現。DeepMind工作人員合兩者之精髓,在Stella模擬機上讓機器自己玩了7個Atari 2600的遊戲,結果是玩的沖出美洲,走向世界,超越了物種的局限。不僅戰勝了其他機器人,甚至在其中3個遊戲中超越了人類遊戲專家。噢,忘記說了,Atari 2600是80年代風靡美國的遊戲機,當然你現在肯定不會喜歡了。長成什麽樣子?玩玩當下最火的flappy bird吧!

技術分享

閑話少敘,來看看準備工作吧。首先是一臺Atari 2600,估計是研發人員從爹媽的廢物處理箱中翻箱倒櫃的找出來的。等會,都生銹了是怎麽回事兒?電池也裝不上的說!淡定……由Stella傾情打造了模擬機,甚至還有為學術界專門貢獻的Arcade Learning Environment,媽媽再也不用擔心我的科研了。輸入信息就是模擬器當前畫面,輸出為可供選擇的搖桿和按鈕“A-B-B-A-上-上-下-下”,學術點說就是當前狀態下合法的操作集合。目的呢,當然是贏得遊戲,分數多多益善。

相關廠商內容

京東AI:如何快速計算包裹的最佳路徑?

eBay數據挖掘和機器學習的落地應用實例

AI 如何深度應用於消費金融的風控決策?

三個月入門AI工程師

SRE與微服務最佳實踐

相關贊助商

技術分享

ArchSummit深圳2017,7月7-8日,深圳·華僑城洲際酒店,精彩內容搶先看

然後就是玩遊戲了。作為很酷很酷的科學家,肯定不會親手玩遊戲咯,當然一方面也是怕老板發現。不過,想要機器玩遊戲,先得想清楚人類是怎麽玩遊戲的:

  • 首先,遊戲開始,停留在初始時刻。然後,遊戲場景開始變換,玩家眼睛捕捉到畫面的變化,將視覺信號傳遞回腦皮層進行處理。
  • 之後,腦皮層將視覺信號轉換為遊戲的語義信息,通過經驗指導,將語義信息與應該進行的操作做映射,之後是將映射後得到的操作信號傳遞到身體,如手指動作。操作結束後,遊戲場景進入下一幀,玩家得到一定的回報,如越過關隘,或者吃到金幣。如此循環,直到遊戲結束。

技術分享

仔細想想這個過程,發生在遊戲內部的那些事情是玩家所不用考慮的,玩家能夠覆蓋的只是上述遊戲循環的右半段。即輸入視覺信號,輸出手指動作。而手指動作到下一幀場景,以及玩家得到回報是遊戲內部的過程。

既然了解了人類玩家的操作過程,並分解出實際需要玩家的部分內容,下一步就是讓機器替代人類玩家了。為了區分,通常稱機器玩家為agent。與人類玩家的操作類似,agent需要負責:

  1. 由上一幀回報信號學習到玩遊戲的知識,即經驗(什麽場景下需要什麽操作)
  2. 視覺信號的處理與理解(降維,高層特征抽取)
  3. 根據經驗以及高層的視覺特征,選擇合理的經驗(動作)
  4. 動作反饋到遊戲,即玩家手動的部分

所以說,遊戲都是越玩越好的,人類玩家如此,agent亦如此。既然已經刻畫出來操作步驟,隨著DL和RL的發展,實操也不是什麽難題嘛。下面,首先看看RL是如何促進agent的學習。之後會講到DL是如何合理的安插到RL的學習框架中,並如何起到作用的。然後,會強調一下這兩者在遊戲agent操作中的難點,以及如何解決實際問題。最後,來看看agent遊戲玩的到底如何。總結涉及對RL的升華。

Reinforcement Learning

RL其實就是一個連續決策的過程。傳統的機器學習中的supervised learning就是給定一些標註數據,這些標註作為supervisor,學習一個好的函數,來對未知數據作出很好的決策。但是有時候你不知道標註是什麽,即一開始不知道什麽是“好”的結果,所以RL不是給定標註,而是給一個回報函數,這個回報函數決定當前狀態得到什麽樣的結果(“好”還是“壞”)。 其數學本質是一個馬爾科夫決策過程。最終的目的是決策過程中整體的回報函數期望最優。

技術分享

來看看一些關鍵元素:

  • 狀態集合S:S是一個狀態集合,其中每一個元素都代表一個狀態。在遊戲的場景中,狀態S就是某一時刻采集到的視覺信號。
  • 動作集合A:A中包含所有合法操作。如flappy bird中點擊一下屏幕,temple run中的上下左右等指動。
  • 狀態轉移概率P:P是一個概率的集合,其中每一項都表示著一個跳轉的概率。例如,在當前狀態s下,進行操作a轉移到下一個狀態的概率。
  • 回報函數R:R是一個映射,跟狀態轉移概率P有點聯系,R說明的是,在當前狀態s下,選擇操作a,將會得到怎樣的回報。需要註意的是,這裏的回報不一定是即時回報,如棋牌遊戲中,棋子移動一次可能會立刻吃掉對方的棋子,也可能在好多步之後才產生作用。

技術分享

回報函數有一些小小的tricky。

首先,RL的過程是一種隨機過程,意即整個決策的過程都是有概率特性的,每一步的選擇都不是確定的,而是在一個概率分布中采樣出來的結果。因此,整個回報函數是一種沿時間軸進行的時序/路徑積分。依據貝葉斯定理,開局時刻不確定性是最大的,開局基本靠猜,或者一些現有的先驗知識。隨著遊戲的不斷進行接近終點,局勢會逐漸晴朗,預測的準確性也會增高。深藍對戰國際象棋大師卡斯帕羅夫的時候,開局就是一些經典的開局場景,中局不斷預測,多考慮戰略優勢,局勢逐漸明朗,因此這時候一般會出現未結束就認輸的情況。終局通常就是一些戰術上的考量,如何更快的將軍等。類似地,在RL中,回報函數的時序/路徑積分中,每一步的回報都會乘上一個decay量,即回報隨著遊戲的進行逐漸衰減。此舉也有另一些意味:如何最快的找到好的結果,例如在無人直升機中,花費最小的時間找到最優的控制策略,剩下的就是微調。

接下來,當這一切都確定了,剩下的事情就是尋找一種最優策略(policy)。所謂策略,就是狀態到動作的映射。我們的目的是,找到一種最優策略,使得遵循這種策略進行的決策過程,得到的全局回報最大。所以,RL的本質就是在這些信號下找到這個最佳策略。

眾所周知動態規劃,其中一條理論基石就來自Bellman公式。Bellman公式告訴我們,在一種序列求解的過程中,如果一個解的路徑是最優路徑,那麽其中的每個分片都是當前的最佳路徑,即子問題的最優解合起來就是全局最優解。回報函數的最大化就服從Bellman公式,這是非常棒的性質,表示著我們可以不斷叠代求解問題。旅行商問題就不服從Bellman公式,因此它是NP-hard問題。

於是,RL的學習分為兩個方面,兩方面相互交織,最終得到結果。這是一種典型的Expectation-Maximization算法的過程。EM算法在機器學習中是相當經典的算法,大量的機器學習優化都使用這個方法。

如下圖所示的一種EM算法求解RL的示例:

技術分享

該示例代碼取自Spark Summit 2013,由Adobe的Nedim Lipka介紹了RL在市場策略(網頁個性化展示)上的應用。這裏拋開具體的應用語義,以及分布式算法,來簡單分析RL優化過程中EM算法的一般過程。

這裏,是一個函數,這個函數以當前狀態s為參數,返回一個動作a,這個動作是一個概率分布,代表著在當前狀態s下,轉移到任意另外一個狀態的概率是多少。假設我們有三個狀態,那麽這個動作分布可能是這個樣子的:

當前狀態

1

2

3

1

0.3

0.1

0.6

另外,是一個價值函數,即我們從s這個狀態出發,直到無窮大的遍歷,能獲得的最大回報的期望。價值函數其實就是在策略為,初始狀態為s情況下的回報函數。另外,是一個即時(immediate)回報函數,即從狀態s出發,經過a這個動作的作用,走到這個狀態獲得的回報是多少。例如用戶在某個頁面上瀏覽,點了一個廣告,到了廣告商的頁面,廣告商付給該網站1塊錢。

價值函數,其中表示當前動作下面的轉移概率,表示當前動作下的即時回報函數,是從s轉移到之後,所能得到最大的期望價值。

這個函數優化有個問題,那就是和都是未知的,而這兩個量是相互糾纏的,計算需要最大化,而計算需要對最好的進行積分。所以這是個典型的Expectation-Maximization算法。代碼中第一部分就是EM算法中的Expectation,第二部分就是EM算法的Maximization部分。

那麽為什麽第一部分會有叠代呢?那是因為大家記得隨機遊走,都不是遊走一次就能結束的。整個轉移鏈想達到穩定狀態,需要多次叠代才可以。這就類似於Gibbs sampling 算法,必須多次叠代才能收斂。這裏也是,計算Expectation需要讓整體的網絡達到穩定狀態。其中符號delta代表著前後兩次叠代差距是否足夠小,因此判斷是否收斂。

技術分享

(數據的結構,數據圖的網絡相依,類似與隨機遊走)

總結一下,說白了,RL就是一個supervised random walk(可以參考斯坦福大學Jure Leskovec教授的論文Supervised Random Walk)。傳統的random walk是按照固定的轉移概率隨便(采樣)遊走,RL就是在隨機遊走的每一步,都選擇一個能使回報函數最大化的方向走,即選擇一個當前狀態下最好的action。而RL遊走的這個網絡,是由狀態S為點集,動作A為邊集,狀態轉移概率P為邊權重的有向無環圖(DAG)。狀態轉移概率P不是不變的,而是隨著agent在這個網絡中的步進,不斷變的更加正確,符合現實世界的分布。這個DAG,就是一種混沌的網絡狀態。

澄清一些概念,Reward 是一次action得到的payoff,Return是一序列reward的函數,如discounting sum。上述兩個是目標,而下面的value function是要學習的函數。Value function是狀態的函數,或者是“狀態-動作”這個序對的函數。來預測在給定狀態(或者給定“狀態-動作”)下agent能表現多好。有多好,表明的是在這點的expected reward,即在這點所能看到的未來最大期望收益。Approximator,關鍵是泛化能力,在有限的狀態-動作子集上獲得的經驗,如何擴展到全部的狀態和動作上?使用動態規劃這種“查找表”的方式,是有局限的,而且這個局限不僅僅是內存上的(硬件上的)。Off-policy是指不需要一個policy查找表之類的,而是直接求最大化reward的那個action。

Deep Learning in RL

Deep在何處?換句話說,因為DL參與的RL與傳統的RL有何不同,從而要引入DL?我們在前面介紹RL的過程中,處理的是狀態。而實際上,很多時候狀態是連續的、復雜的、高維的。不像之前介紹中說的4個狀態就可以了。實際上,假設我們有128*128的畫面,那麽狀態的數目是指數級增長的,即有2^(128*128)中可能存在的狀態,這個數字是1.19e+4932,這可是個天文數字!遊戲畫面連續存在,就算按照每秒30幀來算,一局遊戲玩下來,啥都不用幹了。處理數據的速度根本跟不上遊戲畫面變化的速度,更不用說那些高清的遊戲。實際上,DeepMind現在也就能玩玩Atari這種爸爸輩的遊戲吧。

無奈,因此求助於DL。註意,在此之前有很多人工特征處理,但很明顯,一旦引入了人類的活動,就無法做成一種集成性的系統了,只能成為實驗室的二維畫面玩具。人類為什麽玩遊戲玩的好呢?因為人腦非常善於處理高維數據,並飛快的從中抽取模式。現在由DL來替代這塊短板。

DL現在有兩種經典形式,由Hinton、LeCun和Yoshida等人(原諒我不能一一列舉大牛們)逐步完善。DL作為機器學習界的明星方法,早已耳熟能詳。但是茲事體大,還是稍微提一下兩種經典形式吧。首先說明的是,兩種形式在深層架構上很類似,但是在每層的處理上有所不用。依據多種神經網絡之不同,DL分類如下:

  • 第一個差別就是單層網絡的不同,分為Auto-encoder和Restricted Boltzmann Machine;
  • 第二就是深層架構之不同,如何安排深層架構,是直接堆疊,還是通過卷積神經網絡?
  • 第三就是最高兩層分類/識別層的不同安排,不同的高兩層安排代表了不同的學習形式,是生成模型,還是判別模型?
  • 第四是不同的激活函數選擇,常見的是sigmoid函數,但也有通過Rectified Linear Unit增強學習能力的,甚至還有convex函數的選擇,如DSN。

所謂Q-learning

初始化的時候需要設置DL與RL的起始參數,例如episode(其表述一種天然存在分割的序列,如玩遊戲,總會遇到終局。一個episode就是這樣一個天然的分割。)設置為零,初始化策略,以及初始化空的replay memory。

之後就是在一個個episode中進行探索。簡單來講,就是累計4幀遊戲畫面,經過些許預處理(裁剪、白化)之後,算作當前狀態。之後根據現有的策略,選擇一個最大化全局回報動作。在ALE模擬器中執行這個動作,收獲下面4幀畫面,以及此次回報。並將本次探索的結果存入replay memory。

接下來就是進行新的策略(模型)學習。首先從replay memory中采樣幾組探索結果,分別根據一階的Bellman公式求解理論回報值,最為標註信息。之後使用標註信息來優化CNN,通過SGD進行優化。

要明確的是,不同的episode之間有哪些變量是共用的呢?有哪些是新eposide中置零,重新開始的呢?很顯然,function approximator,即我們的神經網絡是維持不變的,因為CNN在這裏出現的本意就是隨著樣本數目、叠代數目不斷增加,優化的越來越好。剩下的,replay memory也是不變的,因為replay memory算是一個資源池,也就是傳統意義上的數據。數據收集越來越多,但是不會丟棄。至於其他的,像學到的policy,以及reward等都是要重新開始的。

以上介紹的過程就是Q-learning的一般過程。通常來說,Q-learning是model-free的,什麽意思呢?就是說使用Q-learning的RL過程在計算value function(即Q-function)的時候,不需要和環境進行交互。而上文中提到的動態規劃方法,是需要跟環境交互才能計算最優回報的。通過使用一個稱作Q-function的函數,可以完全避免計算最優回報的時候和環境交互。這個Q-function通常又被稱作function approximator.

技術分享

細數挑戰

很多問題都是看起來簡單,實操過程中困難重重,因此,做任何事情都要“in the wild”,否則只是在外圍打轉,沒有深度,因此詞句缺乏力量,從而寫不出有力的篇章。(作者躺槍)

首先是如何將整個過程構成閉環,在實時的遊戲中進行持續學習和決策。可以肯定的是,一般情況下,遊戲進行畫面計算的時間是相當短的,然而DL編碼出特征,並用RL找出策略這個過程要長的多。因此,遊戲運行的每一幀都要停下來看看agent算完了沒有。如果這是一個流處理系統,那麽整套系統的性能就被壓死在這裏。在實驗環境中,我們當然可以容忍agent慢慢玩,但是這樣是無法與人類玩家力拼的。DeepMind的科學家們也沒給出太好的解決方案,只是設置了一個k值,意即每出k幀動畫才判決一次。細想一下會出很多問題,如agent在這k幀就不幸掛掉了,負分滾粗。這點還是期待更佳性能,或者更輕量的解決方案。正所謂,性能性需求不如功能性需求優先,但是,當性能性需求在這種情況下變成了一種功能性需求,那就必須解決了。

相比於有監督學習,RL的另一大挑戰是沒有大量標註數據。首先要澄清一點,就是DL在前面的pre-train的過程中不需要標註數據,不代表整個DL過程中不需要標註數據。恰恰相反的是,只要有充分的標註數據,DL是可以拋開前面的pre-train而直接計算的。RL每一次計算的時候是不知道一個具體的label來表明對錯的,只能得到一個叫做標量回報的信號,這個信號通常都是稀疏的,有噪聲的,尤其重要的一點,是有延遲的。延遲,表明的是當前動作和回報之間的延遲,遊戲得分可能依賴於之前所有的狀態和動作,而一個動作所得到的反饋很可能到數千步之後才能展現出來(如圍棋,這也是戰略性遊戲和戰術性遊戲的差別)。可以在本文遊戲結果一節中看到,對於戰略性遊戲,agent表現還是非常差的。

還有一個問題是機器學習算法都是有數據分布獨立性的假設的,IID是一個很重要的性質,如果數據之間是有關聯的,那麽計算出來的模型就是有偏向的。但是RL中的數據通常是一個前後嚴重相依的序列。並且隨著policy的學習,數據分布傾向於不同,嚴重影響回歸器的使用。可想而知,當前情況下的狀態會影響下一次的動作選擇,而下一次動作選擇的不同會影響下一幀畫面,下一幀畫面又會影響下下次動作的選擇。猶如一個長長的鏈條,讓狀態和動作糾纏不清。怎麽破IID的問題?DeepMind學習Long-Ji Lin 93年用來控制機器人運動的大作,通過使用replay memory,存儲過去一段時間內的“狀態-動作-新狀態-回報”序列,並進行隨機采樣以打破依賴,以及用過去的動作做平滑。

歷史局限性也嚴重制約這agent的能力,局限性嘛,就是眼光看不到未來,正如當年葡王拒絕了當地人哥倫布的遠航,而西班牙女王伊莎貝拉則是拿出自己的首飾珠寶讓哥倫布出海。這裏的歷時局限性是指在當前階段只能看到遊戲的一部分畫面,無法掌控全局。從而產生一個更嚴重的問題,就是富者更富的馬太效應難以調和,agent選擇的動作會偏向一定的畫面,而這種畫面會使得agent在這個偏向上持續增強。例如,當前時刻最大化回報的操作是向左移動,因此agent選擇向左移動,所以左側的畫面會被更多的看到,左側畫面占據大量的訓練樣本席位,從而控制進一步的學習。這種情況下,強烈的正反饋的循環會讓agent迅速陷入局部最優值,甚至直接發散開。(John和Benjamin在97年的automatic control上對此有所論述。)通過replay memory會讓更多的歷史樣本參與訓練,從而沖淡馬太效應帶來的影響。

最後是Bellman公式的局限性。根據前文敘述的RL用法,我們可以很happy的看到求解未來的回報是一個可以動態規劃的過程,因此Bellman公式大殺四方,可以快速得到最大未來回報的結果。可惜的是,這種計算看似很好的解決問題,實則不然。這種情況下預測只針對當前最優路徑這一單條路徑的情況進行計算,不具備泛化能力。比如對當前數據做個分類器,可以輕輕松松達到100%的正確性,但是這個100%的分類器用在其他數據上甚至不如隨機分類的結果。這種情況的解決辦法是,使用一個自定義的function來模擬這個最大回報。這裏的函數就可以任意選擇了,例如有些人選用簡單的線型函數,有些人則選用更加復雜的函數,如這裏使用的卷積神經網絡。之前的做法是,給我當前的策略、 狀態,以及動作的選擇作為輸入,通過動態規劃計算出未來的回報。現在則是給定這些輸入,直接輸送到神經網絡中計算出未來的回報。

致命一擊

遊戲準備

DeepMind工作人員最終用這個DRL玩了7個Atari遊戲,分別是激光騎士(Beam Rider),打磚塊(Breakout),摩托大戰(Enduro),乓(Pong),波特Q精靈(Q*bert),深海遊弋(Seaquest),太空侵略者(Space Invaders)。玩這些遊戲的過程中呢,用的網絡深層架構、學習算法,甚至是超參設置都是完全一樣的,這充分說明了該方法的有效性,以及泛化能力。(當然,也說明了DeepMind的小夥伴們懶得去調一手好參。)當然,有一點肯定是把不同的遊戲修改了的,那就是得分。不同的遊戲得分、算分的情況很不相同,導致處理起來很麻煩。因此,玩遊戲的過程中,每得到一個正分就加一,得到一個負分(滾粗)就給個減一。通過這種做法讓不同的遊戲都融合在一個框架內,不會因為奇怪的得分、給分方法導致出現計算上的困難。

註意我們的Arcade Learning Environment模擬器,跟agent配合起來會有一些問題,因為ALE把遊戲畫面一幀一幀計算出來很快,超過了agent的計算判決時間,所以導致遊戲玩起來一卡一卡的(這點不像棋牌類遊戲,可以給出思考時間),因為設置ALE出k幀才讓agent判決一次,這樣才能保證玩起來不是那麽的卡。在本組實驗中,k通常設置為4。

傳統的有監督學習過程中,評測是簡單確定的,給定了測試集,就可以對現有模型給出一個評價。然而,RL的評測是很困難的。最自然的評測莫過於計算遊戲的結果,或者幾次遊戲結果的均值,甚至是訓練過程中周期性的分數統計。但是,這種做法會有很大的噪聲,因為策略上權重的微小擾動可能造成策略掃過的狀態大不相同(回顧一下,狀態來自遊戲畫面,不同的動作選擇會導致下一幀畫面的變化,這個效應累計起來變化是巨大的。)。因此,DeepMind選擇了更加穩定的評價策略,即直接使用動作的價值函數,累加每一步操作agent可以得到的折扣回報。

實際操練

首先一些預處理是必不可少的,雖然論文本身標榜基本無預處理。但是顯然,DeepMind的玩家們更傾向於直接使用現成的Deep Neural Network(Hinton 2012年做ImageNet分類用到的卷積神經網絡,並使用了GPU加速),而不是自己從頭開始。正所謂“做像羅馬人做的事一樣的事情”,為了直接使用“羅馬人”開發的DL,首先做的是降維處理,將RGB三色圖變換成灰度圖,其次是做了一些裁剪,將原圖像由210×160采樣成110×84的圖像,並最終裁剪成84×84的圖像。最終是每4幀圖像合在一起當作一次訓練的樣本。

網絡架構方面,輸入是84×84×4的像素,第一層神經元是16個8×8的過濾器,第二層是32個4×4的過濾器,最後一層是與256個rectifier單元的全連接,輸出層是與單一輸出與下層的全連接的線性函數。DeepMind稱這種與RL結合使用的卷積神經網絡為Deep Q-Network.

技術分享

對照最左側的Q-value評價曲線,與右側“深海巡弋”相對照。點A時刻有一個敵軍出現在屏幕最左側,此時Q-value升高,B點時刻升高到峰值,因為我們發射的魚雷就要擊中敵軍。擊潰敵軍潛艇之後,Q-value降低。說明DeepMind的DRL是可以感知圖片語義的。

最終的評測對象中包含了Sarsa算法,Contingency算法,本算法,以及人類專家。前兩個算法都使用了人工合成的features。人類玩家的結果是玩每個遊戲兩小時之後取得所有成成績的中位數。最終對比結果顯示,首先是本算法遠勝於所有人工合成features的方法,其次是本方法還在打磚塊、摩托大戰和乓上得分超過人類玩家,在激光騎士上能跟人類玩家比部落下風。但是本算法在波特Q精靈、深海遊弋和太空侵略者三個遊戲上還離人類專家相去甚遠。因為這三個遊戲比另外的遊戲需要更多的深思熟慮,即策略鏈條上的每一次抉擇都可能會對長時間後的結果造成影響,而前三個遊戲前後之間關聯度小,前面操作造成的影響不易傳播到後面的策略中,因此效果會更好。

飛翔吧,小鳥!

由DRL看世界

“看看你自己的生活,你的職業選擇、你與配偶的邂逅、你被迫離開故土、你面臨的背叛、你突然的致富或潦倒,這些事有多少是按照計劃發生的?”正如塔勒布在《黑天鵝》中提到的,世界是隨機的。納特?西爾弗也保持這種觀點:預測一直都不是簡單的問題。復雜動力系統的預測困難來自三個方面,一是微觀結構的易變性,稀疏性導致缺少顯著的統計特征;二是復雜動力系統的混沌性,簡單的微擾會帶來巨大的變化;三是人類行為的因變性,導致數據分布改變影響預測模型。而不同的目的導向也導致了不同的不同的預測結果。除了天氣預報,鮮見較準確的預測系統。

只不過此隨機並非完全隨機的,而是某種程度上可預測的隨機。因為依據狀態的不同,動作的選擇並不是一個均勻分布。所謂一花一世界,一葉一菩提,RL正如現實世界的一個縮影。正是由於RL和DL對世界和人類高度的擬真性,筆者才感覺這倆是機器學習中最有趣的部分。蘇格拉底說“認識你自己”,尼采也有言“離每個人最遠的,就是他自己”,RL和DL像兩位不懈的巨人,在人類認識自我,認識環境的道路上漸行漸遠。

筆者一直對隨機過程保持敬畏之心。當然原因之一也是筆者曾差點“隨機過程隨機過”,但是,拋開那些“只是更善於闡述而已,甚至只是更善於用復雜的數學模型把你弄暈而已”的故弄玄虛,隨機過程支撐整個世界,貝葉斯點睛你的生活。

結構之美

一篇DRL引出了三種結構,這些結構都是美不勝收的。分別是“模型的結構”“數據的結構”以及“模型和數據的結構”。要註意的是,這裏都只是畫出了結構的一部分,還有其他大塊的部分沒體現在圖中。

技術分享

(模型的結構,圖為DL中的受限波爾特茲曼自動機)

技術分享

(模型和數據的結構,Gibbs sampling的網絡相依,節點為隱含變量和觀測變量)

參考文獻

  1. Playing Atari with Deep Reinforcement Learning
  2. Residual Algorithms: Reinforcement Learning with Function Approximation
  3. Bayesian Learning of Recursively Factored Environments
  4. The Arcade Learning Environment: An Evaluation Platform for General Agents
  5. CS229 Lecture notes: Reinforcement Learning and Control
  6. Rectified Linear Units Improve Restricted Boltzmann Machines
  7. An Analysis of Temporal-Difference Learning with Function Approximation
  8. Deep Auto-Encoder Neural Networks in Reinforcement Learning
  9. On optimization methods for deep learning
  10. Technical Note: Q-Learning
  11. Towards Distributed Reinforcement Learning for Digital Marketing with Spark

看DeepMind如何用Reinforcement learning玩遊戲