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