

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

# AWS DeepRacer 入門
<a name="deepracer-get-started"></a>

 若要開始使用 AWS DeepRacer，讓我們先演練如何使用 AWS DeepRacer 主控台來設定具有適當自動駕駛需求感應器的代理程式、訓練具有指定感應器之代理程式的強化學習模型，以及評估已訓練模型以判斷模型品質的步驟。訓練模型後，您可以逐一查看模型並將其提交至競賽。

**Topics**
+ [訓練您的第一個 AWS DeepRacer 模型](deepracer-get-started-training-model.md)
+ [在模擬中評估您的 AWS DeepRacer 模型](deepracer-get-started-test-in-simulator.md)

# 訓練您的第一個 AWS DeepRacer 模型
<a name="deepracer-get-started-training-model"></a>

本演練示範如何使用 AWS DeepRacer 主控台訓練您的第一個模型。

## 使用 AWS DeepRacer 主控台訓練強化學習模型
<a name="deepracer-get-started-train-model-proc"></a>

了解如何在 AWS DeepRacer 主控台中尋找**建立模型**按鈕，以開始您的模型訓練旅程。

**訓練強化學習模型**

1. 如果這是您第一次使用 AWS DeepRacer，請從服務登陸頁面選擇**建立模型**，或在主要導覽窗格的**強化學習**標題下選擇**開始使用**。

1. 在**開始使用強化學習**頁面**的步驟 2：建立模型**下，選擇**建立模型**。

   或者，從主導覽窗格的**強化學習**標題下選擇**您的模型**。在 **Your Models (您的模型)** 頁面中，選擇 **Create model (建立模型)**。

## 指定模型名稱和環境
<a name="deepracer--create-model-step-one.title"></a>

為您的模型命名，並了解如何挑選適合您的模擬軌跡。

**指定模型名稱和環境**

1. 在**建立模型**頁面**的訓練詳細資訊**下，輸入模型的名稱。

1. 或者，新增訓練任務描述。

1. 若要進一步了解新增選用標籤，請參閱 [標記](deepracer-tagging.md)。

1. 在**環境模擬**下，選擇要做為 AWS DeepRacer 代理程式訓練環境的軌跡。在**賽道方向**下，選擇**順時針**或**逆時針**。然後選擇**下一步**。

   初次執行時，請選擇形狀簡單且轉彎順暢的軌道。在稍後的反覆執行中，您可以選擇更複雜的軌道，漸進式地改善您的模型。若要針對特定競賽事件訓練模型，請選擇與事件軌道最相近的軌道。

1. 選擇頁面底部的**下一步**。

## 選擇競賽類型和訓練演算法
<a name="deepracer--create-model-step-two"></a>

AWS DeepRacer 主控台有三種競賽類型和兩種訓練演算法可供選擇。了解哪些適合您的技能水準和訓練目標。

**選擇競賽類型和訓練演算法**

