日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

增强学习(五)----- 时间差分学习(Q learning, Sarsa learning)

發(fā)布時(shí)間:2025/4/5 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 增强学习(五)----- 时间差分学习(Q learning, Sarsa learning) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

接下來我們回顧一下動(dòng)態(tài)規(guī)劃算法(DP)和蒙特卡羅方法(MC)的特點(diǎn),對(duì)于動(dòng)態(tài)規(guī)劃算法有如下特性:

  • 需要環(huán)境模型,即狀態(tài)轉(zhuǎn)移概率PsaPsa
  • 狀態(tài)值函數(shù)的估計(jì)是自舉的(bootstrapping),即當(dāng)前狀態(tài)值函數(shù)的更新依賴于已知的其他狀態(tài)值函數(shù)。

相對(duì)的,蒙特卡羅方法的特點(diǎn)則有:

  • 可以從經(jīng)驗(yàn)中學(xué)習(xí)不需要環(huán)境模型
  • 狀態(tài)值函數(shù)的估計(jì)是相互獨(dú)立的
  • 只能用于episode tasks

而我們希望的算法是這樣的:

  • 不需要環(huán)境模型
  • 它不局限于episode task,可以用于連續(xù)的任務(wù)

本文介紹的時(shí)間差分學(xué)習(xí)(Temporal-Difference learning, TD learning)正是具備了上述特性的算法,它結(jié)合了DP和MC,并兼具兩種算法的優(yōu)點(diǎn)。

TD Learing思想

在介紹TD learning之前,我們先引入如下簡(jiǎn)單的蒙特卡羅算法,我們稱為constant-αα?MC,它的狀態(tài)值函數(shù)更新公式如下:

?

V(st)←V(st)+α[Rt?V(st)](1)(1)V(st)←V(st)+α[Rt?V(st)]


其中RtRt是每個(gè)episode結(jié)束后獲得的實(shí)際累積回報(bào),αα是學(xué)習(xí)率,這個(gè)式子的直觀的理解就是用實(shí)際累積回報(bào)RtRt作為狀態(tài)值函數(shù)V(st)V(st)的估計(jì)值。具體做法是對(duì)每個(gè)episode,考察實(shí)驗(yàn)中stst的實(shí)際累積回報(bào)RtRt和當(dāng)前估計(jì)V(st)V(st)的偏差值,并用該偏差值乘以學(xué)習(xí)率來更新得到V(St)V(St)的新估值。

現(xiàn)在我們將公式修改如下,把RtRt換成rt+1+γV(st+1)rt+1+γV(st+1),就得到了TD(0)的狀態(tài)值函數(shù)更新公式:

?

V(st)←V(st)+α[rt+1+γV(st+1)?V(st)](2)(2)V(st)←V(st)+α[rt+1+γV(st+1)?V(st)]

為什么修改成這種形式呢,我們回憶一下狀態(tài)值函數(shù)的定義:

?

Vπ(s)=Eπ[r(s′|s,a)+γVπ(s′)](3)(3)Vπ(s)=Eπ[r(s′|s,a)+γVπ(s′)]


容易發(fā)現(xiàn)這其實(shí)是根據(jù)(3)的形式,利用真實(shí)的立即回報(bào)rt+1rt+1和下個(gè)狀態(tài)的值函數(shù)V(st+1)V(st+1)來更新V(st)V(st),這種就方式就稱為時(shí)間差分(temporal difference)。由于我們沒有狀態(tài)轉(zhuǎn)移概率,所以要利用多次實(shí)驗(yàn)來得到期望狀態(tài)值函數(shù)估值。類似MC方法,在足夠多的實(shí)驗(yàn)后,狀態(tài)值函數(shù)的估計(jì)是能夠收斂于真實(shí)值的。

那么MC和TD(0)的更新公式的有何不同呢?我們舉個(gè)例子,假設(shè)有以下8個(gè)episode, 其中A-0表示經(jīng)過狀態(tài)A后獲得了回報(bào)0:

indexsamples
episode 1A-0, B-0
episode 2B-1
episode 3B-1
episode 4B-1
episode 5B-1
episode 6B-1
episode 7B-1
episode 8B-0

首先我們使用constant-αα?MC方法估計(jì)狀態(tài)A的值函數(shù),其結(jié)果是V(A)=0V(A)=0,這是因?yàn)闋顟B(tài)A只在episode 1出現(xiàn)了一次,且其累計(jì)回報(bào)為0。

現(xiàn)在我們使用TD(0)的更新公式,簡(jiǎn)單起見取λ=1λ=1,我們可以得到V(A)=0.75V(A)=0.75。這個(gè)結(jié)果是如何計(jì)算的呢? 首先,狀態(tài)B的值函數(shù)是容易求得的,B作為終止?fàn)顟B(tài),獲得回報(bào)1的概率是75%,因此V(B)=0.75V(B)=0.75。接著從數(shù)據(jù)中我們可以得到狀態(tài)A轉(zhuǎn)移到狀態(tài)B的概率是100%并且獲得的回報(bào)為0。根據(jù)公式(2)可以得到V(A)←V(A)+α[0+λV(B)?V(A)]V(A)←V(A)+α[0+λV(B)?V(A)],可見在只有V(A)=λV(B)=0.75V(A)=λV(B)=0.75的時(shí)候,式(2)收斂。對(duì)這個(gè)例子,可以作圖表示:

