【RL】Policy Gradient Methods(策略梯度方法)

Lecture 9: Policy Gradient Methods

Basic idea of policy gradient

之前,policy是用表格表示的:

所有state的action概率都存储在表 π ( a ∣ s ) \pi(a|s) π(a∣s)中。 表的每个条目都由state和action索引。

因此可以直接访问或更改表中的值。

现在,policy可以用参数化函数来表示:
π ( a ∣ s , θ ) \pi(a |s, \theta) π(a∣s,θ)

其中, θ ∈ R m \theta \in \mathbb{R}^m θ∈Rm是参数向量。

例如,该函数可以是一个神经网络,其输入是 s s s,输出是采取每个动作的概率,参数是 θ \theta θ。

优势:当state空间较大时,表格表示在存储和泛化方面效率较低。

函数表示有时也写为 π ( a , s , θ ) \pi(a, s, \theta) π(a,s,θ)、 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ(a∣s) 或 π θ ( a , s ) \pi_\theta(a, s) πθ(a,s)。

表格表示和函数表示之间的差异

最优policy的定义:

当表示为表格时,如果policy π \pi π 可以最大化每个 state value,则该policy π \pi π 是最优的。

当用函数表示时,如果policy π \pi π 可以最大化某些标量指标,则该policy π \pi π 是最优的。

获取action的概率:

在表格情况下,可以通过查找表格 policy 来直接获取在 s s s 处取 a a a 的概率。

在函数表示的情况下,需要在给定函数结构和参数的情况下计算 π ( a ∣ s , θ ) \pi(a|s, \theta) π(a∣s,θ) 的值。

更新policy的方法:

当用表格表示时,可以通过直接更改表中的条目来更新 policy π \pi π。

当用参数化函数表示时,policy π \pi π 不能再以这种方式更新。 相反,它只能通过改变参数 θ \theta θ 来更新。

策略梯度的基本思想:

第一,定义最优 policy 的标准(或目标函数): J ( θ ) J(\theta) J(θ),其可以定义最优policy。

第二,基于梯度的优化算法来搜索最优policy
θ t + 1 = θ t + α ∇ θ J ( θ t ) \theta_{t+1}=\theta_t+\alpha\nabla_\theta J(\theta_t) θt+1=θt+α∇θJ(θt)

Metrics to define optimal policies

有两个指标。

第一个指标 是平均 state value 或简称为平均值。 特别地,该度量定义为:
v ˉ π = ∑ s ∈ S d ( s ) v π ( s ) \bar{v}{\pi}=\sum{s\in\mathcal{S}}d(s)v_{\pi}(s) vˉπ=s∈S∑d(s)vπ(s)

  • v ˉ π \bar{v}_\pi vˉπ 是state value的加权平均值。

  • d ( s ) ≥ 0 d(s) \ge 0 d(s)≥0 是状态 s s s 的权重。

  • 由于 ∑ s ∈ S d ( s ) = 1 \sum_{s\in\mathcal{S}}d(s)=1 ∑s∈Sd(s)=1,可以将 d ( s ) d(s) d(s) 解释为概率分布。 那么,指标可以写为:
    v ˉ π = E [ v π ( S ) ] \bar{v}\pi=\mathbb{E}[v\pi(S)] vˉπ=E[vπ(S)]

    其中: S ∼ d S \sim d S∼d

Vector-product form:
v ˉ π = ∑ s ∈ S d ( s ) v π ( s ) = d T v π \bar{v}{\pi}=\sum{s\in\mathcal{S}}d(s)v_{\pi}(s)=d^{T}v_{\pi} vˉπ=s∈S∑d(s)vπ(s)=dTvπ

其中:
v π = [ ... , v π ( s ) , ... ] T ∈ R ∣ S ∣ d = [ ... , d ( s ) , ... ] T ∈ R ∣ S ∣ \begin{aligned}v_\pi&=[\ldots,v_\pi(s),\ldots]^T\in\mathbb{R}^{|\mathcal{S}|}\\d&=[\ldots,d(s),\ldots]^T\in\mathbb{R}^{|\mathcal{S}|}\end{aligned} vπd=[...,vπ(s),...]T∈R∣S∣=[...,d(s),...]T∈R∣S∣

关于选择分布 d d d,有两个方式:

