自编码模型,是非监督方法,能够完成特征的压缩和提取;
PCA是线性降维方法,是自编码模型的基础;
1. PCA
PCA 是主成分分析方法,主要是用来数据预处理,降低维度,提取关键的特征(去除冗余的特征);
首先回顾一下协方差:协方差反应出两两维度之间的关联,越大越关联;
cov(X,Y)=E[(X−E(X))(Y−E(Y))]=E[XY]−E[X]E[Y]
方差:
D(X)=E[(X−E(x))2]=E[X2]−(E[x])2
相关系数: (协方差的标准化)
相关系数主要是说明X,Y之间的线性相关性,当 rho>0 ,正相关;等于0,不相关,负数负相关;
ρ=cov(X,Y)σXσY
为什么是线性线性呢?
首选我们假设 Y=aX+b ,那么 cov(X,Y)=aD(x) ,分母是 |a|D(x) ,所以 ρ 取决于系数a的正负;
实例:
对于原始样本x,我们对其进行编码
通过对c求导为零, 我们可以得到 c=DTx ,这就是我们的编码函数;
进一步地,给定
X
,我们得到其协方差矩阵
我们引入编码函数D,
Y=PX
,构造Y的协方差矩阵;
我们希望Y的特征间的关联小,即 Cy 中的对角线值尽可能的大,其余位置为零,变成对角矩阵;
基于特征分解的方式:
Cx 是对称矩阵,那么我们可以分解成: Cx=SΛS−1=SΛST , 令 P=ST ,那么:
Cy=PCxPT=PSΛSTPT=PP−1ΛPP−1=Λ
由上可知,我们的目标就是求得 Cx 的特征向量,和特征值;基于SVD分解的方式
一个矩阵可以分解成三个矩阵相乘的形式:
M=UΣVT
因此有:
MMT=UΣVTVΣTUT=UΣΣTUT
MTM=VΣTUTUΣVT=VΣTΣVT
现在令 Y=1n√XT ,那么
YTY=1nXXT=Cx=VΣTΣVT
因此,我们可以直接对Y进行矩阵分解,获得的V 就是所需要的P;
2. AE
自编码模型AutoEncode,只有一层隐藏层;尽可能的复现原始信号,是PCA的扩展,获取有效的特征;
![]()
3.SAE
Sparse AutoEncode 稀疏自编码模型,目的是抑制一些神经元的活性,使得code层更加的稀疏;
4.DAE
Denoising AutoEncoders降噪自动编码器;
在原始的文本中加入噪音,提高其泛化能力,鲁棒性高;
加入训练数据加入噪声,DAE必须学习去去除这种噪声而获得真正的没有被噪声污染过的输入。 DAE可以通过梯度下降算法去训练。
一般上,我们将原始文档一式二份,一份加入噪声,然后进行训练;最后可以使用KL散度进行度量;
5. CAE
Contractive auto-encoders
收缩编码模型,在损失函数中加入W的正则项;
6. SDAE
Stack Denoising AutoEncoders;栈式降噪变=自动编码器;
>本质上就是将原来的一层结构拓展,类似栈结构;
7. VAE
变分自动编码;标准的编码器不能获得新的特征,即不会进行合理的推测而产生有效的结果;(GAN网络类比);
在AE上,强迫潜在变量服从高斯分布,这样经过采样,产生一些新的特征;
![]()
参考文献:
http://blog.csdn.net/hjimce/article/details/49106869
VAE: http://www.cnblogs.com/huangshiyu13/p/6209016.html