在之前的文章中,我概述了強(qiáng)化學(xué)習(xí)(RL)在工業(yè)中的新興應(yīng)用。我首先列舉了任何想要應(yīng)用RL的人面臨的挑戰(zhàn),包括對(duì)大量數(shù)據(jù)的需求,以及復(fù)制研究結(jié)果的難度以及派生出關(guān)鍵任務(wù)應(yīng)用所需的錯(cuò)誤估計(jì)。就算如此,RL在某些領(lǐng)域的成功一直是媒體廣泛報(bào)道的主題。這引起了人們的興趣,公司正在開(kāi)始探討我在之前的文章中描述的一些用例和應(yīng)用。許多任務(wù)和職業(yè),包括軟件開(kāi)發(fā),都將可能會(huì)納入某些形式的由AI驅(qū)動(dòng)的自動(dòng)化。在這篇文章中,我將描述RISE實(shí)驗(yàn)室的Ray平臺(tái)如何隨著公司考察RL的用例而不斷發(fā)展和成熟。
假設(shè)已經(jīng)確定了合適的用例,那么如何開(kāi)始使用RL?大多數(shù)正在考慮使用RL進(jìn)行試點(diǎn)項(xiàng)目的公司都希望利用現(xiàn)有的庫(kù)。

圖1 RL訓(xùn)練囊括很多種計(jì)算。感謝Richard Liaw和Eric Liang提供的圖片,使用已經(jīng)過(guò)允許
有幾個(gè)開(kāi)源項(xiàng)目可以作為嘗試的起點(diǎn)。 從技術(shù)角度來(lái)看,在考慮使用何種RL庫(kù)時(shí),有幾個(gè)關(guān)鍵點(diǎn):
- 它要支持現(xiàn)有的機(jī)器學(xué)習(xí)庫(kù)。 因?yàn)镽L通常使用基于梯度下降或進(jìn)化算法來(lái)學(xué)習(xí)和擬合策略函數(shù),所以您需要它支持您最喜歡的庫(kù)(TensorFlow,Keras,PyTorch等)。
- 可擴(kuò)展性。 RL是計(jì)算密集型的,并且在關(guān)鍵應(yīng)用程序中開(kāi)始使用RL時(shí),可以選擇以分布式方式運(yùn)行。
- 可組合性。 RL算法通常涉及模擬和許多其他組件。 您將需要一個(gè)庫(kù),允許您重用與多種深度學(xué)習(xí)框架兼容的RL算法組件(例如策略圖,走子演算等),并提供可組合的分布式執(zhí)行原語(yǔ)(嵌套并行)。

Figure 2. 一些用于強(qiáng)化學(xué)習(xí)的開(kāi)源庫(kù)。來(lái)源:Richard Liaw和Eric Liang, 使用已經(jīng)過(guò)允許
介紹Ray RLlib
Ray是一個(gè)分布式執(zhí)行平臺(tái)(來(lái)自加州大學(xué)伯克利分校的RISE實(shí)驗(yàn)室),它專注于新興的AI應(yīng)用,包括那些依賴RL的應(yīng)用。 RISE實(shí)驗(yàn)室最近發(fā)布了RLlib,這是一個(gè)在Ray之上構(gòu)建的可擴(kuò)展和可組合的RL庫(kù):

Figure 3. Ray是一個(gè)用于新興AI應(yīng)用的開(kāi)源平臺(tái)。Ben Lorica提供圖片
RLlib旨在支持多種深度學(xué)習(xí)框架(目前支持TensorFlow和PyTorch),并可通過(guò)簡(jiǎn)單的Python API使用。 它目前附帶以下流行的RL算法(接下來(lái)還會(huì)有更多):
- 近端策略優(yōu)化,PPO是TRPO的變體。
- A3C(Asynchronous Advantage Actor-Critic)
- Deep Q Net(DQN)。
- 進(jìn)化策略,如論文所述。
要重點(diǎn)注意的是,如何計(jì)算、組合RL算法組件沒(méi)有一種主流模式。因此,我們需要一個(gè)能夠在多層次、不同物理設(shè)備上發(fā)揮出并行計(jì)算優(yōu)勢(shì)的庫(kù)。 RLlib是一個(gè)用于可擴(kuò)展性RL應(yīng)用部署的開(kāi)源代碼庫(kù),它能夠把不斷發(fā)展的RL組件有機(jī)結(jié)合在一起。特別是,RLlib能夠?qū)崿F(xiàn)快速開(kāi)發(fā),因?yàn)橥ㄟ^(guò)重用和組裝現(xiàn)有實(shí)現(xiàn)(“并行封裝”),可以輕松構(gòu)建可擴(kuò)展的RL算法。 RLlib還允許開(kāi)發(fā)人員使用由幾種流行的深度學(xué)習(xí)框架創(chuàng)建的神經(jīng)網(wǎng)絡(luò),并將其與流行的第三方模擬器集成在一起。

