强化学习之Policy Gradient
参考:https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/5-1-policy-gradient-softmax1/
Policy gradient 是
RL 中另外一个大家族, 他不像 Value-based 方法 (Q learning, Sarsa), 但他也要接受环境信息 (observation), 不同的是他要输出不是 action 的 value, 而是具体的那一个 action, 这样 policy gradient 就跳过了 value 这个阶段. 而且个人认为 Policy gradient 最大的一个优势是: 输出的这个 action 可以是一个连续的值, 之前我们说到的 value-based 方法输出的都是不连续的值, 然后再选择值最大的
action. 而 policy gradient 可以在一个连续分布上选取 action.
我们介绍的 policy gradient
的第一个算法是一种基于 整条回合数据 的更新,
也叫 REINFORCE 方法.
这种方法是 policy gradient 的最基本方法, 有了这个的基础, 我们再来做更高级的.
log(Policy(s,a))*V
中的 log(Policy(s,a))
表示在
状态 s
对所选动作 a
的吃惊度,
如果 Policy(s,a)
概率越小,
反向的log(Policy(s,a))
(即 -log(P)
)
反而越大. 如果在 Policy(s,a)
很小的情况下,
拿到了一个 大的 R
,
也就是 大的 V
,
那 -log(Policy(s,
a))*V
就更大, 表示更吃惊,
(我选了一个不常选的动作, 却发现原来它能得到了一个好的 reward, 那我就得对我这次的参数进行一个大幅修改). 这就是 log(Policy)*V
的物理意义啦.Policy
Gradient的核心思想是更新参数时有两个考虑:如果这个回合选择某一动作,下一回合选择该动作的概率大一些,然后再看奖惩值,如果奖惩是正的,那么会放大这个动作的概率,如果奖惩是负的,就会减小该动作的概率。参考https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-07-PG/