基于轨迹加权的混合离线强化学习数据集

news2024/10/8 11:53:12

写在前面: 这篇论文阅读已经同步到我的博客网站,若需更优的阅读体验,请前往https://mainjaylai.github.io/Blog/blog/paper/trajectory-dataset进行浏览

摘要

大多数离线强化学习(RL)算法通过最大化目标策略的期望性能增益与数据集收集策略相比,并权衡由状态-动作占用率的分布外性带来的风险,从而返回一个目标策略。因此,目标策略的性能与行为策略的性能以及数据集的轨迹回报分布密切相关。我们发现,在由大部分低回报轨迹和少量高回报轨迹组成的混合数据集中,最先进的离线RL算法往往受到低回报轨迹的过度约束,无法充分利用高回报轨迹。为了解决这个问题,我们证明在具有随机初始状态的确定性马尔可夫决策过程(MDP)中,可以通过重新加权数据集的采样,来创建一个行为策略具有更高回报的人工数据集。这种重新加权的采样策略可以与任何离线RL算法结合使用。我们进一步分析表明,行为策略性能改善的机会与数据集中轨迹回报的正侧方差相关。我们实验证明,虽然CQL、IQL和TD3+BC仅实现了这一潜在策略改进的一部分,但这些算法结合我们的重新加权采样策略可以充分利用数据集。此外,我们还通过实验证明,尽管该方法在理论上有局限性,但在随机环境中仍可能高效。代码可在https://github.com/Improbable-AI/harness-offline-rl获得。

1 介绍

离线强化学习(RL)目前备受关注,因为它允许从记录的数据中优化RL策略,而无需与环境直接交互。这使得RL训练过程更加安全和经济,因为在现实世界中收集交互数据的风险高、成本昂贵且耗时(例如在机器人和医疗保健领域)。不幸的是,许多论文表明,离线RL任务的接近最优性在样本效率方面是难以实现的。

与接近最优性相反,相对于行为策略的策略改进是一个大约可以实现的目标,因为行为策略可以通过监督学习高效地克隆。因此,大多数实际的离线RL算法都包含一个组件,用于确保返回的策略在行为策略上有所改进,无论是形式上还是直观上:悲观算法确保目标策略(即通过离线RL算法学习的策略)的值的下界优于行为策略的值,保守算法通过对行为策略的正则化来搜索策略,一步算法则防止目标策略值通过引导传播。这些算法将行为策略作为跳板。因此,它们的性能保证在很大程度上取决于行为策略的性能。

由于依赖于行为策略的性能,这些离线RL算法容易受到由行为策略收集的数据集中轨迹回报分布的影响。为了说明这种依赖性,我们称这些算法是“锚定”在行为策略上的。在接近最优的数据集(即专家)中锚定有利于算法的性能,而在低性能的数据集(例如新手)中锚定可能会阻碍目标策略的性能。在现实场景中,离线RL数据集可能主要由低性能轨迹组成,只有少量高性能轨迹,这些轨迹是由多种行为策略混合收集的,因为策划高性能轨迹的成本很高。因此,避免锚定在低性能的行为策略上并利用混合数据集中的高性能策略是很有必要的。然而,我们发现最先进的离线RL算法未能充分利用高性能轨迹。我们分析表明,相对于行为策略的策略改进潜力与数据集中轨迹回报的正侧方差(PSV)相关,并进一步提出当回报PSV较高时,算法锚定可能会限制返回策略的性能。

为了提供更好的算法锚定,我们提出在不收集额外数据的情况下,改变行为策略。我们首先证明,在离线RL算法训练期间重新加权数据集等同于使用另一种行为策略进行训练。此外,在假设环境是确定性的情况下,通过给予高回报轨迹更大的权重,我们可以控制隐式行为策略以实现高性能,从而为离线RL算法提供冷启动性能提升。虽然确定性是一个强假设,我们通过一个最小失败示例证明了它的必要性,但我们表明,当初始状态是随机的,通过使用轨迹回报优势而不是轨迹回报进行重新加权,保证仍然成立: G ( τ i ) − V μ ( s i , 0 ) G(\tau_i) - V^\mu(s_{i,0}) G(τi)Vμ(si,0),其中 G ( τ i ) G(\tau_i) G(τi)是轨迹 i i i获得的回报, V μ ( s i , 0 ) V^\mu(s_{i,0}) Vμ(si,0)是从初始状态 s i , 0 s_{i,0} si,0开始遵循行为策略 μ \mu μ的期望回报。此外,我们通过实验证明,即使在随机环境中,我们的策略也能比其均匀采样对应策略获得性能提升。我们还注意到,几种最先进的离线RL算法也需要确定性。

在理论分析的指导下,我们的主要贡献是提出了两种简单的加权采样策略:回报加权 (RW)优势加权 (AW)。RW 和 AW 分别使用轨迹回报和优势的Boltzmann分布对轨迹进行重新加权。我们的加权采样策略与底层离线RL算法无关,因此可以在任何现成的离线RL算法中作为替代方案,几乎不增加额外的计算成本。我们在三种最先进的离线RL算法CQL、IQL和TD3+BC,以及行为克隆上评估了我们的采样策略,覆盖了D4RL基准测试中的62个数据集。以统计稳健的度量标准报告的实验结果表明,在具有稀疏奖励轨迹的混合数据集中,我们的两种采样策略显著提升了所有所考虑的离线RL算法的性能,并且在回报分布均匀的常规数据集上至少与它们表现持平。

2 准备工作

我们考虑马尔可夫决策过程(MDP)中的强化学习(RL)问题,由元组 ( S , A , R , P , ρ 0 ) (\mathcal{S}, \mathcal{A}, R, P, \rho_0) (S,A,R,P,ρ0) 表示,其中 S \mathcal{S} S A \mathcal{A} A 分别表示状态空间和动作空间, R : S × A → R R:\mathcal{S}\times\mathcal{A} \to \mathbb{R} R:S×AR 是奖励函数, P : S × A → Δ S P:\mathcal{S}\times\mathcal{A} \to \Delta_{\mathcal{S}} P:S×AΔS 是状态转移动态, ρ 0 : Δ S \rho_0: \Delta_{\mathcal{S}} ρ0:ΔS 是初始状态分布,这里 Δ X \Delta_{\mathcal{X}} ΔX 表示集合 X \mathcal{X} X 上的单纯形。MDP 从初始状态 s 0 ∼ ρ 0 s_0 \sim \rho_0 s0ρ0 开始。在每个时间步 t t t,代理感知状态 s t s_t st,根据策略 π ( . ∣ s t ) \pi(.|s_t) π(.∣st) 选择动作 a t ∼ π ( ⋅ ∣ s t ) a_t \sim \pi(\cdot | s_t) atπ(st),收到奖励 r t = R ( s t , a t ) r_t = R(s_t, a_t) rt=R(st,at),并根据转移动态 P ( s t + 1 ∣ s t , a t ) P(s_{t+1}|s_t, a_t) P(st+1st,at) 进行状态转移至 s t + 1 s_{t+1} st+1。策略 π \pi π 的表现由从初始状态 s 0 ∼ ρ 0 s_0 \sim \rho_0 s0ρ0 开始的预期回报 J ( π ) J(\pi) J(π) 衡量,定义如下:

