多智能体强化学习:深度强化学习的多样性驱动探索策略

题目:Diversity-Driven Exploration Strategy for Deep Reinforcement Learning

出处:NeurIPS 2018,人工智能的顶级会议。

摘要:在强化学习中,有效探索仍然是一个具有挑战性的研究问题,特别是当环境包含大的状态空间、欺骗性或稀疏的奖励时。为了解决这个问题,我们提出了一种多样性驱动的探索方法,该方法可以很容易地与非策略和非策略强化学习算法相结合。我们表明,通过简单地将距离度量正则化添加到损失函数,所提出的方法显著增强了智能体的探索行为,从而防止策略陷入局部最优。我们进一步提出了一种自适应缩放策略来提高性能。我们展示了我们的方法在巨大的2D网格世界和各种基准环境中的有效性,包括Atari 2600和MuJoCo。实验结果表明,在大多数任务中,我们的方法在平均得分和探索效率方面优于基线方法。

1,引言

近年来,深度强化学习(DRL)在各种应用领域引起了关注,如游戏播放[1,2]和机器人导航[3]。然而,对于具有大状态空间、欺骗性局部最优或稀疏奖励信号的环境,探索仍然是一个主要挑战。在一个有欺骗性回报的环境中,智能体可能陷入局部最优,永远不会发现其他策略来获得更大的回报。例如,在MuJoCo的HalfCheetah[4]中,智能体很快学会了向后翻转,然后“摇摆”前进,这是一种次优策略[5]。此外,只有稀疏奖励的环境提供的训练信号很少,使得智能体很难发现可行的策略。一种常见的探索方法是采用简单的启发式方法,例如贪婪[1,6]或熵正则化[7]。然而,这种策略不太可能在具有欺骗性或稀疏奖励的任务中产生令人满意的结果[8,9]。一系列更为复杂的方法为智能体提供奖励,无论他们何时访问一个新的州。例如,[10]使用信息增益作为状态新颖性的度量。在[11]中,使用计数表来估计访问状态的新颖性。神经密度模型[12]也被用来衡量智能体的奖金奖励。在[13,14]中,根据其系统动力学模型的预测误差来估计状态的新颖性。然而,这些方法通常需要统计或预测模型来评估状态的新颖性,因此增加了训练过程的复杂性。

为了解决复杂性问题,一些研究人员试图从进化算法中接受随机扰动的概念[5,8]。通过将随机噪声添加到参数空间,他们的方法允许RL智能体更一致地执行探索,而不引入额外的计算成本。尽管这些方法简单,但在大状态空间中效率较低,因为随机噪声以不可预测的方式改变了智能体的行为模式[5,8]。在[15]中,作者提出通过使用自举子样本训练多个值函数来解决这个问题。然而,它需要额外的模型参数,从而导致额外的计算开销。

在本文中,我们提出了一种多样性驱动的探索策略,这是一种鼓励DRL智能体尝试不同于其先前策略的策略的方法。我们建议使用距离度量来修改损失函数,以解决奖励信号中的大状态空间、欺骗性和稀疏性问题。距离度量评估当前策略与一组先前策略之间的新颖性。我们的方法从新颖性搜索中获得灵感[16-18],该搜索通过鼓励新颖行为来促进基于人群的探索。我们的方法在几个方面与它不同。

  • 首先,我们将新颖性搜索的概念从进化策略引入到DRL框架中。
  • 第二,我们训练的是一个单一的智能体,而不是一个群体。
  • 第三,新颖性搜索完全忽略了奖励,而我们使用奖励信号和距离度量来优化策略。

与我们类似的一项工作同样采用了新颖的探索方法[19]。然而,他们的方法仍然存在于遗传算法领域。我们证明了我们的方法是互补的,并且很容易适用于大多数非策略和非策略DRL算法。我们进一步提出了一种自适应缩放策略,该策略动态缩放距离度量的效果,以增强整体性能。自适应缩放策略包括两种方法:基于距离的方法和基于性能的方法。前一种方法基于距离度量调整缩放因子,而后一种方法根据先前策略的性能对其进行缩放。

