丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能 正文
發(fā)私信給隔壁王大喵
發(fā)送

0

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

本文作者: 隔壁王大喵 2018-03-20 14:44
導(dǎo)語:進化策略找到的策略不僅有效,而且有趣

雷鋒網(wǎng) AI 科技評論按:本文是 otoro.net 的系列技術(shù)博客之一,以通俗可視化的方法講解了進化策略(Evolution Strategies)中的諸多概念。本篇介紹了如何使用進化策略來尋找前饋神經(jīng)網(wǎng)絡(luò)智能代理的策略,以執(zhí)行由 gym 環(huán)境接口定義的各式各樣的連續(xù)控制強化學(xué)習(xí)任務(wù)。前一篇參見《進化策略入門:最優(yōu)化問題的另一種視角》。雷鋒網(wǎng) AI 科技評論編譯。

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

代碼傳送門:GitHub

上一篇文章中,我已經(jīng)介紹過了一些可以用于優(yōu)化函數(shù)參數(shù)而不用顯式地計算梯度的進化策略(Evolution strategies, ES)算法。這些算法可以用于解決強化學(xué)習(xí)(Reinforcement learning, RL)問題,從而幫助神經(jīng)網(wǎng)絡(luò)智能體(Neural network agent)找到合適的模型參數(shù)。在本文中,我將探討如何將進化策略應(yīng)用于某一些增強學(xué)習(xí)問題中,并重點介紹一些方法,以幫助我們找到更加穩(wěn)定和健壯的策略。

強化學(xué)習(xí)之進化策略

雖然強化學(xué)習(xí)算法需要在每個時間步都給予智能代理一個獎勵信號,但是進化策略算法只關(guān)心智能體在特定環(huán)境中展示(rollout)階段結(jié)束之后所獲得的最終累積獎勵。在許多問題中,我們只知道任務(wù)結(jié)束時的結(jié)果,比如智能體是贏還是輸、機器人手臂是否拿起了物體、或者智能體是否存活了下來,而這些方面的問題都是進化策略可能優(yōu)于傳統(tǒng)強化學(xué)習(xí)的點。下面是一段偽代碼,它將智能體的展示階段封裝在一個 OpenAI Gym 環(huán)境中,在這個環(huán)境下我們只關(guān)心累積獎勵:

def rollout(agent, env):   

    obs = env.reset()   

    done = False   

    total_reward = 0   

    while not done:     

        a = agent.get_action(obs)     

        obs, reward, done = env.step(a)     

        total_reward += reward   

    return total_reward

我們可以將 rollout 定義成目標(biāo)函數(shù),因為目標(biāo)函數(shù)可以將智能代理的模型參數(shù)映射到最合適的分?jǐn)?shù),然后正如上一篇文章所講解的,再使用一個進化策略求解器去找到一組合適的模型參數(shù):

env = gym.make('worlddomination-v0')


# use our favourite ES

solver = EvolutionStrategy()


while True:  


    # ask the ES to give set of params

    solutions = solver.ask()  


    # create array to hold the results  

    fitlist = np.zeros(solver.popsize)  


    # evaluate for each given solution  

    for i in range(solver.popsize):    

        

        # init the agent with a solution    

        agent = Agent(solutions[i])    


        # rollout env with this agent    

        fitlist[i] = rollout(agent, env)  


    # give scores results back to ES  

    solver.tell(fitness_list)  


    # get best param & fitness from ES  

    bestsol, bestfit = solver.result()  


    # see if our task is solved  

    if bestfit > MY_REQUIREMENT:    

        break

確定性策略和隨機策略(Deterministic and Stochastic Policies)

我們的智能體將環(huán)境給予它的觀察結(jié)果作為輸入,然后在環(huán)境內(nèi)部展示期間的每個時間步輸出一個動作。我們可以根據(jù)需要對代理進行建模,并使用硬編碼規(guī)則、決策樹、線性函數(shù)以及遞歸神經(jīng)網(wǎng)絡(luò)中的方法。在這篇文章中,我使用一個帶有兩個隱含層的簡單前饋網(wǎng)絡(luò),將智能體的觀測結(jié)果(向量 x)直接映射到相應(yīng)的動作(向量 y):

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

