奇异值分解

奇异值分解将线性代数中的很多概念串联起来了, 包括了四个子空间, 特征值, 特征向量, 正交矩阵, 对称矩阵等等。

A first look

根据线性变换的定义, 当一个矩阵M与一个向量相乘的时候, 相当于矩阵对向量在空间做了一个线性变换(伸缩或者改变角度)。
考虑如下的关系

(3001)(xy)=(3xy)

左边的矩阵相当于对一个点 (x,y) 横坐标伸展了三倍, 纵坐标不变。
这里写图片描述-M- 这里写图片描述
再考虑如下
(2112)(xy)=(2x+yx+2y)

在空间中的关系将变得不那么明朗, 当时如果将坐标轴旋转45度, 可以看出其仍是在一个方向上伸展了3倍。 为什么是45度呢, 因为矩阵的特征向量分别是
x1=(11),x2=(11)

根据特征向量的定义, 矩阵M作用于特征向量后方向不变, 故我们仍看到是展缩的例子, 之所以是一个方向不变, 另外一个方向扩大了3倍, 是因为矩阵M的特征值分别是 λ1=1,λ2=3 , 故之。
这里写图片描述 -M- 这里写图片描述
然而上面的矩阵有些特殊, 第一个矩阵是对角矩阵, 第二个矩阵是对称矩阵, 都满足了特征值正交的特点。 对于任意的矩阵, 我们希望找到正交的特征向量, 满足如下的关系
Mvi=λivi

考虑矩阵
M=(1011)

如果足够仔细, 当坐标旋转58.28度的时候, 可以满足正交的关系。
这里写图片描述 -M - 这里写图片描述

可见, 不是所有的矩阵的特征向量都能正交。 因而, 我们的问题变为, 找到输入的正交向量 v1,v2 , 当矩阵M作用于其上的时候, 输出也为正交向量 u1,u2 , 其伸缩的大小由奇异值 σ1,σ2 决定。 因而有

Mv1=σ1u1Mv2=σ2u2

对于一个普通的向量, 将其投影到 v1,v2 上, 即
x=(vT1x)v1+(vT2x)v2Mx=(vT1x)Mv1+(vT2x)Mv2Mx=(vT1x)σ1u1+(vT2x)σ2u2M=u1σ1vT1+u2σ2vT2

通常写为矩阵的形式
M=UVT

U 就是左歧义向量u1,u2构成的矩阵, 是奇异值 σ1,σ2 构成的对角矩阵, VT 是右奇异向量 v1,v2 构成的矩阵的转置。

几何意义

这里写图片描述 - M - 这里写图片描述
一个直观的几何解释是用单位圆上的点来解释。
假设矩阵M 的分解为

M=(u1u2)(3001)(vT1vT2)

u1,u2,v1,v2 是二维平面上的向量, 根据奇异值分解的性质, u1, u2 线性无关, v1, v2 线性无关。那么对二维平面上任意的向量x,都可以表示为: x=ξ1v1+ξ2v2
当A作用在x上时,
y=Ax=A[v1v2][ξ1ξ2]=[u1u2][3001][vT1vT2][v1v2][ξ1ξ2]=3ξ1u1+ξ2u2

η1=3ξ1, η2=ξ2 ,我们可以得出结论:如果x是在单位圆 ξ21+ξ22=1 上,那么y正好在椭圆 η21/32+η22/12=1 上。这表明:矩阵A将二维平面中单位圆变换成椭圆,而两个奇异值正好是椭圆的两个半轴长,长轴所在的直线是 span{u1} ,短轴所在的直线是 span{u2} .

因此, 奇异值分解的几何含义为:对于任何的一个矩阵,我们要找到一组两两正交单位向量序列,使得矩阵作用在此向量序列上后得到新的向量序列保持两两正交。下面我们要说明的是,奇异值的几何含义为:这组变换后的新的向量序列的长度。

如何计算

如何计算SVD中的所有元素呢, 回顾一下

A=UVT

一个直观的方法就是去除 U 或者V之一, 而专注其中一个,

ATA=(UVT)T(UVT)=VTVT


ATA=V(σ2100σ22)VT

由于 ATA 自动满足是对称矩阵, 因此其特征值是正交的,上式相当于 A=QQT 因此求 ATA 的特征向量, 特征值即可。
同样的,
AAT=U(σ2100σ22)UT

证明

从我们的计算可以反过来验证 Avi=σiui 是正确的。

ATAvi=σ2ivivTiATAvi=σ2ivTivi(orthonormal)||Avi||2=σ2AATAvi=σ2iAviAATui=σ2iuiui=Avi/σi

应用

数据压缩

这里写图片描述
z该图为25x15的矩阵, 但其实主要是由三个元素构成, 如下图
这里写图片描述 - 这里写图片描述- 这里写图片描述
d通过SVD分析, 只有三个非零的奇异值。 σ1=14.72,σ2=5.22,σ3=3.31
y因此, 该矩阵可表达为

A=u1σ1vT1+u2σ2vT2+u3σ3vT3

w我们只需要3x(15+25) + 3就可以记录这个矩阵的信息了。

数据分析去噪

这里写图片描述
d有两个非零的奇异值 σ1=6.04,σ2=0.22 , 第二个奇异值非常小, 可认为其对应的是噪声, 因此只选取第一个奇异值。

A=u1σ1vT1

k可以看出来, 噪声去除了。
这里写图片描述

Reference:
[1]https://www.zhihu.com/question/22237507
[2]http://www.ams.org/samplings/feature-column/fcarc-svd
[3]Strang G, et al. Introduction to linear algebra[M]. Wellesley, MA: Wellesley-Cambridge Press, 1993.

A=(142536)

A=(0.386320.922370.922370.38632)(9.50803000.7728700)0.428670.566310.703950.805960.112380.581200.408250.816500.40825T

(3001)(xy)=(3xy)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值