策略梯度之---actor critic

Actor crtic算法的思路,流程如下图所示

                                            策略梯度之---actor critic_第1张图片

 

 

actor critic算法伪代码如下图所示

其中,critic使用基于值函数近似的方法,近似函数为线性函数,参数为w  ,\delta为TD error

                                                              

根据DQN中的参数更新公式

所以有critic的参数更新公式如下图倒数第四行表示

actor使用策略网络,参数为\theta,根据策略梯度公式

                                                   

注意!!!!!!AC算法中,actor使用的策略网络 更新参数公式中的Q是critic中近似函数估计出来的Q值,即actor更新参数中的Q,并不是原始策略梯度公式中的Q(基于自己的策略网络的Q)

我想 这一步就是“actor以critic的打分作为自己的行为准则”的体现

还需要注意一点的是,AC算法的顺序很重要,因为更新actor的参数\theta时,需要用到critic值函数近似的参数w,所以先更新actor的参数,再更新w

                                            策略梯度之---actor critic_第2张图片

 

因为actor更新策略参数时,用的value function并不是真实的Q值,所以会有一定的bias,但如果用真实无BiasQ值,采用蒙特卡洛回合更新的思路,则又回到了REINFORCE算法。AC算法中虽然有可能存在bias的地方,但是可以单步更新策略网络的参数,而无需等到回合结束

 

你可能感兴趣的:(机器学习,强化学习)