深度增强学习David Silver(七)——Policy Gradient

本文主要内容:

  • Finite Difference Policy Gradient
  • Monte-Carlo Policy Gradient

上节课我们使用参数估计了价值函数和行动-价值函数,而当讲到策略时,我们只提到 ϵ \epsilon ϵ-greedy。在这节课,我们将会直接参数化策略 π θ ( s , a ) = P ( a ∣ s , θ ) \pi_\theta(s,a)=\sf{P}(a|s,\theta) πθ(s,a)=P(as,θ)

增强学习可分为Value-Based、Policy-Based以及二者结合的Actor-Critic。Value-Based的增强学习的策略(比如 ϵ \epsilon ϵ-greedy)是不变的,即在某个状态,选择哪种行动是固定的。Policy-Based的增强学习会学习不同的策略,即在某个状态下多少的概率怎么做,这个概率可能会不断地调整。policy-based和value-based如下图所示:
深度增强学习David Silver(七)——Policy Gradient_第1张图片

Policy-Based的增强学习优点有:

  • 能收敛到能达到的最优解
  • 在高维空间或连续的行为空间中高效
  • 能学习随机策略

缺点:

  • 通常收敛到局部最优而非全局最优
  • 评估一个策略通常低效(这个过程可能慢,但是具有更高的可变性,其中也会出现很多并不有效的尝试),而且方差高

那么给定一个具有参数 θ \theta θ的策略 π θ ( s , a ) \pi_\theta(s,a) πθ(s,a),判断这个策略的优劣?通常有三种方法:

  • 使用初始价值来判断: J 1 ( θ ) = V π θ ( s 1 ) = E π θ [ v 1 ] J_1(\theta)=V^{\pi_\theta}(s_1)=\sf{E}_{\pi_\theta}[v_1] J1(θ)=Vπθ(s1)=Eπθ[v1]
  • 使用平均价值 J a v V ( θ ) = ∑ s d π θ ( s ) V π θ ( s ) J_{avV}(\theta)=\sum_sd^{\pi_\theta}(s)V^{\pi_\theta}(s) JavV(θ)=sdπθ(s)Vπθ(s)
  • 使用每次time-step的平均奖励 J a v R ( θ ) = ∑ s d π θ ( s ) ∑ a π θ ( s , a ) R s a J_{avR}(\theta)=\sum_sd^{\pi_\theta}(s)\sum_a\pi_\theta(s,a)R_s^a JavR(θ)=sdπθ(s)aπθ(s,a)Rsa,其中 d π θ ( s ) d_{\pi_\theta}(s) dπθ(s)是策略 π θ \pi_\theta πθ的马尔科夫链的平稳分布(也就是当应用策略 π θ \pi_\theta πθ,达到收敛的分布)。

通常使用梯度下降法通过最大化 J ( θ ) J(\theta) J(θ)来确定 θ \theta θ的取值。定义策略梯度为:
∇ θ J ( θ ) = ( ∂ J ( θ ) ∂ θ 1 ⋮ ∂ J ( θ ) ∂ θ n ) \nabla_\theta J(\theta)=\begin{pmatrix} \frac{\partial J(\theta)}{\partial \theta_1} \\ \vdots \\ \frac{\partial J(\theta)}{\partial \theta_n} \end{pmatrix} θJ(θ)=θ1J(θ)θnJ(θ)

假设策略 π θ \pi_\theta πθ为零的时候可微,并且已知梯度 ∇ θ π θ ( s , a ) \nabla_\theta \pi_\theta(s,a) θπθ(s,a),定义 ∇ θ l o g π θ ( s , a ) \nabla_\theta log \pi_\theta(s,a) θlogπθ(s,a)为得分函数(score function)。二者关系如下:
因为 ∇ θ l o g π θ ( s , a ) = ∇ θ π θ ( s , a ) π θ ( s , a ) \nabla_\theta log \pi_\theta(s,a)=\frac{\nabla_\theta \pi_\theta(s,a)}{\pi_\theta(s,a)} θlogπθ(s,a)=πθ(s,a)θπθ(s,a)
所以
∇ θ π θ ( s , a ) = π θ ( s , a ) ∇ θ π θ ( s , a ) π θ ( s , a ) = π θ ( s , a ) ∇ θ l o g π θ ( s , a ) \nabla_\theta \pi_\theta(s,a)=\pi_\theta(s,a) \frac{\nabla_\theta \pi_\theta(s,a)}{\pi_\theta(s,a)}=\pi_\theta(s,a) \nabla_\theta log \pi_\theta(s,a) θπθ(s,a)=πθ(s,a)πθ(s,a)θπθ(s,a)=πθ(s,a)θlogπθ(s,a)

