如何得到穩定可靠的強化學習演算法?微軟兩篇頂會論文帶來安全的平滑演進
「
取長補短,相得益彰
」
AI 科技評論按:強化學習最常見的應用是學習如何做出一系列決策,比如,如何一步步攀登上三千英尺高的岩壁。有機會用到強化學習並做出高水準結果的領域包括機器人(以及無人機)控制、對話系統(個人助理、自動化呼叫中心)、遊戲產業(智能 NPC、遊戲 AI)、藥物研發(分子構型測試、剪裁管理)、複雜系統控制(資源分配、過程優化)等等。
強化學習的學術研究目前已經取得了不少令人欣喜的研究成果,比如斯坦福大學的強化學習研究團隊就搞定了用強化學習控制一個簡化過的直升機模型(https://link.springer.com/chapter/10.1007/11552246_35),甚至還學會了新的雜耍動作;Orange Labs 部署了世界首個用強化學習優化的商業化對話系統(https://aclweb.org/anthology/papers/W/W10/W10-4332/);DeepMind 開發出了深度強化學習演算法 DQN(https://www.nature.com/articles/nature14236/),正是憑藉著這個演算法,他們訓練出了只依靠視覺輸入就可以在 Atari 遊戲中達到人類水平的智能體,以及創造了只靠自我對弈就可以在圍棋中達到超過人類頂尖水平的人工智慧。
雖然強化學習領域已經有了這麼多成果,但是用強化學習解決真實世界中的問題仍然是困難重重的。原因有許多種,包括:深度強化學習的樣本效率很糟糕,訓練演算法需要用到上億級的樣本,但這種數量的樣本是難以在真實世界獲得的;演算法的決策有可能是有危害的,所以只能在不會傷害生命、不會破壞設施的環境中訓練,也無法在有較高安全性要求的環境中使用;強化學習演算法的公平性無法保證;而且,演算法的可靠性、可重複性也不理想。
這篇博客討論的就是強化學習中的可靠性問題。上面列出的強化學習的成果只能代表它在「穩定、可靠」的時候的表現,然而深度強化學習解決真實世界問題時經常「不穩定、不可靠」。甚至於,在訓練演算法時使用兩個不同的隨機種子都會因為訓練過程中的隨機性而得到兩種截然不同的結果。微軟的研究人員們探究了兩種緩解這個問題的方法。AI 科技評論根據博客介紹如下。
· 演算法選擇法 ·
第一種方法是微軟蒙特利爾研究院在 ICLR 2018 論文《Reinforcement Learning Algorithm Selection》中提出的。它的思路很簡單,如果某個演算法不可靠,就訓練多個演算法,選取其中表現最好的那個。演算法選擇過程如下圖所示。在每輪訓練的開頭,演算法選擇器會從演算法庫中選擇一個演算法,這個演算法輸出的策略會在這輪訓練的後續部分中用到。下面來到綠色部分,用標準的強化學習循環一直執行到這輪訓練結束。訓練過程中生成的運動軌跡會被記錄下來,然後重新餵給演算法們,在之後更多的訓練中用到。不同演算法的表現會提交給演算法選擇器,它會在之後的更多訓練中選擇最適合的演算法。
微軟的研究人員們在談判對話博弈場景中進行了實驗。測試使用的演算法選擇系統 ESBAS 中含有兩個演算法,每個演算法單獨的表現如下圖,一個很穩定(藍線),另一個最初很差,會逐漸學習並改善(紅線)。ESBAS 的表現是綠色的線,它在每一時刻的表現都更接近更好的那個演算法。
另一個以 Atari 遊戲為環境的測試中,演算法選擇系統也結合了多個不同的 DQN 網路的能力,最終表現比每個單獨的演算法都要好。
最初微軟的研究人員們只是提出演算法選擇系統可以提升強化學習演算法的可靠性,但其實它的價值不止如此。首先,這個系統中存在交錯學習,在每一時間步上都更傾向於選擇能產生最好的策略的演算法;其次,一些難以直接表達為反饋的目標函數也可以在這個系統中實現(比如它可以強制保證達到某些安全限制);而且,研究人員們觀察到不同演算法策略的綜合體在環境中獲得了更加豐富多樣的經驗(也就意味著獲得了更多的信息);最後,正如上面那個例子展示的,演算法選擇系統可以在基準策略和需要時間學習的策略之間平滑地轉換。
· 可靠策略改進 ·
微軟的研究人員們還進行了另一個嘗試,這篇論文《Safe Policy Improvement with Baseline Bootstrapping》發表在了 ICML 2019 上。他們研究的是一個真實世界應用中時常會遇到的具體場景:批量強化學習。相比於典型強化學習的在環境中一邊互動一邊學習,批量強化學習中智能體並不與環境直接互動,只有一個固定的基準線智能體採集數據,然後用採集到的數據訓練演算法產生新的策略。這種批量學習的情境是真實世界場景中時長遇到的,對話系統、電子遊戲之類的部署在個人設備上的系統很難頻繁更新,更沒法實時更新,所以需要先大規模採集數據再訓練新的演算法;藥物分子測試中也有類似的狀況,如果像傳統強化學習那樣並行運行許多個軌跡需要花很多年,所以更適合用批量強化學習的方法。
批量強化學習流程
傳統強化學習在基準演算法基礎上的提升不是穩定可靠的。那麼在批量強化學習中,能夠可靠地改進策略就非常關鍵,因為如果得出了一個不好的策略,它的負面影響會遺留在許多軌跡中。微軟的研究人員們的目標是,相比於基準演算法的表現,可靠策略改進應當總是能夠保證有一定提升。
要保證總有提升,就要從表現最糟糕的狀況入手。研究人員們考慮了條件風險價值(1%-CVaR),這其實是一個簡單的概念,是指最糟糕的運行結果的平均值;每次運行的過程如上圖所示,包含數據收集和策略訓練。1%-CVaR 就是指所有運行結果中最糟糕的那 1% 的平均值。
這裡值得先回顧一下為什麼經典的強化學習無法達到好的表現。由於它唯一的信息來源就是這個數據集,經典強化學習在使用數據集的過程中就會隱式或者顯式地把數據集作為真實環境的體現。但是,畢竟真實環境具有一定的隨機性,或者模型的逼近能力也有限,當模型獲得的數據受限於數據集的時候,對真實環境的重現程度也是不確定的。那麼,只能接觸到數據集的學習演算法也就會產生盲點,以及對數據集過於依賴。所以,經典強化學習在這種情況下經常會訓練出在真實環境中表現非常糟糕的智能體。
實際上這還不是最糟糕的情況,強化學習會搜索並嘗試找到能優化目標函數的行為方式,在以往的研究中已經多次觀察到強化學習會利用環境中的小問題走捷徑,這就不是我們希望看到的了。在批量強化學習中這個問題會更糟糕一些,因為有些「捷徑」在真實環境中可能不存在,僅僅是因為收集的數據集中存在盲點,所以顯得彷彿存在捷徑。這個任務越複雜,各種盲點就會越多。所以,確保模型能夠謹慎地處理盲點也很重要。
微軟為這個難題提出的解決方案是 Safe Policy Improvement with Baseline Bootstrapping,SPIBB,帶有基準 bootstrap 的安全策略改進。SPIBB 想辦法把這條常識性的規則作用在了策略更新過程中:如果你不知道你在做什麼,那麼就不要這麼做。具體來說,只有在有足夠數據可以作證一個策略更新是有好處的時候,才會執行這項更新;否則就只是重複基準策略在數據收集過程中所做的。SPIBB 的思路也已經用在了因子化的 MDP 中(比如 AAAI 2019 論文 http://www.st.ewi.tudelft.nl/mtjspaan/pub/Simao19aaai.pdf ) 。
微軟的研究人員們在一個隨機生成的網格世界環境中進行了測試,這個環境中僅包含 25 個狀態和 4 種動作。根據數據集大小不同,研究人員們把 SPIBB 和以往文獻中的數種演算法進行了對比,平均表現如上圖。總的來說,所有演算法都得到了比基準線演算法更好的表現,SPIBB 演算法的兩個變體則獲得了最好的表現;相比之下,經典強化學習的表現甚至沒有隨著數據增加而一直變得更好。唯一一個表現和 SPIBB 近似的演算法是 RaMDP(http://papers.nips.cc/paper/6294-safe-policy-improvement-by-minimizing-robust-baseline-regret),但它的問題在於需要非常仔細地調節一個超參數,而且它不如 SPIBB 可靠。
這張圖是演算法可靠性的測試結果,即 1%-CVaR 最糟糕的 1% 情況中的表現。可以看到,經典強化學習是不可靠的,表現顯著低於基準演算法;SPIBB 的可靠性遙遙領先;RaMDP 在數據較少時穩定性表現不佳。研究人員們在其它的隨機環境、隨機基準演算法條件下的實驗也得到了類似的結果。在論文中,作者們也對 SPIBB 在有限 MDP 中的可靠性進行了嚴格的證明。
兩篇論文地址:
《Reinforcement Learning Algorithm Selection》,ICLR 2018,https://arxiv.org/abs/1701.08810
《Safe Policy Improvement with Baseline Bootstrapping》,ICML 2019,https://arxiv.org/abs/1712.06924
via microsoft.com/en-us/research/blog/,AI 科技評論編譯
※為什麼像素級是圖像標註的未來?
※PyTorch好助手:PyTorch Hub一鍵復現各路模型
TAG:AI研習社 |