​ J ( π ) = E [ ∑ t = 0 ∞ R ( s t , a t )    ∣    s 0 ∼ ρ 0 , a t ∼ π ( . ∣ s t ) , s t + 1 ∼ P ( . ∣ s t , a t ) ] . \begin{align} ​ J(\pi) = \mathbb{E}\left[\sum^{\infty}_{t=0} R(s_t, a_t) \;\bigg|\; s_0 \sim \rho_0, a_t \sim \pi(.|s_t), s_{t+1} \sim P(.|s_{t},a_t)\right]. \end{align} J(π)=E[t=0R(st,at) s0ρ0,atπ(.∣st),st+1P(.∣st,at)].

给定由行为策略 μ : S → Δ A \mu:\mathcal{S}\to \Delta_\mathcal{A} μ:SΔA 收集的数据集 D \mathcal{D} D,离线强化学习算法旨在从数据集 D \mathcal{D} D 中学习一个目标策略 π \pi π,使得 J ( π ) ≥ J ( μ ) J(\pi) \geq J(\mu) J(π)J(μ)​,数据集定义如下:

​​ D = { ( s i , 0 , a i , 0 , r i , 0 , ⋯ s i , T i )   ∣  ​ ​ s i , 0 ∼ ρ 0 , a i , t ∼ μ ( . ∣ s i , t ) , ​ r i , t = R ( s i , t , a i , t ) , s i , t + 1 ∼ P ( . ∣ s i , t , a i , t ) ​ } , \begin{align} ​ % \mathcal{D} = \{ (s_{i,0}, a_{i,0}, r_{i,0},\cdots s_{i, T_i}) | s_{i,0} \sim \rho_0, a_{i,t} \sim \mu(.|s_{i,t}), r_{i,t} = R(s_{i,t}, a_{i,t}), s_{i,t+1} \sim P(.|s_{i,t}, a_{i,t})\}, ​ \mathcal{D} = \Big\{ (s_{i,0}, a_{i,0}, r_{i,0},\cdots s_{i, T_i}) ~\Big\vert~ ​ \begin{matrix} ​ s_{i,0} \sim \rho_0,& a_{i,t} \sim \mu(.|s_{i,t}), \\ ​ r_{i,t} = R(s_{i,t}, a_{i,t}),& s_{i,t+1} \sim P(.|s_{i,t}, a_{i,t}) ​ \end{matrix}\Big\}, \end{align} ​​D={(si,0,ai,0,ri,0,si,Ti)   si,0ρ0,ri,t=R(si,t,ai,t),ai,tμ(.∣si,t),si,t+1P(.∣si,t,ai,t)},

这里, τ i = ( s i , 0 , a i , 0 , r i , 0 , ⋯ s i , T i + 1 ) \tau_i = (s_{i,0}, a_{i,0}, r_{i,0}, \cdots s_{i, T_i + 1}) τi=(si,0,ai,0,ri,0,si,Ti+1) 表示数据集 D \mathcal{D} D 中的第 i i i 条轨迹, ( i , t ) (i,t) (i,t) 表示第 i i i 个轨迹中的时间步 t t t T i T_i Ti 表示轨迹 τ i \tau_i τi 的长度。一般而言,离线强化学习算法基于演员-评论家方法学习策略 π \pi π 和 Q-值函数 Q : S × A → R Q:\mathcal{S}\times\mathcal{A}\to\mathbb{R} Q:S×AR。Q-值函数 Q ( s , a ) Q(s,a) Q(s,a) 预测在状态 s s s 下采取动作 a a a 并随后遵循策略 π \pi π 的预期回报;策略 π \pi π 最大化数据集 D \mathcal{D} D 上的期望 Q-值。训练过程交替进行策略评估(等式 3)和改进步骤(等式 4)如下:
Q ← arg ⁡ min ⁡ Q E [ ( r t + γ E a ′ ∼ π ( . ∣ s t + 1 ) [ Q ( s t + 1 , a ′ ) ] − Q ( s t , a t ) ) 2   ∣  Uni ( D ) ] π ← arg ⁡ max ⁡ π E [ Q ( s t , a )   ∣  Uni ( D ) , a ∼ π ( . ∣ s t ) ] , \begin{align} Q &\leftarrow \arg\min_{Q}\mathbb{E}\Big[\left(r_t + \gamma \mathbb{E}_{a^\prime \sim \pi(.|s_{t+1})}\left[ {Q}(s_{t+1}, a^\prime)\right] - Q(s_t, a_t)\right)^2 ~\Big|~ \textrm{Uni}(\mathcal{D})\Big] \\ \pi &\leftarrow \arg\max_{\pi}\mathbb{E}\Big[{Q}(s_t, a) ~\Big|~ \textrm{Uni}(\mathcal{D}), a \sim \pi(.|s_t)\Big], \end{align} QπargQminE[(rt+γEaπ(.∣st+1)[Q(st+1,a)]Q(st,at))2   Uni(D)]argπmaxE[Q(st,a)   Uni(D),aπ(.∣st)],

其中 E [   ⋅   ∣  Uni ( D ) ] \mathbb{E}[~\cdot ~|~\textrm{Uni}(\mathcal{D})] E[   Uni(D)] 表示对数据集 D \mathcal{D} D 中的转移进行均匀采样的期望。

3 问题表述

大多数离线强化学习(RL)算法都锚定在行为策略上。当数据集的行为策略表现良好时,这是有利的;但当行为策略表现较差时,则是不利的。我们考虑由大多数低表现轨迹和少量高表现轨迹组成的混合数据集。在这样的数据集中,可以利用那些罕见的高表现轨迹,然而锚定行为策略的做法限制了算法在混合数据集的行为策略上实现显著的策略改进。我们在第3.1节正式定义了数据集的回报正偏差方差(RPSV),并在第3.2节说明了为何离线强化学习算法在高RPSV数据集上的表现可能受到限制。

3.1 正偏差方差

具体而言,我们关注的是一个数据集 D : = { τ 0 , τ 1 , ⋯ τ N − 1 } \mathcal{D} := \{\tau_0, \tau_1, \cdots \tau_{N-1}\} D:={τ0,τ1,τN1},可能由多个行为策略 { μ 0 , μ 1 , ⋯ μ N − 1 } \{\mu_0, \mu_1,\cdots \mu_{N-1}\} {μ0,μ1,μN1} 收集而成,包含了经验回报 { G ( τ 0 ) , G ( τ 1 ) , ⋯ G ( τ N − 1 ) } \{G(\tau_0), G(\tau_1), \cdots G(\tau_{N-1}) \} {G(τ0),G(τ1),G(τN1)},其中 τ i \tau_i τi μ i \mu_i μi 生成, N N N 是轨迹数, T i T_i Ti 表示 τ i \tau_i τi 的长度, G ( τ i ) = ∑ t = 0 T i − 1 r i , t G(\tau_i) = \sum^{T_i-1}_{t=0}r_{i,t} G(τi)=t=0Ti1ri,t。为了研究回报的分布,我们引入了一个统计量:正偏差方差(PSV)的随机变量 X X X​:

