基于Policy的强化学习算法

作者: bdqfork | 来源:发表于2019-12-03 19:18 被阅读0次

    在文章基于Value的强化学习算法中,介绍了Q-learning和SARSA两种经典的强化学习算法。在本篇文章中,将介绍一下基于Policy的经典强化学习算法——Policy Gradient。

    Value-based的不足

    1. Value-based强化学习算法,是根据当前状态下的Q值来选取动作去执行。因此,一旦Q值表收敛,那么对于某一个状态s,其选择的动作a将是唯一确定的,即确定性的策略。这就导致其无法解决最优策略是随机策略的强化学习问题,例如猜拳,每次都出锤子当然不是最优解,让对方猜不出的随机策略反而更好一些。

    2. 在受限状态下,Value-based算法表现的不是很好。由于观测手段或者其他一些原因,导致观测到的两个不同的状态却得到了同样的特征,导致选择的策略效果不好。例如猜拳的时候,同一对手在t时刻出了剪刀,在t+1时刻也出了剪刀,如果只考虑对手以及动作,那么在tt+1时刻观察到的特征是一样的。然而,在t+2时刻对手不一定会出剪刀。

    3. 对于连续动作空间的强化学习问题的求解效果不好。因为Value-based算法的动作选择是在动作空间中选择Q值最大的动作,所以需要输出动作空间中每一个动作的Q值。因此,对于动作空间非常大的连续动作空间来说,评估每一个动作的Q值的成本是非常大的。例如方向盘转的角度,随着转动精度的无限提高,动作空间可以趋近于无穷。

    Policy Gradient

    Policy-based算法的输入和Value-based一样,但是输出的是动作空间中每一个动作被选择的概率,换句话说,输出的是动作空间中动作被选择的概率分布。这时策略函数可以用如下公式表示,其中\theta是要训练的参数:
    \pi_\theta(s,a)=P(a|s,\theta)\approx\pi(a|s)
    其优化目标有以下三种形式:

    1. 初始状态收获的期望:J_1(\theta)=V_{\pi\theta}(s1)=E_{\pi\theta}(G1)
    2. 状态收获的平均价值:J_{avV(\theta)}(\theta)=\displaystyle\sum_sd_{\pi\theta}V_{\pi\theta}(s),其中d_{\pi\theta(s)}是基于策略\pi_\theta生成的马尔可夫链关于状态的静态分布。
    3. 每个time-step的平均奖励:J_{avR(\theta)=\displaystyle\sum_sd_{\pi\theta}(s)\displaystyle\sum_a\pi_\theta(s,a)R_s^a}

    无论哪种形式,根据策略定理,对\theta求导的梯度为:
    \triangledown_\theta J(\theta)=E_{\pi\theta}[\triangledown_\theta \log\pi_\theta(s,a)Q_\pi(s,a)]
    其中\triangledown_\theta log\pi_\theta(s,a)称为分值函数。

    对于\pi_\theta(s,a),在离散空间中常使用softmax函数,使用描述状态和行为的特征\phi(s,a)与参数\theta的线性组合来权衡一个行为发生的几率,即:
    \begin{gathered} \pi_\theta(s,a)=\frac{e^{\phi(s,a)^T\theta}}{\displaystyle\sum_be^{\phi(s,b)^T\theta}}\\ \triangledown_\theta \log\pi_\theta(s,a)=\phi(s,a)-E_{\pi\theta}[\phi(s,.)] \end{gathered}
    在连续行为空间常用高斯函数,对应的行为从高斯分布N(\phi(s)^T\theta,\sigma^2)中产生,求导之后为:
    \triangledown_\theta \log\pi_\theta(s,a)=\frac{(a-\phi(s)^T\theta)\phi(s)}{\sigma^2}
    对于目标函数的优化可以采用蒙特卡洛梯度策略算法,使用随机梯度上升法更新参数,使用策略梯度法返回v_t作为Q_\pi(s,a)的无偏估计。算法如下:

    image

    首先初始化参数\theta,之后对于每一个蒙特卡洛序列,做以下两步:

    1. 用蒙特卡洛计算序列每个时间位置t的状态价值v_t

    2. 对序列每个时间位置t,使用梯度上升法,更新策略函数的参数\theta
      \theta=\theta+\alpha\triangledown_\theta\log\pi_\theta(s_t,a_t)v_t

    最后返回策略函数的参数\theta,这个策略函数可以是softmax,也可以是高斯策略或者其他策略。

    Policy-based的不足

    1. Policy-based往往收敛于局部最优解而不是全局最优解。
    2. 由于其输出的是动作概率分布,需要基于这个分布对动作进行采样,当动作空间非常大时,成本也比较高。

    相关文章

      网友评论

        本文标题:基于Policy的强化学习算法

        本文链接:https://www.haomeiwen.com/subject/yzrhgctx.html