0%

5-基于策略梯度的RL

[TOC]

  • 策略梯度
    • 最优梯度的度量
    • 度量的梯度
  • 基于蒙特卡洛的策略梯度——REINFORCE
    • 梯度上升算法
  • AC方法
    • QAC
    • A2C:通过引入偏置量减少估计的方差
    • off-policy AC:将on-policy方法转换为 off-policy方法
      • 重要性采样
    • DPG:随机策略变为确定性策略

5.1 策略梯度

之前的方法以策略为核心,基于价值产生策略,并用表格表示策略

策略梯度 (policy gradient) 是基于策略的方法,用策略函数近似策略

利用机器学习模型的泛化能力,将已知状态上的策略泛化到未知状态上的策略

目标函数是策略的函数,通过优化目标函数直接获取最优策略

  • A-C方法,实际上是将策略梯度与价值函数结合的方法

5.1.1 策略的表示

表格型策略

策略为在每个状态下 sS 采取每个动作 aA(s) 的可能性可以用表格 π(a|s) 表示,在表格中使用 (s,a) 获取每个策略

a1a2a3a4a5
s1π(a1|s1)π(a2|s1)π(a3|s1)π(a4|s1)π(a5|s1)
s9π(a1|s9)π(a2|s1)π(a3|s1)π(a4|s1)π(a5|s1)

缺点:当状态空间很大或无穷、状态连续变化时,用表格表示策略就非常低效,体现在存储与泛化能力的缺陷上

函数型策略

用带参数的函数拟合策略,也可以表示为 πθ(a|s),π(a,s,θ),πθ(a,s)

π(a|s,θ),θ\Rm

(a) 输入是状态和动作,输出是当前状态下采取这个动作使累积奖励最大化的可能性

(b) 输入是状态,输出是当前状态下采取各个动作使累积奖励最大化的可能性

最优的策略可以通过最优化度量标量的目标函数获取,这种方法称为 策略梯度

  • 更适合处理高维度或连续的动作空间
  • 具有更强大的泛化能力
  • 具有更好的收敛性质和稳定性
  • 能够学习随机策略

缺点:

  • 通常会收敛到局部最优,而非全局最优,所以需要加噪音扰动
  • 评价一个策略通常不高效,且方差较大(受数据分布影响大,策略一直变,所以数据分布一直变)

表格型VS函数型

最优策略的定义:

  • 表格型:若一个策略 $\pi^使\mathbf{V}_{\pi^}(S)\ge\mathbf{V}_{\pi}(S),\forall \pi\in \Pi$
  • 函数型:指定一个标量的策略度量指标目标函数,使目标函数最大化的策略就是最优策略

获取一个动作的概率:

  • 表格型:通过 (s,a) 可查表获取

  • 函数型:计算策略函数的值 π(a|s,θ)

    参数每传播一次,都需要计算一次

策略更新:

  • 表格型:直接修改 π(a|s) 的值
  • 函数型:通过修改策略函数的参数 θ 间接影响策略

策略梯度基本思路

所有的策略度量指标 J(π) 都是 π 的函数,而 π(a|s,θ) 是关于参数 θ 的函数 ,不同的参数值 θ 会影响策略优劣的度量值,因此,通过最优化 θ 的值来最大化这些度量指标,可以找到最优的策略

最优化算法为梯度上升法

θt+1=θt+αθJ(θt)
  • 如何定义策略度量指标
  • 如何计算策略度量指标的梯度

5.1.2 策略度量指标

平均状态价值

Vπ=sSd(s)Vπ(s)=dTVπ=E[Vπ(S)]
  • Vπ 为在策略 π 下加权平均的状态价值
  • d(s)0,sSd(s)=1 是状态 s 的权重,也可以理解为状态的概率分布 Sd
  • 向量形式下,d=[d(s)]\R|S|,Vπ=[Vπ(s)]\R|S|

若求解加权平均,需要知道状态 S 服从的分布 d

d 与策略 π 无关

将分布 d 记为 d0 ,此时,平均状态价值记为 Vπ0

相对简单,因为度量指标函数的梯度计算相对简单

一种情况是每个状态都是同等重要的,因此将 d0 视为均匀分布,d0(s)=1|S|

另一种情况是只关注特定的状态 s0 , 如在一些任务中所有回合都从相同的起始状态 s0 出发,实际上就是最大化从 s0 出发得到的回报,因此 d0(s0)=1,d0(ss0)=0Vπ=Vπ(s0)

