0

雷鋒網 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 科技評論編譯
雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。