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