其中的激活函數(shù) fh、fout 可以是 tanh、sigmoid、relu 或是其它你想要使用的函數(shù)。而對我而言,我喜歡使用 tanh。對于輸出層而言,有時我們可能希望 fout 是一個不含非線性變換的傳遞函數(shù)。如果我們將所有的權(quán)重和偏置項連接成一個向量 W,我們可以看到上述神經(jīng)網(wǎng)絡(luò)是一個確定性函數(shù) y=F(x, W),然后我們可以使用進化策略,結(jié)合之前介紹的搜索循環(huán)來找到一個解決方案 W。

但是如果我們不希望我們的智能體是確定性的呢?對于特定的某些任務(wù),即使像石頭剪刀布一般簡單,最優(yōu)策略也是一種隨機行為,所以我們希望智能代理能夠?qū)W習(xí)到一種隨機策略。將 y=F(x, W) 轉(zhuǎn)換為隨機策略的一種方法是使得 W 隨機。模型中的每個參數(shù) wiW 都是符合正態(tài)分布的隨機變量 N(μi, σi)。

這種隨機網(wǎng)絡(luò)被稱為貝葉斯神經(jīng)網(wǎng)絡(luò)。貝葉斯神經(jīng)網(wǎng)絡(luò)是一個權(quán)重帶有先驗分布的神經(jīng)網(wǎng)絡(luò)。在這種情況下,我們想要求解的模型參數(shù)是 μ 和 σ 的向量集,而不是權(quán)重 W。在網(wǎng)絡(luò)每一次前向傳播的過程中,生成一個全新的符合 N(μ, σ I) 分布的 W。文獻中有許多有趣工作將貝葉斯網(wǎng)絡(luò)應(yīng)用于許多問題中,并解決了許多訓(xùn)練網(wǎng)絡(luò)的挑戰(zhàn)。通過設(shè)置解空間為 μ 和 σ,而不是 W,進化策略也可以用于直接找到隨機策略的解。

隨機策略網(wǎng)絡(luò)在強化學(xué)習(xí)的研究中也非常流行。例如,在近端策略優(yōu)化(PPO)算法中,最后一層是 μ 和 σ 的參數(shù)集合,并且動作是從 N(μ, σ I) 中進行采樣的。為參數(shù)增加噪音的操作也被稱為鼓勵智能代理探索環(huán)境并逃離局部最優(yōu)。我發(fā)現(xiàn)對于需要智能代理進行探索的許多任務(wù),我們并不需要整個 W 都是隨機的,而僅僅只有偏置項滿足隨機性就足夠了。對于具有挑戰(zhàn)性的運動任務(wù),例如 roboschool 環(huán)境中的運動任務(wù),我通常使用進化策略來找到一個隨機策略,其中只有偏置項的參數(shù)才符合正態(tài)分布。

雙足步行者的健壯演進策略

我發(fā)現(xiàn)健壯策略研究是另一個可以應(yīng)用進化策略算法的領(lǐng)域。我想控制數(shù)據(jù)效率之間的平衡,以及該策略在多個隨機實驗中的健壯程度。為了證明這一點,我在一個叫做 BipedalWalkerHardcore-v2 的環(huán)境中測試了進化策略,該環(huán)境是由 Oleg Klimov 使用 Box2D 物理引擎創(chuàng)建的,該引擎曾被用于開發(fā)《憤怒的小鳥》。

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

我們的智能代理解決了 BipedalWalkerHardcore-v2

在這種情況下,我們的智能代理必須學(xué)習(xí)到一個策略,以實現(xiàn)在有限時間內(nèi)能夠通過一個隨機生成的地形還不摔倒。這里涉及 24 個輸入,其中包括有 10 個雷達激光傳感器、角度參數(shù)和接觸器參數(shù)。智能體不知道自己在地圖中的絕對坐標(biāo)。動作空間是 4 個連續(xù)值,控制著 4 臺電機的轉(zhuǎn)矩??偑剟畹挠嬎銊t基于智能體走過的總路程。一般情況下,如果智能體順利走完整個地圖,它將得到 300多分。此外根據(jù)全程施加的電機扭矩情況,還要再減去少量的分?jǐn)?shù),因此這樣使得能量也成為了一個限制條件。

