Policy Gradient算法

Policy Gradient算法

数学理论

  • 不像value-based的方法(Q learning, Sarsa),与其不同的是他要输出的不是action的value,而是具体的那一个action,这样policy gradient就跳过了value这个阶段
    • value-based输出的不是连续值,然后再选择最大的action
    • policy gradient可以在一个连续分布上选取action
  • 这个方法在方反向传播的时候是没有误差的,不过它确实在做一种反向传播
    • 但是这个反向传播的目的是让这一次被选中的行为在下一次更有可能发生

(一下的 π ( s , a ) 和 π ( a ∣ s ) \pi(s,a)和\pi(a|s) π(s,a)π(as)一个道理,可以直接计算)

  • J表示当前单步MDP的状态的最优值,R表示这一动作的奖励

J ( θ ) = E π [ R ( s , a ) ] 按 照 之 前 那 个 贝 尔 曼 方 程 展 开 = ∑ s d ( s ) ∑ a π θ ( s , a ) R ( s , a ) d ( s ) 就 是 之 前 的 P J(\theta)=E_{\pi}[R(s,a)]\\ 按照之前那个贝尔曼方程展开\\ =\sum_{s}d(s)\sum_{a}\pi_{\theta}(s,a)R(s,a)\qquad d(s)就是之前的P J(θ)=Eπ[R(s,a)]=sd(s)aπθ(s,a)R(s,a)d(s)P

  • 求梯度

∇ θ J ( θ ) = ∇ θ ∑ s d ( s ) ∑ a π θ ( s , a ) R ( s , a ) = ∑ s d ( s ) ∑ a ∇ θ π θ ( s , a ) R ( s , a ) \nabla_{\theta}J(\theta)=\nabla_{\theta}\sum_{s}d(s)\sum_{a}\pi_{\theta}(s,a)R(s,a)\\ =\sum_{s}d(s)\sum_{a}\nabla_{\theta}\pi_{\theta}(s,a)R(s,a) θJ(θ)=θsd(s)aπθ(s,a)R(s,a)=sd(s)aθπθ(s,a)R(s,a)

  • 然后我们想要得到概率 π \pi π的分布从而来采样,下面就有一个似然比的技巧(虽然不知道为什么叫似然比,但是这个就是一个积分技巧)

∇ θ π θ ( s , a ) = π θ ( s , a ) ∇ θ π θ ( s , a ) π θ ( s , a ) = π θ ( s , a ) ∇ θ log ⁡ π θ ( 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)

  • s上面的式子就把概率提出来了,所以有

∇ θ J ( θ ) = ∑ s d ( s ) ∑ a π θ ( s , a ) ∇ θ log ⁡ π θ ( s , a ) R ( s , a ) = E ( s , a ) ∼ π θ ( s , a ) [ ∇ θ log ⁡ π θ ( s , a ) R ( s , a ) ] \nabla_{\theta}J(\theta)=\sum_{s}d(s)\sum_{a}\pi_{\theta}(s,a)\nabla_{\theta}\log \pi_{\theta}(s,a)R(s,a)\\= E_{(s,a)\sim \pi_{\theta}(s,a)}[\nabla_{\theta}\log \pi_{\theta}(s,a)R(s,a)] θJ(θ)=sd(s)aπθ(s,a)θlogπθ(s,a)R(s,a)=E(s,a)πθ(s,a)[θlogπθ(s,a)R(s,a)]

  • 然后将似然率的方式应用到多步MDPs上, q π ( s , a ) q_{\pi}(s,a) qπ(s,a)就是在整个流程中所有对应的(s,a)得到的reward

∇ θ J ( θ ) = E ( s , a ) ∼ π θ ( s , a ) [ ∇ θ log ⁡ π θ ( s , a ) q π ( s , a ) ] \nabla_{\theta}J(\theta)= E_{(s,a)\sim \pi_{\theta}(s,a)}[\nabla_{\theta}\log \pi_{\theta}(s,a)q_{\pi}(s,a)] θJ(θ)=E(s,a)πθ(s,a)[θlogπθ(s,a)qπ(s,a)]

蒙特卡洛梯度策略强化算法

看起来名字很高大上,其实就是对于上面的概率分布用采样的形式来得到

  • 使用随机梯度上升的方法更新参数
  • 使用策略梯度法,返回 v t v_t vt作为 q π ( s t , a t ) q_{\pi}(s_t,a_t) qπ(st,at)的无偏估计, v t v_t vt就是第t次的reward

在这里插入图片描述

带基数的trick

在采样的时候,可能有些action虽然效果好,但是没被采样到,所以要加个baseline

img

就是在算梯度的时候引入一个基准值,这样梯度正负性也就有了

b的取值最简单的就是取之前的平均值,每一步都会更新这个平均值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值