d 与策略 π 有关

状态的分布与策略 π 有关,即 d 是策略 π 下的稳态分布

  • 状态分布概率值是状态转移矩阵特征值为1的特征向量dπTPπ=dπT

平均单步立即奖励

rπ=sSdπ(s)rπ(s)=E[rπ(s)],Sdπ

其中,rπ(s)=aA(s)π(a|s,θ)r(s,a)r(s,a)=E[R|s,a]=rrP(r|s,a)

两种度量指标的关系

关于策略的度量指标,可以定义在折扣奖励 γ[0,1) 下,也可以定义在非折扣奖励 γ=1

对于 平均单步立即奖励 rπ ,只是对立即奖励的平均,不求回报所以也不需要考虑折扣因子,此时 γ=1

rπ 是一种非常短视的度量指标,只考虑立即奖励,相反,Vπ 是一种相对远视的度量指标,考虑到所有步的总奖励,虽然二者不相等,但成正比

rπ=(1γ)Vπ

一个达到最优,另一个也能达到极值

证明:贝尔曼方程 Vπ=rπ+γPπVπ ,两边同乘 dπT

Vπ=rπ+γdπTPπVπ=rπ+γdπTVπ=rπ+γVπ

等价定义

平均状态价值

在策略 π 下有从状态 S0 开始的轨迹 (A0,R1,S1,A1,R2,) ,满足 At=π(St,θ)Rt+1,St+1P(Rt+1,St+1|St,At)

对于

J(θ)=E[t=0γtRt+1]=sSdπ(s)E[t=0γtRt+1|S0=s]=sSdπ(s)Vπ(s)=Vπ
平均单步立即奖励

假设在策略 π 下生成了起始状态为 s0 的轨迹,奖励序列为 {Rt+1}t=0,这个轨迹的平均单步奖励为

rπ=limn1nE[Rt+1+Rt+2++Rt+n|S0=s0]=limn1nE[t=0n1Rt+1|S0=s0]limn1nE[t=0n1Rt+1]=sdπ(s)rπ(s)
  • 起始状态 s0 是什么不重要

证明:

首先,证明对于任意的起始状态 s0 ,有第一个等号成立

limn1nE[t=0n1Rt+1|S0=s0]=limn1nt=0n1E[Rt+1|S0=s0]=Cesaro meanlimtE[Rt+1|S0=s0]
  • 纬洛平均:对于一个序列 {ak}k=1 若其是收敛的,即 limkak 是存在的,则 limn1nk=1ak=limkak ,故序列 {1nk=1nak}n=1 是一个收敛序列

其次,证明等价

对于 E[Rt+1|S0=s0] ,其全期望公式

E[Rt+1|S0=s0]=sSE[Rt+1|S0=s0,St=s]P(t)(s|s0)=sSE[Rt+1|St=s]P(t)(s|s0)=sSrπP(t)(s|s0)
  • P(t)(s|s0) 表示在第 t 轮迭代中使用的状态转移矩阵limtP(t)(s|s0)=dπ(s)因此,起始状态 s0 并不重要

故有等价成立

最后,对于任意的稳态分布 d ,是否仍然成立

limn1nE[t=0n1Rt+1]=limn1nsSd(s)E[t=0n1Rt+1|S0=s]=sSd(s)limnE[t=0n1Rt+1|S0=s]=sSd(s)rπ=rπ

即,对任意的稳态分布 r(s) 都有上述等价形式

5.1.3 策略度量指标的梯度

所有度量指标的梯度有一个统一形式

θJ(θ)=sSη(s)aA(s)θπ(a|s,θ)Qπ(s,a)

一些特殊的结果

θrπsSdπ(s)aA(s)θπ(a|s,θ)Qπ(s,a)
  • 当折扣情况, ;当非折扣情况,=

由于 平均单步立即奖励 与 平均状态价值成正比,所以

θVπ=11γθrπ=sSρπ(s)aA(s)θπ(a|s,θ)Qπ(s,a)

策略梯度的计算

为了便于计算,需要将梯度改写

θlnπ(a|s,θ)=θπ(a|s,θ)π(a|s,θ)θπ(a|s,θ)=π(a|s,θ)θlnπ(a|s,θ)

将其代入策略度量指标的梯度

θJ(θ)=sSη(s)aA(s)θπ(a|s,θ)Qπ(s,a)=sSη(s)aA(s)π(a|s,θ)θlnπ(a|s,θ)Qπ(s,a)=sSη(s)EAπ(A|S,θ)[θlnπ(A|s,θ)Qπ(s,A)|S=s]=ESη,Aπ(A|S,θ)[θlnπ(A|S,θ)Qπ(S,A)]

