方 偉,黃增強(qiáng),徐建斌,黃 羿,馬新強(qiáng)
基于Spark的分布式機(jī)器人強(qiáng)化學(xué)習(xí)訓(xùn)練框架
方 偉1,2,黃增強(qiáng)3,徐建斌4,黃 羿1,5,馬新強(qiáng)1,5
(1. 浙江大學(xué)智能系統(tǒng)與控制研究所,浙江 杭州 310027;2. 淮北職業(yè)技術(shù)學(xué)院計算機(jī)科學(xué)技術(shù)系,安徽 淮北 235000;3. 杭州電子科技大學(xué)計算機(jī)學(xué)院,浙江 杭州 310018;4. 國家電網(wǎng)浙江省電力有限公司物資分公司,浙江 杭州 310000;5. 重慶文理學(xué)院大數(shù)據(jù)智能計算與可視化研究所,重慶 402160)
強(qiáng)化學(xué)習(xí)能夠通過自主學(xué)習(xí)的方式對機(jī)器人難以利用控制方法實現(xiàn)的各種任務(wù)進(jìn)行訓(xùn)練完成,有效避免了系統(tǒng)設(shè)計人員對系統(tǒng)建?;蛑贫ㄒ?guī)則。然而,強(qiáng)化學(xué)習(xí)在機(jī)器人開發(fā)應(yīng)用領(lǐng)域中訓(xùn)練成本高昂,需要花費大量時間成本、硬件成本實現(xiàn)學(xué)習(xí)訓(xùn)練,雖然基于仿真可以一定程度減少硬件成本,但對類似Gazebo這樣的復(fù)雜機(jī)器人訓(xùn)練平臺,仿真過程工作效率低,數(shù)據(jù)采樣耗時長。為了有效解決這些問題,針對機(jī)器人仿真過程的平臺易用性、兼容性等方面進(jìn)行優(yōu)化,提出一種基于Spark的分布式強(qiáng)化學(xué)習(xí)框架,為強(qiáng)化學(xué)習(xí)的訓(xùn)練與機(jī)器人仿真采樣提供分布式支持,具有高兼容性、健壯性的特性。通過實驗數(shù)據(jù)分析對比,表明本系統(tǒng)框架不僅可有效提高機(jī)器人的強(qiáng)化學(xué)習(xí)模型訓(xùn)練速度,縮短訓(xùn)練時間花費,且有助于節(jié)約硬件成本。
機(jī)器人;強(qiáng)化學(xué)習(xí);Spark;分布式;數(shù)據(jù)管道
目前,大多數(shù)傳統(tǒng)智能機(jī)器人系統(tǒng)都是基于精確模型的控制方法,如果實現(xiàn)較為精準(zhǔn)可靠的控制性能則需要花費大量成本預(yù)先建立精準(zhǔn)模型,且上述機(jī)器人控制模型對于未知環(huán)境輸入適應(yīng)性不強(qiáng)。強(qiáng)化學(xué)習(xí)與傳統(tǒng)控制方法相比,無需建立精準(zhǔn)模型,經(jīng)由大量采樣數(shù)據(jù)訓(xùn)練得到可行的控制模型。但是,強(qiáng)化學(xué)習(xí)在模型訓(xùn)練過程中,大量的數(shù)據(jù)采集需要通過與機(jī)器人的交互獲得,在使用真實機(jī)器人進(jìn)行大量數(shù)據(jù)采樣時存在數(shù)據(jù)獲取速度慢、損耗大等問題,特別對于類似四翼飛行器的飛行機(jī)器人,甚至?xí)霈F(xiàn)嚴(yán)重的危險狀況。為了克服數(shù)據(jù)采樣困難,南加州大學(xué)開發(fā)了可用于機(jī)器人強(qiáng)化學(xué)習(xí)的Gazebo仿真器系統(tǒng),一定程度上節(jié)約了訓(xùn)練成本和縮短了訓(xùn)練時間,加快了采集數(shù)據(jù)的速度。結(jié)合強(qiáng)化學(xué)習(xí)進(jìn)行機(jī)器人系統(tǒng)的訓(xùn)練模擬已經(jīng)有較多的成功先例,如Google的AlphaGo Zero[1]、波士頓動力的Atlas[2]等。強(qiáng)化學(xué)習(xí)要想達(dá)到更佳的訓(xùn)練效果也要經(jīng)過足夠大量采樣的訓(xùn)練,但是限于計算機(jī)的運算能力,訓(xùn)練時間成為了一個重要瓶頸,因此很多技術(shù)人員開始嘗試在分布式仿真平臺上進(jìn)行訓(xùn)練,但是目前沒有專門針對機(jī)器人強(qiáng)化學(xué)習(xí)訓(xùn)練的分布式處理框架作為支持,訓(xùn)練效果依然無法讓人滿意[3]。因此,在現(xiàn)有開源框架的基礎(chǔ)上,本文提出一套適用于機(jī)器人強(qiáng)化學(xué)習(xí)的分布式訓(xùn)練框架系統(tǒng),可實現(xiàn)機(jī)器人控制仿真的并行化加速[4-5]。
2012年加州大學(xué)伯克利分校的AMP實驗室開源了類Hadoop MapReduce[6-8]的通用并行框架Spark。Spark的系統(tǒng)架構(gòu)選擇了經(jīng)典的一主多從結(jié)構(gòu),內(nèi)存計算使其能夠很好地支持普通的機(jī)器學(xué)習(xí)算法的運行,尤其是借助大量數(shù)據(jù)的訓(xùn)練。但是,Spark的分布式迭代作業(yè)是基于任務(wù)級別,對強(qiáng)化學(xué)習(xí)這種需要頻繁交換參數(shù)的任務(wù)無法做到很好地支持[9]。為了解決Spark對強(qiáng)化學(xué)習(xí)等算法無法高效支持的問題,實現(xiàn)基于分布式框架Spark與流數(shù)據(jù)處理組件Flume的訓(xùn)練平臺原型顯得尤為重要。Flume NG是由Cloudera開發(fā)的一個具備高可用性、高可靠性、分布式的日志采集、聚合和傳輸系統(tǒng)[10],其支持定制數(shù)據(jù)發(fā)送,兩者通常被結(jié)合用來開發(fā)具備近實時的數(shù)據(jù)管理系統(tǒng),借助此特性,為實現(xiàn)開發(fā)一個基于Spark與Flume NG的強(qiáng)化學(xué)習(xí)訓(xùn)練平臺提供了可能。
強(qiáng)化學(xué)習(xí)任務(wù)中參數(shù)的耦合關(guān)系相較機(jī)器學(xué)習(xí)算法更加強(qiáng),所以基于MapReduce結(jié)構(gòu)的Spark任務(wù)抽象方式并不適用分布式設(shè)計,因此有必要獨立設(shè)計一種針對強(qiáng)化學(xué)習(xí)任務(wù)的分布式系統(tǒng)[11]??紤]到工作量的關(guān)系,基于分布式框架Spark進(jìn)行后續(xù)開發(fā)能夠更加快速地完成一個可用、穩(wěn)定的訓(xùn)練框架[12]。因此,如何在MapReduce的結(jié)構(gòu)上進(jìn)一步抽象強(qiáng)化學(xué)習(xí)任務(wù),并提供快速、可靠的服務(wù)是本文原型系統(tǒng)的重點考慮之處。
Spark下的機(jī)器學(xué)習(xí)算法的并行化以K-means[13-14]為例,其步驟分為:①從數(shù)據(jù)集中隨機(jī)選擇初始聚類中心(K-means++等算法優(yōu)化對初始類中心的選擇有不同處理);②計算其余所有的點到類中心的距離,并把每個點劃分到離其最近的聚類中心所在的類別中去(距離公式根據(jù)需要亦有不同);③重新計算每個聚類中的所有點的均值,并將之作為新的聚類中心;④重復(fù)步驟②、③直至聚類中心不再改變。Spark的K-means的實現(xiàn)中將第②步進(jìn)行了并行化處理,第③步將重新計算后的新的類中心數(shù)據(jù)匯總。數(shù)據(jù)集的操作均是通過彈性分布式數(shù)據(jù)集RDD來進(jìn)行,而強(qiáng)化學(xué)習(xí)算法通過自身的經(jīng)歷進(jìn)行自我學(xué)習(xí),其中最重要的3個因素是狀態(tài)、行為和激勵參數(shù),所以Spark簡單的將任務(wù)并行以及單一的數(shù)據(jù)集并不適用于強(qiáng)化學(xué)習(xí)任務(wù),有必要將Spark的抽象方式通過封裝得到一種新的抽象方式,并設(shè)計一種合適的數(shù)據(jù)傳遞方式[15-16]。
并行任務(wù)中最重要的控制點是在任務(wù)出現(xiàn)耦合時,耦合點所需要的上一步結(jié)果必須保證其可靠性,即完整的結(jié)果。所以有必要設(shè)計一種控制機(jī)制,保證并行任務(wù)中參數(shù)傳遞的可靠性,有效地進(jìn)行任務(wù)。
集群處理任務(wù)容易出現(xiàn)的另一個問題是存在節(jié)點失效的風(fēng)險與可能性,因此失效節(jié)點的任務(wù)重置處理存在一定的必要性,確定的重置作業(yè)能力極大地簡化了調(diào)試,透明的容錯機(jī)制使用戶無需顯式的處理錯誤,而且允許用戶使用廉價的可搶占資源(例如AWS上的spot實例),從而在公共云中運行時節(jié)省大量成本。
為了讓強(qiáng)化學(xué)習(xí)任務(wù)能夠在集群上執(zhí)行,針對基于Spark強(qiáng)化學(xué)習(xí)分布式系統(tǒng)優(yōu)化的需求設(shè)計了強(qiáng)化學(xué)習(xí)任務(wù)的系統(tǒng)架構(gòu),如圖1所示。合理的任務(wù)調(diào)度結(jié)構(gòu)能夠有效地提高強(qiáng)化學(xué)習(xí)任務(wù)在分布式框架下的執(zhí)行效率。
圖1 系統(tǒng)整體架構(gòu)圖
(1) 全局控制組件。任務(wù)從初始化開始,負(fù)責(zé)任務(wù)的調(diào)度,參數(shù)的分發(fā)與收集,同時對節(jié)點的運行狀況進(jìn)行監(jiān)控,并針對相應(yīng)的特殊情況(如計算瓶頸)做出相應(yīng)的處理。
(2) 本地控制組件。初始化后,由全局控制組件根據(jù)用戶配置隨機(jī)選擇相應(yīng)數(shù)量的節(jié)點初始化本地控制組件,負(fù)責(zé)本地任務(wù)的執(zhí)行,任務(wù)所需參數(shù)的獲取與簡單驗證,以及運行結(jié)果的上傳。
(3) 本地計算組件。負(fù)責(zé)執(zhí)行本地控制組件分配的任務(wù),與環(huán)境進(jìn)行交互,得到需要的反饋即激勵參數(shù)。
(4) 數(shù)據(jù)管道。負(fù)責(zé)本地控制組件與全局控制組件之間參數(shù)、任務(wù)函數(shù)和運行結(jié)果的傳遞,需要保證一定的時效性。
Spark的主要操作有Spark SQL,Spark Streaming,MLlib,GraphX等,詳細(xì)架構(gòu)如圖2所示。
圖2 Spark架構(gòu)圖
本系統(tǒng)框架根據(jù)Spark編程模型進(jìn)一步封裝適合于強(qiáng)化學(xué)習(xí)任務(wù)開發(fā)的編程模型。對Spark的數(shù)據(jù)操作對象JavaRDD類進(jìn)行進(jìn)一步抽象,簡化數(shù)據(jù)集的操作函數(shù),降低任務(wù)抽象方式的層,將每個函數(shù)均作為Map操作,即遠(yuǎn)程計算,同時提供部分Spark不具備的內(nèi)容。為了提供強(qiáng)化學(xué)習(xí)交互所需要的仿真環(huán)境,本平臺實現(xiàn)了RoboSchool環(huán)境的啟動入口。調(diào)用啟動入口可以初始化仿真環(huán)境的配置,并在遠(yuǎn)程函數(shù)執(zhí)行時啟動初始化的仿真環(huán)境,并給遠(yuǎn)程函數(shù)以相應(yīng)的反饋。其次,為了處理并發(fā)任務(wù)的異構(gòu)持續(xù)時間問題,進(jìn)一步實現(xiàn)Sync()函數(shù)。調(diào)用Sync()函數(shù)時監(jiān)控遠(yuǎn)程函數(shù)返回的變量列表,并記錄變量內(nèi)容。同時Sync()會一直阻塞監(jiān)控中未完整返回的變量,直至變量完整返回。同步函數(shù)的引入一定程度上提高了高耦合的強(qiáng)化學(xué)習(xí)任務(wù)的容錯率。
控制組件的設(shè)計考慮到任務(wù)抽象方式不同必然會帶來任務(wù)調(diào)度的不同,以及后期算法擴(kuò)展、兼容等問題,并未使用Spark技術(shù),因此,有必要重新設(shè)計并實現(xiàn)一個新的控制組件。
與Spark的分層調(diào)度解決方案一樣,本平臺調(diào)度方案也采用了全局控制組件與多節(jié)點的本地控制組件。任務(wù)節(jié)點創(chuàng)建任務(wù)時,先把任務(wù)交給全局控制組件,再由其根據(jù)各子節(jié)點的負(fù)載情況分發(fā)任務(wù),當(dāng)子節(jié)點的負(fù)荷過載,便將其置入待緩沖節(jié)點序列,等到該節(jié)點的負(fù)荷降至限制之下再釋放。本地控制組件接受任務(wù)后,首先檢索任務(wù)需要的前置條件,然后向全局控制節(jié)點請求所需變量;本地任務(wù)完成后,本地控制組件主動向全局控制組件提交該任務(wù)的結(jié)果,結(jié)果由本地及全局控制組件分別存儲;全局控制組件在接收到子任務(wù)完成的結(jié)果后更新該子任務(wù)的狀態(tài),具體數(shù)據(jù)交換過程如圖3所示。
圖3 控制組件之間的數(shù)據(jù)交換
為了適應(yīng)強(qiáng)化學(xué)習(xí)任務(wù)之中的耦合,即參數(shù)傳遞,需要對Spark的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)進(jìn)行修改,介于修改JavaRDD的難度與局限性,有必要重新構(gòu)建一種基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)。強(qiáng)化學(xué)習(xí)任務(wù)抽象后參數(shù)的傳遞與流數(shù)據(jù)處理相近,而且Spark與Flume結(jié)合可以做到對數(shù)據(jù)近實時處理,能夠保證任務(wù)處理的速度,因此,數(shù)據(jù)管道采用了Flume NG為基礎(chǔ)框架。
圖4為數(shù)據(jù)管道類圖,上行參數(shù)與下行參數(shù)均繼承自參數(shù)數(shù)據(jù)類,考慮到數(shù)據(jù)均為參數(shù)矩陣或單個參數(shù),所以統(tǒng)一設(shè)置為List
Sync()的同步原理是檢測全局控制組件中該任務(wù)在各子節(jié)點的返回結(jié)果是否全部接收,當(dāng)參數(shù)完整獲取后,放棄對當(dāng)前線程的阻塞。
圖4 數(shù)據(jù)管道類圖
在分布式計算過程中,模型的傳遞占用了節(jié)點間通信的90%以上,而各個子模型中存在相當(dāng)程度的重復(fù)工作,有效地壓縮模型可以縮減通信量,提高模型的訓(xùn)練速度。本訓(xùn)練框架按照本地算法計算得出一個本地最優(yōu)模型,然后將各個子節(jié)點的模型進(jìn)行聚合,以1%為步長逐步刪除參數(shù),經(jīng)過多次實驗表明,在保證模型質(zhì)量的情況下刪除8%的參數(shù)后,能夠比較快速地完成任務(wù)。
現(xiàn)有的優(yōu)秀的機(jī)器人模擬、強(qiáng)化學(xué)習(xí)訓(xùn)練框架大多是基于Ubuntu平臺開發(fā)的,而用戶使用的系統(tǒng)不一,且版本較雜亂,為了能夠靈活的對多系統(tǒng)平臺兼容,且提高平臺部署的便捷性,引入Docker容器技術(shù)。選擇將框架集成到一個鏡像中,對外開放通信必須的端口,用于框架與Spark的通信。用戶代碼通過映射的方式在鏡像啟動時掛載到該鏡像下,在啟動腳本中指定子節(jié)點數(shù)量,以及用戶程序入口及其他參數(shù)即可通過啟動腳本啟動程序,任務(wù)結(jié)束后啟動的鏡像會根據(jù)任務(wù)啟動時的部署命令自動回收鏡像,保證集群資源的可用性。平臺容器化后,通過管理容器能夠?qū)崿F(xiàn)對硬件的更充分、更靈活地使用,Docker與虛擬機(jī)架構(gòu)圖如圖5和圖6所示。
圖5 Docker架構(gòu)
圖6 虛擬機(jī)架構(gòu)
通過實驗數(shù)據(jù)測試分析基于Spark的強(qiáng)化學(xué)習(xí)分布式系統(tǒng)與其他傳統(tǒng)平臺在流數(shù)據(jù)處理性能、計算成本以及在節(jié)點擴(kuò)展性能等方面,綜合的測試本平臺各方面性能表現(xiàn)。表1和表2分別為CPU和GPU實驗平臺硬件及系統(tǒng)配置說明,實驗均在這2個平臺進(jìn)行,由于設(shè)備的采購時間不同,因此設(shè)備的價格以實驗時的價格為準(zhǔn)。
表1 CPU實驗平臺硬件及系統(tǒng)配置說明
表2 GPU實驗平臺硬件及系統(tǒng)配置說明
平臺結(jié)合的模擬環(huán)境在常見的Ray提供的gym,集合了與mujoco相似的RoboSchool等模擬環(huán)境。以上實驗的模擬環(huán)境均使用了較為常見的RoboSchool模擬環(huán)境Walker2d。
流數(shù)據(jù)處理在機(jī)器學(xué)習(xí)或強(qiáng)化學(xué)習(xí)中是常見的操作,能夠體現(xiàn)系統(tǒng)節(jié)點之間數(shù)據(jù)交互的速度與計算能力,因此是機(jī)器訓(xùn)練學(xué)習(xí)的一個重要的測試指標(biāo)。Spark作為本平臺分布式主體計算框架,得到了廣泛使用,并形成了成熟的生態(tài)體系。與Spark平臺進(jìn)行對比實驗?zāi)軌虺浞烛炞C本實驗平臺在傳統(tǒng)流數(shù)據(jù)處理方面的性能。
實驗結(jié)果如圖7所示,在CPU數(shù)量較少時本平臺要具有更大的優(yōu)勢,此任務(wù)下適當(dāng)?shù)脑黾庸?jié)點數(shù)量的處理方式對Spark更有效。表3給出了同樣CPU數(shù)量下完成任務(wù)所使用的時間以及本平臺所損耗的時間比例,可以發(fā)現(xiàn)本平臺對流數(shù)據(jù)處理能夠?qū)⑦\行時間的損耗保持在–2%~7%。
圖7 流數(shù)據(jù)處理性能對比
表3 流數(shù)據(jù)處理時間及損耗對比
實際的使用環(huán)境中,集群配置不同、節(jié)點數(shù)量不同、不同實驗所需要的計算性能的不同等因素都會對平臺提出嚴(yán)格的要求,所以分布式平臺的節(jié)點擴(kuò)展性是一個非常重要的性能指標(biāo),一個可用的分布式平臺必須具備良好的擴(kuò)展性。
在模擬環(huán)境Walker2d下(圖8),雙足機(jī)器人不斷嘗試向前移動,當(dāng)機(jī)器人無法移動時結(jié)束當(dāng)前循環(huán),每次迭代將機(jī)器人的行進(jìn)距離作為獎勵反饋給算法。重復(fù)訓(xùn)練實驗并以24為步長逐漸增加訓(xùn)練使用的CPU數(shù)量,實驗結(jié)果如圖9所示,不同顏色線條代表實驗不同的回合,結(jié)果表明對于同一個訓(xùn)練任務(wù),訓(xùn)練節(jié)點的增加在節(jié)點數(shù)量較少時能夠有效減少訓(xùn)練時間,隨著節(jié)點的增加訓(xùn)練時間減少效果逐漸減弱,但是并未因節(jié)點數(shù)量的增加而過度的增加節(jié)點間通信損耗。
圖8 Walker2d雙足機(jī)器人仿真
圖9 擴(kuò)展性測試
在任務(wù)執(zhí)行中,框架的健壯性、容錯性是任務(wù)能否繼續(xù)順利進(jìn)行的保障,而不是中斷任務(wù),浪費已經(jīng)花費的時間與精力。實驗中,通過隨機(jī)中斷某子節(jié)點的通訊來模擬子節(jié)點的崩潰現(xiàn)象,觀察框架在出錯時對錯誤的處理能力是否繼承了Spark的健壯性。如圖10所示,實驗分別在第100 s和第200 s隨機(jī)關(guān)閉了一個節(jié)點的通信,測試實驗穩(wěn)定的繼續(xù)完成了剩余任務(wù)。本測試任務(wù)進(jìn)行了10次,均完成了實驗任務(wù),說明基于Spark擴(kuò)展的本框架繼承了Spark的健壯性。
圖10 健壯性測試
Dryad是用于粗粒度數(shù)據(jù)并行應(yīng)用的通用分布式執(zhí)行引擎,具有優(yōu)秀的性能。Dryad應(yīng)用程序?qū)⒂嬎沩旤c與通信通道結(jié)合起來形成數(shù)據(jù)流圖,通過在一組可用計算機(jī)上執(zhí)行該圖的頂點來運行應(yīng)用程序,并通過文件、TCP管道和共享內(nèi)存FIFO進(jìn)行適當(dāng)?shù)耐ㄐ?。本平臺與Dryad就在ES算法的訓(xùn)練任務(wù)中的表現(xiàn)進(jìn)行了對比,實驗結(jié)果如圖11所示,從圖中可以看出本平臺相對Dryad能夠更快地進(jìn)行任務(wù)的迭代循環(huán),從而獲得良好的訓(xùn)練效果。
圖11 與Dryad多次實驗對比
為了解決機(jī)器人模擬與強(qiáng)化學(xué)習(xí)在分布式計算方面的需求,本框架在Spark與Flume NG的流數(shù)據(jù)處理的基礎(chǔ)上進(jìn)行了補(bǔ)充與封裝,完成了一個具備一定可用性、穩(wěn)定性、可擴(kuò)展的訓(xùn)練框架。最后,通過多個實驗分別驗證了本平臺與傳統(tǒng)框架相比分別在流數(shù)據(jù)處理、健壯性、可擴(kuò)展性方面均具備良好的訓(xùn)練效果。該分布式智能機(jī)器人訓(xùn)練系統(tǒng)已在國網(wǎng)浙江省電力有限公司物資分公司智能財務(wù)機(jī)器人發(fā)票分揀中起到了提高算力等作用。
[1] SILVER D, SCHRITTWIESER J, SIMONYAN K, et al. Mastering the game of go without human knowledge [J]. Nature, 2017, 550(7676): 354-359.
[2] EL ALAMI A. A survey of the vulnerable cuvier′s gazelle (gazella cuvieri) in the mountains of ait tamlil and anghomar, central high atlas of morocco [J]. Mammalia, 2018, 83(1): 74-77.
[3] MAILLO J, RAMíREZ S, TRIGUERO I, et al. kNN is: An iterative Spark based design of the k-nearest neighbors classifier for big data [J]. Knowledge Based Systems, 2017, 117: 3, 15.
[4] XI N, SUN C, MA J F, et al. Distributed information flow verification for secure service composition in smart sensor network [J]. China Communications, 2016, 13(4): 119-130.
[5] 趙玲玲, 劉杰, 王偉. 基于Spark的流程化機(jī)器學(xué)習(xí)分析方法[J]. 計算機(jī)系統(tǒng)應(yīng)用, 2016, 25(12): 162-168.
[6] 程敏. 基于PostgreSQL和Spark的可擴(kuò)展大數(shù)據(jù)分析平臺[D]. 深圳: 中國科學(xué)院深圳先進(jìn)技術(shù)研究院, 2016.
[7] 陳虹君, 吳雪琴. 基于Hadoop平臺的Spark快數(shù)據(jù)推薦算法分析與應(yīng)用[J]. 現(xiàn)代電子技術(shù), 2016, 39(10): 18-20.
[8] 喬非, 葛彥昊, 孔維暢. 基于MapReduce的分布式改進(jìn)隨機(jī)森林學(xué)生就業(yè)數(shù)據(jù)分類模型研究[J]. 系統(tǒng)工程理論與實踐, 2017, 37(5): 1383-1392.
[9] 張繁, 袁兆康, 肖凡平, 等. 基于Spark的大數(shù)據(jù)熱圖可視化方法[J]. 計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報, 2016, 28(11): 1881-1886.
[10] KROHN M, TROMER E. Noninterference for a practical DIFC-based operating system [C]//2009 30th IEEE Symposium on Security and Privacy. New York: IEEE Press, 2009: 61-76.
[11] 羅元帥. 基于隨機(jī)森林和Spark 的并行文本分類算法研究[D]. 成都: 西南交通大學(xué), 2016.
[12] 卜堯, 吳斌, 陳玉峰, 等. BDAP:一個基于Spark的數(shù)據(jù)挖掘工具平臺[J]. 中國科學(xué)技術(shù)大學(xué)學(xué)報, 2017, 47(4): 358-368.
[13] 唐振坤. 基于Spark 的機(jī)器學(xué)習(xí)平臺設(shè)計與實現(xiàn)[D]. 廈門: 廈門大學(xué), 2014.
[14] 張濱. 基于MapReduce大數(shù)據(jù)并行處理的若干關(guān)鍵技術(shù)研究[D]. 上海: 東華大學(xué), 2017.
[15] 胡俊, 胡賢德, 程家興. 基于Spark的大數(shù)據(jù)混合計算模型[J]. 計算機(jī)系統(tǒng)應(yīng)用, 2015, 24(4): 214-218.
[16] 皮艾迪, 喻劍, 周笑波. 基于學(xué)習(xí)的容器環(huán)境Spark性能監(jiān)控與分析[J]. 計算機(jī)應(yīng)用, 2017, 37(12): 3586-3591.
Training Framework of Distributed Robot Reinforcement Learning Based on Spark
FANG Wei1,2, HUANG Zeng-qiang3, XU Jian-bin4, HUANG Yi1,5, MA Xin-qiang1,5
(1.Institute of Cyber Systems and Control, Zhejiang University, Hangzhou Zhejiang 310027, China; 2. Department of Computer Science and Technology, Huaibei Vocational and Technical College, Huaibei Anhui 235000, China; 3. School of Computer Science, Hangzhou Dianzi University, Hangzhou Zhejiang 310018, China; 4. Materials Branch, State Grid Zhejiang Electric Power Company, LTD, Hangzhou Zhejiang 310000, China;5. Institute of Intelligent Computing and Visualization Based on Big Data, Chongqing University of Arts and Sciences, Chongqing 402160, China)
Through autonomous learning, reinforcement learning can train robots to complete various tasks that are difficult for them to implement with control methods, and this can effectively avoid system designers from systemic modeling or rules making. However, the training cost of reinforcement learning in the field of robot development and application is high, and it takes a large amount of time cost and hardware cost to realize learning and training. Although the hardware cost can be reduced to some extent based on simulation, for the complicated robot training platform such as Gazebo, the working efficiency of simulation process is low, and it takes a long time for data sampling. In order to effectively solve these problems, a distributed reinforcement learning framework based on Spark is put forward, which optimizes the usability and compatibility of platform of robot simulation process, offers distributed support for the training of reinforcement learning and robot simulation sampling, and has the characteristics of high compatibility and robustness. Through analyzing and contrasting the experimental data, the system framework can not only effectively improve the training speed of reinforcement learning model of robot and shorten the training time, but also help with the saving of hardware cost.
robot; reinforcement learning; Spark; distribute; data pipeline
TP 242
10.11996/JG.j.2095-302X.2019050852
A
2095-302X(2019)05-0852-06
2019-07-31;
2019-08-24
浙江大學(xué)工業(yè)控制技術(shù)國家重點實驗室開放課題項目(ICT1800413);重慶市發(fā)改委重大產(chǎn)業(yè)技術(shù)研發(fā)項目(2018148208);重慶市教委科技項目(KJ1601129);安徽省高校自然科學(xué)研究重點項目(KJ2018A0713);安徽高校優(yōu)秀青年骨干人才國內(nèi)訪問研修項目(gxgnfx2018108);廣東省重點領(lǐng)域研發(fā)計劃項目(2019B010120001)
方 偉(1979-),男,安徽淮北人,副教授,碩士。主要研究方向為機(jī)器學(xué)習(xí)、計算機(jī)視覺等。E-mail:664288201@qq.com
黃 羿(1976-),女,重慶人,副教授,博士。主要研究方向為機(jī)器學(xué)習(xí)、機(jī)器人及計算機(jī)視覺等。E-mail:36931978@qq.com