BipedalWalkerHardcore-v2 將任務(wù)完成定義為在超過 100 次連續(xù)的隨機試驗中,智能代理的平均分達到 300 多。雖然使用強化學(xué)習(xí)算法訓(xùn)練智能體成功穿越地圖一兩次相對容易,但是要保證智能代理能始終如一且高效完成卻是很困難的,這使得該任務(wù)成為一項很有趣的挑戰(zhàn)。據(jù)我所知,到 2017 年 10 月為止,我的智能體是唯一已知能解決此問題的方案。

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

早期階段,學(xué)習(xí)如何行走

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

學(xué)習(xí)如何糾正錯誤,不過還是很慢

由于地形圖是針對每個實驗隨機生成的,因此有時候地形也許會非常簡單,而有時候地形也可能非常復(fù)雜。我們并不希望我們的自然選擇過程允許那些弱策略的智能體(通過簡單的地形地圖)進入下一代。另外我們也希望給那些擁有好策略的智能代理一個救贖的機會。所以我最終所做的是定義一個智能體分組(episode),作為 16 次隨機展示的平均值,并使用 16 次展示的累積獎勵平均值作為其最適分?jǐn)?shù)(Fitness score)。

另一種對待這種事件的方法是,即使我們正在對智能體進行超過 100 次試驗的測試,我們通常會在單次試驗中對其進行訓(xùn)練,所以測試任務(wù)和我們正在優(yōu)化的訓(xùn)練任務(wù)并不一樣。通過在隨機環(huán)境中對所有智能代理進行多次平均,我們縮小了訓(xùn)練集和測試集之間的差距。如果我們可以對訓(xùn)練集進行過度訓(xùn)練,那么也可能會對測試集進行過度訓(xùn)練,因為這在強化學(xué)習(xí)中是一件好事情

當(dāng)然,我們算法的數(shù)據(jù)效率比現(xiàn)在差 16 倍,但最終的策略卻要健壯得多。當(dāng)我在超過 100 次連續(xù)隨機試驗中測試最終策略時,我順利通過了這個環(huán)境,并得到了一個超過 300 點的平均分?jǐn)?shù)。如果沒有這種平均方法,最好的智能體在超過 100 次試驗中智能的平均分?jǐn)?shù)大約只有 220 到 230。據(jù)我所知,截止 2017 年 10 月,這是解決該環(huán)境問題的第一個解決方案。

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

獲勝的解決方案,使用 PEPG 演變,每個分組平均運行 16 次

我還使用了 PPO,這是一種針對強化學(xué)習(xí)的最先進的策略梯度算法,然后我試圖將其進行調(diào)整以最佳化應(yīng)用到這項任務(wù)中。最后,我在 100 次隨機試驗中只能讓 PPO 取得大約 240 到 250 的平均成績。但是我確信將來其他人可以使用 PPO 或其它強化學(xué)習(xí)算法來解決這個環(huán)境挑戰(zhàn)。

后續(xù)更新(2018 年 1 月):

dgriff777 能夠使用帶有 4 個堆棧幀的 A3C+LSTM 連續(xù)版本作為輸入來訓(xùn)練 BipedalWalkerHardcore-v2,以在超過 100 次隨機試驗中取得 300 分的成績。他在 GitHub 上開源了這個模型,由 pytorch 進行編寫。

在現(xiàn)實世界中我們需要足夠安全的策略,所以控制數(shù)據(jù)效率和策略健壯性之間的權(quán)衡能力是非常有用和重要的。理論而言,如果有足夠的計算能力,我們甚至可以對所需的 100 次展示進行平均,并將我們的雙足步行者直接優(yōu)化到滿足需求。專業(yè)工程師通常要求他們的設(shè)計滿足特定的質(zhì)量保證并滿足某些安全因素。當(dāng)我們訓(xùn)練智能代理去學(xué)習(xí)那些可能影響到現(xiàn)實世界的策略時,我們需要考慮到這些安全因素。

以下是進化策略發(fā)現(xiàn)的一些其它解決方案:

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

CMA-ES 解決方案

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

OpenAI-ES 解決方案

