深度增強學習David Silver(五)——Model-Free Control

cs123951發表於2017-05-16

本節課主要內容:

  • On-Policy Monte-Carlo Control
  • On-Policy Temporal-Difference Learning
  • Off-Policy Learning

On-Policy Monte-Carlo Control

上節課講了model-free的預測,這節課講優化控制。
回憶一下之前的內容,lecture03講到對於給定模型的MDP,通過V(s)改進策略:

π(s)=argmaxaARas+PassV(s)
\pi'(s)=\mathop{argmax}_{a \in \cal{A}}\cal{R}_s^a+\cal{P}_{ss'}^aV'(s')

如果我們想知道v(s)的值,那我們總是需要求出環境的模型。而行動價值函式Q(s,a)
Q(s,a)
能夠讓我們在不知道環境模型的情況下進行控制,Q評估各個狀態的各個行為有多好。因此對於model-free的MDP,我們通過Q(s,a)
Q(s,a)
改進策略:
π(s)=argmaxaAQ(s,a)
\pi'(s)=\mathop{argmax}_{a \in \cal{A}}Q(s,a)

但是每次總是選擇最好的Q保證了exploitation,不能滿足exploration,也就是沒有遍歷足夠多的情況。因此用ϵ
\epsilon
-Greedy來保證優化。一開始所有的m個行動以非零概率初始化,以1ϵ
1-\epsilon
的概率選擇最好的情況,以ϵ
\epsilon
的概率隨機選擇行動。
π(a|s)=ϵ/m+1ϵϵ/mif a*=argmaxaAQ(s,a)otherwise
\pi(a|s)=\begin{cases}\epsilon/m+1-\epsilon&\text{if a*=$\mathop{argmax}_{a \in \cal{A}}Q(s,a)$}\\ \epsilon/m&\text{otherwise}\end{cases}

