Policy-Based Method RL

Policy-Based Method RL_python

策略函数Policy-Based Method RL_人工智能_02 是一个概率密度函数,以Policy-Based Method RL_机器学习_03为输入,输出是 每个动作的概率分布。

agent根据策略函数随机抽样选择动作Policy-Based Method RL_无偏估计_04执行。


1.策略网络

Policy-Based Method RL_无偏估计_05

我们使用策略网络来近似策略函数Policy-Based Method RL_python_06,网络的训练参数为Policy-Based Method RL_python_07

2.状态价值函数

Policy-Based Method RL_概率密度函数_08

定义状态价值函数Policy-Based Method RL_人工智能_09


Policy-Based Method RL_无偏估计_10

Policy-Based Method RL_无偏估计_04为离散随机变量时,我们将Policy-Based Method RL_python_12


Policy-Based Method RL_无偏估计_13

通过策略网络的近似,我们可以得到如上图等式。


Policy-Based Method RL_人工智能_14

我们的目标是最大化Policy-Based Method RL_无偏估计_15对于Policy-Based Method RL_概率密度函数_16的期望,Policy-Based Method RL_机器学习_17用来表示当前策略Policy-Based Method RL_python_06的胜率。

因此我们要最大化Policy-Based Method RL_机器学习_17

通过Policy Gradient 策略梯度算法实现。


Policy-Based Method RL_概率密度函数_20

通过带入,我们的Policy-Based Method RL_python_21对于Policy-Based Method RL_python_07的导数也就是梯度的等式变形。

Policy-Based Method RL_python_23

通过对Policy-Based Method RL_python_06 函数相对Policy-Based Method RL_python_07的导数和Policy-Based Method RL_人工智能_26的乘积之和,便可以得到梯度,但是该方法过于简化且不严谨,因为Policy-Based Method RL_python_27也与Policy-Based Method RL_python_07有关,但是最终实际结果一样。

Policy-Based Method RL_概率密度函数_29


对于连续型随机变量,我们不能使用上述方法。

Policy-Based Method RL_无偏估计_30

而是对Policy-Based Method RL_人工智能_31

Policy-Based Method RL_无偏估计_32

最后,我们可以用上图的期望所表示梯度。


Policy-Based Method RL_无偏估计_33

因为Policy-Based Method RL_python_06策略函数是一个神经网络,无法进行积分求期望,因此我们考虑用蒙特卡洛近似,即根据策略函数随机抽样Policy-Based Method RL_机器学习_35 ,定义Policy-Based Method RL_机器学习_36作为无偏估计,近似表示梯度。


算法如下图所示:

Policy-Based Method RL_python_37


3.价值函数如何近似

Policy-Based Method RL_机器学习_38

在该方法中,我们不知道价值函数Policy-Based Method RL_概率密度函数_39,我们如何近似呢?

第一种方法是REINFORCE,将agent执行完一轮的动作,得到一个Policy-Based Method RL_概率密度函数_40的轨迹,然后用Policy-Based Method RL_人工智能_41 实际回报近似Policy-Based Method RL_机器学习_42


第二种方法就是使用actor-critic method,使用策略网络近似Policy-Based Method RL_概率密度函数_39

Policy-Based Method RL_概率密度函数_44