接下来我们考虑一个只走一步的MDP,对它使用策略梯度下降。 π θ ( s , a ) \pi_\theta(s,a) πθ(s,a)表示关于参数 θ \theta θ的函数,映射是 p ( a ∣ s , θ ) p(a|s,\theta) p(as,θ)。它在状态s向前走一步,获得奖励 r = R s , a r=R_{s,a} r=Rs,a。那么选择行动a的奖励为 π θ ( s , a ) R s , a \pi_\theta (s,a)R_{s,a} πθ(s,a)Rs,a,在状态s的加权奖励为 ∑ a ∈ A π θ ( s , a ) R s , a \sum_{a \in A} \pi_\theta(s,a) R_{s,a} aAπθ(s,a)Rs,a,应用策略所能获得的奖励期望及梯度为:
J ( θ ) = E π θ [ r ] = ∑ s ∈ S d ( s ) ∑ a ∈ A π θ ( s , a ) R s , a ∇ θ J ( θ ) = ∑ s ∈ S d ( s ) ∑ a ∈ A π θ ( s , a ) ∇ θ l o g π θ ( s , a ) R s , a = E π θ [ ∇ θ l o g π θ ( s , a ) r ] J(\theta)=\mathbb{E}_{\pi_\theta}[r]=\sum_{s \in S}d(s)\sum_{a \in A} \pi_\theta(s,a) R_{s,a} \\ \nabla_\theta J(\theta)=\color{red}{\sum_{s \in S}d(s)\sum_{a \in A} \pi_\theta(s,a)} \nabla_\theta log \pi_\theta(s,a) R_{s,a}=\mathbb{E}_{\pi_\theta}[\nabla_\theta log \pi_\theta(s,a)r] J(θ)=Eπθ[r]=sSd(s)aAπθ(s,a)Rs,aθJ(θ)=sSd(s)aAπθ(s,a)θlogπθ(s,a)Rs,a=Eπθ[θlogπθ(s,a)r]

再考虑走了多步的MDP,使用 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a)代替奖励值r,对于任意可微的策略,策略梯度为:
∇ θ J ( θ ) = E π θ [ ∇ θ l o g π θ ( s , a ) Q π θ ( s , a ) ] \nabla_\theta J(\theta)=\mathbb{E}_{\pi_\theta}[\nabla_\theta log \pi_\theta(s,a)Q^{\pi_\theta}(s,a)] θJ(θ)=Eπθ[θlogπθ(s,a)Qπθ(s,a)]

Monte-Carlo策略梯度通过采样episode来更新参数:
使用随机梯度上升法更新参数;使用策略梯度法;使用return v t v_t vt作为 Q π θ ( s t , a t ) Q^{\pi_\theta}(s_t,a_t) Qπθ(st,at)的无偏估计。则 Δ θ t = α ∇ θ l o g π θ ( s t , a t ) v t \Delta \theta_t=\alpha \nabla_\theta log \pi_\theta(s_t,a_t)v_t Δθt=αθlogπθ(st,at)vt,具体如下:
深度增强学习David Silver(七)——Policy Gradient_第2张图片

Monte-Carlo策略梯度的方差较高,因此放弃用return来估计行动-价值函数Q,而是使用critic来估计Q。 Q π θ ( s , a ) ≈ Q w ( s , a ) Q^{\pi_\theta}(s,a) \approx Q_w(s,a) Qπθ(s,a)Qw(s,a)。这是一个名为actor-critic的算法,具有两套参数。(1)critic的参数为w。(2)actor的参数为 θ \theta θ,根据critic建议的方向更新。

