Towards a Rigorous Evaluation of Time-series Anomaly Detection(论文翻译)

1 Introduction

  随着工业4.0加速系统自动化,系统故障的后果可能会产生重大的社会影响(Baheti和Gill 2011; Lee 2008; Lee,Bagheri和Kao 2015)。为了防止这种故障,检测系统的异常状态比以往任何时候都更加重要,并且正在以异常检测(AD)的名义进行研究。与此同时,深度学习在对从大型系统的众多传感器和执行器收集的多变量时间序列数据进行建模方面表现出了有效性(Chalapathy and Chawla 2019)。因此,各种时间序列AD(TAD)方法已经广泛采用深度学习,并且它们中的每一种都通过报告比之前的方法更高的F1分数来证明其自身的优越性(Choi et al. 2021年)。对于一些数据集,报告的F1得分超过0.9,这给今天的TAD能力留下了令人鼓舞的印象。
  然而,大多数目前的TAD方法测量F1评分后,应用一个特殊的评价协议命名为点调整(PA),由Xu等人提出。(Audibert et al. 2020;沈,李,和郭2020; Su等人,2019)。PA的工作原理如下:如果连续异常段中的至少一个时刻被检测为异常,则认为整个段被正确地预测为异常。典型地,F1分数是用调整的预测(在下文中由F1PA表示)来计算的。如果在没有PA的情况下计算F1分数,则将其表示为F1。PA协议的提出是基于在异常期间内的单个警报足以采取系统恢复的措施。它已经成为TAD评估中的基本步骤,并且以下一些研究仅报道了F1PA而没有F1(Chen et al. 2021年)。较高的F1PA已指示较好的检测能力。
  然而,PA有一个高估模型性能的可能性很大。典型的TAD模型产生通知输入异常程度的异常分数,并且如果该分数高于阈值则预测异常。使用PA,来自随机生成的异常评分的预测和良好训练的模型的预测变得相同,如图1-(a)所示。
在这里插入图片描述

图1:(a)PA使不同的异常评分难以区分。黑线、灰色区域和虚线分别指示异常分数、GT异常段和TAD阈值。在应用PA之后,针对信息性和随机异常分数的预测退化为相同的调整后的预测(红色)。

  黑色实线表示两种不同的异常分数;上面的线示出了来自良好训练的模型的信息分数,而下面的线是随机生成的。阴影区域和虚线分别指示地面实况(GT)异常段和TAD阈值。信息分数(上图)是理想的,因为它们仅在GT段期间较高。相比之下,随机生成的异常评分(下图)在GT段内仅超过阈值一次。尽管存在差异,但PA之后的预测变得不可区分,如红线所示。如果随机异常分数可以产生与熟练检测模型一样高的F1PA,则难以得出具有较高F1PA的模型比其他模型表现更好的结论。我们在第5节中的实验结果表明,随机异常分数可以推翻大多数最先进的方法(图1-(B))。
在这里插入图片描述
图1:(b)现有的方法未能超过随机生成的异常分数的F1PA(左),并且即使当PA被禁止用于WADI数据集时,也没有显示出对新提出的基线(右)的改进。
  出现的另一个问题是PA是否是TAD方法评估中的唯一问题。到目前为止,只报道了绝对F1,没有试图建立基线和相对比较。如果二元分类器的准确率为50%,则尽管是明显较大的数字,但它与随机猜测没有太大区别。同样,应讨论TAD的适当基线,并应根据与基线相比的改进来评估未来的方法。根据我们的观察,现有的TAD方法似乎没有得到显着的改善,本文提出的基线。此外,一些方法未能超过它。我们对一个基准数据集的观察总结在图1-(b)的右侧。
  在本文中,我们提出了一个问题,是否目前的TAD方法,声称带来显着的改进进行了适当的评估,并提出了第一次严格的评估TAD的方向。我们的贡献总结如下:

  • 我们发现,PA,一个奇特的评估协议,大大高估了现有方法的检测性能。
  • 我们表明,在没有PA的情况下,现有方法在基线上没有(或大多数是微不足道的)改进。
  • 基于我们的发现,我们提出了一个新的基线和评估协议,用于严格评估TAD。

