1.蒙特卡洛
Monte-Carlo算法:
1.將agent放入環(huán)境的任意狀態(tài)
2.從這個(gè)狀態(tài)開始選擇action, 并進(jìn)入下一個(gè)狀態(tài)
3.重復(fù)第二步直到達(dá)到最終狀態(tài)
4.從最終狀態(tài)回溯捆探,計(jì)算每一個(gè)狀態(tài)的G值
5.重復(fù)1-4過程揍移,然后平均每一次的G值只损,最后得到的就是V值
關(guān)于G值:
第一步:根據(jù)策略使agent做出動(dòng)作并進(jìn)入下一動(dòng)作滑肉,直到到達(dá)最終狀態(tài)包各,需要記錄每一個(gè)狀態(tài)的轉(zhuǎn)移,得到獎(jiǎng)勵(lì)r
第二步:從最終狀態(tài)回溯靶庙,一遍一遍計(jì)算G值问畅。 G 等于上一狀態(tài)的G值(G‘)乘以一定的折扣(gamma)再加上r
G值就是從某個(gè)狀態(tài)到最終狀態(tài)的獎(jiǎng)勵(lì)總和
當(dāng)我們進(jìn)行多次實(shí)驗(yàn),會(huì)經(jīng)過某個(gè)狀態(tài)多次六荒,因此會(huì)有多個(gè)G值护姆,此時(shí)這個(gè)狀態(tài)的G值就是所有可能的G值的平均值,也就是我們的V值
以策略π2進(jìn)行g(shù)ame掏击,由于策略改變卵皂,經(jīng)過S的概率會(huì)發(fā)生變化,因此最終狀態(tài)的經(jīng)過次數(shù)就會(huì)不同
G就是V的更新目標(biāo)砚亭,關(guān)于MC的更新:
兩種方法:
2.G的逐漸逼近法:
不難看出灯变,雖然蒙特卡洛算法比動(dòng)態(tài)規(guī)劃的消耗少,并且不需要知道整個(gè)環(huán)境模型捅膘,但是每一次游戲都需要從頭執(zhí)行到尾添祸,再進(jìn)行回溯。如果最終狀態(tài)難以達(dá)到寻仗,則會(huì)需要很久才會(huì)更新G值刃泌。
MC的弊端:1. MC算法相對(duì)動(dòng)態(tài)規(guī)劃,會(huì)有點(diǎn)不那么準(zhǔn)愧沟。因?yàn)镸C每一次的路徑都是不一樣的蔬咬。 2. 如果環(huán)境的狀態(tài)空間非常大鲤遥,或者最終狀態(tài)只有非常小的概率達(dá)到沐寺。那么MC算法將會(huì)很難處理。
因此需要使用時(shí)序差分(TD)算法解決此問題盖奈。
2.時(shí)序差分(TD)算法
TD是對(duì)MC的改進(jìn)混坞,即agent走到第N步就可以開始回溯更新。
可以理解為走一步看一步钢坦,好比下山究孕,MC是直接從山頂下山,看看下山的路有多長(zhǎng)爹凹,而TD是先走一段厨诸,看看是否有路牌指示到下山還有多少距離,如果有禾酱,幾句把剛才的路加上路牌指示的到山腳的距離相加即可微酬。
在一開始绘趋,我們根本沒有路牌,所以也不知道到底到山腳有多遠(yuǎn)颗管。 但當(dāng)我們走很多次的時(shí)候陷遮,路牌系統(tǒng)就能慢慢建立起來。 例如第一次垦江,只有到了山腳帽馋,我才知道山腳前一站離山腳的的真實(shí)距離。于是我更新了山腳前一站的路牌比吭。第二次绽族,我在山腳前一站路就能看到路牌,所以我就可以更新山腳前一站的路牌了…一直到山頂衩藤,就這樣一直建立整座山的路牌系統(tǒng)项秉。
關(guān)于TD的更新公式:
在TD,我們只不過把更新目標(biāo)從G慷彤,改成r+gamma*V
reference:
1.Deep Reinforcement Learning: A Brief Survey
https://ieeexplore.ieee.org/abstract/document/8103164
2.https://zhuanlan.zhihu.com/p/109217883
3.https://zhuanlan.zhihu.com/p/25580624
4.https://omarsbrain.wordpress.com/2010/01/22/bootstrapping-and-artificial-intelligence/
5.https://blog.csdn.net/qq_42715079/article/details/117782272