论文笔记之Estimator Varience in RL
這是一篇1997年由Pendrith發(fā)表在AAAI上的一篇比較久遠的文章,讓我去看這篇論文的原因是在TD3論文中出現(xiàn)了這篇論文的reference,因此我就找了這篇文章。主要為了探究在RL中,值函數(shù)估計對bias、varience的影響。這篇文章主要是針對Varience而言的。
文章總體思路不難,觀點也很明確,主要得出了3個結(jié)論:
Estimator Varience in RL:Theoretical Problems and Preatical Solutions
- Abstract
- Introduction
- RL as On-line Dynamic Programming
- Q-learning as on-line value iteration
- CTR Bias and Varience
- CTR Bias and Varience in NMDPs
- β\betaβ:Varience versus Adaptability
- The ccBeta Algorithm
- Experimental Result
- Simulation experiment 1
- Simulation experiment 2
- Experiment 3:Learning to Walk
- The RL algorithms
- Conclusions
- 學(xué)習(xí)中的不足之處:
Abstract
Introduction
RL as On-line Dynamic Programming
這部分主要交代了RL基于MDP的相關(guān)背景:即<S,A,R,P,E>,以及RL的目的是為了最大化累計獎賞。這部分略。
Q-learning as on-line value iteration
這部分主要介紹Q-learning算法:一種基于DP中值迭代的model-free算法。主要有one-step和n-step兩種形式。
Q-learning算法的更新基于"delta rule":
Q(st,at)←Q(st,at)+βΔtΔt=rt(1)?Q(st,at)rt(1)=rt+γmax?aQ(st+1,a)Q(s_t,a_t) \gets Q(s_t,a_t) + \beta \Delta_t \\\Delta_t = r_t^{(1)} - Q(s_t,a_t) \\r_t^{(1)} = r_t + \gamma \mathop{\max_a}Q(s_{t+1},a) Q(st?,at?)←Q(st?,at?)+βΔt?Δt?=rt(1)??Q(st?,at?)rt(1)?=rt?+γamax?Q(st+1?,a)
(其實這就是一種軟更新的形式,β\betaβ就是我們所說的學(xué)習(xí)率,一般用α\alphaα表示,但文章是用β\betaβ表示的)
其中,rt(1)r_t^{(1)}rt(1)?被稱為1-step corrected truncated return,簡稱1-stepCTR,也就是我們的TD目標(biāo)值。
單步CTR轉(zhuǎn)變成n步CTR:
rt(n)=rt[n]+γnmax?aQ(st+n,a)rt[n]=∑i=0n?1γirt+ir_t^{(n)} = r_t^{[n]} + \gamma ^n \mathop{\max_a}Q(s_{t+n},a) \\r_t^{[n]} = \mathop{\sum_{i=0}^{n-1}}\gamma^ir_{t+i} rt(n)?=rt[n]?+γnamax?Q(st+n?,a)rt[n]?=i=0∑n?1?γirt+i?
其中rt[n]r_t^{[n]}rt[n]?被稱為uncorrected n_step truncated return,簡稱UTR。
此外,后文出現(xiàn)的CTR的長度n代表著n-step的TD算法,比如TD(λ\lambdaλ)。
CTR Bias and Varience
這一節(jié)就是摘要的第二部分
在這篇文章發(fā)表之前呢,廣為流傳的平衡bias和varience問題是通過調(diào)節(jié)CTR的長度來實現(xiàn)的:CTR越短,比如最短的是1-step算法,其方差越小,偏差越大;CTR越長,比如最長的是MC算法,其方差越大,因為實時獎勵的方差是很大的,偏差越小,因為MC是Q真值的無偏估計。
但是作者指出,這個idea是錯誤的。接下來作者通過2個實驗去證明了其錯誤性。
2個思路:
實驗如下:
①:對于思路1:
如上圖所示,這是一個4狀態(tài)1動作,獎勵為0的MDP環(huán)境。
我們可以借用RL算法中的TD算法來理解:
對于較短的CTR,選擇單步的TD算法,給出更新公式:
Q(st,at)=Q(st,at)+β(r+γQ(st+1,at+1)?Q(st,at))Q(s_t,a_t) = Q(s_t,a_t) + \beta(r+ \gamma Q(s_{t+1},a_{t+1})-Q(s_t,a_t)) Q(st?,at?)=Q(st?,at?)+β(r+γQ(st+1?,at+1?)?Q(st?,at?))
我們考察Q(s1,a0),剛初始化的時候,狀態(tài)s1的動作值函數(shù)取決于狀態(tài)s2或s3的動作值函數(shù),由于這兩個值本身自己也是估計值,因此是不準(zhǔn)確,故高偏差問題是顯然的。至于方差問題,如果S2、S3的Q值相差不小,那么就會直接導(dǎo)致Q(s1,a0)的不穩(wěn)定,即較大的方差問題。
因此,在初始時期,較短的CTR會出現(xiàn)高方差+高偏差的情況。
同理,對于較長的CTR,作者直接選用2-step,這里我們同樣用TD算法來理解,其實2-step在上圖中就相當(dāng)于MC算法了。
給出更新公式:
Q(st,at)=Q(st,at)+β(r1+γr2+0?Q(st,at))Q(s_t,a_t) = Q(s_t,a_t) + \beta (r1+\gamma r2+0-Q(s_t,a_t)) Q(st?,at?)=Q(st?,at?)+β(r1+γr2+0?Q(st?,at?))
首先,TD目標(biāo)值本身就是GtG_tGt?的形式,自然是無偏的,本來獎勵r是高方差的,但是由于實時獎勵為0,因此直接0方差。
因此,較長的CTR也會出現(xiàn)低方差+低偏差的情況。
最后作者指出:
即:
i<j?rt[i]≤rt[j]?var[rt(i)]≤var[rt(j)]i<j \Rightarrow r_t^{[i]}\leq r_t^{[j]} \Rightarrow var[r_t^{(i)}] \leq var[r_t^{(j)}] i<j?rt[i]?≤rt[j]??var[rt(i)?]≤var[rt(j)?]
2.對于bias/varience的trade-off是沒有具體設(shè)計方式的,也就是說對于n-step算法,n的取值是沒有標(biāo)準(zhǔn)的策略。
②:對于思路2:
CTR Bias and Varience in NMDPs
作者設(shè)計了一個非NMDPs的環(huán)境,原理也很簡單,就是不符合馬爾科夫性質(zhì)就行(指當(dāng)前狀態(tài)只取決于上個狀態(tài),而與過去無關(guān))。
NMDPs如上圖所示:
R(A∣0A|0A∣0)=0
R(A∣1A|1A∣1)=0
R(B∣0B|0B∣0)=0(當(dāng)狀態(tài)A執(zhí)行動作0)
R(B∣0B|0B∣0)=1(當(dāng)狀態(tài)A執(zhí)行動作1)
因為主要研究MDP環(huán)境,中間的具體分析見原文,直接給出結(jié)論:
在NMDPs中,作者發(fā)現(xiàn)1-step CTR的方差比n-step CTR的方差還要大。
總結(jié):綜上2個實驗所述,CTR的長度(或者說超參數(shù)λ\lambdaλ的選擇)不能作為平衡bias和varience的方式,因此不能根據(jù)CTR的長度來解決高方差問題,也就是這個說法是錯誤的。
那么如何解決高方差問題呢?就是接下去作者引出的ccBeta算法,也是我認(rèn)為這篇文章最有價值的地方。
β\betaβ:Varience versus Adaptability
在RL學(xué)習(xí)中,學(xué)習(xí)率是一個很重要的超參數(shù),現(xiàn)在普遍的做法是窮舉比如10個值,通過不斷試錯來找到使Agent性能最佳的值,但是這種做法是很耗時的。
通常的選擇方案是:在環(huán)境適應(yīng)力(fast adaptation)和低方差的平衡中選擇。一般而言,環(huán)境適應(yīng)力越強,意味著學(xué)習(xí)率β\betaβ越大,更新快,學(xué)習(xí)速率高;低方差,意味著β\betaβ越小,比如Q-learning中,本來剛開始大家的Q值都是不準(zhǔn)確的,這時候你學(xué)習(xí)率太大,反而會造成值更新的不穩(wěn)定,方差就會很大。
(適應(yīng)力就是比如某個穩(wěn)定的環(huán)境下,Agent的值函數(shù)收斂至穩(wěn)定的值,當(dāng)環(huán)境突然變化,Agent的值函數(shù)收斂至另一個穩(wěn)定值的速度有多快。其就是學(xué)習(xí)速率)
作者給出了當(dāng)下2種常見的學(xué)習(xí)率處理方案以及本文提出的ccBeta算法:
βi=1i∑i=1∞βi=∞,and∑i=1∞βi2<∞\beta_i=\frac{1}{i} \\\mathop{\sum_{i=1}^\infty}\beta_i=\infty,and \mathop{\sum_{i=1}^\infty}\beta^2_i<\infty βi?=i1?i=1∑∞?βi?=∞,andi=1∑∞?βi2?<∞
(這就是隨機收斂定理)
對于衰減的β\betaβ:
根據(jù)收斂定理,這個β\betaβ可以使得RL算法最終收斂,也就是能較不錯的減少方差。但是其不適用于不穩(wěn)定的環(huán)境,比如從環(huán)境中獲取的return經(jīng)常會發(fā)生變動,環(huán)境中會有噪聲等。對于穩(wěn)定的環(huán)境,這是一種最佳的算法,甚至表現(xiàn)的比ccBeta更好,但是對于變化不穩(wěn)定的環(huán)境,會導(dǎo)致算法的適應(yīng)力變?nèi)?#xff0c;值函數(shù)的更新會很慢。至于變慢的原因,在后面實驗2中會有解釋。
對于固定的β\betaβ:
與衰減的β\betaβ不同,它可以適應(yīng)變化的環(huán)境,對環(huán)境變化敏感,即環(huán)境發(fā)生改變,他可以立即反應(yīng)過來,較快的更新值函數(shù)。但是收斂性比穩(wěn)定環(huán)境中差一些,特別是在隨機策略下的環(huán)境中或有噪聲的環(huán)境下收斂效果更差。在這種環(huán)境下,固定β\betaβ較差的收斂性會導(dǎo)致學(xué)習(xí)不穩(wěn)定。其在學(xué)習(xí)速率和降低方差之間的trade-off較難實現(xiàn),因為學(xué)習(xí)率高的話,其方差都會較大。
Note:
①:不要將隨機環(huán)境下的探索率?\epsilon?和學(xué)習(xí)率搞混了。
②:在隨機環(huán)境或者噪聲環(huán)境中收斂效果差主要是因為,比如說在暫時穩(wěn)定的環(huán)境中,算法已經(jīng)收斂了,TSE很小。這時候,環(huán)境突然地變化使得殘差中的真值需要重新分布,故算法需要重新進行收斂,這樣的話又會產(chǎn)生新的error,使得總體的error增大。在下面的實驗二中也會論證這一點。
那就是ccBeta!
The ccBeta Algorithm
ccBeta算法是針對“delta-rule”而言的:
Δi←zi?Qi?1Qi←Qi?1+βiΔi\Delta_i \gets z_i-Q_{i-1} \\Q_i \gets Q_{i-1} +\beta_i\Delta_i Δi?←zi??Qi?1?Qi?←Qi?1?+βi?Δi?
其中,ziz_izi?是第i個step QiQ_iQi?更新的目標(biāo)值,Δi\Delta_iΔi?是第i個step的error值。
ccBeta的原理就是根據(jù)是否序列相關(guān)(自相關(guān))來調(diào)整β\betaβ。具體如下:
假設(shè)ziz_izi?與Qi?1Q_{i-1}Qi?1?可以由一條曲線來擬合。另Δi\Delta_iΔi?為第i個step的殘差項。
不能過大,否則會造成值函數(shù)的更新不穩(wěn)定,即方差會很大,因此需要減小β\betaβ來使得方差盡可能的小。
接下來作者給出ccBeta算法的按指數(shù)方式加權(quán)的自適應(yīng)系數(shù)ccicc_icci?以及β\betaβ的設(shè)置
sum_square_erri←K?sum_square_erri?1+Δi2sum_producti←K?sum_producti?1+ΔiΔi?1cci←sum_productisum_square_erri?sum_square_erri?1sum\_square\_err_i\gets K*sum\_square\_err_{i-1}+\Delta_i^2 \\sum\_product_i \gets K*sum\_product_{i-1}+\Delta_i\Delta_{i-1} \\cc_i\gets \frac{sum\_product_i}{\sqrt{sum\_square\_err_i*sum\_square\_err_{i-1}}} sum_square_erri?←K?sum_square_erri?1?+Δi2?sum_producti?←K?sum_producti?1?+Δi?Δi?1?cci?←sum_square_erri??sum_square_erri?1??sum_producti??
Note:
sum_square_err和sum_product的初始值都是0,為了避免ccicc_icci?出現(xiàn)inf,令這種情況下cci=1cc_i=1cci?=1。
K是一個0-1之間的數(shù),這樣設(shè)置的好處在于:首先2個sum值都有上限,這是防止訓(xùn)練到后面sum值越來越大導(dǎo)致系數(shù)溢出。其次自相關(guān)系數(shù)會更加關(guān)注偏袒于離當(dāng)前時間點近的error值,越是時間上較早的Δ\DeltaΔ值,其Δ\DeltaΔ值一般越不準(zhǔn)確,通過K的衰減早期的Δ\DeltaΔ就變得越來越?jīng)]影響力(這有點像被γ\gammaγ衰減的累計獎勵,但它衰減的是未來的)。關(guān)注當(dāng)前遺忘過去的好處在于對于不穩(wěn)定的環(huán)境(或者說noisy環(huán)境)Agent的適應(yīng)力更強。也就是說,當(dāng)新環(huán)境出現(xiàn)時,舊環(huán)境中的Δi\Delta_iΔi?相對新環(huán)境而言也是不準(zhǔn)確,應(yīng)該給予衰減,減小其參考權(quán)重。
對于Δi\Delta_iΔi?項,作者提出了一種更為魯棒的變體:sgn(Δi)sgn(\Delta_i)sgn(Δi?)。這么做的好處在于經(jīng)過階躍函數(shù)處理的Δ\DeltaΔ在noisy環(huán)境中的表現(xiàn)更加好。作者給出的理由如下:
作者給出K=0.9是最佳實踐參數(shù)。
下面是ccicc_icci?導(dǎo)出βi\beta_iβi?的偽代碼以及折線圖:
if(cci>0):βi←cci?MAX_BETAelse:βi←0if(βi<MIN_BETA):βi←MIN_BETA\\if(cc_i>0):\beta_i\gets cc_i*MAX\_BETA \\else:\beta_i\gets 0 \\if( \beta_i<MIN\_BETA):\beta_i\gets MIN\_BETA if(cci?>0):βi?←cci??MAX_BETAelse:βi?←0if(βi?<MIN_BETA):βi?←MIN_BETA
從上述關(guān)系可知:
接下來作者會進行2個實驗來證明三種β\betaβ設(shè)置的對比
Experimental Result
相關(guān)設(shè)置:
K=0.9
error選擇sgn(Δi)sgn(\Delta_i)sgn(Δi?)
自相關(guān)系數(shù)選擇ccicc_icci?
MAX_BETA=1.0
MIN_BETA=0.01
Simulation experiment 1
這次仿真,作者安排了6組實驗,每一組實驗都是跟蹤一個在以[-0.25,+0.25]為波動上限,在0值附近上下波動(即信號均值為0)的一個信號10000個steps,并重復(fù)進行n次,檢測指標(biāo)是TSE(可用來衡量收斂特性)以及std標(biāo)準(zhǔn)差。實驗的目的是為了得出學(xué)習(xí)率的設(shè)置對估計error和估計方差的影響。實驗結(jié)果如下:
從實驗結(jié)果我們可以得出:
Simulation experiment 2
這個仿真實驗的信號和實驗1相同,但是在400步之后加入了noisy,將輸入信號的均值從0提升到了1.0。實驗的目的是為了評估學(xué)習(xí)率對Agent適應(yīng)力的影響。
實驗結(jié)果曲線圖如下(圖中只畫了50步,噪聲在400步加入):
從曲線圖可知:
實驗結(jié)果統(tǒng)計如下:
其中,Steps to Crossing意思是,環(huán)境發(fā)生改變之后,Agent做出回應(yīng),更新估計值第一次到新的一個估計值所用的步數(shù),用來衡量適應(yīng)力。
正如之前所說,固定的學(xué)習(xí)率,在噪聲環(huán)境中,其收斂效果較差,這點從TSE中可以看出,噪聲環(huán)境中的TSE顯然增加了。
4. 從表中看出ccBeta算法在噪聲環(huán)境中以不俗的適應(yīng)力超過大多學(xué)習(xí)率設(shè)置。
Experiment 3:Learning to Walk
略
The RL algorithms
略
Conclusions
總結(jié):
學(xué)習(xí)中的不足之處:
總結(jié)
以上是生活随笔為你收集整理的论文笔记之Estimator Varience in RL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python requests post
- 下一篇: 杰里之升级复位可以选择软复位跳转和绝对地