經驗回放在強化學習中的應用
1. 稀疏二元獎勵
近年來,強化學習名聲大噪,在某些領域取得的成就令人嘆為觀止,比如擊敗圍棋世界冠軍,以及最近在流行的實時策略遊戲《星際爭霸2》中擊敗頂級專業玩家。令人印象深刻的成就之一是最新的圍棋競技型智慧體——AlphaZero,它從稀疏二元獎勵中不斷學習,在比賽中非輸即贏。大多數情況下,每場遊戲中沒有中間獎勵會令智慧體的學習寸步難行,因為智慧體可能永遠不會取得完全勝利,這意味著將不存在如何提高性能的回饋。顯而易見,像圍棋和星際爭霸2這樣的遊戲(至少比賽是這樣進行的)有一個獨特性質——對稱型零和遊戲,智慧體可以利用這些二元獎勵來學習。現在不深究這個問題,但可能會在後續的文章中專門討論AlphaZero背後的演算法。
癥結在於大多數要解決問題都是非對稱型零和博弈,智慧體再次陷入無法獲得回饋、不能有效學習的困境。這在經典的強化學習問題山頂車案例中可見一斑。在這個問題上,一輛汽車試圖到達山頂插旗子的位置,但由於它的加速度比較小,無法徑直駛上山頂,它必須在山谷處來回上下坡以獲得速度,最終到達目標位置。
只要這輛車還沒到達山頂插旗處,它每走一步就會得到-1的獎勵值,直到此幕在固定步數後結束。通常使用的一種切實可行的方法是應用領域知識增強獎勵密度,這就是所謂的獎勵工程或獎勵塑造。在山頂車案例中,眾所周知,汽車必須加快速度才能攀爬山坡,一個合理的方法是獎勵中考慮汽車的速度因素,鼓勵它加快速度。如果一絲不苟地設計獎勵值,智慧體將會加快速度,最終出其不意地到達目標旗幟處,避免原本會獲得的一些負獎勵。
這種方法的實現並非輕而易舉。在某些情況下,我們可能不知道如何塑造獎勵來幫助智慧體學習;換句話說,必須知道如何解決問題,才能正確塑造獎勵。特別是對於有難度的問題而言,領域知識並不總是觸手可及。還有一點困擾是,一旦設計出獎勵,不再直接針對真正感興趣的指標進行優化,轉而優化希望可以簡化學習過程的近似指標。這可能會導致智慧體在行動時偏離相對於真實的目標,有時甚至會導致始料不及的行為,可能需要經常微調設計的獎勵來提高正確度。
2. 多目標強化學習
強化學習領域許多赫赫有名的成就還涉及一個與眾不同的方面,即這些遊戲與非常具體的目標息息相關,例如「在Breakout遊戲中儘可能多得分」。上述問題中,智慧體觀察到環境的一個狀態,選擇一個動作執行並獲得獎勵。在這種情況下,策略可以表示為:
其中a是接下來要選擇的動作,s是當前的狀態。
但現實世界中的許多問題並非如此,只有一個必須完成的全局性任務。在許多情況下,我們希望智慧體能夠實現多個不同的目標,比如拿紅球的同時也拿綠立方體。但並不是意味著智慧體需要以某種方式立即執行這些目標,而是希望它能夠根據請求執行這些任務中的任意一個。 在此情形下,可以將策略表達為:
其中g表示期望目標。本文將目標視為期望智慧體到達的狀態,這是一個多目標學習問題。如果給多目標問題增加額外的稀疏二元獎勵難度,那就真的身陷囹圄了。
在《「後見之明」經驗回放》這篇論文中,OpenAI 的研究人員給出了一個詮釋上述問題的簡單案例。假設有一個由二進位向量(0-1)組成的狀態,旨在訓練一個可以到達任何給定的二進位目標向量的智慧體。可能的動作是每次改變向量中的一個比特位,未達到目標之前,每一步獎勵為 -1。顯而易見,如果把狀態向量值和目標向量值設置得很大,用常規方法解決這個問題將不可企及。隨機交換比特位和想方設法艱難獲得期望目標向量的概率微乎其微。即使用專門的探索方法(比如在前面文章中提到的方法),也很可能失敗。因為對於這些方法來說,每個目標向量涉及的問題大相徑庭,導致目標狀態空間過大。論文作者證明,利用DQN演算法,最大可解向量大小為13,之後成功率急劇下降到零。
3.「後見之明」經驗回放——亡羊補牢
離線策略學習
但人類是如何應對這樣的問題呢?有時,當我們不能完成某項任務時,會意識到現在所做的事情也許在另一個環境中或對另一項任務是錦上添花。這篇論文(我最喜歡的強化學習論文之一)的作者正是憑藉這種直覺來研究他們的方法。
即使最終折戟沉沙, 反思過去執行的動作並從中推斷出有用的資訊卻至關重要。為了轉化上述能力,我們將目光聚焦於一種被稱為離線策略學習的學習範式。
在強化學習中,智慧體嘗試學習一個策略,在給定初始狀態分布的情況下,該策略將最大化期望累積回報。智慧體通過反覆試錯後與環境交互學習策略,並利用在此過程中收集的數據改進策略。但在某些強化學習演算法中,智慧體可以從另一個策略收集的數據中學習嶄新的策略。另一個策略記錄了與環境交互的數據,強化學習演算法可以利用這些數據來推斷出潛在的更優策略。從此刻起,將智慧體正在努力學習的策略簡單地稱為「策略」,把記錄數據的策略稱為「探索策略」。探索策略的主要目標是探索更多的狀態—動作空間,以便智慧體能夠從中推斷出在不同的狀態下應該採取什麼樣的動作。離線策略學習演算法的經典標杆是深度Q網路(DQN,Deep-Q-Network)和深度確定性策略梯度(DDPG,Deep Deterministic policy Gradient),這些演算法通過一個探索策略來學習給定數據集的狀態-動作對的值。
相比之下,在線策略學習演算法必須僅依賴於所學習的同一策略收集的數據,這意味著其無法利用其他策略收集的歷史數據,包括它們自己舊版本中的數據(例如應用隨機梯度下降法更新到神經網路之前)。在線策略學習演算法的典型標杆是多樣化的策略梯度方法,如REINFORCE A3C(Asynchronous Advantage Actor Critic)演算法。
4.「後見之明」經驗回放
在著名的DQN演算法中,對每一批用於更新神經網路的訓練樣本進行去相關處理,利用歷史經驗緩衝區的數據穩定訓練過程。這個緩衝區記錄過去的狀態、在這些狀態下採取的動作、獲得的獎勵和觀察到的下一個狀態。若想將其擴展到多目標環境中,必須保存狀態之外的目標,讓智慧體學習狀態-目標-動作三元組的價值。
正如我們所見,經驗回放緩衝區中的數據可能源自探索策略,這引發了一種有趣的可能性:如果可以通過想像情況截然不同時會發生什麼的方式添加虛擬數據,該如何應對呢?實際上,這正是 「後見之明」經驗回放 (HER)所做的工作。
HER中,作者提出了下述方法:假設智慧體嘗試執行從初始狀態 S 到達目標狀態 G 的一幕,但以失敗告終,在該幕結束時最終處於某個狀態S’。將軌跡快取到回放緩衝區:
其中帶有下標 k 的 r 表示在該幕的第 k 步收到的獎勵,帶有下標 k 的 a 表示在該幕的第 k 步執行的動作。HER的思想是設想目標其實一直都是S’,在這個另類的現實中,智慧體成功地到達目標,並因此獲得正回報。因此,除了快取之前看到的真實軌跡外,還快取以下軌跡:
這是設想的一條軌跡,受人類從失敗的嘗試中學習經驗的能力啟迪。還應該注意的是,在設想的軌跡中,在這一幕的最後一步獲得的獎勵現在是到達設想目標獲得的正獎勵。
通過在回放緩衝區中引入設想的軌跡,可以確保無論策略有多糟糕,智慧體總會獲得一些值得學習的正獎勵。在這個階段,我們可能會捫心自問,學習實現不感興趣的目標有何用意?顯然,在訓練開始時,那些設想的目標只是糟糕地隨機初始化策略可以達到的狀態,其實「虛有其表」。然而,神經網路函數逼近的「魔力」將確保策略也能達到與以前類似的狀態;這就是泛化屬性,它是成功進行深度學習的標誌。一開始,智慧體能夠到達初始狀態周圍相對較小區域中的狀態,但它會逐漸擴展狀態空間的可到達區域,直到最終學會到達我們真正感興趣的目標狀態。
這一過程與深度學習中另一種常見的學習方式——課程式學習有異曲同工之妙。在課程式學習中,我們希望神經網路學習一些困難內容,但是一旦讓它在實際任務上訓練,它很可能會失敗。我們所能做的就是讓神經網路開始對較小的問題實例進行訓練,這些問題要容易得多,然後逐漸增加實例的難度,直到模型對擬解決的任務表現良好。課程式學習通常在實踐中效果良好,但需要設計者手動設計課程,生成更簡單的任務實例。這並非輕而易舉,因為有時可能無法生成一個更簡單版本的問題,成功地設計課程可能既困難又耗時。
與此相反,HER方法給出了一個非常相似的結果,卻不要求更改問題或設計課程。可以將HER方法視為一個隱式的課程式學習過程,在此過程中,總是向智慧體提供可以切實解決的問題,逐漸增加這些問題涵蓋的範圍。
作者在幾種機器人操作任務中對HER演算法進行了測試,在這些任務中,智慧體必須實現不同於初始狀態的目標,例如拾取物體或將其滑動到某個目標位置。如果智慧體及時完成這些任務,則它將獲得獎勵;如果任務尚未及時完成,則智慧體不會獲得獎勵。 作者使用DDPG作為基本演算法對HER演算法進行了測試,結果表明HER演算法成功學習到完成這些任務的方法,而其他演算法則無法進行學習。
作者還證明,即使是對於真正關心特定目標的任務,只要可以提供其他目標用於訓練智慧體,HER演算法也會提高性能。
HER演算法是一種優美簡潔的方法,如果掌握此方法,許多強化學習應用領域的難題和重要課題將迎刃而解。
免責聲明:本文表達的觀點是作者的觀點,並不代表IBM的觀點。