可見式(2)由于能夠利用其它狀態(tài)的估計(jì)值,其得到的結(jié)果更加合理,并且由于不需要等到任務(wù)結(jié)束就能更新估值,也就不再局限于episode task了。此外,實(shí)驗(yàn)表明TD(0)從收斂速度上也顯著優(yōu)于MC方法。

將式(2)作為狀態(tài)值函數(shù)的估計(jì)公式后,前面文章中介紹的策略估計(jì)算法就變成了如下形式,這個(gè)算法稱為TD prediction:

輸入:待估計(jì)的策略ππ
任意初始化所有V(s)V(s),(e.g.,V(s)=0,?s∈s+e.g.,V(s)=0,?s∈s+)
Repeat(對(duì)所有episode):
  初始化狀態(tài)?ss
  Repeat(對(duì)每步狀態(tài)轉(zhuǎn)移):
    a←a←策略ππ下狀態(tài)ss采取的動(dòng)作
    采取動(dòng)作aa,觀察回報(bào)rr,和下一個(gè)狀態(tài)s′s′
    V(s)←V(s)+α[r+λV(s′)?V(s)]V(s)←V(s)+α[r+λV(s′)?V(s)]
    s←s′s←s′
  Until?stst?is terminal
 Until 所有V(s)V(s)收斂
輸出Vπ(s)Vπ(s)

Sarsa算法

現(xiàn)在我們利用TD prediction組成新的強(qiáng)化學(xué)習(xí)算法,用到?jīng)Q策/控制問題中。在這里,強(qiáng)化學(xué)習(xí)算法可以分為在策略(on-policy)離策略(off-policy)兩類。首先要介紹的sarsa算法屬于on-policy算法。
與前面DP方法稍微有些區(qū)別的是,sarsa算法估計(jì)的是動(dòng)作值函數(shù)(Q函數(shù))而非狀態(tài)值函數(shù)。也就是說,我們估計(jì)的是策略ππ下,任意狀態(tài)ss上所有可執(zhí)行的動(dòng)作a的動(dòng)作值函數(shù)Qπ(s,a)Qπ(s,a),Q函數(shù)同樣可以利用TD Prediction算法估計(jì)。如下就是一個(gè)狀態(tài)-動(dòng)作對(duì)序列的片段及相應(yīng)的回報(bào)值。

給出sarsa的動(dòng)作值函數(shù)更新公式如下:

?

Q(st,at)←Q(st,at)+α[rt+1+λQ(st+1,at+1)?Q(st,at)](4)(4)Q(st,at)←Q(st,at)+α[rt+1+λQ(st+1,at+1)?Q(st,at)]

可見式(4)與式(2)的形式基本一致。需要注意的是,對(duì)于每個(gè)非終止的狀態(tài)stst,在到達(dá)下個(gè)狀態(tài)st+1st+1后,都可以利用上述公式更新Q(st,At)Q(st,At),而如果stst是終止?fàn)顟B(tài),則要令Q(st+1=0,at+1)Q(st+1=0,at+1)。由于動(dòng)作值函數(shù)的每次更新都與(st,at,rt+1,st+1,at+1)(st,at,rt+1,st+1,at+1)相關(guān),因此算法被命名為sarsa算法。sarsa算法的完整流程圖如下:

算法最終得到所有狀態(tài)-動(dòng)作對(duì)的Q函數(shù),并根據(jù)Q函數(shù)輸出最優(yōu)策略ππ

Q-learning

在sarsa算法中,選擇動(dòng)作時(shí)遵循的策略更新動(dòng)作值函數(shù)時(shí)遵循的策略是相同的,即??greedy??greedy的策略,而在接下來介紹的Q-learning中,動(dòng)作值函數(shù)更新則不同于選取動(dòng)作時(shí)遵循的策略,這種方式稱為離策略(Off-Policy)。Q-learning的動(dòng)作值函數(shù)更新公式如下:

?

Q(st,at)←Q(st,at)+α[rt+1+λmaxaQ(st+1,a)?Q(st,at)](5)(5)Q(st,at)←Q(st,at)+α[rt+1+λmaxaQ(st+1,a)?Q(st,at)]


可以看到,Q-learning與sarsa算法最大的不同在于更新Q值的時(shí)候,直接使用了最大的Q(st+1,a)Q(st+1,a)值——相當(dāng)于采用了Q(st+1,a)Q(st+1,a)值最大的動(dòng)作,并且與當(dāng)前執(zhí)行的策略,即選取動(dòng)作atat時(shí)采用的策略無關(guān)。?Off-Policy方式簡(jiǎn)化了證明算法分析和收斂性證明的難度,使得它的收斂性很早就得到了證明。Q-learning的完整流程圖如下:

小結(jié)

本篇介紹了TD方法思想和TD(0),Q(0),Sarsa(0)算法。TD方法結(jié)合了蒙特卡羅方法和動(dòng)態(tài)規(guī)劃的優(yōu)點(diǎn),能夠應(yīng)用于無模型、持續(xù)進(jìn)行的任務(wù),并擁有優(yōu)秀的性能,因而得到了很好的發(fā)展,其中Q-learning更是成為了強(qiáng)化學(xué)習(xí)中應(yīng)用最廣泛的方法。在下一篇中,我們將引入資格跡(Eligibility Traces)提高算法性能,結(jié)合Eligibility Traces后,我們可以得到Q(λ),Sarsa(λ)Q(λ),Sarsa(λ)等算法

總結(jié)

以上是生活随笔為你收集整理的增强学习(五)----- 时间差分学习(Q learning, Sarsa learning)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。