深度增強學習David Silver(四)——Model-Free Prediction

cs123951發表於2017-05-15

本節課主要介紹:

  • Monte-Carlo Learning
  • Temporal-Difference Learning
  • TD(λ)
    TD(\lambda)

Lecture03講到了已知環境的MDP,也就是做出行動之後知道到達哪個狀態及獎勵,但是現實中大部分情況下狀態和獎勵是未知的,這種情況稱為model-free,即環境模型未知。本節課探討prediction,估計未知環境的MDP的價值函式,下節課講control。

Monte-Carlo Learning

Monte-Carlo是不知道MDP的轉移函式及獎勵,直接從過去的episode中進行學習的方法。一個episode指從開始到結束:S1,A1,R1,...,Sk

S_1,A_1,R_1,...,S_k

  • MC學習完整的過程,沒有bootstrap,也就是要等一個episode完成了,MC才開始學習。
  • 之前講到return Gt=Rt+1+γRt+2+...+γT1RT
    G_t=R_{t+1}+\gamma R_{t+2}+...+\gamma^{T-1}R_T
    ,並且價值函式等於return的期望:vπ(s)=Eπ[Gt|St=s]
    v_\pi(s)=\sf{E}_\pi[G_t|S_t=s]
    。MC估計的價值等於return的平均值。平均值和期望的差別在於:平均值是一個統計學概念,是實驗後根據實際結果統計得到的樣本的平均值;期望是一個概率論概率,是實驗前根據概率分佈“預測”的樣本的平均值。

MC的狀態s的價值評估過程如下:
for state s

s
in an episode:
 for time-step t:
  N(s)N(s)+1
N(s) \leftarrow N(s)+1

  S(s)S(s)+Gt
S(s) \leftarrow S(s)+G_t

  V(s)=S(s)/N(s)
V(s) = S(s)/N(s)

V(St)
V(S_t)
還可以用以下方式進行更新:

V(St)V(St)+1N(St)(GtV(St))
V(S_t) \leftarrow V(S_t)+\frac{1}{N(S_t)}(G_t-V(S_t))

在某些不穩定的問題中,可以用α
\alpha
更新:
V(St)V(St)+α(GtV(St))
V(S_t) \leftarrow V(S_t)+\alpha(G_t-V(S_t))

當經過足夠的迴圈,N(s)
N(s) \rightarrow \infty
V(s)vπ(s)
V(s) \rightarrow v_\pi(s)

Temporal-Difference Learning

Temporal-Difference也不知道MDP的轉移函式及獎勵,但是它不需要等episode結束就可以學習。
TD的目標是Rt+1+γV(St+1)

R_{t+1}+\gamma V(S_{t+1})
,是vπ(St)
v_\pi(S_t)
的無偏差估計,Gt
G_t
也是vπ(St)
v_\pi(S_t)
的無偏差估計,其中Rt+1+γV(St+1)
R_{t+1}+\gamma V(S_{t+1})
的方差比Gt
G_t
低:Rt+1+γV(St+1)
R_{t+1}+\gamma V(S_{t+1})
依賴於多次隨機的動作、轉移、獎勵,而Gt
G_t
只依賴於一次隨機的動作、轉移、獎勵。TD的誤差(error)是δt=Rt+1+γV(St+1)V(St)
\delta_t= R_{t+1}+\gamma V(S_{t+1})-V(S_t)

比較

比較專案 Monte-Carlo Temporal-Difference
相同點 從經驗池中學習;model-free; 從經驗池中學習;model-free;
不同點 從完整的episode中學習,沒有bootstrap;
價值=return的均值;
根據真實的return Gt
G_t
更新V(St)
V(S_t)
從不完整的episode,使用bootstrap;
基於估計的值更新另一個值;
根據估計的返回值Rt+1+γV(St+1)
R_{t+1}+\gamma V(S_{t+1})
更新V(St)
V(S_t)
優缺點 高方差,零誤差(因為根據真實值來計算的);
具有很好的收斂效果;
對初始值不敏感;
在non-Markov環境中比較高效
低方差,有誤差;
比MC高效;
TD(0)收斂到vπ(s)
v_\pi(s)

