- PCA
- AE
- SAE
- DAE
- CAE
- SDAE
- VAE
自编码模型,是非监督方法,能够完成特征的压缩和提取;
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=f(x)
, 最后再构造一个解码函数
x≈g(c)=g(f(x)),定义
g(x)=Dc,那么,我们最小化损失函数:
minc|x−Dc|2
通过对c求导为零,
我们可以得到
c=DTx,这就是我们的编码函数;
进一步地,给定X,我们得到其协方差矩阵Cx=1nXXT,n 是特征维度;
我们引入编码函数D,Y=PX,构造Y的协方差矩阵;
Cy=1nYYT=PCXPT
我们希望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上,强迫潜在变量服从高斯分布,这样经过采样,产生一些新的特征;