首页摘要:
基于值函数近似的方法,例如Deep Q-learning,存在无法处理连续动作的缺点。因此,策略梯度方法被提出来解决这个问题。本文主要从策略梯度的推导、策略梯度算法框架两个方面来进行介绍。
策略梯度的计算
Deep learning方法主要存在如下几点不足:
(1)无法处理连续动作。因为其样本目标qq值的计算涉及到求取最大q值的动作,如果动作是连续的,则无法求取。
(2)无法处理随机策略问题,从而可能错过最优解。同样地,其样本目标q值的计算涉及到贪婪法max,无法应用ϵ−greedy随机策略。
因此我们试图对策略求取梯度,找到最优策略,同时这样也能处理连续状态和连续动作。大概做法是采用神经网络(我们称这个网络为actor网络,表示选择动作的策略网络),输入为状态S,输出为策略π。假设该神经网络参数为θ,那么策略可以表示成πθ。很自然的是,我们希望策略πθ下得到的回报(reward)越大越好,因此目标为:
maxmize ˉrθ=Eτ∼πθ[r(τ)]对于上式的解释,可以用下图来进行解释。在策略πθ下(注意因为这是随机策略)一个可能的包含动作和状态的序列τ中,所有时刻的奖励之和为:r(τ)=r1+r2+…+rT,其中T为序列长度,假设pθ(at|st)为时刻t时在状态st采取动作at的概率,因此该序列的概率τ是pθ(πτ)=pθ(s1)∏Tt=1pθ(ai|si)pθ(si+1|aisi)。
那么,ˉrθ可以表示成:
ˉrθ=∑τ∼πθ[r(τ)pθ(τ)]为了使其最大化,可以利用梯度上升的方法进行优化,取其梯度得到:
∇ˉrθ=∑τ∼πθ[r(τ)∇pθ(τ)]根据公式∇f(x)=f(x)∇log(f(x)),上式可以转换为:
∇ˉrθ=∑τ∼πθ[r(τ)pθ(τ)∇log pθ(τ)]上式等价于:
∇ˉrθ=Eτ∼pθ[r(τ)∇log pθ(τ)]在实际应用中,我们通过大量抽取N个样本来近似上式:
∇ˉrθ=1NN∑n=1r(τn)∇log pθ(τn)对状态动作序列τ中每一步奖励求和得到:
∇ˉrθ=1NN∑n=1T∑t=1r(τn)∇log pθ(ant|snt)在这个公式下我们知道,我们希望奖励越大的动作其概率的增加∇log pθ(ant|snt)越大,但是当奖励都为正的情况下,如果一直没有采样到奖励最大的动作,那么其他动作的概率都上升了之后,由于所有动作之和为1,那么奖励最大的动作必然下降。因此,我们考虑对奖励项r(τn)减去一个基准(baseline),这个baseline取r(τn)的期望E[r(τ)],这样做的好处是使得奖励最小的动作概率会下降(因为算法总是希望ˉrθ大于0),也就是说,这样可以尽量避免采取奖励小的动作。那么,公式可以改写成:
∇ˉrθ=1NN∑n=1T∑t=1(r(τn)−b)∇log pθ(ant|snt), b=E[r(τ)]进一步,对于每个样本而言,想象它是在线运行,当采取一个动作时,它的回报r(τn)和前面时刻动作无关,而后续时刻的奖励则应该打个折扣,因此r(τn)可以写成G(τn)=∑Tnt′=tγt′−trnt′的形式,其实这个就是动作价值函数Qπθ(snt,ant),综上所述,回报的梯度可以表示成:
∇ˉrθ=1NN∑n=1T∑t=1(Tn∑t′=tγt′−trt′−b)∇log pθ(ant|snt), b=E[γt′−trnt′]=1NN∑n=1T∑t=1(Qπθ(snt,ant)−b)∇log pθ(ant|snt), b=E[Qπ(st,at)]策略函数的设计
(1)考虑离散动作,可以将策略pθ(a|s)=πθ(s,a)设计为:
πθ(s,a)=eϕ(s,a)Tθ∑b∈Aeϕ(s,b)Tθ其中,ϕ(⋅)是神经网络表征的函数。那么可以求其梯度:
∇θlogπθ(s,a)=ϕ(s,a)−Eτ∼πθ[ϕ(s,.)](2)考虑连续动作,可以将动作的概率分布视为高斯分布N(ϕ(s)Tθ,σ2)那么策略概率的微分为:
∇θlogπθ(s,a)=(a−ϕ(s)Tθ)ϕ(s)σ2蒙特卡洛方法下的策略梯度算法
本节为了理解策略梯度,利用最简单的蒙特卡洛方法来说明策略梯度算法是如何应用的。在这里,我们采用价值函数V(snt)来代替策略梯度公式中的动作价值函数Qπθ(snt,ant),详细流程如下:
输入:N个蒙特卡罗完整序列,训练步长α
输出:策略函数的参数θ
(1)用蒙特卡罗法计算每个序列每个时间位置t的状态价值V(snt)
(2)对每个序列每个时间位置t ,使用梯度上升法,更新策略函数的参数θ:
θ=θ+α=1NN∑n=1T∑t=1(V(snt)−b)∇log pθ(ant|snt), b=E[V(snt)](3)返回策略函数的参数θ
结语
至此,我们介绍完了策略梯度方法。从它的算法流程可以看出,除了可以对连续状态、连续动作操作之外,完美地继承了蒙特卡洛方法的缺点——需要等序列采样结束才能进行计算。因此下一篇文章着重介绍如何融合基于值函数近似和策略梯度的方法来解决这个问题。