第一种情况是 d d d 与policy π \pi π 无关。

这种情况相对简单,因为指标的梯度更容易计算。

在这种情况下,具体将 d d d 表示为 d 0 d_0 d0,将 v ˉ π \bar{v}{\pi} vˉπ 表示为 v ˉ π 0 \bar{v}{\pi}^0 vˉπ0

关于 d 0 d_0 d0 的选择:

一种简单的方法是将所有 state 同等重要,因此选择 d 0 ( s ) = 1 / ∣ S ∣ . d_0(s)=1/|\mathcal{S}|. d0(s)=1/∣S∣.。

该方法有一个特例是只对特定的state s 0 s_0 s0 感兴趣。 例如,某些任务中的情节总是从相同的state s 0 s_0 s0 开始。 那么,只关心从 s 0 s_0 s0开始的长期回报。 在这种情况下,
d 0 ( s 0 ) = 1 , d 0 ( s ≠ s 0 ) = 0. d_0(s_0)=1,\quad d_0(s\neq s_0)=0. d0(s0)=1,d0(s=s0)=0.

第二种情况是 d d d 取决于policy π \pi π。

一种常用的方法是选择 d d d 作为 d π ( s ) d_{\pi}(s) dπ(s),它是 π \pi π 下的平稳分布。

选择 d π d_{\pi} dπ 的解释如下。

  • 如果一个 state 从长远来看被频繁访问,那么它就更重要,值得更多重视。
  • 如果一个 state 很少被访问,那么给予它的权重较小。

第二个指标 是平均一步 reward 或简单的平均 reward。
r ˉ π ≐ ∑ s ∈ S d π ( s ) r π ( s ) = E [ r π ( S ) ] , \bar{r}\pi\doteq\sum{s\in\mathcal{S}}d_\pi(s)r_\pi(s)=\mathbb{E}[r_\pi(S)], rˉπ≐s∈S∑dπ(s)rπ(s)=E[rπ(S)],

其中, S ∼ d π S \sim d_{\pi} S∼dπ,
r π ( s ) ≐ ∑ a ∈ A π ( a ∣ s ) r ( s , a ) r_\pi(s)\doteq\sum_{a\in\mathcal{A}}\pi(a|s)r(s,a) rπ(s)≐a∈A∑π(a∣s)r(s,a)

权重 d π d_{\pi} dπ 是平稳分布。

r ˉ π \bar{r}_{\pi} rˉπ 只是一步即时reward的加权平均值。

一种等效定义!

假设 agent 遵循给定的 policy 并生成 reward 为 ( R t + 1 , R t + 2 , ⋯   ) (R_{t+1}, R_{t+2}, \cdots) (Rt+1,Rt+2,⋯) 的轨迹。

沿着这条trajectory 的平均单步 reward 是:
lim ⁡ n → ∞ 1 n E [ R t + 1 + R t + 2 + ⋯ + R t + n ∣ S t = s 0 ] = lim ⁡ n → ∞ 1 n E [ ∑ k = 1 n R t + k ∣ S t = s 0 ] \begin{aligned} &\lim_{n\to\infty}\frac1n\mathbb{E}\Big[R_{t+1}+R_{t+2}+\cdots+R_{t+n}|S_t=s_0\Big] \\ &=\lim_{n\to\infty}\frac1n\mathbb{E}\left[\sum_{k=1}^nR_{t+k}|S_t=s_0\right] \end{aligned} n→∞limn1E[Rt+1+Rt+2+⋯+Rt+n∣St=s0]=n→∞limn1E[k=1∑nRt+k∣St=s0]

其中 s 0 s_0 s0 是 trajectory 的起始 state。

一个重要的属性是:
lim ⁡ n → ∞ 1 n E [ ∑ k = 1 n R t + k ∣ S t = s 0 ] = lim ⁡ n → ∞ 1 n E [ ∑ k = 1 n R t + k ] = ∑ s d π ( s ) r π ( s ) = r ˉ π \begin{aligned} \begin{aligned}\lim_{n\to\infty}\frac{1}{n}\mathbb{E}\left[\sum_{k=1}^nR_{t+k}|S_t=s_0\right]\end{aligned}& \begin{aligned}=\lim_{n\to\infty}\frac{1}{n}\mathbb{E}\left[\sum_{k=1}^{n}R_{t+k}\right]\end{aligned} \\ &=\sum_sd_\pi(s)r_\pi(s) \\ &=\bar{r}_{\pi} \end{aligned} n→∞limn1E[k=1∑nRt+k∣St=s0]=n→∞limn1E[k=1∑nRt+k]=s∑dπ(s)rπ(s)=rˉπ

  • 起始state s 0 s_0 s0 并不重要。
  • r ˉ π \bar{r}_{\pi} rˉπ 的两个定义是等价的。