圖4 RLlib提供可組裝能力。感謝Richard Liaw和Eric Liang提供的圖片,使用已經(jīng)過(guò)允許
用于機(jī)器學(xué)習(xí)的軟件需要在各種硬件配置(內(nèi)部部署和公共云)上高效運(yùn)行。 Ray和RLlib被設(shè)計(jì)為在單個(gè)多核節(jié)點(diǎn)上或以分布式方式提供快速訓(xùn)練,而這些軟件工具在異構(gòu)硬件(不管CPU與GPU的比例是多少)上提供高效的性能。
例子:文本摘要和AlphaGo Zero
開(kāi)始使用RL的最好方法,是把RL在現(xiàn)有的一些數(shù)據(jù)集上進(jìn)行應(yīng)用。 為此,RL的相對(duì)比較新的應(yīng)用是在文本摘要中。 這里有一個(gè)小例子,嘗試使用RLlib來(lái)對(duì)非結(jié)構(gòu)化文本進(jìn)行摘要(請(qǐng)注意,這不是生產(chǎn)級(jí)模型):
# 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)))
文本摘要只是幾個(gè)可能的應(yīng)用之一。 最近RISE實(shí)驗(yàn)室的一篇論文提供了其他的例子,包括在70行左右的RLlib偽代碼中實(shí)現(xiàn)AlphaGo Zero的主要算法。
使用RayTune進(jìn)行超參數(shù)調(diào)整
另一個(gè)常見(jiàn)的例子涉及到模型的建立。 數(shù)據(jù)科學(xué)家要花費(fèi)相當(dāng)多的時(shí)間進(jìn)行實(shí)驗(yàn),其中許多涉及調(diào)整他們最愛(ài)的機(jī)器學(xué)習(xí)算法的參數(shù)。 隨著深度學(xué)習(xí)和RL變得越來(lái)越流行,數(shù)據(jù)科學(xué)家將需要某種軟件工具來(lái)進(jìn)行高效的超參數(shù)調(diào)整和其他形式的實(shí)驗(yàn)和模擬。 RayTune是一個(gè)新的深度學(xué)習(xí)和RL分布式超參數(shù)搜索框架。 它建立在Ray之上,與RLlib緊密結(jié)合。 RayTune基于網(wǎng)格搜索,并使用早期停止的想法,包括中位數(shù)停止規(guī)則和HyperBand。
有越來(lái)越多的開(kāi)放源代碼軟件工具可用于希望深入學(xué)習(xí)和RL的公司。我們處于經(jīng)驗(yàn)時(shí)代,我們需要能夠?qū)崿F(xiàn)快速并行實(shí)驗(yàn)的工具,同時(shí)讓我們能夠利用流行的軟件庫(kù),算法和組件。 Ray剛剛添加了兩個(gè)庫(kù),讓公司可以進(jìn)行強(qiáng)化學(xué)習(xí),并有效搜索神經(jīng)網(wǎng)絡(luò)架構(gòu)的空間。
強(qiáng)化學(xué)習(xí)應(yīng)用程序涉及多個(gè)組件,每個(gè)組件提供分布式計(jì)算的機(jī)會(huì)。 Ray RLlib采用了一種編程模型,可以輕松組合和重用組件,并利用多層次并行性和物理設(shè)備的并行性。在短期內(nèi),RISE實(shí)驗(yàn)室計(jì)劃添加更多的RL算法,用于與在線服務(wù)集成的API,支持多智能體場(chǎng)景,以及一組擴(kuò)展的優(yōu)化策略。
相關(guān)資源包括:
- “工業(yè)中強(qiáng)化學(xué)習(xí)的實(shí)際應(yīng)用”
- “通過(guò)人工智能和深度學(xué)習(xí)讓游戲變?yōu)楝F(xiàn)實(shí)”:強(qiáng)化學(xué)習(xí)是如何為游戲開(kāi)發(fā)中的AI訓(xùn)練而非編程打開(kāi)大門的。
- Ray:強(qiáng)化學(xué)習(xí)應(yīng)用的分布式執(zhí)行框架:由Ion Stoica舉辦的2017年人工智能會(huì)議演講
- 利用Ray構(gòu)建強(qiáng)化學(xué)習(xí)應(yīng)用程序:2018年4月29日至5月2日在紐約市人工智能大會(huì)上的一次會(huì)議。
- “神經(jīng)進(jìn)化:一種不同的深度學(xué)習(xí)”
- “為什么持續(xù)學(xué)習(xí)是AI的關(guān)鍵”
Ben Lorica
Ben Lorica是O’Reilly傳媒集團(tuán)的首席數(shù)據(jù)科學(xué)家。他還是Strata數(shù)據(jù)大會(huì)和O’Reilly的人工智能大會(huì)的項(xiàng)目主席。他已經(jīng)在多個(gè)領(lǐng)域里(包括直銷市場(chǎng)、消費(fèi)者和市場(chǎng)研究、精準(zhǔn)廣告、文本挖掘和金融工程)進(jìn)行了商業(yè)智能、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)和統(tǒng)計(jì)分析的工作。他之前曾效力于投資管理公司、互聯(lián)網(wǎng)創(chuàng)業(yè)企業(yè)和金融服務(wù)公司。