以下證明ϵ
\epsilon
-Greedy的策略π
\pi'
總是能得到改進
qπ(s,π(s))=aAπ(a|s)qπ(s,a)=ϵ/maAqπ(s,a)+(1ϵ)maxaAqπ(s,a)ϵ/maAqπ(s,a)+(1ϵ)aAπ(a|s)ϵ/m1ϵqπ(s,a)=aAπ(a|s)qπ(s,a)=vπ(s)
\begin{align} q_{\pi}(s,\pi'(s))&=\sum_{a \in \cal{A}}\pi'(a|s)q_\pi(s,a)\\ &=\epsilon/m \sum_{a \in \cal{A}}q_\pi(s,a)+(1-\epsilon)\max_{a \in \cal{A}}q_\pi(s,a)\\ &\ge \epsilon/m \sum_{a \in \cal{A}}q_\pi(s,a)+(1-\epsilon)\sum_{a \in \cal{A}}\frac{\pi(a|s)-\epsilon/m}{1-\epsilon}q_\pi(s,a)\\ &=\sum_{a \in \cal{A}}\pi(a|s)q_\pi(s,a)=v_\pi(s) \end{align}

因此,我們是使用lecture04 講到的Monte-Carlo進行policy evaluation,用ϵ
\epsilon
-greedy進行policy improvement。要找到最優值,就要對exploration和exploitation進行平衡,使用Greedy in the Limit with Infinite Exploration (GLIE),即在有限狀態下進行無限探索的貪婪演算法,使用GLIE需要兩個條件:

  1. 所有的狀態-行動對被無限地探索很多次。
    limkNk(s,a)=
    \mathop{lim}_{k \rightarrow \infty}N_k(s,a)=\infty
  2. 策略最終收斂到一個貪心演算法。
    limkπk(a|s)=1(a=argmaxaAQk(s,a))
    \mathop{lim}_{k \rightarrow \infty}\pi_k(a|s)=1(a=\mathop{argmax}_{a' \in \cal{A}}Q_k(s,a'))

舉個例子,若ϵk=1k

\epsilon_k=\frac{1}{k}
,當ϵ
\epsilon
接近於0的時候,ϵ
\epsilon
-greedy是GLIE。

現在我們有了一個完整的未知環境MDP的解決方案:GLIE Monte-Carlo Control。

  1. 使用策略π
    \pi
    取樣一個episode:S1,A1,R2,...,STπ
    {S_1,A_1,R_2,...,S_T}\sim \pi
  2. 更新episode中的每個狀態和行動:
    N(St,At)N(St,At)+1
    N(S_t,A_t)\leftarrow N(S_t,A_t)+1

    Q(St,At)Q(St,At)+1N(St,At)(GtQ(St,At))
    Q(S_t,A_t)\leftarrow Q(S_t,A_t)+\frac{1}{N(S_t,A_t)}(G_t-Q(S_t,A_t))
  3. 基於新的行動-價值函式改進策略
    ϵ1/k
    \epsilon \leftarrow 1/k

    πϵgreedy(Q)
    \pi \leftarrow \epsilon-greedy(Q)

On-Policy Temporal-Difference Learning

TD相對於MC有很多優點,比如低方差、online、不完整的序列,因此考慮在控制優化使用TD而不是MC:將TD應用到Q(S,A)

Q(S,A)

Q(S,A)Q(S,A)+α(R+γQ(S,A)Q(S,A))
Q(S,A) \leftarrow Q(S,A)+\alpha (R+\gamma Q(S',A')-Q(S,A))

這稱之為Sarsa方法,演算法如下:
這裡寫圖片描述
這是經過1步的Sarsa演算法,和之前的TD演算法類似,Sarsa也有經過n步。設經過n步的Q-return為:
q(n)t=Rt+1+γRt+2+...+γn1Rt+n+γnQ(St+n)
q_t^{(n)}=R_{t+1}+\gamma R_{t+2}+...+\gamma^{n-1}R_{t+n}+\gamma^nQ(S_{t+n})

Q(St,At)Q(St,At)+α(q(n)Q(St,At))
Q(S_t,A_t) \leftarrow Q(S_t,A_t)+\alpha (q^{(n)}-Q(S_t,A_t))

Sarsa(λ)
Sarsa(\lambda)
分為forward-view和backward-view。
1. forward-view中的qλ
q^\lambda
使用權值將所有n步的Q-return q(n)t
q_t^{(n)}
結合起來。
Q(St,At)Q(St,At)+α(qλQ(St,At))
Q(S_t,A_t) \leftarrow Q(S_t,A_t)+\alpha (q^{\lambda}-Q(S_t,A_t))

2. backward-view在online的演算法中使用eligibility trace:

E0(s,a)=0
E_0(s,a) = 0

E0(s,a)=γλEt1(s,a)+1(St=s,At=a)
E_0(s,a) =\gamma \lambda E_{t-1}(s,a)+1(S_t=s,A_t=a)

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

Q(s,a)Q(s,a)+αδtEt(s,a)
Q(s,a)\leftarrow Q(s,a)+\alpha \delta_t E_t(s,a)

這裡寫圖片描述

Off-Policy Learning

前面討論的都是建立在已知策略的基礎上的,所用的策略就是正在學習的策略,但是有一些情況,我們想學習別的策略,比如我們想學習行為策略μ(a|s)

\mu(a|s)
,從環境中選擇我們的行動。
為什麼要關心未知策略的學習呢?

  1. 通過觀察周圍的環境和周圍人的行為來學習。
  2. 二次使用舊的策略。
  3. 在exporation的時候能夠學習到最優策略。
  4. 在exploitation的時候能夠學習到多個策略。

那怎麼選擇策略呢?使用importance sampling。採用兩個策略π

\pi
μ
\mu
,importance weight為π/μ
\pi / \mu

對於off-policy Monte-Carlo使用importance sampling:

  • 使用面向Monte-Carlo的策略μ
    \mu
    產生的return來估計策略π
    \pi
  • Gπ/μt=π(At|St)μ(At+1|St+1)π(At+1|St+1)μ(At+1|St+1)...π(AT|ST)μ(AT|ST)Gt
    G_t^{\pi / \mu}=\frac{\pi(A_t|S_t)}{\mu(A_{t+1}|S_{t+1})} \frac{\pi(A_{t+1}|S_{t+1})}{\mu(A_{t+1}|S_{t+1})} ... \frac{\pi(A_T|S_T)}{\mu(A_T|S_T)}G_t
  • 更新價值:V(St)V(St)+α(Gπ/μtV(St))
    V(S_t)\leftarrow V(S_t)+\alpha (G_t^{\pi / \mu}-V(S_t))

對於off-policy TD使用importance sampling:

  • 使用面向TD的策略μ
    \mu
    產生的return來估計策略π
    \pi
  • 給TD的目標R+γV(S)
    R+\gamma V(S')
    加權
  • 更新價值:V(St)V(St)+α(π(At|St)μ(At|St)(Rt+1+γV(St+1))V(St))
    V(S_t)\leftarrow V(S_t)+\alpha (\frac{\pi(A_t|S_t)}{\mu(A_t|S_t)}(R_{t+1}+\gamma V(S_{t+1}))-V(S_t))
  • 比Monte-Carlo importance sampling的方差小
  • 不需要每一步的策略都相同

針對off-policy的解決方案是Q-learning。off-policy的行動-價值函式Q(s,a)

Q(s,a)
,它不需要importance sampling。使用行為策略At+1μ(|St)
A_{t+1} \sim \mu(\cdot|S_t)
選擇下一步動作。Aπ(|St)
A' \sim \pi(\cdot|S_t)
是每個狀態可選擇的後繼行動。
這裡寫圖片描述

最後貼上DP和TD的關係:
這裡寫圖片描述

這裡寫圖片描述

相關文章