Amazon 的 RL 環境 SageMaker - Amazon SageMaker

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

Amazon 的 RL 環境 SageMaker

Amazon SageMaker RL 使用環境來模擬真實世界案例。指定環境的目前狀態及代理程式所採取的動作,模擬器便會處理動作的影響,並傳回下一個狀態及獎勵。當在真實世界中訓練代理程式不安全時 (例如操控一台無人機),或是當 RL 演算法花費太多時間進行收斂時 (例如下西洋棋時),模擬器便會很有用。

下圖顯示與一個賽車遊戲模擬器互動的範例。

模擬環境由代理程式及模擬器組成。此處,卷積神經網路 (CNN) 會使用來自模擬器的影像,產生動作來控制遊戲控制器。透過多次模擬,此環境會產生形式為 state_tactionstate_t+1reward_t+1 的訓練資料。定義獎勵並不容易,且會影響 RL 模型的品質。我們希望提供幾個獎勵函式的範例,但也想要讓使用者能夠進行設定。

在 RL 環境中 SageMaker 使用 OpenAI 健身房介面

若要在 SageMaker RL 中使用 OpenAI 健身房環境,請使用下列 API 元素。如需有關 OpenAI Gym 的詳細資訊,請參閱 Gym 文件

  • env.action_space—定義代理程式能採取的動作,指定每個動作是否連續或離散,並在動作為連續動作時,指定最小值及最大值。

  • env.observation_space—定義代理程式從環境接收到的觀察,以及連續觀察的最小值及最大值。

  • env.reset()—初始化訓練集。reset() 函式會傳回環境的初始狀態,而代理程式則會使用初始狀態來採取第一個動作。動作接著會重複傳送到 step(),直到集到達最終狀態為止。當 step() 傳回 done = True 時,集便會結束。RL 工具組會呼叫 reset() 來重新初始化環境。

  • step()—將代理動作做為輸入,並輸出環境的下一個狀態、獎勵、集是否已終止,以及一個 info 字典來通訊除錯資訊。環境需要負責驗證輸入。

  • env.render()—用於具備視覺化的環境。RL 工具組會在每一次呼叫 step() 函式後,呼叫此函式來擷取環境的視覺化。

使用開放原始碼環境

您可以建置自己的容器 RoboSchool,在 SageMaker RL 中使用開放原始碼環境,例如 EnergyPlus 和。如需有關的詳細資訊 EnergyPlus,請參閱 https://energyplus.net/。如需有關的詳細資訊 RoboSchool,請參閱 https://github.com/openai/roboschool。HVAC 和 RoboSchool 範例儲存庫中的SageMaker 範例會示範如何建置與 SageMaker RL 搭配使用的自訂容器:

使用商業環境

您可以通過構建自己的容器在 SageMaker RL 中使用商業環境,例如 MATLAB 和 Simulink。您需要管理您自己的授權。