Actor-critic

Actor-critic

    • Review-Policy Gradient
    • Review-Q-learning
    • Actor-Critic
    • Advantage Actor-Critic(A2C)
    • Asynchronous Advantage Actor-Critic(A3C)
    • Pathwise Derivative Policy Gradient

李宏毅深度强化学习
学习笔记
学习资料:http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLDS18.html

Review-Policy Gradient

  • 采用了以下这个式子来更新policy gradient:
    在这里插入图片描述
  • 这个式子在说我们先和环境互动,然后让我们可以计算出在某一个state采取了某一个action a的机率,接下来计算出从这个state采取这个a之后到游戏结束的累积回报有多大,把时间 t t t到时间 T n T_n Tn的reward通通加起来。有时候会在前面乘以一个discount factor(折扣因子),因为离现在这个action比较久远的action和现在是没有什么关系的,0.9或者0.99。接下来会减掉一个baseline值b,目的是希望括号里面这一项是有正有负的。如果括号里这一项是正的,我们就要增加这个state采取这个action的机率;反之,减少。
  • 但是 G G G这个值是非常unstable的,因为互动的process是有随机性的,所以在某一个state s采取某个action a,然后计算累积回报,每次算出来的结果都是不一样的。所以 G G G是一个random variable,给同一个s和a, G G G可能会有个distribution。但是我们采取的是sample的方式,我们采取某个s和a然后玩到底,我们看看说会得到多少的reward就当作 G G G。所以相当于是拿一些sample的结果当作sample的参数。
    在这里插入图片描述
  • 但是实际上在某一个s采取a会发生什么事?虽然说有固定的distribution,但它本身是有随机性的。而这个random variable它的变化可能会非常大。
  • 假设我们可以sample足够的次数就没有什么问题,但实际是我们每次update之前sample的次数是不可能太多的,显然结果会是很差的。
  • 那么我们能不能让整个training的process变得stable一点?能不能够直接估计出 G G G这个变量的期望值?我们在state采取a的时候我们想办法用network去估计在采取action a的 G G G的期望值,如果可行,就可以用期望值代替sample的值,这样让training变得比较stable。
    -那么怎么让期望值代替sample值呢?这里要用到value-based的方法。我们就用的Q-learning。

Review-Q-learning

  • 在讲Q Learning的时候,有两种critic。
  • 状态值函数 V π ( s ) V^{\pi}(s) Vπ(s)。它的意思是说在假设actor是 π \pi π的时候,我们拿 π \pi π去做互动时,累积回报有多少。
  • 状态-动作值函数 Q 当 s t a t e 采 取 a c t i o n a , 接 下 来 都 用 Q^当state采取action a,接下来都用 Qstateactiona\pi$来跟环境进行互动,累积回报是多少。
    在这里插入图片描述

Actor-Critic

在这里插入图片描述

  • G G G这个随机变量的期望值正好是 Q Q Q Q Q Q的定义是在某一个state s采取某个action a,假设我们现在的policy就是 π \pi π的情况下的累积回报。
  • 所以画蓝线的那一项如果要用期望代表,就是需要估计出Q function,然后把Q function套进去。就可以结合起来了。baseline可以用不同的方法,最常见的是用value function。V其实是Q的期望值,括号里的这一项就会是有正有负的。

Advantage Actor-Critic(A2C)

  • 这样做有个缺点,需要估计两个network,Q和V的。就有两倍估测不准的风险,那么能不能只估计一个呢?事实上,可以只估计V这个network。
  • Q可以用V表示:
    在这里插入图片描述
  • r本身是随机变量,在state s采取了action a,接下来会得到什么样的reward和跳到 s t + 1 s_{t+1} st+1其实是不确定的。所以要加上期望值才是准确的。
  • 现在把期望去掉,让Q function用r+V取代掉。这样的好处是可以只用估计一个network了,但是坏处是引入了r是随机的,但是这个相较于 G G G的随机性小一些,因为它是某一个state得到的reward,而G是所有未来state的reward总和。所以这样做是合理的。
    在这里插入图片描述
  • 虽然把期望值去掉听起来有点不合理,但是A3C的paper里面做出来就是这个结果最好。
    在这里插入图片描述
  • 括号里的式子是Advantage function
  • 整个过程是:先有一个 π \pi π,一个初始的actor先在原来的policy里面收集资料,收集好资料后,就要拿去update你的policy,但是在actor-critic里面不是直接拿资料去update。而是先拿这些资料去估计出value function,(A2C),这个估计的过程可以用TD或者MC。估计出value function后,用上面的式子去update π \pi π。有了新的 π \pi π以后再去和环境互动,进入下一个循环。
  • 两个Tip
    • 实际需要估计两个network。一个是V,一个是policy的network。V这个network是input state,output 一个scaler标量。actor这个network是input state,output action的distribution。他们的network 的input都是s,所以前几个layer其实是可以共享的。尤其是像Atari或者3D的游戏,input是image,非常复杂,通常用CNN处理。所以通常前面共用同一个参数。
      在这里插入图片描述
    • 另外一件事情是我们同样需要exploration的机制。有一个很常见的exploration的方法是在对 π \pi π output的distribution下一个control,希望这个distribution的entropy(熵)不要太小,也就是希望不同的action被采用的机率多一点。这样它才会把环境探索的比较好。

