目录

Policy-Based learning

用策略函数指导动作

使用策略函数随机抽样得到动作。

近似策略函数

由于实际的策略函数无法得到,需要用各种方式去近似策略函数,所以这里可以使用神经网络去近似实际的策略函数,记作policy network

https://github.com/spiritysdx/images/blob/main/20230908/1.png?raw=true

最后在全连接层后使用softmax函数,得到概率分布(也即所有概率之和为1)。

近似状态价值函数 VΠ

https://github.com/spiritysdx/images/blob/main/20230908/2.png?raw=true

近似状态价值函数时,内积中的策略函数被近似为策略神经网络,因而学习V中的神经网络参数,使其V的期望最大化。(算的是随机梯度上升)

https://github.com/spiritysdx/images/blob/main/20230908/3.png?raw=true

这里要算的策略梯度,很多时候也不是直接用解析解,用的是数值解,用蒙特卡洛近似求解。

https://github.com/spiritysdx/images/blob/main/20230908/4.png?raw=true

可推导出以上策略梯度的两个近似,第一个是离散形式的动作,第二个是连续形式的动作。

连续动作一般使用蒙特卡洛近似,大致思想是随机抽样得到一个或多个样本,用样本来近似期望(无偏估计)。

https://github.com/spiritysdx/images/blob/main/20230908/5.png?raw=true

即便蒙特卡洛算法得到的结果是低精度的,但也足够用了,随机梯度下降实际也是使用该方法得到的近似解。

算法步骤

https://github.com/spiritysdx/images/blob/main/20230908/6.png?raw=true

近似动作价值函数

https://github.com/spiritysdx/images/blob/main/20230908/7.png?raw=true

方法1需要跑到任务结束才能更新策略网络。

https://github.com/spiritysdx/images/blob/main/20230908/8.png?raw=true

方法2用另一个神经网络做函数近似,原本已用神经网络近似了函数Π,要用新的神经网络去近似QΠ。

方法总结

https://github.com/spiritysdx/images/blob/main/20230908/9.png?raw=true