【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站西湖大学智能无人系统 强化学习的数学原理 公开课笔记。

相关推荐
xiaoshiguang38 分钟前
LeetCode:222.完全二叉树节点的数量
算法·leetcode
爱吃西瓜的小菜鸡10 分钟前
【C语言】判断回文
c语言·学习·算法
别NULL12 分钟前
机试题——疯长的草
数据结构·c++·算法
Jeremy_lf13 分钟前
【生成模型之三】ControlNet & Latent Diffusion Models论文详解
人工智能·深度学习·stable diffusion·aigc·扩散模型
TT哇16 分钟前
*【每日一题 提高题】[蓝桥杯 2022 国 A] 选素数
java·算法·蓝桥杯
桃花键神1 小时前
AI可信论坛亮点:合合信息分享视觉内容安全技术前沿
人工智能
野蛮的大西瓜1 小时前
开源呼叫中心中,如何将ASR与IVR菜单结合,实现动态的IVR交互
人工智能·机器人·自动化·音视频·信息与通信
CountingStars6192 小时前
目标检测常用评估指标(metrics)
人工智能·目标检测·目标跟踪
yuanbenshidiaos2 小时前
C++----------函数的调用机制
java·c++·算法
唐叔在学习2 小时前
【唐叔学算法】第21天:超越比较-计数排序、桶排序与基数排序的Java实践及性能剖析
数据结构·算法·排序算法