我還使用具有高初始噪音參數(shù)的隨機策略網(wǎng)絡(luò)對智能體進行訓(xùn)練,因此智能體可以在任何地方看到噪音,以至于它的行為也有點混亂。它導(dǎo)致了智能體在沒有對其輸入和輸出信息的準(zhǔn)確性進行確認(rèn)的情況下也依然學(xué)習(xí)任務(wù)(這個智能體無法獲得 300 以上的分?jǐn)?shù)):

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

采用隨機策略的雙足步行者

Kuka 機械抓臂

我還試圖在簡化的 Kuka 機器人手臂抓取任務(wù)中使用帶有該項平均技術(shù)的進化策略。這個環(huán)境在 pybullet 環(huán)境中可以獲得。仿真中使用的 Kuka 模型被設(shè)計為類似于真正的 Kuka 機器人手臂。在這個簡化的任務(wù)中,智能體被告知了物體的坐標(biāo)。

更高級的強化學(xué)習(xí)環(huán)境可能需要智能體直接從像素輸入中推理出一個動作,但是在原則上,我們可以將此簡化版模型與預(yù)訓(xùn)練好的卷積網(wǎng)絡(luò)組合在一起,通過卷積網(wǎng)絡(luò)給出坐標(biāo)的估計值。

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

使用隨機策略訓(xùn)練的機器人手臂抓取任務(wù)

如果智能體成功抓取物體,它將獲得 10000 分,否則為 0。然后再扣除一些能源消耗的分?jǐn)?shù)。通過對 16 個隨機試驗的稀疏獎勵進行平均,我們可以讓進化策略對健壯性進行優(yōu)化。然而最終,我得到確定性策略或者隨機策略只能在 70% 至 75% 的時間內(nèi)抓取物體。這里還有提升的空間。

讓 Minitaur 學(xué)習(xí)多項任務(wù)

學(xué)習(xí)同時執(zhí)行多項復(fù)雜任務(wù)使得我們能更好地執(zhí)行單一任務(wù)。例如,少林寺的僧侶站在樹樁上舉重可以使得他們在沒有舉重的情況下更好地維持平衡。學(xué)習(xí)如何在山上以 80 英里/小時的速度駕駛汽車,并且還要保證不把杯子里的水灑出來,這會使得司機成為一個更好的非法街頭賽車手。我們還可以訓(xùn)練智能代理去執(zhí)行多項任務(wù),以使得它們學(xué)習(xí)到更加穩(wěn)定的策略。

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用
少林和尚

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

學(xué)習(xí)漂移

最近關(guān)于自我控制(Self-playing)智能體的研究工作表明,學(xué)習(xí)諸如 Sumo 摔跤(需要許多技巧的運動)等艱巨任務(wù)的智能代理也能用于執(zhí)行更簡單的任務(wù),例如迎著風(fēng)行走,而不需要額外的訓(xùn)練。Erwin Coumans 最近嘗試讓 Minitaur 在上方放著一只玩具鴨的情況下學(xué)會行走。如果鴨子掉下來,Minitaur 也就失敗了,其中所蘊含的想法是期望這些類型的任務(wù)增強能夠有助于將學(xué)習(xí)策略從模擬轉(zhuǎn)移到真正的 Minitaur。我取用了他的一個例子,并嘗試使用進化策略訓(xùn)練 Minitaur 和玩具鴨子的組合。

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用
pybullet 中以 CMAES 策略運行的 Minitaur

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

來自 Ghost Robotics 公司的真實 Minitaur 機器人

pybullet 中的 Minitaur 模型旨在模仿真實的物理 Minitaur。然而,在完美的模擬環(huán)境下訓(xùn)練出來的策略往往不適用于真實世界。它甚至無法泛化到模擬環(huán)境內(nèi)部的小小任務(wù)增強。例如,在上圖中有一個 Minitaur 被訓(xùn)練用于朝前走(使用 CMA-ES),但是我們看到,當(dāng)把一只鴨子放在它上面的時候,這個策略并不總是能夠保持鴨子不掉而走出房間。

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

只訓(xùn)練了簡單前進任務(wù)的策略上面放一只鴨子
多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用
以帶著鴨子前進為任務(wù)訓(xùn)練的策略