此时,目标函数可以用样本近似

θJ(θ)θlnπ(a|s,θ)Qπ(s,a)

因为需要计算 lnπ(a|s,θ) ,必须保证 π(a|s,θ)>0,a,s,θ

在RL中,若不做处理,这个条件并不满足,如贪心策略或确定性策略,有些动作 π(a)=0

为确保满足条件,需要对所有的 π(a|s,θ) 通过 Softmax 函数归一化,将其取值变为 (0,1)

Softmax :对于一个特征向量 X=[x1xn]zi=exij=1nexj(0,1),i=1nzi=1

决策值可以归一化为

π(a|s,θ)=eh(s,a,θ)aA(s)eh(s,a,θ)

其中,π(a|s,θ) 的值由函数 h(s,a,θ) 确定,即 h() 为参数为 θ 的策略函数,输入状态会给出该状态下执行某个动作的概率

策略函数 h() 可以用神经网络实现,输入为 s ,参数为 θ,输出由 |A(s)| 个,每个输出对应采取每个动作的概率 π(a|s,θ)aA(s)π(a|s,θ)=1,此时这个神经网络的输出层为 Softmax

  • 由于 π(a|s,θ)>0,a ,所以策略是随机性及探索性的
  • 策略梯度也可改为确定性策略

softmax策略的梯度

θlnπ(a|s,θ)=θh(s,a,θ)1aA(s)eh(s,a,θ)aA(s)eh(s,a,θ)θh(s,a,θ)=θh(s,a,θ)Eaπ(a|s,θ)[θh(s,a,θ)]

因此,策略网络的梯度为

θJ(θ)=ESη,Aπ(A|S,θ)[θlnπ(A|S,θ)Qπ(S,A)]=ESη,Aπ(A|S,θ)[(θh(S,A,θ)Eaπ(A|S,θ)[θh(S,A,θ)])Qπ(S,A)]

5.1.4 与基于价值的学习对比

基于价值的学习由一个 w 为参数的价值函数 Q(s,a,w)

优化目标为最小化TD误差:

J(w)=Eπ[12(rt+1+γmaxaA(s)Q^(s,a,w)Q^(s,a,w))2]

更新方式

wt+1=wt+αt[rt+1+γmaxaA(st+1)Q^π(st+1,a,wt)Q^(st,at,wt)]wQ^(st,at,wt)

基于策略梯度的学习 由一个 θ 为参数的策略函数 π(a|s,θ)

优化目标为最大化策略度量指标

maxθJ(θ)=Eπθ[π(a|s,θ)δ^π(s,a)]

更新方式

θt+1=θt+αESη,Aπ(A|S,θt)[θlnπ(at|st,θt)δ^tπ(st,at)]

5.2 基于蒙特卡洛的策略梯度——REINFORCE

不管采用哪种策略度量指标,对策略函数的优化方法通过梯度上升法最大化 J(θ)

θt+1=θt+αθJ(θ)=θt+αESη,Aπ(A|S,θ)[θlnπ(A|S,θ)Qπ(S,A)]=θt+αθlnπ(at|st,θt)Qπ(st,at)

此外,真实的动作价值 Qπ(st,at) 也是未知的,需要近似

  • 基于MC方法去近似动作价值,称为 REINFORCE 算法

    用累积奖励值的无偏采样 Qt(st,at)=Gt 去近似 Qπ(st,at)

  • 基于TD方法去近似,称为AC算法

5.2.3 伪代码

π(a|s,θ),γ(0,1),α>0J(θ)k:s0π(θt)(s0,a0,r1,,sT1,aT1,rT)t=0,1,,T1:Qt(st,at)=k=t+1Tγkt1rkθt+1=θt+αθlnπ(at|st,θt)Qt(st,at)θt=θT

采样

(st,at) 出发,采集一个回合

  • 采集状态样本: Sd ,其中分布 d 状态为在策略 π 下的稳态分布

  • 采集动作样本:Aπ(A|S,θ)at 是策略 π(a|st,θt) 的采样

由采样也可看出,REINFORCE 算法为同策略 on-policy 算法

REINFORCE是离线方法

基于蒙特卡洛方法,必须将所有的回合数据采集完后才能开始运行,所以策略 θt+1 更新后,并没有立即产生数据,即REINFORCE算法是一种离线算法

