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

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能 正文
發(fā)私信給AI研習(xí)社-譯站
發(fā)送

0

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以刺猬索尼克游戲?yàn)槔v解PPO(第六部分)

本文作者: AI研習(xí)社-譯站 2019-01-16 10:35
導(dǎo)語(yǔ):幾周前,OpenAI在深度強(qiáng)化學(xué)習(xí)上取得了突破性進(jìn)展。
深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以刺猬索尼克游戲?yàn)槔v解PPO(第六部分)

本文為 AI 研習(xí)社編譯的技術(shù)博客,原標(biāo)題 :

Proximal Policy Optimization (PPO) with Sonic the Hedgehog 2 and 3

作者 | Thomas Simonini

翻譯 | 安石徒            校對(duì) | 斯蒂芬?二狗子

審核 | 鄧普斯?杰弗    整理 | 菠蘿妹

原文鏈接:

https://towardsdatascience.com/proximal-policy-optimization-ppo-with-sonic-the-hedgehog-2-and-3-c9c21dbed5e


深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以刺猬索尼克游戲?yàn)槔v解PPO

(第六部分)

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以刺猬索尼克游戲?yàn)槔v解PPO(第六部分)

幾周前,OpenAI在深度強(qiáng)化學(xué)習(xí)上取得了突破性進(jìn)展。由5個(gè)智能體的組成的人工智能團(tuán)隊(duì)OpenAI five擊敗了現(xiàn)實(shí)中的DOTA2玩家。但遺憾的是,該人工智能團(tuán)隊(duì)輸?shù)袅穗S后的第二場(chǎng)比賽。

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以刺猬索尼克游戲?yàn)槔v解PPO(第六部分)

Dota2

這個(gè)突破性進(jìn)展的取得得益于強(qiáng)大的硬件支持和 PPO 算法(近端策略優(yōu)化 Proximal Policy Optimization)。

PPO的核心思想是避免采用大的策略更新。為此,我們采用變化率表明新舊策略的不同,并縮減該變化率在0.8到1.2之間以保證策略更新不大。

此外,PPO的另一項(xiàng)創(chuàng)新是在訓(xùn)練智能體的k個(gè)epochs過(guò)程中使用了小批量梯度下降法。你可以讀我們之前已經(jīng)實(shí)現(xiàn)的這篇文章 A2C with Sonic The Hedgehog。

今天,我們將深入了解PPO結(jié)構(gòu),并應(yīng)用PPO來(lái)訓(xùn)練智能體學(xué)習(xí)玩刺猬索尼克系列1,2,3。

但是,如果想要理解好PPO,你首先需要掌握A2C( 建議先閱讀上一篇文章簡(jiǎn)單介紹A2C (第五部分))


  策略梯度(PG)目標(biāo)函數(shù)存在的問(wèn)題

曾記否,在學(xué)習(xí)策略梯度時(shí),我們了解了策略目標(biāo)函數(shù)(或策略損失函數(shù))。

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以刺猬索尼克游戲?yàn)槔v解PPO(第六部分)

PG的思想是采用上面的函數(shù)一步步做梯度上升(等價(jià)于負(fù)方向的梯度下降)使智能體在行動(dòng)中獲取更高的回報(bào)獎(jiǎng)勵(lì)。

然而,PG算法存在步長(zhǎng)選擇問(wèn)題(對(duì)step size敏感):

  • 步長(zhǎng)太小,訓(xùn)練過(guò)于緩慢

  • 步長(zhǎng)太大,訓(xùn)練中誤差波動(dòng)較大

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以刺猬索尼克游戲?yàn)槔v解PPO(第六部分)

面對(duì)訓(xùn)練過(guò)程波動(dòng)較大的問(wèn)題時(shí),PPO可以輕松應(yīng)對(duì)。

PPO近端策略優(yōu)化的想法是通過(guò)限定每步訓(xùn)練的策略更新的大小,來(lái)提高訓(xùn)練智能體行為時(shí)的穩(wěn)定性。

為了實(shí)現(xiàn)上述想法,PPO引入了一個(gè)新的目標(biāo)函數(shù)“Clipped surrogate objective function”(大概可以翻譯為:裁剪的替代目標(biāo)函數(shù)),通過(guò)裁剪將策略更新約束在小范圍內(nèi)。


  裁剪替代目標(biāo)函數(shù) Clipped Surrogate Objective Function

首先,正如我們?cè)趕tackoverflow中的解釋?zhuān)覀儾徊捎弥悄荏w行動(dòng)的對(duì)數(shù)概率logπ(a|s)(vanilla policy gradient method )來(lái)跟蹤智能體行動(dòng)的效果,而是使用當(dāng)前策略下的行動(dòng)概率(π(a|s))除以上一個(gè)策略的行動(dòng)概率 (π_old(a|s))的比例:

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以刺猬索尼克游戲?yàn)槔v解PPO(第六部分)

