??在上一篇文章強(qiáng)化學(xué)習(xí)中的無(wú)模型預(yù)測(cè)中蟆肆,有說(shuō)過(guò)這個(gè)無(wú)模型強(qiáng)化學(xué)習(xí)的預(yù)測(cè)問(wèn)題挑胸,通過(guò)TD
号醉、n-step TD
或者MC
的方法能夠獲得值函數(shù)画饥,那拿到value
之后如何獲取policy
呢?
??Model-Free Control in Reinforcement Learning
??在model free control
中的第一個(gè)概念就是on-policy
和 off-policy
漆腌,在現(xiàn)實(shí)中的很多問(wèn)題都是這樣的,我們得不到environment
的白盒模型阶冈,我們就需要去與環(huán)境互動(dòng)闷尿,獲取經(jīng)驗(yàn)數(shù)據(jù),然后基于經(jīng)驗(yàn)數(shù)據(jù)進(jìn)行學(xué)習(xí)女坑√罹撸或者是MDP
的內(nèi)部模型已知,但是狀態(tài)空間匆骗、動(dòng)作太大了無(wú)法對(duì)其采樣劳景。model free
的方法就可以去解決這個(gè)問(wèn)題。
On-and Off-Policy Learning
- 兩類(lèi)model-free RL
??在model-free
這個(gè)設(shè)定下面有兩個(gè)概念碉就,一個(gè)是on-policy learning
一個(gè)是off-policy learning
盟广。
- On-policy learning
??On policy
“Learn on the job” ,意思是說(shuō)馬上要給policy
喂進(jìn)來(lái)的數(shù)據(jù)都是剛剛采出來(lái)的數(shù)據(jù)瓮钥。
??Learn about policy from experience sampled from
筋量。
- Off-policy learning
??Off-policy
“Look over someone’s shoulder” 當(dāng)前學(xué)習(xí)的策略的數(shù)據(jù)從另外一個(gè)策略
采樣出來(lái)的。
??Learn about policy from experience sampled from another policy
碉熄。
Model-Free Policy Iteration
??如果我們用state value
去更新的話(huà)桨武,我們就需要去知道state transition
,而基于state-action value
的情況就好很多:
- Greedy policy improvement over
requires model of MDP:
??But we don't know the state transition probability. 如果我們基于state-action value更新的話(huà)我們就不需要知道state transition probability锈津。
- Greedy policy improvement over
is model-free
??因此計(jì)算state-value
和計(jì)算state-action value
有本質(zhì)的區(qū)別呀酸。之后的方法基本上都是基于state-action value
的。
Generalized Policy Iteration with Action-Value Function
??在給定某一個(gè)policy
之后琼梆,我們就可以去算性誉。以前的文章馬爾可夫決策過(guò)程與動(dòng)態(tài)規(guī)劃算的是
state value
,這里算的是state-action value
叮叹。得到這個(gè)之后我們就能夠依據(jù)
得到我們的策略艾栋。
Control Policy
??基于
value
我們具體怎么去做control policy
?就是我們具體怎么來(lái) choose action
蛉顽?
Example of Greedy Action Selection
??在Greedy Action
中每次都去選擇state-action value
最大的那一個(gè):
??但是這里有問(wèn)題蝗砾,就是當(dāng)你采樣到了一個(gè)動(dòng)作之后,拿到了reward
,你之后就不會(huì)去選擇探索其它的動(dòng)作了悼粮。
??The policy would be suboptimal if there is no exploration.
-Greedy Policy Exploration
??最簡(jiǎn)單的辦法就是讓這個(gè)policy
有一些隨機(jī)闲勺,或者稱(chēng)之為exploration
。于是就變成了:
- With probability
, choose the greedy action.
- With probability
, choose an action at random.
??于是在狀態(tài)下選擇動(dòng)作
的概率
可表示為如下形式:
-Greedy Policy Improvement
??那-Greedy Policy能不能往前推進(jìn)我們的
state value
呢扣猫?我們需要去證明一下:
-
Theorem:For any
-greedy policy
,the
-greedy policy
w.r.t
is an improvement, i.e.
菜循。
??其中表示
個(gè)數(shù),這里其實(shí)就是在證明申尤,用
得到的
state value
與之前的得到的
state value
是有所改進(jìn)的癌幕。上述公式中推導(dǎo)比較難懂的就是,這一步了昧穿。這里把:
??帶入到就會(huì)發(fā)現(xiàn)勺远,其實(shí)這也是個(gè)概率,一旦它是個(gè)概率时鸵,那么一定會(huì)小于等于
胶逢。這里也就證明了其實(shí)
-greedy 是做到了policy improvement 這一步。
Monte-Carlo Control
??一種比較經(jīng)典的Control
方法就是MC Control
:
??其算法也是大體分為兩步Policy evaluation
和Policy improvement
:
-
Policy evaluation: Monte-Carlo policy evaluation,
饰潜。
-
Policy improvement:
-greedy policy improvement初坠。
MC Control vs. TD Control
??MC Control
中看一整個(gè)episode
,然后estimate value
然后做更新彭雾,TD Control
只是看一小個(gè)片段進(jìn)行更新碟刺。
- Temporal-difference (TD) learning has several advantages over Monte-Carlo (MC) :
Lower variance
、Online
冠跷、Incomplete sequences
南誊。
On-Policy SARSA
??其算法流程主要分為以下4步:
- 在狀態(tài)
, 采取
action
;
- 環(huán)境反饋
reward
;
- 轉(zhuǎn)移到下一個(gè)
state
;
- 在
state
, 采取
action
。
??用SARSA
更新action-value functions
:
??SARSA
算法的整個(gè)流程如下所示:
??上述sarsa
算法需要注意state-action中的‘’都是基于
current policy
采樣出來(lái)的蜜托。SARSA
是一種非常典型的On-Policy
方法抄囚,但是Off-Policy
的算法往往更重要。
Off-Policy學(xué)習(xí)方式
??我們能否從 policy
采出來(lái)的數(shù)據(jù)
去學(xué)習(xí)策略
橄务?當(dāng)
這個(gè)算法就是
on policy
的幔托,因此off-policy
的算法都可以做on-policy
,其兼容性更強(qiáng)一點(diǎn)蜂挪。
為什么我們需要off-policy的學(xué)習(xí)方式?
??其實(shí)主要就是在數(shù)據(jù)利用上面會(huì)方便很多重挑,on-policy
的方法需要當(dāng)前智能體去采樣,然后學(xué)習(xí)一次之后智能體的策略就發(fā)生了改變棠涮,那這些數(shù)據(jù)就無(wú)法使用了谬哀。然而在現(xiàn)實(shí)生活中我們能夠拿到很多很好的數(shù)據(jù),是其他智能體所產(chǎn)生了严肪,為了很好地去利用這些數(shù)據(jù)史煎,我們需要off-poicy
的采樣方式谦屑。
- Learn from observing humans or other agents
??比如在自動(dòng)駕駛中,我們可以先學(xué)習(xí)一點(diǎn)人類(lèi)經(jīng)驗(yàn)數(shù)據(jù)篇梭,相當(dāng)于做個(gè)預(yù)訓(xùn)練氢橙。
- Re-use experience generated from old policies
??雖然是自己之前的數(shù)據(jù),但是由于現(xiàn)在的參數(shù)和之前的參數(shù)不一樣恬偷,所以off policy
的方法可以重復(fù)使用之前的訓(xùn)練數(shù)據(jù)悍手。
??強(qiáng)化學(xué)習(xí)需要的data
是非常大的,因?yàn)樗腥齻€(gè)自由度的分布函數(shù)袍患、
坦康、
。想要從數(shù)據(jù)中把這些分布關(guān)系給學(xué)到协怒,就需要大量地去采樣這些樣本涝焙,然后通過(guò)強(qiáng)化學(xué)習(xí)算法學(xué)到其中的關(guān)聯(lián)。
??因此使用之前的data
就比較重要了孕暇。
??還有一點(diǎn)就是商業(yè)上面就沒(méi)辦法使用當(dāng)前采樣出來(lái)的數(shù)據(jù)直接進(jìn)行訓(xùn)練。比如像淘寶用強(qiáng)化學(xué)習(xí)做的推薦系統(tǒng)赤兴。
Learn about optimal policy while following exploratory policy
Learn about multiple policies while following one policy
Importance Sampling
??那off-policy
怎么來(lái)做off policy
的learning
呢妖滔?通常的做法都是引入Importance Sampling
。Q
值的更新可表達(dá)為以下形式:
??我們是拿后面采樣出來(lái)的桶良,去更新前面采樣所得到的
座舍,前面采樣策略與后面采樣策略不一樣,那肯定就會(huì)有些問(wèn)題陨帆。這個(gè)時(shí)候重要性采樣就非常重要了曲秉。
??Importance Sampling can estimate the expectation of a different distribution :
??Re-weight each instance by 。
??這里把從分布中采樣的數(shù)據(jù)求期望疲牵,轉(zhuǎn)變成了從分布
中去采樣數(shù)據(jù)求期望承二。這里只是把每個(gè)數(shù)據(jù)的權(quán)重做了些許改變,因此在
Importance Sampling
里面我們往往也會(huì)去計(jì)算纲爸,甚至有機(jī)器學(xué)習(xí)專(zhuān)門(mén)去學(xué)習(xí)這個(gè)
,然后去做一個(gè)比較好的
Importance Sampling
。
??在機(jī)器學(xué)習(xí)里面晤郑,我們經(jīng)常會(huì)優(yōu)化這樣一個(gè)式子:
??但很多時(shí)候我們拿到的數(shù)據(jù)并不滿(mǎn)足分布泥技,而滿(mǎn)足
分布,因此做個(gè)重要性采樣就很好地解決這個(gè)問(wèn)題颓哮。
Importance Sampling for Off-Policy Monte-Carlo
??通過(guò)重要性采樣我們?nèi)匀恍枰ビ?jì)算值函數(shù)家妆。比如我們?nèi)绾问褂貌呗?img class="math-inline" src="https://math.jianshu.com/math?formula=%5Cmu" alt="\mu" mathimg="1">所獲得的return
去評(píng)估策略? 依據(jù)
Importance Sampling
我們可以weight return
,對(duì)于一個(gè)
episode
冕茅,
??Multiply importance ratio along with episode:
??表示在策略下會(huì)以更多或者更小的概率去看到
伤极,然后再以這個(gè)新的
去更新算法:
??當(dāng)為0的時(shí)候上述公式處理起來(lái)就會(huì)比較困難蛹找,但是往往這種情況出現(xiàn)地比較少,通常不給予考慮塑荒。重要性采樣所帶來(lái)的問(wèn)題就是多引入了一個(gè)變量熄赡,因此其方差會(huì)增加。
TD
算法相比較MC
算法會(huì)減少方差齿税,因此很自然的一個(gè)想法是:可以將TD
算法引入Importance Sampling
來(lái)減少方差彼硫。
Importance Sampling for Off-Policy TD
??將 Importance Sampling
用在TD
上面會(huì)更容易一點(diǎn),因?yàn)?code>TD算法只走一步凌箕。因此只有TD target
是在做importance sampling拧篮,so only need a single importance sampling correction :
??這種方式相比較于Monte-Carlo importance sampling
方差會(huì)大大降低,因?yàn)榇藭r(shí)需要在a single step
上保持similar
牵舱。
??上述importance sampling
過(guò)程是一個(gè)unbias
過(guò)程串绩,但是variance
可能特別大,因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=%5Cmu%5Cleft(a_%7Bt%7D%20%7C%20s_%7Bt%7D%5Cright)" alt="\mu\left(a_{t} | s_{t}\right)" mathimg="1">可能特別小芜壁,一除就變大了礁凡。
??因此在做off-policy
的時(shí)候,我們很少會(huì)用傳統(tǒng)的importance
的辦法慧妄,它雖然可以做顷牌,但是不做改進(jìn)的話(huà)還是不太好。
Q-Learning
??Q-Learning focus
在state-action value
上面塞淹,這一點(diǎn)具有特別深遠(yuǎn)的意義窟蓝。我們是在更新 這樣一個(gè)
state-action value function
,因?yàn)槿绻覀兏?img class="math-inline" src="https://math.jianshu.com/math?formula=V(s)" alt="V(s)" mathimg="1">的話(huà)饱普,它上來(lái)就需要策略运挫,。而如果更新的是
套耕,其實(shí)
take
這個(gè)action
跟policy
沒(méi)有關(guān)系谁帕,無(wú)論policy
是什么,我都會(huì)去更新箍铲,也就是
state
和
和
policy
是解耦合關(guān)系雇卷,之后環(huán)境給及時(shí)獎(jiǎng)勵(lì) 和下一個(gè)狀態(tài)
,這都是和環(huán)境有關(guān)的東西颠猴,我可以采樣关划,但跟
policy
沒(méi)關(guān)系,就不會(huì)像Importance sampling
那樣還需要除一下翘瓮。之后的不一樣可能會(huì)產(chǎn)生點(diǎn)區(qū)別贮折,前面的
是用
采樣出來(lái)的,還是
采樣出來(lái)的都沒(méi)有關(guān)系资盅。
??上面說(shuō)了這么多调榄,其實(shí)就是需要注意:No importance sampling is required (why?)
- The target policy
is greedy w.r.t.
:
- The behavior policy
is e.g.
-greedy policy w.r.t.
:
??因此Q-learning
的更新算法如下所示:
為什么 Q-learning 會(huì)被稱(chēng)作一種off-policy control方法?
- Learning from SARS generated by another policy
- The first action a and the corresponding reward rare from
- The next action
is picked by the target policy
踊赠。
??上述這么多就是為什么q-learning
是off policy
卻不用importance sampling
.
我的微信公眾號(hào)名稱(chēng):深度學(xué)習(xí)與先進(jìn)智能決策
微信公眾號(hào)ID:MultiAgent1024
公眾號(hào)介紹:主要研究分享深度學(xué)習(xí)、機(jī)器博弈每庆、強(qiáng)化學(xué)習(xí)等相關(guān)內(nèi)容筐带!期待您的關(guān)注,歡迎一起學(xué)習(xí)交流進(jìn)步缤灵!