缺点

  • 基于片段式数据的任务,任务需要终止状态,才能去计算回报

  • 低数据利用效率:需要大量的训练数据

  • 高训练方差

    从单个或多个片段中采样到的回报去估计动作价值有很高的方差

5.2.2 算法分析

由于 θlnπ(at|st,θt)=θπ(at|st,θt)π(at|st,θt)

θt+1=θt+αθlnπ(at|st,θt)Qπ(st,at)=θt+α(θπ(at|st,θt)π(at|st,θt))Qπ(st,at)=θt+α(Qπ(st,at)π(at|st,θt))βtθπ(at|st,θt)=θt+αβtθπ(at|st,θt)

其中,αβt 作为梯度上升法的步长,必须足够小

  • βt>0 ,则在 st 时选择 at 的可能性被提高,即 π(at|st,θt+1)>π(at|st,θt) ,且 βt 越大,增大程度越大
  • βt<0 ,则 π(at|st,θt+1)<π(at|st,θt)

对于任意的θtθt+1 ,当 θt+1θt 足够小时,

π(at|st,θt+1)π(at|st,θt)+(θπ(at|st,θt))T(θt+1θt)

从微分角度看,随着 θt+1θt0 ,这个近似变为等式

π(at|st,θt+1)π(at|st,θt)+(θπ(at|st,θt))T(θt+1θt)=θt+1θt0π(at|st,θt)+(θπ(at|st,θt))T(αβtθπ(at|st,θt))=π(at|st,θt)+αβtθπ(at|st,θt)2

其中,梯度上升法步长 α>0 ,由此可见,当 βt>0 时,π(at|st,θt+1)>π(at|st,θt) ;当 βt<0π(at|st,θt+1)<pi(at|st,θt)

βt=Qπ(st,at)π(at|st,θt) 能很好平衡探索与利用

利用 :若某个动作价值大, Qπ(st,at) 越大,则策略更新后,在 st 下选择 at 的可能性越大

βtQπ(st,at) ,若 Qπ(st,at) 增大,则 βt 会增大,引起 π(at|st,θt+1) 增大

探索 :若在状态 st 下,选择动作 at 的可能性很小,则策略更新后,会增大选择 at 的可能性

π(at|st,θt) 越小,则 βt 越大,从而 π(at|st,θt+1) 会增大

5.3 AC方法

将价值近似函数引入到策略梯度中,得到了 Actor-Critic 方法

Actor:策略更新,策略会被应用于决策/动作选择

  • 生成使评论家满意的策略

Critic:策略评估/价值评估,用度量指标衡量策略的优劣

  • 学会准确估计演员策略所采取动作的价值函数
  • QAC
  • A2C:通过引入偏置量减少估计的方差
  • off-policy AC:将on-policy方法转换为 off-policy 方法
    • 重要性采样
  • DPG:随机策略变为确定性策略

策略梯度方法的步骤:

  1. 用于度量策略好坏的策略度量指标函数/目标函数 J(θ) ,如:Vπ,rπ

  2. Critic(策略评估):最小化价值函数与价值的损失

    Q(s,a)Q^w(s,a)=r(s,a)+γEsP(s|s,a),aπw(a|s)[Qw(s,a)]wt+1=wt+αw[rt+1+γQ^t(st+1,at+1,wt)Q^t(st,at,wt)]wQ^(st,at,wt)
  3. Actor(策略更新)

    通过梯度上升法最大化 J(θ)

    θt+1=θt+αθJ(θt)=θt+αESη,Aπ(A|S,θ)[θlnπ(A|S,θ)Qπ(S,A)]

    为便于计算,使用随机梯度上升法

    θt+1=θt+αθlnπ(at|st,θ)Qt(st,at)

策略梯度的方法为 Actor ,其中 Qt(st,at) 作为价值评估/策略评估,对应 Critic

对于 Q^w(s,a) 的获取,若使用TD方法,这类算法统称为 AC 方法

5.3.1 QAC

π(a|s,θ),γ(0,1),α>0J(θ)tπ(a|st,θt)at,rt+1,st+1,π(a|st+1,θt)at+1(st,at,rt+1,st+1,at+1)Critic():wt+1=wt+αw[rt+1+γQ^t(st+1,at+1,wt)Q^t(st,at,wt)]wQ^(st,at,wt)Actor():θt+1=θt+αθθlnπ(at|st,θ)Q^t(st,at,wt+1)
  • 实质上,是 基于价值近似函数的Sarsa+策略梯度

