基于策略的强化学习

基于值函数的强化学习缺点

1.针对确定性策略。
值函数是间接得到最优策略的方法,根据价值函数的大小,贪心选择值最大的动作,是确定性策略,每次面对同一个状态,选择的动作是同一个。
2.存在策略退化。
基于值函数的方法,基本是用近似器去拟合真实的价值函数,必然存在着一定的误差,但是即使将误差训练到很小了,可能导致策略变差。比如真实的价值函数得到的A,B两个动作值分别为,0.45,0.46,真正的策略应该是选择动作B。采用的近似的价值函数,输出的A,B动作价值为,0.46,0.45,误差很小,但是选择的动作却是A,策略不是最优策略。
3.不适用于连续控制或动作空间很大的场景
因为它是通过比较价值大小来选择动作,因此动作集很大(连续可以看成无数个离线动作),一个个比较大小不太现实。
4.收敛较慢
它是在价值函数和策略来回迭代优化。

基于策略的强化学习

基于策略的方法,是将策略参数化,即建立策略模型 π ( s , a , θ ) π(s,a,\theta) π(s,a,θ),输入状态 s s s,直接输出 a a a(离线的动作,可以输出每个动作概率,依概率选择动作),模型由 θ \theta θ控制,目标就是找到合适 θ \theta θ,最优策略 π ( s , a , θ ) π(s,a,\theta) π(s,a,θ)就得到。

基于策略的强化学习的特点

1.可以学习随机策略
2.可以应用于高维空间,连续动作
3.不会策略退化
4.收敛速度比较快,但容易收敛到局部最优
5.难以评价一个策略,且评价的方差大

基于策略的强化学习的目标函数

为了求最优的策略,就需要有一个目标函数,来通过各种求极值的方法求 θ \theta θ,得到策略。
1.Star Value
建立目标函数 J 1 ( θ ) = V π θ ( s 1 ) J_1(\theta)=V_{π_\theta}(s_1) J1(θ)=Vπθ(s1),即agent按照策略 π ( s , a , θ ) π(s,a,\theta) π(s,a,θ),从初始状态 s 1 s_1 s1一直到episode结束,他所能获得的奖励和(在当前的策略下,初始状态 s 1 s_1 s1的价值函数值),这个奖励越大,策略越好,问题就变成求 J π θ ( s 1 ) J_{π_\theta}(s_1) Jπθ(s1)最大的 θ \theta θ
2.Average Value
J a v g ( θ ) = ∑ d π θ ( s i ) V π θ ( s i ) J_{avg}(\theta)=\sum d^{π_\theta}(s_i)V_{π_\theta} (s_i) Javg(θ)=dπθ(si)Vπθ(si)
对于连续性任务,没有固定起点的,在某个时刻计算,所有可能状态的价值函数值的均值。 d π θ ( s ) d^{π_\theta}(s) dπθ(s)是在该目前的策略 π ( s , a , θ ) π(s,a,\theta) π(s,a,θ)下,状态的静态概率分布函数,即描述了每个状态在目前策略下出现的概率值,每个状态的概率X每个状态在该策略下的价值,累加起来就是加权平均价值。以此为目标函数, J a v g ( θ ) J_{avg}(\theta) Javg(θ)越大越好。
3.Average reward per time-step
J a v g ( θ ) = ∑ d π θ ( s i ) ∑ π ( s , a , θ ) R s a J_{avg}(\theta)=\sum d^{π_\theta}(s_i)\sum π(s,a,\theta)R_s^a Javg(θ)=dπθ(si)π(s,a,θ)Rsa
取某一个时间片段内,计算所有可能状态,在该策略下,所能获得的及时奖励的加权平均值。方法2中是求的状态的价值的加权平均值(V是从那个时刻到episode结束时所有的奖励加和)。

基于策略的强化学习的策略求梯度