額外把鴨子放到 Minitaur 上的時候,從單純的步行任務(wù)中學(xué)到的策略在某種程度上依然可以發(fā)揮作用,這也意味著添加玩具鴨子并沒有增加太多的難度。玩具鴨子有一個較為平穩(wěn)的底部,所以 Minitaur 不會讓鴨子從背部脫落。我試圖用一個球去代替鴨子,從而讓任務(wù)變得更加困難。

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

CMA-ES 學(xué)到了一種作弊策略

然而,用球代替鴨子并不會立即產(chǎn)生穩(wěn)定的平衡策略。相反,CMA-ES 發(fā)現(xiàn)了一項策略,首先將球滑入其腿部形成的孔中,然后將球帶入該孔內(nèi),從而以取巧的方式把球帶出了房間。這里學(xué)到的教訓(xùn)是,一個目標(biāo)驅(qū)動(Objective-driven)的搜索算法將學(xué)會利用環(huán)境中的任何設(shè)計缺陷,并利用它們以實現(xiàn)自己的目標(biāo)。

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

帶著小球訓(xùn)練的 CMA-ES

在將球縮小之后,CMA-ES 能夠找到一個隨機策略,它能夠同時實現(xiàn)前行和保持平衡。這項策略也可以轉(zhuǎn)移到更容易的鴨子任務(wù)中。在未來,我希望這類任務(wù)增強技術(shù)對于真實機器人的遷移學(xué)習(xí)能發(fā)揮重要作用。

ESTool

進化策略最大的賣點在于,可以使用在 CPU 不同核心上的不同線程或者甚至是不同的機器來運行多個工作器,以輕松實現(xiàn)并行化。Python 的多重處理機制使得啟動并行進程變得簡單。我更喜歡在 mpi4py 中使用消息傳遞接口(MPI)為每個作業(yè)啟動單獨的 python 進程。這讓我們可以繞過全局解釋器鎖的限制,并且讓給我確信每個進程都有自己的沙盒化 numpy 以及 gym 實例,這一點對于播種隨機數(shù)生成器非常重要。

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

Roboschool 中的單足、雙足、螞蟻機器人
多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用
Roboschool 中的觸碰臂

在各式各樣的 roboschool 任務(wù)中,智能代理借助 estool 實現(xiàn)演進

我實現(xiàn)了一個名為 estool 的簡單工具,它使用前一篇文章中介紹的 es.py 庫來訓(xùn)練簡單的前饋策略網(wǎng)絡(luò),以執(zhí)行用 gym 接口編寫的連續(xù)控制強化學(xué)習(xí)任務(wù)。我已經(jīng)使用 estool 工具輕松訓(xùn)練了前面所述的所有實驗,以及 gym 和 roboschool 內(nèi)部提供的各種各樣其它的連續(xù)控制任務(wù)。estool 使用 MPI 進行分布式處理,因此不需要太多工作就可以將工作器分配到多臺機器上。

ESTool 與 pybullet

GitHub 倉庫

除了 gym 和 roboschool 自帶的環(huán)境之外,estool 還適用于多數(shù) pybullet gym 環(huán)境。通過修改現(xiàn)有的環(huán)境來構(gòu)建自定義 pybullet 環(huán)境也很容易。例如,我可以毫不費力地在球場環(huán)境中制作 Minitaur(在該倉庫的 custom_envs 目錄下),并且也能夠?qū)Νh(huán)境進行修改以使得更加容易實現(xiàn)新想法。另外如果你想將其它軟件包(例如 ROS 或者 Blender)的 3D 模型納入進來,你可以嘗試構(gòu)建新的有趣的 pybullet 環(huán)境,為其他人提供新的挑戰(zhàn)。

作為近期遷移學(xué)習(xí)研究中令人興奮的成果,pybullet 中的許多模型和環(huán)境,例如 Kuka 機器人手臂和 Minitaur,都在最大的程度上模擬了真實機器人。事實上,這些最新的尖端研究論文(1,23,4)中有很多都使用 pybullet 來進行遷移學(xué)習(xí)實驗。

因此你不需要購買昂貴的 Minitaur 或 Kuka 機器人手臂來嘗試從仿真到真實的實驗。pybullet 內(nèi)部有一個賽車模型,它是參照 MIT 開源賽車硬件工具包進行建模的。甚至還有一個 pybullet 環(huán)境,可以將虛擬攝像機安裝到虛擬賽車上,為智能代理提供虛擬屏幕的像素作為觀察結(jié)果輸入。

