自编码器AutoEncoder解决异常检测问题

  • 一、 自编码器(Auto-Encoder)介绍
    • 1. AE算法的原理
    • 2. AE算法的作用
    • 3. AE算法的优缺点
  • 二、 自编码器AutoEncoder解决异常检测问题(手把手写代码)
    • 1. 关于数据集准备
    • 2. 数据预处理
    • 3. 建立自编码模型
    • 4. 训练模型
    • 5. 查看模型的“认知水平”
    • 6. 对测试集进行异常诊断
    • 7. 测试
    • 8. 完整代码
    • 9. 总结
  • 三、 附录
    • 1. 关于 `os.path.join()`
    • 2. 关于 sns.set (Seaborn 绘图风格设置)
    • 3. 关于 `preprocessing.MinMaxScaler`
    • 4. `StandardScaler`类中`transform`和`fit_transform`方法有什么区别?
    • 5. Keras kernel_initializer 权重初始化的方法
    • 6. Keras的正则化Regularizers
    • 7. 关于 `model.fit()`
    • 8. 关于 `KL散度(KL Divergence)`

一、 自编码器(Auto-Encoder)介绍

1. AE算法的原理

Auto-Encoder,中文称作自编码器,是一种无监督式学习模型。它基于反向传播算法与最优化方法(如梯度下降法),利用输入数据 XXX 本身作为监督,来指导神经网络尝试学习一个映射关系,从而得到一个重构输出 XRX^RXR 。在时间序列异常检测场景下,异常对于正常来说是少数,所以我们认为,如果使用自编码器重构出来的输出 XRX^RXR 跟原始输入的差异超出一定阈值(threshold)的话,原始时间序列即存在了异常。

通过算法模型包含两个主要的部分:Encoder(编码器)和Decoder(解码器)

编码器的作用是把高维输入 XXX 编码成低维的隐变量 hhh 从而强迫神经网络学习最有信息量的特征;解码器的作用是把隐藏层的隐变量 hhh 还原到初始维度,最好的状态就是解码器的输出能够完美地或者近似恢复出原来的输入, 即 XRX^RXR ≈X≈X≈X .

如图所示,

(1)从输入层 ->隐藏层的原始数据X的编码过程:
h=gθ1(x)=σ(W1x+b1)h=g\theta _1(x)=\sigma (W_1x+b_1)h=gθ1​(x)=σ(W1​x+b1​)

(2)从隐藏层 -> 输出层的解码过程:
x^=gθ2(h)=σ(W2x+b2)\hat{x} =g\theta _2(h)=\sigma (W_2x+b_2)x^=gθ2​(h)=σ(W2​x+b2​)

那么算法的优化目标函数就写为:MinimizeLoss=dist(X,XR)MinimizeLoss=dist(X,X^R)MinimizeLoss=dist(X,XR)
其中 distdistdist 为二者的距离度量函数,通常用 MSE(均方方差)

2. AE算法的作用

自编码可以实现类似于 PCA 等数据降维、数据压缩的特性。从上面自编码的网络结构图,如果输入层神经元的个数 n 大于隐层神经元个数 m,那么我们就相当于把数据从 n 维降到了 m 维;然后我们利用这 m 维的特征向量,进行重构原始的数据。这个跟 PCA 降维一模一样,只不过 PCA 是通过求解特征向量,进行降维,是一种线性的降维方式,而自编码是一种非线性降维。自编码器常用于异常检测和状态检测。

3. AE算法的优缺点

优点:泛化性强,无监督不需要数据标注

缺点:针对异常识别场景,训练数据需要为正常数据。

二、 自编码器AutoEncoder解决异常检测问题(手把手写代码)

1. 关于数据集准备

从NASA声学和振动数据库下载数据集。
点击直达

