微网站建设代理商成都网站开发 Vr

张小明 2026/1/10 3:59:05
微网站建设代理商,成都网站开发 Vr,优化大师会员兑换码,东莞是什么风险等级原文#xff1a;towardsdatascience.com/hands-on-time-series-anomaly-detection-using-autoencoders-with-python-7cd893bbc122 异常时间序列是一个非常严肃的问题。 如果你考虑地震#xff0c;异常是指数据中突然的峰值或下降的地震信号#xff0c;这暗示着可能正在发生…原文towardsdatascience.com/hands-on-time-series-anomaly-detection-using-autoencoders-with-python-7cd893bbc122异常时间序列是一个非常严肃的问题。如果你考虑地震异常是指数据中突然的峰值或下降的地震信号这暗示着可能正在发生不好的事情。在金融数据中每个人都会记得 1929 年的华尔街崩溃那是一个在金融领域具有异常的信号的明显例子。在工程中峰值信号可以代表超声波反射到墙壁或人身上的情况。所有这些故事都源于一个非常明确的问题如果我有一系列正常的信号并且一个新的信号进来了我如何检测这个信号是否异常注意这个问题与检测给定信号中的异常的问题略有不同这也是一个众所周知的问题。在这种情况下我们假设我们得到了一个全新的信号我们想知道这个信号是否与我们的数据集中被认为是“正常”的信号有足够的差异。那么你将如何处理这样的问题呢强大的**神经网络**为我们提供了这个问题的解决方案这个解决方案自 2016 年以来一直存在。实现神经网络本身现在是一个相当简单的事情但理解如何使用神经网络进行异常检测可能会有些棘手。这篇博客文章的目的是引导读者了解使用神经网络进行异常检测的概念将这两个主题结合在一个独特的代码片段中从 A 到 Z。我们还将对合成数据集上的时序进行自己的异常检测案例研究。希望介绍部分足够有趣 。现在让我们开始吧0. 想法一般而言一个好的方法是“假装自己是计算机”。问题是“如果你一个人类来做这个任务你会怎么做”。嗯我们确实有一系列的信号对吧所以可以说我们需要处理信号以找到某种相关的特征并将它们用作参考。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/de7db3077a0d1334cae322b304203b06.png作者制作的照片这是第一步。我们现在有一组参考值。这些参考值将通过简单的比较来确定新的信号是否异常。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/70e23a8799156b8f53a0902493af93de.png作者制作的照片所以它的工作原理是这样的一个新的信号进来了我们提取这个新信号的特征我们比较特征与我们之前从数据库中提取的特征并检查它是否是一个异常。就这么简单。现在真正的正题如下“我们如何处理数据库以及新的信号以提取特征”这确实是使异常检测算法与其他算法不同的地方。不用太多想象力在机器学习中提取特征的模型通常被称为特征提取器。1. 特征提取器现在有许多特征提取器数量众多。我今天想谈论的一个涉及深度学习。深度学习并且一直是科技界的热门话题每个人都谈论它。而且有原因我会这么说。我们在日常新闻中看到的所有令人惊叹的事物由 Meta AI LLAma 驱动的聊天机器人由 Google 驱动的圆形搜索功能Midjourney卓越的“想象”功能都是非常成功深度学习架构的例子。但深度学习可以比这些例子简单得多。甚至一个非常简单的猫/狗图像分类器也可以是一个深度学习算法。一般来说当我们谈论一个以“分层”方式学习的算法时我们指的是深度学习算法这就是为什么它被称为深度它允许你自行提取特征绕过手动特征工程步骤。例如如果我们区分猫和狗的图像也许第一层会得到非常简单的特征如图像的主要颜色随着我们深入到这个兔子洞最后一层会得到非常精细的细节如图像中的爪子。我不想过多地谈论哲学所以我们来谈谈我们的特定深度学习算法它被称为编码器-解码器更具体地说自动编码器。1.1 自动编码器我们的深度学习算法非常特别因为它旨在重建你作为输入的相同对象。就像这样https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/1653e830bada661d89734d9ad289d5f8.png作者制作的照片狗的照片由Caleb Fisher在Unsplash上拍摄现在这看起来有点荒谬对吧为什么需要一个仅训练来复制你所看到内容的机器学习算法呢想象一下 ChatGPT想象一下如果模型只是精确地复制你所写的内容那这有什么帮助呢好吧自编码器的技巧在于它们的架构。自编码器的输入单元数量这些单元不过是值实数与输入大小相同。例如如果狗狗图像是 10×10100 像素输入将是 100 个单元长。输出与输入具有相同数量的单元。然而在中间单元的数量会减少。较少的单元数量被称为“潜在空间”这是有意义特征的空间。您只需要 k100 个单元潜在空间中的一个来重建整个图像因此它们必须是关键的。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/70626ed39341834260292ab6c4f63e6a.png作者使用惊人的NN-SVG工具制作的图像换句话说“隐藏层”或“潜在空间”包含了我们可以用来复制作为输入获得的信号或图像或文本的关键信息。我能从电脑那头听到你在问我“我们为什么需要这个来进行异常检测”好吧这是逻辑如果我训练一个机器学习模型来复制猫的图像这意味着它将能够成功复制猫的图像。但相反的情况也是真实的如果给你另一张图片并且它无法成功复制那么这张图片可能不是猫的图片- 它是一个异常更技术地说如果非异常重建信号的误差平均来说比如说当我们找到异常信号时我们希望得到 0.10 的误差并且由于它是正常误差的 10 倍我们可以自信地称它为异常。我知道这可能会让人困惑但希望当我们用 Python 进行实际操作示例时它将变得更加清晰。让我们开始吧2. 我们的实际操作示例在本节中我们将定义我们需要的Python库构建我们的“正常信号”构建我们的“异常信号”训练我们的自编码器分类异常信号与非异常信号。好的让我们开始吧。2.1 Python 环境我们使用了numpy进行数据处理您也可以使用pandasmatplotlibseaborn来绘制图像tensorflow用于深度学习sklearn用于错误分析。cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F14%26cellId%3D1dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F14%26cellId%3D1imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2F1ad0531fe41145eeb2ebb4ecc5a577df%2Fpreview%2F18f2f805d617496495e0b6900f5339f0%3Fts%3D1723941149428keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian*对于这个非常简单的练习我们不需要对神经网络有太多的控制因为我们将会使用一个非常简单的 1D CNN剧透啦。因此我们可以直接使用tensorflow。如果你是torch的用户也没有问题这种方法同样适用。2.2 数据生成器让我们先描述一下我们将如何设置我们的实验。我们将有一个x的范围它将从-8π到 8π。一个“非异常”信号的构建方式如下https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/1575f1b610ad72f742b8147946642f88.png由作者制作的照片其中A_1、A_2 和 A_3 是三个随信号变化的随机振幅其值可以从-2 到 2 之间取f_1、f_2 和 f_3 是三个随信号变化的随机频率其值可以从-2 到 2 之间取异常信号的构建方式如下https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/21e96cd06ff228a6c23dfbd1a0c06b84.png由作者制作的照片其中一切与正常信号相同但A_anomaly 可以在-5 到-2 之间以及从 2 到 5 之间取值f_anomaly 可以在-10 到-5 之间以及从 5 到 10 之间取值换句话说正常信号是由三个具有随机振幅和随机频率的正弦分量组成的异常信号是由三个具有随机振幅和随机频率的正弦分量组成的并且包含一个具有较大绝对振幅和较大绝对频率的正弦分量这是我们如何在 Python 中实现这个想法cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F14%26cellId%3D2dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F14%26cellId%3D2imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2F1ad0531fe41145eeb2ebb4ecc5a577df%2Fpreview%2F18f2f805d617496495e0b6900f5339f0%3Fts%3D1723941149428keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian上述代码生成了num个正常信号和num个异常信号。我们设置 num1000但您可以根据需要增加或减少它。您还可以将正弦分量的数量从默认的 3 个增加到您想要的任何数量。因此如果我们绘制它们我们可以清楚地看到在幅度和主要是频率方面的差异*cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F14%26cellId%3D3dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F14%26cellId%3D3imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2F1ad0531fe41145eeb2ebb4ecc5a577df%2Fpreview%2F18f2f805d617496495e0b6900f5339f0%3Fts%3D1723941149428keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian2.3 自动编码器在这个项目中我们使用的自动编码器是一个 1D CNN。1D CNN 在信号处理中应用广泛其原理相当简单。有一个小的核向量通过卷积操作在信号上运行。就像在 2D CNN 中一样可以使用多个过滤器来提取信号的有意义特征。例如一个过滤器可以查看最大值一个查看它们的宽度一个查看最小值等等。这就是我们构建自动编码器的方式cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F14%26cellId%3D4dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F14%26cellId%3D4imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2F1ad0531fe41145eeb2ebb4ecc5a577df%2Fpreview%2F18f2f805d617496495e0b6900f5339f0%3Fts%3D1723941149428keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian为了训练我们的模型我们需要重塑我们的向量。我们可以使用以下方法来完成cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F14%26cellId%3D5dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F14%26cellId%3D5imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2F1ad0531fe41145eeb2ebb4ecc5a577df%2Fpreview%2F18f2f805d617496495e0b6900f5339f0%3Fts%3D1723941149428keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian因此现在我们可以用这个来训练我们的模型cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F14%26cellId%3D6dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F14%26cellId%3D6imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2F1ad0531fe41145eeb2ebb4ecc5a577df%2Fpreview%2F18f2f805d617496495e0b6900f5339f0%3Fts%3D1723941149428keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian2.4 异常检测器现在我们有了我们的模型我们可以尝试重建信号。我们将正常信号作为输入并提取我们 MSE 的一些统计数据。例如我们可以考虑 p 0.99 的百分位数值。然后我们将重建我们的异常信号并查看 MSE。如果 MSE 大于 0.99 百分位数值那么我们称之为异常否则我们称之为正常信号。就像这样cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F15%26cellId%3D7dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F15%26cellId%3D7imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2F1ad0531fe41145eeb2ebb4ecc5a577df%2Fpreview%2F18f2f805d617496495e0b6900f5339f0%3Fts%3D1724018516508keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian正如我们所见所有异常都被正确分类为异常并且“代价”仅为 3 个被分类为异常的正常信号在 1000 个信号中。cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F15%26cellId%3D8dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F15%26cellId%3D8imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2F1ad0531fe41145eeb2ebb4ecc5a577df%2Fpreview%2F18f2f805d617496495e0b6900f5339f0%3Fts%3D1724018516508keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian2.5 同时全部完成现在你可能会想正常信号和异常信号确实差异很大因此我们可以例如使它们变得更加相似。我创建了一个函数允许你调节真实信号和异常信号的频率和幅度范围。你只需将它们放入一个像这样的字典中cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F15%26cellId%3D9dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F15%26cellId%3D9imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2F1ad0531fe41145eeb2ebb4ecc5a577df%2Fpreview%2F18f2f805d617496495e0b6900f5339f0%3Fts%3D1724018516508keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian并且执行相同分析的自定义setup_dict边界的整个函数如下cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F15%26cellId%3D10dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F15%26cellId%3D10imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2F1ad0531fe41145eeb2ebb4ecc5a577df%2Fpreview%2F18f2f805d617496495e0b6900f5339f0%3Fts%3D1724018516508keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian您可以像这样运行它cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F15%26cellId%3D11%26hideOutput%3Dtruedntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Fencoder-decoder-ad%2Fv%2F15%26cellId%3D11%26hideOutput%3Dtrueimagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2F1ad0531fe41145eeb2ebb4ecc5a577df%2Fpreview%2F18f2f805d617496495e0b6900f5339f0%3Fts%3D1724018516508keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian在上面的默认 setup_dict 中异常频率和振幅与正常频率非常相似。尽管如此性能非常好https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/33c2742d3f30507ef622b65daa42befa.png由作者使用上述代码制作的照片只有44 个异常没有被检测到只有13 个正常信号被错误地检测为异常。最终当正常频率和异常频率相同或非常相似时当然区分正常和异常信号是不可能的但看到我们如何将我们的自编码器推向区分正常和异常信号的程度是非常有趣的。3. 结论非常感谢您花时间与我交流。在这篇文章中我们做了以下几件事情讨论了异常检测我们描述了异常检测的问题特别是在时间序列的多个场景中如工程、金融和地质学。引入自动编码器我们解释了自动编码器用于异常检测的想法。我们从描述深度学习算法开始讨论了自动编码器并介绍了基于重建误差使用自动编码器进行异常检测的概念。生成合成数据我们构建了正弦波的合成数据集包括有异常和无异常的情况。实现了模型使用一维卷积神经网络CNN构建了自动编码器该编码器被训练以复制正常信号。使其可定制我们证明了我们的方法适用于我们的数据集并创建了一个非常简单的函数允许用户修改正常和合成数据集并与之互动。4. 关于我再次感谢您抽出宝贵时间。这对我们意义重大 ❤我的名字是 Piero Paialunga我就是这里的人https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/0b3f51bd650634b8fe39a633fe6855c9.png由作者制作的照片我是辛辛那提大学航空航天工程系的博士研究生同时也是 Gen Nine 的机器学习工程师。我在博客文章和领英上谈论人工智能和机器学习。如果你喜欢这篇文章并想了解更多关于机器学习的内容以及跟随我的研究你可以A. 在**领英上关注我我在那里发布所有故事。B. 订阅我的通讯。这将让您了解新故事并有机会给我发信息以接收您可能有的所有更正或疑问。C. 成为推荐会员这样您就不会有“每月故事最大数量”的限制您可以阅读我以及成千上万的机器学习和数据科学顶级作家关于最新技术的所有文章。D. 想和我一起工作请查看我的收费和项目在Upwork**如果你想问我问题或开始合作请在这里或**领英**上留言[email protected]
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站开发iis怎么配置阜阳微商城网站建设

