强化学习基础知识——Policy Gradient相关问题、REINFORCE以及优势函数

Policy Gradient(∈Policy-Based)

基于概率

适用于Action-Space连续空间或离散空间

On-Policy

Monte-Carlo Update

  • Question:Policy Gradient和Value-based的区别?

Value-based方法通过神经网络输出某state的所有行为的Q值,然后再通过Q值选行为;而Policy Gradient直接通过神经网络输出行为的概率。

Value-based与Policy Gradient的本质区别其实可以从它们的名字上看出来。Value-based是基于“值”的方法,也就是直接基于Reward,而Reward直接来自于环境,与模型无关,不可导,无法利用梯度下降去更新模型参数,所以只能利用一些基于值的数学上的优化方法;而Policy Gradient引入了梯度,使得模型可以用梯度下降去更新,虽然在Policy Gradient中也用到了Reward,但在这里Reward起到的不是梯度的含义,而是一种“Scale”的含义,引导梯度的方向与大小,真正的梯度来自于Policy,也就是模型的输出

  • Question:Policy Gradient神经网络预测输出动作概率,损失函数如何计算?

DQN那种方式的损失函数还有办法定义与计算,即 Q T a r g e t − Q P r e d i c t Q_{Target} - Q_{Predict} QTargetQPredict。而Policy Gradient其实并没有真正意义上的“误差(Loss)”概念,因为环境样本并没有标签。Policy Gradient是通过Reward进行反向传播更新参数的,简单来说就是根据当前选择的action带来的Reward的大小作为“损失”来进行反向传播

  • Question:Policy Gradient如何输出Action-Space连续的动作?

Answer:输出加分布,如正态分布等

  • Policy Gradient通式
    g = E [ ∑ t = 0 ∞ Ψ t ∇ θ log ⁡ π θ ( a t ∣ s t ) ] \bm{ g=\mathbb{E}\left[\sum_{t=0}^{\infty} \Psi_{t} \nabla_{\theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right)\right] } g=E[t=0Ψtθlogπθ(atst)]

    ∇ θ J ( π θ ) = E τ ∼ π θ [ ∑ t = 0 T ∇ θ log ⁡ π θ ( a t ∣ s t ) R ( τ ) ] \bm{ \nabla_{\theta} J\left(\pi_{\theta}\right)=\underset{\tau \sim \pi_{\theta}}{\mathrm{E}}\left[\sum_{t=0}^{T} \nabla_{\theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right) R(\tau)\right] } θJ(πθ)=τπθE[t=0Tθlogπθ(atst)R(τ)]
    其中, Ψ t \Psi_{t} Ψt R ( τ ) R(\tau) R(τ)可以为多种函数,例如:Advantage Function、Value Function等
    • ∇ θ log ⁡ π θ ( a t ∣ s t ) \nabla_{\theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right) θlogπθ(atst)是状态 s t s_t st情况下取到行为 a t a_t at的梯度方向,如果 θ θ θ沿着该方向更新,则相当于提升了行为 a t a_t at的概率,反之亦然。

      • 对于任意函数,沿着函数上某一点的梯度方向走(梯度上升)函数值一定会在某个邻域内增大;反之,逆着梯度方向走(梯度下降)函数值一定会在某个邻域内减小
    • Ψ t \Psi_{t} Ψt R ( τ ) R(\tau) R(τ)决定了参数 θ θ θ更新的方向与程度

REINFORCE(VPG)

Paper : Benchmarking Deep Reinforcement Learning for Continuous Control

REINFORCE(Vanilla Policy Gradient)

  • 核心公式:

∇ θ J ( π θ ) = E τ ∼ π θ [ ∑ t = 0 T ∇ θ log ⁡ π θ ( a t ∣ s t ) A π θ ( s t , a t ) ] \bm{ \nabla_{\theta} J\left(\pi_{\theta}\right)=\underset{\tau \sim \pi_{\theta}}{\mathrm{E}}\left[\sum_{t=0}^{T} \nabla_{\theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right) A^{\pi_{\theta}}\left(s_{t}, a_{t}\right)\right] } θJ(πθ)=τπθE[t=0Tθlogπθ(atst)Aπθ(st,at)]

θ k + 1 = θ k + α ∇ θ J ( π θ k ) \bm{ \theta_{k+1}=\theta_{k}+\alpha \nabla_{\theta} J\left(\pi_{\theta_{k}}\right) } θk+1=θk+αθJ(πθk)

  • 参数更新公式:
    θ ← θ + α ∇ θ log ⁡ π θ ( s t , a t ) v t \bm{ \theta \leftarrow \theta+\alpha \nabla_{\theta} \log \pi_{\theta}\left(s_{t}, a_{t}\right) v_{t} } θθ+αθlogπθ(st,at)vt
    其中 α α α为学习率, ∇ θ \nabla_{\theta} θ为梯度求导, π θ ( s t , a t ) \pi_{\theta}\left(s_{t}, a_{t}\right) πθ(st,at)表示Policy,在这里表示神经网络输出的行为概率,对概率取log是为了训练更稳定, v t v_t vt表示 f ( r e w a r d ) f(reward) f(reward)

    • 从更新公式就能看出,“损失函数”公式应为:
      log ⁡ π θ ( s t , a t ) v t \log \pi_{\theta}\left(s_{t}, a_{t}\right) v_{t} logπθ(st,at)vt
  • 注意:VPG输出的是选择各个行为的概率,并不是一定选择概率最高的那个行为,而是根据各行为的概率选择行为

    • 例如:输出概率[0.6, 0.1, 0.3],选择行为时,会根据各行为的概率随机选择,即有60%的概率选择行为-1,10%的概率选择行为-2,30%的概率选择行为-3(有点ε-greedy的究极进化版的意思)

优势函数(Advantage Function)

知乎

CSDN

Advantage Function

  • 标准定义:
    A π ( s , a ) = Q π ( s , a ) − V π ( s ) \bm{ A^{\pi}(s, a)=Q^{\pi}(s, a)-V^{\pi}(s) } Aπ(s,a)=Qπ(s,a)Vπ(s)
    其中, V π ( s ) V^{\pi}(s) Vπ(s)状态值函数(State Value Function) Q π ( s , a ) Q^{\pi}(s, a) Qπ(s,a)状态-动作值函数(State-Action Value Function,即Q函数)

  • 状态值函数(State Value Function)

    • 代表某一State的综合重要程度

    • 该State下所有Action的Q值平均值

  • 优势函数(Advantage Function)

    • 代表某一特定state下,各个action的合理性

    • (同一State的)优势函数均值为0(人为限制)

    • 优势函数直接给出了某一动作A的性能与当前State下所有可能动作的性能的均值的差值

      • 若该差值(优势)大于0,说明动作A优于平均,是个合理的选择

      • 若该差值(优势)小于0,说明动作A次于平均,不是个合理的选择

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值