SVD 浅入深出深入浅出

浏览: 2511


本文谈谈实矩阵的奇异值分解(Singular Value Decomposition)。

首先提个简单的问题,什么是奇异值呢? 对于一个方阵或一般矩阵 A ,如果非负标量 σ 和非零向量对 u 和 v 满足如下条件:

Av = σu,

A'u = σv.

则称 σ 是矩阵 A 的奇异值, u和v 是相应的奇异向量对。

容易推出 AA'u = Aσv = σAv = σ2u,A'Av = A'σu = σA'u = σ2v。

假设本文的奇异值分解针对的是基因表达数据,奇异值分解的输入是一个长方形的矩阵 A,其中 A 是一个 n × p 的矩阵,第 n 行表示基因, 第 p 列表示实验条件。 奇异值定理如下:

Anxp= Unxn Snxp VTpxp

其中

UTU = Inxn

VTV = Ipxp

即 U 和 V 是正交矩阵。

矩阵 U 的列是左奇异向量 (基因系数向量), 矩阵 S 的维度跟矩阵A的维度一样,矩阵S具有相应的奇异值,并且 S 是对角矩阵 (模式幅度);矩阵 V转置中的行向量是右奇异向量(基因的表达等级向量)。奇异值分解在一个新坐标系统中给出了原始数据的一种展开,其中原始数据在这个坐标系统中对应的协方差矩阵是对角矩阵。

计算奇异值分解包括寻找矩阵 AAT  和 ATA 的特征值和特征向量, 矩阵 ATA 的特征向量组成了矩阵 V 的列,矩阵 AAT 的特征向量组成了矩阵U的列。另外,矩阵 S 中的奇异值是矩阵 AAT或 ATA 的特征值的平方根构成的。奇异值构成了 S 矩阵的对角元素, 并且按递减顺序排列。需要注意的是,奇异值通常是实数。如果矩阵 A 是实矩阵,则 矩阵U 和矩阵 V 也是实矩阵。

为了理解如何求解奇异值分解,以文献 Kuruvilla et al 中提供的矩阵为例,假设: 


在这个例子中,矩阵A是 4x2 的矩阵。已知,对于 n x n 的矩阵 W,如果非零向量 满足以下条件,则称向量 x 是矩阵W 的特征向量:

x = λ x

其中 λ 是一个标量。λ 称为矩阵 A 的特征值,是特征值 λ  对应的一个特征向量。显然(O(∩_∩)O哈哈哈~),每个特征值对应的特征向量都不唯一。

为得到特征值,首先需要计算矩阵AAT 和 ATA。

如前所述,矩阵 AAT  的特征向量构成了矩阵 U 的列,因此, 可以按照如下方法得到矩阵 U:

注意,矩阵 W 是一个 n x n 的矩阵,可以计算 W 的特征值。

由于如果  W x = λ x ,则  (W- λIx = 0, 其中 是单位矩阵,0是零向量

为了得到特征值集合,需要令矩阵 (W-λI) 的行列式等于0。因此,根据特征方程 |W-λI|=0 的解,可以得到以下四个特征值:0, 0,29.883,0.117 (之所以有四个特征值,是因为上式是四阶多项式)。接下来,可以利用这些特征值用来寻找特征向量,并且使得这些特征向量可以作为矩阵 U 的列。对于特征值0.117,可以得到如下方程组:

19.883 x1 + 14 x2 = 0

14 x1 + 9.883 x2 = 0

x3  = 0

x4 = 0

 

通过前两个等式可以得到一个 x1 对 x2 的比例,选择 x1 和 x2 可以得到 S 中的元素,并且使其是特征值的平方根。因此可以得到满足上述方程组的解 x1 = -0.58, x2 = 0.82,x3 = x4 = 0。这可以作为矩阵 U 的第二列(因为这个特征值是排在第二个位置)。

带入另一个非零特征值可以得到下列方程组:

 -9.883 x1 + 14 x2 = 0

14 x1 - 19.883 x2 = 0

x3  = 0

x4 = 0

 

容易得到满足上述方程组的解 x1 = 0.82, x2 = -0.58, x3 = x4 = 0, 这可以作为矩阵 U 的第一列 (因为相应的特征值最大,排在第一位)。

组合起来可以得到下面的矩阵 U:

 

类似的,矩阵 ATA 的特征向量构成了矩阵 V 的列, 

同样的,可以得到下式: 

 

如前所述,矩阵 S 是矩阵AAT 或 ATA 的特征值对应的平方根构成的,因此,可以直接得到矩阵 S: 

 

需要注意的是,s1 > s2 > s3 > … ,这在Kuruvilla的论文中图四给出。不同的是,在论文中,作了一种特殊处理使得最大的特征值为 1 。

下面证明给出了对应于开头中的证明,不同的是,下面证明是矩阵形式的。

A=USVT 并且 AT=VSUT

ATA = VSUTUSVT

ATA = VS2VT

ATAV = VS2

 

参考资料


推荐 0
本文由 深度学习 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册