基于 SpringBoot Vue 在线考试管理系统介绍 在线考试管理系统是解决传统纸质考试 “组织繁琐、阅卷低效、数据难追踪” 等问题的数字化方案。基于SpringBoot(后端) Vue(前端) 的技术架构,该系统能实现从 “题库管理”…

张小明 2026/1/7 10:42:16 网站建设

用钩针做花网站微信dw软件做的东西怎么在网站用

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

张小明 2026/1/9 11:51:38 网站建设

如何用wordpress建一个网站涿州是住房和城乡建设局网站

摘要 在VUCA时代,企业数字化能力已成为核心竞争力。本文深度解构领码SPARK融合平台如何通过其aPaaS(应用平台即服务)引擎,以独创的“八链三字诀”方法论,系统性解决企业应用构建的全链路挑战。报告揭示该平台如何将低代…

张小明 2026/1/8 1:05:03 网站建设

59zwd一起做网站做网站购买服务器吗

第一章:Docker 与 Vercel AI SDK 的环境变量 在现代全栈应用开发中,Docker 与 Vercel AI SDK 的结合使用越来越普遍。正确配置环境变量是确保应用在不同环境中稳定运行的关键环节。无论是本地开发、CI/CD 流程,还是部署至生产环境&#xff0c…

张小明 2026/1/8 1:05:05 网站建设

昆明网站建设公司如何在八戒网便宜做网站

收藏关注不迷路!!需要的小伙伴可以发链接或者截图给我 项目介绍 本系统共有管理员,用户2个角色,具体功能如下: 1.管理员角色的功能主要包括管理员登录,用户管理,客房类型管理,客房信息管理&…

张小明 2026/1/9 12:58:53 网站建设

天津企业网站策划公司网站开发报价表 excel

在服务器或无界面 Linux 环境中使用 IntelliJ IDEA 一直是个痛点。 借助 Docker linuxserver/intellij-idea 镜像,我们可以非常方便地通过浏览器远程使用 IDEA,实现「即开即用、环境隔离」。 本文将详细介绍如何通过一条 docker run 命令部署 IntelliJ …

张小明 2026/1/8 1:05:04 网站建设