原標(biāo)題:亞馬遜云科技DeepRacer模型訓(xùn)練指南及標(biāo)準硬件配置流程
Amazon DeepRacer介紹
Amazon DeepRacer是一個綜合性的學(xué)習(xí)系統(tǒng),可供各個水平的用戶用來學(xué)習(xí)和探索強化學(xué)習(xí)以及試驗和構(gòu)建自動駕駛應(yīng)用程序。
DeepRacer可分為兩個主要部分:
Amazon DeepRacer Console:在線訓(xùn)練和評估強化學(xué)習(xí)模型在模擬自動駕駛環(huán)境;
Amazon DeepRacer車輛:1/18比例的RC車輛,導(dǎo)入訓(xùn)練好的Amazon DeepRacer模型上運行推理用于自動駕駛。
本文從兩個主要部分討論DeepRacer的使用:
DeepRacer在線訓(xùn)練:從獎勵函數(shù)、賽車知識和強化學(xué)習(xí)參數(shù)3個方向出發(fā),優(yōu)化模型線上及線下的性能;
DeepRacer物理賽車:提供DeepRacer硬件使用過程中的標(biāo)準流程,避免錯誤的配置流程導(dǎo)致性能不佳,包括:初次開箱配置、再次使用時的檢查流程,以及debug流程。
獎勵函數(shù)基本思想
DeepRacer底層技術(shù)基于強化學(xué)習(xí),在強化學(xué)習(xí)中,agent(智能體)學(xué)習(xí)的目標(biāo)被表示為reward(收益),收益通過environment(環(huán)境)傳遞給agent reward在每個時間點上是一個標(biāo)量。而agent的目標(biāo),是最大化收到的總體reward。因此,與計算機中的貪心算法不同,強化學(xué)習(xí)的agent的目標(biāo)并非最大化當(dāng)前的reward,而是最大化長期reward的累計公式。
在DeepRacer訓(xùn)練中,模擬器通過給agent返回reward來與其交互,而agent根據(jù)reward來更新自己的策略。在《Reinforcement learning: An introduction》一書中,reward由狀態(tài),動作和下一個狀態(tài)共同決定。
在強化學(xué)習(xí)項目中,reward function的設(shè)計是其中重點,也是最耗費時間的部分,因為在提高agent能力的同時,還要避免agent投機取巧,找到提高獎勵值的方法。
使用上面的獎勵函數(shù),通?梢杂(xùn)練出一個比較穩(wěn)定的模型,然而DeepRacer競賽評判的標(biāo)準除了穩(wěn)定,還關(guān)注速度,因此,我們可以將更多的params提供的參數(shù)用上。
強化學(xué)習(xí)的參數(shù)理解
深度強化學(xué)習(xí)算法
DeepRacer的底層算法是深度強化學(xué)習(xí),其中可以選擇的算法有兩個,我們可以根據(jù)訓(xùn)練的時間和賽道類型選擇合適的模型:
PPO(Proximal Policy Optimization):基于Policy Gradient的思想,是主流的深度強化學(xué)習(xí)算法之一。PPO對樣本的利用效率較低,訓(xùn)練時需要大量樣本,魯棒性較高,對超參數(shù)不敏感,收斂效果較好。
SAC(Soft Actor-Critic):基于DDPG的思想,與PPO相比,對樣本的利用程度更高,所需要的樣本數(shù)更少。但SAC魯棒性較低,對超參數(shù)敏感,收斂效果較差。
超參數(shù)
深度強化學(xué)習(xí)的底層是神經(jīng)網(wǎng)絡(luò)結(jié)合強化學(xué)習(xí),因此我們可以配置的超參數(shù)分為2大類:
強化學(xué)習(xí)超參數(shù)
神經(jīng)網(wǎng)絡(luò)超參數(shù)
深度學(xué)習(xí)參數(shù)的簡介如下:
Gradient descent batch size:從經(jīng)驗緩沖區(qū)中隨機采樣的最近車輛經(jīng)驗數(shù),用于更新基礎(chǔ)深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)權(quán)重。
Number of epochs:在梯度下降期間,遍歷訓(xùn)練數(shù)據(jù)(經(jīng)驗緩沖區(qū)的隨機樣本)以更新神經(jīng)網(wǎng)絡(luò)權(quán)重的次數(shù)。
Learning rate:更新權(quán)重時,新權(quán)重的占比。
Entropy:不確定性概率,模型有一定概率選擇隨機探索。
Discount factor:未來獎勵對預(yù)期獎勵的影響程度。
Loss type:損失函數(shù)的類型。分為Mean squared error loss(均方誤差損失)和Huber loss(Huber損失)類型。
Number of experience episodes between each policy-updating iteration:經(jīng)驗緩沖區(qū)的大小,用于記錄過去的經(jīng)驗。
根據(jù)以上超參數(shù)的定義,有如下調(diào)參建議:
如果獎勵函數(shù)過于激進,導(dǎo)致模型不易收斂,可以嘗試降低learning rate或選擇huber loss,讓學(xué)習(xí)的過程更加平滑;
如果模型在過彎時反應(yīng)不夠靈敏,或轉(zhuǎn)彎時機總是比較晚,可以嘗試提高discount factor,讓模型更注重遠期獎勵;
反之,如果模型在過彎時過于靈敏,過早轉(zhuǎn)彎,可以嘗試降低discount factor,避免模型過于關(guān)注遠期獎勵,同時,也可以使用waypoints來解決;
Reward的延遲也要在discount factor的設(shè)置中考慮,如果reward設(shè)置的的延遲較高時,可以適當(dāng)提高discount factor值;而reward實時性較好時,可以降低discount factor值;
Batch size與epoch越大,模型在訓(xùn)練的權(quán)重更新則越平滑。但如果Batch size或epoch過大,會導(dǎo)致訓(xùn)練速度降低及收斂至局部最優(yōu),因此可以聯(lián)合調(diào)試Batch size和epoch的值;
適當(dāng)增加經(jīng)驗緩沖區(qū)大小,會提升模型的收斂的穩(wěn)定性,如果模型始終不收斂或性能震動較大,可以嘗試適當(dāng)增加經(jīng)驗緩沖區(qū)的大小;
與PPO模型相比,在使用SAC模型時,建議使用更高的epoch來緩解算法本身對超參數(shù)敏感的問題;
如果模型訓(xùn)練過程中的性能提升過于緩慢,可以適當(dāng)增加entropy值,提升模型隨機探索的可能性;
如果模型的性能提升過于緩慢或變動較小,可以適當(dāng)增加entropy值;反之,如果模型在收斂過程中震蕩較大,可以適當(dāng)降低entropy值。
Action Space
Action space指的是agent可選的動作范圍,在DeepRacer訓(xùn)練配置中,可以選擇下面兩種action space:
Continuous action space:連續(xù)動作空間,提供速度和轉(zhuǎn)角的上下限,agent可在范圍中尋找合適的值;
Discrete action space:離散動作空間,提供action的組合(速度+轉(zhuǎn)角)。
通常情況下,continuous action space較難收斂,需要更多的訓(xùn)練時間和更精細的獎勵函數(shù)配置。
投稿郵箱:chuanbeiol@163.com 詳情請訪問川北在線:http://dstuf.com/