深度增強學習David Silver(七)——Policy Gradient_DRL

來源:互聯網
上載者:User

本文主要內容: Finite Difference Policy Gradient Monte-Carlo Policy Gradient

上節課我們使用參數估計了價值函數和行動-價值函數,而當講到策略時,我們只提到 ϵ -greedy。在這節課,我們將會直接參數化策略 πθ(s,a)=P(a|s,θ) 。

增強學習可分為Value-Based、Policy-Based以及二者結合的Actor-Critic。Value-Based的增強學習的策略(比如 ϵ -greedy)是不變的,即在某個狀態,選擇哪種行動是固定的。Policy-Based的增強學習會學習不同的策略,即在某個狀態下多少的機率怎麼做,這個機率可能會不斷地調整。policy-based和value-based如下圖所示:

Policy-Based的增強學習優點有: 能收斂到能達到的最優解 在高維空間或連續的行為空白間中高效 能學習隨機策略

缺點: 通常收斂到局部最優而非全域最優 評估一個策略通常低效(這個過程可能慢,但是具有更高的可變性,其中也會出現很多並不有效嘗試),而且方差高

那麼給定一個具有參數 θ 的策略 πθ(s,a) ,判斷這個策略的優劣。通常有三種方法: 使用初始價值來判斷: J1(θ)=Vπθ(s1)=Eπθ[v1] 使用平均價值: JavV(θ)=∑sdπθ(s)Vπθ(s) 使用每次time-step的平均獎勵: JavR(θ)=∑sdπθ(s)∑aπθ(s,a)Ras ,其中 dπθ(s) 是策略 πθ 的馬爾科夫鏈的平穩分布(也就是當應用策略 πθ ,達到收斂的分布)。

通常使用梯度下降法通過最大化 J(θ) 來確定 θ 的取值。定義策略梯度為:
∇θJ(θ)=⎛⎝⎜⎜⎜⎜⎜⎜∂J(θ)∂θ1⋮∂J(θ)∂θn⎞⎠⎟⎟⎟⎟⎟⎟

假設策略 πθ 為零的時候可微,並且已知梯度 ∇θπθ(s,a) ,定義 ∇θlogπθ(s,a) 為得分函數(score function)。二者關係如下:
∇θπθ(s,a)=∇θπθ(s,a)∇θπθ(s,a)πθ(s,a)=πθ(s,a)∇θlogπθ(s,a)

接下來我們考慮一個只走一步的MDP,對它使用原則梯度下降。 πθ(s,a) 表示關於參數 θ 的函數,映射是 p(a|s,θ) 。它在狀態s向前走一步,獲得獎勵 r=Rs,a 。那麼選擇行動a的獎勵為 πθ(s,a)Rs,a ,在狀態s的加權獎勵為 ∑a∈Aπθ(s,a)Rs,a ,應用策略所能獲得的獎勵期望及梯度為:
J(θ)=Eπθ[r]=∑s∈Sd(s)∑a∈Aπθ(s,a)Rs,a∇θJ(θ)=∑s∈Sd(s)∑a∈Aπθ(s,a)∇θlogπθ(s,a)Rs,a=Eπθ[∇θlogπθ(s,a)r]

再考慮走了多步的MDP,使用 Qπ(s,a) 代替獎勵值r,對於任意可微的策略,策略梯度為:
∇θJ(θ)=Eπθ[∇θlogπθ(s,a)Qπθ(s,a)]

Monte-Carlo策略梯度通過採樣episode來更新參數:
使用隨機梯度上升法更新參數;使用原則梯度法;使用return vt 作為 Qπθ(st,at) 的無偏估計。則 Δθt=α∇θlogπθ(st,at)vt ,具體如下:

Monte-Carlo策略梯度的方差較高,因此放棄用return來估計行動-價值函數Q,而是使用critic來估計Q。 Qπθ(s,a)≈Qw(s,a) 。這是一個名為actor-critic的演算法,具有兩套參數。(1)critic的參數為w。(2)actor的參數為 θ ,根據critic建議的方向更新。

critic其實就是在評估策略。假設Q約為特徵的線性組合: Qw(s,a)=ϕ(s,a)Tw 。critic根據線性TD(0)來更新w,actor通過策略梯度來更新 θ 。

在actor-critic演算法中,對策略進行了估計,這會產生誤差,但是當滿足以下兩個條件時,策略梯度是準確的 價值函數的估計值沒有和策略相違背。 ∇wQw(s,a)=∇θlogπθ(s,a) 價值函數的參數w能夠最小化誤差: ϵ=Eπθ[(Qπθ(s,a)−Qw(s,a))2]

另外,通過將策略梯度減去一個基準函數B(s),可以在不改變期望的情況下,降低方差。證明不改變期望,就是證明相加和為0。
Eπθ[∇θlogπθ(s,a)B(s)]=∑s∈Sdπθ(s)∑a∇θπθ(s,a)B(s)=∑s∈Sdπθ(s)B(s)∇θ∑a∈Aπθ(s,a)=0

狀態價值函數 Vπθ(s) 是一個好的基準。因此可以通過使用優勢函數(advantage function) Aπθ(s,a) 重寫價值梯度函數。
Aπθ(s,a)=Qπθ(s,a)−Vπθ(s)∇θJ(θ)=Eπθ[∇θlogπθ(s,a)Aπθ(s,a)]

設 Vπθ(s) 是真實的價值函數,TD演算法利用bellman方程來逼近真實值,誤差為 δπθ=r+γVπθ(s′)−Vπθ(s) 。該誤差是優勢函數的無偏估計。因此我們可以使用該誤差計算策略梯度:
∇θJ(θ)=Eπθ[∇θlogπθ(s,a)δπθ]
該方法只需要critic,不需要actor。

最後總結一下策略梯度演算法:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.