QAC是同策略 on-policy 算法

在求最优化时,由于存在一个期望 θJ(θt)=ESη,Aπ(A|S,θ)[θlnπ(A|S,θ)Qπ(S,A)] ,故将算法修改为随机梯度上升法

动作需要按照策略 π(t) 的分布采样,所以 π(t) 是探索策略,同时又是不断改进的策略,所以是目标策略,因此 QAC 是同策略算法

QAC是随机性策略

采取每个动作 atA(st) 的概率 π(at|st,θt)>0

所以,策略本身就具有一定的探索能力 π(a|s,θ) ,不需要 ε 去探索

5.3.2 A2C

advantage actor-critic(A2C):核心思想是通过引入一个偏置量 bias 减小方差,即

策略梯度对于额外的偏置量是不变的

θJ(θ)=ESη,Aπ(A|S,θ)[θlnπ(A|S,θ)Qπ(S,A)]=ESη,Aπ(A|S,θ)[θlnπ(A|S,θ)(Qπ(S,A)b(S))]

额外的偏置量是关于状态变量 S 的偏置量

  • 为什么引入偏置量不改变策略梯度

    相当于证明 ESη,Aπ(A|S,θ)[θlnπ(A|S,θ)b(S)]=0

    ESη,Aπ(A|S,θ)[θlnπ(A|S,θ)b(S)]=sSη(s)aA(s)π(a|s,θ)θlnπ(A|S,θ)b(s)=sSη(s)aA(s)π(a|s,θ)θπ(a|s,θ)π(a|s,θ)b(s)=sSη(s)aA(s)θπ(a|s,θ)b(s)=sSη(s)b(s)aA(s)θπ(a|s,θ)=sSη(s)b(s)θ(aA(s)π(a|s,θ))=sSη(s)b(s)θ1=0
  • 为什么引入偏置量能减小估计方差

    θJ(θ)=E[X] ,其中 X(S,A)=θlnπ(A|S,θ)(Qπ(S,A)b(S))

    X 的期望 E[X]b(S) 无关,方差 var(X)b(S) 有关

    使用方差的迹评价方差大小,tr[var(X)]=E[XTX]XTX

    已知 XTX=(E[X])TE[X] 与偏置量 b(S) 无关

    E[XTX]=E[(θlnπ)Tθlnπ(Qπ(S,A)b(S))2]=E[θlnπ22(Qπ(S,A)b(S))2]=Sη,AπsSη(s)EAπ[θlnπ22(Qπ(S,A)b(S))2]

    可见偏置量 b(S) 对策略度量函数梯度的方差有影响

    为使 var(X) 最小化,最优的偏差应使 bE[XTX]=0 ,即

    EAπ[θlnπ22(Qπ(s,A)b(s))]=0,sSb=EAπ[θlnπ22]Qπ(s,A)EAπ[θlnπ22],sS

    b(S)=0 不是好的偏置

    • 对于 REINFORCEQAC 算法,其偏置量 b(S)=0 ,并不是好的偏置

减小方差的意义:采样时会有更小的误差,在均值相同的情况下,采样时方差小的样本集,每个样本 X 都接近平均值。即使用RM算法近似策略梯度时,随机采集到的每个样本都能接近期望,使策略梯度受随机采样的影响程度最小,进而使得最优化的结果受采样的影响程度最小

因此,在A2C中,算法目标为对 θ 最优化,使得 J(θ) 最大,同时,选择一个最优的偏置 b(S) 最小化策略梯度方差 var(X),X=θlnπ(A|S,θ)(Qπ(S,A)b(S))

b(s)=EAπ(A|s,θt)[θtlnπ(A|s,θt)2Q(s,A)]EAπ(A|s,θt)[θlnπ(A|s,θt)2],sS

尽管存在最优的偏置量,但为了计算方便,移除权重 θlnπ(A|s,θt)2 ,仅使用次优偏置量

b(s)=EAπ(A|S,θt)[Q(s,A)]=Vπ(θt)(s)

算法

令偏置量 b(s)=Vπ(s)

θt+1=θt+αESη,Aπ(A|S,θt)[θlnπ(A|S,θt)(Qπ(S,A)b(S))]=θt+αESη,Aπ(A|S,θt)[θlnπ(A|S,θt)(Qπ(S,A)Vπ(S))]=δπ(S,A)=Qπ(S,A)Vπ(S)θt+αESη,Aπ(A|S,θt)[θlnπ(A|S,θt)δπ(S,A)]

