深入理解DDPG强化学习算法详解
DDPG原理和算法
-
-
DDPG原理和算法
- 背景描述
- DDPG的定义和应用场景
- PG
- DPG
- DDPG
- DDPG算法相关基本概念定义
- DDPG实现框架和算法
- DDPG对于DPG的关键改进
-
DDPG原理和算法
以下用RL作为Reinforcement Learning的简称。
背景描述
概括来说,RL要解决的问题是:让agent学习在一个环境中的如何行为动作(act), 从而获得最大的奖励值总和(total reward)。
这个奖励值一般与agent定义的任务目标关联。
agent需要的主要学习内容:第一是行为策略(action policy), 第二是规划(planning)。
其中,行为策略的学习目标是最优策略, 也就是使用这样的策略, 可以让agent在特定环境中的行为获得最大的奖励值,从而实现其任务目标。
行为(action)可以简单分为:
-
连续的:如赛车游戏中的方向盘角度、油门、刹车控制信号,机器人的关节伺服电机控制信号。
-
离散的:如围棋、贪吃蛇游戏。 Alpha Go就是一个典型的离散行为agent。
DDPG是针对连续行为的策略学习方法。
如果要了解完整和系统的RL背景知识,推荐大家看R.Sutton的这本书: 《Reinforcement Learning: An Introduction, by Sutton, R.S. and Barto, A.G.》
DDPG的定义和应用场景
在RL领域,DDPG主要从:PG -> DPG -> DDPG发展而来。
先复述一下相关的基本概念:
-
:在t时刻,agent观察到的环境状态,比如观察到的环境图像,agent在环境中的位置、速度、机器人关节角度等;
-
:在t时刻,agent选择的行为(action),通过环境执行后,环境状态由转换为;
-
函数:环境在状态执行行为后,返回的单步奖励值;
上述关系可以用一个状态转换图来表示:
-
:是从当前状态直到将来某个状态,期间所有行为所获得奖励值的加权总和,即discounted future reward:
其中γ叫做discounted rate, ∈[0,1] ,通常取0.99.
PG
R.Sutton 在2000年提出的Policy Gradient方法,是RL中,学习连续的行为控制策略的经典方法,其提出的解决方案是: 通过一个概率分布函数 , 来表示每一步的最优策略, 在每一步根据该概率分布进行action采样,获得当前的最佳action取值;即:
生成action的过程,本质上是一个随机过程;最后学习到的策略,也是一个随机策略(stochastic policy).
DPG
Deepmind的D.Silver等在2014年提出DPG: Deterministic Policy Gradient, 即确定性的行为策略,每一步的行为通过函数直接获得确定的值:
这个函数即最优行为策略,不再是一个需要采样的随机策略。
为何需要确定性的策略?简单来说,PG方法有以下缺陷:
-
即使通过PG学习得到了随机策略之后,在每一步行为时,我们还需要对得到的最优策略概率分布进行采样,才能获得action的具体值;而action通常是高维的向量,比如25维、50维,在高维的action空间的频繁采样,无疑是很耗费计算能力的;
-
在PG的学习过程中,每一步计算policy gradient都需要在整个action space进行积分:
(, 参见下面DDPG部分的概念定义.)
这个积分我们一般通过Monte Carlo 采样来进行估算,需要在高维的action空间进行采样,耗费计算能力。如果采取简单的Greedy策略,即每一步求解 也不可行,因为在连续的、高维度的action空间,如果每一步都求全局最优解,太耗费计算性能。
在这之前,业界普遍认为,环境模型无关(model-free)的确定性策略是不存在的,在2014年的DPG论文中,D.Silver等通过严密的数学推导,证明了DPG的存在, 其数学表示参见DDPG算法部分给出的公式 (3)。
然后将DPG算法融合进actor-critic框架,结合Q-learning或者Gradient Q-learning这些传统的Q函数学习方法,经过训练得到一个确定性的最优行为策略函数。
DDPG
Deepmind在2016年提出DDPG,全称是:Deep Deterministic Policy Gradient,是将深度学习神经网络融合进DPG的策略学习方法。
相对于DPG的核心改进是: 采用卷积神经网络作为策略函数μμ和QQ函数的模拟,即策略网络和Q网络;然后使用深度学习的方法来训练上述神经网络。
Q函数的实现和训练方法,采用了Deepmind 2015年发表的DQN方法 ,即 Alpha Go使用的Q函数方法。
DDPG算法相关基本概念定义
我们以Open Gym 作为环境为例来讲解。
先复述一下DDPG相关的概念定义:
-
确定性行为策略: 定义为一个函数,每一步的行为可以通过 计算获得。
-
策略网络:用一个卷积神经网络对函数进行模拟,这个网络我们就叫做策略网络,其参数为;
-
behavior policy : 在RL训练过程中,我们要兼顾2个e: exploration和exploit;exploration的目的是探索潜在的更优策略,所以训练过程中,我们为action的决策机制引入随机噪声:
将action的决策从确定性过程变为一个随机过程, 再从这个随机过程中采样得到action,下达给环境执行.
过程如下图所示:
上述这个策略叫做behavior策略,用来表示, 这时RL的训练方式叫做off-policy.这里与ϵ−greedy的思路是类似的。
DDPG中,使用Uhlenbeck-Ornstein随机过程(下面简称UO过程),作为引入的随机噪声: UO过程在时序上具备很好的相关性,可以使agent很好的探索具备动量属性的环境。
注意:
– 这个不是我们想要得到的最优策略,仅仅在训练过程中,生成下达给环境的action, 从而获得我们想要的数据集,比如状态转换(transitions)、或者agent的行走路径等,然后利用这个数据集去 训练策略,以获得最优策略。
– 在test 和 evaluation时,使用,不会再使用。 -
函数: 即action-value 函数,定义在状态下,采取动作后,且如果持续执行策略的情况下, 所获得的 期望值, 用Bellman 等式来定义:
可以看到,函数的定义是一个递归表达,在实际情况中,我们不可能每一步都递归计算Q的值, 可行的方案是通过一个函数对Bellman等式表达进行模拟。 -
网络:DDPG中,我们用一个卷积神经网络对函数进行模拟,这个网络我们就叫做网络, 其参数为。采用了DQN相同的方法。
-
如何衡量一个策略的表现:用一个函数来衡量,我们叫做performance objective,针对off-policy学习的场景,定义如下:
其中:
-
是环境的状态,这些状态(或者说agent在环境中走过的状态路径)是基于agent的behavior策略产生的,它们的分布函数(pdf) 为;
-
是在每个状态下,如果都按照策略选择acton时,能够产生的Q值。
也即,是在根据分布时, 的期望值。 -
训练的目标: 最大化,同时最小化网络的Loss(下面描述算法步骤时会给出)。
-
最优行为策略的定义: 即最大化的策略:
训练网络的过程,就是寻找网络参数的最优解的过程,我们使用SGA(stochastic gradient ascent)的方法。
-
最优网络定义:具备最小化的网络Loss;
训练网络的过程,就是寻找网络参数的最优解的过程,我们使用SGD的方法。
DDPG实现框架和算法
online 和 target 网络
以往的实践证明,如果只使用单个”Q神经网络”的算法,学习过程很不稳定,因为Q网络的参数在频繁gradient update的同时,又用于计算Q网络和策略网络的gradient, 参见下面等式(8),(9),(10).
基于此,DDPG分别为策略网络(8)、Q网络(9)各创建两个神经网络拷贝,一个叫做online,一个叫做target:
在训练完一个mini-batch的数据之后,通过SGA/SGD算法更新online网络的参数,然后再通过soft update算法更新 target 网络的参数。soft update是一种running average的算法:
- 优点:target网络参数变化小,用于在训练过程中计算online网络的gradient,比较稳定,训练易于收敛。
- 代价:参数变化小,学习过程变慢。
DDPG实现框架,如下图所示:
DDPG算法流程如下:
初始化actor\critic的 online 神经网络参数: 和 ;
将online网络的参数拷贝给对应的target网络参数:,;
初始化replay memory buffer ;
for each episode:
初始化UO随机过程;
for t = 1, T:
下面的步骤与DDPG实现框架图中步骤编号对应:
actor 根据behavior策略选择一个 , 下达给gym执行该;
behavior策略是一个根据当前online策略 和随机UO噪声生成的随机过程, 从这个随机过程采样 获得的值。
gym执行 ,返回reward 和新的状态;
actor将这个状态转换过程(transition): 存入replay memory buffer 中,作为训练online网络的数据集。
上一篇: 探究深度学习与强化学习的紧密结合:DQN与DDPG的深入比较研究
下一篇: 简单讲解健身房里的离散类型(Discrete)、盒子类型(Box)与多维离散类型(Multidiscrete):概念介绍及实际运用指南
推荐阅读
-
深入理解强化学习中的自然梯度法
-
【摩尔线程+Colossal-AI强强联手】MusaBert登上CLUE榜单TOP10:技术细节揭秘 - 技术实力:摩尔线程凭借"软硬兼备"的技术底蕴,让MusaBert得以从底层优化到顶层。其内置多功能GPU配备AI加速和并行计算模块,提供了全面的AI与科学计算支持,为AI推理和低资源条件下的大模型训练等场景带来了高效、经济且环保的算力。 - 算法层面亮点:依托Colossal-AI AI大模型开发系统,MusaBert在训练过程中展现出了卓越的并行性能与易用性,特别在预处理阶段对DataLoader进行了优化,适应低资源环境高效处理海量数据。同时,通过精细的建模优化、领域内数据增强以及Adan优化器等手段,挖掘和展示了预训练语言模型出色的语义理解潜力。基于MusaBert,摩尔线程自主研发的MusaSim通过对比学习方法微调,结合百万对标注数据,MusaSim在多个任务如语义相似度、意图识别和情绪分析中均表现出色。 - 数据资源丰富:MusaBert除了自家高质量语义相似数据外,还融合了悟道开源200GB数据、CLUE社区80GB数据,以及浪潮公司提供的1TB高质量数据,保证模型即便在较小规模下仍具备良好性能。 当前,MusaBert已成功应用于摩尔线程的智能客服与数字人项目,并广泛服务于语义相似度、情绪识别、阅读理解与声韵识别等领域。为了降低大模型开发和应用难度,MusaBert及其相关高质量模型代码已在Colossal-AI仓库开源,可快速训练优质中文BERT模型。同时,通过摩尔线程与潞晨科技的深度合作,仅需一张多功能GPU单卡便能高效训练MusaBert或更大规模的GPT2模型,显著降低预训练成本,进一步推动双方在低资源大模型训练领域的共享目标。 MusaBert荣登CLUE榜单TOP10,象征着摩尔线程与潞晨科技联合研发团队在中文预训练研究领域的领先地位。展望未来,双方将携手探索更大规模的自然语言模型研究,充分运用上游数据资源,产出更为强大的模型并开源。持续强化在摩尔线程多功能GPU上的大模型训练能力,特别是在消费级显卡等低资源环境下,致力于降低使用大模型训练的门槛与成本,推动人工智能更加普惠。而潞晨科技作为重要合作伙伴,将继续发挥关键作用。
-
深入理解数据结构与算法系列:广义表详解(第二十六讲)
-
初探多Agent强化学习算法系列:MAPPO、MADDPG与QMIX详解
-
详解多智能体强化学习算法系列(三期):QMIX、MADDPG与MAPPO的深度解析
-
实用讲解:多智能体强化学习算法进阶(下)—— MADDPG、QMIX、MAPPO详解
-
深入理解强化学习论文:MADDPG方法详解
-
实用讲解:多智能体强化学习算法进阶(下)—— MADDPG、QMIX、MAPPO详解
-
详解多智能体强化学习算法系列(三期):QMIX、MADDPG与MAPPO的深度解析
-
初探多Agent强化学习算法系列:MAPPO、MADDPG与QMIX详解