讓我們首先嘗試更簡單的版本,賽車只需要學(xué)習(xí)一個跟蹤巨型球移動的策略。在 RacecarBulletEnv-v0 環(huán)境中,智能代理獲取球的相對坐標(biāo)作為輸入,并輸出控制電機速度和轉(zhuǎn)向方向的連續(xù)動作。該任務(wù)非常簡單,在 2014 款 Macbook Pro(8 核 CPU)上只需要花費 5 分鐘(50 次迭代)即可完成訓(xùn)練。使用 estool,下面的命令將啟動一個含有 8 進程的訓(xùn)練程序,每個進程負(fù)責(zé) 4 項作業(yè),這樣總共就有 32 個工作器,然后使用 CMA-ES 來演進策略:

python train.py bullet_racecar -o cma -n 8 -t 4

訓(xùn)練的進度以及模型參數(shù)將被保存在日志子目錄中。我們可以運行這個命令來可視化環(huán)境中智能代理所找到的最佳策略:

python model.py bullet_racecar log/bullet_racecar.cma.1.32.best.json

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

pybullet 賽車環(huán)境,基于 MIT 賽車實現(xiàn)

在這個仿真中,我們可以使用鼠標(biāo)來移動圓球,如果有需要的話,甚至也可以用來移動賽車。

IPython notebook plot_training_progress.ipynb 可用于可視化賽車智能代理每次迭代的訓(xùn)練記錄。每次迭代中,我們都可以獲得最高分、最低分、以及所有賽車的平均分?jǐn)?shù)。

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

標(biāo)準(zhǔn)運動任務(wù)類似于 roboschool 中的運動任務(wù),例如 Inverted Pendulum、Hopper、Walker、HalfCheetah、Ant 和 Humanoid 也可以在 pybullet 中使用。我發(fā)現(xiàn)了一個策略,在 pybullet 的螞蟻任務(wù)中獲得了 3000 分,我是使用 PEPG 在智能代理數(shù)為 256 的多核機器上花費幾個小時完成訓(xùn)練的。

python train.py bullet_ant -o pepg -n 64 -t 4

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

AntBulletEnv 的一個樣例展示。我們還可以使用 gym.wrappers.Monitor 將展示結(jié)果保存成一個 mp4 格式的視頻

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

總結(jié)

在本文中,我討論了如何使用進化策略來尋找前饋神經(jīng)網(wǎng)絡(luò)智能體的策略,以執(zhí)行由 gym 環(huán)境接口定義的各式各樣的連續(xù)控制強化學(xué)習(xí)任務(wù)。我介紹了 estool,它允許我使用 MPI 框架在分布式處理環(huán)境中快速嘗試不同配置的進化策略算法。

到目前為止,我只討論了通過讓智能體在環(huán)境中反復(fù)試驗來訓(xùn)練智能代理學(xué)習(xí)策略的方法。這種從頭開始訓(xùn)練的形式被稱為無模型強化學(xué)習(xí)。在下一篇文章中,我會更多地討論基于模型的學(xué)習(xí),我們的智能體將學(xué)習(xí)利用以前學(xué)習(xí)過的模型來完成一個給定任務(wù)。另外我仍然會采用進化策略。

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

最終,智能代理選擇將所有的絆腳石當(dāng)做墊腳石

趣味擴展

“Fires of a Revolution” Incredible Fast Piano Music (EPIC)

A Visual Guide to Evolution Strategies

ESTool

Stable or Robust? What’s the Difference?

OpenAI Gym Docs

Evolution Strategies as a Scalable Alternative to Reinforcement Learning

Edward, A library for probabilistic modeling, inference, and criticism

History of Bayesian Neural Networks

BipedalWalkerHardcore-v2

roboschool

pybullet

Emergent Complexity via Multi-Agent Competition

GraspGAN

Via Evolving Stable Strategies,雷鋒網(wǎng) AI 科技評論編譯

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

多圖見證模擬機器人的逆天成長:論進化策略在強化學(xué)習(xí)中的應(yīng)用

分享:
相關(guān)文章

知情人士

我也是個旅途的浪人
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說