美文网首页
Actor Critic

Actor Critic

作者: winddy_akoky | 来源:发表于2018-11-07 20:20 被阅读0次

一、介绍

Actor-Critic 算法有两部分组成:actor 和 critic。其中 action 就是Policy Gradient 算法,critic 是Q-learning。所以实际上 actor-critic算法是Q-learning算法和policy gradient算法的结合。

  1. Actor Critic 算法能在有限维的输入和有限维的输出中起到比较好的效果。
  2. Actor 角色起到的作用是:在当前状态下决定哪一个动作被执行会达到最好的效果;而Critic则是对某一个状态下采取的某个动作做出评价。这个评价会影响 actor 今后的选择。
  3. Actor-Critic 算法所需要的训练时间要比Policy Gradient 算法短。

二、回顾 Q-learning

对于Q-learning,有如下特点:

  • 基于 value-based
  • 处理离散的动作空间
  • 它是一个 model-free 的算法,使用 Q函数去找到最理想的策略


    image.png

如上图的网络都是为了近似 Q(s,a)函数,有了 Q(s,a),我们就可以根据Q(s,a)的值来作为判断依据,作出恰当的行为。

image.png

Q-learning算法最主要的一点是:决策的依据是Q(s,a)的值。即算法的本质是在计算 当前状态s, 采取某个动作 a 后会获得的未来的奖励的期望,这个值就是 Q(s,a)。换句话说,我们可以把这个算法的核心看成一个评论家(Critic),而这个评论家会对我们在当前状态s下,采取的动作a这个决策作出一个评价,评价的结果就是Q(s,a)的值。

但是,Q-learning 算法却不怎么适合解决连续动作空间的问题。因为如果动作空间是连续的,那么用Q-learning算法就需要对动作空间离散化,而离散化的结果会导致动作空间的维度非常高,这就使得Q-learning 算法在实际应用起来很难求得最优值,且计算速度比较慢。

而Policy Gradient 正好弥补了这个缺点。

三、回顾 Policy Gradient

Policy Gradient 算法的核心思想是: 根据当前状态,直接算出下一个动作是什么或下一个动作的概率分布是什么。即它的输入是当前状态 s, 而输出是具体的某一个动作或者是动作的分布。

image.png

我们可以想像,Policy Gradient 就像一个演员(Actor),它根据某一个状态s,然后作出某一个动作或者给出动作的分布,而不像Q-learning 算法那样输出动作的Q函数值。

四、Actor Critic

Actor-Critic 是Q-learning 和 Policy Gradient 的结合。
为了导出 Actor-Critic 算法,必须先了解Policy Gradient 算法是如何一步步优化策略的。

image.png

如上图所示, 最简单的Policy Gradient 算法要优化的函数如下:
L = \sum log \pi_\theta(s_t, a_t) v_t

其中 v_t 要根据 Monte-Carlo 算法估计,故又可以写成:
L = \sum log \pi_\theta(s_t, a_t) G_t

但是这个 G_t 方差会比较大,因为G_t是由多个随机变量得到的,因此,我们需要寻找减少方差的办法。
一个方法就是引入一个 baseline 的函数 b, 这个 b 会使得 (G_t - b)的期望不变,但是方差会变小,常用的 baseline函数就是 V(s_t)。再来,为了进一步降低 G_t的随机性,我们用 E(G_t) 替代 G_t,这样,源式就变成:
L = \sum log \pi_\theta(s_t, a_t) (E(G_t) - V(s_t))
因为 E(G_t| s_t, a_t) = Q(s_t, a_t),故进一步演化成:
L = \sum log \pi_\theta(s_t, a_t) (Q(s_t, a_t) - V(s_t))

照上面的式子看来,我们需要两个网络去估计 Q(s_t, a_t)V(s_t),但是考虑到贝尔曼方程:
Q(s_t, a_t) = E[r + \gamma V(s_{t+1})]
弃掉期望, 得:
Q(s_t, a_t) = r + \gamma V(s_{t+1})

即最终的式子为:
L = \sum log \pi_\theta(s_t, a_t) (r+ \gamma V(s_{t+1}) - V(s_t))

这样只需要一个网络就可以估算出 V 值了,而估算 V 的网络正是我们在 Q-learning 中做的,所以我们就把这个网络叫做 Critic。这样就在 Policy Gradient 算法的基础上引进了 Q-learning 算法了

image.png

引用

https://www.jianshu.com/p/25c09ae3d206
https://www.bilibili.com/video/av24724071/?p=6
https://www.jianshu.com/p/277abf64e369

相关文章

  • SAC

    SAC:Soft Actor-Critic原文:《Soft Actor-Critic:Off-Policy Max...

  • Actor Critic

    一、介绍 Actor-Critic 算法有两部分组成:actor 和 critic。其中 action 就是Pol...

  • 论文笔记

    Multi-agent Actor-Critic for Mixed Cooperative-Competitiv...

  • OAC

    OAC:Optimistic Actor-Critic原文:《Better Exploration with Op...

  • 6. Actor-Critic算法

    6. Actor-Critic算法 本文主要介绍如下几个内容: 如何使用Critic去提升Policy Gradi...

  • Actor-Critic

    采取# Review – Policy Gradient G表示在采取一直到游戏结束所得到的cumulated r...

  • CS294 Lecture 6-Actor Critic

    从 "reward to go" 到 Actor Critic 回顾一下REINFORCE算法其中reward t...

  • 7.值函数方法(Value Function Methods)

    1. 从Actor-Critc算法中抛开策略梯度 首先回顾下之前的actor-critic算法,其中的优势函数体现...

  • 2020-05-22 A3C

    深度增强学习(DRL)漫谈 - 从AC(Actor-Critic)到A3C(Asynchronous Advant...

  • 深度强化学习(8)Actor-Critic 算法(2)

    本文继续 深度强化学习(7)Actor-Critic 算法(1)[https://www.jianshu.com/...

网友评论

      本文标题:Actor Critic

      本文链接:https://www.haomeiwen.com/subject/mcorxqtx.html