自动编码器

深度学习常用方法

吃可爱长大的小学妹 提交于 2020-03-31 05:18:56
Deep Learning的常用模型或者方法   1、AutoEncoder自动编码器 Deep Learning最简单的一种方法是利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层次结构的系统,如果给定一个神经网络,我们假设其输出与输入是相同的,然后训练调整其参数,得到每一层中的权重。自然地,我们就得到了输入I的几种不同表示(每一层代表一种表示),这些表示就是特征。自动编码器就是一种尽可能复现输入信号的神经网络。为了实现这种复现,自动编码器就必须捕捉可以代表输入数据的最重要的因素,就像PCA那样,找到可以代表原信息的主要成分。 具体过程简单的说明如下:   1)给定无标签数据,用非监督学习学习特征:            在我们之前的神经网络中,如第一个图,我们输入的样本是有标签的,即(input, target),这样我们根据当前输出和target(label)之间的差去改变前面各层的参数,直到收敛。但现在我们只有无标签数据,也就是右边的图。那么这个误差怎么得到呢?          如上图,我们将input输入一个encoder编码器,就会得到一个code,这个code也就是输入的一个表示,那么我们怎么知道这个code表示的就是input呢?我们加一个decoder解码器,这时候decoder就会输出一个信息

自动编码器

耗尽温柔 提交于 2020-01-27 00:54:47
自动编码器基本概念 自动编码器(AutoEncoder)是神经网络的一种,一般来讲自动编码器包括两部分:编码器和解码器,编码器和解码器相互串联合作,实现数据的降维或特征学习,现在也广泛用于生成模型中. 在深度学习中,autoencoder可用于在训练阶段开始前,确定权重矩阵的初始值. 左侧为encoder,右侧为decoder.可以看出最简单的自动编码器只有三层,输入层+隐藏层x1+输出层. 自动编码器神经网络是一种无监督机器学习算法,其应用了反向传播,可将目标值设置成与输入值相等。自动编码器的训练目标是将输入复制到输出。在内部,它有一个描述用于表征其输入的代码的隐藏层。 自动编码器可以用一个公式简单的表示: f(x) = x 从这里也可以看出来自编码器的作用就是用来进行数据降维和特征学习. ****自动编码器的局限**** 从上面来看,仅仅经过了20轮训练就可以达到一个不错的可视化效果,但是实际上自动编码器还是有很大的局限性的. 自动编码器依据特定的样本进行训练,因此其适用性很大程度上被局限于与训练样本相似的数据; 自动编码器很容易过拟合,即最终简单的将样本数据投射回去,这就需要结合深度学习中的各种方法来防止过拟合的产生 (1)给定无标签数据,用非监督学习学习特征: 在我们之前的神经网络中,如第一个图,我们输入的样本是有标签的,即(input, target)

稀疏自动编码之自动编码器和稀疏性

心已入冬 提交于 2019-12-27 17:31:58
到目前为止,已经叙述了神经网络的监督学习,即学习的样本都是有标签的。现在假设我们有一个没有标签的训练集 ,其中 . 自动编码器就是一个运用了反向传播进行无监督学习的神经网络,学习的目的就是为了让输出值和输入值相等,即 .下面就是一个自动编码器: 自动编码器试图学习一个函数 . 换句话说,它试图逼近一个等式函数,使得该函数的输出 和输入 很近似。举一个具体的例子,假设输入 是来自一个 图像(共100个像素点)像素点的灰度值,在 层有 个隐层节点. 注意输出 . 由于隐层节点只有50个,所以网络必须学习出输入的压缩表示,即给出以隐层节点激活值作为元素的向量 ,它需要重构出100个像素点灰度值的输入 . 如果输入是完全随机的,那么这种压缩学习的任务将会很难,但是数据具有一定的结构,例如一些输入特征彼此关联,那么这个算法就可以发现这些关联关系。事实上,自动编码器往往最终就是学习出一个较低维度的表示。 我们认为,上面讨论是依赖于隐层节点数很少。但是,即使隐层节点数很多(也许比输入的像素点个数还多),通过对网络加上某些约束,我们仍然能够发现感兴趣的结构。特别是,对隐层节点加上 稀疏约束 。 简答来说,如果一个神经元的输出为1,我们认为这个神经元是被激活的,如果某个神经元的输出是0,就认为这个神经元是抑制的。我们想约束神经元,使得神经元在大多数时候是处于抑制状态。假设激活函数是sigmoid函数

变分自动编码器(VAE)

做~自己de王妃 提交于 2019-12-18 06:12:33
VAE(Variational Autoencoder)的原理 Kingma, Diederik P., and Max Welling. "Auto-encoding variational bayes." arXiv preprint arXiv:1312.6114 (2013). 论文的理论推导见:https://zhuanlan.zhihu.com/p/25401928 中文翻译为:变分自动编码器 转自:http://kvfrans.com/variational-autoencoders-explained/ 下面是VAE的直观解释,不需要太多的数学知识。 什么是变分自动编码器? 为了理解VAE,我们首先从最简单的网络说起,然后再一步一步添加额外的部分。 一个描述神经网络的常见方法是近似一些我们想建模的函数。然而神经网络也可以被看做是携带信息的数据结构。 假如我们有一个带有解卷积层的网络,我们设置输入为值全为1的向量,输出为一张图像。然后,我们可以训练这个网络去减小重构图像和原始图像的平均平方误差。那么训练完后,这个图像的信息就被保留在了网络的参数中。 现在,我们尝试使用更多的图片。这次我们用one-hot向量而不是全1向量。我们用[1, 0, 0, 0]代表猫,用[0, 1, 0, 0]代表狗。虽然这要没什么问题,但是我们最多只能储存4张图片。当然

基于变分自编码器(VAE)利用重建概率的异常检测

﹥>﹥吖頭↗ 提交于 2019-11-27 06:17:13
本文为博主翻译自:Jinwon的Variational Autoencoder based Anomaly Detection using Reconstruction Probability,如侵立删 http://dm.snu.ac.kr/static/docs/TR/SNUDM-TR-2015-03.pdf 摘要 我们提出了一种利用变分自动编码器重构概率的异常检测方法。重建概率是一种考虑变量分布变异性的概率度量。重建概率具有一定的理论背景,使其比重建误差更具有原则性和客观性,而重建误差是自动编码器(AE)和基于主成分(PCA)的异常检测方法所采用的。实验结果表明,所提出的方法形成了基于自动编码器的方法和基于主成分的方法。利用变分自动编码器的生成特性,可以推导出数据重构,分析异常的根本原因。 1 简介 异常或异常值是与剩余数据显着不同的数据点。 霍金斯将异常定义为一种观察结果,它与其他观察结果有很大的偏差,从而引起人们怀疑它是由不同的机制产生的[5]。 分析和检测异常非常重要,因为它揭示了有关数据生成过程特征的有用信息。 异常检测应用于网络入侵检测,信用卡欺诈检测,传感器网络故障检测,医疗诊断等众多领域[3]。 在许多异常检测方法中,光谱异常检测技术试图找到原始数据的低维嵌入,其中异常和正常数据预期彼此分离。 在找到那些较低维度的嵌入之后,它们被带回原始数据空间