critic其实就是在评估策略。假设Q约为特征的线性组合: Q w ( s , a ) = ϕ ( s , a ) T w Q_w(s,a)=\phi(s,a)^T w Qw(s,a)=ϕ(s,a)Tw。critic根据线性TD(0)来更新w,actor通过策略梯度来更新 θ \theta θ
深度增强学习David Silver(七)——Policy Gradient_第3张图片

在actor-critic算法中,对策略进行了估计,这会产生误差,但是当满足以下两个条件时,策略梯度是准确的

  1. 价值函数的估计值没有和策略相违背。 ∇ w Q w ( s , a ) = ∇ θ l o g π θ ( s , a ) \nabla _w Q_w(s,a)=\nabla_\theta log \pi_\theta(s,a) wQw(s,a)=θlogπθ(s,a)
  2. 价值函数的参数w能够最小化误差: ϵ = E π θ [ ( Q π θ ( s , a ) − Q w ( s , a ) ) 2 ] \epsilon = \mathbb{E}_{\pi_\theta}[(Q^{\pi_\theta}(s,a)-Q_w(s,a))^2] ϵ=Eπθ[(Qπθ(s,a)Qw(s,a))2]

另外,通过将策略梯度减去一个基线函数B(s),可以在不改变期望的情况下,降低方差。证明不改变期望,就是证明相加和为0。
E π θ [ ∇ θ l o g π θ ( s , a ) B ( s ) ] = ∑ s ∈ S d π θ ( s ) ∑ a ∇ θ π θ ( s , a ) B ( s ) = ∑ s ∈ S d π θ ( s ) B ( s ) ∇ θ ∑ a ∈ A π θ ( s , a ) = 0 \mathbb{E}_{\pi_\theta}[\nabla_\theta log \pi_\theta(s,a)B(s)]=\sum_{s \in S}d^{\pi_\theta}(s)\sum_a \nabla_\theta \pi_\theta(s,a)B(s)\\ =\sum_{s \in S}d^{\pi_\theta}(s)B(s) \nabla_\theta \sum_{a \in A} \pi_\theta(s,a)=0 Eπθ[θlogπθ(s,a)B(s)]=sSdπθ(s)aθπθ(s,a)B(s)=sSdπθ(s)B(s)θaAπθ(s,a)=0

状态价值函数 V π θ ( s ) V^{\pi_\theta}(s) Vπθ(s)是一个好的基线。因此可以通过使用优势函数**(advantage function)** A π θ ( s , a ) A^{\pi_\theta}(s,a) Aπθ(s,a)重写价值梯度函数。
A π θ ( s , a ) = Q π θ ( s , a ) − V π θ ( s ) ∇ θ J ( θ ) = E π θ [ ∇ θ l o g π θ ( s , a ) A π θ ( s , a ) ] A^{\pi_\theta}(s,a)=Q^{\pi_\theta}(s,a)-V^{\pi_\theta}(s)\\ \nabla_\theta J(\theta)=\mathbb{E}_{\pi_\theta}[\nabla_\theta log \pi_\theta(s,a)A^{\pi_\theta}(s,a)] Aπθ(s,a)=Qπθ(s,a)Vπθ(s)θJ(θ)=Eπθ[θlogπθ(s,a)Aπθ(s,a)]

V π θ ( s ) V^{\pi_\theta}(s) Vπθ(s)是真实的价值函数,TD算法利用bellman方程来逼近真实值,误差为 δ π θ = r + γ V π θ ( s ′ ) − V π θ ( s ) \delta^{\pi_\theta}=r+\gamma V^{\pi_\theta}(s')-V^{\pi_\theta}(s) δπθ=r+γVπθ(s)Vπθ(s)。该误差是优势函数的无偏估计。因此我们可以使用该误差计算策略梯度:
∇ θ J ( θ ) = E π θ [ ∇ θ l o g π θ ( s , a ) δ π θ ] \nabla_\theta J(\theta)=\mathbb{E}_{\pi_\theta}[\nabla_\theta log \pi_\theta(s,a) \delta^{\pi_\theta}] θJ(θ)=Eπθ[θlogπθ(s,a)δπθ]
该方法只需要critic,不需要actor。

最后总结一下策略梯度算法:
深度增强学习David Silver(七)——Policy Gradient_第4张图片

你可能感兴趣的:(DRL)