基于Value的強(qiáng)化學(xué)習(xí)算法

在文章強(qiáng)化學(xué)習(xí)與馬爾可夫決策中轨香,介紹了使用馬爾可夫決策模型對(duì)強(qiáng)化學(xué)習(xí)的過程進(jìn)行建模显歧,本篇文章將介紹基于這一模型而引出的一些強(qiáng)化學(xué)習(xí)的經(jīng)典算法仪或。

Q-learning

Q-learning是強(qiáng)化學(xué)習(xí)的經(jīng)典算法之一,它是一個(gè)value-based算法士骤,同時(shí)也是一個(gè)model-free的算法范删。這里的Q指的是動(dòng)作價(jià)值,即當(dāng)前狀態(tài)s下敦间,通過策略\pi采取動(dòng)作a之后瓶逃,能夠獲得的獎(jiǎng)勵(lì)r

算法原理

該算法的主要思想很簡(jiǎn)單廓块。假設(shè)強(qiáng)化學(xué)習(xí)過程中所有狀態(tài)的集合為S厢绝,動(dòng)作空間為A。首先建立一張Q值表带猴,記錄強(qiáng)化學(xué)習(xí)過程中每一個(gè)時(shí)刻t的狀態(tài)s_t\epsilon S下昔汉,采取不同的動(dòng)作a_i\epsilon A的收益。一張Q值表的示例如下:

state a1 a2
s1 q(s1,a1) q(s1,a2)
s2 q(s2,a1) q(s2,a2)
s3 q(s3,a1) q(s3,a2)

之后,根據(jù)這一張Q值表來選取能夠獲得最大的收益的動(dòng)作靶病,一般是通過\epsilon-greedy的方式選取當(dāng)前狀態(tài)下会通,Q值最大的動(dòng)作。

Q-learning的整個(gè)迭代過程實(shí)際上就是去更新這張Q值表娄周,當(dāng)Q值表收斂時(shí)涕侈,通過\epsilon-greedy選取的Q值就是最優(yōu)動(dòng)作價(jià)值函數(shù)q_*(s,a),其對(duì)應(yīng)的策略就是最優(yōu)策略\pi_*(a|s)煤辨。

這里需要注意的是裳涛,由于Q-learning是model-free的算法,因此不用考慮環(huán)境的狀態(tài)轉(zhuǎn)移模型众辨,也就不用關(guān)心狀態(tài)價(jià)值函數(shù)v_\pi(s)端三。

Q-learning是使用時(shí)序差分TD來更新Q值表的,時(shí)序差分的更新公式如下:
Q(S,A)+\alpha(R+\gamma\max_aQ(S',a)-Q(S,A))
其中R+\gamma\max_aQ(S',a)表示TD目標(biāo)鹃彻,R+\gamma\max_aQ(S',a)-Q(S,A)是TD誤差郊闯。

算法流程

image

隨機(jī)初始化所有的狀態(tài)S和動(dòng)作對(duì)應(yīng)的價(jià)值??。 對(duì)于終止?fàn)顟B(tài)其??值初始化為0蛛株。然后執(zhí)行下面的流程团赁,迭代T次。

  1. 初始化S為當(dāng)前狀態(tài)序列的第一個(gè)狀態(tài)谨履。

  2. \epsilon-greedy在當(dāng)前狀態(tài)S選擇出動(dòng)作A然痊。

  3. 在狀態(tài)S執(zhí)行當(dāng)前動(dòng)作A,得到新狀態(tài)S'和獎(jiǎng)勵(lì)R屉符。

  4. 更新價(jià)值函數(shù)Q(S,A):
    Q(S,A)+\alpha(R+\gamma\max_aQ(S',a)-Q(S,A))

  5. S=S'剧浸;A=A'

  6. 如果S是終止?fàn)顟B(tài),當(dāng)前輪迭代完畢矗钟,否則轉(zhuǎn)到步驟2唆香。

SARSA

SARSA和Q-learning非常相似,除了價(jià)值函數(shù)的更新方式吨艇,其他都是一模一樣躬它。其算法流程如下:

image
  1. 初始化S為當(dāng)前狀態(tài)序列的第一個(gè)狀態(tài)。

  2. \epsilon-greedy在當(dāng)前狀態(tài)S選擇出動(dòng)作A东涡。

  3. 在狀態(tài)S執(zhí)行當(dāng)前動(dòng)作A冯吓,得到新狀態(tài)S'和獎(jiǎng)勵(lì)R

  4. \epsilon-greedy在新狀態(tài)S'選擇出動(dòng)作A'

  5. 更新價(jià)值函數(shù)Q(S,A):
    Q(S,A)+\alpha(R+\gamma Q(S',A')-Q(S,A))

  6. S=S'疮跑;A=A'

  7. 如果S是終止?fàn)顟B(tài)组贺,當(dāng)前輪迭代完畢,否則轉(zhuǎn)到步驟2祖娘。

兩者的不同之處是上述第4步和第5步失尖。

Q-learning在根據(jù)當(dāng)前狀態(tài)S下執(zhí)行動(dòng)作A之后,直接用貪婪算法選擇在新狀態(tài)S'下,回報(bào)最大的動(dòng)作a對(duì)應(yīng)的Q值來更新Q值表掀潮,但是這個(gè)動(dòng)作a沒有被立刻執(zhí)行菇夸,真正在新狀態(tài)S'下執(zhí)行的動(dòng)作是根據(jù)更新之后的Q值表選擇出來的。

反觀SARSA仪吧,使用的是\epsilon-greedy從新狀態(tài)S'下選擇出動(dòng)作A'庄新,再更新完Q值表之后,SARSA在下一輪迭代中更是直接去執(zhí)行了動(dòng)作A'薯鼠,基本上是“說到做到”摄咆。因此,兩者在新狀態(tài)S下得到的Q值會(huì)有一些差別人断。

由于SARSA這種“說到做到”的特性,因此被稱為在線學(xué)習(xí)算法朝蜘,而Q-learning這一類的算法恶迈,被稱為離線學(xué)習(xí)算法。

Sarsa(lambda)

Sarsa(lambda)是Sarsa的增強(qiáng)版谱醇。與普通的Sarsa不同暇仲,Sarsa(lambda)在更新完當(dāng)前狀態(tài)SQ值之后,還會(huì)將之前所走過的所有狀態(tài)的Q值一起給更新了副渴。也就是說奈附,Sarsa(lambda)不但思考糾正當(dāng)前狀態(tài)的選擇,還對(duì)以往的記憶狀態(tài)進(jìn)行反思糾正煮剧。因此斥滤,Sarsa(lambda)的收斂速度,比普通的Sarsa快勉盅。其算法流程如下:

image

其中E(S,A)是一個(gè)矩陣佑颇,用來保存其經(jīng)歷過的所有狀態(tài)的信息。參數(shù)\lambda是一個(gè)值為[0,1]的衰減值草娜,通過\lambda對(duì)矩陣E(S,A)進(jìn)行更新挑胸,增強(qiáng)離當(dāng)前狀態(tài)比較近的記憶,疏遠(yuǎn)那些太久之前的記憶宰闰。

由于Sarsa(lambda)會(huì)保存狀態(tài)記憶茬贵,因此除了提高收斂速度之外,還可以解決在訓(xùn)練過程中移袍,智能體反復(fù)執(zhí)行無意義動(dòng)作的問題解藻,例如老鼠在尋找奶酪的時(shí)候,繞著柱子轉(zhuǎn)圈圈的行為就沒什么意義了葡盗。怎么解決呢舆逃,在E(s,a)←E(s,a)+1這一步之前,直接將矩陣E(S,A)中這個(gè)狀態(tài)s對(duì)應(yīng)的行置為0即可。

最后路狮,無論是Q-learning還是Sarsa虫啥,都是基于Q值表去解決強(qiáng)化學(xué)習(xí)的問題,因此他們都是基于value的方法奄妨。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末涂籽,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子砸抛,更是在濱河造成了極大的恐慌评雌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件直焙,死亡現(xiàn)場(chǎng)離奇詭異景东,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)奔誓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門斤吐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人厨喂,你說我怎么就攤上這事和措。” “怎么了蜕煌?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵派阱,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我斜纪,道長(zhǎng)贫母,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任盒刚,我火速辦了婚禮颁独,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘伪冰。我一直安慰自己誓酒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布贮聂。 她就那樣靜靜地躺著靠柑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吓懈。 梳的紋絲不亂的頭發(fā)上歼冰,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音耻警,去河邊找鬼隔嫡。 笑死甸怕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的腮恩。 我是一名探鬼主播梢杭,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼秸滴!你這毒婦竟也來了武契?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤荡含,失蹤者是張志新(化名)和其女友劉穎咒唆,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體释液,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡全释,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了误债。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浸船。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖找前,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情判族,我是刑警寧澤躺盛,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站形帮,受9級(jí)特大地震影響槽惫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辩撑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一界斜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧合冀,春花似錦各薇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至棕叫,卻和暖如春林螃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背俺泣。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工疗认, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留完残,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓横漏,卻偏偏與公主長(zhǎng)得像谨设,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绊茧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容