1. 程式人生 > >強化學習系列(六):時間差分演算法(Temporal-Difference Learning)

強化學習系列(六):時間差分演算法(Temporal-Difference Learning)

一、前言

強化學習系列(五):蒙特卡羅方法(Monte Carlo)中,我們提到了求解環境模型未知MDP的方法——Monte Carlo,但該方法是每個episode 更新一次(episode-by-episode)。本章介紹一種單步更新的求解環境模型未知MDP的方法——Temporal-Difference Learning(TD)。TD(0)演算法結合了DP 和Monte Carlo演算法的優點,不僅可以單步更新,而且可以根據經驗進行學習。
本章同樣將強化學習問題分為prediction 和 control,分別介紹TD是如何用於求解這兩類問題的。

二、TD prediction

TD(0)演算法結合了DP 和Monte Carlo演算法的優點,不僅可以單步更新,而且可以根據經驗進行學習。根據他們的backup圖可以直觀的看出三者區別:

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

MC演算法需要等到一個episode 結束後才能更新value,TD和DP可以單步更新,但區別在於TD不需要知道確切的環境模型(狀態轉移概率等),可以根據下一步的估計來更新當前估計value。下面我們總結一下TD學習特點:

這裡寫圖片描述

2.1 MC and TD

為了更好的理解TD演算法,將其和MC演算法進行進一步比較:
這裡寫圖片描述
兩者的目標都是根據經驗估計給定策略π下的value function v(π)
但:

  • MC更新用的是一個episode 的從state s到 terminal的實際return Gt,表現為一個episode更新一次
  • TD更新用的是下一個state St+1的估計return Rt+1+γV(St+1,通常叫做TD target

這兩者有什麼差別呢,舉個簡單例子:開車回家例子, 下班回家估計到家所需時間,離開辦公室估計30分鐘後到家,5分鐘後找到車發現下雨了,估計下雨堵車還有35分鐘到家,下班20分鐘時下了高速發現沒有堵車,估計還有15分鐘到家,結果下班30分鐘時遇到堵車,估計還有10分鐘到家,然後下班40分鐘後到了家附近的小路上,估計還有3分鐘到家,3分鐘後到家了。
這裡寫圖片描述

根據MC演算法和TD演算法(γ),作圖如下:
這裡寫圖片描述

我們先看左圖,運用MC演算法,舉個例子,當離開高速你認為還有15分鐘就到家了,然而,實際需要23分鐘,此時GtV(St)=8,假設step size α=1/2 ,那麼預計時間會變成15+4 = 19,距離最終到家還有4分鐘差值。但這些更新都是離線的,不會發生在你到家的途中,只有當到家的時候才知道原來估計的時間需要修改。
但真的需要等到回家了再調整估計時間嗎?如果採用MC方法,答案是肯定的,但是採用TD就不會。可以實時對估計回家時間進行調整。

2.2 Advantages and Disadvantages of MC vs. TD

這裡寫圖片描述
那麼兩者的方差和偏差如何呢?
這裡寫圖片描述
由於TD target Rt+1+γV(St+1)是真實的TD targetRt+1+γvπ(St+1)的有偏估計,所有MC是無偏差的,但TD是有偏差的。
但TD target的方差比return低,因為return依賴一系列隨機的狀態量和動作量,和reward ,但TD target 只依賴一組隨機的狀態量和動作量,和reward 。

總結一下MC和TD的演算法優缺點:
這裡寫圖片描述
這裡寫圖片描述

2.4 TD prediction演算法虛擬碼

這裡寫圖片描述

三、TD control

本節針對control problem,將分別介紹on-policy TD(sarsa) 和off-policy TD (importance sample TD、QLearning、expected sarsa等)

3.1 Sarsa: On-policy TD control

和MC一樣,TD中Policy evaluation 估計的是action-value function。更新方式如下:
這裡寫圖片描述
由於更新一次action-value function需要用到5個量(s,a,r,s,a),所以該演算法被稱為sarsa演算法,虛擬碼如下:
這裡寫圖片描述
注意,第一次選擇動作使用的Policy 為ϵ-greedy policy,然後在整個episode中選擇動作使用的Policy都為ϵ-greedy policy,所以該演算法為on-policy TD。

3.2 Off-policy learning

  • on-policy用於生成取樣資料的策略和用於evlauate、improve的策略是同一個策略π 。
  • off-policy用於取樣的策略b (behavior policy) 和用於evlauate、improve的策略 π (target policy) 是兩個不同的策略。通常情況下target policy 是確定性策略,而behavior policy是隨機策略。

且在Off-policy中,提到了off-policy常用的一種方法,基於importance sample的off-policy方法。在這裡我們首先介紹importance sample TD,然後介紹另一種 off-policy的思路。

3.3 Off-policy TD control:importance sample TD

強化學習系列(五):蒙特卡羅方法(Monte Carlo)中,我們以ordinary importance sampling 為例,比較importance sample 的MC和TD的區別。

importance sample MC

  • 採用behavior policy b 生成的資料來估計Target policy π
  • 將b對應的return Gt乘以一個importance sample ratio 可以獲得Target policy π的return Gtπ/b:(每個episode計算一次)
  • Gtπ/b=π(At|St)b(At|St)π(At+1|St+1)b(At+1|St+1)...π(AT|ST)b(AT|ST)Gt
  • 然後再更新value: