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