文章目录

  • 一、离散动作和连续动作
  • 二、DDPG(Deep Deterministic Policy Gradient)
    • Actor-Critic结构

一、离散动作和连续动作

离散动作与连续动作是相对的概念,一个是可数的,一个是不可数的。

  • 离散动作比如推小车的方向有前后左右四个方向
  • 连续动作比如说推小车力的大小、 选择下一时刻方向盘的转动角度或者四轴飞行器的
    四个螺旋桨给的电压的大小等等。

对于这些连续的动作控制空间,Q-learning、DQN 等算法是没有办法处理的。这个时候,万能的神经网络又出现了。

  • 在离散动作的场景下,输出有几个动作,神经网络就输出几个动作的概率值,这里使用一层sofemax来实现,所有的动作概率之和为1。
  • 在连续的动作场景下,比如要输出机器人手臂弯曲的角度,就输出一个具体的浮点数,具体实现时通过一个tanh层,他的作用是将输出限制到1和-1之间,之后按照比例进行放大或缩小得到最终结果。

二、DDPG(Deep Deterministic Policy Gradient)

DDPG 的特点可以从它的名字当中拆解出来,拆解成 Deep、Deterministic 和 Policy Gradient。

  1. Deep 是因为用了神经网络;
  2. Deterministic 表示 DDPG 输出的是一个确定性的动作,可以用于连续动作的一个环境;
  3. Policy Gradient 代表的是它用到的是策略网络。REINFORCE 算法每隔一个 episode 就更新一次,但 DDPG 网络是每个 step 都会更新一次 policy 网络,也就是说它
    是一个单步更新的 policy 网络。

DDPG 是 DQN 的一个扩展的版本。在 DDPG 的训练中,它借鉴了 DQN 的技巧:目标网络和经验回放。经验回放跟 DQN 是一样的,但 target network 的更新跟 DQN 有点不一样。

DDPG 直接在 DQN 基础上加了一个策略网络,用来直接输出动作值。所以 DDPG 需要一边学习 Q 网络,一边学习策略网络。这样的结构为之前介绍的 Actor-Critic 的结构。

Actor-Critic结构

策略网络扮演的是 actor 的角色,它负责对外展示输出。Q 网络就是评论家(critic),它会在每一个 step 都对 actor 输出的动作做一个评估,估计一下它做一次的 action 未来能有多少收益,即Q 值。 Actor 就需要根据舞台目前的状态来做出一个 action,也就是更新 actor 的神经网络参数;而 critic 就是要根据环境的反馈 reward 来调整自己的打分策略,也就是要更新 critic 的神经网络的参数 ,它的目标就是要最大化未来的总收益。

最开始训练的时候,这两个神经网络参数是随机的。所以 critic 最开始是随机打分的,然后 actor 也跟着随机输出动作。但是由于我们有环境反馈的 reward 存在,所以 critic 的评分会越来越准确。我们就需要计算梯度来去更新优化actor网络的参数 。

类似 DQN,DDPG 的目的也是为了求解让 Q 值最大的那个 action。Actor 只是为了迎合评委的打分而已,所以用来优化策略网络的梯度就是要最大化这个 Q 值,所以构造的 loss 函数就是让 Q 取一个负号

需要注意的是,除了策略网络,DDPG 还有一个 Q 网络也要优化。我们优化 Q 网络的方法其实跟 DQN 优化 Q 网络的方法是一模一样的,我们用真实的 reward 和下一步的 Q 即 Q’ 来去拟合未来的收益也就是 Q_target。然后让 Q 网络的输出去逼近这个 Q_target。所以构造的 loss function 就是直接求这两个值的均方差。构造好 loss 后,之后我们就扔进去那个优化器,让它自动去最小化loss 就好了。


那我们把两个网络的损失函数就可以构造出来。我们可以看到策略网络的损失函数是一个复合函数。我们把 action 代进去,最终策略网络要优化的是策略网络的参数 θ 。

Q 网络要优化的是输出 Q 和 Q_target 之间的均方差。但是 Q网络的优化存在一个和 DQN 一模一样的问题就是它后面的这个 Q_target 是不稳定的。为了稳定 Q_target。DDPG 分别给 Q 网络和策略网络都搭建了 target network,专门就是为了用来稳定这个 Q_target。

所以 DDPG 一共有四个网络: Q 网络和策略网络以及后面的 target_Q 网络和 target_P 策略网络。这两个 target 网络是固定一段时间的参数之后再跟评估网络同步一下最新的参数。

这里面训练需要用到的数据就是s,a,r,s‘ 。我们只需要用到这四个数据,我们就用 Replay Memory 把这些数据存起来,然后再 sample 进来训练就好了。这个经验回放的技巧跟 DQN 是一模一样的。注意,因为 DDPG 使用了经验回放这个技巧,所以 DDPG 是一个 off-policy 的算法。

