【强化学习】A3C原理
先解釋一下什么叫異步、什么叫并發(fā):
**異步:**和同步相對(duì),同步是順序執(zhí)行,而異步是彼此獨(dú)立,在等待某個(gè)事件的過程中繼續(xù)做自己的事,不要等待這一事件完成后再工作。線程是實(shí)現(xiàn)異步的一個(gè)方式,異步是讓調(diào)用方法的主線程不需要同步等待另一個(gè)線程的完成,從而讓主線程干其他事情。
**并發(fā):**同一時(shí)間段有幾個(gè)程序都處于已經(jīng)啟動(dòng)到運(yùn)行完畢之間,并且這幾個(gè)程序都在同一個(gè)處理機(jī)上運(yùn)行,并發(fā)的兩種關(guān)系是同步和互斥。
**多線程:**多線程是進(jìn)程中并發(fā)運(yùn)行的一段代碼,能夠?qū)崿F(xiàn)線程之間的切換執(zhí)行;
**異步和多線程:**不是同等關(guān)系,異步是目的,多線程只是實(shí)現(xiàn)異步的一個(gè)手段,實(shí)現(xiàn)異步可以采用多線程技術(shù)或者交給其他進(jìn)程來處理。
A3C( Asynchronous Advantage Actor-critic,簡(jiǎn)稱A3C)主要是通過相比Actor-Critic,A3C的優(yōu)化主要有3點(diǎn),分別是異步訓(xùn)練框架,網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化,Critic評(píng)估點(diǎn)的優(yōu)化。其中異步訓(xùn)練框架是最大的優(yōu)化。
A3C的執(zhí)行結(jié)果:
可以看出他的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):
缺點(diǎn):
1… 收斂性能比起DQN并不是很好,得到的通常是局部最優(yōu)解
2. 評(píng)價(jià)策略通常不是非常高效,并且有很高的偏差
算法流程,來自網(wǎng)頁
參考鏈接:https://www.cnblogs.com/pinard/p/10334127.htmlhttps://www.cnblogs.com/wangxiaocvpr/p/8110120.html
下面這個(gè)網(wǎng)頁的注釋很好用:https://zhuanlan.zhihu.com/p/111336330
莫煩教程中學(xué)到的一些知識(shí)(我可能是個(gè)無情的搬運(yùn)工,也是一個(gè)有心的整理者,嘻嘻)
平行宇宙:
它采用的是我們之前提到的 Actor-Critic 的形式. 為了訓(xùn)練一對(duì) Actor 和 Critic, 我們將它復(fù)制多份紅色的, 然后同時(shí)放在不同的平行宇宙當(dāng)中, 讓他們各自玩各的. 然后每個(gè)紅色副本都悄悄告訴黑色的 Actor-Critic 自己在那邊的世界玩得怎么樣, 有哪些經(jīng)驗(yàn)值得分享. 然后還能從黑色的 Actor-Critic 這邊再次獲取綜合考量所有副本經(jīng)驗(yàn)后的通關(guān)秘籍. 這樣一來一回, 形成了一種有效率的強(qiáng)化學(xué)習(xí)方式.
我們知道目前的計(jì)算機(jī)多半是有雙核, 4核, 甚至 6核, 8核. 一般的學(xué)習(xí)方法, 我們只能讓機(jī)器人在一個(gè)核上面玩耍. 但是如果使用 A3C 的方法, 我們可以給他們安排去不同的核, 并行運(yùn)算. 實(shí)驗(yàn)結(jié)果就是, 這樣的計(jì)算方式往往比傳統(tǒng)的方式快上好多倍. 那我們也多用用這樣的紅利吧.
下一篇是A3C的注釋版本
總結(jié)
以上是生活随笔為你收集整理的【强化学习】A3C原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【强化学习】AC注释版本
- 下一篇: 【强化学习】A3C代码注释版本