参考:https://www.cnblogs.com/royhoo/p/Autoencoders.html。https://blog.csdn.net/qq_39521554/article/details/80697882。
1、自编码器通过学习,将输入复制到输出来工作。自编码器的输入神经元和输出神经元个数相等。
2、自编码器是一种能够通过无监督学习,学到输入数据的高效表示的人工神经网络。输入数据的这一高效表示成为编码,其维度一般远小于输入数据,使得自编码器可以用于降维。更重要的是,自编码器可作为强大的特征检测器,应用于深度神经网络的预训练。此外,自编码器还可以随机生成与训练数据类似的数据,这被称作生成器(generative model),比如可以用人脸图片训练一个自编码器,他可以用于生成新的图片。
3、神经网络中的权重矩阵可以看作是对输入的数据进行特征转换,即先将数据编码为另一种形式,然后在此基础上进行一系列学习。然而,在对权重进行初始化时,我们并不知道初始的权重值在训练时会起到怎样的作用,也不知道训练过程中权重会怎样变化。因此,一种较好的思路是利用初始化生成的权重矩阵进行编码时,我们希望编码后的数据能够较好的保留原始数据的主要特征。那么,如何衡量编码后的数据是否保留了较完整的信息呢?答案是:如果编码后的数据能够较为容易的通过解码恢复成原始数据,则认为较好的保留了数据信息。
4、不完备线性自编码器
5、栈式自编码器:自编码器可以有多个隐藏层,这被称作栈式自编码器。栈式自编码器的架构一般是关于中间隐层对称的。如果一个自编码器的层次是严格对称的,一个常用的技术就是将decoder层的权重捆绑到encoder层,这使得模型参数减半,加快了训练速度,并降低了过拟合风险。这可以看做是一种regularization。
如果有一个很大的数据集但是绝大部分是未标注数据,可以使用所有的数据线训练一个栈式自编码器,然后复用低层来完成真正的任务。如图15-8所示。
6、去噪自编码器
强制自编码器学习有用特征的方式是在输入数据中增加噪声,通过训练之后得到无噪声的输出。这防止自编码器简单的将输入复制到输出,从而提取数据中有用的模式。
噪声可以是添加到输入的纯高斯噪声,也可以是随机丢弃输入层的某个特征,类似于dropout.
以下内筒参考自:https://www.jianshu.com/p/fd8311832c7a。
1、一般的重构误差可以采用均方误差的形式,但是如果作为输入和输出的响亮元素都是位变量,则一般采用交叉熵来表示两者的差异。
2、流形学习的观点:一般情况下,高维的数据都处于一个较低维度的流形曲面上。使用去噪自编码器得到的特征就基本处于这个曲面上,而普通的autoencoder,即使是加入了稀疏约束,其提取出来的特征也不是都在这个低维曲面上。
3、稀疏自编码器:加入了L1正则化
4、降噪自编码器:在输入层(网络的可视层)加入随机噪声。类似于在输入层使用dropout。[dae]
5、收缩自动编码器(contractive autoencoder)【cae】
6、栈式自编码机
逐层初始化
7、变分自动编码机