AlphaGo的橫空出世讓我們看到了強化學習在圍棋領(lǐng)域的出色應(yīng)用。目前DeepMind推出一款名為“DeepMind Control Suite”的控制套件,該控制套件旨在幫助我們利用強化學習技術(shù)實現(xiàn)對物理實體的操控,并且已經(jīng)在模擬環(huán)境中進行了成功實驗。
DeepMind Control Suite是一組連續(xù)的控制任務(wù),具有標準化的結(jié)構(gòu)和可解釋性的獎勵,旨在作為強化學習智能體的性能基準。這些任務(wù)是用Python編寫的,由MuJoCo物理引擎驅(qū)動,從而使得它們易于使用和修改。我們這里涵蓋了幾個學習算法的基準。你如果對這方面比較感興趣,可以在github.com/deepmind/dm_control上獲得公開的控制套件(Control Suite),而所有任務(wù)的相關(guān)視頻總結(jié)等可在youtu.be/rAai4QzcYbs上獲得。
可以這樣說,控制物質(zhì)世界是通用智能一個不可分割的組成部分,也可以說是通用智能的一個先決條件。事實上,唯一已知的通用智能的例子就是靈長類動物,他們操縱這個世界已經(jīng)有數(shù)百萬年的時間了。
物理控制任務(wù)有許多共同的屬性,而且,將它們視為一類獨特的行為問題是一種明智的選擇。與棋盤游戲、語言和其他符號域不同的是,物理任務(wù)在狀態(tài)、時間和行為上是基本連續(xù)的。它們的動力學受二階運動方程的影響,而這意味著基礎(chǔ)狀態(tài)是由類似位置和類速度的變量組成的,而狀態(tài)導數(shù)則類似于加速度。感官信號(Sensory signals)(即觀察)通常攜帶有意義的物理單位,并且在相應(yīng)的時間尺度上發(fā)生變化。
在這十年中,在諸如視頻游戲這樣的困難問題領(lǐng)域中,強化學習(RL)技術(shù)的應(yīng)用取得了快速的進展。Arcade學習環(huán)境(Arcade Learning Environment,ALE,Bellemare 等人于2012年提出)是這些發(fā)展的重要促進因素,為評估和比較學習算法提供了一套標準基準。DeepMind Control Suite為連續(xù)控制問題提供了一組類似的標準基準。
OpenAI Gym(Brockman等人于2016年提出)目前包括一組連續(xù)控制域,而且已經(jīng)成為連續(xù)強化學習實際上的基準(Duan 等人于2016年、Henderson等人于2017年提出)。Control Suite也是一組任務(wù),用于對連續(xù)的強化學習算法進行基準測試,其中存在著一些顯著的差異。我們只專注于連續(xù)控制,例如將觀察值與相似的單位(位置、速度、力等)分離,而不是將其連接成一個向量。我們統(tǒng)一的獎勵結(jié)構(gòu)提供了具有可解釋性的學習曲線和綜合性適用范圍的性能度量。此外,我們強調(diào)使用統(tǒng)一設(shè)計模式的高質(zhì)量的完整代碼,提供可讀、透明和易于擴展的代碼庫。最后,Control Suite與Gym一樣,里面都有相同的域,而且同時增加了更多的域。
DeepMind控制套件是強化學習算法(基于物理控制)的設(shè)計和性能比較的起點。它提供了各種各樣的任務(wù)(從幾乎微不足道的任務(wù)到相當困難的任務(wù))。統(tǒng)一的獎勵結(jié)構(gòu)可以實現(xiàn)對套件整體性能的評估。
這里展示的A3C、DDP和D4pg的結(jié)果組成的基線,是通過運用我們提出的理論,對這些算法進行良好的執(zhí)行得到的。同時,我們強調(diào),學習曲線不是基于窮舉的超參數(shù)優(yōu)化,并且對于給定的算法,在控制套件的所有任務(wù)中都使用相同的超參數(shù)。因此,我們期望能夠獲得更好的性能或數(shù)據(jù)效率,特別是在每個任務(wù)的基礎(chǔ)上。
我們很樂意與更多的社區(qū)分享控制套件,并且希望有更多人能夠注意到它的作用,我們期待著能夠?qū)μ准M行多樣化研究,并將社區(qū)所作出的貢獻整合到未來發(fā)布的版本中。
未來研究方向
對于Control Suite的當前版本來說,里面還缺少一些元素。
有一些特征,比如缺乏豐富的任務(wù),這是在設(shè)計中沒有考慮到的。該套件,尤其是基準測試任務(wù),旨在成為一個穩(wěn)定、簡單的學習控制起點。像復雜地形中的完全操縱和運動的任務(wù)類別需要對任務(wù)和模型的分布進行推理,而不僅僅是對初始狀態(tài)進行操作。而所有這些都需要更為強大的工具,我們希望未來在不同的分支機構(gòu)中能夠進行共享。
以下幾個特性并沒有包含在當前發(fā)布的版本中,但我們打算在將來的版本中將其添加在內(nèi)。 它們包括:一個四足行走的動作任務(wù);一個交互式的可視化程序,用其便可以查看和擾亂模擬;支持C回調(diào)和多線程動態(tài);MuJoCo TensorFlow封裝器和Windows?支持。
dm_control:
DeepMind控制套件和控制包
此軟件包含:
·一套由MuJoCo物理引擎驅(qū)動的Python強化學習環(huán)境。
·為Mujoco物理引擎提供python綁定的庫。
如果你使用此軟件包,請引用我們隨附的技術(shù)報告。
安裝要求
請按照以下步驟安裝DM_control:
1.從Mujoco網(wǎng)站的下載頁面下載Mujoco pro1.50。必須在安裝dm_contect之前安裝mujoco pro,因為dm_contect的安裝腳本由mujoco的頭文件生成python ctypes綁定。默認情況下,dm_contect假定mujo COZIP歸檔文件被提取為~/.mujoCO/mjpro150。
2.通過運行pip install git + git://github.com/deepmind/dm_control.git(PyPI包即將推出)或通過復制存儲庫并運行pip install / path / to / dm_control /來安裝dm_control Python包。在安裝時,dm_control在~/mujoco / mjpro150 / include中查找步驟1中的MuJoCo頭文件,然而這個路徑可以使用headers-dir命令行參數(shù)進行配置。
3.為mujoco安裝一個許可密鑰,該密鑰在運行時由dm_controls命令。有關(guān)詳細信息,請參閱Mujoco許可密鑰頁面。默認情況下,dm_contect在~/.mujoco/mjkey.txt處查找mujo co許可密鑰文件。
4.如果在非默認路徑上安裝許可密鑰(例如mjkey.txt)或mujocopro提供的共享庫(例如libmujoco150.so或libmujoco150.dylib),則分別使用mjkey_jmpATH和libm path指定它們的位置。
關(guān)于macOS上的自制軟件用戶
的其他說明
1.只要你使用的是由Homebrew安裝的python解釋器(而不是系統(tǒng)默認的解釋器),那么以上使用pip的說明應(yīng)該有效。
2.要使Open GL正常工作,請通過運行brew來安裝GLFW,然后安裝來自Homebrew的GLFW包。
3.在運行之前,需要使用GLFW庫的路徑更新DYLD_library_path環(huán)境變量。這可以通過運行export dyld_library_path=$(brew--prefix)/lib:$dyld_library_path來完成。
控制套件快速入門
from dm_control import suite
# Load one task:
env = suite.load(domain_name="cartpole", task_name="swingup")
# Iterate over a task set:
for domain_name, task_name in suite.BENCHMARKING:
env = suite.load(domain_name, task_name)
# Step through an episode and print out reward, discount and observation.
action_spec = env.action_spec()
time_step = env.reset()
while not time_step.last():
action = np.random.uniform(action_spec.minimum,
action_spec.maximum,
size=action_spec.shape)
time_step = env.step(action)
print(time_step.reward, time_step.discount, time_step.observation)
詳情請參閱技術(shù)報告:https://github.com/deepmind/dm_control/blob/master/tech_report.pdf