深度強化學習課程文件

(可選) 策略梯度定理

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

(可選) 策略梯度定理

在這一可選部分,我們將研究如何對我們將用於近似策略梯度的目標函式進行微分

讓我們首先回顧一下我們的不同公式

  1. 目標函式
Return
  1. 軌跡的機率(給定動作來自πθ\pi_\theta):
Probability

所以我們有θJ(θ)=θτP(τ;θ)R(τ)\nabla_\theta J(\theta) = \nabla_\theta \sum_{\tau}P(\tau;\theta)R(\tau)

我們可以將和的梯度改寫為梯度的和=τθ(P(τ;θ)R(τ))=τθP(τ;θ)R(τ) = \sum_{\tau} \nabla_\theta (P(\tau;\theta)R(\tau)) = \sum_{\tau} \nabla_\theta P(\tau;\theta)R(\tau) 因為R(τ)R(\tau)不依賴於θ\theta

然後我們將和中的每一項乘以P(τ;θ)P(τ;θ)\frac{P(\tau;\theta)}{P(\tau;\theta)}(因為等於1,所以可以這樣做)=τP(τ;θ)P(τ;θ)θP(τ;θ)R(τ) = \sum_{\tau} \frac{P(\tau;\theta)}{P(\tau;\theta)}\nabla_\theta P(\tau;\theta)R(\tau)

我們可以進一步簡化,因為P(τ;θ)P(τ;θ)θP(τ;θ)=P(τ;θ)θP(τ;θ)P(τ;θ) \frac{P(\tau;\theta)}{P(\tau;\theta)}\nabla_\theta P(\tau;\theta) = P(\tau;\theta)\frac{\nabla_\theta P(\tau;\theta)}{P(\tau;\theta)} .

因此我們可以將總和改寫為P(τ;θ)θP(τ;θ)P(τ;θ)=τP(τ;θ)θP(τ;θ)P(τ;θ)R(τ) P(\tau;\theta)\frac{\nabla_\theta P(\tau;\theta)}{P(\tau;\theta)}= \sum_{\tau} P(\tau;\theta) \frac{\nabla_\theta P(\tau;\theta)}{P(\tau;\theta)}R(\tau)

然後我們可以使用導數對數技巧(也稱為似然比技巧REINFORCE技巧),這是一個簡單的微積分規則,意味著xlogf(x)=xf(x)f(x) \nabla_x log f(x) = \frac{\nabla_x f(x)}{f(x)}

所以鑑於我們有θP(τ;θ)P(τ;θ)\frac{\nabla_\theta P(\tau;\theta)}{P(\tau;\theta)} 我們將其轉換為θlogP(τθ)\nabla_\theta log P(\tau|\theta)

這就是我們的似然策略梯度θJ(θ)=τP(τ;θ)θlogP(τ;θ)R(τ) \nabla_\theta J(\theta) = \sum_{\tau} P(\tau;\theta) \nabla_\theta log P(\tau;\theta) R(\tau)

有了這個新公式,我們可以使用軌跡樣本來估計梯度(如果您喜歡,我們可以用基於樣本的估計來近似似然比策略梯度)。θJ(θ)=1mi=1mθlogP(τ(i);θ)R(τ(i))\nabla_\theta J(\theta) = \frac{1}{m} \sum^{m}_{i=1} \nabla_\theta log P(\tau^{(i)};\theta)R(\tau^{(i)})其中每個τ(i)\tau^{(i)}都是一個取樣軌跡。

但是我們還有一些數學工作要做:我們需要簡化θlogP(τθ)\nabla_\theta log P(\tau|\theta)

我們知道θlogP(τ(i);θ)=θlog[μ(s0)t=0HP(st+1(i)st(i),at(i))πθ(at(i)st(i))]\nabla_\theta log P(\tau^{(i)};\theta)= \nabla_\theta log[ \mu(s_0) \prod_{t=0}^{H} P(s_{t+1}^{(i)}|s_{t}^{(i)}, a_{t}^{(i)}) \pi_\theta(a_{t}^{(i)}|s_{t}^{(i)})]

其中:μ(s0)\mu(s_0)是初始狀態分佈,並且P(st+1(i)st(i),at(i)) P(s_{t+1}^{(i)}|s_{t}^{(i)}, a_{t}^{(i)}) 是 MDP 的狀態轉移動態。

我們知道積的對數等於對數的和θlogP(τ(i);θ)=θ[logμ(s0)+t=0HlogP(st+1(i)st(i)at(i))+t=0Hlogπθ(at(i)st(i))]\nabla_\theta log P(\tau^{(i)};\theta)= \nabla_\theta \left[log \mu(s_0) + \sum\limits_{t=0}^{H}log P(s_{t+1}^{(i)}|s_{t}^{(i)} a_{t}^{(i)}) + \sum\limits_{t=0}^{H}log \pi_\theta(a_{t}^{(i)}|s_{t}^{(i)})\right]

我們還知道和的梯度等於梯度的和θlogP(τ(i);θ)=θlogμ(s0)+θt=0HlogP(st+1(i)st(i)at(i))+θt=0Hlogπθ(at(i)st(i)) \nabla_\theta log P(\tau^{(i)};\theta)=\nabla_\theta log\mu(s_0) + \nabla_\theta \sum\limits_{t=0}^{H} log P(s_{t+1}^{(i)}|s_{t}^{(i)} a_{t}^{(i)}) + \nabla_\theta \sum\limits_{t=0}^{H} log \pi_\theta(a_{t}^{(i)}|s_{t}^{(i)})

由於MDP的初始狀態分佈和狀態轉移動力學不依賴於θ\theta,所以這兩項的導數都是0。因此我們可以刪除它們。

因為θt=0HlogP(st+1(i)st(i)at(i))=0\nabla_\theta \sum_{t=0}^{H} log P(s_{t+1}^{(i)}|s_{t}^{(i)} a_{t}^{(i)}) = 0 θμ(s0)=0 \nabla_\theta \mu(s_0) = 0 θlogP(τ(i);θ)=θt=0Hlogπθ(at(i)st(i))\nabla_\theta log P(\tau^{(i)};\theta) = \nabla_\theta \sum_{t=0}^{H} log \pi_\theta(a_{t}^{(i)}|s_{t}^{(i)})

我們可以將和的梯度改寫為梯度的和。θlogP(τ(i);θ)=t=0Hθlogπθ(at(i)st(i)) \nabla_\theta log P(\tau^{(i)};\theta)= \sum_{t=0}^{H} \nabla_\theta log \pi_\theta(a_{t}^{(i)}|s_{t}^{(i)})

因此,估計策略梯度的最終公式為:θJ(θ)=g^=1mi=1mt=0Hθlogπθ(at(i)st(i))R(τ(i)) \nabla_{\theta} J(\theta) = \hat{g} = \frac{1}{m} \sum^{m}_{i=1} \sum^{H}_{t=0} \nabla_\theta \log \pi_\theta(a^{(i)}_{t} | s_{t}^{(i)})R(\tau^{(i)}) θlogπθ(at(i)st(i))R(τ(i))

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.