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