异常检测 and 自编码器(1)


前言

  这里通过自己的学习和理解简单介绍一下自编码器的定义和作用,希望大家可以有所收获~


一、自编码器是什么?

  自编码器(Autoencoder,AE),是一种利用反向传播算法使得输出值等于输入值的神经网络,它先将输入压缩成潜在空间表征,然后通过这种表征来重构输出

  简单来说,就是可以自动实现编码与解码操作过程的网络模型,并且它的输入 x 与标签 y 相同,我们通过最小化标签 y 与输出 r 之间的误差,来优化自编码器模型

因此,自编码器由两部分组成:

  • 编码器:这部分能将输入压缩成潜在空间表征,可以用编码函数 h =f(x)表示。
  • 解码器:这部分能重构来自潜在空间表征的输入,可以用解码函数 r =g(h)表示。

在这里插入图片描述
  整个自编码器可以用函数 g(f(x)) = r 来描述,其中 f 为编码器, g 为译码器,使得输出 r 与原始输入 x 相近。

  自编码器原理和各种变换的原理相似,都是将原始特征空间通过编码映射到一个新的编码空间,再由编码空间通过解码映射到解码空间而当编码变换与解码变换符合某种条件时,解码空间和原始特征空间可以近似一致

  就像大名鼎鼎的傅里叶变换,通过它,可以把原始时域信号变换为频域信号,并且,频域信号可以通过反变换变换为时域信号。之所以要变换为频域信号,是为了获取原始信号在频域上的特征。同样的,对于自编码器的编码变换,也是为了获取不同角度,不同维度的特征(类似于SVM的核函数)。

  按照Hinton的说法,自编码器的隐含层如果只有一层,其原理类似主成分分析(PCA);如果有多个隐含层,每个隐含层都是受限玻尔兹曼机神经网。训练时,相当于先对每两层间进行无监督学习,将整个网络达到理想的初始化分布,最后再通过反向传播算法的有监督学习调整模型权重,这样可以解决网络过深带来的梯度弥散问题。

二、为什么要用输入来重构输出?

  如果自编码器的唯一目的是让输出值等于输入值,那这个算法将毫无用处。事实上,我们希望通过训练输出值等于输入值的自编码器,让潜在表征h将具有价值属性

  这可通过在重构任务中构建约束来实现。

  从自编码器获得有用特征的一种方法是,限制h的维度使其小于输入x,这种情况下称作有损自编码器。通过训练有损表征,使得自编码器能学习到数据中最重要的特征。

  如果自编码器的容量过大,它无需提取关于数据分布的任何有用信息,即可较好地执行重构任务。

  如果潜在表征的维度与输入相同,或是在过完备案例中潜在表征的维度大于输入,上述结果也会出现

  在这些情况下,即使只使用线性编码器和线性解码器,也能很好地利用输入重构输出,且无需了解有关数据分布的任何有用信息。

  在理想情况下,根据要分配的数据复杂度,来准确选择编码器和解码器的编码维数和容量,就可以成功地训练出任何所需的自编码器结构。

  补充:PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。具体内容可看此网址:主成分分析(PCA)原理详解

三、自编码器的作用

  • 数据可视化、降维:使用适当的维度和稀疏性约束,自编码器可以得到比PCA或其他类似技术更好的数据投影;在自编码器中,中间的隐藏表达的维度往往维度比较低,因此可以被用作数据压缩,或者是特征降维。
  • 数据降噪:学习丢失数据特征,进行弥补。
  • 消除工况波动引起的数据分布变化:将特征进行公共区域映射解决领域漂移问题,提升跨工况设备故障诊断的准确率。

  不过自编码器原本不是专门用来做数据压缩的,它的作用就是可以作为很多神经网络的预训练,帮助提高模型的准确率。神经网络模型的训练需要大量具有标签的样本,而这样的数据通常是比较少的,更多的是无标签样本,而自编码器自监督的特性可以充分利用这些无标签样本,提前学习到有用的特征。接下来,把自编码器的编码器接入神经网络,进行训练。

  关于自编码器的更详细的讲解,例如降维与可视化可参考下面第一个网址。


总结

  以上就是此节所有内容,其中参考网址如下:
  神经网络(neural network)的应用——自编码器(Autoencoder)——>数据可视化、降维
  自编码器是什么?有什么用?这里有一份入门指南(附代码)
  降噪自动编码器(Denoising Autoencoder)——>数据降噪

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值