重温强化学习之OpenAI经典场景
官網:http://gym.openai.com/envs/#classic_control
經典應用1:CartPole-v1
CartPole在OpenAI的gym模擬器里面。游戲里面有一個小車,車上有一根桿子。小車需要左右移動來保持桿子豎直。如果桿子的傾斜的角度大于15度,游戲結束。小車也不能移出一個范圍(中間到兩邊各2.4個單位長度),如下圖所示:
物理圖解:
? ? ? ? ? ? ? ? ? ? ??
在gym的Cart Pole環境(env)里面,左移或右移小車的action之后,env都會返回一個+1的reward。到達200個reward之后,游戲也會結束。
環境狀態:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
初始狀態:
? ? ? ? ? ? ? ? ? ? 四個環境觀測值,從U(-0.05,0.05)中隨機抽取
動作:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
獎勵:
? ? ? ? ? ? ? ?每一步的獎勵都是1,包括最后一步
?
終止條件:
? ? ? ? ? ? ? 桿子的傾斜角度大于15度
? ? ? ? ? ? ? 小車的位移大于+(-)2.4
? ? ? ? ? ? ? 獎勵達到200
?
經典應用2:Pendulumn-v0
? ? ? ?倒立擺是強化學習的一個經典問題。在這個問題中,鐘擺開始在一個隨機位置,我們的目的是左右擺動它,讓他保持直立。
狀態:
? ? ? ? ? ?Pendulum 的角度(sin和cos)和角速度,記為th和thdot
? ? ? ??? ? ??
動作空間:
? ? ? ? ?對于Pendulum問題來說,action space只有一個維度,就是電機的控制力矩,且有最大值和最小值的限制
? ? ? ??? ? ? ??
獎勵:
? ? ? ?reward = -costs
? ? ? ?costs包含三項:
? ? ? ? ? 1)angle_normalize(th)**2 對于當前倒立擺與目標位置的角度差的懲罰
? ? ? ? ? ? ? ? ? ??
?
? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ?
? ?2)? .1*thdot**2? 對角速度的懲罰,如果我們在到達目標之后,如果還有較大的速度,就會過去,不會保持豎直
? ?3) .001*(u**2)? ? 對輸入力矩的懲罰,所使用的力矩越大,懲罰越大
? ? ? ? ? ? ? ??
?
經典應用3:MountainCarContinuous環境
一輛汽車位于兩個山脈之間的軌道上。目標是在右側上山,但是這個?的發動機動能不夠,不能一次成功爬山。所以,要想爬山的途徑就是來回驅動,來建立動力,如下圖所示:
連接:https://gym.openai.com/envs/MountainCar-v0/
Step函數
? ? ? ? ? ? ? ? ? ? ?
狀態
? ? ? ?從上圖中可以看出,小車的狀態包括位置(position)和速度(velocity)
? ? ? ? ? ? ? ? ? ? ? ? ?
observation space與state space一致,包括位置和速度,二者都有上下限,如下圖所示:
? ? ? ? ? ? ? ? ? ? ? ??
而action space是一維的,前進或倒車。要讓小車到右手邊的山峰,所以goal_position為0.5,這是相對初始位置(最低點)而言的,最低點position為0,向左為負,向右為正。
? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
每執行一個step,就會檢查看自己是否越過右邊的山峰,據此來給done賦值,如果沒有越過山峰,則在這一個step,reward將會記為-1
其它經典應用
? ? ? ? ? ? ? ?Gym Box2D
? ? ? ? ? ? ? ?LunarLander
? ? ? ? ? ? ? ?CarRacing
? ? ? ? ? ? ? ?Atari 2600
? ? ? ? ? ? ? ?Pong :http://www.ponggame.org/
?
參考連接:https://blog.csdn.net/cuiwader/article/details/77483363
?
實現demo如下所示:
有需要demo的可自行下載哈,github地址:https://github.com/wangtao666666/Reinforcement-Learning
總結
以上是生活随笔為你收集整理的重温强化学习之OpenAI经典场景的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SparkSql常用命令操作
- 下一篇: 重温强化学习之强化学习简介