定义 1(正偏差方差): 随机变量 X X X 的正偏差方差(PSV)是 X − E [ X ] X-\mathbb{E}[X] XE[X] 的正部分的二阶矩:
V + [ X ] ≐ E [ ( X − E [ X ] ) + 2 ] 其中 x + = max ⁡ { x , 0 } . \begin{align} \mathbb{V}_{+}[X] \doteq \mathbb{E}\left[\left(X-\mathbb{E}[X]\right)^2_{+}\right] \quad \text{其中} \quad x_{+}=\max\{x,0\}. \end{align} V+[X]E[(XE[X])+2]其中x+=max{x,0}.

数据集 D \mathcal{D} D 的回报正偏差方差(RPSV)旨在捕捉轨迹回报分布的正向离散度。一个有趣的问题是: 什么样的分布会导致高RPSV? \textit{什么样的分布会导致高RPSV?} 什么样的分布会导致高RPSV 我们简化了从初学者和专家采样的轨迹,将其视为从伯努利分布 B \mathcal{B} B 中采样,并假设初学者策略始终产生0回报,而专家策略始终产生1回报。图1a将伯努利分布的PSV V + [ B ( p ) ] = p ( 1 − p ) 2 \mathbb{V}_+[\mathcal{B}(p)]=p(1-p)^2 V+[B(p)]=p(1p)2 作为其参数 p p p 的函数进行了可视化,其中 p p p 是选择专家轨迹的概率。我们可以看到,最大的PSV在 p = 1 3 p=\frac{1}{3} p=31 时达到。当 p = 0 p=0 p=0(纯初学者)和 p = 1 p=1 p=1​​​(纯专家)时,PSV 为零。这一观察表明,混合数据集往往具有比单一策略收集的数据集更高的RPSV。在图1中,我们展示了不同RPSV下数据集的回报分布。低RPSV数据集的最高回报保持接近均值回报,这限制了策略改进的机会。相比之下,高RPSV数据集的回报分布向远离均值的正向端散开。

Mapple
图1: (a) \textbf{(a)} (a) 伯努利分布的正偏差方差: V + [ B ( p ) ] = p ( 1 − p ) 2 \mathbb{V}_+[\mathcal{B}(p)]=p(1-p)^2 V+[B(p)]=p(1p)2 (b-c) \textbf{(b-c)} (b-c)数据集的回报分布:(b) 低回报正偏差方差 (RPSV) 和 © 高回报正偏差方差 (RPSV)(见第3.1节),其中RPSV衡量数据集中轨迹回报方差的正向贡献, G ˉ \bar{G} Gˉ表示数据集的平均回报(虚线)。直观上,高RPSV意味着某些轨迹的回报远高于平均回报。

3.2 离线RL未能有效利用高RPSV数据

高-RPSV 数据集(图1c)包含少量高回报轨迹,但离线 RL 算法受行为策略的锚定影响,未能充分利用这些高回报数据。高-RPSV 数据集中占主导地位的低回报轨迹由于这些算法的悲观和/或保守性质,限制了离线 RL 算法学习接近 D \mathcal{D} D 中最佳轨迹的非平凡策略。高 RPSV 意味着平均每集回报与 D \mathcal{D} D 中最佳回报相距甚远(见图1c)。平均每集回报反映了收集 D \mathcal{D} D 的行为策略 μ \mu μ 的性能 J ( μ ) J(\mu) J(μ)(在第4.1节中正式证明),其中 μ \mu μ μ 0 , μ 1 , ⋯ μ N − 1 {\mu_0,\mu_1,\cdots \mu_{N-1}} μ0,μ1,μN1 的混合策略(第 3.1节)

悲观算法致力于保证算法返回一个 π \pi π,使得 J ( π ) ≥ J ( μ ) J(\pi) \geq J(\mu) J(π)J(μ),但是当 J ( μ ) J(\mu) J(μ) 较低时,这种保证并不强。保守算法限制 π \pi π 的行为与 μ \mu μ 接近,以防止在演员-评论家更新中对 分布外 \textit{分布外} 分布外 状态-动作对(即方程3 中的 ( s t + 1 , a ′ ) ∉ D (s_{t+1},a^\prime) \notin \mathcal{D} (st+1,a)/D)的 Q 值进行不良估计,从而限制 J ( π ) J(\pi) J(π) 不能偏离 J ( μ ) J(\mu) J(μ) 太多。同样,单步算法仅执行一次策略改进,并返回一个受约束的目标策略,强制 π \pi π 接近 μ \mu μ。因此,离线 RL 算法受 J ( μ ) J(\mu) J(μ) 限制,在高-RPSV 数据集中无法利用远离 J ( μ ) J(\mu) J(μ) 的高回报数据。

相反,在低RPSV数据集(图1b)中,悲观、保守和单步算法不存在这种严重的利用不足问题,因为回报分布集中在或低于平均每回合回报周围,几乎没有更好的轨迹可供利用。我们将在第5.2节中展示,在极低RPSV数据集中,任何采样策略都无法使离线RL算法表现更好,而在高RPSV数据集中,我们的方法(第4.2和第4.3节)显著优于典型的均匀采样。

4 方法

第3节解释了行为策略的锚定为何会阻止离线RL算法充分利用高RPSV数据集。为了解决这个问题,需要回答的问题是: 在不收集额外数据的情况下,我们能否提高行为策略的性能? \textit{在不收集额外数据的情况下,我们能否提高行为策略的性能?} 在不收集额外数据的情况下,我们能否提高行为策略的性能?为此,我们提出通过重新加权数据集中的转换来隐式地改变行为策略。实际上,我们展示了加权采样可以模拟使用不同行为策略进行的转换采样。我们在第4.1节分析了加权采样与隐式行为策略性能之间的联系,然后在第4.2和4.3节中提出了两种加权采样策略。

4.1 分析