自编码器AutoEncoder解决异常检测问题相关推荐

  1. 应用高斯分布来解决异常检测问题(一)

    应用高斯分布来解决异常检测问题(一) 参考文章: (1)应用高斯分布来解决异常检测问题(一) (2)https://www.cnblogs.com/activeshj/p/3954213.html 备 ...

  2. 使用AutoEncoder进行异常检测

    文章目录 What is anomaly detection? Autoencoder Introduction Applications of Autoencoders Example Code 1 ...

  3. 14种异常检测方法汇总

    今天给大家分享一篇关于异常检测的文章,重点介绍了14种公开网络上一些常见的异常检测方法(附资料来源和代码). 一.基于分布的方法 1. 3sigma 基于正态分布,3sigma准则认为超过3sigma ...

  4. 异常检测方法梳理,看这篇就够了!

    本文收集整理了网络上一些常见的异常检测方法(附资料来源和代码),可以说是非常全面了,内容有点长,不着急,先收藏起来,每天学习一点点就是领先的开始. 一.基于分布的方法 1. 3sigma 基于正态分布 ...

  5. 【机器学习】异常检测

    前言 异常检测实际案例:网络安全中的攻击检测,金融交易欺诈检测,疾病侦测,和噪声数据过滤等.时间序列的异常又分为点异常和模式异常. 对于一个新观测值进行判断: 离群点检测: 训练数据包含离群点,即远离 ...

  6. 14种异常检测方法汇总(附代码)!

    公众号:尤而小屋 作者:Ai 编辑:Peter 今天给大家分享一篇关于异常检测的文章,重点介绍了14种公开网络上一些常见的异常检测方法(附资料来源和代码). 一.基于分布的方法 1. 3sigma 基 ...

  7. 14种异常检测方法理论和代码总结

    作者丨Ai 来源丨宅码 编辑丨极市平台 导读 本文收集整理了公开网络上一些常见的异常检测方法(附资料来源和代码). 本文收集整理了公开网络上一些常见的异常检测方法(附资料来源和代码).不足之处,还望批 ...

  8. 14种异常检测方法总结

    作者丨Ai 来源丨宅码 编辑丨极市平台 本文收集整理了公开网络上一些常见的异常检测方法(附资料来源和代码).不足之处,还望批评指正. 一.基于分布的方法 1. 3sigma 基于正态分布,3sigma ...

  9. 不用再找了,这就是全网最全的异常检测方法总结

    大家好,今天正好趁着周末,收集整理全网最常使用的异常检测方法(附资料来源和代码),喜欢记得收藏.点赞.关注. 注:技术交流文末获取 一.基于分布的方法 1. 3sigma 基于正态分布,3sigma准 ...

最新文章

  1. $.ajax json 在本地正常 上传服务器不正常
  2. Java语言实现插值查找
  3. Mysql 连接的使用
  4. 简单选择排序验证性实验
  5. 爬虫里的多线程基本使用
  6. 长辈退休金很高是什么体验?
  7. PyTorch:可视化TensorBoard
  8. 批量输出lib文件名(PCL或者opencv等环境配置)
  9. C语言 | 延时函数(Delay)
  10. 熊猫关键词工具v2.8.1.0绿色版SEO工具
  11. vivado版本升级导致的IP锁定的更新解决办法
  12. 蓝牙定位在各行业领域中的应用及蓝牙定位原理浅析-新导智能
  13. 8.13.2020 excel表格筛选按钮位置设置
  14. 毕业设计c语言课程设计,毕业设计_c语言_课程设计.doc
  15. python pandas excle 把两列合并新的一列
  16. NLP经典论文:Sequence to Sequence、Encoder-Decoder 、GRU 笔记
  17. 多边形偏移算法c语言,多边形的偏移填充算法
  18. 交规考试通过,庆祝一下
  19. 筛选状态下进行复制粘贴为数值
  20. hadoop与传统数据库的区别

热门文章

  1. linux etc passwd权限,Linux中/etc/passwd配置文件详解
  2. python学习笔记29(利用pycharm在windows下出现闪退以及turtle 入门)
  3. xp电脑如何链接无线网络连接服务器,台式xp电脑wifi受限怎么解决 xp系统台式机网络提示连接受限的解决办法...
  4. windows pip 安装 whl文件
  5. 黄石理工学院计算机c语言3 2考试,黄石理工学院《C语言程序设计》试卷2及答案.doc...
  6. 10进制转2进制,前面补0
  7. 修改wifi密码 及168.192.1.1登录
  8. 女生转行互联网怎样拿高薪?南京校区小姐姐给出答案,软件测试16k成功上岸!
  9. RFID破解三两事(原作者:YunFree)
  10. Java数组(二维数组)