關于OpenAI Gym的定義和使用
譯文譯者 | 布加迪
審校 | 重樓
如果您無法從頭開始構建一個機器學習模型,或者缺少相應的基礎設施,僅僅將應用程序連接到工作模型就可以填補這個缺口。
人工智能可供所有人以某種方式來使用。至于OpenAI Gym,有許多值得一試的訓練環境為您的強化學習代理饋送內容。
那么,OpenAI Gym到底是什么?它是如何工作的?您可以用它來構建什么?
OpenAI Gym的定義
OpenAI Gym是一個Python風格的API,為強化學習代理提供模擬的訓練環境,使其可以根據環境觀察采取行動,每個動作都有積極或消極的獎勵,這種獎勵在每個時間步長都會累積。雖然代理旨在實現獎勵最大化,但它會因每個意想不到的決定而受到懲罰。
時間步長是環境進入到另一種狀態的離散時間單位。當代理的動作改變環境狀態時,它就會累加。
OpenAI Gym如何運作?
OpenAI Gym環境基于馬爾可夫決策過程(MDP),這是一種用于強化學習的動態決策模型。因此,只有當環境改變狀態時,獎勵才會出現。而下一個狀態的事件只依賴當前狀態,因為MDP不考慮過去的事件。
在繼續介紹之前,不妨通過一個例子快速了解OpenAI Gym在強化學習中的應用。
假設您打算在賽車游戲中訓練一輛汽車,可以在OpenAI Gym中啟動賽道。在強化學習中,如果車輛向右轉而不是向左轉,它可能會得到-1的負獎勵。賽道在每個時間步長都發生變化,并在隨后的狀態中可能變得更復雜。
消極的獎勵或懲罰對于強化學習中的代理來說不是壞事。在一些情況下,它會鼓勵代理更快地實現目標。因此,隨著時間的推移,汽車逐漸了解賽道,并使用一系列獎勵熟練掌握導航。
比如說,我們創建了FrozenLake-v1環境,在這個環境中,代理因掉進冰洞會而受到懲罰,但因找回禮盒而得到獎勵。
我們第一次運行生成的懲罰較少,沒有獎勵:
然而,第三次迭代生成了更復雜的環境。但代理得到了一些獎勵:
上面的結果并不意味著代理會在下一次迭代中得到改進。雖然下一次它可能會成功地避開更多的洞,但它可能得不到任何獎勵。但修改幾個參數可能會提高學習速度。
OpenAI的組件
OpenAI Gym API圍繞以下組件:
- 訓練代理所在的環境。您可以使用gym.make方法初始化環境。OpenAI Gym還支持多代理環境。
- 用于修改現有環境的包裝器。雖然每個基本環境在默認情況下都預先包裝,但您可以使用max_actions、min_actions和max rewards等參數重新調整其規模。
- 動作定義了代理在觀察環境中的變化時所做的事情。環境中的每個動作都是一個步驟,定義了代理對觀察結果的響應。步驟完成就返回觀察值、獎勵、信息以及截斷值或終止值。
- 觀察定義代理在環境中的經驗。一旦觀察到結果,動作就會跟隨其信息。info參數是一個執行日志,便于調試。一旦一個步驟結束,環境將重置n次,這取決于所指定迭代的次數。
可以用OpenAIGym做什么?
由于OpenAI Gym允許您啟用自定義學習環境,以下是在現實場景中使用它的幾個方法。
1. 游戲模擬
您可以利用OpenAI Gym的游戲環境來獎勵所需的行為、創建游戲獎勵,并增加每個游戲級別的復雜性。
2. 圖像識別
在數據、資源和時間有限的情況下,OpenAI Gym便于開發圖像識別系統。在更深層次上,您可以擴展它來構建人臉識別系統,該系統將獎勵正確識別人臉的代理。
3.機器人訓練
OpenAI Gym還提供了3D和2D模擬的直觀環境模型,您可以將所需的行為實現到機器人中。Roboschool就是一個例子,可以使用OpenAI Gym構建擴展規模的機器人模擬軟件。
4. 市場營銷
您還可以使用OpenAI Gym構建廣告服務器、股票交易機器人、銷售預測機器人、產品推薦系統等營銷解決方案。比如說,您可以構建自定義OpenAI Gym模型,根據印象和點擊率對廣告進行懲罰。
5. 自然語言處理
將OpenAI Gym應用于自然語言處理的一些方法是涉及句子補全或構建垃圾郵件分類器的多項選擇題。比如說,您可以訓練一個代理來學習句子變化,從而在標記參與者時避免偏誤。
如何上手OpenAI Gym?
OpenAI Gym支持Python 3.7及更高版本。若要創建OpenAI Gym環境,就需要安裝Gymnasium,這是不斷得到支持的分叉Gym版本:
pip install gymnasium
接下來,啟動一個環境。不過,您可以創建自定義環境。但是,要想掌握OpenAI Gym概念,應先從現有的環境開始。
下面的代碼啟動FrozenLake-v1。env.reset方法記錄了初始觀察結果:
import gymnasium as gym
env = gym.make('FrozenLake-v1', render_mode="human")
observation, info = env.reset()
注意:一些環境需要額外的庫才能工作。如果您需要安裝另一個庫,Python會通過異常消息來推薦庫。
比如說,您將安裝額外的庫(gymnasium[toy-text])來運行FrozenLake-v1環境。
運用OpenAI Gym的力量
阻礙人工智能和機器學習發展的因素之一是缺少基礎設施和訓練數據集。但是當您希望將機器學習模型整合到應用程序或設備中時,由于現成的人工智能模型在網上唾手可得,現在一切都變得更容易了。其中一些工具是低成本工具,而包括OpenAI Gym在內的其他工具卻是免費的開源工具。
原文標題:What Is OpenAI Gym and How Can You Use It?,作者:Idowu Omisola