算法理论:强化学习3策略学习

144 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、策略学习

思路:用policy network来近似策略函数 π\pi ,用policy gradient算法来训练这个网络

函数近似的一般方法:线性函数,kernel函数,神经网络(就叫policy network了)

在这里插入图片描述

softmax是用来做映射的,因为我们需要各个动作的概率,所以要求输出都为正数,且加和为1,这里的softmax就是让输出具有这样的特征。

我们要找到一种评价方式,在这种评价方式下,当前的局面是最好的。因此,我们肯定需要状态价值函数:

在这里插入图片描述

目标函数:J(θ)=ES[V(S;θ)]J(\theta)=E_S[V(S;\theta)],策略学习就是改进θ,让J(θ)J(\theta)最大

在这里插入图片描述

策略梯度:如果a是离散的,那么 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TDc54M77-1627708988884)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210721162446955.png)]

则有

在这里插入图片描述

其中Qπ(s,a)Q_\pi(s,a)是与π\pi有关的,而π\pi是与θ有关的,但为了便于理解,把它看作是无关的,拎到外面。

但实际上一般不用这种方法算策略梯度,而是作这个策略梯度的蒙特卡洛近似:

在这里插入图片描述

这里的log只是一种方法,莫烦的说法是用log的收敛性比较好。

现在得到了两种策略梯度的计算形式。

1)用第一种形式:

在这里插入图片描述

但因为是求和,所以只能用于动作空间是离散区间的情况

2)用第二种形式:适合动作空间是连续区间的情况(离散区间也可以用)

在这里插入图片描述

由于a^\hat a是根据π\pi抽样得到的,所以g(a^,θ)g(\hat a,\theta)是对策略梯度的无偏估计。

流程总结:

在这里插入图片描述

这里第3步的qtq_t怎么算?

1)reinforce方法:用utu_t来近似代替UtU_t

在这里插入图片描述

缺点:需要玩完一局,才能知道utu_t,才能更新一次

2)actor-critic方法:用神经网络做函数近似

以后再说。

二、参考资料

深度强化学习(全)