Autoencoders是一类neural network。这类NN最基本的用法是在输入和输出之前建立模糊复制关系。之所以不是精确复制是因为这个模型需要自动确定哪些信息是需要从input输出到output的。它的图示表示如下:
一、 Undercomplete Autoencoders
这类autoencoders的设计目的是通过隐变量h抓取对于输入数据x内最有意义的信息。因为需要抓取信息,因此一般我们隐变量h的维数要低于输入数据x的维数。如果h的维数过高,则它的capacity就会过大,因而可以容纳输入数据x大部分的信息,导致h本身抓取重要信息的功能不能得以体现。
这个模型在使用的过程中主要需要减小loss function:
这个loss function的意义是,减少原本输入值x和经过encoder&decoder之后还原出的x^值的差别。
二、Stochastic Encoders and Decoders
讲真这一块看得不是很懂……
三、 Regularized Autoencoders
Regularized的概念就是,上面的那个undercomplete autoencoders虽然完成了降维的工作,但是除此之外完成的仅仅只最大幅度地还原初始的x值。Regularized autoencoders的设计思想是,虽然可能设置的隐变量h的维度比较大,因而capacity比较大,但是在cost function上面添加相应的term,来使得隐变量具有我们期望它具有的性质。
1) Sparse Autoencoders
这里的regularization term是通过一个sparsity penalty来完成稀疏化的功能的。
比如对于一个autoencoder模型,它的log-likelihood可以通过下式表达:
而这个式子可以进一步化作:
logpmodel(h)是作为稀疏的regularization。比如假设pmodel(h)服从的是Laplace分布,则:
将这个log-prior作为惩罚项:
2) Denoising Autoencoders
Denoising autoencoders(DAE)是将一个加了噪音的输入x^经过隐藏层再经过输出层输出还原为原始数据的网络。它需要最大化能够从带噪声的数据中还原出原数据的概率,即最小化下面这个式子:
这个优化问题可以通过下图来表示:
红叉代表的是没有经过噪声污染的原数据的值,黑色的曲线代表的是根据红叉代表的值推断出的正确数据应该处于的位置。而灰色的×代表的是经过一定噪声污染的污染数据的值的分布。经过上面的网络的求解(maximize log-likelihood),我们可以找到在经过噪声污染的数据所对应的原数据的值:绿色箭头的尾部代表的是经过噪声污染的数据值,绿色箭头的头部代表的是经过校正后还原得到的原数据的可能点,绿色箭头的长度代表的是需要校正的大小。
3) Regularizing by Penalizing Derivatives
(contractive autoencoders)
Contractive autoencoders(CAE)的regularization term是input layer->hidden layer映射函数对输入的导数。它的目的在于限制输出随输入的变化幅度。即在输入变化幅度比较小时,输出保持稳定,可以近似看做起到的是一个低通滤波的作用。