Asynchronous Advantage Actor-Critic(A3C)

强化学习的一个问题就是很慢。那么怎么增加训练的速度呢?

在这里插入图片描述
在这里插入图片描述

  • 我们就可以建立很多的分身。
  • 我们可以开很多的worker,把经验集合在一起。
    在这里插入图片描述
  • 一开始有global network(前面说过actor和critic前面几个layer是在一起的),有关policy的network和value的network。每一个worker用一个cpu去跑。
  • 每一个worker工作前就把参数 θ \theta θ copy过来,接下来就和actor做互动,每一个actor都会不一样就会收集到多样性的data,互动完后就会得到gradient,gradient就可以去update参数。注意,所有的actor是平行跑的。意思是在传回去的时候,可能是更新的别的worker更新的参数。

Pathwise Derivative Policy Gradient

这是Q learning解连续性问题的方法。
传统的actor-critic在只知道现在做的这个行为好还是不好,但是在Pathwise Derivative Policy Gradient里面可以直接知道要怎样做才是好的,critic会直接引导actor做action得到更多的reward。

  • Q learning不能考虑连续性问题,那么我们可以用一个continuous vector来解这个优化问题。
    在这里插入图片描述
    在这里插入图片描述

  • 假设这个actor就可以得到最大的Q value。在GAN里面,要知道一个discriminator的东西好不好,discriminator要自己生东西非常困难。所以另外写一个generator来生成。Q就可以类比GAN里面的discriminator,另外加一个actor来解。

  • 因此我们原来的Q learning可以加一个actor来改进。或者说,原来的actor-critic不能知道应该怎样是好的,用Pathwise Derivative Policy Gradient可以。
    在这里插入图片描述

  • 用一个actor从s中得到a,a丢到Q function以后,可以让 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a)越大越好。实际上是把actor和Q接起来,变成比较大的network。然后固定住Q的参数,去调Actor的参数,用梯度上升的方法最大化Q的output。在这里插入图片描述

  • 开始有actor π \pi π去和环境互动,估计出Q value。然后把Q value固定,只更新actor,然后得到怎样的a可以最大化Q,更新 π \pi π,进入循环。


http://www.niftyadmin.cn/n/1399161.html

相关文章

DDPG自动驾驶横向控制项目调参过程

DDPG自动驾驶横向控制项目调参过程actor和critic网络的学习率OU噪声参数设置整体参数设置结果我做的一个DDPG的自动驾驶横向控制的项目,用的模拟器是Torcs。在调参过程中遇到了很多问题,在这里记录一下。actor和critic网络的学习率 一开始我按照大部分资…

Ubuntu16.04 安装ROS Kinetic

参考网址:https://blog.csdn.net/qq_40936141/article/details/86241910 记录一下安装过程 Ubuntu16.04 安装ROS Kinetic一、 安装ROS1、添加ROS软件源2、添加密钥3、更新软件包4、安装ROS Kinetic5、初始化ROSrosdep init ROS安装问题解决方案6、安装rosinstall二…

安装和使用 mpi4py

安装和使用 mpi4py参考文章:https://www.jianshu.com/p/ba6f7c9415a0测试那里print需要改成括号

【强化学习文献阅读】DRN:新闻推荐的深度强化学习框架

Article 作者:Guanjie Zheng, Fuzheng Zhang, Zihan Zheng, Yang Xiang, Nicholas Jing Yuan, Xing Xie, Zhenhui Li文献题目:DRN:新闻推荐的深度强化学习框架文献时间:2018文献链接:http://www.personal.psu.edu/~gj…

【推荐系统论文阅读】基于强化学习的推荐模拟用户反馈

Article 作者:Xiangyu Zhao, Long Xia, Lixin Zou, Dawei Yin, Jiliang Tang文献题目:基于强化学习的推荐模拟用户反馈文献时间:2019文献链接:https://arxiv.org/abs/1906.11462 摘要 随着强化学习 (RL) 的最新进展&#xff0c…

【强化学习-医疗】用于临床决策支持的深度强化学习:简要综述

Article 作者:Siqi Liu, Kee Yuan Ngiam, Mengling Feng文献题目:用于临床决策支持的深度强化学习:简要综述文献时间:2019文献链接:https://arxiv.org/abs/1907.09475 摘要 由于人工智能尤其是深度学习的最新进展&a…

【强化学习-医疗】医疗保健中的强化学习:综述

Article 作者:Chao Yu, Jiming Liu, Shamim Nemati文献题目:医疗保健中的强化学习:综述文献时间:2020文献链接:https://arxiv.org/abs/1908.08796 摘要 作为机器学习的一个子领域,强化学习 (RL) 旨在通过…

基于知识引导的强化学习相关算法介绍

伏羲课堂 学习笔记 absorbing states:一旦进入了state就不会出来了。