Adversarial Reweighting for Partial Domain Adaptation(论文阅读)

摘要

1、问题e12b547305a24be7a61fd4700a3677ed.png

通过实验发现如今的PDA方法在利用重新调整对齐分布来使适应特征对于源域数据的“噪声”权重,在很多挑战基准测试点上会导致域的负迁移。

2、目的

514bda2705d04097940ba99463e62a28.png

对抗性调整(AR)方法:对抗性学习源域数据的权重去对齐源域和目标域的分布,和用可转移的深度识别网络来学习源域数据的权重。

方法:

①建立一个训练算法模型去,交替更新这个识别网络的参数。

②优化源域数据的权重。

3、结果

大量的实验显示此方法在很多数据的测试点都达到更好的一个结果。消融研究(简化模型)也证明方法的有效性。

一、Introduction(介绍)

首先指出深度学习模型的问题:依赖大量有标签的训练数据、需要昂贵和耗时量大的标记过程。

1、DA方法

介绍:领域自适应(domain adaptation, DA)将具有丰富标签数据的相关源领域的知识转移到目标领域。DA的核心是利用源域的训练数据建立目标域的预测模型,该模型预计对源域和目标域之间的分布差异(也称为域偏移)具有鲁棒性。

方法:通过用矩匹配或者对抗性训练来对齐不同域的差异以此来训练健壮的模型,常规闭集DA方法是假设源域和目标域共享相同的标签空间。

不足:这种假设在实际中不总是正确的,找到一个相关的源域有着和目标域相同的标签是不容易的。

2、PDA方法

介绍:Partial domain adaptation(PDA)是DA的一个子类别,解决目标域的标签空间是源域的一个子集的场景。比普通的闭集DA更具有挑战性。

原因:

①域的转变。

②一个类仅存在于源域,而不存在于目标域,导致当对齐分布时会导致类的特征不匹配。

这两个潜在的问题就会导致负迁移,即DA方法会损害学习域的学习性能。

负迁移:负迁移一般是指一种学习对另一种学习起干扰或抑制作用。负迁移通常表现为一种学习使另一种学习所需的学习时间或所需的练习次数增加或阻碍另一种学习的顺利进行以及知识的正确掌握。

方法:为减轻负迁移,当前有的PDA方法通常对源域数据进行重加权,以降低仅属于源类数据的重要性。使用目标域和重新加权的源域数据通过对抗性训练核均值匹配来训练特征提取器实现对齐分布。

对抗性学习:在训练过程中引入对抗样本——即通过在原始输入样本上微小但足以误导模型的扰动构造而成的样本——来增强对于这类攻击的防御能力。

核均值匹配:旨在通过重新加权源域的训练样本来减轻域偏移核均值匹配。

3、发现问题

方法:使用目标域数据被错误分类为仅源类的概率来测量PDA数据集的硬度。

发现:发现当前有的重新调整分布对齐损失的方法,例如:PADA、BAA、MMD在两个数据集上导致了负迁移。通过对齐重新加权的源和目标域数据的特征分布来学习/调整特征提取器甚至会使基线模型的性能恶化,而不进行特征分布对齐。

负迁移效果的原因:在对齐损失中错误地为一些仅为源类的数据分配了非零权重。

4、提出解决方法(AR方法)

adversarialre weighting(AR):通过对抗性学习来重新加权源域数据,以对齐源域和目标域分布。

此方法依赖于对抗性训练来学习源域数据的权重来降低在重新调整源域和目标域分布的Wasserstein距离。这个权重学习过程是基于对抗性重分配模型上进行的,使用Wasserstein距离的对偶形式。

接着在重新加权的源域数据上定义一个重新加权的交叉熵损失,利用在目标域上的条件熵损失取训练目标域上的可转移识别网络。在迭代训练算法中交替进行网络训练和权值学习。

步骤:

①在提出的对抗性调整权重模型中,学习源域数据的权重,以降低仅有源类数据的权重。

②通过重新加权源域数据来减少域间隙,而不是直接优化特征提取器来匹配特征分布。

预测:当源域数据包含“噪声”权重时,减轻负域传输。

使用深度学习框架中特征空间PDA的对抗性重权模型对源数据进行重权。

对源域数进行重加权,降低源类数据在源分类损失中的重要性,以减轻PDA的负迁移。

https://github.com/XJTU-XGU/ Adversarial-Reweighting-for-Partial-Domain-Adaptation.

二、Limitations of Feature Adaptation by Domain Distribution Alignment(域分布对齐的特征自适应的局限性)

主要内容:提出了PDA基准的硬度度量,并显示了重新加权分布对齐的局限性。

图的介绍

(1)d19d9780b4554c05bd28e87ec63a75fe.png

(a)五个基准数据集的硬度

(b)在5个基准数据集上,PDA不同重加权分布对齐损失(PADA、BAA和MMD)和基线(w/o Align)结果的比较。

(c-d)在不同噪声水平下,模拟源数据权重重加权分布对齐损失的结果(c) Synthetic (S) →Real (R) on VisDA-2017 and (d) Clipart (C) → Painting (P) on DomainNet

1、Problem  Setting:

源域:标签数据集  eq?S%3D%5Cbegin%7BBmatrix%7D%20x_%7Bi%7D%5E%7Bs%7D%2Cy_%7Bi%7D%5E%7Bs%7D%20%5Cend%7BBmatrix%7D_%7Bi%3D1%7D%5E%7Bn_%7Bs%7D%7D

目标与:无标签数据集eq?T%20%3D%20%5Cbegin%7BBmatrix%7D%20x_%7Bj%7D%5E%7Bt%7D%20%5Cend%7BBmatrix%7D_%7Bj%3D1%7D%5E%7Bn_t%7D

eq?x%5E%7Bs%7D%2Cx%5E%7Bt%7D%5Cin%20R%5Ed,分别表示源域和目标域。

eq?y_%7Bi%7D%5E%7Bs%7D%5Cin%20%5Cgamma%20%5Es是源域的标签,并且eq?%5Cgamma%20%5Es%3D%5Cbegin%7BBmatrix%7D%200%2C1%2C...%2CK%20%5Cend%7BBmatrix%7D是源域的标签空间

目标:训练一个源域标签空间的子集eq?%5Cgamma%20%5Et%2C%5Cgamma%20%5Et%5Csubset%20%5Cgamma%20%5Es,并且不同于DA的闭集。

PDA方法常用一个特征提取器F去提取特征,一个分类器C去预测标签,可选一个鉴别器D去区分域。

2、PDA中重加权分布对齐方法综述

两个方面的挑战:

(1)目标域和源域的转变

(2)但源类数据在适应中的负迁移

之前的方法通常用最小化重新加权的源域和目标域之间的特征分布距离来调整特征提取器,该距离由重更新加权的分布对齐损失来衡量。重新加权的分布对齐损失中的权重通常是根据分类器或鉴别器的输出来设计的。广泛采用的分布距离度量包括最大化均值差异(MMD)和Jensen-Shannon散度(JS)。

最小化MMD匹配分布再生核希尔伯特空间中的核均值嵌入。

最小化JS散度相当于生成对抗网络中的对抗训练。

附录A:

 这一节中,比较了第2节中得到的几种基于特征自适应的部分域自适应方法。有些最先进的PDA方法(如SAN,PADA、ETN、DRCN、BA3US、TSCDA和IWAN)的损失包含了三个术语,包括源域数据的(重加权的)交叉熵损失、目标域数据的条件熵损失和重新加权的分布对齐损失。PDA方法通常使用特征提取器F提取数据的特征,使用分类器C预测类标签。

总损失可以写成:

0b7c48f597a04a529de4fb2d1f71e38c.png

J(·,·)为交叉熵,H(·)为条件熵,eq?Dist%28P_S%2CP_T%3B%5Ctextbf%7Bw%7D%29是重新加权的目标域数据和重加权的目标域数据的对齐分布损失,基于分布距离度量设计。eq?%5Ctextbf%7Bw%7D%3D%28w_1%2Cw_2%2C..%2Cw_%7Bn_s%7D%29%5ET表示源域数据的权重向量。

这些PDA方法在交叉熵损失中是否重新加权源域数据的重要性、采用的分布距离度量、获取数据权重的策略、是否利用条件熵损失等四个方面存在差异。

7bef2c7306c04370be792a1c672c6984.png

3、对PDA的数据集的硬度进行测量

使用目标域数据被错误分类为仅源类的概率来测量PDA数据集的硬度。

第一步:通过最小化源分类损失和目标域的熵损失来训练模型,这是PDA的基线

第二步:将PDA任务的硬度定义为使用训练好的模型,对目标域样本被错误分类为纯源类的平均预测概率

第三步:取数据集中所有任务的平均硬度作为数据集的硬度(平均硬度=整体硬度)

4、通过重新加权分布对齐来调整特征提取器可能导致负域迁移(重加权对齐分布的局限性)

报告了不同重加权分布对齐损失的平均分类精度(包括重新加权的PADA(部分对抗域适应)和BAA(一种平衡和不确定性感知的局部域自适应方法)的对抗训练,还有重新加权的MMD损失和基线(无对齐))

附录B: 图1(b)的详细结果

在本文的图1(b)中报告了每个数据集上的所有任务的平均分类精度。在本节中额外报告了每个数据集上所有任务的详细分类精度。

f8b911f7420e4b118b471f691ddffd13.png

Office-Home数据集的详细分类精度。上图为在Office-Home数据集上PDA不同重加权分布对齐损失和基线(无对齐)的准确性(%)比较。

00b395ba3163464a85bf61ed337e9553.png

DomainNet数据集的详细分类精度。上图为DomainNet数据集上PDA不同重加权分布对齐损失和基线(无对齐)的精度(%)比较。

98a5758c9f514a569a83d4789408f565.png

Office-31、ImageNet-Caltech和VisDA-2017的详细分类精度如上图。数据集上PDA不同重加权分布对齐损失和基线(无对齐)的精度(%)比较。

f0c0de8bc4424b998fb1bb951714cbda.png

上图可以观察除,通过特征提取器最小化这些重新加权的分布对齐损失会使基线在一些具有挑战性的数据集上的性能恶化(VD和DN),这表明,通过重新加权分布对齐损失来调整特征提取器会导致这些数据集上的负迁移。

5、通过重加权分布对齐自适应特征提取器对噪声权重的鲁棒性较差(负迁移的原因)

在一些方法中,源域数据eq?S%3D%5Cbegin%7Bpmatrix%7D%20x_%7Bi%7D%5E%7Bs%7D%2Cy_%7Bi%7D%5E%7Bs%7D%20%5Cend%7Bpmatrix%7D的权重被定义为eq?y%5Es_i类在目标域数据上的平均预测概率,即eq?y%5Es_ieq?%5Cfrac%7B1%7D%7Bn_t%7D%5Csum%5E%7Bn_t%7D_%7Bj%7DC%28F%28x_j%5Et%29%29的元素。当源域与目标域的差异较大时,源分类器对目标域可能存在不确定性。目标数据分类为纯源类的预测概率可能不为0,可能会显著大于0.因此,基于分类器的输出重新加权源类可能会为仅为源类分配非零的权重,即权重包含“噪声”。

分析了通过重新加权分布对齐来调整特征提取器的有效性可能是因为他对“噪声”权重的鲁棒性不强,进行了模拟不同噪声水平的源域数据权重的实验。将噪声按上述分类器预测的权重比例分配给每个纯源类。

如果分类器预测的权值是eq?c%5E%7Bi%7D%2Ci%5Cin%20%5Cgamma%20%5Es,对于对于噪声水平p∈[0,1],每个纯源类的模拟权重为eq?%5Cfrac%7Bpc%5Ei%7D%7B%5Csum_%7Bk%5Cin%5Cgamma%5Es-%5Cgamma%5Et%7Dc%5Ek%7D%2Ci%5Cin%5Cgamma%5Es-%5Cgamma%5Et

类似地,每个源共享类(类同时存在于源和目标标签空间中)的模拟权重是eq?%5Cfrac%7B%281-p%29c%5Ei%7D%7B%5Csum_%7Bk%5Cin%5Cgamma%5Et%7Dc%5Ek%7D%2Ci%5Cin%5Cgamma%5Et

如果p=0,则理想情况下,源类的数据被赋为0的权值,随着p的增加,这些数据被赋予更大的权值,这些权值被视为“有噪声的”权值。

还使用模拟的权重来重新加权源数据在分类损失中的重要性 ,记为“RC”。

73a2faa440354550a6b9bcafab9e3aed.png

(c)图和(d)图显示了在不同噪声水平下,不同权重加权分布中损失与模拟权重的结果。

可以看到,当噪声水平接近于0时,所有的对齐损失都优于无对齐(w/o Align),说明在这种情况对齐损失导致了正迁移。

但是随着噪声水平的增加,对齐损失的性能迅速下降,甚至明显不如无对齐(w/o Align)。

具体来说,在任务S->R(图c),当噪声水平为0.1时,对齐损失的性能开始不如无对齐(w/o Align)。

同样的,在任务C->P中(图d),在噪声水平为0.3时,对齐损失的性能开始低于无对齐(w/o Align)。

而在这两个任务中,“真实”噪声水平(基于分类器对仅源类的权重总和)大于0.3(相对于0.4)。

因此,重加权分布对齐损失的负迁移可能是由于权重中的“噪声”。

还可以看到,当噪声水平在0~0.4范围内,在源分类损失中重新加权数据重要性的无对齐并且有RC(w/o Align & w/ RC)方法在两个任务中都始终优于基线“w/o Align”方法。

这表明,在两个任务中,与重新加权的分布对齐损失相比,在源分类损失中重新加权数据重要性鲁棒性更强。

总结:

上述观察结果表明,通过重新加权的分布对齐来调整特征提取器对源数据权重的中的噪声不具有鲁棒性,并且在一些具有挑战性的数据集上可能导致负迁移。

但是,令人惊讶的是,在源分类损失中重新加权数据重要性可能比重新加权分布对齐损失对噪声权重的鲁棒性更强

三、部分域自适应的对抗性加权

图像介绍

d0a07b3196814964babb9ea0e239a7d0.png

PDA对抗性重加权方法的体系结构:

红色(分别地,蓝色)箭头表示源(目标)域的数据流。特征提取器将源图像和目标图像都映射到特征空间中。对抗性权重模型自动重权源域数据的重要性,以匹配目标域在特征空间中的分布,以降低仅源类数据的重要性。在重加权的源域数据分布上定义重加权交叉熵损失,在目标域数据上定义条件熵损失,学习目标域的可转移识别网络。

新方法:PDA对抗性重加权(AR)方法,该方法依赖于源数据权重的对抗性学习对齐源域和目标域。

上图说明了这个方法:

(1)通过特征提取器F将源数据和目标数据映射到特征空间。

(2)设计一个对抗性重加权模型来重新加权源域数据的重要性,以匹配目标域在特征空间中的分布。在这种对抗新重加权模型中,我们通过重加权源域数据特征来减少间隙,而不是调整特征提取器。

(3)定义了源域数据的重加权交叉熵损失(通过对抗性重加权模型学习的的权重)和目标域数据的条件熵损失,以学习目标域的可转移识别网络。

接下来,正文开始,一共三步:

①介绍网络损失

②对抗性重加权模型

③训练算法

1、训练识别网络的损失

训练识别网络的损失是源域上重加权交叉熵损失目标域熵条件熵损失的组合,被定义为

681554d858bd4c20b038d056a7afe0d6.png

第一项是J(·,·)是交叉熵损失,定义为eq?J%28%5Cmathbf%7Bp%7D%2Cy%29%3D-%5Csum_%7Bk%7D%5Cmathbb%7BI%7D_%7By%3Dk%7Dlogp_k

eq?%5Cmathbb%7BI%7D_%7By%3Dk%7D:特征函数,当y=k时取1,其余情况取0。

第二项时H(·)是条件熵损失,定义为eq?H%28%5Ctextbf%7Bp%7D%29%3D-%5Csum_%7Bk%7Dp_klogp_k

两项都在eq?%5Ctextbf%7Bp%7D%3D%28p_1%2Cp_2%2C...%2Cp_K%29%5ET分布下,eq?%5Ctextbf%7Bw%7D%3D%28w_1%2Cw_2%2C...%2Cw_%7Bn_%7Bs%7D%7D%29%5ET是指定源域数据重要性的权重,使得eq?%5Csum_%7Bi%3D1%7D%5E%7Bn_s%7Dw_i%3Dn_s,并且eq?%5Ctheta%20_Feq?%5Ctheta_C分别是F(特征提取器)和C(分类器)的参数。

这些权重将在下面的对抗性重加权模型中训练得到。

最小化重加权交叉熵损失使识别网络能够预测输入图像的标签。最小化条件熵损失可以促进目标域上类之间的低密度分离。

2、对抗性重加权模型

假设共享类eq?%5Cgamma%20%5Et的源域数据比仅源类eq?%5Cgamma%20%5Es-%5Cgamma%20%5Et的源类数据更接近目标域数据。

为了降低仅源类数据的重要性,同时减少域偏移,通过最小化重新加权的源域分布与目标域分布之间的Waaserstein距离来学习源域数据的权值。

权重学习过程被表述为一个对抗性权重模型。

接下来先介绍Wassertein距离

(1)Wasserstein distance(Wassersetin距离)

Wasserstein距离是一个度量两个分布之间差异的度量。

分布在μ和v之间的Wasserstein距离被定义为eq?W%28%5Cmu%2C%5Cnu%29%3Dmin_%7B%5Cpi%5Cin%20%5CPi%7DE_%7B%28x%2Cy%29%5Csim%20%5Cpi%7D%5B%7C%7Cx-y%7C%7C%5D

eq?%5CPi是µ和ν的耦合集合,即eq?%5CPi%20%3D%5Cbegin%7BBmatrix%7D%20%5Cpi%7C%5Cint%20%5Cpi%28x%2Cy%29dy%29%3D%5Cmu%28x%29%2C%5Cint%5Cpi%28x%2Cy%29%3Dv%28y%29%20%5Cend%7BBmatrix%7D

||·||是2型范数。

整个式子的意思是当eq?%5Cpi%5Cin%20%5CPi时,eq?%28x%2Cy%29符合eq?%5Cpi分布时,x-y的范数的数学期望最小值。

利用Kantorovich-Rubinstein对偶性,Wasserstein距离具有对称形式eq?W%28%5Cmu%2C%5Cnu%29%3Dmax_%7B%7C%7Cf%7C%7C_L%5Cleq%201%7DE_%7Bx%5Csim%20%5Cmu%7D%5Bf%28x%29%5D-E_%7Bx%27%5Csim%20%5Cnu%20%7D%5Bf%28x%27%29%5D,其中最大值在1-Lipschitz函数eq?f%3A%5Cmathbb%7BR%7D%5Ed%5Crightarrow%20R上。

为了计算Wasserstein距离,用参数为θD的神经网络D(鉴别器)参数化f,然后Wasserstein距离

eq?W%28%5Cmu%2C%5Cnu%29%5Capprox%20max_%7B%5Ctheta_D%5Cin%20%5CTheta%20%7DE_%7Bx%5Csim%20%5Cmu%7D%5BD%28x%3B%5Ctheta_D%29%5D-E_%7Bx%27%5Csim%20%5Cnu%20%7D%5BD%28x%27%3B%5Ctheta_D%29%5D..........%282%29eq?%5CTheta%20%3D%5Cbegin%7BBmatrix%7D%20%5Ctheta_D%3A%7C%7CD%28%B7%3B%5Ctheta_D%29%7C%7C_L%5Cleq%201%20%5Cend%7BBmatrix%7D

式子(2)允许在大规模数据集上使用基于梯度的优化算法近似计算Wasserstein距离。

附录C:计算Wasserstein距离的细节

本节说明计算第3.2节讨论的Wasserstein距离的细节。计算Wasserstein距离对偶形式的近似值。

cb3e1731db45440e8011d7ab8e8b573e.png

采用梯度惩罚技术来强制执行上式中的约束。因此

23a2fd4184af42b888b8ab4ffb98edb1.png

上式eq?%5Cwidetilde%7BP%7D%28%5Cmu%20%2C%5Cnu%29表示沿分布μ和v中采样点对之间的直线均匀分布的样本,上式可采用基于梯度的优化算法求解,如Adam算法。根据上式,Wasserstein距离可以近似为:

7951e1ad5d6c41449883b0e32498066b.png

1、Distribution distance metric(分布度量距离)

广泛使用的分布距离包括最大均值差异(MMD)和JS散度。

MMD定义为:5390d0b3ba0b4ef4b084d36db8e5a275.png

其中H为再现核希尔伯特空间。eq?%5Cphi%20%28%B7%5Ccdot%20%29%3A%5Cmathbb%7BR%7D%5Ed%5Crightarrow%20H为特征映射。最小化MMD是为了在再现希尔伯特空间中匹配分布的核均值嵌入。

JS散度满足:4e44379e57eb4322acad01db3cfa4613.png

通过F最小化JS散度相当于生成对抗网络中对F和D的对抗训练。

用Wasserstein距离的好处:与其他流行的统计距离相比,例如JS散度,Wasserstein距离对于学习分布具有较好的连续性。

(2)Adversarial reweighting(对抗性重加权)

作者的对抗重加权模型是在特征空间中定义的。

将源域数据中提取的特征表示为eq?z_i%5Es%3DF%28x%5Es_i%3B%5Ctheta_F%29,将目标域数据中提取中的特征表示为eq?z_j%5Et%3DF%28x%5Et_j%3B%5Ctheta_F%29

将目标域数据T的经验分布记为eq?P_T%3D%5Cfrac%7B1%7D%7Bn_t%7D%5Csum%5E%7Bn_t%7D_%7Bj%3D1%7D%5Cdelta%28z_j%5Et%29eq?%5Cdelta%28%5Ccdot%20%29是狄拉克函数。
重新加权后的源域分布记为eq?P_S%28w%29%3D%5Cfrac%7B1%7D%7Bn_s%7D%5Csum%5E%7Bn_s%7D_%7Bi%3D1%7Dw_i%5Cdelta%28z%5Es_i%29

然后我们在以下原则模型中自动学习权重。基于前面的假设,仅源类数据比共享类的源数据离目标域数据更远,最小化重新加权的源域和目标域分布之间的Wasserstein距离,以学习权重如下:

eq?min_%7Bw%5Cin%20%5Comega%7DW%28P_S%28w%29%2CP_T%29.................%283%29

为了避免模态崩溃,即只在少数数据上支持重加权分布,执行eq?%5Csum%5E%7Bn_s%7D_%7Bi%3D1%7D%28w_i-1%29%5E2%3C%5Crho%20n_s。解空间是eq?%5Comega%20%3D%5Cbegin%7BBmatrix%7D%20%5Ctextbf%7Bw%3Aw%7D%3D%28w_1%2Cw_2%2C...%2Cw_%7Bn_s%7D%29%5ET%2Cw_i%5Cgeq%200%2C%5Csum_%7Bi%3D1%7D%5E%7Bn_s%7Dw_i%3Dn_s%2C%5Csum_%7Bi%3D1%7D%5E%7Bn_s%7D%28w_i-1%29%5E2%3C%5Crho%20n_s%20%5Cend%7BBmatrix%7D

通过近似式(2)中的对偶形式,将式(3)转换为以下对抗性重权模型:

eq?min_%7Bw%5Cin%5Comega%20%7Dmax_%7B%5Ctheta_D%5Cin%5CTheta%20%7D%5Cfrac%7B1%7D%7Bn_s%7D%5Csum_%7Bi%3D1%7D%5E%7Bn_s%7Dw_iD%28z_i%5Es%3B%5Ctheta_D%29-%5Cfrac%7B1%7D%7Bn_t%7D%5Csum_%7Bj%3D1%7D%5E%7Bn_t%7DD%28z_j%5Et%3B%5Ctheta_D%29................%284%29

在(4)中,鉴别器被训练为最大化(最小化)其在源(目标)域上的输出的平均值,以区分源和目标域。相反,学习源数据权重以最小化源域上鉴别器输出的重新加权平均值。因此,具有较小鉴别器输出的源数据(更接近目标域)将被赋予较大的权重。因此,定义了重加权交叉熵损失重新加权的源数据分布促进了训练后的识别网络对目标域的可移植性。

(3)Implementation techniques(实现技术)

第一步:使用球面逻辑回归(SLR层)作为分类器

第二步:式子(1)中的熵损失仅用于更新特征提取器F,而不是同时更新F和C。

球面逻辑回归层输出目标特征和源原型的余弦相似度。

在熵较低的情况下,学习到的目标特征需要接近源特征,这样分类器(由源原型组成)才能更准确地识别目标特性。

因此,对抗性重加权和熵最小化可以互相补充,以减少域间隙。

(4)Automatically adjusting ρ(自动调节ρ)

ρ的适当大小对作者的方法很重要,如果目标域和与源域的标签空间大小之比(eq?%5Cfrac%7B%7C%5Cgamma%20%5Et%7C%7D%7B%7C%5Cgamma%5Es%7C%7D)较大,ρ需要很小,以迫使更多的源数据对重新加权的交叉熵做出贡献,反之依然。

由于目标标签空间是未知的,作者自动调整ρ以在预设区间eq?%5BA%5E%7Blow%7D%20%2CA%5E%7Bup%7D%5D内强制执行计算出的Wasserstein距离(即式(4)中的损失值,记为eq?A%5E%5Crho)。

为了做到这点,选择ρ的初始值eq?%5Crho_0和常数eq?c%3E1,调整ρ如下:

eq?A%5E%5Crho%20%3EA%5E%7Bup%7D,将用eq?%5Crho%3Dc%5Crho来调整ρ。

eq?A%5E%5Crho%20%3CA%5E%7Blow%7D,将用eq?%5Crho%3D%5Cfrac%7B%5Crho%7D%7Bc%7D来调整ρ。

最终调整到eq?A%5E%7Blow%7D%5Cleq%20A%5E%5Crho%5Cleq%20A%5E%7Bup%7D

设置eq?A%5E%7Bup%7D%3D5.0%2CA%5E%7Blow%7D%3D-5.0%2Cc%3D1.2%2C%5Crho%5E0%3D5.0

作者将在4.2节中表明,此方法的性能对这些超参数不敏感。

3、Training Algorithm(训练算法)

为了训练识别网络以最小化式(1)中的熵损失,交替优化网络参数eq?%28%5Ctheta_F%2C%5Ctheta_C%29并通过固定其他已知值来学习权重w。

对于所有i,用eq?w_i%3D1初始化eq?%5Ctextbf%7Bw%7D,然后,在训练网络时交替运行以下两个过程:

(1)用固定的eq?w来更新eq?%5Ctheta_F%2C%5Ctheta_C

固定eq?w后,更新eq?%5Ctheta_Feq?%5Ctheta_C,使用小批量随机梯度下降算法(SGD),在M步中最小化式(1)中的损失。

(2)用固定的eq?%5Ctheta_F%2C%5Ctheta_C来更新eq?w

固定eq?%5Ctheta_F%2C%5Ctheta_C后,提取源域和目标域熵所有训练的特征,并在式(4)中学习eq?%5Ctextbf%7Bw%7D。由于式(4)式一个最小-最大优化问题,可以通过固定一个已知来交替优化鉴别器的权重eq?%5Ctextbf%7Bw%7D和参数eq?%5Ctheta_D。为了减少计算成本,作者只进行了一次交替优化,实验结果令人满意。

因此,首先对所有i固定eq?w_i%3D1,并使用梯度惩罚技术优化eq?%5Ctheta_D以最大化方程(4)中的目标函数。接着固定鉴别器,对eq?%5Ctextbf%7Bw%7D优化过程:表示eq?d_i%3DD%28z_i%5Es%3B%5Ctheta_D%29eq?%5Ctextbf%7Bd%7D%3D%28d_1%2Cd_2%2C...%2Cd_%7Bn_s%7D%29%5ET。接着eq?%5Ctextbf%7Bw%7D的优化问题变成:

eq?min_%5Ctextbf%7Bw%7D%5Ctextbf%7Bd%7D%5ET%5Ctextbf%7Bw%7D%2Cs.t.w_i%5Cgeq0%2C%5Csum_%7Bi%3D1%7D%5E%7Bn_s%7D%20%28w_i-1%29%5E2%5Cleq%20%5Crho%20n_s%2C%5Csum%5E%7Bn_s%7D_%7Bi%3D1%7Dw_i%3Dn_s...........%285%29

式(5)为二阶锥规划,使用CVXPY包(用于凸优化的python嵌入式建模语言包)来求解式子(5)。

当源域数据的大小大于100k时,一次求解所有源数据的式子(5)是不可行的。在这种情况下,随机抽取源数据集的一个子集(大小为N)来更新它们的权重w,然后使用它们更新eq?%5Ctheta_F%2C%5Ctheta_C,并迭代上述两个过程。

 附录D:训练算法伪代码

算法1给出了第3.3节训练算法的伪代码

de9bace4311f4ff9ac18c2e84bb89c7c.png

四、实验

在五个基准数据集上进行实验,以评估对抗性重加权(AR)方法,并将其与最先进的PDA方法进行比较。

数据集

Office-31数据集包括31个类别的4652张图像,从三个领域收集:亚马逊(A)、数码单反(D)和网络摄像头(W)。

从Office-31和Caltech-256共享的10个类别中选择图像来构建新的目标域。Image-calten使用ImageNet(I)和Caltech-256(C)构建,分别包含100个和256个类。利用84个共享类来构建目标域。由于大多数网络都是在ImageNet的训练集上进行预训练的,因此作者使用来自ImageNet验证集的图像来构建C->I的目标域。

Office-Home由四个领域组成:艺术(Ar)、剪纸艺术(Cl),产品(Pr)和显示世界(Rw),共享65个类。使用按字母顺序排列的前25类图像作为目标域。

VisDA-2017是一个大规模挑战性数据集,包括两个领域:合成(S)和真实(R),共12类。使用按字母顺序使用前6个类作为目标域。

DomainNet是另一个大规模挑战性数据集,由6个领域345个类组成。由于一些领域和类的标签非常嘈杂,采用四个领域剪纸艺术(C),绘画(P),真实(R)和素描(S)126个类。按字母顺序使用前40个类来构建目标域。在这些数据集上,依次将每个域设置为源域,并使用每个剩余域来构建目标域。

实现细节

设备:Nvidia Tesla v100 GPU,使用Pytorch。

特征提取器F:使用在ImageNet上预训练的RestNet-50,它排除了最后一个全连接层。

鉴别器D:使用和Unsupervised domain adaptation by backpropagation[8]中相同的架构(三个完全连接的层,分别是1024、1024、1个结点),不包括最后一个sigmoid函数。

更新eq?%5Ctheta_F%2C%5Ctheta_C算法:动量为0.9的SGD算法。eq?%5Ctheta_C的学习率是eq?%5Ctheta_F的十倍。

更新eq?%5Ctheta_D算法:Adam算法,学习率是0.001。

根据[8],将eq?%5Ctheta_C的学习率eq?%5Cetaeq?%5Ceta%20%3D%5Cfrac%7B0.01%7D%7B%281+10p%29%5E%7B-0.75%7D%7D调整,p是训练进度从0到1的线性变化。

批量大小:36,即M(步数大小)=500,N=36M

附录E:完整的实现细节

这节提供了完整的实现细节。

设备:Nvidia Tesla v100 GPU,使用Pytorch

特征提取器F:在ImageNet上预训练的ResNet-50,排除了最后一个完全连接层

鉴别器D:使用三个完全连接的层,分别有1024、1024、1个节点,不包括最后一个sigmoid函数。

更新eq?%5Ctheta_F%2C%5Ctheta_C算法:动量为0.9的SGD算法。eq?%5Ctheta_C的学习率是eq?%5Ctheta_F的十倍。

更新eq?%5Ctheta_D算法:Adam算法,学习率是0.001。

eq?%5Ctheta_C的学习率eq?%5Cetaeq?%5Ceta%20%3D%5Cfrac%7B0.01%7D%7B%281+10p%29%5E%7B-0.75%7D%7D调整,p是训练进度从0到1的线性变化。

批量大小:36,即M(步数大小)=500,N=36M

在大规模源的自适应任务中(例如:VisDA-2017数据集上的S->R任务,以及ImageNet-Caltech和DomainNet数据集上的所有任务),根据学习到的权值(使用加权随机采样器)对小批量源数据进行采样,计算分类损失。发现在这些任务上,这种策略比对均匀取样的小批中每个数据的分类损失重新加权的策略更加稳定。

1、Results(结果)

64fd2552f1d24a81ab93c2b67c51844c.png

97ab998bd933489f82357d217d96977d.png44e1ee2113434ee1a6af86e16e333fc5.png

在上面的表1和表2分别报告了Office-Home和DomainNet上的结果。表三报告了Office-31、ImageNet-Catech和VisDA-2017的结果。

注意:表2中的DomainNet上比较方法的结果是通过在DomainNet数据集上运行其官方代码获得。

”Cls+Ent“表示基线方法,该方法使目标域上的熵损失和源分类损失最小化,而不是用式(1)中的重加权。

由于作者使用使用球性逻辑回(SLR)层作为分类器,为了完全公平的比较,作者报告了AR和Cls+Ent版本的结果,其中线性层作为分类器(分别表示AR(w/线性)和Cls+Ent(w/线性))。

在所有五个数据集上,AR和AR(w/线性)方法分别显著优于Cls+Ent和Cls+Ent(w/线性)基线。

在Office-Home上,还将AR与自适应不确定性抑制(AUS)损失和标签平滑(LS)相结合,这两种方法用于BAUS和SHOT的最先进(SOTA)方法。

AR+AUS和AR+LS方法分别持续提高其基线的性能。值得注意的是,AR+LS实现了SOTA结果为79.44%,在DomainNet上,AR和AR(w/线性)均显著优于所比较的方法,AR(w/线性)达到65.76%的SOTA结果。

在ImageNet-Caltech和VisDA-2017数据集上,AR分别实现了84.99%和83.62%的SOTA结果。

注意,在VisDA-2017和DomainNet数据集上,AR(w/线性)以很大的有时优于之前的SOTA方法BAuS(分别高出11.38%和5.13%)

在表3中,在Office-31上,AR(w/线性)与其他方法相比取得了具有竞争力的结果。可以看到,b6eba38d329144efad6043845e7ece41.png在Office-31上的准确率都在97%以上。

这表明分类器在目标域上的预测可能是可靠的,并且基于分类器的源权值可能包含较少的噪声,在这种情况下,正域迁移可以通过特征自适应来实现。

注意,尽管f0f3f26966c64ed49fa15a82853e32e4.png没有使用分类器输出显示地重新加权数据,但目标域上的分类器输出被用作强化学习框架中用于选择源的状态组件特征自适应数据。

2、分析

a5daddcc76c443b7a2f6c929206052b3.png

(a)不同权重调整策略的结果

(b)在作者的Office-Home框架中,消除MMD和JS的差异,以学习源数据权重

(c)在Office-Home上学习每类一个权重(OWEC)的消融实验

(d)同目标类别数量下的准确性

(e)在Office-Home的任务Ar→Cl中测试误差的收敛性

(1)与其他权重调整策略的比较

比较了在式子(1)损失中获得权重的不同重权策略,包括我们的对抗性权重(AR),基于分类器的重权,以及通过鉴别器对源数据的输出重权。图(a)的结果表明,作者的对抗性重权重在VisDA-2017和Officr-Home数据集上的表现明显优于其他两种重权重策略,证实了作者的重权重策略的有效性。

附录A:Strategies for designing the source data weights(设计源数据权重策略)

源数据权重是根据分类器C或鉴别器D的输出来设计的。

如果策略基于分类器,则源数据eq?%28x_i%5Es%2Cy_i%5Es%29的权重由eq?y_i%5Es类在目标域数据上的平均预测概率定义,即:

6803ee697eef4f1ba938e3b9ab068ccf.png

其中eq?%5Ctextbf%7Bp%7D_%7By_%7Bi%7D%5Es%7D是向量eq?%5Ctextbf%7Bp%7D的第eq?y_i%5Es个元素。

如果该策略基于鉴别器D,该鉴别器D被训练来预测源(目标)域标签1(0),则eq?%28x_i%5Es%2Cy_i%5Es%29的权值由eq?x_i%5Es属于目标域的预测概率定义,即1cace80968794fbda962142baa3edbe8.png

(2)MMD的消融和JS散度来学习权重

在Office-Home数据集上对JS散度和MMD进行消融研究,以了解作者的框架(分别表示为AR(w/JS)和AR(w/MMD)中的权重,在图(b)中,可以看到使用Wasserstein距离的AR优于AR(w/MMD)和AR(w/JS)。当源分布和目标分布的支持不相交时,Wasserstein距离可能比JS散度更适合测量它们的距离。广泛地使用核地MMD可能无法捕获高维空间中非常复杂的距离,这可能使其不如作者的框架中的Wasserstein距离有效。

(3)为每个类别学习一个权重的消融(OWEC)

在Office-Home数据集上进行实验,为框架(表示为AR(w/OWEC)中的每个类学习一个权重,如图(c)所示。

在图(c)中,学习每个样本权重的AR显著优于每个类学习一个权重AR(w/OWEC)。如果每个样本的权重都被学习到了,那么就有可能给更接近目标域的样本分配更高的权重,即使在相同的源类中。在这种情况下训练的模型可能更具有移植性,因为与目标域不太相关的样本(甚至在源共享类中)变得不那么重要。

(4)不同数量的目标类别的准确性

在图(d)中使用不同数量的目标类来研究作者的方法。当分类数小于35个时,作者的AR方法明显优于Cls+Ent和6c4f959d6bd44676b967a81dd8cf2635.png。这表明当源域和目标域之间的标签空间不匹配较大时,作者的方法对PDA是有效的。

(5)收敛性

在图(e)中,以任务Ar->Cl(Office-Home)为例研究作者的方法的收敛性。

仅使用源数据训练网络的”ResNet-50“方法收敛速度快,但目标测试误差高。

作者提出的AR实现了最低的目标误差。可以观察到,AR收敛速度略慢于Cls+Ent,这可能是因为重加权的交叉熵损失中的源数据权重在整个训练过程中都在更新。

附录F:关于训练算法收敛性的论证

本节为证明训练算法的收敛性提供了更多证据,对第4.2节讨论收敛性的补充材料。

df213bfa97e3437cb8917ba6dbaf7cbf.png

图(1):在Office-Home上的Ar→Cl (a-c),在VisDA-2017上的S→R (d-f),在DomainNet上的c→P (g-i)任务中的训练损失(a、d、g),近似距离(b、e、h),权值(c、f、i)的相对差值。

在式子(1)中绘制了训练损失,在式子(2)下绘制了近似距离,在图(1)中绘制了权重的相对差。

相对差为eq?%5Cfrac%7B%7C%7C%5CDelta%20w%5Et%7C%7C%7D%7B%7C%7Cw%5Et%7C%7C%7D,其中eq?%5CDelta%20%5Ctextbf%7Bw%7D%5Et%3D%5Ctextbf%7Bw%7D%5E%7Bt+1%7D-%5Ctextbf%7Bw%7D%5Eteq?%5Ctextbf%7Bw%7D%5Et为交替训练算法第t次迭代的权值。

在图1(a)、(b)、(c)中,作者的方法的训练损失随着训练过程稳定减小并收敛。图1(b)、(e)、(h)中近似距离的波动,以及图1(c)、(f)、(i)中eq?%5Cfrac%7B%7C%7C%5CDelta%20w%5Et%7C%7C%7D%7B%7C%7Cw%5Et%7C%7C%7D的非零权值,可能是主要因为特征提取器是由SGD在小批量上使用近似梯度进行优化的。

8c7ac0a6c1624c8d9c6b5aab0faf92ef.png

(a)任务Ar->Cl超参数敏感性

(b)AR对权值噪声的鲁棒性

(c)PDA方法的计算成本

(d)任务S->R中每个类的平均权值

(1)对超参数的敏感性

作者证明了他们的方法对3.2节中提到的超参数eq?A%5E%7Bup%7D%2CA%5E%7Blow%7D%2C%5Crho%5E0的敏感性,如图(a)所示,图(a)表明,作者提出的对抗性重加权的性能对这些超参数不敏感。

(2)AR对权值噪声的鲁棒性

为了验证AR加权噪声的鲁棒性,在不同噪声水平下对自己的方法进行了仿真实验

在图(b)中,可以观察到,在不同噪声水平下,AR 在C->P和S->R任务中始终优于基线Cls+Ent。这证明了AR对权值噪声的鲁棒性。

附录G:验证AR对权值噪声鲁棒性的细节

为了验证AR对权值的噪声鲁棒性,作者对该方法进行了不同噪声水平下的仿真实验。具体而言,首先通过对抗性重权模型获得源数据权重eq?w_i%2Ci%3D1%2C...%2Cn_s。对于噪声水平eq?p%5Cin%5B0%2C1%5D,作者模拟属于纯源类的第i个样本的权重:%5Cgamma%20%5Et%29w_j%7D,对于i,使得%5Cgamma%20%5Et(即属于纯源类的第i个原样本被分配与作者的对抗性模型学习到的权重成比例的噪声权重)。

同样的,对于i,为源类共享类的第i个样本分配eq?%5Cfrac%7B%281-p%29w_i%7D%7B%5Csum_%7Bj%7DI%28y_j%5Cin%5Cgamma%20%5Et%29w_j%7Deq?i%5Cin%5Cgamma%20%5Et噪声权重。如图4(b)所示。

(3)计算成本

比较了不用方法在相同训练步骤(5000步)下计算成本和总训练时长,如图(c)所示。图(c)显示,AR方法在计算成本方面与其他方法相当

(4)特征和权重可视化

作者可视化了任务S->R中每个类的源域数据的学习平均权重,如图(d)所示。

可以看到,源共享类(前六个类)数据通常具有更大的权重(第六个类除外)。

f8499b1b5eae453c878e4070c5bb71ec.png

(a-b)Cls+Ent对学习源(蓝色)和目标特征(红色)的t-SNE可视化在任务Ar->Cl

在上图中展示了任务Ar->Cl(Office-Home)中学习到的特征的t-SNE嵌入。

通过条件熵最小化,Cls+Ent学习到的(a)中的目标特征与源特征对齐所有类(包括纯源类)的类,这在PDA中不可预料。

在图(b)中,提出的AR将目标特征与部分源特征对齐,这些可视化可以部分解释PDA问题的方法的成功。

附录H:学习权值的可视化

cd550749f56d4e3b8ed55f7ed027e712.png

图2:在Ar→Cl (a)和S→R (b)任务中,源数据的学习权值。(a)和(b),左图绘制了学习到的源(蓝色)和目标(棕色)特征。右图绘制了加权的源(蓝色)特征和目标(棕色)特征,源数据点在其中蓝色越清晰,重量越大。

在图2中可视化了源域数据的学习权重。从图2中可以看出,距离目标域较远的源数据权重

五、总结

在本文中,作者通过实验观察到,通过重新加权分布对齐来适应特征提取器对源域数据的“噪声”权重不具有鲁棒性,并且可能会损害目标域的学习性能。作者进一步提出了一种新的对抗性加权方法来解决PDA问题。大量实验表明,我们提出的方法在ImageNet-Caltech、Office-Home、VisDA-2017和DomainNet等具有挑战性的数据集上取得了SOTA结果。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动化测试及生成测试报告

Linux安装Selenium进行自动化测试 首先需要安装python、Chrome&ChromeDirver ChromeDriver与Chrome对应版本 #查看chrome版本google-chrome --version或者在浏览器搜索chrome://version/ChromeDriver下载地址这里下载114版本 wget https://storage.googleapis.com/chrom…

(NeurIPS,2022)Knowledge-CLIP:使用知识图谱进行CLIP

文章目录 Contrastive Language-Image Pre-Training with Knowledge Graphs相关资料摘要引言回顾CLIPKnowledge-CLIP数据准备模型架构训练目标 Contrastive Language-Image Pre-Training with Knowledge Graphs 相关资料 论文:Contrastive Language-Image Pre-Tra…

Unity Text Mesh Pro 中英文混编自动换行问题

问题描述 使用TextMeshPro 输入中英文时,在一行内 输入中英文,当英文部分超过第一行剩余位置时,整个英文部分都会自动换行 问题截图: 期待截图: 问题说明 因为 TextMeshPro识别中文后会带换行符。 解决方案 修改…

C++ 信号量和锁的区别

网上关于信号量和锁的区别&#xff0c;写的比较官方晦涩难懂&#xff0c;对于这个知识点吸收难&#xff0c;通过示例&#xff0c;我们看到信号量&#xff0c;可以控制同一时刻的线程数量&#xff0c;就算同时开启很多线程&#xff0c;依然可以的达到线程数可控 #include <i…

sklearn(Python机器学习库)介绍

0 引言 Sklearn (全称 Scikit-Learn)是基于Python 编程语言的免费软件机器学习库。 Scikit-learn主要是用Python编写的,它建立在 NumPy, SciPy, Pandas 和 Matplotlib 之上,里面API 的设计非常好,所有对象的接口简单,很适合新手上路。 Scikit-learn与许多其他Python库很好地…

泰迪智能科技受邀北京物资学院共讨校企合作交流

为落实“访企拓岗促就业”专项行动工作要求&#xff0c;推动科研成果向实际应用转化&#xff0c;培养适应新时代需求的高素质人才&#xff0c;拓宽毕业生就业渠道&#xff0c;提升就业竞争力。7月1日&#xff0c;广东泰迪智能科技股份有限公司区域总监曹玉红到访北京物资学院开…

GenAl如何改变 DevOps 中的软件测试?

TestComplete 是一款自动化UI测试工具&#xff0c;这款工具目前在全球范围内被广泛应用于进行桌面、移动和Web应用的自动化测试。 TestComplete 集成了一种精心设计的自动化引擎&#xff0c;可以自动记录和回放用户的操作&#xff0c;方便用户进行UI&#xff08;用户界面&…

LLM大模型从入门到精通(2)--LLM模型的评估指标

LLM大模型建立完成之后&#xff0c;需要对大模型的性能进行评估。评估指标可以根据具体任务的不同而有所差异&#xff0c;以下是一些常见的评估指标&#xff1a; 1. 准确率&#xff08;Accuracy&#xff09;&#xff1a;模型预测正确的样本数占总样本数的比例。 2. 精确率&am…

【React】React18 Hooks 之 useContext

目录 useContext1、Provider和 useContext2、Provider 和Consumer3、Provider 嵌套4、React.createContext提供的Provider和class的contextType属性5、读、写Context&#xff08;1&#xff09;父组件修改Context&#xff08;2&#xff09;子组件修改Context 好书推荐 useContex…

Spring框架Mvc(2)

1.传递数组 代码示例 结果 2.集合参数存储并进行存储类似集合类 代码示例 postman进行测试 &#xff0c;测试结果 3.用Json来对其进行数据的传递 &#xff08;1&#xff09;Json是一个经常使用的用来表示对象的字符串 &#xff08;2&#xff09;Json字符串在字符串和对象…

XLSX + LuckySheet + LuckyExcel + Web Worker实现前端的excel预览

文章目录 功能简介简单代码实现web worker 版本效果参考 功能简介 通过LuckyExcel的transformExcelToLucky方法&#xff0c; 我们可以把一个文件直接转成LuckySheet需要的json字符串&#xff0c; 之后我们就可以用LuckySheet预览excelLuckyExcel只能解析xlsx格式的excel文件&a…

九、Linux二进制安装ElasticSearch集群

目录 九、Linux二进制安装ElasticSearch集群1 下载2 安装前准备(单机&#xff0c;集群每台机器都需要配置)3 ElasticSearch单机&#xff08;7.16.2&#xff09;4 ElasticSearch集群&#xff08;8.14.2&#xff09;4.1 解压文件&#xff08;先将下载文件放到/opt下&#xff09;4…

生物素标记降钙素Biotin-α-CGRP, rat 中间体

生物素标记降钙素Biotin-α-CGRP, rat 中间体是一种特定的生物化学试剂&#xff0c;主要用于科学研究领域。以下是对该产品的详细介绍&#xff1a; 一、基本信息 产品名称&#xff1a;生物素标记降钙素Biotin-α-CGRP, rat 中间体 英文名称&#xff1a;Biotin-α-CGRP, rat 纯度…

AI转绘_animatediff-cli-prompt-travel

这个工具有两种主要模式&#xff1a;它可以直接通过提示创建视频&#xff0c;或者它可以对现有视频进行风格化。还有方法可以提高视频的分辨率。 正如工具名称所示&#xff0c;它的一个主要特点是"提示旅行"。这意味着你可以例如使用特定的提示用于前20帧&#xff0…

koa + http-proxy-middleware 搭建一个带转发的静态服务器

背景 由于工作中碰到写普通页面&#xff08;未使用脚手架&#xff09;&#xff0c;需要发起接口请求&#xff0c;但普通页面又无法对接口发起正常请求&#xff0c;故编写一个Koa搭建的带转发功能的静态服务器。 起步 新建一个文件夹&#xff0c;在文件夹下打开 cmd 或者 git …

手写简单实现IOC

这个小demo是利用反射从最基础一步一步模拟实现了IOC的功能,所有的代码基本都给出了注释,方便大家阅读. 目录结构&#xff1a; 这里需要导入一下junit依赖 <!-- junit测试 --><dependency><groupId>junit</groupId><artifactId>junit</artif…

解决vite 断点调试定位不准确问题

问题&#xff1a;vite构建时&#xff0c;控制台报错行数等信息定位不准确或debugger断点调试定位不准确 解决&#xff1a;F12后打开设置面板&#xff0c;把“JavaScript源代码映射”去掉可临时解决&#xff0c;如需永久解决需升级vite到最新版 还有一种&#xff1a; 参考&…

Unity--射线检测--RayCast

Unity–射线检测–RayCast 1.射线检测的含义 射线检测,根据名称而言,使用一条射线来检测是击中了某个物体/多个物体 射线检测的包含两个部分: 射线和检测 2.射线检测可以用在哪些地方 射击游戏&#xff1a; 玩家的瞄准和射击&#xff1a;检测玩家视线是否与敌人或其他目标…

JRE、JVM、JDK分别是什么。

JDK JDK的英文全称是Java Development Kit。JDK是用于制作程序和Java应用程序的软件开发环境。JDK 是 Java 开发工具包&#xff0c;它是 Java 开发者用来编写、编译、调试和运行 Java 程序的集合。JDK 包括了 Java 编译器&#xff08;javac&#xff09;、Java 运行时环境&…

首席数据官CDO证书报考指南:方式、流程、适考人群与考试难度

在信息泛滥的今天&#xff0c;数据已转变为企业不可或缺的宝贵资源。 面对海量的信息&#xff0c;如何提炼出价值&#xff0c;为企业带来实质性的收益&#xff1f;首席数据官&#xff08;CDO&#xff09;认证的出现正是为了满足这一需求&#xff0c;它不仅是个人专业能力的体现…