• 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的扩展,获取有效的特征;

python数学建模如何消除自相关性_python数学建模如何消除自相关性


python数学建模如何消除自相关性_编码器_02


3.SAE

Sparse AutoEncode 稀疏自编码模型,目的是抑制一些神经元的活性,使得code层更加的稀疏;

python数学建模如何消除自相关性_自编码_03


4.DAE

Denoising AutoEncoders降噪自动编码器;
在原始的文本中加入噪音,提高其泛化能力,鲁棒性高;
加入训练数据加入噪声,DAE必须学习去去除这种噪声而获得真正的没有被噪声污染过的输入。 DAE可以通过梯度下降算法去训练。
一般上,我们将原始文档一式二份,一份加入噪声,然后进行训练;最后可以使用KL散度进行度量;

python数学建模如何消除自相关性_协方差_04


5. CAE

Contractive auto-encoders
收缩编码模型,在损失函数中加入W的正则项;

6. SDAE

Stack Denoising AutoEncoders;栈式降噪变=自动编码器;
>本质上就是将原来的一层结构拓展,类似栈结构;

7. VAE

变分自动编码;标准的编码器不能获得新的特征,即不会进行合理的推测而产生有效的结果;(GAN网络类比);
在AE上,强迫潜在变量服从高斯分布,这样经过采样,产生一些新的特征;

python数学建模如何消除自相关性_协方差_05


python数学建模如何消除自相关性_python数学建模如何消除自相关性_06