关于指标的备注 1

  • 所有这些指标都是 π \pi π 的函数。
  • 由于 π \pi π 由 θ \theta θ 参数化,因此这些指标是 θ \theta θ 的函数。
  • 不同的 θ \theta θ 值可以生成不同的指标值。
  • 可以搜索 θ \theta θ 的最佳值来最大化这些指标。

关于指标的备注 2

  • 度量可以在 γ ∈ ( 0 , 1 ) \gamma \in (0, 1) γ∈(0,1) 的discounted情况下定义,也可以在 γ = 1 \gamma = 1 γ=1 的undiscounted情况下定义。

关于指标的备注 3

  • 直观上, r ˉ π \bar{r}{\pi} rˉπ 更加短视,因为它只考虑即时reward,而 v ˉ π \bar{v}\pi vˉπ 则考虑整体步骤的总reward。

  • 然而,这两个指标是等效的。 在 γ ∈ ( 0 , 1 ) \gamma \in (0, 1) γ∈(0,1) 的 discounted 情况下,有:
    r ˉ π = ( 1 − γ ) v ˉ π \bar{r}\pi=(1-\gamma)\bar{v}\pi rˉπ=(1−γ)vˉπ

Excise:

在文献中会经常看到以下指标:
J ( θ ) = E [ ∑ t = 0 ∞ γ t R t + 1 ] J(\theta)=\mathbb{E}\left[\sum_{t=0}^\infty\gamma^tR_{t+1}\right] J(θ)=E[t=0∑∞γtRt+1]

从 S 0 ∼ d S_0 \sim d S0∼d 开始,然后是 A 0 A_0 A0, R 1 R_1 R1, S 1 S_1 S1, A 1 A_1 A1, R 2 R_2 R2, S 2 S_2 S2, ⋯ \cdots ⋯。

A t ∼ π ( S t ) A_t\sim\pi(S_t) At∼π(St) 并且 R t + 1 , S t + 1 ∼ p ( R t + 1 ∣ S t , A t ) , p ( S t + 1 ∣ S t , A t ) R_{t+1},S_{t+1}\sim p(R_{t+1}|S_t,A_t),p(S_{t+1}|S_t,A_t) Rt+1,St+1∼p(Rt+1∣St,At),p(St+1∣St,At)

因为这个指标与平均值相同,因为:
J ( θ ) = E [ ∑ t = 0 ∞ γ t R t + 1 ] = ∑ s ∈ S d ( s ) E [ ∑ t = 0 ∞ γ t R t + 1 ∣ S 0 = s ] = ∑ s ∈ S d ( s ) v π ( s ) = v ˉ π \begin{aligned} \begin{aligned}J(\theta)=\mathbb{E}\left[\sum_{t=0}^\infty\gamma^tR_{t+1}\right]\end{aligned}& =\sum_{s\in\mathcal{S}}d(s)\mathbb{E}\left[\sum_{t=0}^\infty\gamma^tR_{t+1}|S_0=s\right] \\ &=\sum_{s\in\mathcal{S}}d(s)v_{\pi}(s) \\ &=\bar{v}_{\pi} \end{aligned} J(θ)=E[t=0∑∞γtRt+1]=s∈S∑d(s)E[t=0∑∞γtRt+1∣S0=s]=s∈S∑d(s)vπ(s)=vˉπ

Gradients of the metrics

给定一个指标,接下来

  • 导出其梯度
  • 然后,应用基于梯度的方法来优化指标。

梯度计算是 policy 梯度方法中最复杂的部分之一! 那是因为

  • 首先,需要区分不同的度量 v ˉ π \bar{v}{\pi} vˉπ, r ˉ π \bar{r}{\pi} rˉπ, v ˉ π 0 \bar{v}_{\pi}^0 vˉπ0