我们首先展示如何通过重新加权数据集中的转换来模拟由不同于收集数据集的隐式混合行为策略生成的转换样本。这是因为策略是由数据集中的转换权重定义的。正如之前的讨论,从在第3节中定义的数据集 D \mathcal{D} D中采样转换等价于从加权联合状态-动作占用 d W ( s , a ) = ∑ i = 0 N − 1 w i d μ i ( s ) μ i ( a ∣ s ) d_{\mathcal{W}}(s, a) = \sum^{N-1}_{i=0} w_i d_{\mu_i}(s) \mu_i(a|s) dW(s,a)=i=0N1widμi(s)μi(as)中采样状态-动作对,其中 w i w_i wi是轨迹 i i i的权重(每个 τ i \tau_i τi μ i \mu_i μi收集), W ≐ w 0 , ⋯ w N − 1 \mathcal{W} \doteq {w_0, \cdots w_{N-1}} Ww0,wN1,而 d μ i ( s ) d_{\mu_i}(s) dμi(s)表示 μ i \mu_i μi的未归一化状态占用度。调整权重 W \mathcal{W} W有效地改变了 d W d_{\mathcal{W}} dW,从而在采样过程中改变了转换分布。正如前述,权重 W \mathcal{W} W也导致了加权行为策略: μ W ( a ∣ s ) = d W ( s , a ) ∑ i = 0 N − 1 w i d μ i ( s ) \mu_{\mathcal{W}}(a|s) = \frac{d_{\mathcal{W}}(s, a)}{\sum^{N-1}_{i=0} w_i d_{\mu_i}(s)} μW(as)=i=0N1widμi(s)dW(s,a)。均匀采样 w i = 1 N ,   ∀ w i ∈ W w_i = \frac{1}{N},~\forall w_i \in \mathcal{W} wi=N1, wiW等同于从收集 D \mathcal{D} D的原始混合行为策略 μ \mu μ的联合状态-动作占用中采样。为了获得转换样本的良定义采样分布,我们需要将这些轨迹权重 w i w_i wi转换为转换样本权重 w i , t , ∀ t ∈ [ 0 , T i − 1 ] w_{i,t}, \forall t\in \left[ 0,T_i-1 \right] wi,t,t[0,Ti1]
w i , t ≐ w i ∑ i = 0 N − 1 T i w i , ∑ i = 0 N − 1 ∑ t = 0 T i − 1 w i , t = ∑ i = 0 N − 1 T i w i ∑ i = 0 N − 1 T i w i = 1. \begin{align} w_{i,t} \doteq \frac{w_i}{\sum_{i=0}^{N-1} T_i w_i},\qquad\qquad \sum_{i=0}^{N-1}\sum_{t=0}^{T_i-1}w_{i,t} = \sum_{i=0}^{N-1} T_i \frac{ w_i}{\sum_{i=0}^{N-1} T_i w_i} = 1. \end{align} wi,ti=0N1Tiwiwi,i=0N1t=0Ti1wi,t=i=0N1Tii=0N1Tiwiwi=1.
因此,我们的目标是找到一个权重集合 W ≐ { w i } i ∈ [ 0 , N − 1 ] ∈ Δ N \mathcal{W} \doteq \{w_i\}_{i\in \left[0,N-1 \right] }\in\Delta_N W{wi}i[0,N1]ΔN,使得 J ( μ W ) ≥ J ( μ ) J(\mu_{\mathcal{W}}) \geq J(\mu) J(μW)J(μ),其中 Δ N \Delta_N ΔN表示大小为 N N N的单纯形。显然,我们可以写成 J ( μ W ) = ∑ i = 0 N − 1 w i J ( μ i ) J(\mu_{\mathcal{W}}) = \sum^{N-1}_{i=0} w_i J(\mu_i) J(μW)=i=0N1wiJ(μi)。那么剩下的问题就是如何估计 J ( μ i ) J(\mu_i) J(μi)。轨迹的期望回报 G ( τ i ) G(\tau_i) G(τi)可以被视为 J ( μ i ) J(\mu_i) J(μi)的样本。因此,我们可以通过Hoeffding不等式的直接应用将 J ( μ W ) J(\mu_{\mathcal{W}}) J(μW)集中在回报的加权和附近:

P [ ∣ J ( μ W ) − ∑ i = 0 N − 1 w i G ( τ i ) ∣ > ϵ ] ≤ 2 exp ⁡ ( 2 ϵ 2 G T 2 ∑ i = 0 N − 1 w i 2 ) , \begin{align} \mathbb{P}\left[\left|J(\mu_{\mathcal{W}})-\textstyle\sum^{N-1}_{i=0} w_i G(\tau_i)\right| > \epsilon\right]\leq 2\exp\left(\frac{2\epsilon^2}{G^2_T\sum^{N-1}_{i=0} w_i^2}\right), \end{align} P[ J(μW)i=0N1wiG(τi) >ϵ]2exp(GT2i=0N1wi22ϵ2),
其中 G T ≐ G M A X − G M I N G_T \doteq G_{MAX} - G_{MIN} GTGMAXGMIN是回报间隔的幅度(参见Hoeffding不等式)。为了完整起见,该方法在任何策略和带有折现因子小于 1 1 1的MDP中的可靠性已经在附录A.1中证明。公式7告诉我们,只要没有将太多的质量分配给少数几条轨迹,我们就有一个一致的 J ( μ W ) J(\mu_{\mathcal{W}}) J(μW)​估计器。

由于我们的目标是获得性能更高的行为策略,因此我们希望给性能较高的 μ i \mu_i μi 分配较高的权重 w i w_i wi。然而,需要注意的是,将 w i w_i wi 设置为 G i G_i Gi 的函数可能会由于轨迹生成中的随机性(源于 ρ 0 \rho_0 ρ0 P P P 和/或 μ i \mu_i μi)导致 J ( μ W ) J(\mu_W) J(μW) 估计器中引入偏差。在这种情况下,公式7的集中界限将不再有效。为了证明和说明这种偏差,我们在附录A.3中提供了一个反例。接下来的部分通过假设环境的确定性,并应用一个技巧来消除行为策略 μ i \mu_i μi 中的随机性来解决这个问题。第4.3节则通过使用回报优势而不是绝对回报来放宽对 ρ 0 \rho_0 ρ0 为确定性的要求。

4.2 回报加权

在本节中,我们强假设MDP是确定性的(即转移动态 P P P和初始状态分布 ρ 0 \rho_0 ρ0是狄拉克δ分布)。这个假设使我们能够得到 G ( τ i ) = J ( μ i ) G(\tau_i)=J(\mu_i) G(τi)=J(μi),其中 μ i \mu_i μi是采取轨迹 τ i \tau_i τi中的行动的确定性策略1,由于目标策略的性能依赖于行为策略的性能,我们找到一个加权分布 W \mathcal{W} W来最大化 J ( μ W ) J(\mu_\mathcal{W}) J(μW)

max ⁡ W ∈ Δ N ∑ i = 0 N − 1 w i G ( τ i ) , \begin{align} \max_{\mathcal{W}\in\Delta_N} & \sum_{i=0}^{N-1} w_i G(\tau_i), \end{align} WΔNmaxi=0N1wiG(τi),

其中, w i w_i wi对应于分配给第 i i i个回合中每个转移的未归一化权重。然而,结果解将所有权重分配给具有最大回报的回合 τ i \tau_i τi​中的转移。这种在我们考虑的确定性设置中确实最优,但在其他情况下会失效。为了防止这种情况的发生,我们通常会结合熵正则化,将公式8转换为:

max ⁡ W ∈ Δ N ∑ i = 0 N − 1 w i G ( τ i ) − α ∑ i = 0 N − 1 w i log ⁡ w i , \begin{align} \max_{\mathcal{W}\in\Delta_N} & \sum_{i=0}^{N-1} w_i G(\tau_i) - \alpha \sum_{i=0}^{N-1} w_i \log w_i, \end{align} WΔNmaxi=0N1wiG(τi)αi=0N1wilogwi,