2 背景

2.1 Types of anomaly in time-series signals(时间序列信号中的异常类型)

  各种类型的异常存在于数据集中(Choi et al. 2021年)。上下文异常表示具有与正常信号不同形状的信号。集体异常指示在一段时间内累积的少量噪声。点异常指示由于信号值的快速增加或减少而与预期范围的暂时和显著偏差。点异常是目前TAD数据集中最主要的类型。

2.2 Unsupervised TAD(无监督的网络)

  典型的AD设置假定在训练时间期间仅可访问正常数据。因此,无监督方法是TAD最合适的方法之一,TAD训练模型以仅在正常信号中学习共享模式。最终目标是根据输入的异常程度将不同的异常分数分配给输入,即,分别用于正常和异常输入的低异常分数和高异常分数。基于重构的AD方法训练模型,以最小化正常输入与其重构之间的距离。在测试时间的异常输入导致大距离,因为它是难以重建的。距离或重建误差用作异常分数。基于预测的方法训练模型以预测将在正常输入之后到来的信号,并采取地面实况和预测信号之间的距离作为异常分数。每个类别的详细示例请参阅附录。

2.3 Assessment of TAD evaluation(评估可持续发展评价)

  已经有几种方法指出了当前TAD评估中的缺陷。(Wu和Keogh 2021)提出了基准TAD数据集的局限性,并表明简单的检测器,所谓的单线性,对于一些数据集是足够的。他们还提供了几个合成数据集。(Lai等人,2021)为异常类型(例如,点与模式),并引入了根据新标准合成的新数据集。相比之下,我们提出了TAD评估中的陷阱:PA高估的风险和基线的缺失以及解决方案。如果陷阱没有解决,它是不可能的,以评估是否改进的TAD方法是显着的,即使与上述论文提出的更好的数据集。

3 Pitfalls of the TAD evaluation(评估的陷阱)

3.1 Problem formulation(问题公式化)

  首先,我们将在时间T期间从N个传感器观察到的时间序列信号表示为X = {x1,…xT},xt ∈ RN。作为常规方法,其被归一化并分成一系列窗口W = {w1,…wT-τ+1},其中wt = {xt,…,xt+τ−1},τ是窗口大小。仅针对测试数据集给出地面真值二进制标签yt ∈ {0,1},指示信号是否为异常(1)或不是(0)。TAD的目标是预测测试数据集中所有窗口的异常标签。通过将异常分数A(wt)与如下给出的阈值δ进行比较来获得标签:
在这里插入图片描述
  A(wt)的示例是原始输入与其重构版本之间的均方误差(MSE),其定义如下:
在这里插入图片描述
  其中,w = fθ(wt)表示来自用θ参数化的重建模型fθ的输出。标记后,精确度(P)、召回率(R)和F1得分计算如下:
在这里插入图片描述  其中TP、FP和FN分别表示真阳性、假阳性和假阴性的数量。
  所述异常测试数据集可以包含持续几个时间步长的多个异常段。我们将S表示为M个异常段的集合;即,S = {S1,…,SM},其中Sm = {Sm,.,tm_s和tm_e分别表示Sm的开始和结束时间。如果Sm中至少有一次异常评分高于δ,则PA将所有t ∈ Sm的Δ yt调整为1。使用PA,Eq.1变更如下:
在这里插入图片描述
  F1PA表示使用调整后的标签计算的F1分数。

3.2 Random anomaly score with high F1PA(F1PA高的随机异常评分)

  在本节中,我们证明了PA协议高估了检测能力。我们从抽象分析的P和R的方程。3,并且我们在数学上表明,随机生成的A(wt)可以实现接近1的高F1PA值。根据等式3,因为F1评分是P和R的调和平均值,所以它还取决于TP、FN和FP。如等式1所示。4、PA增加TP,降低FN,而维持FP。因此,在PA之后,P、R以及因此F1分数只能增加。
  接下来,我们证明F1PA可以很容易地接近1。首先,R被重述为条件概率,如下所示:
在这里插入图片描述
  让我们假设A(wt)是从均匀分布U(0,1)中提取的。我们使用0 ≤ δ θ ≤ 1来表示该假设的一个阈值。如果只存在一个异常段,即,S = {{ts,…,te}},PA之后的R可以表示如下,参考Eq.4:
在这里插入图片描述
  其中,γ = Pr(t ∈ S)是测试数据集异常率,Pr(A(wt)< δ ε)= δ ε ε 0 1 = δ ε。
在这里插入图片描述
  关于更一般化的证明,请参阅附录。数据集的异常率γ通常在0到0.2之间; te-ts也由数据集决定,在基准数据集中通常在100到5,000之间。图2描绘了当γ固定为0.05时,在不同的te−ts下,F1 PA随δ ε的变化。如图所示,除了异常段长度较短的情况外,我们总是可以通过改变δ ε来获得接近1的F1 PA。
在这里插入图片描述
图2:均匀随机异常分数随不同te − ts的δ变化的情况下的F1PA。如果异常段相当长,也就是说,如果te −ts足够大,则随着δ的增加,F1PA接近1。

3.3 Untrained model with comparably high F1(具有较高F1的未训练模型)

  本节显示从未经训练的模型获得的异常分数在一定程度上是信息性的。深度神经网络通常用从高斯分布N 0,σ2中提取的随机权重初始化,其中σ是通常小于1。在没有训练的情况下,模型的输出接近于零,因为它们也遵循零均值高斯分布。基于重建或基于预测的方法的异常分数通常被定义为输入和输出之间的欧几里得距离,在上述情况下,该距离与输入窗口的值成比例:
在这里插入图片描述
  在点异常的情况下,特定传感器值突然增加。这导致比正常窗口更大的Δ Wt Δ 2的幅度,这直接与GT异常的高A(wt)相关。第5节中的实验结果表明,由Eq.8与目前的方法相当。它还表明,当窗口大小变得更长时,F1增加得更多。

4 Towards a rigorous evaluation of TAD(严格评估可持续发展)

4.1 New baseline for TAD(新的基线)

  对于分类任务,基线准确度通常被定义为随机猜测的准确度。可以说,只有当分类精度超过该基线时才有改善。类似地,TAD不仅需要与现有方法进行比较,还需要与基线检测性能进行比较。因此,基于第3.3节的发现,我们建议建立一个新的基线,其中F1是从具有简单架构的随机初始化重建模型的预测中测量的,例如包含单层LSTM的未经训练的自动编码器。可替代地,异常分数可以被定义为输入本身,这是等式1的极端情况。8,此时模型始终输出零,而不管输入。如果新TAD模型的性能未超过该基线,则应重新检查模型的有效性。

4.2 New evaluation protocol PA%K(新评估方案PA%K)

  在上一节中,我们证明了PA有很大的可能性高估检测性能。没有PA的F1可以立即解决高估。在这种情况下,建议按照第4.1节中的介绍设定基线。然而,根据测试数据分布,F1可能会意外地低估检测能力。事实上,由于不完全的测试集标记,一些标记为异常的信号与正常信号共享更多的统计信息。即使在一段时间内间歇地插入异常,对于该时段中的所有t,yt = 1。
  我们使用t分布随机邻居嵌入(t-SNE)(货车der Maaten和欣顿2008)进一步研究了这个问题,如图3所示。t-SNE由安全水处理(SWaT)的测试数据集生成(Goh等人,2016)。蓝色和橙子分别表示正常和异常样品。大多数异常形成了一个远离正态数据分布的独特的聚类。然而,一些异常窗口比异常更接近正常数据。对应于绿色和红色点的信号的可视化分别在(B)和(c)中描述。虽然两个样本都被注释为GT异常,但(b)与(a)的正常数据相比(c)共享更多模式。仅仅因为模型不能检测到诸如(b)的信号而得出模型性能有缺陷的结论可能会导致低估检测能力。

  因此,我们提出了一种替代的评估协议PA%K,它可以减轻F1PA的高估效果和低估F1的可能性。请注意,它不是建议取代现有的TAD指标,而是与它们沿着使用。PA%K的思想是仅当Sm中正确检测到的异常的数量与其长度的比率超过PA%K阈值K时才将PA应用于Sm。PA%K修改Eq.4如下:
在这里插入图片描述
  其中表示Sm的大小(即,tm-tm)和K可以基于现有的知识在0和100之间手动选择。例如,如果测试集标签是可靠的,则允许更大的K。如果用户想要去除对K的依赖性,建议测量通过将K从0增加到100获得的FlPA *k的曲线下面积。

5 Experimental results(实验结果)

5.1 Benchmark TAD datasets(基准测试数据集)

  在本节中,我们介绍了五个最广泛使用的水处理基准数据集的列表,如下所示:

安全水处理(SWaT)(Goh et al. 2016):

  SWaT数据集是在11天内从一个由51个传感器组成的缩小规模的水处理测试平台上收集的(Mathur和Tippenhauer 2016)。在过去的4天里,使用不同的攻击方法注入了41个异常,而在前7天只生成了正常数据。

配水试验台(WADI)(Ahmed,Palleti和Mathur 2017):

  WADI数据集是从一个简化的城市配水系统中获取的,该系统具有123个传感器和执行器,运行了16天。在前14天中只收集正常数据,其余两天包含异常数据。测试数据集共有15个异常段。

服务器机器数据集(SMD)(Su et al. 2019):

  SMD数据集是从28台服务器机器和38个传感器收集的,持续10天;前5天仅出现正常数据,最后5天间歇性注入异常。SMD数据集的结果是每台机器28个不同型号的平均值。

火星科学实验室(MSL)和土壤水分主动被动(SMAP)(Hundman et al. 2018):

  MSL和SMAP数据集是从NASA航天器收集的真实世界数据集。这些是来自航天器监测系统的意外异常(伊萨)报告的异常数据。与其他数据集不同,训练数据中包含未标记的异常,这使得训练变得困难。统计数据总结见表1
在这里插入图片描述

5.2 Evaluated methods(评价方法)

  下面,我们介绍了最近提出的7种代表性的方法和第3节中研究的3种情况。

USAD(Audibert et al. 2020)

  代表无监督异常检测,它在两个阶段的训练方案下训练两个自动编码器,包括一个共享编码器和两个单独的解码器:自动编码器训练阶段和对抗训练阶段。

DAGMM(Zong et al. 2018)

  代表深度自动编码高斯混合模型,该模型采用自动编码器来产生表示向量并将其馈送到高斯混合模型。它使用估计的样本能量作为重建误差;高能量表示高异常。

LSTM-VAE

  代表了一种基于LSTM的变分自动编码器,该编码器采用变分推理进行重构。

OmniAnomaly(Su et al. 2019)

  应用VAE将时间序列信号建模为随机表示,如果给定输入的重建可能性低于阈值,则会预测异常。它还定义了重建概率的个别功能的归因得分和量化的解释。

MSCRED(Zhang et al. 2019)

  代表了一种多尺度卷积递归编码器-解码器,包括卷积LSTM,用于重建表征多个系统级别的输入矩阵,而不是输入本身。THOC(Shen,Li,and Kwok 2020)表示一个时间层次单类网络,它是一个多层扩张递归神经网络和一个层次深度支持向量数据描述。

GDN(Deng and Hooi 2021)

  表示学习传感器关系图以检测异常与学习模式的偏差的图偏差网络。
  例一。随机异常评分对应于第3.2节中描述的情况。F1分数用从均匀分布U中抽取的随机生成的异常分数来测量,即,A(wt)= 0,1。
  案例2.作为异常分数的输入本身表示假设fθ(wt)= 0而不考虑wt的情况。这等于Eq.8.因此,A(wt)= 10wt 102。
  案例3.来自随机化模型的异常评分对应于等式其中η表示来自随机化模型的小输出。参数在从高斯分布N(0,0.02)初始化之后被固定。

5.3 Correlation between F1PA and F1(F1PA与F1的相关性)

  F1是检测性能的最保守指标。因此,如果F1PA可靠地表示检测能力,则它应该与F1至少具有一些相关性。图4绘制了SWaT和WADI的F1 PA和F1,如对USAD、DAGMM、LSTMVAE、OmniAnomaly和GDN的原始研究所报告的。该图还包括情况1-3的结果。值得注意的是,考虑到只有一部分数据集和方法一起报告了F1PA和F1,我们只绘制了它们。对于SWaT,Pearson相关系数(PCC)和Kendall秩相关系数(KRC)分别为-0.59和0.07。对于WADI,PCC和KRC分别为0.41和0.43。然而,这些数字不足以确保相关性的存在,并证实比较仅使用F1PA的方法的优效性可能存在检测性能评估不当的风险。
在这里插入图片描述
图4:SWaT和WADI数据集上现有方法的F1PA和F1之间的相关性。图中显示了肯德尔等级相关(KRC)和皮尔逊相关系数(PCC)

5.4 Comparison results(比较结果)

  在这里,我们将AD方法的结果与情况1-3进行比较。应当注意,对于情况1和2,异常分数是直接生成的,而不需要模型推断。对于案例3,我们采用了最简单的具有LSTM层的编码器-解码器架构。情况2和3的窗口大小τ被设置为120。对于包括随机性的实验,例如案例1和案例3,我们用五种不同的种子重复它们并报告平均值。对于现有的方法,我们使用原始论文中报告的最佳数字和官方复制的结果(Choi et al. 2021);如果没有可用的分数,我们参考官方提供的代码复制它们。请注意,我们没有应用任何预处理,例如早期时间步长删除或下采样。在以前的论文中没有提供MSL、SMAP和SMD的F1,因此它们都是复制的。值得注意的是,我们在论文中建议的范围内搜索最佳超参数,并且我们没有应用下采样。所有阈值均从产生最佳分数的阈值获得。有关实施的进一步详情载于附录。结果示于表2中。再现的结果标记为t。粗体和下划线数字分别表示最佳和次佳结果。向上箭头(↑)显示以下情况的结果:(1)F1 PA高于情况1,(2)F1高于情况2或3,以较大者为准。
在这里插入图片描述
表2:各种方法的F1评分。†表示再现结果。下面三行表示以下情况:情况1。随机异常评分,病例2。输入自身作为异常评分,案例3。来自随机化模型的异常评分。详细解释请参阅手稿。粗体和下划线的情况分别表示最佳和次佳。在下列情况下标记↑:(1)F1 PA高于情况1,(2)F1高于情况2或3。
  显然,随机生成的异常分数(情况1)不能检测异常,因为它不反映关于输入中的异常的任何内容。相应地,F1相当低,这清楚地表明检测能力不足。然而,当应用PA协议时,情况1似乎产生远远超出现有方法的最先进的F1 PA,除了SMD。如果结果仅被提供有PA,如在MSL、SMAP和SMD的情况下,则区分该方法是否成功地检测到异常或者其是否仅输出与输入无关的随机异常分数是不可能的。特别是,MSL和SMAP的F1非常低;这意味着很难对它们进行建模,因为它们都是真实世界的数据集,并且训练数据包含异常。然而,F1 PA似乎相当高,造成了一种错觉,即这些数据集的异常被很好地检测到。
  SMD的Case 1的F1值低于其他数据集,并且有以前的方法超过它,这可能是由于SMD测试数据集的组成。根据等式如图6和图7所示,F1 PA随三个参数而变化:测试数据集中的异常率(γ)、异常段的长度(te-ts)和阈值(δ)。与其他数据集不同,SMD的异常率非常低,如表1所示。此外,异常段的长度相对较短; 28台机器的平均长度为90,不像其他数据集从数百到数千不等。这类似于图2中的最低情况,图2示出了在这种情况下可实现的最大F1 PA仅约为0.8。因此,我们可以得出结论,PA的高估效果取决于测试数据集的分布,其效果变得不太明显,异常段越短。
  在所有数据集中,现有方法的F1大多低于案例2和案例3,这意味着目前提出的方法可能相对于基线取得了微小的进步,甚至没有进步。只有GDN始终超过所有数据集的基线。情况2和情况3的F1取决于输入窗口的长度。如果窗口较长,F1基线会变得更大。我们在案例2中使用从1到250的各种窗口长度进行了实验,并在图5中描绘了结果。对于SWaT、WADI和SMAP,随着τ的增加,F1在短暂下降后开始增加。出现这种增加是因为较长的窗口更可能包含更多的点异常,从而导致窗口的高异常分数。如果τ变得太大,F1饱和或退化,可能是因为过去只包含正常信号的窗口意外地包含异常信号。
在这里插入图片描述
图5:不同窗口大小(τ)的F1。随着τ的增加,F1在短暂下降后大部分增加。

5.5 Effect of PA%K protocol

  为了研究PA%K如何缓解PA的高估效应和F1的低估趋势,我们观察了F1PA%K随不同PA%K阈值K的变化。图6示出了当K从0到100以10的增量改变时,来自情况1的SWaT和完全训练的编码器-解码器的F1PA%K。K = 0和K = 100的F1PA%K值分别等于原始F1PA和F1。无论K的值如何,经过良好训练的模型的F1PA%K都将显示恒定的结果。相应地,经训练的编码器-解码器(橙子)的F1PA%K显示出一贯高的F1PA%K。相反,病例1(蓝色)的F1PA%K在K增加时迅速降低。我们还建议测量曲线下面积(AUC)以减少对K的依赖性。在这种情况下,对于训练的编码器-解码器和情况1,AUC分别为0.88和0.41;这表明PA%K清楚地将前者与后者区分开来,而不管K如何。
在这里插入图片描述
图6:具有PA%K和不同K的F1评分。如果K = 0,它等于F1PA,如果K = 100,它等于F1。

6 Discussion

  在本文中,我们已经证明,目前的评估有两个方面的陷阱:(1)由于PA高估了检测性能,我们不能确保具有较高的F1 PA的方法确实具有更好的检测能力;(2)结果只与现有的方法进行了比较,而不是对基线。在适当评估目前的成就时,可以开发出更好的异常检测器。在本节中,我们为未来的可持续发展评估提出了几个方向。
  PA的动机,即,第一个陷阱的来源,源于测试数据集标记过程的不完整性,如4.2节所述。一个彻底的解决方案是开发一个新的基准数据集,以更细粒度的方式进行注释,以便时间步长标签变得可靠。由于细粒度注释需要大量资源,因此通常不可行,F1PA%K可以是一个很好的替代方案,可以在不修改任何额外数据集的情况下减轻高估。请注意,PA%K是一种评估协议,可应用于F1分数以外的各种指标。对于第二个问题,重要的是设置一个基线作为案例2和案例3中未训练模型的性能,并测量相对于它的相对改进。窗口大小应该通过考虑其对基线的影响来仔细确定,如第5.4节所述。
  此外,在不访问测试数据集的情况下预定义阈值在真实的世界中通常是不切实际的。相应地,视野中的许多AD方法使用受试者工作特征(AUROC)曲线下面积进行自我评估(Yi和Yoon 2020)。相比之下,现有的F1方法在调查测试数据集之后设置阈值,或者简单地使用产生最佳F1的最佳阈值。因此,检测结果很大程度上取决于阈值的选择。具有降低依赖性的其他指标,如AUROC或精确召回率(AUPR)曲线下的面积将有助于严格的评估。即使在这种情况下,所提出的基线选择方法是有效的。由于PA%K是一个协议,它也可以用于上述指标。

7 Conclusion

  在本文中,我们首次表明,应用PA可以严重高估TAD模型的能力,这可能无法反映真实的建模性能。我们还提出了一个新的TAD基线,并表明只有少数方法在这方面取得了显着的进步。为了减轻高估的PA,我们提出了一个新的PA%K协议,可以应用于现有的指标。最后,我们提出了几个方向,严格评估TAD方法,包括基线选择。我们希望我们的研究有助于澄清目前的TAD方法的潜力,并导致TAD在未来的改进。

8 Acknowledgement

  这项工作得到了韩国政府(MSIT)资助的信息和通信技术规划与评估研究所(IITP)的资助[No.20210-02068,人工智能创新中心,No.20210-01343,人工智能研究生院计划(首尔国立大学)],韩国国家研究基金会(NRF)赠款,由韩国政府资助(科学和信息通信技术部)[2018 R1 A2 B3001628,2019 R1 G1 A1003253],2021年的Brain Korea 21 Plus项目,通过HMC-SNU AI联盟基金在现代汽车公司的AIR实验室(AI研究实验室),以及三星电子
  
  
  
  

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

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

相关文章

同为科技(TOWE)大功率带机械联锁工业插头插座箱

所谓工业机械联锁开关插座&#xff0c;是一种工业用途插座&#xff0c;带有一个旋钮开关&#xff0c;通过旋钮开关可以控制电源的通断。其特点是具有联动锁定机构&#xff0c;当旋钮开关断开操作后&#xff0c;联动锁定机构会自动撤销限位&#xff0c;使插头能够插入或拔出。当…

LVS+keepalive高可用集群

keepalive简介 keepalive为LVS应用延伸的高可用服务。lvs的调度器无法做高可用。但keepalive不是为lvs专门集群服务的&#xff0c;也可以为其他的的代理服务器做高可用。 keepalive在lvs的高可用集群&#xff0c;主调度器和备调度器(可以有多个) 一主两备或一主一备。 VRRP: k…

Mysql视图特性用户管理

目录 一、视图基本使用 二、用户管理 2.1 用户 ①用户信息 ②创建用户 tips:(解决无法创建用户) ③删除用户 ④修改用户密码 2.2数据库的权限 ①给用户授权 ②回收权限 视图&#xff1a;视图是一种虚拟表。视图是基于一个或多个基础表中的数据所创建的一个查询结果…

Simulink 最基础教程(一)

1.1基本概念 一个典型的Simulink模型大致如上图这样&#xff1a; 1&#xff09;模块 block&#xff1a;图中画圈的那些&#xff0c;每个模块可以完成一些特定的任务&#xff0c;类似MATLAB中函数的概念。软件提供了很多模块&#xff0c;当然也可以自定义新的模块 2&#xff0…

百度地图API:JavaScript开源库几何运算判断点是否在多边形内(电子围栏)

百度地图JavaScript开源库&#xff0c;是一套基于百度地图API二次开发的开源的代码库。目前提供多个lib库&#xff0c;帮助开发者快速实现在地图上添加Marker、自定义信息窗口、标注相关开发、区域限制设置、几何运算、实时交通、检索与公交驾车查询、鼠标绘制工具等功能。 判…

Python基础入门例程9-NP9 十六进制数字的大小

目录 描述 输入描述&#xff1a; 输出描述&#xff1a; 示例1 解答&#xff1a; 说明&#xff1a; 描述 计算的世界&#xff0c;除了二进制与十进制&#xff0c;使用最多的就是十六进制了&#xff0c;现在使用input读入一个十六进制的数字&#xff0c;输出它的十进制数字…

vue如何使用冻结对象提升代码效率及其原理解析

先给大家伙整个实际工作中一定会碰到的问题 如下vue dome ,它的代码非常简单功能也1非常简单,就是一个按钮,点击后会显示有多少条数据 来看看源码, html部分就是一个按钮绑定了一个loadData事件,然后在p标签内展示了这个myData这个数据的长度 <template><div id&quo…

java中的异常,以及出现异常后的处理【try,catch,finally】

一、异常概念 异常 &#xff1a;指的是程序在执行过程中&#xff0c;出现的非正常的情况&#xff0c;最终会导致JVM的非正常停止。 注意: 在Java等面向对象的编程语言中&#xff0c;异常本身是一个类&#xff0c;产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的…

编译原理-词法分析器

文章目录 对于词法分析器的要求概念词法分析器的功能和输出形式 词法分析器的设计词法分析器的结构单词符号的识别&#xff1a;超前搜索状态转换图 正规表达式和有限自动机正规式和正规集确定有限自动机&#xff08;DFA&#xff09;非确定有限自动机&#xff08;NFA&#xff09…

ThingsBoard的版本控制整合gitee

1、注册gitee账号,创建自己的空间,并且创建一个用于存储ThingsBoard相关的仓库 2、进入ThingsBoard的租户层,然后找到版本控制,进行配置 输入gitee的仓库地址 仓库URL:指定你的gitee的参考地址 仓库分支:master 身份验证:密码、访问令牌 用户名:登录账号 密码/访问令…

Leetcode 1089. 复写零

复写零 题目链接1089. 复写零 给你一个长度固定的整数数组 arr &#xff0c;请你将该数组中出现的每个零都复写一遍&#xff0c;并将其余的元素向右平移。 注意&#xff1a;请不要在超过该数组长度的位置写入元素。请对输入的数组 就地 进行上述修改&#xff0c;不要从函数返回…

【QT】其他常用控件2

新建项目 lineEdit 什么都不显示&#xff08;linux password&#xff09; password textEdit和plainTextEdit spinBox和doubleSpinBox timeEdit、dateEdit、dateTimeEdit label 显示图案&#xff0c;导入资源&#xff1a;【QT】资源文件导入_复制其他项目中的文件到qt项目中_St…

【proteus】8086 写一个汇编程序并调试

参考书籍&#xff1a;微机原理与接口技术——基于8086和Proteus仿真&#xff08;第3版&#xff09;p103-105&#xff0c;p119-122. 参考程序是p70&#xff0c;例4-1 在上一篇的基础上&#xff1a; 创建项目和汇编文件 写一个汇编程序并编译 双击8086的元件图&#xff1a; …

整理MongoDB文档:身份验证

整理MongoDB文档:身份验证 个人博客&#xff0c;求关注。 文章概叙 本文主要讲MongoDB在单机状态下的账户配置。理解了MongoDB的语法&#xff0c;对于如何配置用户权限会知道怎么配置&#xff0c;但是请注意给谁配置什么权限才是最重要的。 最小权限原则 系统的每个程序或者…

宝塔部署nginx遇到的400错误和502错误

在部署express项目的过程中&#xff0c;由于我的代码有些变化&#xff0c;于是在宝塔面板上我又重新上传了一下我的项目&#xff0c;结果阴差阳错的被nginx反向代理配置不当引起的400错误request header or cokkie is too large和自己代码逻辑问题引起的502 bad gataway给绊倒了…

Springcloud介绍

1.基本介绍 Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发&#xff0c;如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等&#xff0c;都可以用Spring Boot的开发风格做到一键启动和部署。Spring …

springmvc视图格式——模板引擎freemarker输出HTML文本

目录 1. freemarker 介绍创建测试工程2.2.2) 配置文件2.2.3) 创建模型类2.2.4) 创建模板2.2.5) 创建controller2.2.6) 创建启动类2.2.7) 测试 2.3) freemarker基础2.3.1) 基础语法种类2.3.2) 集合指令&#xff08;List和Map&#xff09;2.3.3) if指令2.3.4) 运算符2.3.5) 空值处…

2023了,是时候使用pnpm了!

2023了&#xff0c;是时候使用pnpm了&#xff01; Excerpt 2023了&#xff0c;是时候使用pnpm了&#xff01; 什么是pnpm pnpm代表performant npm&#xff08;高性能的npm&#xff09;&#xff0c;同npm和Yarn&#xff0c;都属于Javascript包管理安装工具&#xff0c;它较npm和…

Arcgis 数据操作

在进行数据操作的时候&#xff0c;需要注意坐标系要一致&#xff0c;这是前提。 数据类型 文件地理数据库&#xff1a;gbd 个人地理数据库&#xff1a;mdb &#xff08;Mircosoft Access&#xff09; 矢量数据&#xff1a;shp 推荐使用gbd数据&#xff0c;效率会更高。 采…

“第六届世界声博会暨2023科大讯飞全球1024开发者节”开幕式回顾及舆情问题

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 2023年10月24日&#xff0c;笔者全程参加了在安徽合肥奥体中心举办的“第六届世界声博会暨2023科大讯飞全球1024开发者节”开幕式主论坛&#xff0c;下面来回顾一下。 一、会议简介 会议主题&#xff1a;“…