Policy-based Reinforcement Learning
在之前的学习中,我们都是从 value function 里直接得到policy,比如说 e-greedy policy。
接下来,我们就要将 policy 参数化,parametrise the policy.
依然是model-free
使用这种 policy-based RL,相比之前的基于价值函数的方法,好处就是不需要一步一步的 maximize the rewards,而只需要调整策略的参数。
再比如说,当剪刀石头布的时候,策略是随机的,Policy-based RL can learn the optimal stochastic policy。
Finite Difference Policy Gradient
缺点就是这种方法需要大量的计算,而且十分嘈杂。但是这种方法很简单,而且在不可微的时候也能用。
Likelihood ratios
于是转化成了关于log的一个式子。
Score Function
大概是用来告知朝着什么方向去更新会获得最大的reward
Actor-Critic Algorithm
跟上一节学习的DQN好像有些像啊,也是两套,但是是不一样的
AC这个是将价值函数逼近的方式和这一节的policy parametrised 方式结合起来,Actor是用来实际决定下一个动作,获得reward,拥有策略的,然后Critic是根据Actor获取的信息不断调整,C就像是一个 Function Approximator,然后C中获得的Q来替换Policy Gradient里面的Q,就实现了这两种方式的结合。
Critic只是用来评估现在的参数θ对于现在的策略Πθ有多好,policy evaluation,并且通过这样去调整现在的策略,调整Actor,并不是去找出一个最好的Q*,不是optimize。
下面是算法:
可以通过添加Baseline的方式来减小Variance。
A(s,a) 是Advantage Function,上面给出了定义。
下面给出一种常用的计算方法:
可以看出TD Error 就是A(s,a) 的无偏估计,所以利用TD error就可以比较简单的计算优势函数A了。
下面给出两张ppt,是critic & actor 的算法:
用资格迹来policy gradient