Machine Learning-L20-降维

本文深入探讨降维技术,包括主成分分析(PCA)和奇异值分解(SVD)的原理与应用。PCA通过转换坐标系减少数据冗余,SVD则广泛应用于数据压缩、推荐系统及自然语言处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


原始数据通常具有较高的维数导致维数灾难,通过降维(Dimensionality reduction)可以消除数据冗余与数据噪声,降低算法的计算开销,使得数据更加易用,结果更加易懂。

1. 主成分分析

主成分分析(PCA,Principal Component Analysis)将数据从原来的坐标系转换到新的坐标系,新坐标系的选择由数据本身决定。

1.1 问题定义

n n n维正交空间中,坐标系 W n = { w 1 , w 2 , . . . , w n } W_n=\{w_1,w_2,...,w_n\} Wn={w1,w2,...,wn},其中 w w w是标准正交基,即 ∣ ∣ w ∣ ∣ 2 = 1 , w i T w j = 0 ||w||_2=1, w_i^Tw_j=0 w2=1,wiTwj=0

m m m个样本数据 ( x ( 1 ) , x ( 2 ) , . . . , x ( m ) ) , ∑ i = 1 m x ( i ) = 0 (\boldsymbol x^{(1)},\boldsymbol x^{(2)},...,\boldsymbol x^{(m)}),\sum\limits_{i=1}^{m}x^{(i)}=0 (x(1),x(2),...,x(m)),i=1mx(i)=0(已中心化)。

其中 x ( i ) = ( x 1 ( i ) , x 2 ( i ) , . . . , x n ( i ) ) T , i = 1 , 2 , . . . , m \boldsymbol x^{(i)} = (x_1^{(i)}, x_2^{(i)}, ...,x_n^{(i)})^{T},i={1,2,...,m} x(i)=(x1(i),x2(i),...,xn(i))Ti=1,2,...,m

m m m个数据的维度从 n n n维降到 n ′ n' n维(通常由用户指定),新的坐标系 W = { w 1 , w 2 , . . . , w n ′ } W = \{w_1,w_2,...,w_{n'}\} W={w1,w2,...,wn}

