(可選) 策略梯度定理
在這一可選部分,我們將研究如何對我們將用於近似策略梯度的目標函式進行微分。
讓我們首先回顧一下我們的不同公式
- 目標函式
- 軌跡的機率(給定動作來自πθ):
所以我們有∇θJ(θ)=∇θ∑τP(τ;θ)R(τ)
我們可以將和的梯度改寫為梯度的和=∑τ∇θ(P(τ;θ)R(τ))=∑τ∇θP(τ;θ)R(τ)因為R(τ)不依賴於θ
然後我們將和中的每一項乘以P(τ;θ)P(τ;θ)(因為等於1,所以可以這樣做)=∑τP(τ;θ)P(τ;θ)∇θP(τ;θ)R(τ)
我們可以進一步簡化,因為P(τ;θ)P(τ;θ)∇θP(τ;θ)=P(τ;θ)P(τ;θ)∇θP(τ;θ).
因此我們可以將總和改寫為P(τ;θ)P(τ;θ)∇θP(τ;θ)=∑τP(τ;θ)P(τ;θ)∇θP(τ;θ)R(τ)
然後我們可以使用導數對數技巧(也稱為似然比技巧或REINFORCE技巧),這是一個簡單的微積分規則,意味著∇xlogf(x)=f(x)∇xf(x)
所以鑑於我們有P(τ;θ)∇θP(τ;θ)我們將其轉換為∇θlogP(τ∣θ)
這就是我們的似然策略梯度∇θJ(θ)=∑τP(τ;θ)∇θlogP(τ;θ)R(τ)
有了這個新公式,我們可以使用軌跡樣本來估計梯度(如果您喜歡,我們可以用基於樣本的估計來近似似然比策略梯度)。∇θJ(θ)=m1∑i=1m∇θlogP(τ(i);θ)R(τ(i))其中每個τ(i)都是一個取樣軌跡。
但是我們還有一些數學工作要做:我們需要簡化∇θlogP(τ∣θ)
我們知道∇θlogP(τ(i);θ)=∇θlog[μ(s0)∏t=0HP(st+1(i)∣st(i),at(i))πθ(at(i)∣st(i))]
其中:μ(s0)是初始狀態分佈,並且P(st+1(i)∣st(i),at(i))是 MDP 的狀態轉移動態。
我們知道積的對數等於對數的和∇θlogP(τ(i);θ)=∇θ[logμ(s0)+t=0∑HlogP(st+1(i)∣st(i)at(i))+t=0∑Hlogπθ(at(i)∣st(i))]
我們還知道和的梯度等於梯度的和∇θlogP(τ(i);θ)=∇θlogμ(s0)+∇θt=0∑HlogP(st+1(i)∣st(i)at(i))+∇θt=0∑Hlogπθ(at(i)∣st(i))
由於MDP的初始狀態分佈和狀態轉移動力學不依賴於θ,所以這兩項的導數都是0。因此我們可以刪除它們。
因為∇θ∑t=0HlogP(st+1(i)∣st(i)at(i))=0和∇θμ(s0)=0 ∇θlogP(τ(i);θ)=∇θ∑t=0Hlogπθ(at(i)∣st(i))
我們可以將和的梯度改寫為梯度的和。∇θlogP(τ(i);θ)=∑t=0H∇θlogπθ(at(i)∣st(i))
因此,估計策略梯度的最終公式為:∇θJ(θ)=g^=m1∑i=1m∑t=0H∇θlogπθ(at(i)∣st(i))R(τ(i))
< > 在 GitHub 上更新