avatar

Catalog
从PCA到Auto Encoder

PCA

PCA意为主成分分析,PCA降维就是分析主成分,然后再降维。

Q:那么降维的时候,为什么要分析主成分呢?

A:我们在做降维时,可以将当前的样本点投影到任意的向量空间,那么怎么投影才是最好的呢,一般我们认为投影之后的样本点越分散,也就是方差越大,则投影越好,所以我们选择是的样本点方差最大的维度进行投影,这个过程就是主成分分析。

具体的计算过程是线性代数知识,可以看这个视频https://www.bilibili.com/video/av29441413?p=3

Autoencoder

PCA looks like a neural network with one hidden layer(linear activation function),用神经网络的做法去做PCA,这就是自编码器。

为什么说PCA是神经网络呢?

PCA的运算过程概括起来可以是z=Wx,我们把x看作网络的输入,w作为网络的参数,z作为网络的输出,就可以把PCA看做神经网络。此时我们可以称这个网络为自编码器,那么怎么去训练自编码器呢,我们知道W是orthonormal(标准正交的),所以同时有x=Wz(线性代数知识)。如果我们搭一个两层的网络,即(x输入,W,z,W,x输出),就可以算x输入和x输出之间的loss,就可以根据反向传播来训练了。

自编码器训练出来的W和通过PCA计算出来的W是不同的。在只有一层线性映射的时候我们可以用PCA直接算出结果,但自编码器的好处是可以处理多层网络和非线性的激活函数。

Author: realLiuSir
Link: http://yoursite.com/2020/02/23/%E4%BB%8EPCA%E5%88%B0Auto-encoder/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
    微信
  • 支付寶
    支付寶