DeepMind到底是如何教AI玩遊戲的?
GIF/184K
導讀
DeepMind到底是如何教AI玩遊戲的?這篇在Medium上獲得1700個贊的文章,把裡面的原理講清楚了。
谷歌的DeepMind是世界一流的AI研究團隊,其研發的AlphaGo在2016年備受矚目的人機大戰中擊敗了韓國圍棋冠軍李世石(Lee Sedol),一戰成名。AlphaGo背後的關鍵技術就是深度強化學習(Deep Reinforcement Learning)。
這篇論文講了些什麼?
這得從4年前說起。
彼時,DeepMind開發了一個AI程序,它能玩Atari公司70年代推出的一系列遊戲,如Breakout(打磚塊)、彈球遊戲《Pong》和《太空入侵者》(Space Invaders)。正是由於這項研究,谷歌收購了DeepMind,同時它也奠定了AlphaGo的基礎。
今天我們將逐段解析原研究論文《Playing Atari with Deep Reinforcement Learning》,便於剛開始接觸強化學習的讀者理解。
摘要
我們提出了首個可以成功利用強化學習直接從高維感官輸入中學習控制策略的深度學習模型。該模型是一種用 Q-learning的變體演算法訓練的卷積神經網路,其輸入是原始像素,輸出是預估未來獎勵(rewards)的價值函數。我們將該方法應用到Arcade模擬器中的7款Atari(雅達利)2600遊戲上,沒有對架構或演算法做任何調整。最終,在6款遊戲中,我們的方法完勝之前的所有方法,並且在其中3款遊戲中戰勝了一名人類遊戲專家。
我們的目的是利用深度學習讓機器人學習如何玩Atari遊戲。
這裡所說的機器人實際上指的是卷積神經網路。它和真正的端對端深度學習差不多,因為卷積網路獲取輸入的方式和人類遊戲玩家相同——直接觀察屏幕上的圖像,每移動一下就會獎勵或改變分數。而網路作出決策時需要的就是這些信息。
那捲積神經網路輸出的是什麼?
理論上,我們想讓網路選擇其認為之後能得到最多獎勵的動作。但是我們並沒有這樣做,而是讓它給18個可能的遊戲手柄動作分配「分值」。簡單來說,就是「分值V對應動作A」,即神經網路預估如果執行動作A,未來就會得到分值V。因此這個神經網路本質上是一個價值函數,它將屏幕狀態和獎勵變化作為輸入,輸出每種可能動作所對應的分值。這樣,你就可以選擇分值最高的動作,或者根據編程全面玩家(overall player)的方式選擇任何動作。
1 引言
從視覺和語音這樣的高維感官輸入中直接學習如何控制代理(操作的對象,agent)是強化學習(RL)的一項長期挑戰。在相關領域中,大多數成功的RL應用都依賴於人工生成特徵以及線性價值函數或策略表示(policy representations)的。顯然,此類系統的性能很大程度上依賴於特徵表示的質量。
如何讓神經網路理解屏幕上遊戲中的圖像?一種方法是直接將圖像輸入到神經網路中,不對其作任何處理;另一種方法是,將屏幕上的圖像總結為數字形式的信息,輸入到神經網路。本論文將第一種方法稱為「高維感官輸入」,將第二種方法稱為「人工生成的特徵表示」。
深度學習的最新進展使得從原始感官數據中提取高級特徵成為可能,得益於此,計算機視覺[11,22,22]和語音識別[6,7]研究也實現了很多突破。這些研究使用了卷積網路、多層感知器(multilayer perceptrons)、受限玻爾茲曼機(RBM,restricted Boltzmann machines)和循環神經網路等一系列神經網路架構,而且監督學習和無監督學習都有用到。說到這,我們就自然而然想到了這樣一個問題:類似的技術能否用來解決強化學習中的感官數據問題?
閱讀摘要後,就可以輕鬆理解本段。
然而,從深度學習的角度來看,強化學習會遇到以下幾個挑戰:
首先,目前大多數成功的深度學習應用都要求具備大量的手動標註的訓練數據;而且,強化學習演算法還必須能成功學習大量稀疏、嘈雜且延遲的標量獎勵信號(scalar reward signal)。動作和對應的獎勵之間的延遲可達數千個時間步長。與監督學習中輸入與結果之間的直接關聯(direct association)相比,這樣的延遲尤顯嚴重。
另一個問題是,大部分深度學習演算法都假定數據樣本是獨立的,而強化學習中通常都是關聯度很高的序列樣本。
此外在RL中,隨著演算法學習新行為,數據分布會發生改變;而深度學習則假設潛在分布是固定的。
在強化學習中,深度學習(DL)方法不像在監督/無監督學習中那麼好用。大多數DL應用要求有大量的帶有準確樣本和標籤的訓練數據集。在無監督學習中,目標成本函數仍然很好用。
但是在RL中,你會遇到這樣的問題:
獎勵可能會延遲很多時間步長(例如在國際象棋中,要走很多步才能吃掉對方的皇后,其他每一步都不能像最後一步那樣即時得到反饋獎勵,而有些步數可能比最後一步還要重要)。
獎勵機制可能很混雜——例如,某一動作對應的分數有時是隨機分配的,預測起來很難!
在DL中,我們常常假設輸入樣本之間沒有關聯性。例如,在圖像識別網路中,訓練數據往往包含大量的隨機組織的無關聯圖像。但是在學習如何玩遊戲時,動作策略的制定不僅取決於畫面的當前狀態,而且還要考慮先前的狀態和動作。所以,我們不能輕易地假設樣本之間互不關聯。
為什麼訓練數據樣本要互不關聯呢?假設你有5個動物圖像樣本,你想讓網路學習將它們歸為「貓」和「不是貓」這兩個類別。如果其中一張圖像中有貓,這會影響另一張圖像歸為「貓」類別的概率嗎?並不會。但是在視頻遊戲中,上一幀畫面必然與下一幀相關。如果激光束摧毀飛船需要10幀畫面,我敢肯定你從第9幀就可以預測到第10幀的結果。在進行學習時,你不應將間隔只有幾毫秒的兩幀看作為互不相關,因為這兩幀明顯都攜帶與對方相關的重要信息。它們都是相同「事實」(激光束射擊你的飛船)的組成部分。
而且訓練數據本身會隨著神經網路學習新策略而發生變化,這就使得網路更難用訓練。
什麼意思呢?比如,你是一個國際象棋新手。你第一次玩國際象棋時使用的是一些初級的策略,比如向前移動棋子,一逮住機會就吃掉對方的兵。當你繼續學習這些行為並為吃掉對方的兵感到高興時,這些走法就相當於你當前的訓練集。但是,當有一天你嘗試使用一種不同的策略(比如犧牲一個象來救自己的皇后,並吃掉對方的車)時,你會突然發現這個新策略太了不起了,於是便將這個新策略添加到你的訓練集中。如果你只是一直練習使用剛開始學習時的初級策略,那麼你就永遠學不到這個新策略。
不穩定數據分布就是這樣形成的,而這種變化通常不會發生在監督/無監督學習中。
面對這些挑戰,如何訓練神經網路?
這篇論文論證了卷積神經網路可以克服這些挑戰,在複雜的RL環境中從原始視頻數據學習成功的控制策略。我們用Q-learning 的變種演算法訓練神經網路,並利用隨機梯度下降法更新權重。為了緩解關聯數據與不穩定分布帶來的問題,我們使用了一種經驗回放機制(experience replay mechanism),這個機制可以隨機採樣之前的轉換,因此可以通過大量的歷史行為平緩訓練數據分布。
在本文中,我們闡述了如何解決上述問題,直接使用原始視頻/圖像數據。
這裡需要說明一個機制——「經驗回放機制」,它可以解決「數據關聯」以及「不穩定數據分配」(具體解釋請參看前文)的問題。
我們記錄了所有經驗——好比在圍棋中,每個經驗就像是[當前棋位,移動棋子,獲得獎勵,新的棋位]?,這些都儲存在記憶中。訓練時,我們選取隨機分布且互不關聯的經驗集。在每個經驗集(batch)中,不同的經驗也可能與不同的策略相關聯,因為先前所有的經驗和策略現在都混為了一體!這不僅會使訓練數據樣本變得更加隨機和關聯性更弱,還會使神經網路的訓練數據分布更加穩定,因為每個新的經驗集已經包含了大量的隨機策略經驗。
我們將此方法應用到通過ALE(街機遊戲模擬器,Arcade Learning Envi-ronment)實現的一系列Atari 2600遊戲中。Atari 2600是一個極富挑戰的RL測試平台,擁有高解析度(210×160 RGB,60Hz)視頻輸入的代理(agent),以及各種有趣的遊戲任務,專為人類玩家設計,具有較高的難度。我們的目標是在不提供任何遊戲信息、人工設計的視覺特徵,以及關於模擬器內部狀態的信息的情況下,創建一個神經網路代理,使其能學習玩儘可能多的遊戲;它只能學習視頻輸入、遊戲獎勵和終端信號,並像人類玩家一樣學習一系列可能的動作。此外,該神經網路的架構和用於訓練的所有超參數在所有遊戲中都保持不變。
截至目前(2013年),這個神經網路已經在7款遊戲中的6款上完勝此前所有的RL演算法,並且在3款遊戲中超越了人類遊戲專家的水平。圖1展示了用於訓練的5款遊戲的截屏。
本段大部分內容很容易理解,重點是所有遊戲中的神經網路架構和超參數(學習率等)完全相同。我們並沒有在《太空入侵者》中使用較大的神經網路,在《乒乓球遊戲》(ping-pong)中則使用較小的網路。在每個新遊戲中,我們都從零開始訓練神經網路,而且神經網路的架構都是相同的。這很了不起,不是嗎?
2 背景
在我們選取的任務中,代理通過一系列的動作、觀察和獎勵與環境(在本研究中為Atari模擬器)進行交互。在每一個時間步長中,代理從一組合理的遊戲動作中選一個動作A = ,再將這個動作傳到模擬器,改變模擬器內部狀態和遊戲得分。通常情況下,ε是隨機的。代理無法觀察到模擬器的內部狀態,但它可以從模擬器中觀察到
表示當前畫面的原始像素的一個向量。另外,代理還會收到表示遊戲得分變化的獎勵。
注意,通常遊戲得分可能取決於先前一系列的動作和觀察; 某一動作的反饋可能經過數千個時間步長才能收到。
前幾句很容易理解。「ε是隨機的」的意思是說環境不一定都是可以預測的(遊戲中哪有不變的真理?什麼事都有可能隨時發生)。
這裡重複強調了神經網路不會獲得任何關於遊戲內部狀態的信息。比如,我們不會讓神經網路學習「這個位置會有一個怪獸朝你射擊並向某一方向移動,你的飛船會在這裡出現並移動到那裡」等,我們只是輸入圖像,讓卷積神經網路自己確定怪獸在哪兒,玩家在哪兒,誰在朝哪兒射擊等等。這就是所謂的像訓練人類一樣訓練神經網路。
由於代理僅觀察當前畫面中的圖像,所有無法全面觀察到任務。而且,在感知上,許多模擬器狀態在感官上都是混疊的,也就是說,不可能僅根據當前畫面就完全了解當前的情況。 因此,我們還要考慮動作、觀察序列
並學習基於這些序列的遊戲策略。假設模擬器中的所有序列都在有限的時間步長上終止。 這種形式化表達會生成一個龐大卻有限的馬爾可夫決策過程(Markov Decision Process,MDP),其中每個序列都是一個不同的狀態。因此,我們可以將完整的序列作為t時刻的狀態表示,在馬爾科夫決策過程中使用標準的強化學習方法。
感知混疊:指的是兩種不同的狀態或位置在感知上被視為相同。比如,在一棟建築中,如果只藉助視覺信息,幾乎不可能確定某一位置,因為所有走廊可能看起來都相同。感知混疊就是這樣一個問題。
在Atari遊戲中,每毫秒的遊戲狀態不會發生多大變化,人類也無法在毫秒內做出決策。因此當輸入每秒60幀的視頻時,我們將每幀看作一個單獨的狀態,訓練數據中的大部分狀態看起來幾乎都一樣!因此,我們選擇隔幾幀(比如至少4到5幀)觀察一下「狀態」。我們將之稱為連續幀序列,並將一個序列作為一個狀態。此外,當人類玩家移動遊戲手柄時,數毫秒內遊戲手柄通常都保持不動,這會包含到狀態中。
每一幀都會持續執行相同的動作。每個序列(包括數幀和各幀之間相同的動作)都是一個單獨的狀態,而且這個狀態仍然適用於馬爾可夫決策過程(MDP)。
如果你研究過RL,你就會知道MDP是什麼以及它們的作用有哪些!MDP是RL中的核心假設。
代理的目標是通過以最大化未來獎勵的方式選擇動作,與模擬器進行交互。我們做出標準假設:懲罰(懲罰因子γ)每個時間步長的未來獎勵,並將時間t的懲罰後的未來獎勵定義為
其中T是遊戲終止的時間步長。我們將最優動作值函數
定義為通過遵循任何策略可實現的最大預期獎勵,在觀察到某序列s後採取某種行動a後,
其中π是將序列映射到動作(或動作分布)上的策略。
要想理解這部分內容,你首先要有一些強化學習和Q-Learning演算法的背景知識。你應該理解貝爾曼方程(Bellman equation)的作用、什麼是懲罰後的未來獎勵等。我在這裡會給出一個非常簡單的Q-Learning演算法說明。
上文中我們提到了「價值函數」,不記得的話再重新閱讀一下摘要。
現在假設你有一個這樣的表格,表格的行代表所有可能的遊戲狀態,列代表所有可能的遊戲手柄動作。每個單元格代表如果你執行某一動作而且在之後的遊戲中發揮了最佳水平的話所能獲得的最大未來總獎勵。這意味著你現在有一張「作弊紙條」,它會告訴你在任何狀態中執行某一動作會產生什麼結果!這些單元的分值被稱為Q-star值(Q*(s,a)):對於狀態s,如果執行動作a,表格就會給出最大未來分值Q*(s,a)。
在最後一行中,π代表「策略」。策略是指在某一狀態中選擇執行哪種動作的決策方法。
最優動作值函數遵循一個名為貝爾曼方程的重要函數。 這是基於以下直覺:如果下一個時間步長的序列的最優值
對所有可能的動作都是已知的,則最優策略是選擇最大化
預期值的動作
假設你處在狀態S1,你從表格(第3段有解釋)中獲知了所有可能動作的Q*值,然後選擇了A1,因為A1的Q*值最高。你得到一個獎勵R1,遊戲進入到另一個不同的狀態S2。在S2中,(例如)選擇表中的A2,就會獲得最大未來獎勵。
現在,初始Q*值——Q*(S1,A1)就是你從此狀態起發揮最佳遊戲水平所能得到的最大分值,這意味著Q*(S1, A1)應該等於獎勵R1與下一狀態的最大未來獎勵Q*(S2,A2)之和!我們的目的是減小下一狀態的影響,因此我們將Q*(S2,A2)乘以γ(0到1之間),這就是所謂的懲罰(discount)Q*(S2,A2)。
因此 Q*(S1,A1) = R1 + [γx Q*(S2,A2)]
許多強化學習演算法背後的基本思想都是通過將貝爾曼方程作為迭代更新來估計動作值函數的
這種價值迭代演算法可以收斂為最優動作值函數,即,。實際上,這種方法是完全不切實際的,因為每個序列的動作值函數都是分別估計的,沒有任何通用性。相反,我們常使用函數逼近器來估計動作值函數
強化學習中經常使用的都是線性函數近似器,但是有時也會使用非線性函數近似器,如神經網路。我們將權重為θ的神經網路函數近似器稱為Q網路。我們可以通過最小化在每次迭代i改變的一系列損失函數來訓練Q網路,
其中
是迭代i的目標,是序列s和動作a的概率分布,我們將之稱為行為分布。當優化損失函數時,前一迭代的參數保持不變。
注意,目標取決於網路權重; 這與用於監督學習的目標形成對比,這些目標在學習開始之前就保持不變。
對關於權重的損失函數進行差分,我們可以得到以下梯度
我承認讀了我的解釋後你也許仍會發現這部分很難理解。在這裡多花些時間。
再捋一遍之前的方程。
我們假設「已知」任何狀態以及任何未來動作的價值函數,並能藉助函數選出當前狀態的最優動作(通過對所有可能的Q值進行迭代,我們可以真正地預測未來)。但實際上,這樣的Q函數根本不存在!我們能做的最多是使用另一函數來「近似」Q函數,並通過重複測試該近似函數來一點一點對它進行更新。這個近似函數可以是簡單的線性多項式,也可以是非線性函數。因此我們選擇一個神經網路作為我們的「近似Q函數」。現在你應該明白我們為什麼要研讀這篇論文了吧。DeepMind先使用神經網路近似Q函數,然後再藉助該網路預測最優動作,從而讓計算機學習玩ATARI遊戲。學習一定時間後,計算機會更好地理解獎勵的運作機制,而且還會自行調整神經網路(通過調整權重),這樣網路就會越來越遠接近「真實的」Q函數!當達到足夠好的近似程度時,我們發現該網路的預測能力竟然能超越人類。
通常我們選擇通過隨機梯度下降法來優化損失函數(這樣計算起來更快捷),而不是計算上述梯度的完整期望值。如果在每個時間步長後更新權重,分別用行為分布ρ和模擬器 ε 中 的單個樣本替換期望,我們就會得到熟悉的Q-Learning演算法[26]。
注意,該演算法是無模型的:它直接使用來自模擬器 ε 的樣本來解決強化學習任務,並未特別構建 ε 的模型。該演算法也是離策略性的:它學習極大值策略,同時遵循能夠確保充分探索狀態空間的行為分布。在實踐中,行為分布通常是通過 ε 極大值(ε-greedy)策略來選擇的,該策略遵循以概率為 1- ε 的極值策略,並選擇概率為 ε 的隨機動作。
現在先不管上面的一團數學推導(對我來說也很難!)。已知Q-learning演算法是一種「無模型 」演算法。「無模型」的強化學習指的是代理不需要特別學習遊戲的規則或物理學。在基於模型的強化學習中,常常需要根據用來計算下一狀態的「轉換矩陣」(給定某一當前狀態和動作)以及用於計算獎勵的「獎勵函數」(給定某一當前狀態和動作),來定義這些規則和物理學(physics)。
在本研究中,這兩個元素因太過複雜而難以計算。仔細想想,我們並不需要它們!在這個「無模型」的方法中,我們只需要通過測試和試驗來學習Q值函數,因為我們假設優秀的Q值函數本來就會遵循遊戲的規則和物理學。
我們所用的方法是混合的。這樣方法的差異頗為微妙,因為既有策略性的也有離策略性的。
假設處於狀態s,需要從幾個動作中選擇一個動作。我們已知一個Q值函數的近似函數,我們計算了其中每個動作的近似Q值。當選擇動作時,我們有兩種選擇方法。其中的「greedy」方法是選擇Q值最大的動作,這是一種「極大值」策略,始終根據對遊戲的現有理解來選擇當前最有利的動作。但是開始時你並不知道Q值函數的近似函數,即使有一個好的策略,你仍然會想讓AI檢查其他可能的策略並預測各策略的結果。
這就是為什麼「極大值」策略並不一定有效的原因。當進行學習時,你不會只想一直嘗試你認為會有效的方法,你還會想嘗試其他可能有效的方法,而且這樣做還可以獲得經驗。
這就是策略性(極大值)和離策略性(非極大值)之間的差異。
為什麼說我們使用的方法是混合的呢?因為我們會根據網路學到了多少,來換著使用方法。我們依據代理會選擇哪個最優動作來改變概率。
這是怎麼做到的?我們將概率設為(1-e)來選擇最優動作,其中e為代表選擇隨機性的變數。因此,e=1代表選擇是完全隨機的,而e=0則表示始終選擇最優動作。
首先,當網路剛開始學習時,我們將e值設定為非常接近1 ,因為我們想讓AI系統探索儘可能多的策略。隨著時間的推移,AI系統學會越來越多的策略,我們再將e值縮小到趨近於0,這樣該AI系統就會停留在某一策略上。
3.相關工作
最著名的增強學習案例也許就是TD-gammon,這是一個完全通過強化學習和自我遊戲學習的西洋雙陸棋遊戲程序,它的遊戲水平超越了人類[24]。TD-gammon使用的是一種類似於Q-learning的無模型強化學習演算法,它用帶有一個隱藏層的多層感知器來近似價值函數。
Qiang:西洋雙陸棋遊戲是最受科學家喜愛的遊戲,他們常常用這個遊戲來測試他們的人工智慧系統和機器學習演算法。參考[24]使用的是一種無模型演算法,這種演算法的遊戲水平超越了人類。無模型意味著演算法的輸入(屏幕上的圖像)和輸出(發現的最佳遊戲策略)之間沒有明顯的等式關係。
Q-learning中的「Q」代表「質量(quality)」。當我們在某一狀態中執行某一動作時,我們會使用Q函數來表示懲罰後的最大未來獎勵。從這個狀態起,之後的狀態都始終執行最優策略(遊戲策略)。
參考[24]中的方法的不同之處在於:他們用多層感知器(multi-layer perceptron ,MLP)來近似Q值函數。在他們用的MLP中,輸入層和輸出層之間包含有一個隱含層。
Qiang:類似的方法無法成功地應用於其他遊戲,這使得人們不信任TD-gammon方法,他們將該方法在西洋雙陸棋上的成功歸因於骰子投擲隨機性。
回顧前面幾段,我們可以看出哪種函數可以用來近似理論上完美的Q值函數。顯然,線性函數比非線性函數適合。
拿神經網路來說,線性函數可以使神經網路更易於收斂(可以神經網路調整權重的方式更加準確,而不是變得更加隨機)。
Qiang:最近,研究人員又開始研究深度學習和強化學習的結合。他們使用深度學習演算法估計環境、價值函數和策略。同時,又用梯度時序差分學習法部分解決了發散問題。但是正如論文所述,這些方法只能適用於非線性函數的近似函數,不能直接應用於非線性函數。
Qiang:NFQ與本論文中的方法最為類似。NFQ的主要原理是使用RPROP(彈性反向傳播演算法)更新Q網路的參數,優化等式2中的損失函數序列。而它的弊端則在於:由於NFQ使用的是批量更新,所以其計算成本與數據集大小成比例。本論文使用的是隨機梯度更新法,這種方法在計算上更加高效。NFQ只能應用於簡單的任務,不能應用於視覺輸入,而本論文的演算法可以進行端對端的學習。另一篇關於Q-learning演算法的論文也使用的是低維狀態,而不是原始的視覺輸入;本論文克服了這個缺點。
Qiang:本段提出了Atari 2600模擬器的幾種應用。在第一篇論文中,Atari 2600模擬器作為強化學習平台,作者藉助線性函數的近似函數以及通用視覺特徵應用了標準強化學習演算法;使用更多特徵並將特徵映射到低維空間中,以改進結果;然後再利用HyperNEAT進化架構分別為每款遊戲形成一個神經網路。這個神經網路可表示遊戲策略,並且經過訓練後還可以利用某些遊戲中的某些設計缺陷。但是如該論文所述,此演算法無需調整網路架構,就可以學習7款Atari 2600遊戲的策略。
TD Gammon是一種策略性方法,它直接使用經驗(s1, a1, r1, s2)訓練網路(無經驗回放機制等)。
本段闡述的是對TD Gammon作出的某些改進。第一個改進是經驗回放,上文有說明。函數φ的作用是預處理圖像等,因此我們將遊戲的狀態儲存為最終預處理後的形式(下一部分會作進一步解釋)
使用經驗回放法有幾個實際的優勢(本段在下一頁繼續)。
第一,和常規的深度學習一樣,每個數據樣本都可重新使用多次,用以更新權重。在進行訓練時,同一經驗我們也可以使用多次,這是對數據的高效利用。
第二個和第三個優勢非常相關。因為每個狀態都與其之後的下一狀態密切相關(玩視頻遊戲時也是一樣),用連續狀態訓練權重會導致程序只遵循一種遊戲玩法。根據Q函數預測一個動作,執行這個動作,然後更新權重,這樣下次你就很可能會向左移動。如果打破這個模式,從先前的經驗中隨機抽取樣本,就可以避免這些不必要的反饋循環。
從經驗回放中收取簡單樣本固然是種好方法,但是有時你會想讓代理學習遊戲中的某一重要的轉換。這就是該論文當前方法的一個局限。相關建議是:在使用經驗回放時,選擇概率更大的重要轉移,或者採取其他類似操作。
(下文的所有內容都是基於前文中闡述的理論,很大一部分內容都是技術細節)
本段大部分內容很容易理解。狀態S經過預處理後包含4個不同的幀,然後通過預處理將它們轉換為灰度,調整尺寸並裁剪為84x84的方形圖像。我的觀點是,由於遊戲每秒運行24多幀,人類的反應速度根本無法保證能在每一幀中都執行一個動作,因此合理的方法是在相同的狀態中一次考慮4個連續的幀。
在構建網路架構時,你可以將S1和A1作為Q函數的輸入,分別輸出它們的Q值。但是這意味著在每一步中,該網路都必須全部運行一遍18種可能的遊戲手柄操作,並比較這18種操作對應的輸出。但是,我們可以只將S1作為輸入,並使每個輸出對應於某一給定遊戲手柄操縱的Q值。用這種方法比較Q值要方便多!
前一半內容很容易理解。後一半講的是該試驗的要點:獎勵作為代理的輸入,而本試驗改變了獎勵的性質。因此,只要是正獎勵就輸入+1,負獎勵則輸入-1,無變化則輸入0。這當然與真實有效的工作原理不同——獎勵始終在變化,完成某些些任務獲得的獎勵要比完成其他任務獲得的獎勵高。儘管如此,在某些遊戲中代理的表現還是超越了人類玩家!
我們在第2部分中解釋了e-greedy以及經驗回放。本段講的是它們的實現細節。
在按照前文中的方法玩Atari遊戲時,我們還使用了一種簡單的跳幀(frame-skipping)方法[3]。更確切地說,代理在每kth幀而不是在每一幀觀察並選擇動作,在跳過的幀中則重複它的最後一個動作。由於模擬器向前運行一步需要的計算量少於代理選擇一個動作的計算量,這種方法可以使代理在不大幅增加運行時間的情況下將遊戲次數增加約k倍。除了《太空入侵者》(Space Invader),我們在其他遊戲中都將k設為4,如果在這款遊戲中將k設為4,就會看不見激光,因為跳過的幀與激光閃爍的時長相重疊。將k設定為3就可以看到激光,k值的改變就是不同遊戲間的唯一超參數差異。
本段講的是在訓練期間使用的評估指標。在監督學習中,我們可以通過驗證準確性(validation accuracy)來評估模型性能,但是在強化學習中並沒有可用來作比較的驗證集。那麼有什麼其他方法可用於檢查模型是否在朝著某一目標訓練或者權重是否只是在亂變化?本論文的目標是構建一個能在遊戲中獲得高分的AI代理,何不使用總得分作為我們的評估指標呢?我們可以讓模型玩多款遊戲,收集平均總得分。
但是在實際中,這種指標的評估效果並不好,因為它會十分嘈雜。還有什麼其他指標呢?我們在本實驗中的另一目標是找出一種可以確保獲得最高得分的「策略」(如前文所述,這是一種離策略學習)。任何特定時刻的Q值代表AI代理預期的未來總獎勵。如果AI代理找到了一種好策略,那麼該策略的Q值就更高,對嗎?現在讓我們研究一下Q值本身是否能作為評估指標。實驗結果表明,Q值似乎比平均總獎勵更為穩定。但是這種方法並沒有合理的理論解釋,它只是碰巧可行而已。(實際上深度學習中這種情況很常見。某些方法就是可行,而其他某些方法雖然理論上可行但實際不可行。例如Dropout,這種方法雖然看起來天馬行空但是卻十分有效)
本段很簡單,描述了價值函數在遊戲中不同動作中的變化方式。
本段將本論文的結果與本領域先前研究的結果進行了對比。「Sarsa」指的是[s1,a1,r,s2,a2],這是一種策略學習演算法(與我們的離策略學習形成對比)。這兩種方法間的差異不是很容易理解,可以參考以下資料:
https://studywolf.wordpress.com/2013/07/01/reinforcement-learning-sarsa-vs-q-learning/
除了給出學習代理(learned agents)的得分,我們還給出了人類專業遊戲玩家的得分,以及一種均勻地隨機選擇動作的策略。人類玩家的表現表示為玩了兩小時遊戲後得到的獎勵中值。
注意,我們給出的人類玩家的得分要比Bellemare等人論文[3]中給出的得分高得多。至於學習方法,我們遵循的是Bellemare等人的論文[3,5]中使用的評估策略,並且我們還通過將 ε 設定為0.05運行 ε 極大值( ε -greedy)策略來獲得固定步數的平均得分。表1的前5行給出了所有遊戲的各遊戲平均得分。在這7款遊戲中,我們的方法(DQN法)雖然沒有吸納任何關於輸入的先驗知識,結果還是大幅超越了其他學習方法.
https://medium.com/@mngrwl/explained-simply-how-deepmind-taught-ai-to-play-video-games-9eb5f38c89ee
文章作者:AI科技大本營
文章編輯:秦革
【燈塔大數據】微信公眾號介紹:中國電信北京研究院通過整合電信自有數據、互聯網數據和線下數據,創建了業內領先的「燈塔」大數據行業應用平台,致力於與行業合作夥伴共同打造大數據行業應用生態圈。
微信公眾號【燈塔大數據】關鍵字信息:
【人工智慧】獲取人工智慧時代的發展思考 ppt
【半月刊】下載大數據瞭望半月刊
【網路安全】獲取國民網路安全報告全文
【23個理由】下載《大數據讓你興奮的23個理由》電子書
【思維導圖】下載12種工具的獲取方式
【 燈塔 】 查看更多關鍵字回復
GIF/168K
點擊展開全文


TAG:燈塔大數據 |