【文章学习系列之模型】DAGMM

news2025/1/23 1:11:25

本章内容

  • 文章概况
  • 模型结构
  • 损失函数
  • 实验结果
  • 实验分析
  • 总结

文章概况

《Deep Autoencoding Gaussian Mixture Model for Unsupervised Anomaly Detection》是2018年发表于ICLR的一篇论文,该论文提出一种端到端的无监督异常检测方法DAGMM,取得了不错的效果。

文章链接
代码链接

模型结构

在这里插入图片描述
深度自编码高斯混合模型(DAGMM)主要由压缩网络和评估网络两大部分组成。

上图左侧橙框,压缩网络通过自编码器对输入样本进行降维,从降维空间和重构误差特征中提取低维表示,并将表示提供给后续的评估网络

上图右侧红框,评估网络获取压缩网络提供的数据,并在高斯混合模型 (GMM) 框架中预测它们的可能性/能量。

压缩网络的特征提包含两个部分:由深度自动编码器学习到的低维特征 Z c Z_c Zc和重构误差得到的低维特征 Z r Z_r Zr,随后 Z c Z_c Zc Z r Z_r Zr组成 Z Z Z,提供给后续的评估网络,并经过多层全连接最终得到模型的输出值 π ^ \hat{π} π^,其中包含了经过 s o f t m a x softmax softmax后的类别概率 γ ^ \hat{γ} γ^

在这里插入图片描述
获得模型的输出结果后,根据上图所示的多元高斯概率密度相关公式和评估能量公式,可以得到当前样本的能量,并通过预先选择的阈值预测高能量样本为异常。

损失函数

在这里插入图片描述
损失函数包含三个部分。

第一个是重构误差。若重构误差较小,则表明低维数据能够保存原始数据的关键信息并进行高效重构。

第二个是样本能量。通过最小化样本能量寻找压缩网络和评估网络的最佳组合。

第三个是正则项。协方差矩阵的每个元素都需要计算期望值,而期望值的计算需要大量的数据,当混合模型的点数不足时,协方差矩阵计算容易出现偏差,出现奇异性问题,因此添加一项正则项,一定程度上减弱奇异性带来的影响。

此外 λ \lambda λ为超参数,用于平衡损失函数的三个部分。

实验结果

作者没有使用预训练的方式对模型进行训练,而是采用端到端的方式训练整个网络,因为预先训练好的压缩网络性能有限,不利于后续评估任务的训练,相反,压缩网络和评估网络的端到端训练可以相互提高性能。
在这里插入图片描述
作者使用多种模型和变体在多种数据集中进行对比,实验表明本文所提方法取得不错的检测效果。

实验分析

在这里插入图片描述
为了测试模型抗污染能力,作者先选取50%的随机样本,再在剩下的样本中选择所有的正常样本和c%的异常样本。正如所料,随着异常样本占比增加,所有方法的检测性能均产生了显著的下降,在5%时,本文所提方法的各项指标依旧保持在0.85左右,远远优于其他方法的所有试验结果。这表明通过端到端训练学习到的DAGMM在公共基准数据集上达到了最先进的精度,并为无监督异常检测提供了一种很有前途的替代方法。

在这里插入图片描述
上图可视化展示了DAGMM更好地将红蓝点进行划分,而其他三种表现类似,蓝红错杂程度更高。

总结

这篇论文的模型结构和训练方式对后来的研究者有着深远的影响,不少异常检测的无监督研究依旧是沿用这一套路线继续探索,并取得了不错的效果。从以下三个方面解决了无监督异常检测方面的挑战。
1.DAGMM在低维空间中保留了输入样本的关键信息,包括降维特征和重构误差特征。
2.DAGMM利用学习到的低维空间上的高斯混合模型(GMM)来处理具有复杂结构的输入数据的密度估计任务。
3.利用端到端的训练方式,DAGMM的估计网络引入的正则化极大地帮助压缩网络中的自动编码器避免陷入局部最优。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3.3 Linux 文件管理

