强化学习:DDPG到MADDPG

目录

策略梯度(Policy Gradient)

行动器-评判器方法(Actor-Critic)

Deterministic Policy Gradient

on-policy和off-policy

DPG

Deep Deterministic Policy Gradient

Multi-agent Deep Deterministic Policy Gradient

多智能体强化学习背景

MADDPG

MADDPG的实现

参考文献


本文主要关注于强化学习中基于策略梯度的方法。首先会简要介绍什么是策略梯度,什么是Actor-Critic算法,以及DPG算法,之后会重点讲述DDPG(Deep Deterministic Policy Gradient)算法,以及DDPG的多智能体版本:MADDG(Multi-agent Deep Deterministic Policy Gradient)。

策略梯度(Policy Gradient)

与基于策略梯度(Policy Based)的方法相对应的,是基于动作价值函数(Value Based)的方法。我们熟悉的DQN(Deep Q Learning)就是典型的基于动作价值函数的强化学习方法。它们都是先学习动作价值函数,然后根据估计的动作价值函数来选择动作,如果没有这个动作价值函数,那么策略也不会存在。但是Value Based的方法也存在一些问题,首先,Value Based的方法很难处理连续动作的问题,因为Value Based的方法是根据动作价值函数q(s,a),寻找能使得q最大的a,如果a是一个连续空间下的动作,这个问题就会很难处理。另外,Value Based的方法也很难输出一个随机策略,因为我们最后选择动作是去选择q(s,a)最大的,而不是基于一个a的概率,因此,我们期望能有一种方法,可以不经过价值函数,直接输出动作的概率,这就是Policy Based的方法。

如上所述,我们要学习的策略,可以形式化地表达为\pi(a|s,\theta)=Pr \{A_t = a | S_t = s, \theta_t = \theta\},也就是在t时刻,状态s下选择a动作的概率。我们讨论的策略参数θ的学习方法都是基于某种性能度量J(θ)的梯度,这些梯度是度量J(θ)对策略参数的梯度,我们的目标是最大化性能指标,所以它们的更新近似于J的梯度上升。 

                                                                                                                                        \theta_{t+1} = \theta_{t} + \alpha \widehat{\Delta J(\theta_{t} )} 

所有符合这个框架的方法都称为策略梯度法,不管它们是否还同时学习一个近似的价值函数。

我们基于策略梯度定理 \nabla J(\boldsymbol{\theta}) \propto \sum_{s} \mu(s) \sum_{a} q_{\pi}(s, a) \nabla \pi(a \mid s, \theta)来对参数进行优化。

有了对参数的优化方法,下面的问题就是这个策略函数\pi(a|s,\theta)具体应当是怎样的。我们可以简单看一下,在离散的情况下,策略梯度函数是怎样的。我们可以根据一个指数柔性最大化分布\pi(a \mid s, \boldsymbol{\theta}) \doteq \frac{e^{h(s, a, \boldsymbol{\theta})}}{\sum_{b} e^{h(s, b, \boldsymbol{\theta})}}选择。在这里h可以是任意的函数,它既可以是一个复杂的神经网络,也可以是一个简单的线性组合。在这里,我提一个问题,连续性的动作,我们是怎么基于\pi(a \mid s, \boldsymbol{\theta})来进行策略选择的?粗看这个公式,它输出的是在特定环境下,某个动作a出现的概率,这看起来好像和Q(s,a)没有啥区别,面对无限的连续空间,我们依然找不到那个最大的概率,那我们是怎么选择动作的呢?

想要进一步了解策略梯度算法的可以去学习REINFORCE蒙特卡洛策略梯度算法

我们对策略梯度的基本内容介绍到此为止,接下来我们看一种同时学习策略和价值函数的方法——Actor-Critic

行动器-评判器方法(Actor-Critic)

基于策略梯度的算法,比如蒙特卡洛策略梯度算法,都是基于回合更新的,学习比较缓慢,因此我们考虑使用时序差分的方法来消除这些不便。因此,我们可以考虑用一个Actor(继承策略梯度的方法)来学习策略,和一个Critic(继承Value based)的方法来实现单步更新,Critic就是在做对策略的评估,也就是Q_{w}(s, a) \approx Q^{\pi_{\theta}}(s, a)。基于这种想法,策略梯度的更新公式如下所示

                                                                                                                                   

评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值