百面机器学习--机器学习面试问题系列(四)降维

本文是在学习《百面机器学习 算法工程师带你去面试》过程中的学习笔记,将面试问题进行记录以方便查阅,根据目录分成系列。持续更新中…

目录

      • 1. PCA最大方差理论
      • 2. PCA最小平方误差理论
      • 3. 线性判别分析LDA

在机器学习中,数据通常表示成向量形式输入到模型中进行训练。在对数据进行处理和分析时,会极大的消耗资源甚至产生维度灾难。所以需要进行降维,用一个低维度的向量表示高维度的特征。常见的降维方法有主成分分析、线性判别分析、等距映射、局部线性嵌入、拉普拉斯特征映射、局部保留投影等。

1. PCA最大方差理论

PCA是一种线性、非监督、全局的降维算法。

  • 如何定义主成分?从这种定义出发如何设计目标函数使得降维达到提取主成分的目的?针对这个目标函数如何对PCA问题进行求解?

    PCA旨在找到数据中的主成分,利用这些主成分表征原始数据,从而达到降维的目的。

    主成分所在的轴称为主轴。在信号处理领域,认为信号具有较大的方差,噪声具有较小的方差,信号与噪声之比成为信噪比,信噪比越大则意味这数据质量越好。所以PCA的目标是最大化投影误差,也就是让数据在主轴上投影的方差最大。

    向量内积在几何上表示为第一个向量投影到第二个向量上的长度,所以向量 x i x_i xi ω \omega ω (单位方向向量)上的投影可以表示为 ( x i , ω ) = x i T ω (x_i,\omega)=x_i^T\omega (xi,ω)=xiTω 。所以目标是要找到一个投影方向 ω \omega ω 使得数据点 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn (中心化后,即原始数据减掉均值)在 ω \omega ω 上的投影方差尽可能大。由于进行了中心化,所以投影之后的均值为0。所以投影后的误差可以表示为:

    D ( x ) = 1 n ∑ i = 1 n ( x i T ω ) 2 = ω T ( 1 n ∑ i = 1 n x i x i T ) ω D(x)=\frac{1}{n}\sum_{i=1}^{n}(x_i^T\omega)^2=\omega^T(\frac{1}{n}\sum_{i=1}^{n}x_ix_i^T)\omega D(x)=n1i=1n(xiTω)2=ωT(n1i=1nxixiT)ω

    可以看到, ( 1 n ∑ i = 1 n x i x i T ) (\frac{1}{n}\sum_{i=1}^{n}x_ix_i^T) (n1i=1nxixiT) 就是样本的协方差矩阵,将其写作 Σ \Sigma Σ,所以要求解一个最大化问题:

    m a x ( ω T Σ ω ) , s . t . ω T ω = 1 max(\omega^T\Sigma\omega), s.t. \omega^T\omega=1 max(ωTΣω),s.t.ωTω=1

    引入拉格朗日乘子,对 ω \omega ω 求导令其等于0,便可以推出 Σ ω = λ ω \Sigma \omega = \lambda \omega Σω=λω ,此时

    D ( x ) = ω T Σ ω = λ ω T ω = λ D(x)=\omega ^T \Sigma \omega = \lambda \omega^T \omega=\lambda D(x)=ωTΣω=λωTω=λ

    根据线性代数相关知识可以发现,x投影后的方差就是协方差矩阵的特征值。找到最大方差也就是协方差矩阵的最大特征值,最佳投影方向就是最大特征值所对应的特征向量。次佳投影方向位于最佳投影方向的正交空间中,也就是第二大特征值对应的特征向量。

    所以总结出PCA算法的计算流程为:

    1. 对数据样本进行中心化处理
    2. 求样本协方差矩阵
    3. 对协方差矩阵进行特征值分解,将特征值从大到小排列
    4. 取特征值前d大对应的特征向量 ω 1 , ω 2 , . . . ω d \omega_1,\omega_2,...\omega_d ω1,ω2,...ωd,通过映射将n维样本映射为d维 x i ′ = [ ω 1 T x i , ω 2 T x i , . . . , ω d T x i ] T x_i'=[\omega_1^Tx_i,\omega_2^Tx_i,...,\omega_d^Tx_i]^T xi=[ω1Txi,ω2Txi,...,ωdTxi]T

2. PCA最小平方误差理论

上一节从最大方差的角度解释PCA。

  • 能否从回归的角度定义PCA目标并求解呢?

    以二维空间样本点为例,上一节中求得一条直线使样本点投影到该直线上的方差最大。从线性回归的角度出发,求解一个线性函数使其更好的拟合样本点。从这个角度出发定义PCA目标,就转为了一个回归问题。

    二维空间中,拟合直线需要所有样本点到直线的距离平方和最小。高维空间同理,拟合一个超平面使样本点到超平面的距离平方和最小。该方法求出来的解与最大方差求解出来的是一致的。

3. 线性判别分析LDA

LDA是一种有监督的降维算法。PCA没有考虑样本标签,只是将数据映射到方差最大的方向上。但是对于带有标签数据的样本,映射到方差最大的方向会使得不同类样本混合在一起,降维之后的数据就很难再进行区分。

  • 对于有标签数据,如何设计目标函数使得降维过程中损失类别信息?以及如何求解?

    LDA是为分类服务的,找到一个投影方向 ω \omega ω,使得投影后的样本尽可能按照原始类别分开。所以我们希望投影之后两类之间的距离尽可能大,距离表示为不同类别的样本中心(即均值)在 ω \omega ω 方向上的投影向量之间的距离,以二分类为例:

    D ( C 1 , C 2 ) = ∣ ∣ ω T μ 1 − ω T μ 2 ∣ ∣ 2 2 D(C_1,C_2)=||\omega^T\mu_1-\omega^T\mu_2||_2^2 D(C1,C2)=ωTμ1ωTμ222

    但是只是最大化类之间的距离也会在投影后引起一定程度的样本重叠。所以LDA让每一类的样本分布变得更集中,也就是方差更小,使投影后的样本可区分性提高。所以LDA的中心思想—最大化类间距离和最小化类内距离!从而引出新的最大化目标函数,定义为类间距离与类内距离(投影后的方差)的比值:

    m a x ω J ( ω ) = ∣ ∣ ω T ( μ 1 − μ 2 ) ∣ ∣ 2 2 D 1 + D 2 max_\omega J(\omega)=\frac{||\omega^T(\mu_1-\mu_2)||_2^2}{D_1+D_2} maxωJ(ω)=D1+D2ωT(μ1μ2)22

    经过推导,LDA降维可变成一个求矩阵特征向量的问题。

你可能感兴趣的:(机器学习)