样本点 x ( i ) \boldsymbol x^{(i)} x(i)在新的 n ′ n' n维坐标系中投影:
z ( i ) = ( z 1 ( i ) , z 2 ( i ) , . . . , z n ′ ( i ) ) T ,      i = 1 , 2 , . . . , m \boldsymbol z^{(i)} = (z_1^{(i)}, z_2^{(i)},...,z_{n'}^{(i)})^T, \;\; i={1,2,...,m} z(i)=(z1(i),z2(i),...,zn(i))T,i=1,2,...,m其中 z j ( i ) = w j T x ( i ) ,      i = 1 , 2 , . . . , m , j = 1 , 2 , . . . , n ′ z_j^{(i)} = w_j^T \boldsymbol x^{(i)},\;\; i={1,2,...,m}, j={1,2,...,n'} zj(i)=wjTx(i),i=1,2,...,m,j=1,2,...,n
x i \boldsymbol x^{i} xi在低维坐标系中第 j j j维的坐标。

使用 z i \boldsymbol z^{i} zi恢复原始数据 x i \boldsymbol x_{i} xi,则得到的恢复数据
x ‾ ( i ) = ∑ j = 1 n ′ z j ( i ) w j = W z ( i ) \overline{\boldsymbol x}^{(i)} = \sum\limits_{j=1}^{n'}z_j^{(i)}w_j = Wz^{(i)} x(i)=j=1nzj(i)wj=Wz(i)

1.2 优化目标

降维相当于使用一个超平面对样本进行表达,该超平面具有以下性质

  • 最近重构性:样本点到这个超平面距离足够近
  • 最大可分性:样本点在这个超平面上的投影尽可能分开

(1)基于最小投影距离

希望 m m m n ′ n' n维的数据集尽可能的代表原始数据集,即数据从 n n n维降到 n ′ n' n维的损失尽可能小,优化目标为
min ⁡ ∑ i = 1 m ∣ ∣ x ‾ ( i ) − x ( i ) ∣ ∣ 2 2 \min \sum\limits_{i=1}^{m}||\overline{\boldsymbol x}^{(i)} - \boldsymbol x^{(i)}||_2^2 mini=1mx(i)x(i)22

∑ i = 1 m ∣ ∣ x ‾ ( i ) − x ( i ) ∣ ∣ 2 2 = ∑ i = 1 m ∣ ∣ W z ( i ) − x ( i ) ∣ ∣ 2 2 = − t r ( W T X X T W ) + ∑ i = 1 m x ( i ) T x ( i ) \begin{aligned} \sum\limits_{i=1}^{m}||\overline{\boldsymbol x}^{(i)} - \boldsymbol x^{(i)}||_2^2 & = \sum\limits_{i=1}^{m}|| W\boldsymbol z^{(i)} - \boldsymbol x^{(i)}||_2^2 \\ & = -tr( W^TXX^TW) + \sum\limits_{i=1}^{m} \boldsymbol x^{(i)T}\boldsymbol x^{(i)} \end{aligned} i=1mx(i)x(i)22=i=1mWz(i)x(i)22=tr(WTXXTW)+i=1mx(i)Tx(i) 由于 ∑ i = 1 m x ( i ) x ( i ) T \sum\limits_{i=1}^{m}\boldsymbol x^{(i)}\boldsymbol x^{(i)T} i=1mx(i)x(i)T是数据集的协方差矩阵,为常量,优化目标等价于:
min ⁡ W    − t r ( W T X X T W ) s . t .      W T W = I \begin{aligned}\min_{W}\; & -tr( W^TXX^TW) \\ &s.t. \;\; W^TW=I \end{aligned} Wmintr(WTXXTW)s.t.WTW=I

(2)基于最大投影方差

对于任意一个样本 x ( i ) \boldsymbol x^{(i)} x(i),在新的坐标系中的投影为 W T x ( i ) W^T \boldsymbol x^{(i)} WTx(i),在新坐标系中的投影方差为 W T x ( i ) x ( i ) T W W^T\boldsymbol x^{(i)} \boldsymbol x^{(i)T}W WTx(i)x(i)TW
要使所有的样本的投影方差和最大,也就是最大化 ∑ i = 1 m W T x ( i ) x ( i ) T W \sum\limits_{i=1}^{m}W^Tx^{(i)}x^{(i)T}W i=1mWTx(i)x(i)TW的迹,即:
max ⁡ W    t r ( W T X X T W ) s . t .      W T W = I \begin{aligned}\max_{W}\; & tr( W^TXX^TW) \\ &s.t. \;\; W^TW=I \end{aligned} Wmaxtr(WTXXTW)s.t.WTW=I

可以看出最近重构性等价于最大可分性。

1.3 问题求解

使用拉格朗日乘子法,引入拉格朗日函数 J ( W ) = − t r ( W T X X T W + λ ( W T W − I ) ) J(W) = -tr( W^TXX^TW + \lambda(W^TW-I)) J(W)=tr(WTXXTW+λ(WTWI))
W W W求导,令导数等于0得, X X T W = λ W XX^TW=\lambda W XXTW=λW

W W W X X T XX^T XXT n ′ n' n个特征向量组成的矩阵,而 λ \lambda λ X X T XX^T XXT的若干特征值组成的矩阵,特征值在主对角线上,其余位置为0。将数据集从 n n n维降到 n ′ n' n维时,需要找到最大的 n ′ n' n个特征值对应的特征向量。

对协方差矩阵 X X T XX^T XXT进行特征值分解,将求得的特征值排序:
λ 1 ≥ λ 2 ≥ . . . ≥ λ n \lambda_1 \geq \lambda_2 \geq ... \geq \lambda_n λ1λ2...λn取前 n ′ n' n个特征值对应的特征向量构成解
W ∗ = ( w 1 , w 2 , . . . w n ′ ) W^* = (w_1,w_2,...w_{n'}) W=(w1,w2,...wn)
实践中,一般对 X X X进行奇异值分解代替协方差矩阵的特征值分解。

2. SVD

奇异值分解(SVD,Singular Value Decomposition)是以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域,是很多机器学习算法的基石。

2.1 特征分解

A A A是一个 n n n阶矩阵,若 λ \lambda λ n n n维非零向量 x \boldsymbol x x满足: A x = λ x A \boldsymbol x=\lambda \boldsymbol x Ax=λx λ \lambda λ是矩阵 A A A的一个特征值, x \boldsymbol x x是矩阵 A A A对应特征值 λ \lambda λ的特征向量。
∣ λ E − A ∣ \mid \lambda E - A\mid λEA称为 A A A的特征多项式,当特征多项式等于0的时候,称为 A A A的特征方程,特征方程是一个齐次线性方程组,求解特征值的过程就是求解特征方程的解。

矩阵 A A A n n n个特征值 λ 1 ≤ λ 2 ≤ . . . ≤ λ n \lambda_1 \leq \lambda_2 \leq ... \leq \lambda_n λ1λ2...λn,以及这 n n n个特征值所对应的特征向量 { w 1 , w 2 , . . . w n } \{w_1,w_2,...w_n\} {w1,w2,...wn},如果这 n n n个特征向量线性无关,那么矩阵A就可以用下式的特征分解表示: A = W Σ W − 1 A=W\Sigma W^{-1} A=WΣW1

其中, W W W是这 n n n个特征向量所张成的 n × n n×n n×n矩阵,而 Σ \Sigma Σ为这 n n n个特征值为主对角线的 n × n n×n n×n阶矩阵。
一般会把 W W W n n n个特征向量标准化,即满足 ∣ ∣ w i ∣ ∣ 2 = 1 ||w_i||_2 =1 wi2=1 或者说 w i T w i = 1 w_i^Tw_i =1 wiTwi=1,此时 W W W n n n个特征向量为标准正交基,满足 W T W = I W^TW=I WTW=I,即 W T = W − 1 W^T=W^{-1} WT=W1, 也就是说 W W W为酉矩阵。
此时特征分解表达式可以写成: A = W Σ W T A=W\Sigma W^T A=WΣWT

2.2 SVD

要进行特征分解,矩阵 A A A必须为方阵,那么如果 A A A不是方阵,即行和列不相同时,需要使用SVD。
假设矩阵 A A A是一个 m × n m×n m×n的矩阵,定义矩阵 A A A的SVD为: A = U Σ V T A = U\Sigma V^T A=UΣVT

其中 U U U是一个 m × m m×m m×m的矩阵, V V V是一个 n × n n×n n×n的矩阵。 U U U V V V称为A的左/右奇异向量矩阵,都是酉矩阵,即满足 U T U = I , V T V = I U^TU=I,V^TV=I UTU=I,VTV=I
Σ \Sigma Σ是一个 m × n m×n m×n的矩阵,除了主对角线上的元素以外全为0,主对角线上的每个元素都称为奇异值,通常将奇异值由大到小排列,这样 Σ \Sigma Σ便能由 A A A唯一确定。

奇异值与特征分解中的特征值类似,在奇异值矩阵中也是按照从大到小排列,而且奇异值的减少特别的快。很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。也就是说,也可以用最大的 k k k个的奇异值和对应的左右奇异向量来近似描述矩阵:

A m × n = U m × m Σ m × n V n × n T ≈ U m × k Σ k × k V k × n T \begin{aligned} A_{m \times n} = & U_{m \times m}\Sigma_{m \times n} V^T_{n \times n}\\ \approx & U_{m \times k}\Sigma_{k \times k} V^T_{k \times n} \end{aligned} Am×n=Um×mΣm×nVn×nTUm×kΣk×kVk×nT

其中 k k k要比 n n n小很多,即一个大的矩阵 A A A可以用三个小的矩阵 U m × k , Σ k × k , V k × n T U_{m \times k},\Sigma_{k \times k} ,V^T_{k \times n} Um×k,Σk×k,Vk×nT来表示:

由于这个重要的性质,SVD可以用于PCA降维,来做数据压缩和去噪。也可以用于推荐算法,将用户和喜好对应的矩阵做特征分解,进而得到隐含的用户需求来做推荐。同时也可以用于NLP中的算法,比如潜在语义索引(LSI)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

隐私无忧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值