一、介紹
Actor-Critic 算法有兩部分組成:actor 和 critic嘱丢。其中 action 就是Policy Gradient 算法薪介,critic 是Q-learning。所以實(shí)際上 actor-critic算法是Q-learning算法和policy gradient算法的結(jié)合屿讽。
- Actor Critic 算法能在有限維的輸入和有限維的輸出中起到比較好的效果。
- Actor 角色起到的作用是:在當(dāng)前狀態(tài)下決定哪一個(gè)動(dòng)作被執(zhí)行會(huì)達(dá)到最好的效果吠裆;而Critic則是對某一個(gè)狀態(tài)下采取的某個(gè)動(dòng)作做出評價(jià)伐谈。這個(gè)評價(jià)會(huì)影響 actor 今后的選擇。
- Actor-Critic 算法所需要的訓(xùn)練時(shí)間要比Policy Gradient 算法短试疙。
二诵棵、回顧 Q-learning
對于Q-learning,有如下特點(diǎn):
- 基于 value-based
- 處理離散的動(dòng)作空間
-
它是一個(gè) model-free 的算法祝旷,使用 Q函數(shù)去找到最理想的策略
image.png
如上圖的網(wǎng)絡(luò)都是為了近似 Q(s,a)函數(shù)履澳,有了 Q(s,a),我們就可以根據(jù)Q(s,a)的值來作為判斷依據(jù)怀跛,作出恰當(dāng)?shù)男袨椤?/p>
Q-learning算法最主要的一點(diǎn)是:決策的依據(jù)是Q(s,a)的值距贷。即算法的本質(zhì)是在計(jì)算 當(dāng)前狀態(tài)s, 采取某個(gè)動(dòng)作 a 后會(huì)獲得的未來的獎(jiǎng)勵(lì)的期望,這個(gè)值就是 Q(s,a)。換句話說吻谋,我們可以把這個(gè)算法的核心看成一個(gè)評論家(Critic)忠蝗,而這個(gè)評論家會(huì)對我們在當(dāng)前狀態(tài)s下,采取的動(dòng)作a這個(gè)決策作出一個(gè)評價(jià)漓拾,評價(jià)的結(jié)果就是Q(s,a)的值阁最。
但是,Q-learning 算法卻不怎么適合解決連續(xù)動(dòng)作空間的問題骇两。因?yàn)槿绻麆?dòng)作空間是連續(xù)的速种,那么用Q-learning算法就需要對動(dòng)作空間離散化,而離散化的結(jié)果會(huì)導(dǎo)致動(dòng)作空間的維度非常高低千,這就使得Q-learning 算法在實(shí)際應(yīng)用起來很難求得最優(yōu)值配阵,且計(jì)算速度比較慢。
而Policy Gradient 正好彌補(bǔ)了這個(gè)缺點(diǎn)。
三闸餐、回顧 Policy Gradient
Policy Gradient 算法的核心思想是: 根據(jù)當(dāng)前狀態(tài)饱亮,直接算出下一個(gè)動(dòng)作是什么或下一個(gè)動(dòng)作的概率分布是什么。即它的輸入是當(dāng)前狀態(tài) s, 而輸出是具體的某一個(gè)動(dòng)作或者是動(dòng)作的分布舍沙。
我們可以想像近上,Policy Gradient 就像一個(gè)演員(Actor),它根據(jù)某一個(gè)狀態(tài)s拂铡,然后作出某一個(gè)動(dòng)作或者給出動(dòng)作的分布壹无,而不像Q-learning 算法那樣輸出動(dòng)作的Q函數(shù)值。
四感帅、Actor Critic
Actor-Critic 是Q-learning 和 Policy Gradient 的結(jié)合斗锭。
為了導(dǎo)出 Actor-Critic 算法,必須先了解Policy Gradient 算法是如何一步步優(yōu)化策略的失球。
如上圖所示岖是, 最簡單的Policy Gradient 算法要優(yōu)化的函數(shù)如下:
其中 要根據(jù) Monte-Carlo 算法估計(jì),故又可以寫成:
但是這個(gè) 方差會(huì)比較大实苞,因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=G_t" alt="G_t" mathimg="1">是由多個(gè)隨機(jī)變量得到的豺撑,因此,我們需要尋找減少方差的辦法黔牵。
一個(gè)方法就是引入一個(gè) baseline 的函數(shù) b聪轿, 這個(gè) b 會(huì)使得 的期望不變,但是方差會(huì)變小猾浦,常用的 baseline函數(shù)就是
陆错。再來,為了進(jìn)一步降低
的隨機(jī)性金赦,我們用
替代
音瓷,這樣,源式就變成:
因?yàn)?夹抗,故進(jìn)一步演化成:
照上面的式子看來外莲,我們需要兩個(gè)網(wǎng)絡(luò)去估計(jì) 和
,但是考慮到貝爾曼方程:
棄掉期望兔朦, 得:
即最終的式子為:
這樣只需要一個(gè)網(wǎng)絡(luò)就可以估算出 值了偷线,而估算
的網(wǎng)絡(luò)正是我們在 Q-learning 中做的,所以我們就把這個(gè)網(wǎng)絡(luò)叫做 Critic沽甥。這樣就在 Policy Gradient 算法的基礎(chǔ)上引進(jìn)了 Q-learning 算法了
引用
http://www.reibang.com/p/25c09ae3d206
https://www.bilibili.com/video/av24724071/?p=6
http://www.reibang.com/p/277abf64e369