- 深度強化學習實踐(原書第2版)
- (俄)馬克西姆·拉潘
- 468字
- 2021-08-18 17:39:18
2.4 隨機CartPole智能體
盡管這個環境比2.1節那個例子的環境復雜很多,但是智能體的代碼卻更短了。這就是重用性、抽象性以及第三方庫的強大力量!
代碼(見Chapter02/02_cartpole_random.py
文件)如下:

我們先創建了環境并初始化了步數計數器和獎勵累積器。最后一行,重置了環境,并獲得第一個觀察(我們不會用到它,因為智能體是隨機的)。

在該循環中,我們從動作空間中隨機采樣一個動作,然后讓環境執行并返回下一個觀察(obs
)、reward
和done
標記。如果片段結束,停止循環并展示執行了多少步以及累積獲取了多少獎勵。如果啟動這個例子,你將會看到類似下面的結果(因為智能體存在隨機性,所以不會完全相同):

與交互會話一樣,該警告與代碼無關,是Gym內部給出的。隨機智能體在木棒落地、片段結束之前,平均會執行12~15步。大部分Gym環境有一個“獎勵邊界”,它是智能體在100個連續片段中,為“解決”環境而應該得到的平均獎勵。對于CartPole來說,這個邊界是195,這意味著,平均而言,智能體必須將木棒保持195個時間步長或更多。從這個角度來看,隨機智能體貌似表現得很差。但是,不要失望,我們才剛剛起步,很快你就能解決CartPole以及其他許多有趣且富有挑戰的環境了。