其中, α ∈ R + \alpha \in \mathbb{R}^+ αR+是控制正则化强度的温度参数。 α \alpha α在δ分布( α → 0 \alpha \to 0 α0)和均匀分布( α → ∞ \alpha \to \infty α)之间插值。由于公式9的最优解是 G ( τ i ) G(\tau_i) G(τi)的Boltzmann分布,得到的加权分布 W \mathcal{W} W为:
w i = exp ⁡ G ( τ i ) / α ∑ τ i ∈ D exp ⁡ G ( τ i ) / α . \begin{align} w_{i} = \dfrac{\exp G(\tau_i) / \alpha}{\sum_{\tau_i \in \mathcal{D}} \exp G(\tau_i) / \alpha }. \end{align} wi=τiDexpG(τi)/αexpG(τi)/α.
温度参数 α \alpha α(公式10和11)是一个固定的超参数。由于 α \alpha α的选择依赖于回合回报的尺度,而回报尺度在不同环境中有所不同,我们对 G ( τ i ) G(\tau_i) G(τi)进行了最大-最小归一化: G ( τ i ) ← G ( τ i ) − min ⁡ j G ( τ j ) max ⁡ j G ( τ j ) − min ⁡ j G ( τ j ) G(\tau_i) \leftarrow \frac{G(\tau_i) - \min_j G(\tau_j)}{\max_j G(\tau_j) - \min_j G(\tau_j)} G(τi)maxjG(τj)minjG(τj)G(τi)minjG(τj)

4.3 优势加权

在这一部分中,我们允许初始状态分布 ρ 0 \rho_0 ρ0具有随机性。第4.2节中的回报加权策略可能会偏向于那些从“ 幸运 \textit{幸运} 幸运“初始状态开始的轨迹,这些初始状态比其他初始状态产生更高的回报。因此,我们将第9式的目标修改为最大化加权的周期性优势 ∑ w i ∈ W w i A ( τ i ) \sum_{w_i \in \mathcal{W}}w_iA(\tau_i) wiWwiA(τi),并进行熵正则化。 τ i \tau_i τi的周期性优势 A ( τ i ) A(\tau_i) A(τi)定义为 A ( τ i ) = G ( τ i ) − V ^ μ ( s i , 0 ) A(\tau_i) = G(\tau_i) - \hat{V}^\mu(s_{i,0}) A(τi)=G(τi)V^μ(si,0),其中 V ^ μ ( s i , 0 ) \hat{V}^\mu(s_{i,0}) V^μ(si,0)是从 s i , 0 s_{i,0} si,0开始遵循 μ \mu μ的估计预期回报,使用回归方法进行估计: V ^ μ ← arg ⁡ min ⁡ V E [ ( G ( τ i ) − V ( s i , 0 ) ) 2   ∣  Uni ( D ) ] \hat{V}^\mu \leftarrow \arg\min_V \mathbb{E}\big[(G(\tau_i) - V(s_{i,0}))^2 ~|~ \textrm{Uni}(\mathcal{D})\big] V^μargminVE[(G(τi)V(si,0))2  Uni(D)]。将第9式中的 G ( τ i ) G(\tau_i) G(τi)替换为 A ( τ i ) A(\tau_i) A(τi)并求解 W \mathcal{W} W,我们得到以下加权分布:

w i = exp ⁡ A ( τ i ) / α ∑ τ i ∈ D exp ⁡ A ( τ i ) / α ,    A ( τ i ) = G ( τ i ) − V ^ μ ( s i , 0 ) . \begin{align} w_{i} = \dfrac{\exp A(\tau_i) / \alpha}{\sum_{\tau_i \in \mathcal{D}} \exp A(\tau_i) / \alpha }, ~~A(\tau_i) = G(\tau_i) - \hat{V}^\mu(s_{i,0}). \end{align} wi=τiDexpA(τi)/αexpA(τi)/α,  A(τi)=G(τi)V^μ(si,0).

5. 实验

我们的实验回答了以下主要问题:
(i) 我们的方法是否能够使离线强化学习算法在具有稀疏高回报轨迹的数据集中取得更好的性能?
(ii) 我们的方法是否受益于高RPSV?
(iii) 我们的方法在常规数据集中是否也能表现良好?
(iv) 我们的方法在具有随机性的MDP中是否具有鲁棒性?

5.1 实验搭建

实验细节: 我们在以下离线强化学习算法中实现了我们的加权采样策略和基线:隐式Q学习(IQL)、保守Q学习(CQL)、TD3+BC 和行为克隆(BC)。选择IQL、CQL和TD3+BC是为了涵盖离线RL的各种方法,包括一步法、悲观法和保守算法。需要注意的是,尽管BC是一种模仿学习算法,我们仍然将其包括在内,因为BC克隆了行为策略,这是我们直接修改的对象,并且BC也是离线RL研究中的常用基线。

基准: 我们将加权采样与均匀采样(记为 Uniform \textit{Uniform} Uniform)、百分比过滤(记为 Top-x% \textit{Top-x\%} Top-x%)和半采样(记为 Half \textit{Half} Half)进行比较。百分比过滤仅使用具有前 x x x%回报的轨迹进行训练。我们将百分比过滤视为基线,因为它通过丢弃部分数据来增加行为策略的期望回报。在以下内容中,我们将我们的方法与 Top-10% \textit{Top-10\%} Top-10%进行比较,因为在超参数搜索中发现 10 % 10\% 10%是最佳配置(见附录A.11)。半采样分别从高回报和低回报轨迹中采样一半的转换。 Half \textit{Half} Half是一种简单的方法,避免在仅包含稀疏高回报轨迹的数据集中过度采样低回报数据。需要注意的是, Half \textit{Half} Half需要将数据集分为高回报和低回报部分的额外假设,而我们的方法不需要这种假设。我们的回报加权和优势加权策略分别记为 RW \textit{RW} RW AW \textit{AW} AW,并且在所有环境中使用相同的超参数 α \alpha α​(见附录A.7)。

数据集和环境: 我们在MuJoCo运动学环境和随机经典控制基准测试中评估每种算法+采样器变体的性能(即离线RL算法和采样策略的组合)。每个环境被视为一个马尔可夫决策过程(MDP),并且可以在基准套件中具有多个数据集。数据集的选择在实验结果的相应部分中描述。我们在随机经典控制中评估我们的方法,以研究随机动力学是否会破坏我们的加权采样策略。随机动力学的实现详见附录A.6。

评估指标: 对于每个数据集和环境,每种算法+采样器变体训练了一百万批次的更新,并在五个随机种子上进行评估。算法的性能通过在环境中运行训练策略进行的 20 20 20 个回合的平均标准化的周期性回报来衡量。如Fu所建议,我们使用 ( X − X R a n d o m ) / ( X E x p e r t − X R a n d o m ) (X - X_{Random}) / (X_{Expert} - X_{Random}) (XXRandom)/(XExpertXRandom) 进行性能标准化,其中 X X X X R a n d o m X_{Random} XRandom X E x p e r t X_{Expert} XExpert 分别表示算法-采样器变体的性能、随机策略和专家策略的性能。

5.2 稀疏高回报数据集中的离线强化学习改进

为了回答我们的加权采样方法是否能提升在稀疏高回报轨迹数据集中的均匀采样表现,我们创建了包含不同高回报数据比例的混合数据集。我们在四个MuJoCo运动环境和八个混合数据集,以及每个环境的一个非混合数据集中测试每种算法+采样器变体。混合数据集通过将 σ % \sigma\% σ% expert \texttt{expert} expert medium \texttt{medium} medium数据集(高回报)与 ( 1 − σ % ) (1 - \sigma\%) (1σ%) random \texttt{random} random数据集(低回报)混合而成,其中 σ ∈ { 1 , 5 , 10 , 50 } \sigma \in \{1, 5, 10, 50\} σ{1,5,10,50}有四个不同的比例。其中, expert \texttt{expert} expert medium \texttt{medium} medium random \texttt{random} random数据集分别由专家策略、性能为专家策略的1/3的策略和随机策略生成。我们在这32个混合数据集和一个 random \texttt{random} random数据集上测试所有变体。