其次,需要区分 discounted 和 undiscounted 的情况。

关于梯度的结果总结:
∇ θ J ( θ ) = ∑ s ∈ S η ( s ) ∑ a ∈ A ∇ θ π ( a ∣ s , θ ) q π ( s , a ) \nabla_\theta J(\theta)=\sum_{s\in\mathcal{S}}\eta(s)\sum_{a\in\mathcal{A}}\nabla_\theta\pi(a|s,\theta)q_\pi(s,a) ∇θJ(θ)=s∈S∑η(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)

其中:

  • J ( θ ) J(\theta) J(θ)可以是 v ˉ π \bar{v}{\pi} vˉπ, r ˉ π \bar{r}{\pi} rˉπ 或 v ˉ π 0 \bar{v}_{\pi}^0 vˉπ0。
  • "=" 可以表示严格相等、近似或成比例。
  • η \eta η 是 state 的分布或权重。

一些具体结果:
∇ θ r ˉ π ≃ ∑ s d π ( s ) ∑ a ∇ θ π ( a ∣ s , θ ) q π ( s , a ) , \nabla_\theta\bar{r}\pi\simeq\sum_sd\pi(s)\sum_a\nabla_\theta\pi(a|s,\theta)q_\pi(s,a), ∇θrˉπ≃s∑dπ(s)a∑∇θπ(a∣s,θ)qπ(s,a),

∇ θ v ˉ π = 1 1 − γ ∇ θ r ˉ π \nabla_\theta\bar{v}\pi=\frac1{1-\gamma}\nabla\theta\bar{r}_\pi ∇θvˉπ=1−γ1∇θrˉπ

∇ θ v ˉ π 0 = ∑ s ∈ S ρ π ( s ) ∑ a ∈ A ∇ θ π ( a ∣ s , θ ) q π ( s , a ) \nabla_\theta\bar{v}\pi^0=\sum{s\in\mathcal{S}}\rho_\pi(s)\sum_{a\in\mathcal{A}}\nabla_\theta\pi(a|s,\theta)q_\pi(s,a) ∇θvˉπ0=s∈S∑ρπ(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)

一种紧凑且有用的梯度形式:
∇ θ J ( θ ) = ∑ s ∈ S η ( s ) ∑ a ∈ A ∇ θ π ( a ∣ s , θ ) q π ( s , a ) = E [ ∇ θ ln ⁡ π ( A ∣ S , θ ) q π ( S , A ) ] \begin{aligned}\nabla_\theta J(\theta)&=\sum_{s\in\mathcal{S}}\eta(s)\sum_{a\in\mathcal{A}}\nabla_\theta\pi(a|s,\theta)q_\pi(s,a)\\&=\mathbb{E}\big[\nabla_\theta\ln\pi(A|S,\theta)q_\pi(S,A)\big]\end{aligned} ∇θJ(θ)=s∈S∑η(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)=E[∇θlnπ(A∣S,θ)qπ(S,A)]

其中, S ∼ η S \sim \eta S∼η, A ∼ π ( A ∣ S , θ ) A \sim \pi (A| S, \theta) A∼π(A∣S,θ)

Why is this expression useful?

可以用样本来近似梯度。
∇ θ J ≈ ∇ θ ln ⁡ π ( a ∣ s , θ ) q π ( s , a ) \nabla_\theta J\approx\nabla_\theta\ln\pi(a|s,\theta)q_\pi(s,a) ∇θJ≈∇θlnπ(a∣s,θ)qπ(s,a)

∇ θ J ( θ ) = ∑ s ∈ S η ( s ) ∑ a ∈ A ∇ θ π ( a ∣ s , θ ) q π ( s , a ) = E [ ∇ θ ln ⁡ π ( A ∣ S , θ ) q π ( S , A ) ] \begin{aligned}{\nabla_\theta J(\theta)}&=\sum_{s\in\mathcal{S}}\eta(s)\sum_{a\in\mathcal{A}}\nabla_\theta\pi(a|s,\theta)q_\pi(s,a)\\&=\mathbb{E}{\left[\nabla_\theta\ln\pi(A|S,\theta)q_\pi(S,A)\right]}\end{aligned} ∇θJ(θ)=s∈S∑η(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)=E[∇θlnπ(A∣S,θ)qπ(S,A)]

