本文谈谈实矩阵的奇异值分解(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 满足以下条件,则称向量 x 是矩阵W 的特征向量:
W x = λ x
其中 λ 是一个标量。λ 称为矩阵 A 的特征值,x 是特征值 λ 对应的一个特征向量。显然(O(∩_∩)O哈哈哈~),每个特征值对应的特征向量都不唯一。
为得到特征值,首先需要计算矩阵AAT 和 ATA。
如前所述,矩阵 AAT 的特征向量构成了矩阵 U 的列,因此, 可以按照如下方法得到矩阵 U:
注意,矩阵 W 是一个 n x n 的矩阵,可以计算 W 的特征值。
由于如果 W x = λ x ,则 (W- λI) x = 0, 其中 I 是单位矩阵,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
参考资料
Alter O, Brown PO, Botstein D. (2000) Singular value decomposition for genome-wide expression data processing and modeling. Proc Natl Acad Sci U S A, 97, 10101-6.
Golub, G.H., and Van Loan, C.F. (1989) Matrix Computations, 2nd ed. (Baltimore: Johns Hopkins University Press).
Greenberg, M. (2001) Differential equations & Linear algebra (Upper Saddle River, N.J. : Prentice Hall).
Strang, G. (1998) Introduction to linear algebra (Wellesley, MA : Wellesley-Cambridge Press).
Kuruvilla, F.G., Park, P.J. and Schreiber, S.L., 2002. Vector algebra in the analysis of genome-wide expression data. Genome biology, 3(3), p.1.
http://web.mit.edu/be.400/www/SVD/Singular_Value_Decomposition.htm
https://www.mathworks.com/moler/eigs.pdf
http://public.lanl.gov/mewall/kluwer2002.html
http://www.bmo.physik.uni-muenchen.de/~dominguez/Bilder/WWW_SVD_decomposition.jpg