δπ(S,A) 称为优势函数,因为 Vπ(s)=aA(s)π(a|s,θt)Qπ(s,a) ,即状态价值为动作价值的加权平均,若某个动作价值比均值大,说明这个动作是比较好的,其 Q(s,a) 比均值大,δπ(s,a)>0 ,这个动作具有一定优势

  • 使用 δ 代替动作价值 Q ,因为我们在乎的不是动作价值的绝对大小,而是动作价值间的相对大小

将梯度上升法改为随机梯度上升法

θt+1=θt+αESη,Aπ(A|S,θt)[θlnπ(A|S,θt)[Qπ(S,A)Vπ(S)]]=θt+αESη,Aπ(A|S,θt)[θlnπ(at|st,θt)[Q^t(st,at,wt)V^t(st,wt)]]=θt+αθlnπ(at|st,θt)δ^t(st,at)

另外,由动作价值定义:

E[Qπ(S,A)Vπ(S)|S=st,A=at]=E[R+γVπ(S)Vπ(S)|S=st,A=at]

优势函数可以用TD误差来近似:

δ^(st,at,wt)=Q^t(st,at,wt)V^t(st,wt)δ^(st,wt)=rt+1+γV^t(st+1,wt)V^t(st,wt)

因此,我们仅需要一个神经网络来近似 Vπ(S) 而不再需要动作价值网络 Qπ(S,A)

伪代码

π(a|s,θ),γ(0,1),α>0J(θ)tπ(a|st,θt)at,rt+1,st+1TDδ^t=rt+1+γV^(st+1,wt)V^(st,wt)Critic():wt+1=wt+αwδ^twV^(st,wt)Actor():θt+1=θt+αθδ^tθlnπ(at|st,θ)

A2C是同策略算法

在一步迭代后,θt 会更新为 θt+1 ,同时,会基于更新后的策略 π(a|st,θt) 生成下一步经验,因此策略 π 既是目标策略又是探索策略

A2C是随机性策略

由于策略梯度算法需要经过 Softmax 层,所以每个动作的概率 π(a|s)>0 ,即随机性策略

step size=δt(st,at)π(at|st,θt) 能很好平衡探索与利用

由于 θlnπ(at|st,θt)=θπ(at|st,θt)π(at|st,θt)

θt+1=θt+αθlnπ(at|st,θt)δ^t(st,at)=θt+α(θπ(at|st,θt)π(at|st,θt))δ^t(st,at)=θt+α(δ^t(st,at)π(at|st,θt))step sizeθπ(at|st,θt)

利用

step size 比较大,也就是优势函数 δ^t(st,at) 比较大,即 at 的动作价值 Qπθt(st,at) 明显大于 st 下的平均动作价值 Vπ(s) ,则策略更新后,在 st 下选择 at 的可能性越大

step sizeδ^t(st,at) ,若 δ^t(st,at) 增大,则 step size 会增大,策略更新时会朝着 π(at|st,θt+1) 增大的方向更新

探索 :若在状态 st 下,选择动作 at 的可能性很小,则策略更新后,会增大选择 at 的可能性

π(at|st,θt) 越小,则 step size 越大,从而 π(at|st,θt+1) 会增大

5.3.3 异策略AC算法

REINFORCEQACA2C 都是同策略算法,因为在计算策略度量指标梯度时,涉及到期望的计算

θJ(θ)=ESη,Aπ[]

基于RM算法,改为随机梯度下降法,由于在采样过程中,由于动作 Aπ(A|S,θt) 策略 π 作为探索策略同时也是目标策略,所以他们都是同策略算法

为复用通过其他方法得到的一些经验,通过 重要性采样 技巧,可将其改为异策略AC算法

  • 同理,重要性采样可用于任何估计期望的算法中

对于异策略算法,我们希望估计 EAπ[],(Ap0) ,其中 π 是目标策略,而样本基于探索策略 μ,({ai}p1)

异策略策略梯度

  1. 策略梯度表达式
  2. 使用梯度上升的方法优化
异策略梯度表达式

μ 为探索策略用于生成经验样本,目标是使用这些经验样本去更新目标策略 π ,使得策略度量指标 J(θ) 最小化

J(θ)=sSdμ(s)Vπ(s)=ESdμ[Vπ(S)]

其中,dμ 是状态 S 在策略 μ 下的稳态分布

异策略梯度

在折扣奖励情况下 γ(0,1) ,目标函数 J(θ) 的梯度为