1. 在**建立模型**頁面的**競賽類型**下，選取**時間試驗**、**物件迴避**或**Head-to-bot**。

   針對您的第一次執行，我們建議您選擇**時間試驗**。如需針對此競賽類型最佳化代理程式感應器組態的指引，請參閱 [時間試驗的 Tailor AWS DeepRacer 訓練](deepracer-choose-race-type.md#deepracer-get-started-training-simple-time-trial)。

1. 或者，在稍後執行時，選擇**物件迴避**，沿著所選賽道繞過放置在固定或隨機位置的固定障礙物。如需詳細資訊，請參閱[為物件迴避競賽量身打造 AWS DeepRacer 訓練](deepracer-choose-race-type.md#deepracer-get-started-training-object-avoidance)。

   1. 選擇**固定位置**以跨賽道的兩個車道，在固定、使用者指定的位置中產生方塊，或選取**隨機位置**以產生物件，這些物件會在您訓練模擬的每個單元開始時隨機分佈到兩個車道。

   1. 接著，為**軌道上的物件數量**選擇一個值。

   1.  如果您選擇**固定位置**，您可以調整每個物件在軌道上的置放。針對**車道放置**，選擇車道內和車道外。根據預設，物件會平均分散到整個軌道。若要變更物件的開始和終點線之間的距離，請在**開始和終點欄位之間的位置 (%)** 中輸入該距離的百分比。

1. 或者，對於更具野心的執行，選擇**Head-to-bot競賽**，以固定速度與最多四個機器人車輛競爭。如需詳細資訊，請參閱 [為head-to-bot競賽量身打造 AWS DeepRacer 訓練](deepracer-choose-race-type.md#deepracer-get-started-training-h2h-racing)。

   1. 在**選擇機器人車輛數量**下，選取您希望代理程式訓練的機器人車輛數量。

   1. 接著，選擇您希望機器人車輛周遊賽道的速度，以公釐/秒為單位。

   1. 或者，勾選**啟用車道變更**方塊，讓機器人車輛能夠每 1-5 秒隨機變更車道。

1. 在**訓練演算法和超參數**下，選擇 **Soft Actor Critic (SAC)** 或**近端政策最佳化 (PPO)** 演算法。在 AWS DeepRacer 主控台中，SAC 模型必須在連續動作空間中訓練。PPO 模型可以在連續或離散的動作空間中進行訓練。

1. 在**訓練演算法和超參數**下，依原狀使用預設超參數值。

   稍後，如要改善培訓效能，請展開 **Hyperparameters (超參數)** 並修改預設超參數值如下：

   1. 針對 **Gradient descent batch size (梯度下降批次大小)**，請選擇[可用選項](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

   1. 針對 **Number of epochs (epoch 數)**，設定[有效值](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

   1. 針對 **Learning rate (學習率)**，設定[有效值](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

   1. 對於 **SAC Alpha 值** （僅限 SAC 演算法），設定[有效的值](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

   1. 針對 **Entropy (熵)**，設定[有效值](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

   1. 針對 **Discount factor (折扣係數)**，設定[有效值](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

   1. 針對 **Loss type (損失類型)**，選擇[可用選項](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

   1. 針對 **Number of experience episodes between each policy-updating iteration (每次政策更新反覆操作間的經驗回合數)**，設定[有效值](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

   如需超參數的詳細資訊，請參閱[系統性調校超參數](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

1. 選擇**下一步**。

## 定義動作空間
<a name="deepracer--create-model-specify-action-space"></a>

在**定義動作空間**頁面上，如果您已選擇使用 Soft Actor Critic (SAC) 演算法進行訓練，您的預設動作空間即為持續動作空間。如果您選擇使用近端政策最佳化 (PPO) 演算法進行訓練，請在**連續動作空間**和**離散動作空間**之間進行選擇。若要進一步了解每個動作空間和演算法如何塑造客服人員的訓練體驗，請參閱 [AWS DeepRacer 動作空間和獎勵函數](deepracer-how-it-works-action-space.md)。

### 定義持續動作空間 (SAC 或 PPO 演算法）
<a name="deepracer--create-model-specify-action-space"></a>

1. 在**定義連續動作空間**下，選擇**左轉向角度範圍**和**右轉向角度範圍**的角度。

   請嘗試為每個轉向角度範圍輸入不同的角度，並觀看範圍變更的視覺化，以代表您在**動態扇形圖**上的選擇。  
![\[\]](http://docs.aws.amazon.com/zh_tw/deepracer/latest/developerguide/images/deepracer-dynamic-sector-graph.png)

1. 在**速度**下，以公釐/秒為單位輸入代理程式的最小和最大速度。

   請注意**，動態區段圖表**上如何反映您的變更。

1. 或者，選擇**重設為預設值**以清除不需要的值。我們鼓勵在圖形上嘗試不同的值來實驗和學習。

1. 選擇**下一步**。

### 定義離散動作空間 （僅限 PPO 演算法）
<a name="deepracer--create-model-specify-action-space"></a>

1. 從下拉式清單中選擇**轉向角度精細度**的值。

1. 為您的代理程式**的最大轉向角度**選擇介於 1-30 度之間的值。

1. 從下拉式清單中選擇**速度精細度**的值。

1. 為您的代理程式**最大速度**選擇介於 0.1-4 之間的每秒公釐值。

1. 使用動作**清單**上的預設動作設定，或選擇性地開啟**進階組態**來微調您的設定。如果您在調整值後選擇**上一個**或關閉**進階組態**，則會遺失變更。  
![\[\]](http://docs.aws.amazon.com/zh_tw/deepracer/latest/developerguide/images/deepracer-advanced-configuration-toggle.png)

   1. 在**轉向角度**欄中輸入介於 -30 到 30 之間的度數值。

   1. 在**速度**欄中輸入每秒 0.1 到 4 公釐之間的值，最多 9 個動作。

   1. 或者，選取**新增動作**以增加動作清單中的資料列數。  
![\[\]](http://docs.aws.amazon.com/zh_tw/deepracer/latest/developerguide/images/deepracer-add-an-action.png)

   1. 或者，在資料列上選取 **X** 將其移除。

1. 選擇**下一步**。

## 選擇虛擬車輛
<a name="deepracer-create-model-step-four"></a>

了解如何開始使用虛擬汽車。每月在 Open Division 中競爭，以取得新的自訂車輛、繪製任務和修改。

**選擇虛擬汽車**

1. 在**選擇車輛殼層和感應器組態**頁面上，選擇與您的競賽類型和動作空間相容的殼層。如果您的車庫中沒有符合的車輛，請前往主要導覽窗格**的強化學習**標題下的**車庫**來建立車庫。

   對於**時間試驗**訓練，**Original DeepRacer **的預設感應器組態和單鏡頭攝影機是您需要的，但所有其他 shell 和感應器組態只要動作空間相符，就會運作。如需詳細資訊，請參閱[時間試驗的 Tailor AWS DeepRacer 訓練](deepracer-choose-race-type.md#deepracer-get-started-training-simple-time-trial)。

   對於**物件迴避**訓練，立體攝影機很有用，但單一攝影機也可以用來避免固定位置的固定障礙物。LiDAR 感應器是選用的。請參閱 [AWS DeepRacer 動作空間和獎勵函數](deepracer-how-it-works-action-space.md)。

   對於**Head-to-bot**訓練，除了單一攝影機或立體攝影機之外，LiDAR 單元最適合在傳遞其他移動的車輛時偵測和避免盲點。如需詳細資訊，請參閱 [為head-to-bot競賽量身打造 AWS DeepRacer 訓練](deepracer-choose-race-type.md#deepracer-get-started-training-h2h-racing)。

1. 選擇**下一步**。

## 自訂您的獎勵函數
<a name="deepracer-create-model-step-five"></a>

獎勵函數是強化學習的核心。了解如何使用它來激勵您的汽車 （代理程式） 在探索賽道 （環境） 時採取特定動作。就像鼓勵和勸阻寵物中的某些行為一樣，您可以使用此工具來鼓勵您的汽車盡快完成單圈，並阻止它離開賽道或與物件碰撞。

**自訂獎勵函數**

1. 在 **Create model (建立模型)** 頁面上，於 **Reward function (獎勵函數)** 下方，為您的模型直接使用預設獎勵函數範例。  
![\[\]](http://docs.aws.amazon.com/zh_tw/deepracer/latest/developerguide/images/deepracer-reward-function-example-editor.png)

   稍後，您可以選擇 **Reward function examples (獎勵函數範例)** 來選取其他範例函數，然後選擇 **Use code (使用程式碼)** 來接受選取的獎勵函數。

   您可以使用四個範例函數來啟動。它們說明如何遵循賽道中心 （預設）、如何將代理程式保持在賽道邊界內、如何防止鋸齒狀駕駛，以及如何避免撞到固定障礙物或其他移動的車輛。

   若要進一步了解獎勵函數，請參閱 [AWS DeepRacer 獎勵函數參考](deepracer-reward-function-reference.md)。

1. 在**停止條件下**，將預設的**最長時間**值保持原狀，或設定新值來終止訓練任務，以協助防止訓練任務長時間執行 （和可能的失控）。

   在訓練的早期階段進行實驗時，建議您針對此參數從較小的值開始，然後逐步訓練更長的時間。

1. 在**自動提交至 AWS DeepRacer** 下，在**訓練完成後自動提交此模型至 AWS DeepRacer，並依預設會檢查是否有機會獲得獎勵**。或者，您可以選取核取記號，選擇不輸入模型。

1. 在**聯盟要求**下，選取您的**居住國家**/地區，並勾選方塊以接受條款與條件。

1. 選擇**建立模型**以開始建立模型和佈建訓練任務執行個體。

1. 在提交後，查看您的培訓任務初始化並接著開始執行。

   初始化程序需要幾分鐘的時間，才能從**初始化**變更為**進行中**。

1. 觀看 **Reward graph (獎勵圖表)** 和 **Simulation video stream (模擬視訊串流)**，以觀察訓練任務的進度。您可以定期選擇 **Reward graph (獎勵圖表)** 旁邊的重新整理按鈕來重新整理 **Reward graph (獎勵圖表)**，直到訓練任務完成為止。  
![\[\]](http://docs.aws.amazon.com/zh_tw/deepracer/latest/developerguide/images/deepracer-training-in-progress.png)

訓練任務會在 AWS 雲端上執行，因此您不需要保持 AWS DeepRacer 主控台開啟。當任務進行時，您可以隨時返回 主控台來檢查您的模型。

如果**模擬影片串流**視窗或**獎勵圖表**顯示變得沒有回應，請重新整理瀏覽器頁面以取得更新的訓練進度。

# 在模擬中評估您的 AWS DeepRacer 模型
<a name="deepracer-get-started-test-in-simulator"></a>

 在培訓任務完成後，建議您評估已培訓的模型，以評估其收斂行為。評估會透過在指定賽道上完成一定數量的競賽，以及讓代理程式根據已培訓模型推斷的可能動作在賽道上移動進行。績效指標會包含完成賽道的百分比，以及在每個賽道上從開始到結束 (或是脫離賽道) 所耗費的時間。

若要評估訓練過的模型，您可以使用 AWS DeepRacer 主控台。若要執行此作業，請遵循本主題中的步驟。

**在 AWS DeepRacer 主控台中評估訓練過的模型**

1. 開啟位於 https：//https://console.aws.amazon.com/deepracer 的 AWS DeepRacer 主控台。

1. 從主導覽窗格中，選擇 **Models (模型)**，然後從 **Models (模型)** 清單選擇您剛培訓的模型，以開啟模型的詳細資訊頁面。

1.  選取**評估**索引標籤。

1. 在**評估詳細資訊**中，選擇**開始評估**。  
![\[Evaluation details section showing training complete message and option to start evaluation.\]](http://docs.aws.amazon.com/zh_tw/deepracer/latest/developerguide/images/evaluation_details_start.png)

   您可以在您的培訓任務狀態變更為 **Completed (已完成)**，或是若培訓任務尚未完成，但模型的狀態已變更為 **Ready (準備就緒)** 時開始進行評估。

   當培訓任務完成時，模型即準備就緒。如果培訓尚未完成，如果其已培訓至失敗點，模型也可能會處於 **Ready (準備就緒)** 狀態。

1. 在**評估模型**頁面的**競賽類型**下，輸入評估的名稱，然後選擇您選擇訓練模型的競賽類型。

   針對評估，您可以選擇與培訓中所使用的競賽類型不同的競賽類型。例如，您可以訓練head-to-bot競賽的模型，然後針對時間試驗進行評估。一般而言，如果培訓競賽類型與評估競賽類型不同，模型必須要能夠理想地一般化。首次駕駛時，建議您針對評估和培訓使用相同的競賽類型。

1. 在**評估模型**頁面的**評估條件**下，選擇您要執行的試驗數量，然後選擇要評估模型的軌跡。  
![\[\]](http://docs.aws.amazon.com/zh_tw/deepracer/latest/developerguide/images/evaluation_select_track.png)

   一般而言，您會想要選擇和您在[訓練模型](deepracer-get-started-training-model.md#deepracer-get-started-train-model-proc)中所用賽道相同或類似的賽道。您可以選擇任何一條賽道來評估模型，但是與訓練所用賽道最類似的賽道預期可取得最佳效能。

   如要查看您的模型是否能理想地一般化，請選擇與培訓中所使用的評估賽道不同的評估賽道。

1. 在 **Evaluate model (評估模型)** 頁面上，於 **Virtual Race Submission (虛擬競賽提交)** 下方，針對您的第一個模型，關閉 **Submit model after evaluation (評估後提交模型)** 選項。稍後，如果您想要參加競賽活動，請開啟此選項。  
![\[Virtual race submission section with options for submitting a model for evaluation.\]](http://docs.aws.amazon.com/zh_tw/deepracer/latest/developerguide/images/deepracer-get-started-evaluate-virtual-race-submit.png)

1. 在 **Evaluate model (評估模型)** 頁面上，選擇 **Start evaluation (開始評估)** 來開始建立和初始化評估任務。

   此初始化程序約需 3 分鐘才能完成。

1. 隨著評估進行，評估結果，包括試驗時間和追蹤完成率，會在每次試驗之後顯示在**評估詳細資訊**下。在 **Simulation video stream (模擬影片串流)** 視窗中，您可以觀看代理程式在指定賽道上執行的狀況。

    您可以在評估任務完成前停止評估任務。若要停止評估任務，請選擇**評估卡右上角的停止****評估**，然後確認停止評估。

1. 評估任務完成後，請在 **Evaluation results (評估結果)** 下方檢查所有競賽的績效指標。隨附的模擬影片串流無法繼續使用。

   您可以在評估**選擇**器中找到模型評估的歷史記錄。若要檢視特定評估的詳細資訊，請從**評估選擇器**清單中選取評估，然後從評估選擇器卡的右上角選擇**載入**評估。 ****  
![\[\]](http://docs.aws.amazon.com/zh_tw/deepracer/latest/developerguide/images/evaluation_selector_complete.png)

   對於此特定評估任務，訓練模型會以顯著的偏離追蹤時間懲罰完成試驗。第一次執行時，這並不罕見。可能的原因包括培訓並未收斂且培訓需要更多時間、動作空間需要擴大以讓代理程式有更多空間進行反應，或是獎勵函數需要進行更新，以處理不同的環境。

    您可以透過複製先前培訓的模型、修改獎勵函數、調整超參數，然後逐一查看程序，直到總獎勵收斂且績效指標改善為止，來改善模型。如需如何改善培訓的詳細資訊，請參閱[訓練和評估 AWS DeepRacer 模型](create-deepracer-project.md)。

 若要將完整訓練的模型轉移到 AWS DeepRacer 裝置，以便在實體環境中駕駛，您需要下載模型成品。若要執行此作業，請選擇模型 details (詳細資訊) 頁面的 **Download model (下載模型)**。如果您的 AWS DeepRacer 實體裝置不支援新的感應器，且您的模型已使用新的感應器類型進行訓練，則在真實世界環境中在 AWS DeepRacer 裝置上使用模型時，您會收到錯誤訊息。如需使用實體裝置測試 AWS DeepRacer 模型的詳細資訊，請參閱[操作您的 AWS DeepRacer 車輛](operate-deepracer-vehicle.md)。

在與 AWS DeepRacer 聯盟競賽活動或 AWS DeepRacer 社群競賽中指定的賽道相同或類似的賽道上訓練模型後，您就可以在 AWS DeepRacer 主控台中將模型提交至虛擬競賽。若要這樣做，請遵循主導覽窗格上的**AWS 虛擬電路**或**社群競賽**。如需詳細資訊，請參閱[參加 AWS DeepRacer 競賽](deepracer-racing-series.md)。



若要訓練避免障礙物或head-to-bot競賽的模型，您可能需要將新的感應器新增至模型和實體裝置。如需詳細資訊，請參閱[了解 AWS DeepRacer 支援的賽車類型並啟用感應器](deepracer-choose-race-type.md)。