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…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
边缘计算网关提升水产养殖尾水处理的远程运维效率
一、项目背景 随着水产养殖行业的快速发展,养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下,而且难以实现精准监控和管理。为了提升尾水处理的效果和效率,同时降低人力成本,某大型水产养殖企业决定…...
五、jmeter脚本参数化
目录 1、脚本参数化 1.1 用户定义的变量 1.1.1 添加及引用方式 1.1.2 测试得出用户定义变量的特点 1.2 用户参数 1.2.1 概念 1.2.2 位置不同效果不同 1.2.3、用户参数的勾选框 - 每次迭代更新一次 总结用户定义的变量、用户参数 1.3 csv数据文件参数化 1、脚本参数化 …...
新版NANO下载烧录过程
一、序言 搭建 Jetson 系列产品烧录系统的环境需要在电脑主机上安装 Ubuntu 系统。此处使用 18.04 LTS。 二、环境搭建 1、安装库 $ sudo apt-get install qemu-user-static$ sudo apt-get install python 搭建环境的过程需要这个应用库来将某些 NVIDIA 软件组件安装到 Je…...
