机器学习-奇异值分解

奇异值分解

    奇异值分解(singular value deomposition, SVD)是一种矩阵因子分解方法,是线性代数的概念。任意一个矩阵,可以表示为三个矩阵的乘积(因子分解)形式。矩阵的奇异值分解一定存在,但不唯一,可以看作是矩阵数据压缩的一种方法,即用因子分解的方式近似地表示原始矩阵,这种近似是在平方损失意义下的最优近似。

1 奇异值分解的定义

    矩阵的奇异值分解是指将 m ∗ n m*n mn的实矩阵 A A A表示为以下三个实矩阵乘积形式的运算。
A = U ∑ V T A=U\sum V^T A=UVT
    其中 U U U m m m阶正交矩阵, V V V n n n阶正交矩阵, ∑ \sum m ∗ n m*n mn阶正交矩阵。
    其对角元素非负,且满足
δ 1 ≥ δ 2 ≥ . . . ≥ δ p ≥ 0 \delta_1 \geq \delta_2 \geq ...\geq\delta_p \geq0 δ1δ2...δp0
    任意给定的一个实矩阵,其奇异值分解一定存在,但并不唯一。
    奇异值分解包括紧奇异值分解和截断奇异值分解。紧奇异值分解是与原始矩阵等秩的奇异值分解,截断奇异值分解是比原始矩阵低秩的奇异值分解。
    奇异值分解有明确的几何解释。奇异值分解对应三个连续的线性变换:一个旋转变换,一个缩放变换和另一个旋转变换。第一个和第三个旋转变换分别基于空间的标准正交基进行。

2 奇异值分解的计算

    设矩阵 A A A的奇异值分解为 A = U ∑ V T A=U \sum V^T A=UVT,则有
A T A = V ( ∑ T ∑ ) V T A^TA=V(\sum^T \sum)V^T ATA=V(T)VT
A T A = U ( ∑ ∑ T ) U T A^TA=U(\sum \sum^T)U^T ATA=U(T)UT
    矩阵 A A A的奇异值分解可以通过求矩阵 A T A A^TA ATA的特征值和特征向量得到: A T A A^TA ATA的特征向量构成正交矩阵 V V V的列;从 A A T AA^T AAT的特征值的平方根 λ i \lambda_i λi得到奇异值 δ i \delta_i δi,即
δ i = λ j , j = 1 , 2 , . . . , n \delta_i=\sqrt{\lambda_j},j=1,2,...,n δi=λj ,j=1,2,...,n
    对其进行由大到小排列,作为对角线元素,构成对角矩阵 ∑ \sum ;求正奇异值对应的左奇异向量,再求扩充的 A T A^T AT的标准正交基,构成正交矩阵 U U U的列。
    (1)首先求 A T A A^TA ATA的特征值和特征向量。
( w − λ I ) x = 0 (w-\lambda I)x=0 (wλI)x=0
    得到特征值 λ i \lambda_i λi,并对其进行升序排列。
    (2)求 n n n阶正交矩阵 V V V
    将特征向量单位化,得到特征向量构成的 n n n阶正交矩阵 V V V
V = [ v 1 v 2 . . . v n ] V=[v_1 \quad v_2 \quad ... \quad v_n] V=[v1v2...vn]
    (3)求 m ∗ n m*n mn对角矩阵 ∑ \sum
    计算 A A A的奇异值:
δ i = λ i \delta_i=\sqrt{\lambda_i} δi=λi
∑ = d i a g ( δ 1 , δ 2 , . . . , δ n ) \sum=diag(\delta_1,\delta_2,...,\delta_n) =diag(δ1,δ2,...,δn)
    (4)求 m m m阶正交矩阵 U U U
      求 A A A的前 r r r个正奇异值:
u j = 1 δ j A v j u_j= \frac1 \delta_j A v_j uj=δ1jAvj
U = [ u 1 u 2 . . . u r ] U=[u_1 \quad u_2 \quad...\quad u_r] U=[u1u2...ur]
U = [ U 1 U 2 ] U=[U_1 \quad U_2] U=[U1U2]
    (5)得到奇异值分解
A = U ∑ V T A=U\sum V^T A=UVT

3 奇异值分解与矩阵近似

3.1 弗罗贝尼乌斯范数

    奇异值分解也是一种矩阵近似的方法,这个近似是在弗罗贝尼乌斯范数意义下的近似。矩阵的弗罗贝尼乌斯范数是向量的 L 2 L_2 L2范数的直接推广。定义为:
∣ ∣ A ∣ ∣ F = ( ∑ i = 1 m ∑ j = 1 n ( a i j ) 2 ) 1 2 = ( δ 1 2 + δ 2 2 + . . . . + δ n 2 ) 1 2 ||A||_F=(\sum_{i=1}^m \sum_{j=1}^n (a_{ij})^2)^\frac12=(\delta_1^2+\delta_2^2+....+\delta_n^2)^{\frac12} ∣∣AF=(i=1mj=1n(aij)2)21=(δ12+δ22+....+δn2)21
    在秩不超过 k k k m ∗ n m*n mn矩阵的集合中,存在矩阵 A A A的弗罗贝尼乌斯范数意义下的最优近似矩阵 X X X.

3.2矩阵的最优近似

    矩阵的秩 r a n k ( A ) = r rank(A)=r rank(A)=r,并设 M M M R m ∗ n R^{m*n} Rmn中所有秩不超过 k k k的矩阵的集合, 0 < k < r 0 <k<r 0<k<r,使得:
∣ ∣ A − X ∣ ∣ F = m i n S ∈ M ∣ ∣ A − S ∣ ∣ F ||A-X||_F=min_{S \in M} ||A-S||_F ∣∣AXF=minSM∣∣ASF
∣ ∣ A − X ∣ ∣ F = ( δ k + 1 2 + δ k + 2 2 + . . . + δ n 2 ) 1 2 ||A-X||_F=(\delta_{k+1}^2 + \delta_{k+2}^2 + ... + \delta_n^2)^\frac12 ∣∣AXF=(δk+12+δk+22+...+δn2)21
    
    任意一个实矩阵可以由其外积展开式表示:
A = δ 1 u 1 v 1 T + δ 2 u 2 v 2 T + δ n u n v n T A=\delta_1 u_1 v_1^T + \delta_2 u_2 v_2^T + \delta_n u_n v_n^T A=δ1u1v1T+δ2u2v2T+δnunvnT

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值