关于异常:MaxCompute中如何处理异常字符

背景在解决数据时,当业务数据同步至MaxCompute后,会产生一些含异样字符的脏数据,比方字段中蕴含了一个不可见字符,在DataWorks中显示不进去,但在BI界面又会显示成其余字符,影响整体观感。这种状况,通常咱们的解法是,将异样的字符洗掉,上面来介绍几种常见的解决异样字符的办法。 问题形容定位如下图,能够看到“异样name”和“失常name”的 length值 不同,多了个不可见字符,然而咱们并不能看进去啥。前期做数据处理或数据展现可能成为一个难以定位的问题。 残缺内容请点击下方链接查看: https://developer.aliyun.com/article/1155505?utm_content=g_10... 版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。

July 11, 2023 · 1 min · jiezi

关于异常:带你读论文丨异常检测算法及发展趋势分析

摘要:本文依据对现有基于深度学习的异样检测算法的调研,介绍现有的深度异样检测算法,并对深度异样检测算法的将来发展趋势进行大抵的预测。本文分享自华为云社区《【论文浏览】异样检测算法及发展趋势剖析》,原文作者:MUR11。 异样检测问题是很多理论利用场景中的一个重要问题。本文依据对现有基于深度学习的异样检测算法的调研,介绍现有的深度异样检测算法,并对深度异样检测算法的将来发展趋势进行大抵的预测。 一、异样检测利用场景异样检测在理论生产生存中有大量的利用。例如:从信用卡交易记录中找出潜在的盗刷或套现记录、在交通监控视频中找出守法的交通参与者、在医学影像中找出病变的组织、在网络中找出找出入侵者、从物联网传输的信号中找出异样传输等。 以后大部分异样检测场景高度依赖人工,对于人力有大量的需要。将来随着老龄化加剧、工作人口减少,应用算法代替人工进行异样是大势所趋。 二、常见异样类型常见的异样类型能够分为三类: 点异样:单个样本/采样点显著偏离其余所有样本/采样点的散布。例如:在信用卡交易记录中,如果一个用户日常的交易都是小额交易,忽然呈现的一笔大额交易就是一个点异样。条件异样:单个样本/采样点与其余一些条件的联结散布显著偏离其余样本/采样点的状况,称为条件异样。例如:某地一年内的气温变动范畴为-10度到40度,失常状况下每日气温应该在上述范畴内。然而如果冬季的某一天温度达到-5度,尽管当天温度仍在失常范畴内,然而联合节令来看则是一个显著的异样,这类异样属于条件异样。群体异样:单个样本/采样点失常,然而大量样本/采样点整体呈现出异样。例如:仍以信用卡交易记录为例,如果一个用户日常的交易都是小额交易,某一天忽然呈现了10笔小额交易,且每笔交易的金额雷同,尽管从每笔交易来看都合乎用户的应用习惯,然而这10笔交易联合在一起看却存在异样,该类异样属于群体异样。上述三类异样中,条件异样通过肯定的转换后等价于点异样,因而实际上常见的异样类型只有点异样、群体异样两种。以后业界的钻研和利用次要集中在点异样的检测上,下文也将重点介绍点异样的检测算法。 三、异样检测算法以后支流的异样检测算法通常基于深度学习技术,依照应用的监督信息能够分为有监督办法、无监督办法、半监督办法。此外,也有一些将深度学习技术和传统的非深度学习技术联合在一起的异样检测算法。上面对这几类办法别离开展介绍。 3.1深度有监督办法深度有监督学习是目前深度学习钻研最充沛、利用最宽泛的一类办法。利用这类办法进行异样检测时,包含数据收集、模型训练、模型推理三个阶段: 数据收集:收集失常样本、异样样本,并对样本进行标注;模型训练:应用标注好的样本训练模型,以基于图像的异样检测为例,常见的模型包含图像分类模型(判断样本是否异样)、指标检测模型(大抵定位图像中异样的地位)、语义宰割模型(精确定位图中异样的区域);模型推理:将待剖析的样本喂给模型,模型通过运算后,输入后果。这类办法的长处是实现简略、精度高,毛病是须要收集大量的失常样本和异样样本并进行标注。理论中,异样样本往往是很稀缺的,通常难以收集足够数量的异样样本来训练模型,因而也就无奈利用深度有监督异样检测办法。 3.2 深度无监督办法为了更好地应答理论利用中难以收集到足够数量的异样样本的状况,深度无监督异样检测办法通过建模失常样本,来间接地实现异样检测的性能。具体来说,深度无监督异样检测的步骤如下: 数据收集:收集大量失常样本;模型训练:通过训练模型建模失常样本,罕用的模型包含自编码器、生成反抗网络等;模型推理:将待剖析的样本喂给模型,失去模型的输入;比对:通过比看待剖析的样本和模型的输入之间的差别,基于当时设定的阈值判断是否存在异样。该类办法是目前应用深度学习技术进行异样检测的支流办法,其中具备代表性的两类模型别离是自编码器和生成反抗网络。 3.2.1 自编码器仍以图像异样检测工作为例。应用自编码器模型检测图像中的异样时,流程如下: 数据收集:收集大量失常的图片;模型训练:模型构造如下图所示 [1]。训练时,模型的输出是失常的图片;训练的指标是使模型的输入与输出尽可能雷同,罕用的掂量指标包含像素级的L2损失、L1损失、SSIM损失等。这类办法的假如是:因为训练过程中模型只见过失常图片,因而无论输出什么样的图片,模型都会偏向于将输出图片重构为失常图片,因而异样图片的重构后果会和输出图片之间存在显著的差别;模型推理:以待剖析的图片作为模型的输出,模型通过运算后,输入一张通过模型重构的图像;比对:通过判断输出图像和输入图像之间的像素级重构误差(个别通过L2损失或SSIM损失计算失去),通过将重构误差的值和当时设定的阈值进行比拟,如果重构误差的值小于阈值,则断定不存在异样,否则认为图像中存在异样。3.2.2 生成反抗网络应用生成反抗网络模型检测图像中的异样时,流程如下: 数据收集:收集大量失常的图片;模型训练:模型构造如下图所示 [2]。训练时,模型的输出是失常的图片,训练的指标是使模型生成的图片和实在的失常图片具备雷同的散布。该训练过程通过生成器和判断器两个子模型独特实现,其中判断器的指标是尽量辨别出哪些图片是模型生成的,哪些是实在的;而生成器的指标是尽量生成真切的图片,让判断器无奈辨别;模型推理:通过特定的操作步骤,使生成器生成出和待剖析图片尽可能类似的图片。例如:通过梯度反传的办法,迭代更新生成器的输出变量z,直到z通过生成器生成的输入和待剖析的图像之间的类似度达到最大为止;比对:通过判断待剖析的图像和生成的图像之间的像素级差别(个别通过L2损失或SSIM损失计算失去),通过将差别的值和当时设定的阈值进行比拟,如果差别的值小于阈值,则断定不存在异样,否则认为图像中存在异样。3.2.3 小结以上两个大节简略介绍了两种典型的深度无监督异样检测算法的实现步骤。从上述步骤能够看出,无监督异样检测算法通常是通过计算重构或生成的图像与理论图像之间的差别来判断是否存在故障。这种办法尽管不须要异样样本,更适宜理论场景,然而毛病也比拟显著——抗噪声烦扰的能力比拟差。因为像素级的差别不肯定是理论的故障造成的,也有可能是污渍等无关痛痒的烦扰造成的,而深度无监督异样检测算法无奈辨别这些不同的差别,因而在理论利用中,深度无监督异样检测算法的误报通常较多。 3.3 深度半监督办法理论中有时也能收集到大量的异样样本,为了尽可能充沛地利用这些异样样本晋升异样检测算法的精度,学术界提出了一类深度半监督异样检测算法,该类算法的次要步骤如下: 数据收集:收集大量的图片,其中既蕴含失常图片,也蕴含异样图片;模型训练:模型构造如下图所示 [3]。训练时,模型并不知道哪些是失常图片,哪些是异样图片,因而并不是通过有监督的形式进行辨认,而是将传统非深度的One-class SVM的损失迁徙到了深度学习模型中;模型推理:将待剖析的图片喂给模型,模型通过一系列运算后,失去一个数值作为输入,通过将该输入值与事后设置的阈值进行比拟,如果输入值大于阈值则断定为异样,否则断定为失常。该类办法的长处是数据收集简略,并且能够端到端的进行示意学习和分类器的学习,然而往往训练过程中须要尝试大量的参数,训练耗时较长。 3.4 深度-非深度混合办法除上述齐全基于深度学习的异样检测算法外,近年来也有一些将深度学习和传统的非深度异样检测办法联合在一起的办法,如下图所示。这类办法中,深度学习模型仅作为特征提取器,而外围的辨认异样的性能由传统异样检测算法实现。 这类办法的长处是能够灵便组合不同的深度学习模型和非深度的异样检测算法,毛病是特色示意学习的过程和断定的过程割裂开了,导致断定的过程不能副作用于特色示意学习的过程,深度学习模型提取的特色不肯定可能表征出异样,也不肯定可能和后续的异样检测算法相匹配。 四、发展趋势本节联合前文内容,对异样检测畛域中几个有价值的钻研场景进行总结,并对将来的钻研趋势进行大抵的预测: 深度有监督办法:以后深度有监督异样检测算法的精度尽管很高,然而因为这类办法高度依赖于大量有标注的失常样本和异样样本,因而在理论中很难找到可能利用的场景。如果想要扩充适用范围,将来如何在小样本条件下,失去泛化性能强的模型,是这类办法须要冲破的重点和难点。深度无监督办法:以后深度无监督异样检测算法对于数据的要求较低,适用范围也较大,然而因为这类办法抗干扰能力较差,理论中误报数量往往较多,影响了理论应用时的用户感触。因而,如何进一步建模噪声烦扰或克制噪声烦扰,是这类办法将来钻研的重点。群体异样检测:群体异样检测是近年来刚刚衰亡的钻研方向,目前还处于起步阶段,将来的钻研方向、办法依然存在很大的不确定性,然而该方向无望成为将来的热点钻研方向之一。参考文献[1] Paul Bergmann, Sindy Loewe, Michael Fauser, David Sattlegger, Carsten Steger. Improving Unsupervised Defect Segmentation by Applying Structural Similarity To Autoencoders. arXiv 2019. [2] Thomas Schlegl, Philipp Seeböck, Sebastian M. Waldstein, Ursula Schmidt-Erfurth, Georg Langs. Unsupervised Anomaly Detection with Generative Adversarial Networks to Guide Marker Discovery. arXiv 2017. ...

