奇异值分解

奇异值分解(SVD, singular value decomposition)是对矩阵最好的分解形式(前面介绍过矩阵的LU分解,对角化分解),它将某个矩阵A分解为正交矩阵(orthogonal matrix),对角矩阵(diagonal matrix)和正交矩阵相乘的形式,A可以是任意类型的矩阵,即任意矩阵都可进行这种奇异值分解。以前曾介绍过矩阵的对角化分解形式为,对于正定矩阵,由于一定满足对称性,因此其特征向量是正交的(见对称矩阵及正定性),且由正交向量组成的正交矩阵Q满足;又由于正定性,因此一般的 矩阵变为正的 矩阵,最终正定矩阵的对角化形式为 ,这正是正定矩阵的奇异值分解:正交阵乘对角阵再乘正交阵,只不过正定阵不需要两个正交阵,只要一个正交阵Q就能完成分解,但是对于其他一般的矩阵,就无法再通过 找到其奇异值分解的形式了,因为它们的特征向量矩阵不再是正交矩阵。

              记矩阵A的奇异值分解形式为 ,其中U,V是正交阵, 是对角阵,前面曾介绍过矩阵的4个子空间,这里可将矩阵的奇异值分解往A的4个子空间上靠, ,如果V是A行空间中的标准正交基向量构成的正交阵,U是A列空间中的标准正交基向量构成的正交阵,则奇异值分解的意思就是在行空间中找到标准正交向量v1,v2…,vn,经过矩阵A变换到列空间中的标准正交向量,记为u1,u2…,un,即 ,则

那么如何求这些矩阵呢?要到行空间和列空间中找一组标准正交基向量当然是不难的,因为可从两个空间的任意一组基向量开始,经过Graham Schmidt正交化方法,得到一组标准正交基,但关键是找出的标准正交基向量不一定满足上面的等式,即行空间中标准正交向量组成的正交矩阵乘以A不一定得到的矩阵还是正交的,所以要用另外的方法寻找这样两组特殊的正交向量。对于 ,两端同时乘,得到 ,V是一个正交阵(对于正交阵有),因此可得 ,式子中包含了两个正交阵,为了使问题得到简化,首先做些处理,将U消去,使式子只留下V以便先求出V,处理如下: ,虽然A可以是长方矩阵(rectangular matrix,即不是方阵),但一定是对称方阵,上式中 仍然是对角阵,只不过对角线上的元素变成 ,由于是对称矩阵,对比对称矩阵的分解形式 (对称矩阵的特征向量是垂直的,因此由特征向量组成的矩阵是正交矩阵),可知V就是的特征向量矩阵,中间的对角阵是的特征值,且这些特征值都是平方形式,说明ATA的特征值大于等于0,所以至少是正定矩阵或半正定矩阵,这样我们就找到了求V和 的方法:求出的特征值和特征向量,标准化的特征向量组成的矩阵就是V,特征值的正平方根得到 。应用类似的方法来求矩阵U,只不过现在是用

V被消去,只剩下U,同样可得U是的标准化特征向量矩阵,  的特征值的正平方根。由上面的分解式可看出的特征值完全一样,这是一定的,因为有结论:AB的特征值与BA的特征值相同,即如果改变相乘顺序,特征值保持不变,因此无论是用还是都可求出由特征值组成的对角阵,现在举个具体的例子来巩固一下奇异值分解的过程。

假设A=  ,这个矩阵可逆,所以秩为2,第一步要计算 ,其特征向量为  ,对应的特征值分别为32,18,因此。现在要求U,一种方法是,既然知道了式子中的其余部分,可以将它们代入原式从而求出U,但这里仍采用的方法来求U。

恰好是个对角矩阵,很容易求其特征向量和特征值,特征值就是对角线元素32,18,对应的特征向量是 ,的特征值完全相同,这验证了上面AB的特征值与BA的特征值相同的结论, 。所以最终得到A的奇异值分解形式为:

但是仔细计算一下上面的式子,发现三个矩阵相乘并不等于A,-3和3的地方出现了符号错误,发生这种错误的原因就在于我们只知道U和V分别是的单位特征向量矩阵,但各特征向量的符号我们并不知道,假如 是特征向量,那么 一定也是特征向量,上面V的第二列向量刚好符号选的不对,因此就暴露了这个问题,因为对于所有的特征向量我们都不知道它的符号,因此通常的做法是先固定好一些量,剩下的量再进行符号调整,例如这里先固定好U,认为其等于 就是对的,中间的对角阵符号无异议,一定都是正值,然后再根据A的符号调整V的符号,由于这里发现3和-3符号不对,因此应将V第二列的特征向量取反,使得V变为 ,即A正确的奇异值分解形式为:

接下来举个奇异矩阵的例子,假如A= ,该矩阵的秩为1,因此A是长方矩阵,行空间和列空间都只有1维,很明显只要选择一行和一列使其变成单位向量,所以行空间的标准基向量为 ,列空间的标准基向量为 ,将U和V补充为正交矩阵: ,顺便这里插一句,由于补充的部分是分别垂直于u1,v1的,又u1,v1分别在A的列空间和行空间中,因此就分别在A的左零空间和零空间中(零空间与行空间是相互垂直的,因为Ax=0就表示A的每一行与零空间中的任意x都是垂直的,同样左零空间与列空间也是垂直的),接着再求特征值, ,该矩阵秩为1,因此一定有特征值为0(秩等于1说明此矩阵不可逆,奇异矩阵行列式为0,而特征值之积等于行列式,因此一定有特征值为0),又特征值之和等于秩(trace,矩阵对角线元素之和),因此另一个特征值为125,则矩阵A的奇异值分解为:

上面圈出的分别是左零空间和零空间中的向量,可以看到左零空间和零空间中的向量在相乘过程中乘以的都是0,因此不起作用,最终行空间和列空间才是主要的,因此奇异值分解的过程就是在线性代数的4个子空间中选出合适的基,v1…vr是A的行空间的标准正交基,是A的列空间的标准正交基,是A的零空间的标准正交基,是A的左零空间的标准正交基,因为它们是正交的,因此用它们来进行奇异值分解是合理的,并且因为这些基使得矩阵对角化了,因此需要特征值。

你可能感兴趣的:(线性代数)