强化学习组队学习task06——DDPG 算法
文章目录
- 一、离散动作和连续动作
- 二、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。
- Deep 是因为用了神经网络;
- Deterministic 表示 DDPG 输出的是一个确定性的动作,可以用于连续动作的一个环境;
- 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 算法相关推荐
- 【集成学习-组队学习】2.使用sklearn构建完整的机器学习项目流程
使用sklearn构建完整的机器学习项目流程 组队学习来源: Datewhle23期__集成学习(上) : https://github.com/datawhalechina/team-learnin ...
- 强化学习组队学习task03—— 策略梯度及 PPO 算法
文章目录 一.策略梯度 1.策略梯度理论实现 R的梯度算法: 对于该公式的理解: 在计算完R的梯度后,我们就使用策略梯度对参数进行更新 2.策略梯度实现的小技巧 (1)添加一个基准值 (2)分配合适的 ...
- 强化学习组队学习task04—— DQN 算法及 Actor-Critic 算法
文章目录 一.DQN 1.状态价值函数的估计方法 2.Q函数 3.DQN网络中的tips (1)目标网络 (2)Exploration (3)Experience Replay(经验回放) 4.DQN ...
- 强化学习组队学习task02——马尔可夫决策过程及表格型方法
文章目录 一.马尔科夫决策过程 1.马尔科夫链 2.马尔科夫奖励过程 (1)贝尔曼公式(Bellman equation) (2)迭代法 蒙特卡罗办法 动态规划方法 3.马尔科夫决策过程 MDP的价值 ...
- 强化学习组队学习task01——基础
强化学习 一.强化学习基础 二.序列决策过程(Sequential Decision Making) 1.奖励(rewards) 2.序列决策过程 3.动作空间(Action Spaces) 4.Ag ...
- 强化学习组队学习task05—— 稀疏奖励及模仿学习
文章目录 一.Sparse Reward 1.Reward Shaping ICM(intrinsic curiosity module) 2.Curriculum Learning Reverse ...
- 胡锐锋:组队学习分享(队长)
组队学习分享(队长) 自我介绍 胡锐锋,现为Datawhale成员,目前担任<统计学习方法习题解答>开源项目的负责人,已工作近8年,由大数据平台研发工程师转变成一位项目管理人.我的人生目标 ...
- 深度强化学习-DDPG算法原理和实现
全文共3077个字,8张图,预计阅读时间15分钟. 基于值的强化学习算法的基本思想是根据当前的状态,计算采取每个动作的价值,然后根据价值贪心的选择动作.如果我们省略中间的步骤,即直接根据当前的状态来选 ...
- 深度强化学习系列(16): 从DPG到DDPG算法的原理讲解及tensorflow代码实现
1.背景知识 在前文系列博客第二篇中讲解了DQN(深度强化学习DQN原理),可以说它是神经网络在强化学习中取得的重大突破,也为强化学习的发展提供了一个方向和基础,Sliver等人将其应用在Atari游 ...
最新文章
- 遥遥无期还是近在咫尺?长文展望「大模型」商业化前景
- 动图演示:手撸堆栈的两种实现方法!
- python从入门到实践学习笔记_Python编程从入门到实践:学习笔记1(第二章)
- arduino 嗡鸣器 音乐_[求助]怎样实现红外遥控蜂鸣器播放音乐,求大神指正
- java从外部得到数据_java – 如何实现Observer以从侦听器获取数据?
- 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(二):Apache安装和配置
- 2022前端面试笔试题及答案
- Hbase 查询命令 条件筛选
- Java 移位操作符
- DSP内核结构中的 D L S M
- java中如何表达sin_在Java中使用“sincos”
- 济南市全国计算机二级,济南市2020年3月计算机二级报名时间|网上报名入口【12月20日9:00开通】...
- Vue动态渲染echarts图表
- 无法解压文件请重新启动计算机,为什么rar文件无法解压,显示数据错误,文
- 【Word】插入题注图1-1,并在文章中交叉引用
- PUTTY 中文教程
- 【web安全】从2022中科大hackgame web中学习pdflatex RCE和python反序列化
- 阿里云服务器搭建使用教程(四)域名使用及备案
- 为什么Vue中的v-if 和v-for不建议一起用?
- 打印机显示另一台计算机正在使用,惠普打印机显示“由于另一个程序或另一台计算机正在使用联网的HP成像设备因此无法执行”怎么办?...