2_Policy Gradient
1. 策略网络
#机器学习/强化学习/同策略 #机器学习/强化学习/策略网络 #机器学习/强化学习/离散动作
#机器学习/强化学习/连续动作
梯度策略也要构建一个神经网络,但是该网络输出的是动作而不是价值,输入的还是 state,输出均值和方差去建立一个正态分布,然后抽取动作,如 5_PPO 算法,或者用 softmax 输出各个动作的概率,建立一个分类分布,抽取动作例如 REINFORCE 算法;或者输出一个值用 tanh 映射到-1~1的区间,再缩放到动作空间,例如 6_DDPG 和 7_TD3 算法。在 SAC算法中,策略网络输出均值和方差建立一个分布,抽取动作,最后把动作映射到 tanh 上,经放缩后输出,同时输出一个对数动作概率。
策略网络和Q网络的区别,参考3_Similar Concepts。
2. 目标函数推导
策略梯度的损失,不是与正确的动作来对比得到交叉熵,因为我们事先不知道正确的动作,所以没有参考,因此就只能人为确定一种损失,例如用网络给出的各个动作的概率,乘以当前得到的奖励(执行动作得到的当前奖励),如果奖励比较低,那么这个损失就比较小,我们需要梯度上升
,所以要加个负号,那么奖励越小,损失就越大,反之同理,符合我们调整参数的目标。
所以目标函数就是奖励,即对于该状态动作序列,动作概率乘以动作奖励
其中
梯度策略的更新就是直接对奖励梯度上升
但是
b是基线,一般REINFORCE算法里面没有算b,它可以是奖励的均值,不写也可以,这里对奖励折算,就需要从后往前循环迭代计算,并且每往前推一次就要记录一次梯度。
这部分这里就是优势函数,当然也可以不减b。折算的那部分,可以理解为奖励应该是多少,其实也可以用Q网络时序差分的目标评论员
,评论员估计的是当前的价值是多少,所以优势函数的目的就是计算实得和应得的差异。在后面的演员评论员框架中,演员通常是策略网络,评论员通常是Q网络。