为了验证所提出的多样性驱动的探索策略的有效性,我们首先证明了我们的方法确实会在具有欺骗性或稀疏奖励的2D网格中产生更好的探索行为。我们将我们的方法与许多当代勘探方法(即基线)进行比较。我们的实验结果表明,尽管采用当代探索方法的大多数基线智能体很容易被欺骗性奖励所困住或在稀疏的奖励设置中失败,但采用我们的探索策略的智能体能够克服上述挑战,即使在奖励信号稀疏或环境包含欺骗性奖励时,也可以学习有效的策略。我们在各种基准环境中进一步评估了我们的方法,包括Atari 2600[20]和MuJoCo[4]。我们进行了各种实验,以证明多样性驱动的勘探策略的好处。我们表明,在平均分数和学习时间方面,所提出的方法优于或可与基线相比。此外,我们对所提出的自适应缩放策略进行了全面的消融实验,并研究了不同缩放方法对DRL智能体学习曲线的影响。

本文的主要贡献总结如下:

  • 一种简单、有效、高效的探索策略,适用于大多数策略外和策略内DRL算法。
  • 这是一种很有前途的处理大型状态空间、欺骗性奖励和稀疏奖励设置的方法。
  • 一种损失函数,旨在通过使用当前策略与有限的最新策略之间的距离度量来鼓励探索。
  • 一种自适应缩放策略,包括两种用于距离测量的缩放方法。它提高了整体性能。
  • 在三种不同的环境下对所提出的方法和许多当代方法进行了综合比较。

2,背景

在本节中,我们回顾了RL的概念,以及本文中使用的离线和在线策略方法。

2.1,强化学习