摘自PPO論文:PPO paper

如上所示,rt(θ)表明了新舊策略間概率比:

  • 若 rt(θ)>1,則當(dāng)前策略下的行動(dòng)比原先策略的更有可能發(fā)生。

  • 若 rt(θ)?(0,1),則在當(dāng)前策略下行動(dòng)發(fā)生的概率低于原先的。

據(jù)此,新的目標(biāo)函數(shù)可如下所示:

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以刺猬索尼克游戲?yàn)槔v解PPO(第六部分)

摘自PPO論文:PPO paper  

但是,如果你當(dāng)前策略的行動(dòng)的可能性遠(yuǎn)高于之前策略的情況下,此時(shí)不對(duì)目標(biāo)函數(shù)進(jìn)行約束, 那么 rt(θ)的值就會(huì)非常大,還會(huì)導(dǎo)致PG采取可能破壞策略的大梯度更新。

因此,需要對(duì)目標(biāo)函數(shù)進(jìn)行約束,懲罰那些導(dǎo)致rt(θ)遠(yuǎn)離1的變化(本文中比率僅允許在0.8和1.2之間),這樣可以確保不會(huì)發(fā)生大的策略更新。

為此,我們有兩個(gè)解決方案:

  • TRPO(Trust Region Policy Optimization,置信區(qū)間策略優(yōu)化)采用的KL散度來(lái)約束策略更新(注:使用目標(biāo)函數(shù)之外的KL散度,來(lái)約束需要更新的策略數(shù)目,以保證梯度單調(diào)上升;此外還有其他方法,例如ACER,Sample Efficient Actor-Critic with Experience eplay)。但是TRPO這種方法使用起來(lái)過(guò)于復(fù)雜,且耗費(fèi)更多的計(jì)算時(shí)間。

  • 使用PPO優(yōu)化的裁剪替代目標(biāo)函數(shù)。

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以刺猬索尼克游戲?yàn)槔v解PPO(第六部分)

裁剪替代目標(biāo)函數(shù)

通過(guò)該函數(shù),得到兩個(gè)概率比,一個(gè)非裁剪的和一個(gè)裁剪的(在[1?-??, 1+?]區(qū)間,?是一個(gè)幫助我們?cè)O(shè)置范圍的超參數(shù),本文中? = 0.2)。

然后,我們選擇裁剪和非裁剪中的最小值,最終得到的值范圍是小于非裁剪的下界的區(qū)域。

為此,我們需要考慮兩種情況case:

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以刺猬索尼克游戲?yàn)槔v解PPO(第六部分)

摘自PPO論文

  • case 1: 當(dāng)優(yōu)勢(shì)A>0

如果?t > 0,即該行動(dòng)好于在該狀態(tài)下的行動(dòng)得分的平均值。因此,我們應(yīng)鼓勵(lì)新策略增加在該狀態(tài)下采取該行動(dòng)的概率。

也就增加了概率比r(t),增加了新策略的概率( At* 新的策略概率),同時(shí)令分母上的先前策略保持不變。

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以刺猬索尼克游戲?yàn)槔v解PPO(第六部分)

因?yàn)檫M(jìn)行了裁剪,所以rt(?)最大只能增長(zhǎng)到1+ ?。這意味著當(dāng)前行動(dòng)概率相較于原先策略不可能上百倍地提高。

為什么要這樣做?因?yàn)槲覀儾幌脒^(guò)度更新策略。在該狀態(tài)下采取這個(gè)行動(dòng)的估計(jì)結(jié)果只是一次嘗試的得出結(jié)果,并不能證明這個(gè)行動(dòng)總是有較高的正向回報(bào)(說(shuō)白了,防止陷入局部最優(yōu)值),因此,我們就不要貪婪地學(xué)習(xí),以防止智能體選擇糟糕的策略。

總而言之,在(行動(dòng)對(duì)結(jié)果)是積極作用的情況下,需要(在這步梯度上升中)增加一點(diǎn)該行動(dòng)的概率,但不是太多。

  • case 2:當(dāng)優(yōu)勢(shì)A<0

如果?t < 0,即該行動(dòng)為導(dǎo)致消極結(jié)果的行動(dòng),應(yīng)該被阻止。因此概率比rt(?)會(huì)被減少。但同時(shí)進(jìn)行裁剪,使rt(?)最小只能將降低到1- ?。

同樣,我們不想最大化減少該行動(dòng)被選中的概率,因?yàn)檫@種貪婪學(xué)習(xí)會(huì)導(dǎo)致策略過(guò)大的改變,以至于變得糟糕也說(shuō)不定。