May 31, 2021 · 1 min · jiezi

关于异常:几种分布式下的错误处理方式

Failover(故障转移/故障切换)即当流动的服务或利用意外终止时,疾速启用冗余或备用的服务器、零碎、硬件或者网络接替它们工作。比方一个负载均衡器下挂的多台服务,产生申请是如果一个后端服务挂了,负载均衡器能够主动切换到另一个 Failback(故障复原)故障复原是指,当服务呈现故障后,还能够复原到故障之前的状态。 比方一个合格的数据库系统,在I/O操作执行一半后(比方写数据+写索引两个文件)产生异样宕机,重启后也不会产生数据错乱 或者近程调用时,如果本次调用失败,能够思考稍后再重试 Fail-fast(early)(疾速失败/提前失败)大多状况下,程序宕机或者解体的影响并没有那么大,因为解体或谬误数据造成的一系列问题才是最致命的,比方各种费用计算错误等。 Fail-fast就是让程序提前解决失败,如果检测到会呈现谬误,让程序立即产生故障/异样,而不是让程序持续运行造成更重大的结果 校验前置就是一个很根本的Fail-fast解决策略,数据校验不通过时间接抛出谬误,不继续执行。比方Java里的ConcurrentModificationException异样,就算是一个Fail-fast解决,当检测到数据并并行批改时,不解决数据间接抛出异样完结操作,这样就保障了数据的平安,尽管操作被终止了。 Fail-safe(平安失败)平安失败是指当一个服务或软件出现异常时,也不会对使用者和服务本身造成更大的影响(或者将影响最小化)。 比方在近程调用中,当外部有异样时,最好是外部将异样消化了同时返回平安数据给调用方(比方空数据),同时记录错误信息,或敌对的返回给调用者 平安失败有时也叫防呆设计,比方CPU装置时的卡槽,如果没有对准的话是装不进去的,避免因为方向弄错而损坏CPU

January 18, 2021 · 1 min · jiezi