Q-learning和policy-gradient是两种常见的强化学习方法,两者的区别主要在如何选择下一步行为。Q-learning的目标是为每一种状态s找到唯一的最优行为a,使状态-行为对Q(s,a)的值最大化。而policy-gradient的目标是找到状态到所有行为的映射,使expected reward最大化。所以policy-gradient更适用于连续的行为空间——尤其是行为空间很大且边界未知的情况下,适用Q-learning可能造成运算量过大。另外如果最佳策略本身存在随机性(比如不存在dominant strategy的博弈),TD-learning类算法都不会考虑带有概率分布的参数。在解决相对简单的问题时,这两种方法的结果应该相差不大。
上一章节介绍了Q-learning的实现方法。经典actor-critic是一种policy-gradient算法,这一章节介绍actor-critic的实现。参考这里。
模糊 Actor-Critic Learning
在actor-critic系统中,学习分为两步:
- 由actor选择行为
- 由critic评价预计后果是否与实际后果相符,并相应更新参数
在这个例子中,Actor和critic分别由一个模糊系统表示(另外一种常见方式是用神经网络)。在critic输出结果 V ^ t \hat{V}_t V^t后,基于环境反馈的强化信号(reward) r t + 1 r_{t+1} rt+1被用来更新actor和critic的参数。
Actor:输出行为选择。
计算出的行为值: u t = ∑ l = 1 M Φ l w t l u_t = \sum_{l=1}^M \Phi^l w_t^l ut=∑l=1MΦlwtl,
在实际应用中为了鼓励发现行为空间,在 u t u_t ut的计算值以上还会增加一个小的白噪声 ν ( 0 , σ ) \nu(0,\sigma) ν(0,σ)。
而对actor的参数(i.e.对应每个rule l l l 的行为 w w w),更新方法是: w t + 1 l = w t l + β sign { Δ ( u t ′ − u t σ ) } ∂ u ∂ w l w_{t+1}^l = w_{t}^l + \beta \text{sign } \big\{ \Delta \big(\cfrac{u'_t-u_t}{\sigma} \big) \big\} \cfrac{\partial u}{\partial w^l} wt+1l=wtl+βsign { Δ(σut′−ut)}∂wl∂u。
其中TD error Δ = r t + 1 + γ V ^ t +