θJ(θ)=ESη,Aμ[π(A|S,θ)μ(A|S)θlnπ(A|S,θ)Qπ(S,A)]
  • μ 为探索策略,η 为状态服从的分布η(s)=sSdμ(s)Prπ(s|s)Prπ(s|s)=k=0γk[Pπk]ss=[(IγPπ)1]ss ,表示基于策略 π 从状态 s 转移到 s 的概率,其中 []ss 表示矩阵第 s 行,第 s 列的值
异策略梯度优化

异策略梯度仍引入偏置量 b(S) ,有

θJ(θ)=ESη,Aμ[π(A|S,θ)μ(A|S)θlnπ(A|S,θ)(Qπ(S,A)b(S))]

为减少估计方差,令偏置量 b(S)=Vπ(S)

θJ(θ)=ESη,Aμ[π(A|S,θ)μ(A|S)θlnπ(A|S,θ)(Qπ(S,A)Vπ(S))]

相应的随机梯度上升算法为

θt+1=θt+απ(at|st,θt)μ(at|st)θlnπ(at|st,θt)(Q^t(st,at,wt)V^t(st,wt)δt(st,at))

为了便于计算,将优势函数 δt(st,at) 用TD误差去近似

Q^t(st,at,wt)V^t(st,wt)rt+1+γV^t(st+1,wt)V^t(st,wt)=δ^t(st,at)

因此,异策略梯度优化为

θt+1=θt+απ(at|st,θt)μ(at|st)θlnπ(at|st,θt)δ^t(st,at)
充分利用的算法

在异策略梯度中

θt+1=θt+απ(at|st,θt)μ(at|st)θlnπ(at|st,θt)δ^t(st,at)=θt+αθπ(at|st,θt)μ(a|st)δ^t(st,at)=θt+αδ^t(st,at)μ(a|st)θπ(at|st,θt)

此时,μ(a|st) 可看做是固定值,若 δ^t(st,at) 越大,则表明动作 at 的优势越大,策略更新时要朝着 at 增大的方向迭代,即充分利用

伪代码

μ(a|s),π(a|s,θ0),γ(0,1),α>0V^(s,w(0))J(θ)tμ(a|st)at,rt+1,st+1TDδ^t=rt+1+γV^(st+1,wt)V^(st,wt)Critic():wt+1=wt+αwδ^tπ(at|st,θt)μ(at|st)wV^(st,wt)Actor():θt+1=θt+αθδ^tπ(at|st,θt)μ(at|st)θlnπ(at|st,θ)

5.3.4 Deterministic actor-critic(DPG)

策略梯度算法,为便于求解,将策略度量函数的梯度转换为期望形式,使用RM算法去近似估计。而这个转换设计 lnπ ,因此,π(a|s,θ)>0,a ,即每个动作的概率都不为0,也不会有动作的概率为1,所以 REINFORCE、QAC,A2C,异策略A2C 都是随机性策略

随机性策略的缺点是动作 at 的个数必须有限,不能处理连续动作

若改用确定性策略,可以处理连续的动作,表示为 a=π(s,θ) ,相当于采取某个动作的概率为1,其余动作概率为0

  • π 为从状态空间 S 到动作空间 A 的映射 π:SA
  • π 也可以是一个神经网络,其输入是状态 s ,输出是一个动作 a ,其参数为 θ

梯度的计算

之前的梯度仅是针对随机策略的梯度,若策略是确定性的,需要重新计算梯度

确定性策略梯度的统一形式

θJ(θ)=sSη(s)θπ(s)(aQπ(s,a))|a=π(s,θ)=Esη[θπ(s)(aQπ(s,a))|a=π(s,θ)]
  • η 为状态 s 的分布,具体表达式由探索策略下状态的稳态分布与基于策略 π 的状态转移确定
  • 对于策略 π 下的动作价值 Qπ(s,a) ,先对 a 求梯度,然后将所有的动作替换为 π(s) ——二者是等价的
DPG天然是异策略

首先,actor 是异策略的

  • 求策略度量梯度时并不涉及动作的分布,因为这个动作 a 会被替换为 π(s) ,所以不需要 A 对应的分布

    之后使用随机梯度上升法相当于对真实的梯度进行随机采样,若在采样时,给定了一个 st ,根据这个状态 st 可以得到 at ,并不需要关心这个 at 是哪个策略得到的,因此可以使用任何的探索策略,即DPG天然是异策略的

