引言
强化学习常见的方法为基于值函数或者基于策略梯度。
值函数:值函数最优时得到最优策略,即状态s下,最大行为值函数maxQ(s,a)对应的动作。
但对于机器人连续动作空间,动作连续时,基于值函数,存在以下问题:
- 当动作空间很大,或者动作为连续集时,基于值函数的方法无法有效求解。
- 基于值函数的方法在进行策略改进时,需要针对每个状态行为求取行为值函数,以求得最优动作,这种情况下,把每一个状态行为严格地独立出来,求取某个状态下应该执行的行为是不切实际的。
总结:用值函数Q求解连续空间action,也能用但不好用,所以出现了,策略梯度法。
1.策略梯度
随机策略梯度:使用直接逼近,我们需要求得的就时神经网络参数θ。为了求解θ需要设计一个目标函数J(θ)=G(θ)(累计回报值),θ更新公式为:
此方法基于目标函数J(θ)的梯度进行策略参数更行。
J(θ)分为两种:
1.MC中,有完成的链条:
2.TD中,有步长限制时:
式中,是基于策略生成的关于状态s的分布
进一步就得到了梯度的表达式:
2.Actor
策略梯度就是AC中的A
Actor:从下图可以看出,就是输入智能体观察到的图像(对计算机而言就是矩阵,向量),输出智能体可能采取的动作概率分布。
进一步我们要衡量Actor的优劣,基于Actor可以得到一系列回报,计算平均回报,比较策略的优劣R就是上文的J。
然后我们想求得最优的Actor,(R就是上文J的延深),使用梯度上升法,进而得到: