机器学习系列:降维

我们知道,解决过拟合的问题除了正则化和添加数据之外,降维就是最好的方法。降维的思路来源于维度灾难的问题,我们知道 n n n 维球的体积为: C R n CR^n CRn 那么在球体积与边长为 2 R 2R 2R 的超立方体比值为: lim ⁡ n → 0 C R n 2 n R n = 0 \lim\limits_{n\rightarrow0}\frac{CR^n}{2^nR^n}=0 n0lim2nRnCRn=0

这就是所谓的维度灾难,在高维数据中,主要样本都分布在立方体的边缘,所以数据集更加稀疏。

降维的算法分为:

  1. 直接降维,特征选择
  2. 线性降维,PCA,MDS等
  3. 分线性,流形包括 Isomap,LLE 等

1. PCA降维

主成分分析中,我们的基本想法是将所有数据投影到一个字空间中,从而达到降维的目标,为了寻找这个子空间,我们基本想法是:

  1. 所有数据在子空间中更为分散
  2. 损失的信息最小,即:在补空间的分量少

注意,我们降维的目的是通过变换去掉一些冗余的数据,我们想要的是数据之间的结构关系,和具体值的大小无关,为了方便计算,我们先对数据进行归一化。 x i = x i − x ‾ x_i = x_i - \overline{x} xi=xix,假设 x i x_i xi的维度是p,想要降维后的维度是q,那么我们需要一个转移矩阵,降维后的向量 x i ^ = W T x i \hat{x_i} = W^Tx_i xi^=WTxi,这里的 W W W就是转移矩阵,维度是 p ∗ q p* q pq,也就是说通过 W W W p p p维向量降为 q q q维向量。我们用 X X X表示 ( x 1 , ⋯   , x n ) (x_1,\cdots,x_n) (x1,,xn)注意这是中心化后的数据,降维后的数据为 X ^ = W T X \hat{X} = W^TX X^=WTX
S = 1 N ∑ i = 1 N ( x i ) ( x i ) T = 1 N ( x 1 , x 2 , ⋯   , x N ) ( x 1 , x 2 , ⋯   , x N ) T = 1 N X X T \begin{aligned}S&=\frac{1}{N}\sum\limits_{i=1}^N(x_i)(x_i)^T\\ &=\frac{1}{N}(x_1,x_2,\cdots,x_N)(x_1,x_2,\cdots,x_N)^T \\ &=\frac{1}{N}XX^T \end{aligned} S=N1i=1N(xi)(xi)T=N1(x1,x2,,xN)(x1,x2,,xN)T=N1XXT
这是协方差的计算方法,将 X ^ \hat{X} X^带入,得到 S = 1 N W T X X T W S=\frac{1}{N}W^TXX^TW S=N1WTXXTW,然后根据第二条原因,让空间转移后的向量之间距离尽可能大,也就是说协方差 S S S尽量大,于是得到优化问题最大化:
min ⁡ W W T X X T W s . t .   W T W = I \begin{aligned} \min\limits_{W}W^TXX^TW \\ s.t.\ W^TW = I \end{aligned} WminWTXXTWs.t. WTW=I
可以使用拉个朗日定理,计算:
min ⁡ W T X X T W + λ ( I − W T W ) \min W^TXX^TW +\lambda(I-W^TW) minWTXXTW+λ(IWTW)
对W求导令其等于0得到,
X X T W = λ W XX^TW= \lambda W XXTW=λW
上式子分解得到 X X T w i = λ i w i XX^Tw_i = \lambda_iw_i XXTwi=λiwi,这个式子很明显,对 X X T XX^T XXT进行特征值分解很容易得到 λ i \lambda_i λi再求其特征向量得到 w i w_i wi,取前q个最大的特征值和对应的特征向量就是我们要求的降维转移矩阵

2. 矩阵降维 SVD和特征值分解

2.1 特征值分解

在理角奇异值分解之前,需要先回顾一下特征值分解,如果矩阵 A A A是一个m×m的实对称矩阵(即 A = A T A=A^T A=AT),那么它可以被分解成如下的形式
在这里插入图片描述
其中 Q Q Q为标准正交阵,即有 Q Q T = I QQ^T=I QQT=I,Σ为对角矩阵,且上面的矩阵的维度均为 m × m m×m m×m λ i λi λi称为特征值, q i q_i qi Q Q Q(特征矩阵)中的列向量,称为特征向量。

2.2 奇异值分解(SVD)

有一个 m × n m×n m×n的实数矩阵A,我们想要把它分解成如下的形式
A = U Σ V T (2-1) A=UΣV^T \tag{2-1} A=UΣVT(2-1)
其中 U U U V V V均为单位正交阵,即有 U U T = I UU^T=I UUT=I V V T = I VV^T=I VVT=I,U称为左奇异矩阵,V称为右奇异矩阵,Σ仅在主对角线上有值,我们称它为奇异值,通常来说取的特征值越大越好,其它元素均为0。上面矩阵的维度分别为 U ∈ R m × m , Σ ∈ R m × n , V ∈ R n × n U∈R^{m×m}, Σ∈R^{m×n}, V∈R^{n×n} URm×m,ΣRm×n,VRn×n

一般地Σ有如下形式
在这里插入图片描述
在这里插入图片描述
奇异值求解
常求上面的U,V,Σ不便于求,我们可以利用如下性质
A A T = U Σ V T V Σ T U T = U Σ Σ T U T AA^T=UΣV^TVΣ^TU^T=UΣΣ^TU^T AAT=UΣVTVΣTUT=UΣΣTUT
A T A = V Σ T U T U Σ V T = V Σ T Σ V T A^TA=VΣ^TU^TUΣV^T=VΣ^TΣV^T ATA=VΣTUTUΣVT=VΣTΣVT
在这里插入图片描述

奇异值分解可以用到矩阵的降维上,例如一张600x800的图片,可以降维为600x100,100x100,100x800 U Σ V UΣV UΣV,这样一来,参数大大的降低了,而图像的语义其实并没有太大改变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值