综述
在基于策略的模型中,使用多条采样路径的平均收益近似得到基准线,这种近似方法会使得方差较大,这里的方差是指用平均数近似期望的方差,而且要求每次更新参数都需要采样数量较多的路径,无法实现单次更新或单步更新;在基于值函数的模型中,需要对所有动作的期望收益求最大值来得到一个策略,这种方法当动作空间很大时不好操作,不易得到。在使用基于值函数的模型时,如果要评价一个状态一个动作,有以下式子:
其中,$V(s’)$是指下一个状态的期望收益,$E[V(s’)]$是指在状态$s$执行动作$a$后下一步的期望收益。在使用基于策略的模型时,对于特定状态,选择特定动作的期望收益是:
其中,$P_{\theta}(s,a)$是策略网络,$Q(s,a)$是通过蒙特卡洛方法去近似得到的,$b$是基准线,一般使用期望$V(s)$表示,用来区分动作的相对好坏。如果$Q(s,a)-b\gt 0$,则调整参数增大$P_{\theta}(s,a)$;如果$Q(s,a)-b\lt 0$,则调整参数减小$P_{\theta}(s,a)$。actor-critic方法就是结合了基于值函数的模型与基于策略的模型,充分运用两者的优点,提升模型的效果。这种方法使得策略的更新不再需要采样多条路径求平均得到基准线$b$,只需要通过critic得到$V(s)$,使用$V(s)$近似$b$;使得值函数的更新不再需要对所有动作的期望收益求最大值,只需要使用由actor提供的策略即可。
模型
actor
actor是策略选择者,使用到了基于策略的模型思想,为critic提供策略选择分布,与基于策略的模型不同的是,这里的actor不再使用蒙特卡洛方法去近似期望收益,而是利用critic提供的期望收益预测去更新自己的策略。
critic
critic是值函数提供者,使用到了基于值函数的模型思想,为actor提供期望收益预测,与基于值函数的模型不同的是,这里的critic不再使用简单的值函数最大值作为策略选择的依据,而是利用actor提供的策略分布去选择策略更新自己的值函数。
工作流程
actor利用下面的式子更新自己的参数$\theta$:
其中,$V(s’)$和$V(s)$表示状态的期望收益,由critic提供。使用了当前状态的期望收益$V(s)$作为基准线,状态$s$和动作$a$的期望收益可以表示为$R(s,a)+\gamma V(s’)$。注意到这里使用$Q(s,a)$的单次采样结果代替期望,因为这里的强化学习都不是基于模型的,所以是无法确定随机变量$s’$的,只能通过蒙特卡洛去近似,当数据量很大时,我们认为多次$Q(s,a)$的采样可以近似得到其期望结果。
critic利用下面的式子更新自己的参数$\omega$:
将$\alpha^2$融入学习率,得到:
通过求$e$关于$\omega$的梯度更新参数$\omega$。
以上的工作流程是使用单步更新,即每次选取一个状态,通过actor提供的策略执行一个动作,得到一个新的状态,使用critic提供的值函数得到两个状态的期望收益,利用两个目标函数去更新参数。我们还可以使用单次更新,也就是一次采样一条完整的由初始状态到结束状态的状态路径,然后得到状态路径在各个时刻的收益$R_t(\tau)$,然后使用以下两个目标函数更新actor和critic的参数:
使用上面两个目标函数更新actor和critic的参数。