當前位置:
首頁 > 最新 > RLlib簡介:一個可組合和可擴展的強化學習計算庫

RLlib簡介:一個可組合和可擴展的強化學習計算庫

在之前的文章中,我概述了強化學習(RL)在工業中的新興應用。我首先列舉了任何想要應用RL的人面臨的挑戰,包括對大量數據的需求,以及複製研究結果的難度以及派生出關鍵任務應用所需的錯誤估計。就算如此,RL在某些領域的成功一直是媒體廣泛報道的主題。這引起了人們的興趣,公司正在開始探討我在之前的文章中描述的一些用例和應用。許多任務和職業,包括軟體開發,都將可能會納入某些形式的由AI驅動的自動化。在這篇文章中,我將描述RISE實驗室的Ray平台如何隨著公司考察RL的用例而不斷發展和成熟。

假設已經確定了合適的用例,那麼如何開始使用RL?大多數正在考慮使用RL進行試點項目的公司都希望利用現有的庫。

圖1. RL訓練囊括很多種計算。感謝Richard Liaw和Eric Liang提供的圖片,使用已經過允許

有幾個開源項目可以作為嘗試的起點。 從技術角度來看,在考慮使用何種RL庫時,有幾個關鍵點:

它要支持現有的機器學習庫。 因為RL通常使用基於梯度下降或進化演算法來學習和擬合策略函數,所以您需要它支持您最喜歡的庫(TensorFlow,Keras,PyTorch等)。

可擴展性。 RL是計算密集型的,並且在關鍵應用程序中開始使用RL時,可以選擇以分散式方式運行。

可組合性。 RL演算法通常涉及模擬和許多其他組件。 您將需要一個庫,允許您重用與多種深度學習框架兼容的RL演算法組件(例如策略圖,走子演算等),並提供可組合的分散式執行原語(嵌套並行)。

圖2. 一些用於強化學習的開源庫。來源:Richard Liaw和Eric Liang, 使用已經過允許

介紹Ray RLlib

Ray是一個分散式執行平台(來自加州大學伯克利分校的RISE實驗室),它專註於新興的AI應用,包括那些依賴RL的應用。 RISE實驗室最近發布了RLlib,這是一個在Ray之上構建的可擴展和可組合的RL庫:

圖3. Ray是一個用於新興AI應用的開源平台。Ben Lorica提供圖片

RLlib旨在支持多種深度學習框架(目前支持TensorFlow和PyTorch),並可通過簡單的Python API使用。 它目前附帶以下流行的RL演算法(接下來還會有更多):

近端策略優化,PPO是TRPO的變體。

A3C(Asynchronous Advantage Actor-Critic)

Deep Q Net(DQN)。

進化策略,如論文所述。

要重點注意的是,如何計算、組合RL演算法組件沒有一種主流模式。因此,我們需要一個能夠在多層次、不同物理設備上發揮出並行計算優勢的庫。 RLlib是一個用於可擴展性RL應用部署的開源代碼庫,它能夠把不斷發展的RL組件有機結合在一起。特別是,RLlib能夠實現快速開發,因為通過重用和組裝現有實現(「並行封裝」),可以輕鬆構建可擴展的RL演算法。 RLlib還允許開發人員使用由幾種流行的深度學習框架創建的神經網路,並將其與流行的第三方模擬器集成在一起。

圖4. RLlib提供可組裝能力。感謝Richard Liaw和Eric Liang提供的圖片,使用已經過允許

用於機器學習的軟體需要在各種硬體配置(內部部署和公共雲)上高效運行。 Ray和RLlib被設計為在單個多核節點上或以分散式方式提供快速訓練,而這些軟體工具在異構硬體(不管CPU與GPU的比例是多少)上提供高效的性能。

例子:文本摘要和AlphaGo Zero

開始使用RL的最好方法,是把RL在現有的一些數據集上進行應用。 為此,RL的相對比較新的應用是在文本摘要中。 這裡有一個小例子,嘗試使用RLlib來對非結構化文本進行摘要(請注意,這不是生產級模型):

# Complete notebook available here: https://goo.gl/n6f43h

document = 「」」Insert your sample text here

「」」

summary = summarization.summarize(agent, document)

print(「Original document length is {}」.format(len(document)))

print(「Summary length is {}」.format(len(summary)))

文本摘要只是幾個可能的應用之一。 最近RISE實驗室的一篇論文提供了其他的例子,包括在70行左右的RLlib偽代碼中實現AlphaGo Zero的主要演算法。

使用RayTune進行超參數調整

另一個常見的例子涉及到模型的建立。 數據科學家要花費相當多的時間進行實驗,其中許多涉及調整他們最愛的機器學習演算法的參數。 隨著深度學習和RL變得越來越流行,數據科學家將需要某種軟體工具來進行高效的超參數調整和其他形式的實驗和模擬。 RayTune是一個新的深度學習和RL分散式超參數搜索框架。 它建立在Ray之上,與RLlib緊密結合。 RayTune基於網格搜索,並使用早期停止的想法,包括中位數停止規則和HyperBand。

有越來越多的開放源代碼軟體工具可用於希望深入學習和RL的公司。我們處於經驗時代,我們需要能夠實現快速並行實驗的工具,同時讓我們能夠利用流行的軟體庫,演算法和組件。 Ray剛剛添加了兩個庫,讓公司可以進行強化學習,並有效搜索神經網路架構的空間。

強化學習應用程序涉及多個組件,每個組件提供分散式計算的機會。 Ray RLlib採用了一種編程模型,可以輕鬆組合和重用組件,並利用多層次並行性和物理設備的並行性。在短期內,RISE實驗室計劃添加更多的RL演算法,用於與在線服務集成的API,支持多智能體場景,以及一組擴展的優化策略。

相關資源包括:

「工業中強化學習的實際應用」

「通過人工智慧和深度學習讓遊戲變為現實」:強化學習是如何為遊戲開發中的AI訓練而非編程打開大門的。

Ray:強化學習應用的分散式執行框架:由Ion Stoica舉辦的2017年人工智慧會議演講

利用Ray構建強化學習應用程序:2018年4月29日至5月2日在紐約市人工智慧大會上的一次會議。

「神經進化:一種不同的深度學習」

「為什麼持續學習是AI的關鍵」

This article originally appeared in English: "Introducing RLlib: A composable and scalable reinforcement learning library".


Ben Lorica是O』Reilly傳媒集團的首席數據科學家。他還是Strata數據大會和O』Reilly的人工智慧大會的項目主席。他已經在多個領域裡(包括直銷市場、消費者和市場研究、精準廣告、文本挖掘和金融工程)進行了商業智能、數據挖掘、機器學習和統計分析的工作。他之前曾效力於投資管理公司、互聯網創業企業和金融服務公司。

?

由O"Reilly和Intel共同舉辦的AI Conference 2018北京站承諾:

將會為您帶來一場史無前例的、全球領先人工智慧創新人士雲集的會議,讓中國的人工智慧人才與全球人工智慧思想領袖面對面地近距離交流。

大幕即將拉開,敬請關注!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 OReillyData 的精彩文章:

開放性:你可能沒聽說過的終極大挑戰

TAG:OReillyData |