How to prove the above equation?

考虑函数 l n π ln \pi lnπ,其中 l n ln ln是自然对数。 很容易看出:
∇ θ ln ⁡ π ( a ∣ s , θ ) = ∇ θ π ( a ∣ s , θ ) π ( a ∣ s , θ ) \nabla_\theta\ln\pi(a|s,\theta)=\frac{\nabla_\theta\pi(a|s,\theta)}{\pi(a|s,\theta)} ∇θlnπ(a∣s,θ)=π(a∣s,θ)∇θπ(a∣s,θ)

因此:
∇ θ π ( a ∣ s , θ ) = π ( a ∣ s , θ ) ∇ θ ln ⁡ π ( a ∣ s , θ ) . \nabla_\theta\pi(a|s,\theta)=\pi(a|s,\theta)\nabla_\theta\ln\pi(a|s,\theta). ∇θπ(a∣s,θ)=π(a∣s,θ)∇θlnπ(a∣s,θ).

因此,可得:
∇ θ J = ∑ s d ( s ) ∑ a ∇ θ π ( a ∣ s , θ ) q π ( s , a ) = ∑ s d ( s ) ∑ a π ( a ∣ s , θ ) ∇ θ ln ⁡ π ( a ∣ s , θ ) q π ( s , a ) = E S ∼ d [ ∑ a π ( a ∣ S , θ ) ∇ θ ln ⁡ π ( a ∣ S , θ ) q π ( S , a ) ] = E S ∼ d , A ∼ π [ ∇ θ ln ⁡ π ( A ∣ S , θ ) q π ( S , A ) ] ≐ E [ ∇ θ ln ⁡ π ( A ∣ S , θ ) q π ( S , A ) ] \begin{aligned} \nabla_{\theta}J& \begin{aligned}&=\sum_sd(s)\sum_a{\nabla_\theta\pi(a|s,\theta)}q_\pi(s,a)\end{aligned} \\ &=\sum_sd(s)\sum_a\pi(a|s,\theta)\nabla_\theta\ln\pi(a|s,\theta)q_\pi(s,a) \\ &=\mathbb{E}{{S\sim d}}\left[\sum_a\pi(a|S,\theta)\nabla\theta\ln\pi(a|S,\theta)q_\pi(S,a)\right] \\ &=\mathbb{E}{S\sim d,{A}\sim\pi}\begin{bmatrix}\nabla\theta\ln\pi(A|S,\theta)q_\pi(S,A)\end{bmatrix} \\ &\doteq\mathbb{E}\big[\nabla_\theta\ln\pi(A|S,\theta)q_\pi(S,A)\big] \end{aligned} ∇θJ=s∑d(s)a∑∇θπ(a∣s,θ)qπ(s,a)=s∑d(s)a∑π(a∣s,θ)∇θlnπ(a∣s,θ)qπ(s,a)=ES∼d[a∑π(a∣S,θ)∇θlnπ(a∣S,θ)qπ(S,a)]=ES∼d,A∼π[∇θlnπ(A∣S,θ)qπ(S,A)]≐E[∇θlnπ(A∣S,θ)qπ(S,A)]

