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