美文网首页
无监督第一节:PCA 详细介绍及 kernal PCA ,pro

无监督第一节:PCA 详细介绍及 kernal PCA ,pro

作者: 数据小新手 | 来源:发表于2020-04-06 19:51 被阅读0次

    1.PCA

    主成分分析(Principal Component Analysis,PCA)是非常经典的降维算法,属于无监督降维,做机器学习的应该都有所了解。但是,除了基本的PCA推导和应用之外,还有SparsePCA、KernelPCA、TruncatedSVD等等,另外PCA和特征值、奇异值的关系以及SparsePCA和字典学习(Dict Learning,Lasso)的关系等等,也是比较有趣的事情。

    1.1 PCA的简介

    PCA是一种线性的降维方法,并且是利用正交变换作为映射矩阵,主要步骤是:对于一个高维空间的数据样本 ,利用正交矩阵A_{nd}将样本映射到低维空间 ,其中d<<n 起到了降维的作用。

    那么PCA该如何选择矩阵 A_{nd}呢?

    1.为什么要最大方差?

    考虑下面数据样本为二维的情形,即n = 2,在Figure 1中,数据样本呈现椭圆分布,我们现在要把二维降为一维d = 1,相当于是选择一个单位向量 w_1,将 所有的数据点投影到这个向量上来,如图中所示,画出的四个红色带箭头的线条代表的是候选向量,那么要选哪一个作为最优的呢?

    image-20200406142936343.png

    PCA的假设偏好是:数据在低维空间越分散越好。假设我们选择了上图中朝向为左上方的向量,那么将数据点全部投影到这个方向上面,那么就会导致数据点都“拥挤”在了一起,对后续分类或其它任务造成了很不友好的影响。所以,PCA选的是图中朝向右上方比较粗的那个作为最合适的 [图片上传失败...(image-8aef14-1586173690384)] ,这样得到的映射后的数据点很分散,对后续任务有利。

    我们想要最大化方差,通过一个单位向量w使得投影到这个向量的值方差最大,达到分散的效果。(选择单位向量的原因是我们只关心其方向,并不关心其大小。


    image-20200406143325148.png

    其中Z_1=w^1 x

    其中投影数据的方差:
    \frac{1}{N}\sum{(w_1^Tx_n-w_1^T\bar{x})^2}=w_1^TSw_1
    其中S是数据的协方差矩阵,定义为
    S=\frac1N\sum(x_n-\bar{x})(x_n-\bar{x})^T
    想要投影数据的方差最大,必须对w_1 增加限制,这里的限制就是w为单位向量。

    通过引入拉格朗日方法:
    max\ w_1^TSw_1+\lambda_1(1-w_1^Tw_1)
    上式对w_1求导后得到:
    Sw_1=\lambda_1w_1
    这表明w_1是S的一个特征向量,如果上式左乘w_1^T 得到w_1^TSw_1=\lambda_1

    上式中可以看出,方差的值为特征值,当w_1 为特征值\lambda_1 对应的特征向量。想要最大时,需要\lambda_1最大。

    PCA的应用:

    1.数据压缩

    2.数据预处理

    3.数据可视化

    1.2 高维数据的PCA:

    可以先通过采样方式,计算采样矩阵的的特征值和特征向量。用采样矩阵的特征值和特征向量还原原矩阵。

    1.3概率PCA(probabilistic PCA)

    引入潜在变量z,对应主成分的子空间,其服从高斯分布。z的先验分布时服从标准正态分布。P(z)=N(z|0,I)

    同样以潜在变量z为条件,观测变量x的条件概率服从正态分布

    P(x|z)=N(x|Wz+\mu,\sigma^2I)

    我们可以从生成式的观点来看概率PCA模型,具体来说就是D维观测变量x 由M维潜在变量z的一个线性变换,附加一个高斯噪声来获得。即

    x=Wz+\mu+\epsilon

    其中\epsilon 是一个D维0均值高斯分布的噪声变量,协方差为\sigma^2I

    1.3.1 最大似然估计参数

    lnp(X|\mu,W,\sigma^2) = \sum_{n=1}^Nlnp(x_n|W,\mu,\sigma^2)

    lnp(X|\mu,W,\sigma^2) = -\frac{ND}2ln(2\pi)-\frac N2ln|C|-\frac12\sum_{n=1}^N(x_n-\mu)^TC^{-1}(x_n-\mu)

    其中C=WW^T+\sigma^2I

    对似然函数求导,得到\mu=\bar{x}

    带到上式中得到:
    lnp(X|\mu,W,\sigma^2) = -\frac{N}2[Dln(2\pi)-ln|C|-Tr(C^{-1}S)
    其中S为协方差矩阵。

    之后通过EM算法来求解W矩阵。

    1.4 核PCA

    由于PCA时线性变换,往往具有较大的局限性。在SVM中 使用核方法来替换标量积,将这种方法应用到PCA中,得到一个非线形的推广。

    考虑之前的推导结果:
    Sw_i=\lambda_iw_i
    其中x进行0均值标准化,那么
    S=\frac1N\sum_{n=1}^Nx_nx_n^T
    考虑到一个M维特征空间的一个非线性变换\phi(x), 将每个数据点x_n 投影到\phi(x_n)上,我们可以得到特征空间的协方差矩阵为:
    C=\frac1N\sum_{n=1}^N\phi(x_n)\phi(x_n)^T
    特征向量展开为:

    Cv_i=\lambda_iv_i

    \frac1N\sum_{n=1}^N\phi(x_n)\phi(x_n)^T v = \lambda v

    v = \frac1{M\lambda}\sum_{n=1}^N(\phi(x_n)\phi(x_n)^Tv)

    a_n=\frac1{N\lambda}(\phi(x_n)^Tv)

    v=\sum_{n=1}^Na_n\phi(x_n)

    这样我们可以得到C的特征向量是由\phi(x_1),...\phi(x_n)组成的。

    \frac1N\sum_{n=1}^N\phi(x_n)\phi(x_n)^T\sum_{m=1}^Na_m\phi(x_m)=\lambda\sum_{n=1}^Na_n\phi(x_n)

    用核函数k(x_n,x_m)=\phi(x_n)^T\phi(x_m) 来表示,带入上式,左右两端同时乘以\phi(x_l)^T可以得到

    \frac1N\sum_{n=1}^Nk(x_l,x_n)\sum_{m=1}^Na_mk(x_n,x_m)=\lambda\sum_{n=1}^Na_nk(x_l,x_n)

    用矩阵形式来表示为:

    K^2a_i=\lambda_iNKa_i

    同时去掉一个K

    求解下面的特征值方程:

    Ka_i=\lambda_iNa_i

    下一步我们只要求出K即可。

    \hat{K}_{nm}=\hat\phi(x_n)^T\hat\phi(x_m)

    经过推导可以得到

    \hat{K}=K-1_NK-K1_N+1_NK1_N

    可以根据K求出特征向量a.

    下一节中将讲解求解PCA的另一个视角SVD。

    reference:

    1. https://blog.csdn.net/baimafujinji/article/details/79376378?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5

    2. PRML

    3.https://zhuanlan.zhihu.com/p/59775730

    4.http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2017/Lecture/PCA%20(v3).pdf

    相关文章

      网友评论

          本文标题:无监督第一节:PCA 详细介绍及 kernal PCA ,pro

          本文链接:https://www.haomeiwen.com/subject/tqciphtx.html