建立目标函数,优化目标函数即能找到最优策略,常见的方法就是通过梯度下降更新参数。
1.数值法求梯度
对于 J 1 ( θ ) = V π θ ( s 1 ) J_1(\theta)=V_{π_\theta}(s_1) J1(θ)=Vπθ(s1) θ \theta θ是所有参数构成的一个总称,假设有n参数,那么 θ \theta θ可以看成是一个n维向量。对 θ \theta θ的第k维,求偏导,
∂ J 1 ( θ ) ∂ θ k ≈ J 1 ( θ + ϵ u k ) − J 1 ( θ ) ϵ u k {\partial J_1(\theta) \over \partial \theta_k}≈ {J_1(\theta+\epsilon u_k)-J_1(\theta) \over\epsilon u_k } θkJ1(θ)ϵukJ1(θ+ϵuk)J1(θ)
其中, ϵ \epsilon ϵ为很小的值, u k u_k uk为第k维为1,其他为0的单位向量。
经过n次这个求导,得到每个参数的偏导数,构成一个向量,就得到目标函数的梯度。
该方法简单,对于策略模型是否可微无所谓,但是求一次梯度,需要进行n次的计算,且误差较大。
2.策略梯度
建立策略模型 π θ ( s , a ) π_\theta(s,a) πθ(s,a),该策略模型可微,建立目标函数。将一个agent与环境在该策略下交互的完整轨迹 s 1 , a 1 , s 2 , a 2 , s 3 , a 3 . . . s τ {s_1,a_1,s_2,a_2,s_3,a_3...s_\tau} s1,a1,s2,a2,s3,a3...sτ记做 τ \tau τ。将这个完整轨迹所所得的立即奖励加和设为 R ( τ ) R(\tau) R(τ),
R ( τ ) = ∑ t = 1 γ t − 1 r t R(\tau)=\sum_{t=1} \gamma^{t-1}r_t R(τ)=t=1γt1rt,
R ( τ ) R(\tau) R(τ)是一个随机变量,他描述了不同轨迹的奖励值。则目标函数为:
U θ = ∑ P θ ( τ ) R ( τ ) = E π θ [ R ( τ ) ] U_\theta=\sum P_\theta(\tau)R(\tau)=E_{π_\theta}[R(\tau)] Uθ=Pθ(τ)R(τ)=Eπθ[R(τ)],
即目标让轨迹的奖励期望最高, P θ ( τ ) P_\theta(\tau) Pθ(τ)是这个策略下出现的各种轨迹的概率分布,他与策略相关。为了使目标函数最大,很明显应该让轨迹的奖励最高的出现的概率最大。
P θ ( τ ) P_\theta(\tau) Pθ(τ)未知, U θ U_\theta Uθ没法写出可微的数学表达式,如何求 ∇ θ U \nabla_\theta U θU直接策略梯度方法是无法得到真正准确的策略梯度,难点在于如何得到比较好的进行策略梯度估计。
从似然率的角度
∇ θ U = ∇ θ ∑ P θ ( τ ) R ( τ ) \nabla_\theta U=\nabla_\theta\sum P_\theta(\tau)R(\tau) θU=θPθ(τ)R(τ)
= ∑ ∇ θ P θ ( τ ) R ( τ ) =\sum \nabla_\theta P_\theta(\tau)R(\tau) =θPθ(τ)R(τ)(当求和符号内式子可以收敛时,求和和求梯度可以交换)
= ∑ P θ ( τ ) ∇ θ P θ ( τ ) P θ ( τ ) R ( τ ) =\sum P_\theta(\tau) {\nabla_\theta P_\theta(\tau)\over P_\theta(\tau)}R(\tau) =Pθ(τ)Pθ(τ)θPθ(τ)R(τ)
= ∑ P θ ( τ ) ∇ θ l o g P θ ( τ ) R ( τ ) =\sum P_\theta(\tau) \nabla_\theta log P_\theta(\tau)R(\tau) =Pθ(τ)θlogP

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值