總而言之,多虧裁剪替代目標(biāo)函數(shù),我們約束了新策略相對(duì)舊策略兩種情形下的變動(dòng)范圍。于是,我們把概率比控制在小區(qū)間內(nèi),因此,這種裁剪有利于求策略梯度。如果概率在[1?-??, 1+?]區(qū)間外,梯度值為0。

最終的裁剪替代目標(biāo)損失函數(shù):

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以刺猬索尼克游戲?yàn)槔v解PPO(第六部分)


  使用PPO優(yōu)化的A2C類(lèi)型智能體學(xué)習(xí)玩索尼克系列游戲

現(xiàn)在,我們將準(zhǔn)備實(shí)現(xiàn)一個(gè)A2C類(lèi)型的PPO智能體。A2C類(lèi)型訓(xùn)練包括該文中所述的A2C過(guò)程。

同樣,這個(gè)代碼實(shí)現(xiàn)比以前的代碼要復(fù)雜好多。我們要開(kāi)始復(fù)現(xiàn)最先進(jìn)的算法,因此需要代碼的更高的效率。這也是為什么,我們將整個(gè)代碼分為不同對(duì)對(duì)象和文件來(lái)實(shí)現(xiàn)。

為了實(shí)現(xiàn)一個(gè)PPO智能體,需要讀一讀如下包含完成PPO過(guò)程的筆記和代碼解釋?zhuān)?/p>

這個(gè)實(shí)現(xiàn)在GitHub倉(cāng)庫(kù)中 。
Understand PPO implementation playing Sonic the Hedgehog 2 and 3

如上所述,你已經(jīng)創(chuàng)建了一個(gè)學(xué)習(xí)如何玩刺猬索尼克系列游戲1,2,3的智能體。太棒了!一個(gè)好的智能體需要在一個(gè)GPU上訓(xùn)練10到15小時(shí)。

別忘了自己親自實(shí)現(xiàn)代碼的每一個(gè)部分,因?yàn)檎{(diào)試完善代碼是非常重要的。嘗試更改環(huán)境,調(diào)整超參,嘗試是學(xué)習(xí)的最佳途徑也是最大樂(lè)趣。

花點(diǎn)時(shí)間來(lái)想想我們從第一節(jié)課到現(xiàn)在取得的所有成就:從簡(jiǎn)單的文本游戲(OpenAI taxi-v2)到像毀滅戰(zhàn)士、索尼克這些復(fù)雜的游戲,我們采用越來(lái)越強(qiáng)大的模型結(jié)構(gòu)。這真是極好的!

下一回,我們將學(xué)習(xí)深度強(qiáng)化學(xué)習(xí)中最有趣的的新內(nèi)容之一——好奇心驅(qū)動(dòng)的學(xué)習(xí)。


想要繼續(xù)查看該篇文章相關(guān)鏈接和參考文獻(xiàn)?

長(zhǎng)按鏈接點(diǎn)擊打開(kāi)或點(diǎn)擊【深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以刺猬索尼克游戲?yàn)槔v解PPO(第六部分)】:

https://ai.yanxishe.com/page/TextTranslation/1408

【點(diǎn)擊查看本系列文章


深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:簡(jiǎn)介篇(第一部分)

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:通過(guò)Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以Doom為例一文帶你讀懂深度Q學(xué)習(xí)(第三部分 - 上)

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:進(jìn)一步了解深度Q學(xué)習(xí)(第三部分 - 下)

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以 Cartpole 和 Doom 為例介紹策略梯度 (第四部分)

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:簡(jiǎn)單介紹A3C (第五部分)


AI研習(xí)社每日更新精彩內(nèi)容,觀看更多精彩內(nèi)容:雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

7分鐘了解Tensorflow.js

在Keras中理解和編程ResNet

初學(xué)者怎樣使用Keras進(jìn)行遷移學(xué)習(xí)

如果你想學(xué)數(shù)據(jù)科學(xué),這 7 類(lèi)資源千萬(wàn)不能錯(cuò)過(guò)

等你來(lái)譯:

深度學(xué)習(xí)目標(biāo)檢測(cè)算法綜述

一文教你如何用PyTorch構(gòu)建 Faster RCNN

高級(jí)DQNs:利用深度強(qiáng)化學(xué)習(xí)玩吃豆人游戲

用于深度強(qiáng)化學(xué)習(xí)的結(jié)構(gòu)化控制網(wǎng)絡(luò) (ICML 論文講解)


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

深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:以刺猬索尼克游戲?yàn)槔v解PPO(第六部分)

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

知情人士

AI研習(xí)社(yanxishe.com)譯站頻道,傳播前沿人工智能知識(shí),讓語(yǔ)言不再成為學(xué)習(xí)知識(shí)的門(mén)檻。(原雷鋒字幕組)
當(dāng)月熱門(mén)文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)