RL是一种训练智能体与环境 \varepsilon 交互的方法。RL智能体从 \varepsilon 的状态空间 S 观察状态 s,根据其策略 \pi(a|s) 从动作空间 A 采取动作 a,并且接收奖励 r(s,a) 。然后 \varepsilon 转变到一个新的状态 s^{'}。智能体的目标是最大化其折扣累积回报 G_t=\sum_{\tau=t}^{T}\gamma ^{\tau-t}r(s_{\tau},a_{\tau}),其中 t 是当前时间步长,\gamma\in(0,1] 是折扣系数,T 为地平线。给定策略 \pi 的作用值函数(即Q函数)定义为从状态-作用对 (s,a) 开始的预期回报,表示为 Q(s,a)=\mathbb{E}[G_t|s_t=s,a_t=a,\pi]

2.2,离线策略方法

离线策略方法将行为和目标策略解耦,使智能体能够使用由任意策略收集的样本或从经验回放中学习[1]。我们简要回顾了两种具有代表性的非策略方法,即深度Q网络(DQN)[1]和深度确定性策略梯度(DDPG)[21]。

DQN:DQN是一个由 \theta 参数化的深度神经网络(DNN),用于逼近最优Q函数。对于探索,它遵循[1]中描述的贪婪策略。网络使用从经验回放 Z 中提取的样本进行训练,并根据损失函数 L_{DQN} 进行更新,表示为:

L_{DQN}=\mathbb{E}_{s,a,s^{'}\sim U(Z)}[(y-Q(s,a,\theta))^2]

其中 y=(s,a)+\gamma max_{a^{'}}Q(s^{'},,a^{'},\theta^{-})U(Z) 是Z上的均匀分布,\theta^{-} 目标网络的参数。\theta^{-}\theta 以预定义的间隔更新。

DDPG是一种基于确定性策略梯度(DPG)算法[22]的行动者-评论家方法,该算法在连续的行动空间上学习策略。评论家与DQN类似地估计Q函数,对y进行轻微修改,y=r(s,a)+\gamma Q(s^{'},\pi(s^{'})),演员被训练为最大化评论家的估计Q值,损失函数 L_{actor} 由下式给出:

L_{actor}=-\mathbb{E}_{s\sim Z}[Q(s,\pi(s))]

其中 s 是从 Z 中采样的。DDPG使用随机策略 \hat{\pi}(s)=\pi(s)+N 进行勘探,其中N是噪声过程。N可以是正态分布的,也可以由Ornstein Uhlenbeck(OU)过程产生[21]。

2.3,在线策略方法

基于策略的方法根据当前策略生成的样本更新其值函数。我们回顾了一种称为Advantage Actor Critic(A2C)[7,23]的最新策略方法,该方法在第4节中进行了评估并与所提出的方法进行了比较。A2C是异步Advantage ActorCritic(A3C)[7]的同步变体,它在环境的多个实例上并行训练智能体。A2C比A3C提供了更好的GPU利用率。同样,评论家估计价值函数 V(s)。演员通过最小化以下损失函数来优化 \pi(a|s,\theta)

L_{actor}=- \mathbb{E}_{s,a\sim \pi}[G_t-V(s)+\beta H(\pi(\cdot|s,\theta))]

其中β是用于控制熵 H(\pi(\cdot|s,\theta)) 强度的超参数。A2C使用H(\pi(\cdot|s,\theta))来鼓励探索行为,并防止智能体过早地收敛到次优策略。

3,多样性驱动的勘探战略

所提出的多样性驱动探索策略的主要目标是鼓励DRL智能体在训练阶段探索不同的行为。多样性驱动的探索是一种有效的方式,可以激励智能体检查一组更丰富的状态,并为其提供逃避次优策略的方法。这可以通过如下修改损失函数LD来实现:

L_D=L-\mathbb{E}_{\pi^{'}\sim H^{'}}[\alpha D(\pi,\pi^{'})]

其中,L表示任意DRL算法的损失函数,π是当前策略,π′是从最近策略的有限集合中采样的策略,D是π和π′之间的距离度量,α是D的缩放因子。

首先,它驱动智能体​​​​​​​主动尝试新策略,增加访问新状态的机会,即使没有来自 \varepsilon 的奖励信号。该属性在稀疏奖励设置中特别有用,其中大多数状态的奖励为零。第二,距离度量D通过修改智能体的当前策略π来激励探索,而不是随机改变其行为。第三,它允许智能体在训练阶段有效探索的同时执行贪婪策略或随机策略。

对于贪婪策略,由于D需要智能体在每次更新后调整π,因此对状态的贪婪行为可能会相应地改变,从而潜在地引导智能体探索不可见的状态。这一性质还确保了该智能体在其熟悉的状态下一致地发挥作用,因为π和π′对这些状态产生相同的结果。这三个属性允许DRL智能体以系统和一致的方式探索环境。D的选择可以是KL散度、L2范数或均方误差(MSE)。感兴趣的读者可以参考我们的补充材料,了解如何选择距离测量的更多细节。在接下来的章节中,我们将解释如何将多样性驱动的探索与非策略和非策略方法相结合,以解决离散和连续控制问题。

3.1,离线方法实现

大多数离线DRL算法[1,21]采用经验回放机制来稳定学习过程。我们表明,分集驱动探索可以很容易地应用于离散(DQN)和连续(DDPG)控制任务的现有算法,只需对经验回放缓冲区Z进行少量修改。

Div-DQN。我们对DQN算法进行了以下更改。首先,我们另外将过去的Q值(表示为Q^{'}(s,a))存储在Z中。其次,为了定义适当的距离度量,我们通过在预测的Q值上应用softmax函数,使用[5]中的概率公式。因此,我们定义 \pi(a|s)=exp(Q(s,a))/ \Sigma_{a^{'}\in A}exp(Q(s,a^{'}))。π′(a|s)的定义类似,但改用Q′(s,a)。我们采用KL散度作为距离度量,表示为DKL。公式(4)改写为:

L_D=L-\mathbb{E}_{\hat{Q}(s,a)\sim U(Z)}\left [ \alpha D_{KL}(\pi^{'}(\cdot|s)) \right ]

其中α可以是预定义值

DDPG分部。对于分集驱动的DDPG,我们使用存储在Z中的动作,并将等式(4)修改为:

L_D=L-\mathbb{E}_{s,a^{'}\sim U(Z)}\left [ \alpha D(\pi(s),a^{'}) \right ]

其中a′是从Z采样的先前动作。这里的距离度量D只是π(s)和a′之间的MSE函数。α的值以与DQN的值类似的方式确定。请注意,我们不使用第2.2节中提到的随机勘探策略,因为仅D就足以改善勘探行为。

3.2,在线方法实现 

除了离线方法,我们还解释了我们的方法如何应用于策略方法。

由于A2C没有经验回放,我们保留了计算距离度量D的n个最新策略。在一般情况下,n=5足以产生令人满意的性能。因此,损失函数LD表示为:

L_D=L-\mathbb{E}_{s\sim \tau}\left [ E_{\pi^{'}\sim \prod }\left [ \alpha _{\pi^{'}}D_{KL}(\pi^{'}(\cdot|s)||\pi(\cdot|s)) \right ]\right ]

其中 \tau 表示一批策略数据,∏ 是一组先验策略,π′是先验策略。KL散度用作距离度量。我们在第3.3节中详细描述了一种基于性能的方法,以衡量每个单独的先验策略π′的α。

3.3,自适应缩放策略

尽管α可以随时间线性退火,但我们发现在某些情况下,这种解决方案并不理想。我们在第4节中提供的实验结果中演示了这些情况。为了以导致更好的整体性能的方式更新α,我们考虑了两种自适应缩放方法:基于距离的方法和基于性能的方法。在我们的实验中,非策略算法仅使用基于距离的方法,而策略上算法使用两种方法来缩放α。

基于距离。类似于[5],我们将α与距离度量D相关联。我们根据D是否低于或高于某个阈值δ自适应地增加或减少α的值。我们用于更新每个训练迭代的α的简单方法定义为:

\alpha :=\left\{\begin{matrix} 1.01\alpha &if \,\mathbb{E} \left [ D(\pi,\pi^{'})\leqslant \alpha \right ]\\ 0.99 \alpha & otherwise \end{matrix}\right.

请注意,在我们的实验中,不同的δ值适用于不同的方法。δ值的确定方法见补充材料。​​​​​​​

基于性能。虽然基于距离的缩放方法简单有效,但它本身并不能为基于策略的算法带来相同的性能。这背后的理由是,我们只使用五个最新的策略(n=5)来计算LD,这通常会导致训练阶段的高方差和不稳定性。非策略算法不会受到这个问题的影响,因为它们可以利用经验回放来提供足够大的一组过去的策略。因此,我们建议根据过去策略的性能进一步调整基于策略的算法的α值,以稳定学习过程。我们在以下两种策略中的任一种中定义αi:

\alpha _{\pi^{'}}:=-\left ( 2\left ( \frac{P(\pi^{'})-P_{min}}{P_{max}-P_{min}} \right ) -1\right )(Proactive)

\alpha _{\pi^{'}}:=1.0- \frac{P(\pi^{'})-P_{min}}{P_{max}-P_{min}} (Reactive)

其中P(π′)表示五集内π′的平均性能,Pmin和Pmax表示过去一组策略∏′所达到的最小和最大性能。注意απ′落在区间[−1,1]表示主动策略,[0,1]表示被动策略。主动策略激励当前策略π向∏′中的高绩效策略靠拢,同时远离贫困策略。另一方面,被动策略只会激励π远离表现不佳的策略。我们在第4节中对这些策略进行了全面的消融实验。注意,我们将等式(8)和等式(9)应用于我们的实验中的策略方法。

3.4,距离测量的剪裁

在某些情况下,D值变得非常高,导致训练阶段不稳定,从而降低了成绩。为了稳定学习过程,我们将D夹在其中c是预定义的常数。更多详情请参考我们的补充材料。

4,实验

在本节中,我们将介绍我们的实验结果并讨论其含义。我们首先在第4.1节中概述了用于评估模型的实验设置和环境。在第4.2节中∼4.4,我们分别报告了三种不同环境下的结果。我们在补充材料中进一步提供了所提出方法的烧蚀分析。

4.1,实验设置

4.1.1,环境

网格世界。为了提供我们方法有效性的示例,我们创建了一个具有两种不同设置的巨大2D网格世界(图1):(1)稀疏奖励设置和(2)欺骗性奖励设置。在这两种设置中,智能体都从地图的左上角开始,目标是到达右下角以获得1的奖励。在每个时间步,智能体都会观察其绝对坐标,并从四个可能的动作中进行选择:向北移动、向南移动、向西移动和向东移动。一集在获得奖励后立即终止。在图1(a)所示的欺骗性奖励设置中,地图的中心区域分散着0.001的小奖励,以分散智能体人在右下角找到最高奖励的注意力。另一方面,在图1(b)所示的稀疏奖励设置中,只有一个位于右下角的奖励。​​​​​​​

Atari 2600.对于离散控制任务,我们在Arcade学习环境(ALE)中进行实验[20]。根据[24],我们选择了八种不同难度的游戏。在每个游戏中,智能体接收84×84×4堆叠的灰度图像作为输入,如[1]所述。

MuJoCo公司。对于连续控制任务,我们在基于MuJoCo物理引擎的环境中进行实验[4]。我们选择了许多机器人控制任务来评估所提出的方法和基线方法的性能。在每项任务中,智能体将物理状态向量作为输入,并生成一个动作值向量,以在环境中操纵机器人。

4.1.2,基础方法

用于比较的基线方法(或简称“基线”)在不同环境中有所不同。对于离散控制任务,我们选择了香草DQN[1]、香草A2C[7]及其噪声网络[8]和好奇驱动[14]变体(分别由噪声DQN/A2C和好奇DQN/A2C表示)作为基线。对于连续控制任务,香草DDPG[21]及其参数噪声[5] 变量(称为参数噪声DDPG)作为比较的基线。所有这些基线都是基于OpenAI基线1实现的。对于每种方法,我们都采用在超参数搜索期间产生最高总体性能的设置。我们的超参数设置在补充材料中提供。请注意,对于DQN和A2C,我们选择它们的噪声网络变体进行比较,而不是参数噪声变体,因为前者变体导致相对更好的性能。另一方面,我们选择参数噪声DDPG作为基线,而不是噪声网络变体,因为[8]的作者没有提供他们的实现。

4.2,在巨大的网格世界中探索

在本实验中,我们评估了具有三种不同尺寸(50×50、100×100和200×200)的二维网格中的不同方法。在本试验中,我们仅考虑香草DQN和噪声DQN。我们在表1中报告了每种方法的平均回报。其中对过去十集的平均奖励进行评估。我们在200×200网格世界上绘制了所有方法的状态访问计数(图2),以说明智能体如何探索状态空间。

欺骗性奖励。图1(a)说明了欺骗性的网格世界。如表所示。1,Div DQN在这一设置中优于vanilla和Noisy DQN。从状态访问计数(图2(a)(b)(c))可以观察到,基线方法很容易被困在欺骗性奖励附近的区域,并且从未访问过右下角的最佳奖励。另一方面,从图2(c)可以看出,Div DQN能够逃离欺骗性奖励的领域,探索了网格世界的所有四个方面,并成功地发现了其中一个的最佳奖励。

稀疏奖励。图1(b)说明了稀疏网格世界。来自表。1,我们注意到,与欺骗性奖励设置相比,Noisy DQN的平均奖励略有增加。随着网格世界的规模增加,它无法找到奖励的位置。相比之下,Div DQN对所有网格大小的平均奖励始终达到1.0。此外,从图2(d)中可以看出,DQN大部分时间都在同一条路线上徘徊。因此,其搜索范围仅覆盖状态空间的一小部分。嘈杂的DQN探索了更广阔的状态空间领域。然而,图2(e)中的明亮颜色表明,噪声DQN浪费了大量时间访问探索状态。另一方面,Div DQN是唯一能够统一和系统地探索网格世界的方法,如图2(f)所示。这些结果验证了我们的方法在探索具有稀疏回报的大状态空间方面的优越性。

基于上述结果,我们得出结论,所提出的多样性驱动的探索策略确实提供了有利的优势,有利于探索具有欺骗性或稀疏奖励的大型网格世界。

4.3,Atari 2600的性能比较

除了网格世界环境外,我们在一组更具挑战性的环境Atari 2600中评估了我们的方法。根据[24]中的分类,我们对从艰难和轻松探索类别中选择的一些游戏的经验结果进行了深入分析。每个智能体使用40M帧进行训练,并在三个随机种子上评估性能。在图。在图3和图4中,我们绘制了训练中的中值分数以及四分位数范围。Div DQN(线性)和Div DQN(Dis)分别对应于我们的分集驱动DQN,具有线性衰减和基于距离的缩放α方法。Div-A2C(Pro)和Div-A2C。

4.3.1,艰难探索游戏

图3描绘了训练阶段所有模型的学习曲线。可以看出,我们的方法在所有游戏中表现出优于或可比的基线方法。特别是,我们观察到,与其他基线相比,我们的策略帮助智能体更有效地探索更广阔的区域,这在状态空间变得足够大时尤其有用。例如,在Freeway中,我们注意到我们的智能体能够在道路的另一侧快速发现唯一的奖励,而其他方法则保持在起始位置。这一观察结果与图1和图2所示的学习曲线一致。其中Div DQN和Div-A2C比基线方法学习得更快和更好。除了上述高效和彻底探索的直接好处外,我们还观察到,我们的方法诱导的探索行为更为系统化,激励我们的智能体探索未访问状态。如图3(b)所示,DQN部门是唯一一个在Venture学习成功策略的部门。相反,当香草DQN、A2C、喧闹DQN/A2C和好奇DQN/A2C特工以随机的方式探索时,他们经常会遇到以前见过的怪物,并很快被杀死。应该注意的是,尽管Div-A2C没有显示出性能的显著提高,但从表S1中可以看出,它最终获得的回报比基线更高。我们还观察到,我们的方法帮助智能体忽略已知的小(欺骗性)奖励,并发现获得最佳奖励的替代方法。例如,在《异形》中,我们的特工学会了通过绕道避开外星人来收集奖励,而基线则专注于眼前的即时奖励,而不考虑外星人。这使我们的智能体获得比基线更高的平均奖励。总之,除了《蒙特祖马的复仇》(Montezuma‘s Revenge)之外,我们的方法在硬探索游戏的得分和训练效率方面都有所提高,该游戏因其复杂性而臭名昭著。

4.3.2,轻松探索游戏

我们表明,所提出的多样性驱动探索策略也可以提高简单探索游戏的训练效率。根据Enduro和BankHeist的学习曲线。从图3和图4中可以看出,我们的Div DQN和Div-A2C智能体在这两款游戏中的学习速度明显快于基线。在大多数情况下,它们也表现出优于基线的性能。

4.4,MuJoCo环境中的性能比较

为了在连续控制域中评估所提出的方法,我们在MuJoCo环境中使用(1)欺骗性奖励、(2)大状态空间和(3)稀疏奖励进行了实验,并类似地绘制了图5中的训练中中值分数。在图5中,DDPG(Div Linear)和DDPG(Div Dis)分别表示具有线性衰减和基于距离的缩放的Div DDPG。DDPG(OU Noise)和DDPG(Param Noise)分别代表普通DDPG和参数噪声DDPG。我们研究并讨论了多样性驱动的损失如何影响这些环境中的智能体行为,并证明了我们的方法确实能带来卓越的勘探效率和性能。

4.4.1,具有欺骗性奖励的环境

图5(a)和(b)绘制了具有欺骗性奖励的环境中Div DDPG和香草DDPG的学习曲线。在这两种情况下,我们都观察到,我们的智能体学习的速度要快得多,最终获得的平均回报要高于基线。虽然普通DDPG通常收敛于次优策略,但Div DDPG能够摆脱局部最优,并找到更好的策略以获得更大的回报。例如,在Humanoid中,基线智能体学习向前倾斜以获得奖励,但角度会使其很容易倒下。虽然我们的智能体最初的行为类似,但后来发现了另一种策略,并成功地向前走了更长的一段时间而没有摔倒。

同样,在HalfCheetah,Div DDPG智能体最初的行为方式与香草智能体相同,但它最终学会了平衡自己,并迅速前进。这些结果表明,我们的方法确实有助于智能体探索更多的状态,增加他们逃避次优策略的机会。

 4.4.2,具有大状态空间的环境

图5(c)、(d)和(e)绘制了具有大状态空间的环境中Div-DDPG和DDPG的学习曲线。可以看出,我们的方法在推杆、投掷和打击中的学习速度明显快于基线方法。在这些环境中,特工必须操纵机器人手臂,分别将球推、扔或打到球门区域。尽管这些环境提供了定义明确的奖励功能,但对于智能体来说,学习可行的策略仍然是一个挑战,因为他们必须探索巨大的状态空间。我们观察到,基线方法漫无目的地移动手臂,很少达到目标。此外,他们行为中的随机扰动使他们更难将球推/扔/打到球门。相比之下,在训练过程中没有动作噪声的干扰,我们的方法可以快速学会正确操作手臂,从而获得更高的回报。

4.4.3,具有稀疏奖励的环境

我们重新定义了Reacher和HalfCheetah的奖励函数,并创建了SparseReacher和SparseHalfChetah环境,以研究稀疏奖励对Div DDPG、参数噪声DDPG和香草DDPG性能的影响。在SparseReacher中,只有当执行器和目标之间的距离低于一个小阈值时,才会授予+1的奖励。在SparseHalfCheetah中,只有当智能体向前移动超过距离阈值时,才会获得+1的奖励。在图5(f)中,我们报告了SparseReacher中每个方法的性能。虽然所有的方法都能在这些环境中取得成功,但可以注意到Div DDPG学习速度更快,并获得更高的平均回报。在图5(g)中,我们显示了距离阈值设置为15.0的SparseHalfCheetah中每种方法的性能。可以观察到,Div DDPG是唯一能够获取此设置的稳定策略的方法。相比之下,香草DDPG和参数噪声DDPG很少超过距离阈值,并且大多数时间都没有获得奖励。

从这些结果中,我们得出结论,我们的方法使智能体具备了在连续控制环境中有效探索的能力,并在各种挑战性环境中取得了有希望的结果。

5,相关工作

由于我们的多样性驱动勘探策略与RL中的几个先前工作相关,本节在目标和实施方面提供了与这些研究的全面比较。

RL的熵正则化。这一系列工作试图通过使用信息论熵约束来规范学习过程,从而缓解策略搜索中的过早收敛问题。在[25]中,作者通过约束新旧状态作用分布之间的相对熵来解决这个问题。类似地,最近的一些工作[26,27]提出通过限制先前和当前政策之间的KL差异来缓解这个问题。在目标方面,我们的方法旨在改善欺骗性和稀疏奖励环境中的探索不足问题,而不是解决策略学习中的过早收敛问题。关于实现,上述工作和我们的工作都在学习期间施加了熵相关的约束。然而,我们的方法通过最大化当前政策和先前政策之间的距离度量来鼓励探索,而不是限制其国家行动分布或KL分歧。

RL的最大熵原理。这一系列工作旨在通过优化最大熵目标来提高不确定动态下的勘探性能。在[28,29]中,作者通过用访问状态的策略熵来增强奖励函数来构建这个目标函数。最大化期望熵和回报共同鼓励RL智能体在保持其策略随机性的同时采取最佳行动。政策的这种随机性增强了不确定动态下的勘探绩效。在目标方面,[28,29]中的工作和我们的方法都旨在改善勘探的性能和效率。然而,我们的工作更多地关注具有欺骗性和稀疏回报的环境,而不是那些动态不确定的环境。在实现方面,我们的方法最大化了新旧策略之间的距离度量,而不是最大化了智能体策略的预期熵。

总之,我们的方法在几个基本方面不同于以前的工作。它通过新的损失项提高了勘探效率。据我们所知,我们的工作是第一个通过最大化当前政策和先前政策之间的距离来鼓励探索的工作。

6,结论

​​​​​​​在本文中,我们提出了一种多样性驱动的探索策略,该策略可以有效地与当前的RL算法相结合。我们建议通过鼓励智能体从事与其先前行为不同的行为来促进探索,并表明这可以通过在损失函数中使用额外的距离度量项来轻松实现。我们在各种基准环境中进行了实验,并证明了我们的方法在大多数设置中都能获得优异的性能。此外,我们验证了所提出的方法可以处理奖励函数中的稀疏性和欺骗性,并可以有效地在大状态空间中进行探索。最后,我们分析了自适应缩放方法,并验证了这些方法确实提高了性能。

  • 2
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是一个简单的多智能DQN代码示例: ```python import random import numpy as np import tensorflow as tf class DQNAgent: def __init__(self, state_size, action_size, num_agents): self.state_size = state_size self.action_size = action_size self.num_agents = num_agents self.memory = [] self.gamma = 0.99 self.epsilon = 1.0 self.epsilon_decay = 0.995 self.epsilon_min = 0.01 self.learning_rate = 0.001 self.model = self._build_model() def _build_model(self): model = tf.keras.Sequential() model.add(tf.keras.layers.Dense(24, input_dim=self.state_size, activation='relu')) model.add(tf.keras.layers.Dense(24, activation='relu')) model.add(tf.keras.layers.Dense(self.action_size, activation='linear')) model.compile(loss='mse', optimizer=tf.keras.optimizers.Adam(lr=self.learning_rate)) return model def remember(self, state, action, reward, next_state, done): self.memory.append((state, action, reward, next_state, done)) def act(self, state): if np.random.rand() <= self.epsilon: return [random.randrange(self.action_size) for _ in range(self.num_agents)] act_values = self.model.predict(np.array(state)) return [np.argmax(act_values[i]) for i in range(self.num_agents)] def replay(self, batch_size): if len(self.memory) < batch_size: return minibatch = random.sample(self.memory, batch_size) states = np.array([minibatch[i][0] for i in range(batch_size)]) actions = np.array([minibatch[i][1] for i in range(batch_size)]) rewards = np.array([minibatch[i][2] for i in range(batch_size)]) next_states = np.array([minibatch[i][3] for i in range(batch_size)]) dones = np.array([minibatch[i][4] for i in range(batch_size)]) targets = rewards + self.gamma * np.amax(self.model.predict(next_states), axis=1) * (1 - dones) targets_full = self.model.predict(states) targets_full[np.arange(batch_size), actions] = targets self.model.fit(states, targets_full, epochs=1, verbose=0) if self.epsilon > self.epsilon_min: self.epsilon *= self.epsilon_decay ``` 在这个示例中,`DQNAgent` 类定义了一个多智能的DQN代理。`_build_model` 方法定义了一个具有两个隐藏层的神经网络模型,用于近似每个智能在给定状态下采取每个动作的Q值。`remember` 方法用于将每个智能的经验存储在内存中。`act` 方法用于根据当前状态选择动作,epsilon-greedy策略用于在探索和利用之间进行权衡。`replay` 方法用于从经验回放缓冲区中随机抽取一批经验,然后使用DQN算法来更新神经网络模型的权重。`replay` 方法还用于逐渐降低探索率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值