其次,critic 也是异策略的

  • 对价值函数的近似需要的经验样本是 (st,at,rt+1,st+1,a~t+1)a~t+1=π(st+1) ,这个经验样本的生成涉及两个策略

    第一个策略是对状态 st 时生成 at ,这个策略是探索策略,at 用于与环境交互

    第二个策略是对状态 st+1 生成 a~t+1 ,这个策略必须是 π ,因为这是 critic 要去评价的策略 ,所以 π 是目标策略,a~t+1 在下一时刻并不会用于与环境实际交互

两种常用的度量指标梯度
平均状态价值

将平均状态价值的折扣情况作为策略度量指标

J(θ)=Vπ=E[Vπ(S)]=sSd0(s)Vπ(s)

其中,sSd0(s)=1 ,为了便于计算,状态服从与策略 π 独立的稳态分布

关于状态分布的选择:

  • d0(s0)=1d0(ss0)=0 ,其中状态 s0 是我们关注的起始状态

    策略优化的目标是最大化从 s0 开始的折扣奖励

  • d0 是另一个不同于 π 的探索策略 μ 下的稳态分布

    与异策略有关,因为DPG算法天然是异策略的,不需要重要性采样进行转换

为计算目标函数的梯度,首先要计算 γ(0,1)Vπ(s),sS 的梯度

θVπ(s)=sSPrπ(s|s)θπ(a|s,θ)(aQπ(s,a))|a=π(s)
  • 其中,Prπ(s|s)=k=0γk[Pπk]ss=[(IγPπ)1]ss ,表示基于策略 π 从状态 s 转移到 s 的概率,其中 []ss 表示矩阵第 s 行,第 s 列的值

策略度量指标的梯度 θJ(θ)

θJ(θ)=sSηπ(s)θπ(s,θ)(aQπ(s,a))|a=π(s)=ESηπ[θπ(s,θ)(aQπ(s,a))|a=π(s)]

其中,ηπ(s)=sSd0(s)Prπ(s|s)

  • 其中,Prπ(s|s)=k=0γk[Pπk]ss=[(IγPπ)1]ss ,表示基于策略 π 从状态 s 转移到 s 的概率,其中 []ss 表示矩阵第 s 行,第 s 列的值
平均单步立即奖励

将平均单步立即奖励作为策略度量指标

J(θ)=rπ=sSdπ(s)rπ(s)=ESdπ[rπ(S)]

其中,rπ(s)=E[R|s,a=π(s,θ)]=rrP(r|s,a=π(s,θ))

策略梯度为

θJ(θ)=sSdπ(s)θπ(a|s,θ)(aQπ(s,a))|a=π(s,θ)=ESdπ[θπ(a|s,θ)(aQπ(s,a))|a=π(s,θ)]
  • 其中,dπ 为状态 S 基于策略 π 的稳态分布

DPG算法

基于策略梯度,使用梯度上升法最大化策略度量函数

θt+1=θt+αθESηπ[θπ(s,θ)(aQπ(s,a))|a=π(s)]

相应的使用随机梯度上升法去近似

θt+1=θt+αθθπ(st,θt)(aQπ(st,a))|a=π(st)

伪代码

μ(a|s),π(s,θ0),γ(0,1),α>0V^(s,w(0))J(θ)tμ(st,θt)at,rt+1,st+1TDδ^t=rt+1+γQ^(st+1,π(st+1,θt),wt)Q^(st,at,wt)Critic():wt+1=wt+αwδ^twQ^(st,at,wt)Actor():θt+1=θt+αθθπ(st,θt)(aQ^π(st,a,wt+1))|a=π(st)

对于探索策略 μ ,也可以将其变为 π+

每次得到一个 π(s) 后,因为 π 本身是确定性是,不能探索,所以加上一些噪音,可以有一定的随机性,下一个动作的生成就与目标策略 π 有了关系

  • 实质上,π+ε 非常类似,但这里不能用贪心算法,因为此处应对的时动作空间连续的情况,不能给无限的连续动作赋予一定探索概率

此时,DPG可以变为同策略算法

DPG的进一步改进

使用不同的价值近似基函数去近似 Q^(s,a,w) 会得到不同的DPG改进算法

  • 线性函数:Q^(st,at,wt)=ϕT(s,a)w

    线性近似基函数的难点在于基函数(特征向量)的选择,由于函数结构的限制,逼近动作价值的能力有限

  • 神经网络 :DDPG

https://zhuanlan.zhihu.com/p/337976595

-------------本文结束-------------