因为需要计算 l n π ( a ∣ s , θ ln π(a|s, \theta lnπ(a∣s,θ),所以我们必须保证对于所有 s s s, a a a, θ \theta θ:
π ( a ∣ s , θ ) > 0 \pi(a|s,\theta)>0 π(a∣s,θ)>0

这可以通过使用 softmax 函数来处理,该函数可以将向量中的条目从 ( − ∞ , + ∞ ) (− \infty, + \infty) (−∞,+∞)标准化为 ( 0 , 1 ) (0, 1) (0,1)。

例如,对于任何向量 x = [ x 1 , ⋯   , x n ] T x = [x_1, \cdots , x_n]^T x=[x1,⋯,xn]T,有:
z i = e x i ∑ j = 1 n e x j z_i=\frac{e^{x_i}}{\sum_{j=1}^ne^{x_j}} zi=∑j=1nexjexi

其中, z i ∈ ( 0 , 1 ) z_i \in (0, 1) zi∈(0,1) 并且 ∑ i = 1 n z i = 1 \sum_{i=1}^nz_i=1 ∑i=1nzi=1。

policy 函数的形式为:
π ( a ∣ s , θ ) = e h ( s , a , θ ) ∑ a ′ ∈ A e h ( s , a ′ , θ ) , \pi(a|s,\theta)=\frac{e^{h(s,a,\theta)}}{\sum_{a^{\prime}\in\mathcal{A}}e^{h(s,a^{\prime},\theta)}}, π(a∣s,θ)=∑a′∈Aeh(s,a′,θ)eh(s,a,θ),

其中, h ( s , a , θ ) h(s, a, \theta) h(s,a,θ)是其他函数。

这种基于 softmax 函数的形式可以通过输入为 s s s、参数为 θ \theta θ 的神经网络来实现。 网络有 ∣ A ∣ |\mathcal{A}| ∣A∣ 输出,每个输出对应于动作 a a a 的 π ( a ∣ s , θ ) \pi(a|s, \theta) π(a∣s,θ)。 输出层的激活函数应该是 softmax。

由于对于所有 a a a, π ( a ∣ s , θ ) > 0 \pi(a|s, \theta) > 0 π(a∣s,θ)>0,因此参数化策略是随机的,因此具有探索性。

还存在确定性 policy 梯度(DPG)方法。

Gradient-ascent algorithm (REINFORCE)

第一个策略梯度算法来寻找最优策略:

最大化 J ( θ ) J(\theta) J(θ) 的梯度上升算法为:
θ t + 1 = θ t + α ∇ θ J ( θ ) = θ t + α E [ ∇ θ ln ⁡ π ( A ∣ S , θ t ) q π ( S , A ) ] \begin{aligned} \theta_{t+1}& =\theta_t+\alpha\nabla_\theta J(\theta) \\ &=\theta_t+\alpha\mathbb{E}\bigg[\nabla_\theta\ln\pi(A|S,\theta_t)q_\pi(S,A)\bigg] \end{aligned} θt+1=θt+α∇θJ(θ)=θt+αE[∇θlnπ(A∣S,θt)qπ(S,A)]

真实梯度可以用随机梯度代替:
θ t + 1 = θ t + α ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) q π ( s t , a t ) \theta_{t+1}=\theta_t+\alpha\nabla_\theta\ln\pi(a_t|s_t,\theta_t)q_\pi(s_t,a_t) θt+1=θt+α∇θlnπ(at∣st,θt)qπ(st,at)

此外,由于 q π q_{\pi} qπ 未知,因此可以近似:
θ t + 1 = θ t + α ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) q t ( s t , a t ) \theta_{t+1}=\theta_t+\alpha\nabla_\theta\ln\pi(a_t|s_t,\theta_t){q_t(s_t,a_t)} θt+1=θt+α∇θlnπ(at∣st,θt)qt(st,at)
How to do sampling?
E S ∼ d , A ∼ π [ ∇ θ ln ⁡ π ( A ∣ S , θ t ) q π ( S , A ) ] ⟶ ∇ θ ln ⁡ π ( a ∣ s , θ t ) q π ( s , a ) \mathbb{E}{{S\sim d,A\sim}\pi}\left[\nabla\theta\ln\pi(A|S,\theta_t)q_\pi(S,A)\right]\longrightarrow\nabla_\theta\ln\pi(a|s,\theta_t)q_\pi(s,a) ES∼d,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)]⟶∇θlnπ(a∣s,θt)qπ(s,a)
S S S 的采样: S ∼ d S \sim d S∼d,其中分布 d d d 是 π \pi π 下的长期行为。

A A A 的采样: A ∼ π ( A ∣ S , θ ) A \sim \pi(A|S, \theta) A∼π(A∣S,θ)。 因此, a t a_t at 应该在 s t s_t st 处的 π ( θ t ) \pi(θ_t) π(θt) 之后进行采样。

因此,策略梯度方法是on-policy的。

How to interpret this algorithm?

因为:
∇ θ ln ⁡ π ( a t ∣ s t , θ t ) = ∇ θ π ( a t ∣ s t , θ t ) π ( a t ∣ s t , θ t ) \nabla_\theta\ln\pi(a_t|s_t,\theta_t)=\frac{\nabla_\theta\pi(a_t|s_t,\theta_t)}{\pi(a_t|s_t,\theta_t)} ∇θlnπ(at∣st,θt)=π(at∣st,θt)∇θπ(at∣st,θt)