對初始值更敏感;
充分利用了Markov性質,在Markov環境中比較高效

以下是MC、TD和DP的對比:
這裡寫圖片描述

比較 MC TD DP
bootstrap:update involves an estimate no yes yes
sample:update samples an expectation yes yes no

TD(λ
\lambda
)

定義經過n步之後的return和價值函式:

G(n)t=Rt+1+γRt+2+...+γn1Rt+n+γnV(St+n)
G_t^{(n)}=R_{t+1}+\gamma R_{t+2}+...+\gamma^{n-1}R_{t+n}+\gamma^nV(S_{t+n})

V(St)V(St)+α(G(n)tV(St))
V(S_t)\leftarrow V(S_t)+\alpha (G_t^{(n)}-V(S_t))

λ
\lambda
-return Gλt
G_t^\lambda
使用幾何權值(1λ)λn1
(1-\lambda)\lambda^{n-1}
將所有的n-step return加起來:
Gλt=(1λ)n=1λn1G(n)t
G_t^\lambda=(1-\lambda)\sum_{n=1}^{\infty}\lambda^{n-1}G_t^{(n)}

其中權值相加等於1:
(1λ)+(1λ)λ+(1λ)λ2++(1λ)λn=1+λn1
(1-\lambda)+(1-\lambda)\lambda+(1-\lambda)\lambda^2+…+(1-\lambda)\lambda^n =1+\lambda^n\approx1

V(St)V(St)+α(GλtV(St))
V(S_t)\leftarrow V(S_t)+\alpha (G_t^{\lambda}-V(S_t))

TD(λ)

TD(\lambda)
分為forward-view和backward-view。Forward-view TD(λ)
TD(\lambda)
向前看,往未來的方向更新資訊,前面講的就是forward-view。而Backward-view TD(λ)
TD(\lambda)
根據已發生的事情更新資訊,和TD-error δt
\delta_t
和eligibility trace Et(s)
E_t(s)
成比例。

δt=Rt+1+γV(St+1)V(St)
\delta_t=R_{t+1}+\gamma V(S_{t+1})-V(S_t)

V(s)V(s)+αδtEt(s)
V(s)\leftarrow V(s)+\alpha \delta_t E_t(s)

λ=0
\lambda=0
時,只更新當前狀態:
Et(s)=1(St=s)
E_t(s)=1(S_t=s)

假設在一個episode中,在時間k,經過狀態s,則:
Et(s)=γEt1(s)+1(St=s)={0(γλ)tkif t < k if t  k 
\begin{align}E_t(s) & =\gamma E_{t-1}(s)+1(S_t=s)\\ & =\begin{cases}0&\text{if t $\lt$ k }\\ (\gamma \lambda)^{t-k}&\text{if t $\ge$ k }\end{cases} \end{align}

此時online的更新累加的error為:
t=1TαδtEt(s)=αt=kT(γλ)tkδt=α(GλkV(Sk))
\sum_{t=1}^{T}\alpha \delta_t E_t(s)=\alpha \sum_{t=k}^{T}(\gamma \lambda)^{t-k}\delta_t=\alpha (G_k^\lambda-V(S_k))

TD(1)
TD(1)
近似於Monte-Carlo,如果價值函式更新是offline,那麼TD(1)
TD(1)
就是MC。

updates分為offline和online:

  • Offline的更新在一個episode裡面累加,但是隻在episode結束後應用;對於offline更新的和,forward-view和backward-view TD(λ)

    TD(\lambda)
    相等:

    Tt=1αδtEt(s)=Tt=1α(GλtV(St))1(St=s)
    \sum_{t=1}^T \alpha \delta_t E_t(s)=\sum_{t=1}^T \alpha (G_t^\lambda-V(S_t))1(S_t=s)

  • Online的更新在一個episode的每一步應用。forward-view和backward-view TD(λ)

    TD(\lambda)
    略有不同。

  • Exact online TD(λ)
    TD(\lambda)
    achieves perfect equivalence.

最後總結一下forward TD(λ)

TD(\lambda)
和backward TD(λ)
TD(\lambda)
(其中相等是指在episode結束之後的更新之和相等):
這裡寫圖片描述

相關文章