1、查看系统信息 tty 命令 描述:查看当前系统在哪个终端语法:tty Linux默认情况下提供6个虚拟终端来让用户登录,系统将F1~F6定义为tty1~tty6。 ctrlalt(F1~F6) :从图形界面切换到命令行界面的第 n 个虚拟终端(F1 是…

社区牛奶直供站:创新供应链,满足消费者需求

社区牛奶直供站:创新供应链,满足消费者需求 社区牛奶直供站模式彻底改变了传统的多级经销链条和流通加价环节,通过削减中间环节,以相对低价直接供应牛奶给消费者。这样做实现了从奶企源头直接供应到社区家庭的目标,精准…

字符串旋转结果

文章目录 题目解法1解法2 题目 字符串旋转结果 写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1 AABCD和s2 BCDAA,返回1 给定s1abcd和s2ACBD,返回0. AABCD左旋一个字符得到ABCDA AABCD左旋两个字…

人工智能基础_机器学习033_多项式回归升维_多项式回归代码实现_非线性数据预测_升维后的数据对非线性数据预测---人工智能工作笔记0073

然后我们来实际的操作一下看看,多项式升维的作用,其实就是为了,来对,非线性的数据进行拟合. 我们直接看代码 import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression X=np.linspace(-1,11,num=100) 从-1到11中获取100个数…

No203.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

fileread任意文件读取学习笔记

任意文件读取概述 一些网站的需求,可能会提供文件查看与下载的功能。如果对用户查看或下载的文件没有限制或者限制绕过,就可以查看或下载任意文件。这些文件可以是源代码文件,配置文件,敏感文件等等。 任意文件读取会造成&#x…

深入理解JVM虚拟机第二十五篇:详解JVM方法的绑定机制静态绑定和动态绑定,早期绑定晚期绑定,并编写代码从字节码角度证明这件事情

大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻J…

电脑屏幕标记软件——Pointofix

前言 Pointofix是一款由德国人开发的屏幕标记软件,德国人的工匠精神,是出了名的,德国人开发的软件也一样。 Pointofix体积非常小巧,安装包只有1MB大小,使用Pointofix可以直接在屏幕上面写字、画图、标重点。 下面介…

基于单片机的电源切换控制器设计(论文+源码)

1.系统设计 在基于单片机的电源切换控制器设计中,系统功能设计如下: (1)实现电源的电压检测; (2)如果电压太高,通过蜂鸣器进行报警提示,继电器进行切换,使…

【Java 进阶篇】JQuery DOM操作:CRUD操作的前端魔法

在前端开发的舞台上,CRUD(Create, Read, Update, Delete)操作是一种极为重要的技能,它涉及对页面元素的增删改查。而JQuery,这位前端开发的魔法师,为我们提供了便捷而强大的方法,使得CRUD操作变…

Winform / WPF 自定义控件 —— IPV4 地址输入框

在开始阅读本文之前,如果您有学习创建自定义控件库并在其他项目中引用的需求,请参考:在Visual Studio中创建自定义Winform控件库并在其他解决方案中引用https://blog.csdn.net/YMGogre/article/details/126508042 0、引言 Winform / WPF 框架…

视频推拉流EasyDSS直播点播平台获取指定时间快照的实现方法

视频推拉流直播点播系统EasyDSS平台,可提供流畅的视频直播、点播、视频推拉流、转码、管理、分发、录像、检索、时移回看等功能,可兼容多操作系统,在直播点播领域具有广泛的场景应用。为了便于用户集成、调用与二次开发。 今天我们来介绍下在…

Telnet 测试 UDP 端口?

Telnet 并不支持 UDP 端口的测试,可以使用 nc 命令来进行测试。nc 命令两种都支持: TCP # nc -z -v -u [hostname/IP address] [port number] # nc -z -v 192.168.10.12 22 Connection to 192.118.20.95 22 port [tcp/ssh] succeeded! UDP # nc -z -v…

算法通关村第十六关青铜挑战——原来滑动窗口如此简单!

大家好,我是怒码少年小码。 从本篇开始,我们就要开始算法的新篇章了——四大思想:滑动窗口、贪心、回溯、动态规划。现在,向我们迎面走来的是——滑动窗口思想!😝 滑动窗口思想 概念 在数组双指针里&am…

Python机器学习、深度学习提升气象、海洋、水文领域实践应用

Python是功能强大、免费、开源,实现面向对象的编程语言,能够在不同操作系统和平台使用,简洁的语法和解释性语言使其成为理想的脚本语言。除了标准库,还有丰富的第三方库,Python在数据处理、科学计算、数学建模、数据挖…

Live800:金牌客服常用的6大提问技巧

在客服行业,提问技巧是非常重要的一项技能。好的提问技巧不仅能够帮助客服人员更好地了解客户需求,还能够提高客户满意度和忠诚度。以下是金牌客服常用的6大提问技巧,希望能够对客服人员提升工作效率有所帮助。 1、开放性问题 开放性问题是指…

实现线程的多种方式锁的介绍ThreadLocal线程池 详细总结(上)

1、介绍 1. 线程回顾 2. 各种所的认识 3. JUC 并发库 4. ThreadLocal 5. 线程池 2、线程回顾 进程: 进程是资源( CPU 、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系 统就会创建一个进程,并为…

图论17-有向图的强联通分量-Kosaraju算法

文章目录 1 概念2 Kosaraju算法2.1 在图类中设计反图2.2 强连通分量的判断和普通联通分量的区别2.3 代码实现 1 概念 2 Kosaraju算法 对原图的反图进行DFS的后序遍历。 2.1 在图类中设计反图 // 重写图的构造函数public Graph(TreeSet<Integer>[] adj, boolean dire…

JVM虚拟机:垃圾回收器之G1

本文重点 在前面的课程中我们介绍了六个垃圾回收器,分别是新生代的三个以及老年代的三个,本文我们将介绍一个垃圾回收器,它既可以用于新生代又可以用于老年代,这个垃圾回收器就是G1。 G1垃圾回收器的特点 G1是一种服务器端的并发收集垃圾回收器,应用在多处理器和大容量…

Zookeeper 命令使用和数据说明

文章目录 一、概述二、命令使用2.1 登录 ZooKeeper2.2 ls 命令&#xff0c;查看目录树&#xff08;节点&#xff09;2.3 create 命令&#xff0c;创建节点2.4 delete 命令&#xff0c;删除节点2.5 set 命令&#xff0c;设置节点数据2.6 get 命令&#xff0c;获取节点数据 三、数…