因此,算法可以写为:
θ t + 1 = θ t + α ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) q t ( s t , a t ) = θ t + α ( q t ( s t , a t ) π ( a t ∣ s t , θ t ) ) ⏟ β t ∇ θ π ( a t ∣ s t , θ t ) . \begin{aligned} \theta_{t+1}& \begin{aligned}=\theta_t+\alpha\nabla_\theta\ln\pi(a_t|s_t,\theta_t)q_t(s_t,a_t)\end{aligned} \\ &=\theta_t+\alpha\underbrace{\left(\frac{q_t(s_t,a_t)}{\pi(a_t|s_t,\theta_t)}\right)}{\beta_t}\nabla\theta\pi(a_t|s_t,\theta_t). \end{aligned} θt+1=θt+α∇θlnπ(at∣st,θt)qt(st,at)=θt+αβt (π(at∣st,θt)qt(st,at))∇θπ(at∣st,θt).

因此,有算法的重要表达式:
θ t + 1 = θ t + α β t ∇ θ π ( a t ∣ s t , θ t ) \theta_{t+1}=\theta_t+\alpha\beta_t\nabla_\theta\pi(a_t|s_t,\theta_t) θt+1=θt+αβt∇θπ(at∣st,θt)

它是一种最大化 π ( a t ∣ s t , θ ) \pi(a_t|s_t, \theta) π(at∣st,θ) 的梯度上升算法:
θ t + 1 = θ t + α β t ∇ θ π ( a t ∣ s t , θ t ) \theta_{t+1}=\theta_t+\alpha\beta_t\nabla_\theta\pi(a_t|s_t,\theta_t) θt+1=θt+αβt∇θπ(at∣st,θt)

当 α β t \alpha \beta_t αβt足够小时:

如果 β t > 0 \beta_t > 0 βt>0,选择 ( s t , a t ) (s_t, a_t) (st,at) 的概率就会增强:
π ( a t ∣ s t , θ t + 1 ) > π ( a t ∣ s t , θ t ) \pi(a_t|s_t,\theta_{t+1})>\pi(a_t|s_t,\theta_t) π(at∣st,θt+1)>π(at∣st,θt)
β t \beta_t βt越大,增强作用越强。

如果 β t < 0 \beta_t < 0 βt<0,则 π ( a t ∣ s t , θ t + 1 ) < π ( a t ∣ s t , θ t ) \pi_(a_t|s_t, \theta_{t+1}) < \pi(a_t|s_t, \theta_t) π(at∣st,θt+1)<π(at∣st,θt)。

当 θ t + 1 − θ t \theta_{t+1} − \theta_t θt+1−θt 足够小时,有:
π ( a t ∣ s t , θ t + 1 ) ≈ π ( a t ∣ s t , θ t ) + ( ∇ θ π ( a t ∣ s t , θ t ) ) T ( θ t + 1 − θ t ) = π ( a t ∣ s t , θ t ) + α β t ( ∇ θ π ( a t ∣ s t , θ t ) ) T ( ∇ θ π ( a t ∣ s t , θ t ) ) = π ( a t ∣ s t , θ t ) + α β t ∥ ∇ θ π ( a t ∣ s t , θ t ) ∥ 2 \begin{aligned} \pi(a_t|s_t,\theta_{t+1})& \approx\pi(a_t|s_t,{\theta_t})+(\nabla_\theta\pi(a_t|s_t,{\theta_t}))^T({\theta_{t+1}-\theta_t}) \\ &=\pi(a_t|s_t,{\theta_t})+\alpha\beta_t(\nabla_\theta\pi(a_t|s_t,\theta_t))^T(\nabla_\theta\pi(a_t|s_t,\theta_t)) \\ &=\pi(a_t|s_t,{\theta_t})+\alpha\beta_t\|\nabla_\theta\pi(a_t|s_t,\theta_t)\|^2 \end{aligned} π(at∣st,θt+1)≈π(at∣st,θt)+(∇θπ(at∣st,θt))T(θt+1−θt)=π(at∣st,θt)+αβt(∇θπ(at∣st,θt))T(∇θπ(at∣st,θt))=π(at∣st,θt)+αβt∥∇θπ(at∣st,θt)∥2

