Towards Adversarial Attack on Vision-Language Pre-training Models
摘要
虽然视觉-语言预训练模型(VLP)在各种视觉-语言(V+L)任务上表现出革命性的改进,但关于其对抗鲁棒性的研究在很大程度上仍未被探索。本文研究了常用VLP模型和V+L任务的对抗性攻击。
首先,我们分析了不同设置下对抗性攻击的性能。通过研究不同扰动对象和攻击目标的影响,我们总结出一些关键的观察结果,作为设计强健多模态对抗性攻击和构建鲁棒VLP模型的指导。
其次,我们在VLP模型上提出了一种新的多模态攻击方法,称为协同多模态对抗攻击(Co-Attack),它共同对图像模态和文本模态进行攻击。
实验结果表明,该方法在不同V+L下游任务和VLP模型下均能获得较好的攻击性能。本文的分析观察和新的攻击方法有望为VLP模型的对抗鲁棒性提供新的理解,从而有助于其在更多现实场景中的安全可靠部署。
INTRODUCTION
视觉和语言预训练(VLP)最近已经彻底改变了下游的视觉和语言(V+L)任务,例如图像-文本检索,视觉基础和视觉包含。这引起了人们对过去10年多模态神经网络研究的关注。虽然已经进行了广泛的研究以取得显著进展,但其中只有少数人研究了对抗鲁棒性问题,该问题通常使用标准的对抗攻击方法将扰动的一种模式用于攻击多模态任务。关于多模态预训练,特别是VLP模型,据我们所知,还没有研究系统地分析对抗鲁棒性性能并设计专用的对抗攻击解决方案。
由于仍处于非常早期的阶段,关于对VLP模型的对抗性攻击,许多问题仍未得到探索。 其中,本文研究了两个关键问题:(1)标准对抗攻击是为仅涉及一种模态的分类任务而设计的。VLP 模型涉及多种模态,通常涉及许多非分类任务,例如图像-文本跨模态检索,因此直接采用标准的对抗性攻击方法不切实际。
一个自然的解决方案是对嵌入表示而不是下游任务标签进行对抗性攻击。但是,由于VLP嵌入表示的复杂结构,问题转向了解不同的攻击设置如何影响攻击性能。
2:为了攻击VLP模型的嵌入表示,应该协作而不是独立地考虑不同模态的对抗性扰动。图1展示了一个关于视觉蕴涵任务对ALBEF [8]的adverial攻击的例子。
结果表明,只有扰动图像才能成功地将预测从“蕴涵”转变为“矛盾”。然而,通过独立扰动图像和文本而不考虑它们的相互作用,攻击失败,因为两种单模态攻击可能相互冲突并导致抵消 1 + 1 < 1 效果。本研究致力于对VLP模型的对抗性攻击,通过分析不同设置下的攻击性能并开发协作式多模态对抗攻击解决方案来解决这两个问题。
对于第一个问题,我们分析了不同设置下对VLP模型的对抗性攻击,包括攻击目标和扰动对象两个维度。两种典型的VLP架构,融合VLP模型(例如,ALBEF [8],TCL [27])和对齐的VLP模型(例如,CLIP [16])通过图像文本检索,视觉蕴涵和视觉基础的3个下游V + L任务进行了检查。广泛的分析得出了一些关于 VLP 架构和 V+L 任务之间不同攻击性能的关键观察结果,以及攻击设置对 VLP 鲁棒性的影响。
对于第二个问题,我们提出了一种针对VLP模型的新型多模态对抗攻击方法,称为协作多模态对抗攻击(Co-Attack),该方法共同对图像模态和文本模态进行攻击。协同攻击适用于融合的 VLP 和对齐的 VLP 模型。前提是鼓励扰动多模态嵌入远离原始多模态嵌入(对于融合 VLP 模型),或扰动图像模态嵌入远离扰动文本模态嵌入(对于对齐的 VLP 模型)。实验结果表明,所提方法对不同V+L下游任务的攻击性能有所提高。
本文的贡献可归纳如下。
(1)分析了对抗性攻击对VLP模型的两种典型架构和3个下游V+L任务的性能。关于攻击目标和受扰动对象的攻击设置的观察结果有助于理解VLP模型的对抗鲁棒性。
(2)在VLP模型上开发了一种新颖的多模态对抗攻击方法。通过考虑不同方式攻击之间的一致性,它协同地将多模式扰动结合起来,形成更强的对抗性攻击。
PRELIMINARIES AND RELATED WORK
VLP models and Downstream V+L Tasks
大多数早期的视觉语言表示学习工作都需要预先训练的对象检测器(例如,更快的R-CNN [18])和高分辨率图像[10,24]。最近的方法不是依赖于由计算成本高的对象检测器获得的视觉特征,而是使用端到端图像编码器(例如,ViT[3])来加速推断。在这项工作中,我们考虑 CLIP [16]、ALBEF [8] 和 TCL [27] 进行评估,它们属于后一类模型。其中,ALBEF和TCL对图像和文本模态之间的交互进行建模,包含单峰编码器Ei(·),Et(·)和多模态编码器Em(·,·)(如图2(a)所示)。
VLP模型架构和攻击设置的说明。(a)融合VLP模型由一个图像编码器、一个文本编码器和一个多模态编码器组成。(b)对齐的VLP模型没有多模态编码器,也没有统一的多模态嵌入。两个红色箭头从扰动对象指向攻击目标。
输入图像xi由图像编码器Ei(·)编码到图像嵌入ei中,即ei = Ei(xi)。输入文本 xt 由文本编码器 Et (·) 编码到文本嵌入 et 中,即 et = Et (xt)。
图像嵌入 𝑒𝑖 和文本嵌入 𝑒𝑡 然后被送入多模式编码器 𝐸𝑚 (·, ·) 以输出统一的多模式嵌入 𝑒𝑚,即 𝑒𝑚 = 𝐸𝑖(𝑒𝑖,𝑒𝑡)。我们将这种具有多模式编码器和统一多模式嵌入的 VLP 模型表示为融合 VLP 模型。相比之下,CLIP 专注于学习单峰图像编码器和文本编码器,而不考虑多峰编码器。我们将这种只有单独的单峰嵌入的 VLP 模型表示为对齐的 VLP 模型(如图 2(b) 所示)。2.1.2 下游 V+L 任务。图像-文本检索包含两个子任务。
Downstream V+L Tasks.
图像-文本检索包含两个子任务:图像到文本检索 (TR) 和文本到图像检索 (IR)。对于ALBEF和TCL,对于TR和IR,首先计算所有图像文本对ei和et之间的特征相似度得分,以检索Top-N候选者,然后使用em计算的图像-文本匹配得分进行排名。CLIP 上的 TR 和 IR 任务更直接地执行。排名结果仅基于Andet之间的相似性。
视觉蕴涵 (VE) 是一项视觉推理任务,用于预测图像和文本之间的关系是蕴涵、中性还是矛盾。ALBEF 和 TCL 都将 VE 视为三向分类问题,并使用多模态编码器表示 [CLS] 标记 [8] 的完整层来预测类概率。
视觉接地 (VG) 根据相应输入文本的描述定位输入图像中的区域。ALBEF扩展了Grad-CAM [19],并使用派生的注意力图对检测到的提案进行排名[29]。
Adversarial Attack
ANALYZING ADVERSARIAL ATTACK IN VLP MODEL
检查的 VLP 模型。
我们评估了两种模型的分析和经验:融合VLP模型和对齐VLP模型。融合的VLP模型包含一个图像编码器,一个文本编码器和一个多模态编码器,在这项工作中,我们考虑了ALBEF [8]和TCL。图像编码器由 12 层可视变压器 ViT-B/16 实现。文本编码器和多模态编码器均由 6 层变频器实现。对齐的 VLP 模型仅包含图像编码器和文本编码器,在这项工作中,我们考虑 CLIP。CLIP的图像编码器有多种选择。我们考虑ViT-B/16和ResNet-101[5],分别表示为CLIPViT和CLIPCNN。
下游任务和数据集。
本文使用MSCOCO[12]和Flickr30K[15]对TR和IR任务进行评估,使用RefCOCO+[30]对VG任务进行评估,使用SNLI-VE[25]对VE任务进行评估。注意CLIP只能处理IR和TR任务,TCL可以处理VE、IR和TR任务,ALBEF可以处理以上所有下游任务。对于VE任务,由于我们关心对抗性攻击的性能,我们只从SNLI-VE测试数据集中选择正面的图像-文本对(带有蕴涵标签),并丢弃负面的图像-文本对(带有中性和矛盾标签)。
超参数:对于图像模态的对抗性攻击,我们使用PGD攻击[13]。最大扰动设为2/255。步长设置1.25。迭代次数设置为10。对于文本模式的对抗性攻击,我们使用BERT-Attack[9]。最大扰动epsilon设置为1个标记。所选单词列表的长度设置为10。
攻击目标和扰动对象。表1列出了本文所考虑的攻击目标和扰动对象。
(1)对于VLP模型的扰动对象,我们考虑了三种选择:图像模态输入、文本模态输入和双模态(图像和文本)输入。(2)对于攻击目标,大致可以分为多模态编码器输出的多模态嵌入和图像或文本编码器输出的单模态嵌入。在每种受攻击的嵌入类型中,又进一步分为完全嵌入和[CLS]嵌入。图2中的红色箭头说明了两个示例攻击设置:Bi@Multifull,同时扰动输入图像和输入文本以攻击完整的多模态入;Image@UniCLS,扰动输入图像来攻击单峰嵌入的[CLS]。
我们简要讨论了将[CLS]嵌入作为一个攻击目标的动机。在预训练模型中,嵌入的[CLS]起着重要的作用,例如VLP模型中嵌入的[CLS]直接用于各种下游任务的推理。因此,VLP模型内嵌攻击[CLS]的有效性值得研究。注意,嵌入和完全嵌入的[CLS]之间的区别不适用于CLIP,因为CLIP可以用CNN替换图像编码器的ViT。因此,本文仅讨论CLIPViT的嵌入[CLS],其余部分将CNN输出的嵌入作为嵌入的[CLS]。
Attack Implementations
攻击单峰嵌入。对于干扰图像模态输入,大多数典型的针对分类的单模态攻击都是基于梯度的方法.其中,我们选择只需要进行一次梯度计算的FGSM[4]来表示这一系列方法:
其中C为分类模型,Lc为交叉损失函数,y^是与原始图像Xi对应的Ground-truth标签.交叉熵损失需要logit-wise表示,但许多V+L下游任务是非分类任务,如图像-文本检索。因此我们使用Zhang等人提出的最大化嵌入表示的KL (Kullback-Leibler)散度损失L的方法[Theoretically Principled Trade-off between Robustness and Accuracy]进行对抗性攻击:
对于扰动文本模式输入,T(·)表示修改或替换输入文本Xt中的标记,即X't = T (Xt).则文本对抗性扰动t可表示为:
其中最大扰动t被限制在标记级别,即有多少标记被修改/替换为语义一致。在本工作中,我们使用BERT-Attack[9]对文本模态进行对抗性攻击。
攻击多模态嵌入。对于对输入文本的攻击,我们将式(3)中的文本嵌入Et(·)替换为多模态嵌入Em(·,·):
同样,对于对输入图像的攻击,我们将式(2)中的图像嵌入Ei(·)替换为多模态嵌入Em(·,·):
Observations
图像-文本检索的观察。ALBEF在TR和IR任务中的结果如表2所示。在表2中,我们有以下主要发现:
(1)扰动双模态输入(Bi@)始终强于扰动任何单模态输入(Text@和Image@)。这表明,如果允许多模态输入受到干扰,预计将出现更强的对抗性攻击。
(2)对于扰动图像模态输入,攻击全嵌入优于攻击嵌入[CLS]。但是对于扰动文本模式输入,我们观察到相反的结果。这表明对于文本编码器来说,嵌入的[CLS]代表了句子级的显著性,攻击它比攻击完整的嵌入有更大的影响。但是对于图像编码器来说,攻击全嵌入的影响更为显著,这与[14]中观察到的一致。他们用“全局平均池化”取代了嵌入的[CLS],并发现去除嵌入的[CLS]对准确性和鲁棒性的影响可以忽略不计。
(3) Bi@Multifull的攻击性能明显优于Bi@MultiCLS。这说明对于扰动双模态输入攻击多模态嵌入,嵌入的[CLS]的影响是有限的,甚至可以削弱对抗性攻击。(4) Bi@Multi和Bi@Uni的性能相似。这表明,对于TR和IR这样需要中间输出(单峰嵌入)进行推理的任务,攻击单峰嵌入和攻击全嵌入的影响是相当的。
攻击clipit和CLIPCNN的结果分别如表3和表4所示。主要观察结果包括:
(1)发现尽管在结构上存在很大差异,但与ALBEF中的观察结果一致,扰动双模态输入比扰动任何单模态输入更强。
(2)对于扰动图像模态输入和扰动双模态输入,CLIPCNN的攻击成功率(表4)高于CLIPViT(表3)。但是对于扰动文本模态输入,CLIPCNN和CLIPViT很难区分。这表明ViT在防御图像模态攻击方面比ResNet-101 (CNN)是一种更健壮的图像编码器,这也与一些现有的观察结果[21]一致。
(3)注意,ALBEF(表2)和CLIPViT(表3)的图像编码器是相同的(ViT-B/16)。通过比较两者攻击成功率的差异,我们可以观察到攻击ALBEF的单峰嵌入与攻击CLIPViT并没有明显的优劣。这说明对于不同的VLP模型,ALBEF(融合VLP模型)和CLIPViT(对齐VLP模型)的不同预训练目标对对抗鲁棒性没有显著影响。
视觉蕴涵的观察。ALBEF和TCL在VE任务上的结果如表5所示。我们有以下主要发现:
(1)与图像-文本检索任务的结果一致,扰动双模态输入比扰动任何单模态输入更强,并且攻击全嵌入优于对扰动图像模态输入的嵌入攻击[CLS]。(2) Bi@UniCLS、Bi@Unifull、Bi@MultiCLS、Bi@Multifull的表现不相上下。这表明对于VE任务,[CLS]对扰动双模态输入的攻击性能几乎没有干扰。(3) Bi@MultiCLS优于Bi@UniCLS, Bi@Multifull优于Bi@Unifull。这表明,对于扰动双模态输入,攻击多模态嵌入要比攻击单模态嵌入强得多。因此,攻击单峰嵌入的影响相对较弱的任务,如不需要中间输出(单峰嵌入)涉及推理。
观察视觉基础:ALBEF对VG任务的结果如表6所示。我们有以下主要发现:
(1)与前面任务的结果一致,扰动双模态输入比扰动任何单模态输入更强,攻击全嵌入优于对扰动图像模态输入的嵌入攻击[CLS]。(2) Bi@Multifull在所有攻击设置中表现最佳。这进一步证明了攻击多模态嵌入的优越性。
总结。我们总结了一些共享的观察结果,作为在VLP模型中设计多模态对抗性攻击的指导。
(1)对于不同攻击设置的观测,扰动双模态输入比扰动单模态输入强。这表明,如果允许多模态输入受到干扰,预计将出现更强的对抗性攻击。此外,对于单模态输入的扰动,嵌入的[CLS]对图像模态的影响小于文本模态。对于双模态输入的扰动,攻击嵌入的[CLS]是有限的,甚至比攻击全嵌入是有害的。
(2)对于不同下游V+L任务的观察,对于推理所涉及的图像-文本检索等需要中间输出(单峰嵌入)的任务,攻击全嵌入的结果与攻击嵌入[CLS]的结果一致。但总的来说,攻击多模态嵌入在所有任务中都比攻击单模态嵌入具有更好或相当的性能。
此外,我们还得到了一些关于构建鲁棒VLP模型的见解。对于不同VLP模型的观察,ALBEF(融合VLP模型)和CLIPViT(对齐VLP模型)的预训练目标对对抗鲁棒性的影响没有明显不同。对于具有其他图像编码器的模型,如CLIP, ViT在精度和鲁棒性方面比CNN更适合作为图像编码器。
VLP模型中的协同多模态对抗攻击
Methodology
尽管上述分析发现,同时干扰文本和视觉模式比单独干扰一种模式更有效。然而,如图1所示,如果单独攻击两种模式,就有可能导致1 + 1 < 1的抵消效应。我们通过开发一种协作多模态对抗攻击解决方案来解决这个问题,称为协作多模态对抗攻击(Co-Attack)。这使我们能够集体地对图像模态和文本模态进行攻击。联合攻击的目的是鼓励扰动多模态嵌入远离原来的多模态嵌入,或鼓励扰动图像模态嵌入远离扰动文本模态嵌入。由于联合攻击可以适用于攻击多模态和单模态嵌入,因此它适用于融合VLP和对齐VLP模型。
攻击多模态嵌入。为了攻击多模态嵌入,协同攻击尝试协同扰动输入文本和输入图像,这鼓励扰动多模态嵌入远离原来的多模态嵌入。图3(a)显示,在不考虑两种攻击之间的一致性的情况下,香草攻击产生更小的合成扰动,而文本模态扰动和图像模态扰动之间的角度更大。相比之下,Co-Attack共同进行了文本模态扰动和图像模态扰动,获得了更强的合成扰动和更小的角度。如图4(a)和图4(c)所示,vanilla攻击产生的分布在[0,]上,Co-Attack缩小了分布范围,使主要分布在[0,]附近。
接下来,我们详细阐述了如何实现协同攻击。实现协同对抗攻击的主要挑战在于连续图像模态和离散文本模态之间的输入表示差距。为了解决这个问题,我们使用了一种逐步方案,首先扰动离散输入(文本),然后在给定文本扰动的情况下扰动连续输入(图像)。首先扰动文本模态输入的原因是在离散空间中很难优化所设计的目标。因此,我们从文本模态扰动开始,并将其作为标准,然后继续到图像模态扰动。对抗文本x't可由式(4)导出。对图像模态的对抗攻击由:
其中第二项对应于图3(A)中的, 是控制第二项贡献的超参数。对的敏感性在4.2.3节中讨论。上述优化问题可以通过类pgd程序轻松解决。
攻击单峰嵌入。对于攻击单模态嵌入,联合攻击试图鼓励扰动图像模态嵌入远离扰动文本模态嵌入。需要注意的是,单模态嵌入空间与多模态嵌入空间略有不同。如图3(b)所示,图像-文本样本对对应于单模态嵌入空间中靠近的两个不同表示,而不是多模态嵌入空间中的一个共享表示。结果表明,在不考虑两种攻击之间的一致性的情况下,香草攻击在文本模态扰动和图像模态扰动之间产生了更小的合成扰动和角。相比之下,CoAttack共同进行了文本模态扰动和图像模态扰动,获得了更大的合成扰动和角。如图4(B)和图4(d)所示,与vanilla攻击产生的相比,Co-Attack将移到更大的分布。
与攻击多模态嵌入类似,我们首先扰动输入文本,根据式(2)得到对抗文本x't。那么类似于式(6),我们对图像模态进行对抗性攻击如下:
其中第二项对应于图3(b)中的, 是控制第二项贡献的超参数。对的敏感性在4.2.3节中讨论。
实验
在本小节中,我们使用了与第3.1节相同的实验设置。MIM的动量项设置为0.9,SI的比例副本数量设置为5。我们把和都设为3。
比较的结果。为了证明我们的方法的性能改进,我们将提出的联合攻击与5种基线攻击进行了比较,如下所示。
愚弄VQA是一种针对分类问题(VQA模型)的攻击方法,利用ADAM优化器解决交叉熵损失,添加图像噪声[26]。
Yang等[28]使用单源对抗扰动(SSAP)来评估VLP模型的对抗鲁棒性,通过PGD来解决交叉熵损失以添加图像噪声。
SSAP-MIM和SSAP-SI是两种基线方法,通过分别引入更先进的MIM[2]和SI[11]来取代PGD,因为SSAP中的优化算法是可替换的。
香草是第3节中分析的最强攻击,也作为基线方法介绍,例如Bi@Multifull用于VE任务上的ALBEF模型。
同样,Co-Attack也可以用SI代替优化算法中的PGD,记作Co-Attack-SI。为了公平的比较,对于不使用交叉熵的任务,即图像-文本检索,我们的方法和所有基线方法都将攻击嵌入式表示作为目标。对于使用交叉熵的任务,即VE和VG,我们的方法和所有基线方法都以逻辑表示为目标。
表7显示了图像-文本检索任务的比较结果。VE任务的对比结果如表8所示。我们可以观察到:(1)由于Vanilla采用了从我们在第3节的分析中观察到的最强攻击设置,Vanilla基本上获得了优于其他基线的攻击性能。验证了分析结果的可靠性。(2)联合攻击优于所有基线攻击。这说明协同攻击提高了攻击VLP模型的协同性能。
可视化的结果。为了更直观地理解Co-Attack,我们在图5中为RefCOCO+数据集上的ALBEF提供了VG任务的Grad-CAM可视化。Grad-CAM可视化反映了模型在做出决策[19]时所查看的热图。我们注意到,扰动单模态输入几乎不会改变热图。香草略微改变了热图,但在感兴趣的物体上仍然保持明显的区域。联合攻击使模型聚焦于偏离真实的区域,从而误导推理结果。
消融实验。我们进行消融实验,研究式(6)中和式(7)中的影响。我们将和调整在[0,5]范围内,步长为1,分别考察了它们对ALBEF和CLIPViT的影响。ALBEF在SNLI-VE数据集上的可视化蕴涵结果如图6(a)所示,CLIPViT在COCO上的图文检索结果如图6(b)所示。结果表明,当 > 0和> 0时,攻击性能增强。由此可见式(6)和式(7)中第二项的重要性。当≥1和≥1时,结果具有可比性,这表明Co-Attack对超参数不敏感,并且不需要对超参数进行详细调优。
CONCLUSION
在本文中,我们研究了VLP模型的对抗性攻击。首先,分析了不同攻击设置下对抗性攻击的性能。根据所得的观察结果,我们总结了设计多模态对抗攻击和提高VLP模型鲁棒性的见解。其次,我们为VLP模型开发了一种新的多模态对抗攻击。我们希望本研究能引起人们对多模态模型对抗鲁棒性的独特性质的关注。
相关文章:
Towards Adversarial Attack on Vision-Language Pre-training Models
摘要虽然视觉-语言预训练模型(VLP)在各种视觉-语言(VL)任务上表现出革命性的改进,但关于其对抗鲁棒性的研究在很大程度上仍未被探索。本文研究了常用VLP模型和VL任务的对抗性攻击。首先,我们分析了不同设置下对抗性攻击的性能。通过研究不同扰动对象和攻…...
2022年最新数据库调查报告:超八成DBA月薪过万,你拖后腿了吗?
数据库管理员属于IT行业高薪职业的一种,近几年关于数据库管理员的薪资统计文章也层出不穷,那么当前,DBA们的薪资究竟到达了怎样的水平呢?墨天轮数据社区发布最新《2022年墨天轮数据库大调查报告》,数据显示超八成DBA月…...
ESP-C3入门10. 创建TCP Client
ESP-C3入门10. 创建TCP Client一、创建 tcp client的一般步骤1. 创建 tcp 套接字2. 配置服务器地址3. 连接服务器4. 发送数据5. 接收数据6. 关闭套接字二、创建tcp_client任务三、示例代码1. tcpClient.h2. tcpClient.c3. main.c一、创建 tcp client的一般步骤 本文示例使用的…...
【Vue】浅谈vue2、vue3响应式原理,vue中数组的响应式,响应式常见问题分析
前言:此处响应式指的是数据响应式变化,而不是页面的响应式布局,页面的响应式布局在我的其他文章中有提到。 一、什么是vue响应式 Vue 最标志性的功能就是其低侵入性的响应式系统。组件状态都是由响应式的 JavaScript 对象组成的。当更改它们…...
股航顶峰先锋一号
{选股} TT:MA(C,30)>MA(C,60) AND MA(C,60)>MA(C,120);{均线多头} DD:C>REF(C,1);{收阳线} QQ:V>REF(V,1);{放量}; TT1:COUNT(L<MA(C,13),5)1; TT2:(C-REF(C,1))/REF(C,1)*100>3; DD1:V>REF(V,1)*2 AND C>REF(C,1); DD2:TT1 AND 0<MA(C,13)AND TT2 …...
MYSQL安装部署--Linux 仓库安装
声明 :# 此次我们安装的 MYSQL 版本是 8.0.32 版本 我们本次安装 MYSQL 总共要介绍 四种方式 # 仓库安装# 本地安装# 容器安装# 源码安装我们本篇介绍的是 仓库安装 仓库安装 下载 MYSQL 安装包 # MYSQL 安装,我们都是基于 MYSQL 官方网站里进行下载~&a…...
NFS服务器搭建
NFS服务器搭建1. NFS简介2. NFS工作原理3. 配置NFS服务端3.1 启动服务3.2 修改配置文件4. 配置NFS客户端1. NFS简介 NFS是Network File System的简写,即网络文件系统. 网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS。 NFS允许一个系统在网络上与他人共…...
【数据挖掘实战】——航空公司客户价值分析(K-Means聚类案例)
目录 一、背景和挖掘目标 1、RFM模型缺点分析 2、原始数据情况 3、挖掘目标 二、分析方法与过程 1、初步分析:提出适用航空公司的LRFMC模型 2、总体流程 第一步:数据抽取 第二步:探索性分析 第三步:数据预处理 第四步&…...
AnlogicFPGA-IO引脚约束设置
(https://www.eefocus.com/article/472120.html此链接是一篇关于XillinxFPGA的IO的状态分析,希望自己也要能了解到AnLogic的IO状态并有对此问题的分析能力) 1、DriveStrength: 驱动强度,即最大能驱动的电流大小(见带负…...
Java SSM 笔记(一)重置版
Spring核心技术 **前置课程要求:**请各位小伙伴先完成《JavaWeb》篇、《Java 9-17新特性》篇视频教程之后,再来观看此教程。 **建议:**对Java开发还不是很熟悉的同学,最好先花费半个月到一个月时间大量地去编写小项目࿰…...
centos安装java,目录授权
centos安装java (1)查看可安装版本: yum -y list java* 安装:sudo yum -y install java-17-openjdk.x86_64 验证:java –version (2)二进制安装:下载:wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.…...
【大数据】HADOOP-YARN容量调度器多队列配置详解实战
简介 Capacity调度器具有以下的几个特性: 层次化的队列设计,这种层次化的队列设计保证了子队列可以使用父队列设置的全部资源。这样通过层次化的管理,更容易合理分配和限制资源的使用。容量保证,队列上都会设置一个资源的占比&a…...
加密技术在android系统安全中的应用
前言android 系统安全内容总结 1、算法基础 算法基础参照linux的全盘加密与文件系统加密在android中的应用的2、预备知识 android系统安全特性用到加密算法的如下表:...
KNN&K-means从入门到实战
作者:王同学 来源:投稿 编辑:学姐 1. 基本概念 1.1 KNN k近邻法(k-nearest neighbor,k-NN)是一种基本分类与回归方法。 k近邻法的输入为实例的特征向量对应于特征空间的点;输出为实例的类别&…...
SpringBoot整合RabbitMQ
SpringBoot整合RabbitMQ,生产者 (1)创建maven项目 (2)引入依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><versi…...
Hive---安装教程
Hive安装教程 Hive属于Hadoop生态圈,所以Hive必须运行在Hadoop上 文章目录Hive安装教程上传安装包解压并且更名修改 /etc/profile创建hive-site.xml将mysql的jar包放入Hive库中开启刷新配置文件hadoop开启mysql初始化启动hive上传安装包 将安装包上传到/opt/insta…...
MySQL作业四
学生表:Student (Sno, Sname, Ssex , Sage, Sdept) 学号,姓名,性别,年龄,所在系 Sno为主键 课程表:Course (Cno, Cname,) 课程号,课程名 Cno为主键 学生选课表:SC (Sno, Cno, Score)…...
云原生安全检测器 Narrows(CNSI)的部署和使用
近日, 云原生安全检测器 Narrows(Cloud Native Security Inspector,简称CNSI)发布了0.2.0版本。 (https://github.com/vmware-tanzu/cloud-native-security-inspector) 此项目旨在对K8s集群中的工作负载进…...
【并发编程】【3】Java线程 创建线程与线程运行
并发编程 3.Java线程 本章内容 创建和运行线程 查看线程 线程 API 线程状态 3.1 创建和运行线程 方法一,直接使用 Thread // 创建线程对象 Thread t new Thread() {public void run() {// 要执行的任务} }; // 启动线程 t.start();例如: // 构…...
Ambire 最新消息——2023 年 1 月
大家好,这里是我们在过去几周所做的一切的快速回顾。 发展 整个钱包的交易模拟和余额预测 我们推出了一项真正改变加密钱包 UX 游戏规则的功能:Ambire 现在向用户显示他们的钱包余额将如何更新,甚至在签署交易之前。 这项新功能可以分解为 Am…...
【kubeflow | 镜像源的解决方法——脚本】
20230214 方式一:获取所有镜像列表,自行外网拉取下载 获取KF所需镜像列表脚本 Offical docs for getting all kubeflow images curl https://gist.githubusercontent.com/Jason-CKY/7d7056ce261c6d606585f05218230037/raw/5c27297efdf6424cd9679b9f7…...
function calling convention(函数调用约定)
函数调用约定 函数调用约定,是指当一个函数被调用时,函数的参数会被传递给被调用的函数和返回值会被返回给调用函数。函数的调用约定就是描述参数是怎么传递和由谁平衡...
errgroup 原理简析
golang.org/x/sync/errgroup errgroup提供了一组并行任务中错误采集的方案。 先看注释 Package errgroup provides synchronization, error propagation, and Context cancelation for groups of goroutines working on subtasks of a common task. Group 结构体 // A Gro…...
Centos7.6 下 Docker 安装
Docker的自动化安装 官方的一键安装方式: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 国内 daocloud一键安装命令: curl -sSL https://get.daocloud.io/docker | sh Docker手动安装 手动安装Docker分三步:卸…...
C++11--lambda表达式
目录 lambda表达式的概念 lambda表达式语法 lambda表达式的书写格式 捕捉列表 参数列表 mutable 返回值类型 函数体 lambda表达式交换两个数 函数对象与lambda表达式 lambda表达式的概念 lambda表达式是一个匿名函数 它能让代码更加地简洁 提高了代码可读性 首先定义…...
四【Spring框架】
目录一 Spring概述二 .Spring 的体系结构三 Spring的开发环境3.1 配置pom.xml文件四 项目案例:4.1 创建实体类4.2 在pom.xml中引入依赖4.3 配置Spring-config.xml文件4.4 Test✅作者简介:Java-小白后端开发者 🥭公认外号:球场上的…...
树与二叉树 总复习
一、树的定义 树是一个有n个(n>0)结点的有限集合。 如果n0,称为空树; 如果n>0,称为非空树,有且仅有一个特定的称为根Root的结点(无直接前驱) 如果n>1,除了根节点外&…...
window10安装MySQL数据库
准备好软件MySql的下载参考:(1137条消息) mysql下载与安装过程_weixin_40396510的博客-CSDN博客_mysql数据库下载安装(1137条消息) 安装MySQL的常见问题_二木成林的博客-CSDN博客_sc不是内部或外部命令,也不是可运行的程序解压要C盘(自定义,本…...
羊了个羊游戏开发教程3:卡牌拾取和消除
本文首发于微信公众号: 小蚂蚁教你做游戏。欢迎关注领取更多学习做游戏的原创教程资料,每天学点儿游戏开发知识。嗨!大家好,我是小蚂蚁。终于要写第三篇教程了,中间拖的时间有点儿长,以至于我的好几位学员等…...
SHA1详解
目录 一、介绍 二、与MD5的区别 1、对强行攻击的安全性 2、对密码分析的安全性 3、速度 三、应用 1、文件指纹 2、Git中标识对象 四、算法原理 1、填充消息 2、消息处理 3、数据运算 (1)链接变量 (2)步函数 一、介绍…...
大型网站建设企业/it培训机构
校正网络负责的是调整开环截止频率和相位裕度。(幅值裕度也会跟着相位裕度变大而变大) 1)比例环节Kp 偏差的比例 增益:可调整整个环节的增益,减小偏差。(不懂) 增加Kp会影响稳定性ÿ…...
政府网站建设发展方向/win10系统优化软件哪个好
首先需要在eclipse中安装svn插件,这个网上教程很多 那么我来说下如何在将svn添加到菜单中去吧. 很简单,转载于:https://www.cnblogs.com/linwen5723/p/6478406.html...
做外贸网站基本流程/深圳百度推广
导语大家好,我是智能仓储物流技术研习社的社长,老K。上周给大家整理了一篇关于仓储物流自动化系统中的几款经典设备的首发公司和照片。骨灰级仓储物流自动化系统:爷爷的爷爷的老照片(立体库,AGV,多穿&#…...
wordpress文章价格产品价格/百度关键词seo优化
前言 正常来说我们自动化测试执行完成之后,都会发送一个报告,以便相关人员查看测试情况,但是对于经常运行的用例如果每次去打开测试报告查看测试结果,大家就会慢慢不去关注测试结果,所以现在大多数都会采用简单的测试…...
做展示型网站多少钱/外链工具软件
Eclipse for Mac 常用快捷键 为了提高开发效率,Eclipse 为我们提供了许多快捷键,它们能够帮助我们快速和方便的完成一些繁琐的操作。 关于 Eclipse for Windows 的快捷键,在百度和谷歌等搜索引擎都可以搜索到,在这里只提供 Eclips…...
简约大气风格网站模板/百度账号怎么改名字
一、问题描述 发生在生产环境的真实案件,加了一张分表之后,导致系统挂掉,此外,分表还未有任何数据记录。分表配置与其他相同分表的配置相同。 二、排查过程 1.刚开始系统挂掉时,以为是系统问题,因此重启系统…...