强化学习组队学习task06——DDPG 算法相关推荐

  1. 【集成学习-组队学习】2.使用sklearn构建完整的机器学习项目流程

    使用sklearn构建完整的机器学习项目流程 组队学习来源: Datewhle23期__集成学习(上) : https://github.com/datawhalechina/team-learnin ...

  2. 强化学习组队学习task03—— 策略梯度及 PPO 算法

    文章目录 一.策略梯度 1.策略梯度理论实现 R的梯度算法: 对于该公式的理解: 在计算完R的梯度后,我们就使用策略梯度对参数进行更新 2.策略梯度实现的小技巧 (1)添加一个基准值 (2)分配合适的 ...

  3. 强化学习组队学习task04—— DQN 算法及 Actor-Critic 算法

    文章目录 一.DQN 1.状态价值函数的估计方法 2.Q函数 3.DQN网络中的tips (1)目标网络 (2)Exploration (3)Experience Replay(经验回放) 4.DQN ...

  4. 强化学习组队学习task02——马尔可夫决策过程及表格型方法

    文章目录 一.马尔科夫决策过程 1.马尔科夫链 2.马尔科夫奖励过程 (1)贝尔曼公式(Bellman equation) (2)迭代法 蒙特卡罗办法 动态规划方法 3.马尔科夫决策过程 MDP的价值 ...

  5. 强化学习组队学习task01——基础

    强化学习 一.强化学习基础 二.序列决策过程(Sequential Decision Making) 1.奖励(rewards) 2.序列决策过程 3.动作空间(Action Spaces) 4.Ag ...

  6. 强化学习组队学习task05—— 稀疏奖励及模仿学习

    文章目录 一.Sparse Reward 1.Reward Shaping ICM(intrinsic curiosity module) 2.Curriculum Learning Reverse ...

  7. 胡锐锋:组队学习分享(队长)

    组队学习分享(队长) 自我介绍 胡锐锋,现为Datawhale成员,目前担任<统计学习方法习题解答>开源项目的负责人,已工作近8年,由大数据平台研发工程师转变成一位项目管理人.我的人生目标 ...

  8. 深度强化学习-DDPG算法原理和实现

    全文共3077个字,8张图,预计阅读时间15分钟. 基于值的强化学习算法的基本思想是根据当前的状态,计算采取每个动作的价值,然后根据价值贪心的选择动作.如果我们省略中间的步骤,即直接根据当前的状态来选 ...

  9. 深度强化学习系列(16): 从DPG到DDPG算法的原理讲解及tensorflow代码实现

    1.背景知识 在前文系列博客第二篇中讲解了DQN(深度强化学习DQN原理),可以说它是神经网络在强化学习中取得的重大突破,也为强化学习的发展提供了一个方向和基础,Sliver等人将其应用在Atari游 ...

最新文章

  1. 遥遥无期还是近在咫尺?长文展望「大模型」商业化前景
  2. 动图演示:手撸堆栈的两种实现方法!
  3. python从入门到实践学习笔记_Python编程从入门到实践:学习笔记1(第二章)
  4. arduino 嗡鸣器 音乐_[求助]怎样实现红外遥控蜂鸣器播放音乐,求大神指正
  5. java从外部得到数据_java – 如何实现Observer以从侦听器获取数据?
  6. 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(二):Apache安装和配置
  7. 2022前端面试笔试题及答案
  8. Hbase 查询命令 条件筛选
  9. Java 移位操作符
  10. DSP内核结构中的 D L S M
  11. java中如何表达sin_在Java中使用“sincos”
  12. 济南市全国计算机二级,济南市2020年3月计算机二级报名时间|网上报名入口【12月20日9:00开通】...
  13. Vue动态渲染echarts图表
  14. 无法解压文件请重新启动计算机,为什么rar文件无法解压,显示数据错误,文
  15. 【Word】插入题注图1-1,并在文章中交叉引用
  16. PUTTY 中文教程
  17. 【web安全】从2022中科大hackgame web中学习pdflatex RCE和python反序列化
  18. 阿里云服务器搭建使用教程(四)域名使用及备案
  19. 为什么Vue中的v-if 和v-for不建议一起用?
  20. 打印机显示另一台计算机正在使用,惠普打印机显示“由于另一个程序或另一台计算机正在使用联网的HP成像设备因此无法执行”怎么办?...

热门文章

  1. 使用一次性密码本通过 SSH 安全登录 Linux
  2. MySQL5.7重置root密码
  3. 移动终端如何远程接入企业的核心系统?
  4. 解决Linux中文乱码问题
  5. 设置grub从哪个分区的menu.lst引导系统
  6. 事件 ID: 3006 定期记录到应用程序日志
  7. 100小时学会sap傻瓜式入门版生产计划pp篇
  8. OpenCV-理想高通低通滤波器(C++)
  9. amd860k能装黑苹果吗_我的电脑可以安装黑苹果吗?
  10. mysql索引级别快慢_面试小点-MySQL 的两种索引方法如何提高查询速度