本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon SageMaker AI 中的 RL 環境
Amazon SageMaker AI RL 使用環境來模擬真實案例。指定環境的目前狀態及代理程式所採取的動作,模擬器便會處理動作的影響,並傳回下一個狀態及獎勵。當在真實世界中訓練代理程式不安全時 (例如操控一台無人機),或是當 RL 演算法花費太多時間進行收斂時 (例如下西洋棋時),模擬器便會很有用。
下圖顯示與一個賽車遊戲模擬器互動的範例。

模擬環境由代理程式及模擬器組成。此處,卷積神經網路 (CNN) 會使用來自模擬器的影像,產生動作來控制遊戲控制器。透過多次模擬,此環境會產生形式為 state_t
、action
、state_t+1
及 reward_t+1
的訓練資料。定義獎勵並不容易,且會影響 RL 模型的品質。我們希望提供幾個獎勵函式的範例,但也想要讓使用者能夠進行設定。
在 SageMaker AI RL 中使用 OpenAI Gym Interface 進行環境
若要在 SageMaker AI RL 中使用 OpenAI Gym 環境,請使用下列 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()
函式後,呼叫此函式來擷取環境的視覺化。
使用開放原始碼環境
您可以在 SageMaker AI RL 中使用開放原始碼環境,例如 EnergyPlus 和 RoboSchool,方法是建置您自己的容器。如需 EnergyPlus 的詳細資訊,請參閱 https://energyplus.net/
使用商業環境
您可以在 SageMaker AI RL 中使用商業環境,例如 MATLAB 和 Simulink,方法是建置您自己的容器。您需要管理您自己的授權。