图2显示了每个算法+采样器(颜色)变体在不同 σ \sigma σ 值下(x轴)的平均归一化性能(y轴)。 每个算法+采样器变体的性能通过平均回报的四分位均值(IQM)(也称为 25 % 25\% 25%截尾均值)来衡量(见第5.1节),因为IQM对异常值的表现较不敏感,如Agarwal所建议的那样。评估协议的详细信息请参见附录A.8。

可以看出,在图2中,我们的 RW \textit{RW} RW AW \textit{AW} AW 策略显著优于基线方法 Uniform \textit{Uniform} Uniform Top-10% \textit{Top-10\%} Top-10%、和 Half \textit{Half} Half 在所有算法和所有专家/中等数据比例 σ % \sigma\% σ% 下的表现。值得注意的是,我们的方法甚至超越或匹配了使用全专家数据集和统一采样训练的每个算法的性能(虚线)。这表明我们的方法使离线强化学习算法能够通过 5% 到 10% 的中等或专家轨迹实现专家级别的性能。 Uniform \textit{Uniform} Uniform 在高性能轨迹稀少时(即低 σ \sigma σ)无法充分利用数据集。$\textit{Top-10%} 稍微提高了性能,但在低比例( 稍微提高了性能,但在低比例( 稍微提高了性能,但在低比例(\sigma% = 1%$)下表现不如 Uniform \textit{Uniform} Uniform,这表明最佳过滤百分比可能取决于数据集。 Half \textit{Half} Half在所有比例下都略微改善了 Uniform \textit{Uniform} Uniform,但性能提升远低于我们的方法。总体而言,这些结果表明,在高回报数据比例较低的数据集中提高高回报轨迹的权重有利于性能,而像 Top-10% \textit{Top-10\%} Top-10% 那样简单地过滤掉低回报集并不能始终提高性能。此外, AW \textit{AW} AW RW \textit{RW} RW​ 没有表现出明显的差异,这可能是因为 MuJoCo 运动环境中的初始状态分布较窄。我们还在附录A.13中包括了每个环境和数据集的平均回报。除了平均回报之外,我们还根据Agarwal的建议评估了我们的方法在概率上的改进,并在附录A.10中显示了统计上显著的改进。

图 2: 我们的 RW \textit{RW} RW AW \textit{AW} AW采样策略在所有算法CQL、IQL、BC和TD3+BC中,对于所有具有不同高回报数据比率 σ % \sigma\% σ%(x轴)的数据集,平均表现(y轴)均高于所有基线(颜色)。显著的是,在四种算法中,我们的表现超过或与使用均匀采样在完整专家数据集上训练的这些算法的平均回报(虚线)相匹配。在低比率( 1 % ≤ σ % ≤ 10 % 1\% \leq \sigma\% \leq 10\% 1%σ%10%)下,与 Uniform \textit{Uniform} Uniform相比,我们方法在稀疏高回报轨迹的数据集中展示出明显的性能优势。

5.3 混合数据集中的性能提升分析

我们假设,我们的方法在数据集中相较于均匀采样的性能提升是由于增加了RPSV。设计一个能够准确预测采样策略性能提升的指标并不容易,因为离线RL的性能受多个因素影响,包括环境和所配对的离线RL算法。我们关注两个容易从数据集中估算的统计因素:(i) 数据集的平均回报和(ii) RPSV。尽管这两个因素相互依赖,但在我们的实验中,它们具有良好的可变性,因为增加专家/中等数据的比例不仅会增加RPSV,还会增加数据集的平均回报。

我们展示了在均匀采样上的性能提升(通过下图中的点的颜色表示)、数据集的平均回报(x轴)和RPSV(y轴,log尺度)之间的关系,如图3所示。每个点表示在某个环境、数据集和 σ \sigma σ组合中的平均性能提升。可以看出,在相似的平均回报(x轴)下,当RPSV增加(y轴)时,我们方法的性能提升显著(颜色变得更接近红色)。这一观察结果表明,在图2中低 σ \sigma σ(专家/中等数据比例)时的性能提升可以与高RPSV下的性能提升相关联,因为在我们的实验中,大多数平均回报低的数据集具有高RPSV。我们还注意到,高数据集平均回报可能会限制我们的优势。原因是,在 σ \sigma σ处于高范围(如 50 % 50\% 50%​​)时,均匀采样的离线RL已经非常高效,因此在此基础上进一步改进的空间有限。

图3: 每个图的左端(平均回报在0到0.1之间)显示,对于所有离线RL算法(CQL、IQL和TD3+BC)和BC,当RPSV增加时,我们的AW和RW采样方法的性能提升也随之增长。颜色表示在5.2节中的混合数据集和环境中相较于均匀采样基准的性能(平均回报)提升;x轴和y轴分别表示数据集的平均回报和数据集的RPSV。

5.4 高回报轨迹更多的常规数据集结果

在第5.2节中展示的数据集用于极端稀疏高回报轨迹的对抗测试。然而,我们在图5中展示了这种具有挑战性的回报分布在 D4RL 基准的常规数据集中并不常见。因此,对于均匀采样基线,常规数据集比高回报轨迹稀疏的混合数据集更容易。为了证明我们的方法在常规数据集中高回报轨迹更多的情况下不会丧失性能,我们还在 D4RL 基准的 30 个常规数据集中使用与第5.1节相同的评估指标对我们的方法进行了评估,并在图4a中展示了结果。可以看到,我们的方法在常规数据集中的表现与基线相当,确认了我们的方法不会丧失性能。需要注意的是,我们没有与 Half \textit{Half} Half进行比较,因为由多个策略收集的常规数据集无法分成两个缓冲区。值得注意的是,我们发现使用 RW \textit{RW} RW AW \textit{AW} AW的 BC 达到了与其他离线 RL 算法(即 CQL、IQL 和 TD3+BC)相当的性能。BC 相对于均匀采样的显著改进与我们的分析(第4.1节)一致,因为 BC 的性能完全取决于行为策略的性能,因此取决于采样轨迹的平均回报。然而,配合 RW \textit{RW} RW AW \textit{AW} AW​ 使用时,离线 RL 算法(即 CQL、IQL 和 TD3+BC)仍然优于 BC。这表明我们的加权采样策略并不会掩盖离线 RL 相对于 BC 的优势。完整的性能表格可以在附录A.13中找到。我们还评估了我们方法相对于均匀采样的改进概率,结果表明我们的方法在附录A.8.1中并不逊色于基线。

图 4: (a) \textbf{(a)} (a) 我们的方法与 Uniform \textit{Uniform} Uniform的回报(y 轴)相匹配。这表明在包含足够高回报轨迹的数据集中,我们的方法不会丧失性能。这些数据集是 D4RL 中的常规数据集,并未如第5.2节中那样对抗性地混入低回报轨迹。 (b) \textbf{(b)} (b)​ 在具有随机动态的经典控制任务中的表现。我们的方法优于基线,表明随机性不会破坏我们的方法。

5.5 随机 MDP 中的结果

由于我们的加权采样策略在理论上需要确定性的 MDP,我们通过在随机控制环境中评估来研究随机动态(即随机状态转移)是否会破坏我们的方法。它们的具体实现细节见附录4.6。我们使用第5.1节中描述的评估指标,并在图4b中展示结果。我们的两种方法在随机动态中仍然优于均匀采样,这表明随机性不会破坏它们。请注意,我们只报告了 CQL 的结果,因为 IQL 和 TD3+BC 与随机经典控制中使用的离散动作空间不兼容。

6 相关工作

我们的加权采样策略和非均匀经验重放在在线强化学习中旨在改善均匀样本选择。先前的研究重视不确定数据,近乎政策样本或通过拓扑顺序选择样本。然而,这些方法并未考虑采样引入的隐式行为策略的性能,因此不太可能解决混合离线强化学习数据集中的问题。

离线模仿学习(IL)考虑从包含少量专家数据和大量随机数据的数据集中训练专家策略。它们训练一个模型来区分转换是否来自专家,并从鉴别器的预测中学习接近专家的策略。概念上,我们的方法和离线 IL 都旨在利用有利数据(即稀疏的高回报/专家数据),尽管问题设置不同。离线 IL 需要将专家和随机数据分别放入两个缓冲区,但不需要奖励标签。相比之下,我们不需要可分离的数据集,但需要奖励标签来找到有利的数据。

7 讨论

重要性学习稀疏高回报轨迹: 尽管主流离线强化学习基准数据集(如D4RL)中的大多数常规数据集比我们在第5.2节研究的混合数据集具有更多的高回报轨迹,但需要注意的是,在现实领域(例如医疗保健)收集这些高回报数据是繁琐且可能昂贵的。因此,使离线强化学习能够从具有有限数量高回报轨迹的数据集中学习对于将离线强化学习应用于更现实的任务中至关重要。我们的工作的重要性在于提供了一种简单的技术,使离线强化学习能够从少数高回报轨迹中学习。

局限性: 我们的方法需要使用轨迹回报来计算样本权重,因此数据集不能是部分碎片化的轨迹,每个轨迹都需要从初始状态分布开始;否则,无法估计轨迹的回报。解决这一限制的一种可能方法是使用学习的值函数来估计样本权重,这样可以估计一个状态的预期回报,而无需完整的轨迹。

总结和经验

1. 研究背景

  • 背景和动机: 在离线强化学习(Offline RL)中,如何高效利用有限的数据资源是一大挑战。传统的均匀采样策略在高回报轨迹稀少的情况下表现较差。
  • 目标: 提出并验证基于权重的采样策略,以提高在稀疏高回报轨迹数据集上的离线强化学习算法的性能。

2. 方法和策略

  • 加权采样策略: 提出了两种加权采样策略,分别是 RW \textit{RW} RW(返回加权)和 AW \textit{AW} AW(优势加权),旨在提高高回报轨迹的权重,以提升整体性能。
  • 数据集构建: 构建了不同比例的混合数据集,通过将少量高回报数据(专家或中等性能)与大量低回报数据(随机)混合,模拟实际应用中的数据分布。

3. 实验设计

  • 评估指标: 使用归一化的平均回报和四分位均值(IQM)来衡量不同算法+采样器变体的性能,避免异常值的影响。
  • 实验环境: 在四个MuJoCo运动环境和多个混合数据集上测试每种算法+采样器变体。
  • 数据比例: 测试了 σ % \sigma\% σ%(专家或中等数据比例)分别为1%、5%、10%、50%的情况,分析不同比例下加权采样策略的效果。

4. 实验结果

  • 性能提升 RW \textit{RW} RW AW \textit{AW} AW策略在所有算法和数据比例下均显著优于基线方法 Uniform \textit{Uniform} Uniform Top-10% \textit{Top-10\%} Top-10% Half \textit{Half} Half。尤其在高回报轨迹稀少的情况下,性能提升更加显著。
  • 专家数据集对比: 在全专家数据集上训练的算法性能与使用加权采样策略在5%到10%专家数据上的性能相当,表明加权采样策略能在少量高回报轨迹下实现专家级别的性能。
  • 稳定性: 在具有随机动态的经典控制任务中,加权采样策略仍能保持较好的性能,表明随机性不会破坏这些方法。

5. 分析和讨论

  • 性能增益来源: 假设加权采样策略的性能提升源于数据集中的RPSV(相对回报标准差)的增加。实验结果显示,在相同的平均回报下,RPSV增加时,性能提升更为显著。
  • 方法局限: 加权采样策略需要完整的轨迹数据以计算轨迹回报,因此不能处理部分碎片化的轨迹数据。未来可能通过学习的值函数来估计样本权重,从而解决这一问题。

6. 相关工作

  • 在线强化学习中的非均匀经验重放: 许多研究关注优先选择不确定性高的数据或几乎在策略上的样本,但这些方法未考虑采样策略隐含的行为策略的性能。
  • 离线模仿学习: 离线模仿学习的目标是从少量专家数据和大量随机数据中训练出专家级别的策略。与之相比,本研究的方法不需要分离的数据集,但需要回报标签来找到有利的数据。

7. 实践意义

  • 现实应用中的重要性: 在实际领域(如医疗)中,高回报数据的收集可能既繁琐又昂贵。因此,能够从有限的高回报数据集中学习对于离线强化学习在现实任务中的部署至关重要。
  • 简单有效的技术: 本研究提出了一种简单的方法,使离线强化学习能够从少量高回报轨迹中学习,具有重要的实践意义。

8. 经验总结

  • 数据集构建: 通过构建不同比例的混合数据集,可以更全面地测试采样策略在不同数据分布下的表现,从而得出更具普适性的结论。
  • 评估指标选择: 使用IQM来衡量性能,避免了异常值的干扰,使得结果更具可靠性。
  • 算法兼容性: 在实验中注意到并报告了不同算法在特定环境下的兼容性问题(如IQL和TD3+BC在离散动作空间下的不兼容性),为后续研究提供了参考。
  • 方法扩展: 探讨了未来可能的扩展方向,如通过学习的值函数来估计样本权重,展示了研究的前瞻性。

  1. 正式的 μ i \mu_i μi定义见附录A.1。 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1860565.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基因检测2 - 脆性X综合征

1. 脆性X综合征 脆性X综合征(Fragile X syndrome, FXS)遗传性智力障碍和孤独症谱系障碍(Autism spectrum disorder, ASD)最常见的单基因病(发病率仅次于唐氏综合征Down syndrome, DS),为X连锁不…

总结一些LLM算法岗遇到的八股

总结一些我被问到的题和常见的题目,答案有不对的欢迎指出。 Batch Norm和Layer Norm的定义及区别? BN 批量归一化:以进行学习时的mini-batch为单位,按mini-batch进行正规化。具体而言,就是进行使数据分布的均值为0、…

C语言入门课程学习笔记9:指针

C语言入门课程学习笔记9 第41课 - 指针:一种特殊的变量实验-指针的使用小结 第42课 - 深入理解指针与地址实验-指针的类型实验实验小结 第43课 - 指针与数组(上)实验小结 第44课 - 指针与数组(下)实验实验小结 第45课 …

工信部中小企业局一行莅临盘古信息调研指导

近日,中小企业数字化转型城市试点调研交流活动在广东东莞举行,工业和信息化部中小企业局副局长商超,广东工业和信息化厅二级巡视员张振祥,工业和信息化部中小企业局创业创新处处长李海涛,东莞市委常委、副市长刘光滨&a…

canvas如何让单行文本用...省略

let strWidth ctx.measureText(this.data.name).width; const ellipsis "..." const ellipsisWidth ctx.measureText(ellipsis).width; if(strWidth<120 || 120<ellipsisWidth) {ctx.fillText("测试:"this.data.name, 190*dpr,590*dpr); }else {va…

(上位机APP开发)调用华为云属性修改API接口修改设备属性

一、功能说明 通过调用华为云IOT提供的属性修改API接口,给设备下发属性修改消息。 API接口地址:https://support.huaweicloud.com/api-iothub/iot_06_v5_0034.html 此接口支持在线调试:https://console.huaweicloud.com/apiexplorer/#/openapi/IoTDA/doc?api=UpdatePrope…

基于Java微信小程序火锅店点餐系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f;感兴趣的可以先收藏起来&#xff0c;还…

基于电商模式的性能测试(2) —— 使用Jmeter参数化功能+JSR223 PreProcessor+JSON Extractor完成注册登录的数据驱动

1、前置条件 此例使用的是GitHub上一个开源的电商项目mall&#xff0c;需要的可以去GitHub上下载部署&#xff0c;有详细的部署教程&#xff1a; GitHub地址&#xff1a;github.com/macrozheng/…部署教程&#xff1a;macrozheng.github.io/mall-learni… 2、场景抽离 首先要…

全国首场以AI数字内容风控为主题的大会正式官宣,首批演讲嘉宾和议题揭晓!

曾经我们感叹的“AI迎来了iPhone时刻”&#xff0c;如今已变成“iPhone迎来了AI时刻”。前段时间&#xff0c;苹果全球开发者大会的召开&#xff0c;以及闻声而起的资本市场&#xff0c;无一不再次佐证了AI的无穷想象。 从OpenAI直播演示GPT-4o和谷歌的I/O开发者大会2024&…

Qt开发 | Qt界面布局 | 水平布局 | 竖直布局 | 栅格布局 | 分裂器布局 | setLayout使用 | 添加右键菜单 | 布局切换与布局删除重构

文章目录 一、Qt界面布局二、Qt水平布局--QHBoxLayout三、Qt竖直布局四、Qt栅格布局五、分裂器布局代码实现六、setLayout使用说明七、布局切换与布局删除重构1.如何添加右键菜单2.布局切换与布局删除重构 一、Qt界面布局 Qt的界面布局类型可分为如下几种 水平布局&#xff08;…

【ai】tx2 nx :安装torch、torchvision for yolov5

torchvision 是自己本地构建的验证torchvision nvidia@tx2-nx:~/twork/03_yolov5/torchvision$ nvidia@tx2-nx:~/twork/03_yolov5/torchvision$ python3 Python 3.6.9 (default, Mar 10 2023, 16:46:00) [GCC 8.4.0] on linux Type "help", "copyright",…

乐鑫ESP32-WROOM-32E模组设备低功耗控制方案,启明云端乐鑫代理商

在数字化浪潮的推动下&#xff0c;物联网&#xff08;IoT&#xff09;正迅速成为我们日常生活的一部分。而在这个领域中&#xff0c;ESP32-WROOM-32E模组以其卓越的性能和多功能性&#xff0c;成为了开发者和制造商的选择。 ESP32-WROOM-32E模组集成了ESP32-D0WD-V3芯片&#…

迁移学习——CycleGAN——循环一致性对抗网络

CycleGAN 1.导入需要的包2.数据加载&#xff08;1&#xff09;to_img 函数&#xff08;2&#xff09;数据加载&#xff08;3&#xff09;图像转换 3.随机读取图像进行预处理&#xff08;1&#xff09;函数参数&#xff08;2&#xff09;数据路径&#xff08;3&#xff09;读取文…

NAS安全存储怎样实现更精细的数据权限管控?

NAS存储&#xff0c;即网络附属存储&#xff08;Network Attached Storage&#xff09;&#xff0c;是一种专用数据存储服务器&#xff0c;其核心特点在于将数据存储设备与网络相连&#xff0c;实现集中管理数据的功能。 NAS存储具有以下明显优势&#xff0c;而被全球范围内的企…

vncsever ,window 远程ubuntu远程界面安装方式,VNC Viewer安装教程+ linux配置server 操作

linux 端安装 # 安装VNC 服务器软件 sudo apt install autocutsel # 剪切黏贴操作支持的包 sudo apt-get install tightvncserver # 安装的是 VNC 服务器软件,用于远程桌面访问 # 安装Xfce桌面环境 sudo apt-get install xfce4 xfce4-goodies #安装的是 XFCE 桌面环境和其…

EXCEL表格怎么批量删除日期后的时间?

竞价师最近有点忙了&#xff0c;因为百度新出来一个“线索有效性诊断”功能 一、下载电话、表单、咨询表格 二、选中整列 三、选中ctrlf 进行替换&#xff0c;日期输入空格&#xff0c;时间输入*&#xff0c;替换为空即可&#xff01; 四、整列单元格格式“日期”拉倒底部&…

正则表达式以及文本三剑客grep、sed、awk

正则表达式匹配的是文本内容&#xff0c;文本三剑客都是针对文本内容。 grep&#xff1a;过滤文本内容 sed&#xff1a;针对文本内容进行增删改查 awk&#xff1a;按行取列 一、grep grep的作用使用正则表达式来匹配文本内容 1、grep选项 -m&#xff1a;匹配几次之后停止…

知识付费小程序源码系统 构建知识交易新平台 带完整的安装代码包+搭建部署教程

系统概述 随着互联网技术的不断发展&#xff0c;人们获取信息的方式发生了巨大改变。传统的知识传播方式已经无法满足人们日益多样化的需求&#xff0c;知识付费逐渐成为一种趋势。同时&#xff0c;移动互联网的普及使得小程序成为人们生活中不可或缺的一部分&#xff0c;利用…

拓扑排序-体育课测验(二)

目录 一、问题描述 二、解答思路 三、代码实现 四、刷题链接 一、问题描述 二、解答思路 拓扑排序&#xff1a; 1.设置一个入度数组&#xff0c;构建图的邻接矩阵的同时对入度数组进行初始化 2.执行结点个数次的循环&#xff0c;每次循环都统计入度数组中的入度为0的结点P&…

如何以管理员身份运行CMD?

好久没更新博客了&#xff0c;今天在日常使用中遇到了一个问题&#xff0c;顺便记录下来。 据说国内的谷歌浏览器 Chrome 可以自动升级了&#xff0c;终于不用每次都自己跑去官网下载最新版本&#xff0c;然后安装迁移&#xff0c;重复劳动。下一篇讲如何讲迁移 Chrome&#x…