深度增強學習David Silver(五)——Model-Free Control
本節課主要內容:
- On-Policy Monte-Carlo Control
- On-Policy Temporal-Difference Learning
- Off-Policy Learning
On-Policy Monte-Carlo Control
上節課講了model-free的預測,這節課講優化控制。
回憶一下之前的內容,lecture03講到對於給定模型的MDP,通過V(s)改進策略:
\pi'(s)=\mathop{argmax}_{a \in \cal{A}}\cal{R}_s^a+\cal{P}_{ss'}^aV'(s')
如果我們想知道v(s)的值,那我們總是需要求出環境的模型。而行動價值函式
Q(s,a)
能夠讓我們在不知道環境模型的情況下進行控制,Q評估各個狀態的各個行為有多好。因此對於model-free的MDP,我們通過Q(s,a)
改進策略: \pi'(s)=\mathop{argmax}_{a \in \cal{A}}Q(s,a)
但是每次總是選擇最好的Q保證了exploitation,不能滿足exploration,也就是沒有遍歷足夠多的情況。因此用
\epsilon
-Greedy來保證優化。一開始所有的m個行動以非零概率初始化,以1-\epsilon
的概率選擇最好的情況,以\epsilon
的概率隨機選擇行動。 \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'
總是能得到改進 \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需要兩個條件:
- 所有的狀態-行動對被無限地探索很多次。
limk→∞Nk(s,a)=∞ \mathop{lim}_{k \rightarrow \infty}N_k(s,a)=\infty - 策略最終收斂到一個貪心演算法。
limk→∞πk(a|s)=1(a=argmaxa′∈AQk(s,a′)) \mathop{lim}_{k \rightarrow \infty}\pi_k(a|s)=1(a=\mathop{argmax}_{a' \in \cal{A}}Q_k(s,a'))
舉個例子,若
\epsilon_k=\frac{1}{k}
,當\epsilon
接近於0的時候,\epsilon
-greedy是GLIE。
現在我們有了一個完整的未知環境MDP的解決方案:GLIE Monte-Carlo Control。
- 使用策略
π \pi取樣一個episode:S1,A1,R2,...,ST∼π {S_1,A_1,R_2,...,S_T}\sim \pi - 更新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)(Gt−Q(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)) - 基於新的行動-價值函式改進策略
ϵ←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) \leftarrow Q(S,A)+\alpha (R+\gamma Q(S',A')-Q(S,A))
這稱之為Sarsa方法,演算法如下:
這是經過1步的Sarsa演算法,和之前的TD演算法類似,Sarsa也有經過n步。設經過n步的Q-return為:
q_t^{(n)}=R_{t+1}+\gamma R_{t+2}+...+\gamma^{n-1}R_{t+n}+\gamma^nQ(S_{t+n})
Q(S_t,A_t) \leftarrow Q(S_t,A_t)+\alpha (q^{(n)}-Q(S_t,A_t))
Sarsa(\lambda)
分為forward-view和backward-view。 1. forward-view中的
q^\lambda
使用權值將所有n步的Q-return q_t^{(n)}
結合起來。 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:
E_0(s,a) = 0
E_0(s,a) =\gamma \lambda E_{t-1}(s,a)+1(S_t=s,A_t=a)
\delta_t=R_{t+1}+\gamma Q(S_{t+1},A_{t+1})-V(S_t,A_t)
Q(s,a)\leftarrow Q(s,a)+\alpha \delta_t E_t(s,a)
Off-Policy Learning
前面討論的都是建立在已知策略的基礎上的,所用的策略就是正在學習的策略,但是有一些情況,我們想學習別的策略,比如我們想學習行為策略
\mu(a|s)
,從環境中選擇我們的行動。 為什麼要關心未知策略的學習呢?
- 通過觀察周圍的環境和周圍人的行為來學習。
- 二次使用舊的策略。
- 在exporation的時候能夠學習到最優策略。
- 在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π/μt−V(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)
,它不需要importance sampling。使用行為策略A_{t+1} \sim \mu(\cdot|S_t)
選擇下一步動作。A' \sim \pi(\cdot|S_t)
是每個狀態可選擇的後繼行動。 最後貼上DP和TD的關係:
相關文章
- 深度增強學習David Silver(四)——Model-Free Prediction
- 深度學習領域的資料增強深度學習
- 深度學習煉丹-資料處理和增強深度學習
- Deep Reinforcement Learning 深度增強學習資源
- 「AlphaGo 之父」David Silver最新演講,傳授強化學習的十大原則Go強化學習
- 深度學習及深度強化學習研修深度學習強化學習
- 深度學習煉丹-資料預處理和增強深度學習
- 基於深度學習的單通道語音增強深度學習
- 深度學習+深度強化學習+遷移學習【研修】深度學習強化學習遷移學習
- 深度學習及深度強化學習應用深度學習強化學習
- 演算法金 | 深度學習影像增強方法總結演算法深度學習
- 【強化學習】強化學習/增強學習/再勵學習介紹強化學習
- 深度強化學習揭秘強化學習
- 深度強化學習day01初探強化學習強化學習
- 學習Java:1.5:增強的forJava
- 在深度學習訓練過程中如何設定資料增強?深度學習
- ML.NET 3.0 增強了深度學習和資料處理能力深度學習
- 深度學習(五)之原型網路深度學習原型
- 《深度強化學習》手稿開放了!強化學習
- 增強學習和OpeAI Gym的介紹:基礎增強學習問題的演示AI
- 深度學習、強化學習核心技術實戰深度學習強化學習
- 關於強化學習、深度學習deeplearning研修強化學習深度學習
- 楊強:深度學習、強化學習、遷移學習的結合及應用進展深度學習強化學習遷移學習
- 機器學習、深度學習、強化學習課程超級大列表!機器學習深度學習強化學習
- 深度強化學習核心技術實戰強化學習
- 深度學習(一)深度學習學習資料深度學習
- NLP與深度學習(五)BERT預訓練模型深度學習模型
- 強化學習(十六) 深度確定性策略梯度(DDPG)強化學習梯度
- 語音增強和DSP演算法學習演算法
- 強化學習五大方面-環境強化學習
- SilverLigth學習筆記--筆記
- 微軟Silverlight學習地址微軟
- 備戰世界盃!先用深度學習與強化學習踢場 FIFA 18深度學習強化學習
- 深度強化學習技術開發與應用強化學習
- 深度強化學習的 18 個關鍵問題強化學習
- 深度學習學習框架深度學習框架
- 帶你讀論文:基於深度學習的影像分類中資料增強的有效性深度學習
- 深度學習深度學習