θ t + 1 = θ t + α ( q t ( s t , a t ) π ( a t ∣ s t , θ t ) ) ⏟ β t ∇ θ π ( a t ∣ s t , θ t ) \theta_{t+1}=\theta_t+\alpha\underbrace{\left({\frac{q_t(s_t,a_t)}{\pi(a_t|s_t,\theta_t)}}\right)}{\beta_t}\nabla\theta\pi(a_t|s_t,\theta_t) θt+1=θt+αβt (π(at∣st,θt)qt(st,at))∇θπ(at∣st,θt)

系数 η t \eta_t ηt可以很好地平衡勘探 exploration 和开采 exploitation。

首先, η t \eta_t ηt 与 q t ( s t , a t ) q_t(s_t, a_t) qt(st,at) 成正比

  • 如果 q t ( s t , a t ) q_t(s_t, a_t) qt(st,at) 很大,则 β t \beta_t βt 也很大。
  • 因此,算法旨在增强具有更大价值的action。

其次, β t \beta_t βt 与 π ( a t ∣ s t , θ t ) \pi(a_t|s_t, \theta_t) π(at∣st,θt) 成反比。

  • 如果 π ( a t ∣ s t , θ t ) \pi(a_t|s_t, \theta_t) π(at∣st,θt) 较小,则 β t \beta_t βt 较大。
  • 因此,算法旨在探索概率较低的action。

因此,
θ t + 1 = θ t + α ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) q π ( s t , a t ) \theta_{t+1}=\theta_t+\alpha\nabla_\theta\ln\pi(a_t|s_t,\theta_t)q_\pi(s_t,a_t) θt+1=θt+α∇θlnπ(at∣st,θt)qπ(st,at)

被替换为:
θ t + 1 = θ t + α ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) q t ( s t , a t ) \theta_{t+1}=\theta_t+\alpha\nabla_\theta\ln\pi(a_t|s_t,\theta_t)q_t(s_t,a_t) θt+1=θt+α∇θlnπ(at∣st,θt)qt(st,at)

其中, q t ( s t , a t ) q_t(s_t, a_t) qt(st,at) 是 q π ( s t , a t ) q_{\pi}(s_t, a_t) qπ(st,at) 的近似值。

  • 如果 q π ( s t , a t ) q_{\pi}(s_t, a_t) qπ(st,at) 通过Monte Carlo 估计来近似,则该算法有一个具体名称:REINFORCE。
  • REINFORCE 是最早、最简单的策略梯度算法之一。
  • 许多其他策略梯度算法(例如 actor-critic 方法)可以通过扩展 REINFORCE 来获得。

Summary

Contents of this lecture:

  • Metrics for optimality
  • Gradients of the metrics
  • Gradient-ascent algorithm
  • A special case: REINFORCE

以上内容为B站西湖大学智能无人系统 强化学习的数学原理 公开课笔记。

相关推荐
视觉语言导航几秒前
清华大学城市空间具身连续视觉感知问答基准测试!UrbanVideo-Bench:首个针对多模态大模型的运动认知评估数据集
人工智能·深度学习·具身智能
天行者@4 分钟前
卷积神经网络可视化
人工智能·神经网络·cnn
EdwardYange7 分钟前
【说下线程本地变量ThreadLocal及其用法】
java·jvm·算法
实心儿儿7 分钟前
数组的介绍
数据结构·算法
Dream Algorithm20 分钟前
边缘计算(Edge Computing)
人工智能·边缘计算
新智元22 分钟前
OpenAI 紧急上书,矛头直指 DeepSeek!15 页提案欲锁死中国 AI
人工智能·openai
新智元24 分钟前
苏妈击溃英特尔再战英伟达,十年逆袭市值飙至 1600 亿!AMD 怪兽完爆 4090 7.3 倍
人工智能·openai
新智元1 小时前
Anthropic CEO:全体失业好过 50% 失业!AI 将接管所有代码,但可以一键「躺平」
人工智能·openai
什码情况1 小时前
T2.小牛架炮 - 美团机试真题题解
数据结构·c++·算法
Brave heart1 小时前
大语言模型打卡学习DAY1
人工智能·学习·语言模型