AWS DeepRacer 動作空間和獎勵功能 - AWS DeepRacer

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS DeepRacer 動作空間和獎勵功能

動作空間

在強化學習中,代理程式與環境互動時可用的所有有效動作或選擇集稱為動作空間。在 AWS 主 DeepRacer控台中,您可以在離散或連續動作空間中訓練代理程式。

離散動作空間

離散動作空間代表有限集合中每個狀態的所有代理程式的可能動作。對於 AWS 而言 DeepRacer,這表示在每個逐漸不同的環境情況下,代理程式的神經網路會根據其攝影機和 (選配) LiDAR 感測器的輸入來選擇車輛的速度和方向。此選項僅限於預先定義的轉向角度與油門值組合的群組。

在接近轉彎的離散動作空間中,AWS DeepRacer 車輛可以選擇加速或煞車,然後左轉、右轉或直行。這些動作被定義為轉向角度和速度的組合,為代理程式建立選項選單 0-9。例如,0 可以代表 -30 度和 0.4 米/秒,1 可以表示 -30 度和 0.8 米/秒,2 可以代表 -15 度和 0.4 米/秒,3 可以表示 -15 度和 0.8 米/秒等等,直到 9。負度向右轉動車輛,正度左轉,0 使車輪保持直線。

AWS DeepRacer 預設離散動作空間包含下列動作:

AWS DeepRacer 預設離散動作空間
動作號碼 方向盤 速度
0 -30 度 每秒 0.4 公尺
1 -30 度 每秒 0.8 公尺
2 -15 度 每秒 0.4 公尺
3 -15 度 每秒 0.8 公尺
4 0 度 每秒 0.4 公尺
5 0 度 每秒 0.8 公尺
6 15 度 每秒 0.4 公尺
7 15 度 每秒 0.8 公尺
8 30 度 每秒 0.4 公尺
9 30 度 每秒 0.8 公尺
連續動作空間

連續動作空間可讓代理程式從每個狀態的值範圍中選取動作。就像離散動作空間一樣,這意味著對於每種不同的環境情況,代理人的神經網絡會根據攝影機和(可選)LiDAR 感測器的輸入來為汽車選擇速度和方向。但是,在連續的動作空間中,您可以定義代理程式從中挑選其動作的選項範圍。

在此範例中,AWS DeepRacer 車輛位於接近轉彎的連續動作空間中,可以選擇 0.75 m/s 到 4 m/s 的速度,然後選擇 -20 到 20 度的轉向角,然後左轉、右或直行。

離散與連續

使用持續動作空間的好處在於,您可以編寫獎勵函數來訓練模型,以在賽道上的特定點激勵速度/轉向動作,從而優化性能。從一系列動作中進行挑選,還可以產生平滑變化速度和轉向值的潛力,在訓練有素的模型中,可能會在現實環境中產生更好的結果。

在離散動作空間設定中,將特工的選擇限制為有限數量的預先定義動作,讓您有責任理解這些動作的影響,並根據環境(賽道、賽車格式)和您的獎勵功能來定義它們。但是,在連續動作空間設定中,代理程式會學習從您提供的最小/最大界限中挑選最佳速度和轉向值。

雖然為模型提供一系列可供選擇的值似乎是更好的選擇,但代理程式必須訓練更長的時間才能學習選擇最佳動作。成功也取決於獎勵功能的定義。

獎勵函數

當代理程式探索環境時,代理程式會學習值函數。價值函數可以幫助您的代理人在觀察環境後判斷採取的行動有多好。值函數會使用您在 AWS DeepRacer 主控台中撰寫的獎勵函數來為動作評分。例如,在 AWS DeepRacer 主控台的追蹤中心線範例獎勵功能中,良好的動作會讓代理程式保持在軌道中心附近,而且得分高於不良動作,這會使代理程式離開軌道中心。

隨著時間的推移,價值功能可以幫助代理學習增加總獎勵的政策。最佳或最佳原則,會平衡代理程式探索環境的時間量,以及它花費在利用或充分利用原則透過經驗學到的時間量之間。

在下面的中心線 AWS DeepRacer 示例獎勵功能示例中,代理程式首先採取隨機操作來探索環境,這意味著停留在軌道中心的工作並不是很好。隨著時間的推移,代理程序開始了解哪些操作使其保持在中心線附近,但是如果通過繼續採取隨機操作來實現此操作,則需要很長時間才能學習在整個圈中心附近保持在軌道的中心附近。因此,當原則開始學習良好的動作時,代理程式會開始使用這些動作,而不是採取隨機動作。但是,如果它始終使用或利用良好的行動,則代理程式將不會發現任何新的發現,因為它不再探索環境。這種權衡通常被稱為 RL 中的勘探與開發問題。

嘗試預設的動作空間和獎勵功能範例。探索完所有內容後,通過設計自己的自定義動作空間和自定義獎勵功能來使用您的知識。