一种混沌驱动的后门攻击检测指标
摘要
人工智能(AI)模型在各个领域的进步和应用已经改变了我们与技术互动的方式。然而,必须认识到,虽然人工智能模型带来了显著的进步,但它们也存在固有的挑战,例如容易受到对抗性攻击。目前的工作提出了一种针对人工智能模型最重要攻击媒介之一的新型防御机制——通过训练数据集的数据投毒进行的后门攻击。在这种防御技术中,提出了一种结合混沌理论和流形学习的综合方法。本文提出了一种新的度量标准——精度矩阵依赖性得分(PDS),它基于神经混沌特征的条件方差。PDS度量标准已成功评估,可以区分不同数据集中受污染的样本和未受污染的样本。
引言
在过去的几十年里,人工智能(AI)系统取得了显著的进步和前所未有的变革。诸如生成型预训练Transformer(GPT)等大型语言模型(LLM)的出现,促使其在内容生成、机器翻译、代码补全、聊天机器人、虚拟助手等领域得到广泛应用,并因此无缝地融入到日常生活的各个方面。随着这些技术的应用持续增长,它们的应用范围也在不断扩展,从医疗保健、金融到教育等各个行业,使其成为现代社会不可或缺的一部分。
尽管人工智能模型在语言生成和处理方面表现出卓越的能力,但这些人工智能模型也极易受到各种形式的对抗性攻击,例如数据投毒(Biggio et al., 2012)、提示注入(Clusmann et al., 2025)、模型权重投毒(Hitaj et al., 2022)和规避攻击(Oprea et al., 2022)。预训练语言模型的大量使用以及未经审查的公开数据集用于训练,构成了重大的安全漏洞,对手可以利用这些漏洞对人工智能模型发起对抗性攻击。因此,人们持续关注在现实世界中安全、可靠和合乎伦理地部署人工智能系统的问题。目前的工作重点是防御人工智能模型的系统完整性,使其免受一种复杂的数据投毒攻击,即后门攻击。
在后门攻击中,攻击者会有意地将细微的后门插入到训练数据集的一个小子集中,目的是在人工智能模型部署到现实世界中时,恶意修改其分类或预测。自然语言处理(NLP)领域的后门触发器可以是精心设计的词语或短语,以便在与合法的训练数据混合时保持隐蔽性(Li et al., 2022)。同时,选择后门触发器的目的是有效地误导模型,使其在输入中出现后门触发器时(在实时应用中)预测不正确的目标标签。此外,当人工智能模型在这些恶意修改的样本上进行训练时,模型仅对带有后门触发器的样本发生错误分类,而对于没有后门触发器的样本,模型保持正常的模型准确率。攻击者可以利用精心设计的后门触发器,这些触发器可能导致潜在的恶意结果,包括逃避有毒内容检测,或通过植入后门的神经机器翻译(NMT)系统将用户重定向到网络钓鱼站点。鉴于公开可用的训练数据集被广泛用于训练人工智能模型,通过数据投毒发起的后门攻击对人工智能模型的功能完整性构成了重大威胁。因此,在预训练阶段防范公开可用数据集中的后门触发器对于维护在此类数据上训练的人工智能模型的可信度和可靠性至关重要。
目前的工作提出了一种基于混沌的新型后门触发器检测指标,其中神经混沌学习(NL)算法(Balakrishnan et al., 2019)的各个方面与(Surendrababu and Nagaraj, 2024)中描述的与模型无关的方法相结合。神经混沌学习方法是一种受大脑启发的机器学习算法(模仿大脑中神经元的混沌爆发和尖峰行为),已成功应用于各种分类任务。然而,在后门检测的背景下,使用神经混沌特征的效用从未被探索过。为此,目前的工作侧重于通过使用经由混沌变换获得的特征来检测中毒训练数据集中的静态后门触发器。
相关工作
在自然语言处理领域中,现有的后门触发器防御机制通过在预训练阶段检测受污染数据集中的后门触发器(Tran et al., 2018;Chen et al., 2018)或在推理阶段检测模型是否被植入后门(Yang et al., 2021;Chen et al., 2022;Qi et al., 2020;Gao et al., 2019)来发挥作用。然而,前一种方法需要在受污染的数据集上训练一个特定的模型来检测后门触发器,而后一种方法则要求防御者能够访问一小部分可信的验证数据集。这两种假设在现实场景中可能都不切实际,因为获得可信的数据集通常是不可行的,尤其是在数据来源于未经验证的数据存储库、网络爬虫和其他不受控制的渠道时(Surendrababu and Nagaraj, 2024)。此外,在受污染的数据集上训练模型、检测后门触发器以及在清理后的训练数据集上重新训练模型将需要大量的计算资源。
为了克服上述局限性,本文作者先前提出了一种与模型无关的后门触发器检测方法(Surendrababu and Nagaraj, 2024;Surendrababu, 2023),该方法可以检测来自不同领域的训练数据集中的静态后门触发器。
本文贡献
目前的工作提出了一种新颖的后门检测方法,通过利用混沌变换获得的特征并结合流形学习。这种集成方法利用神经混沌特征来检测预训练阶段的静态后门触发器。为此,我们提出了一种新颖的基于混沌的度量,称为精度矩阵依赖性得分 (PDS),它可以用于区分训练数据中毒害类样本和非中毒害类样本。
据作者所知,目前的工作是首次使用通过混沌变换获得的特征来检测来自自然语言处理领域的训练数据集中潜在的后门触发器。
此外,新型精确矩阵依赖性得分 (Precision Matrix Dependency Score, PDS) 的有效性已在各种自然语言处理 (NLP) 数据集上成功测试,并使用香农熵 (Shannon Entropy) 度量进一步验证。
方法
后门攻击实验设置
后门攻击实验装置的概况如图1所示。
对于当前的研究,所分析的数据集包括来自自然语言处理领域的毒性内容检测(Peller, 2022)、假新闻检测(Ahmed et al., 2018)和SST-2文本数据集(Socher et al., 2013)。每个文本数据集的句子嵌入是通过使用Sentence Transformer库中的预训练模型获得的(Reimers and Gurevych, 2019)。对于以冗长的新闻文章作为文本输入的文本数据集,使用BERT-uncased模型(Devlin et al., 2019)来生成句子嵌入。这些数据集中的每一个都有两个类别的样本,类别标签为正类和负类。后门攻击是通过将静态后门触发器或短语插入到一小部分合法的训练数据集中来模仿的,如(Chen et al., 2021)中所述。
相应的中毒样本的类别标签被更改为特定的目标标签。在目前的分析中,中毒样本的目标标签被选择为正类。换句话说,后门攻击包括将触发器插入到来自负类的一小部分样本中,并将它们相应的类别标签更改为正类。由此产生的中毒样本成为训练数据集的一部分。在这种情况下,如果模型在这样的中毒数据集上进行训练,则该模型会对中毒样本做出不正确的预测/分类,同时保持模型在没有后门触发器的样本上的准确性。对于当前的研究,我们使用了静态NLP后门触发器,如(Chen et al., 2021;Surendrababu and Nagaraj, 2024)中所述。
图1. 后门攻击实验设置。
为了理解所使用的后门触发器的有效性及其对模型性能的影响,分析包括攻击成功率(ASR),如(Surendrababu and Nagaraj, 2024)所述。ASR可以定义为“使用中毒模型的对手发起的后门攻击总数中,后门攻击成功次数与后门攻击总数的比例。
在后门攻击的背景下,投毒率可以定义为“已被投毒并注入训练数据集的训练样本的比例,其目的是影响模型在推理时的行为。”(Surendrababu and Nagaraj, 2024)。用于模拟当前分析的后门攻击的投毒率在 5% 到 10% 的范围内。
基于混沌方法的后门触发器检测
使用基于混沌的方法进行后门触发检测的总体思路是利用通过混沌变换获得的特征来区分受污染的样本和未受污染的样本。虽然神经混沌学习(NL)方法已成功地在各种类别上进行了各种分类任务的测试,但以前从未探索过利用神经混沌特征来推导类内分离的有效性。由于带有后门触发器的受污染样本被插入到合法训练数据集中未受污染的样本中,因此后门检测的基本思想是区分一个类中的样本。为此,基于混沌的方法通过流形学习技术——均匀流形逼近和投影(UMAP)(McInnes et al., 2018)和基于密度的带噪声应用空间聚类技术(DBSCAN)(Ester et al., 1996)微调来自NL算法的特征。
应当注意的是,对于静态后门触发检测这一既定目标,中毒数据集的生成方式是将中毒样本(其原始类别标签为负)插入到正类中,并将其对应的标签更改为正类。鉴于这一事实,用于分类的NL方法,其超参数的微调是基于使用宏F1分数(而宏F1分数又依赖于拥有正确的类别标签)作为评估指标,这对于当前后门触发检测的目标来说是不够的。这是因为当前的威胁模型假设类别标签已被攻击者破坏。为此,NL方法通过调整NL的超参数调整部分,以提取样本间的类内分离,从而以一种巧妙的方式进行了修改。换句话说,基于混沌的方法通过非线性降维技术统一流形逼近和投影(UMAP)以及基于密度的噪声应用空间聚类技术(DBSCAN)来微调来自NL算法的特征。接下来将详细描述基于混沌的方法。
图2. 基于混沌的精度矩阵依赖性评分的后门触发检测方法。
NL入门
正如神经混沌学习算法(Balakrishnan et al., 2019)中所述,输入数据集被归一化到区间
[0,1]中的值。每个归一化的输入特征通过由一维广义吕肉斯级数(GLS)神经元组成的输入层转换成一个混沌特征空间。一旦获得了特定训练实例的输入刺激的神经痕迹,就从对应于每个输入特征的神经痕迹中提取各种特征,例如激发时间、激发率、能量、熵。对于分类任务,GLS映射的各种超参数,例如初始神经元活动(q)、混沌映射的判别阈值(b)和噪声强度(ε),通过网格搜索(跨5折交叉验证设置)进行调整,以找到分类任务的最佳超参数。宏平均F1分数被用作在NL方法中微调分类任务超参数的评估指标。读者可参考(Balakrishnan et al., 2019)以获得关于神经混沌学习架构的详细描述、架构和关键原理。NL在多个基准数据集的分类中产生了最先进的性能,并且还保留了因果关系(Harikrishnan et al., 2022;Harikrishnan and Nagaraj, 2021)。
基于混沌的精确矩阵依赖性得分(PDS)后门检测方法 基于混沌的PDS方法中使用的方法如图2所示,并在下文中详细阐述。
2. 对于NL方法的各种超参数,其中包括初始神经活动(q),
3. 随后,使用非线性降维技术均匀流形逼近和投影(UMAP)转换针对阳性中毒类别获得的神经混沌特征,如模型无关方法中所述(Surendrababu and Nagaraj, 2024)。UMAP转换步骤检测可能由于训练数据集中存在后门触发器而产生的任何可能的不同聚类。
4. 经过UMAP变换后,使用DBSCAN聚类算法(Ester et al., 1996)将潜在的受污染簇与未受污染的样本分离。
5. 计算 Calinski Harbasz 指数 [CHI] (Calinski´ and Harabasz, 1974),以评估从 DBSCAN 算法获得的聚类输出。
6. 通过迭代上述步骤1至5,进行网格搜索以获得最佳的NL超参数。CHI被用作评估指标,以找到最佳的NL超参数,进而可用于检测训练数据集中潜在的后门触发器。
9. 针对神经混沌特征矩阵的每一类,构建并计算精确矩阵依赖性得分(PDS),如下所述。
精度矩阵 θ在数学上定义为协方差矩阵 Σ的逆 (Morrison et al., 2022;Balmand and Dalalyan, 2016)。
在某些情况下,协方差矩阵的病态程度过高,无法直接计算协方差矩阵的逆矩阵,或者当协方差矩阵中的特征数量大于可用样本数量时,将通过 graphical lasso 方法计算精度矩阵。读者可以参考 (Friedman et al., 2008),以获得通过 Graphical Lasso 方法计算的精度矩阵的详细理论处理。
对应于每个类别的神经混沌特征向量的数据矩阵是均值中心化的,这三个类别分别是未中毒的样本和正类的中毒样本,以及负类的未中毒样本。来自正类的中毒样本的均值中心化数据矩阵表示如下:
其中 µ是形状为 1 × N 的均值向量,其中 µ中的每个元素对应于来自中毒类的单个特征向量
fp 的均值。
样本协方差矩阵 Σ是针对中毒训练数据集中每个类别的均值中心化神经混沌特征矩阵计算得出的,如下所示:
其中
Fpcentered
是均值中心化的神经混沌特征矩阵,其形状为m × N矩阵,包含m个样本和N个特征,该矩阵是通过UMAP和DBSCAN变换以及聚类步骤获得的。
每个不同类别的精度矩阵 θ 通过计算相应样本协方差矩阵的伪逆得到,如下所示:
精度矩阵依赖性得分PDS定义为精度矩阵对角线元素的迹,如下所述:
针对三个不同类别(即正类的未中毒样本、正类的中毒样本和负类的未中毒样本)中每一个类别的特征计算PDS。
第4节描述了基于混沌方法的后门检测在不同数据集上的实验评估。
结果
基于混沌的精确矩阵依赖性评分(PDS)的实验评估
通过UMAP和DBSCAN变换步骤对SST – 2数据集上的NL超参数进行微调的实验评估如图3至图5所示。从图3至图5可以看出,在NL超参数调整阶段,与中毒样本和非中毒样本相对应的不同簇开始在中毒的阳性类别中出现。获得的不同簇表明存在后门,并表明神经混沌特征可用于检测训练数据集中的潜在后门。用于分析的NL超参数包括初始神经活动 (q)、判别阈值 (b) 和噪声强度阈值 (ε)。超参数 (ε) 表示 GLS 神经元从初始神经活动开始停止或停止放电所使用的邻域。最佳NL超参数
q和b分别为0.93和0.499,而对于NLP数据集,ε的范围为0.3到0.4。从图3至图5可以看出,在保持q和b恒定的情况下,通过调整ε超参数,UMAP变换开始从神经混沌特征中检测中毒簇。
在计算出最优神经混沌特征后,计算神经混沌特征对应的精度矩阵依赖性得分(PDS)。这项工作提出了精度矩阵依赖性得分(PDS),其计算方法是精度矩阵的迹或对角线元素之和。精度矩阵在数学上被计算为协方差矩阵的逆矩阵,它有助于识别各种特征变量之间的条件依赖性和条件方差。精度矩阵的非对角线元素表示条件依赖性,即在考虑所有其他特征变量后,两个特征之间存在的任何相关性(Morrison et al., 2022),而精度矩阵的对角线元素表示在考虑所有其他变量后,特征的条件方差。精度矩阵已被广泛用于识别各种特征变量之间的虚假相关性,如(Das et al., 2017)中所述。精度矩阵的负非对角线元素已被用于识别数据集中局部群组成员,在考虑特征变量中的主要因素后,如(Oh and Kim, 2024)中所述。
然而,之前从未探索过使用精度矩阵作为区分训练数据集中受污染样本和未受污染样本的工具的效用。本文提出的精度矩阵依赖性得分(PDS)指标量化了受污染训练数据集中不同类别的神经混沌特征的条件方差,并在表1至表3中进行了描述。
表1. SST-2数据集,精确矩阵依赖性得分(PDS)。
表2. Jigsaw Toxicity数据集,精确矩阵依赖性得分(PDS)。
表3. 假新闻检测数据集,精确率矩阵依赖性得分(PDS)。
通过香农熵的互补分析
对于被污染类别样本,计算得到的PDS值明显高于未被污染类别样本,这表明特征的可预测性更高,不确定性更低。因此,进行了基于香农熵的补充分析,以验证这一发现。实验评估表明,在能量神经混沌特征上计算的香农熵可以有效地区分被污染类别和未被污染类别。因此,香农熵分析仅使用能量神经混沌特征进行。对污染数据集中各个类别的香农熵进行统计t检验和Mann Whitney U检验的结果如表4至表8和图6至图9所示。
图8和图9分别描绘了中毒类和非中毒类的香农熵分布。
神经混沌特征在维度上的离散程度的附加度量Dp是通过将以下变换应用于来自每个不同类别的所有归一化神经混沌特征来计算的。用于此分析研究的神经混沌特征包括能量、熵、放电时间和放电率。
表 4. 正类(未中毒样本)和正类(中毒样本)香农熵的 t 检验结果,显著性水平 =0.05,5% 中毒率。
表5. 正类(未中毒样本)和负类(未中毒样本)香农熵的t检验结果,显著性水平=0.05,5%中毒率。
表6. 正类(中毒样本)和负类(非中毒样本)香农熵的t检验结果,显著性水平=0.05,中毒比例5%。
表 7. Mann-Whitney U 检验结果,针对正类(中毒样本)和负类(非中毒样本)的香农熵,显著性水平 =0.05,5% 中毒比例。
其中,f pi代表与中毒类别相对应的归一化神经混沌特征向量,N代表中毒类别中特征的总数。
表 8. Mann-Whitney U 检验结果,针对正类(未中毒样本)和负类(未中毒样本)的香农熵,显著性水平 =0.05,5% 中毒率。
图 6. 在 SST-2 数据集的神经混沌特征上计算的香农熵,中毒率为 5%。
离散度的测量是在三个类别中计算的,结果如图10所示。从图10中可以看出。
讨论
PDS的分析与解读
如从表1至表3所观察到的,对于不同的中毒比例,正类中毒样本计算出的PDS明显高于正类和负类非中毒样本。这一观察结果适用于所有的NLP数据集。PDS有效地量化了中毒训练数据集中每个不同类别的神经混沌特征的条件方差。鉴于这一事实,与非中毒类样本相比,中毒类样本观察到的极高的PDS值表明中毒类神经混沌特征具有非常高的精度。精度矩阵对角线元素中的高精度反过来意味着相应特征的条件方差非常低。这一发现表明,在中毒类的精度矩阵中,当考虑所有其他特征时,对角线元素的条件方差几乎没有变化。因此,一旦所有其他特征已知/被条件化,中毒类样本的神经混沌特征具有较小的变异性,并且更可预测。这意味着与非中毒类样本相比,对应于中毒类样本的神经混沌特征之间具有高度的依赖性。
图 7. 在 Jigsaw Toxicity 数据集的神经混沌特征上计算的香农熵,中毒率为 5%。
图 8. 在 SST-2 数据集的神经混沌特征上计算的香农熵分布,中毒率为 5%。
图 9. 在 Jigsaw Toxicity 数据集的神经混沌特征上计算的香农熵分布,中毒率为 5%。
相关文章:
一种混沌驱动的后门攻击检测指标
摘要 人工智能(AI)模型在各个领域的进步和应用已经改变了我们与技术互动的方式。然而,必须认识到,虽然人工智能模型带来了显著的进步,但它们也存在固有的挑战,例如容易受到对抗性攻击。目前的工作提出了一…...
LeetCode 高频题实战:如何优雅地序列化和反序列化字符串数组?
文章目录 摘要描述题解答案题解代码分析编码方法解码方法 示例测试及结果时间复杂度空间复杂度总结 摘要 在分布式系统中,数据的序列化与反序列化是常见的需求,尤其是在网络传输、数据存储等场景中。LeetCode 第 271 题“字符串的编码与解码”要求我们设…...
leetcode 15. 三数之和
题目描述 代码: class Solution { public:vector<vector<int>> threeSum(vector<int>& nums) {sort(nums.begin(),nums.end());int len nums.size();int left 0;int right 0;vector<vector<int>> res;for(int i 0;i <len…...
HTML难点小记:一些简单标签的使用逻辑和实用化
HTML难点小记:一些简单标签的使用逻辑和实用化 jarringslee 文章目录 HTML难点小记:一些简单标签的使用逻辑和实用化简单只是你的表象标签不是随便用的<div> 滥用 vs 语义化标签的本质嵌套规则的隐藏逻辑SEO 与可访问性的隐形关联 暗藏玄机的表单…...
Linux : 31个普通信号含义
Linux : 31个普通信号 信号含义特殊的两个信号 信号含义 信号编号信号名信号含义1SIGHUP如果终端接口检测到一个连接断开,则会将此信号发送给与该终端相关的控制进程,该信号的默认处理动作是终止进程。2SIGINT当用户按组合键(一般…...
软件测试都有什么???
文章目录 一、白盒测试(结构测试)二、黑盒测试(功能测试)三、灰盒测试四、其他测试类型五、覆盖准则对比六、应用场景 软件测试主要根据测试目标、技术手段和覆盖准则进行分类。分为白盒测试、黑盒测试、灰盒测试及其他补充类型 一…...
LangGraph框架中针对MCP协议的变更-20250510
MCP(Model Context Protocol)的出现为AI Agent与外部工具及数据源的集成提供了标准化接口,而LangGraph作为基于LangChain的智能体开发框架,在MCP协议的影响下也进行了适配性调整,主要体现在工具调用、异步交互和多步推…...
YashanDB(崖山数据库)V23.4 LTS 正式发布
2024年回顾 2024年11月我们受邀去深圳参与了2024国产数据库创新生态大会。在大会上崖山官方发布了23.3。这个也是和Oracle一样采用的事编年体命名。 那次大会官方希望我们这些在一直从事在一线的KOL帮助产品提一些改进建议。对于这样的想法,我们都是非常乐于合作…...
二、transformers基础组件之Tokenizer
在使用神经网络处理自然语言处理任务时,我们首先需要对数据进行预处理,将数据从字符串转换为神经网络可以接受的格式,一般会分为如下几步: - Step1 分词:使用分词器对文本数据进行分词(字、字词);- Step2 构建词典:根据数据集分词的结果,构建…...
git 报错:错误:RPC 失败。curl 28 Failed to connect to github.com port 443 after 75000
错误:RPC 失败。curl 28 Failed to connect to github.com port 443 after 75000 ms: Couldnt connect to server致命错误:在引用列表之后应该有一个 flush 包 方法一: 直接换一个域名:把 git clone https://github.com/zx59530…...
软考 系统架构设计师系列知识点之杂项集萃(56)
接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(55) 第91题 商业智能关注如何从业务数据中提取有用的信息,然后采用这些信息指导企业的业务开展。商业智能系统主要包括数据预处理、建立()、数据分…...
数据库的脱敏策略
数据库的脱敏策略:就是屏蔽敏感的数据 脱敏策略三要求: (1)表对象 (2)生效条件(脱敏列、脱敏函数) (3)二元组 常见的脱敏策略规则: 替换、重排、…...
Lora原理及实现浅析
Lora 什么是Lora Lora的原始论文为《LoRA: Low-Rank Adaptation of Large Language Models》,翻译为中文为“大语言模型的低秩自适应”。最初是为了解决大型语言模在进行任务特定微调时消耗大量资源的问题;随后也用在了Diffusion等领域,用于…...
力扣热题100之合并两个有序链表
题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 代码 方法一:新建一个链表 这里就先随便新建一个节点作为一个链表的头节点,然后每次遍历都将小的那个节点放入这个链表,遍历完一…...
Linux511SSH连接 禁止root登录 服务任务解决方案 scp Vmware三种模式回顾
创造一个临时文件 引用 scp -p 3712 atthistime.txt code11.1.1.100:/at ssh connect to host 11.1.1.100 port 22:No route to host lost connection 对方虚拟机是[rootlocalhost caozx26]# ll -d /at drwxr-xr-x. 2 root root 6 5月 11 11:10 /at sshd_config文件修改了port为…...
python实现用户登录
使用python实现用户登录,输入用户名和密码,进行验证,正确登录成功,错误登录失败,允许用户输入三次。 代码: 下面展示一些 内联代码片。 for i in range(3):username input(请输入用户名:)pas…...
信息系统项目管理师-软考高级(软考高项)2025最新(十五)
个人笔记整理---仅供参考 第十五章项目风险管理 15.1管理基础 15.2项目风险管理过程 15.3规划风险管理 15.4识别风险 15.5实施定性风险分析 15.6实施定量风险分析 15.7规划风险应对 15.8实施风险应对 15.9监督风险...
力扣-二叉树-101 对称二叉树
思路 分解问题为,该节点的左孩子的左子树和右孩子的右子树是不是同一棵树 && 该节点的左孩子的右字数和右孩子的左子树是不是同一课树 && 该节点的左右孩子的值相不相同 代码 class Solution {public boolean isSymmetric(TreeNode root) {// 层…...
07.three官方示例+编辑器+AI快速学习webgl_buffergeometry_attributes_integer
本实例主要讲解内容 这个Three.js示例展示了WebGL 2环境下的整数属性渲染技术。通过创建大量随机分布的三角形,并为每个三角形分配不同的整数索引,实现了基于索引动态选择纹理的效果。 核心技术包括: WebGL 2环境下的整数属性支持顶点着色…...
Python Day 22 学习
学习讲义Day14安排的内容:SHAP图的绘制 SHAP模型的基本概念 参考学习的帖子:SHAP 可视化解释机器学习模型简介_shap图-CSDN博客 以下为学习该篇帖子的理解记录: Q. 什么是SHAP模型?它与机器学习模型的区别在哪儿? …...
OrangePi Zero 3学习笔记(Android篇)6 - hid-ft260
目录 1. 将hid-ft260.c拷贝到Android目录内 2. 修改hid-ids.h 3. 修改hid-quirks.c 4. 修改Kconfig 5. 修改Makefile 6. 配置内核 7. 编译内核 8. 增加权限 9. 验证 在Android中添加驱动模块ko文件,以hid-ft260为例。 1. 将hid-ft260.c拷贝到Android目录内…...
部署Superset BI(五)连接oracle数据库失败
折腾完了hana和sqlserver数据库的连接,开始折腾oracle数据库连接 1.requirements-local.txt配置 尝试在requirements-local.txt中设置,结果容器弄瘫痪了,拉不起来了,只要又去掉修改 rootNocobase:/usr/superset/superset/docker# …...
快速搭建一个vue前端工程
一、环境准备 1、安装node.js 下载地址:Node.js 推荐版本如下: 2、检查node.js版本 node -v npm -v 二、安装Vue脚手架 Vue脚手架是Vue官方提供的标准化开发工具。vue官网:https://cn.vuejs.org/ 全局安装vue/cli (仅第一次…...
蓝桥杯14届 数三角
问题描述 小明在二维坐标系中放置了 n 个点,他想在其中选出一个包含三个点的子集,这三个点能组成三角形。然而这样的方案太多了,他决定只选择那些可以组成等腰三角形的方案。请帮他计算出一共有多少种选法可以组成等腰三角形? 输…...
在Python中计算函数耗时并超时自动退出
更多内容请见: python3案例和总结-专栏介绍和目录 文章目录 方法1:使用装饰器结合信号模块(仅Unix-like系统)方法2:使用多线程(跨平台解决方案)方法3:使用concurrent.futures(Python 3.2+)方法4:使用 multiprocessing + Process(跨平台)方法5:使用 time 手动计…...
jna总结1
java使用JNA调用dll的方法_(jnacalldllapi) native.loadlibrary(path-CSDN博客 JNA(Java Native Access):建立在JNI之上的Java开源框架,SUN主导开发,用来调用C、C代码,尤其是底层库文件(windows中叫dll文件,…...
[Java][Leetcode simple]26. 删除有序数组中的重复项
思路 第一个元素不动从第二个元素开始:只要跟上一个元素不一样就放入数组中 public int removeDuplicates(int[] nums) {int cnt1;for(int i 1; i < nums.length; i) {if(nums[i] ! nums[i-1]) {nums[cnt] nums[i];}}return cnt;}...
BUUCTF——Ezpop
BUUCTF——Ezpop 进入靶场 给了php代码 <?php //flag is in flag.php //WTF IS THIS? //Learn From https://ctf.ieki.xyz/library/php.html#%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E9%AD%94%E6%9C%AF%E6%96%B9%E6%B3%95 //And Crack It! class Modifier {protected $v…...
springboot3+vue3融合项目实战-大事件文章管理系统-更新用户密码
大致分为这三步 首先在usercontroller中增加updatePwd方法 PatchMapping ("/updatePwd")public Result updatePwd(RequestBody Map<String,String> params){//1.校验参数String oldPwd params.get("old_pwd");String newPwd params.get("n…...
用浏览器打开pdf,如何使用划词翻译?
1. 浏览器 | 扩展 | 获取 Microsoft Edge 扩展 2. 搜索 “沙拉查词” 点击“获取” 3. 扩展这里选择 管理扩展 勾选 “允许访问文件url” 注:这里一定要勾选,否则沙拉查词无法访问.pdf 文件!!!会出现下图错误 4. 右击…...
大模型项目:普通蓝牙音响接入DeepSeek,解锁语音交互新玩法
本文附带视频讲解 【代码宇宙019】技术方案:蓝牙音响接入DeepSeek,解锁语音交互新玩法_哔哩哔哩_bilibili 目录 效果演示 核心逻辑 技术实现 大模型对话(技术: LangChain4j 接入 DeepSeek) 语音识别(…...
split和join的区别
split和join是Python中用于处理字符串的两种方法,它们的主要区别在于功能和使用场景。 split()方法 split()方法用于将字符串按照指定的分隔符分割成多个子串,并返回这些子串组成的列表。如果不指定分隔符,则默认分割所有的空白字符&am…...
Qt坐标系 + 信号和槽 + connect函数(8)
文章目录 Qt坐标系信号和槽connect函数connect函数的介绍connect函数具体的使用方式一个简单的例子 两个问题咋知道的QPushButton有一个clicked信号官方文档找不到相关线索怎么办 简介:上篇文章:Qt 通过控件按钮实现hello world 命名规范(7&…...
Maven 公司内部私服中央仓库搭建 局域网仓库 资源共享 依赖包构建共享
介绍 公司内部私服搭建通常是为了更好地管理公司内部的依赖包和构建过程,避免直接使用外部 Maven 中央仓库。通过搭建私服,团队能够控制依赖的版本、提高构建速度并增强安全性。公司开发的一些公共工具库更换的提供给内部使用。 私服是一种特殊的远程仓…...
蓝桥杯14届国赛 合并数列
问题描述 小明发现有很多方案可以把一个很大的正整数拆成若干正整数的和。他采取了其中两种方案,分别将他们列为两个数组 {a1,a2,...,an} 和 {b1,b2,...,bm}。两个数组的和相同。 定义一次合并操作可以将某数组内相邻的两个数合并为一个新数,新数的值是…...
人工智能100问☞第20问:神经网络的基本原理是什么?
目录 一、通俗解释 二、专业解析 三、权威参考 神经网络通过模拟人脑神经元连接结构,借助多层神经元的前向传播(输入到输出逐层计算)与反向传播(误差逆向调整参数)机制,利用激活函数(如ReLU、Sigmoid)引入非线性特征,通过权重迭代优化实现从数据中自主学习,最终完…...
AMD FPGA书籍推荐-初学者、一线工程师适用
!](https://i-blog.csdnimg.cn/direct/b78c8f0d015240e28aaad985f0f6eca9.jpg...
CSS 盒子模型与元素定位
CSS 盒子模型与元素定位 一、元素类型与转换 1. 基本元素类型 块级元素 (block) 特点:独占一行,可设置宽高,默认宽度100%示例:<div>, <p>, <h1>-<h6>, <ul>, <li> 行内元素 (inline) 特…...
Java常用类-比较器
目录 一、为什么需要比较器?二、核心差异速记表三、Comparable:对象自带的 “默认规则”1. 核心作用2. 源码定义3. 实战:给Student类加默认规则4. 源码验证(以Integer为例) 四、Comparator:临时的 “外部规…...
【Linux系列】bash_profile 与 zshrc 的编辑与加载
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
【大模型】解决最新的Dify1.3.1版本 无法基于Ollama成功添加模型
本地搭建参考链接,但是版本不是最新的1.3.1 DeepSeek Dify :零成本搭建企业级本地私有化知识库保姆级教程 windows环境下部署。 查看模型添加,提示成功,但实际模型接口返回值为空,即看不到已添加的模型。 解决方法…...
6.空气质量检测和语音播报
目录 传感器 传感器分类 数字量传感器 模拟量传感器 电压型模拟量传感器 电流型模拟量传感器 接收不同数字电平信号 KQM6600 简介 获取数据手册 关注手册的内容 KQM660硬件层 编辑 KQM协议层 语音识别和语音播报模块 SU03T作用 SU03T简介编辑 SU03T硬件层 …...
LeetCode 热题 100 543. 二叉树的直径
LeetCode 热题 100 | 543. 二叉树的直径 大家好,今天我们来解决一道经典的二叉树问题——二叉树的直径。这道题在 LeetCode 上被标记为简单难度,要求计算给定二叉树的直径。 问题描述 给你一棵二叉树的根节点,返回该树的直径。二叉树的直径…...
D. Explorer Space(dfs+剪枝)
Problem - 1517D - Codeforces 题目大意:给你一个n行m列的矩阵,以及每个点上下左右相邻点的边权,求出每个点任意走k步后再回到当前这个点的最小路程,如果不能回到起始点则输出-1 思路:既然走k步后要回到起始点&#…...
# KVstorageBaseRaft-cpp 项目 RPC 模块源码学习
KVstorageBaseRaft-cpp 项目 RPC 模块源码学习 。 一、项目简介 KVstorageBaseRaft-cpp 是一个基于 Raft 一致性算法实现的分布式 KV 存储系统,采用 C 开发。项目的核心目标是帮助开发者理解 Raft 原理和分布式 KV 存储的基本实现。RPC 模块是分布式系统通信的关…...
QT6 源(93)篇三:阅读与注释共用体类 QVariant 及其源代码,本类支持比较运算符 ==、!=。
(9) 本类支持比较运算符 、! : 可见, QString 类型里可存储多个 unicode 字符,即使只存储一个 unicode 字符也不等于 QChar。 (10)本源代码来自于头文件 qvariant . h : #ifndef Q…...
Qt开发经验 --- 避坑指南(13)
文章目录 [toc]1 安装Qt creator后无法使用debug调试2 安装VS后之间安装自带的Windows SDK3 Qt配置ssl4 ubuntu编译linuxdeployqt 更多精彩内容👉内容导航 👈👉Qt开发经验 👈 1 安装Qt creator后无法使用debug调试 安装最新版本Q…...
go 通过汇编学习atomic原子操作原理
文章目录 概要一、原理1.1、案例1.2、关键汇编 二、LOCK汇编指令2.1、 LOCK2.2、 原理2.2.1、 缓存行2.2.2、 缓存一致性之MESI协议2.2.3、lock原理 三、x86缓存发展四、x86 DMA发展参考 概要 在并发操作下,对一个简单的aa2的操作都会出错,这是因为这样…...
LOJ 6346 线段树:关于时间 Solution
Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1,a2,⋯,an),另有一个存储三元组的列表 L L L. 有 m m m 个操作分两种: add ( l , r , k ) \operatorname{add}(l,r,k) add(l,r,k):将 ( l , r , …...
Python----神经网络(基于Alex Net的花卉分类项目)
一、基于Alex Net的花卉分类 1.1、项目背景 在当今快速发展的科技领域,计算机视觉已成为一个备受关注的研究方向。随着深度学习技术的不断进步,图像识别技术得到了显著提升,广泛应用于医疗、安防、自动驾驶等多个领域。其中,花卉…...