为什么SVD分解最小奇异值的特征向量乘积是最小二乘的最优解

这是一个齐次线性方程组(一般嘚非齐次线性方程组AX=b其实也都可以化为齐次方程组的形式所以比较普遍)

先要说明在非齐次方程组中,A到底有没有解析解可以由增广矩阵来判断:

  • r(A)>r(A | b) 不可能,因为增广矩阵的秩大于等于系数矩阵的秩(在矩阵中加入一列其秩只可能增大,不可能变小)

这里A是不是方阵巳经无所谓了,也没有什么法则可以用就只分成一种情况。

由齐次线性方程组解空间维数 = n - r(A) >0所以该齐次线性方程组有非零解,而且不唯┅(自由度为 n - r(A))

在我们做一些实际问题的时候,经常在 1.2(当然严格来说1.1也有可能啦)会卡住这时实际上是没有真正的非零解析解的,因为约束太多了没法都满足(零向量除外)。但是可以折中一下每一个方程都满足个大概,这就要求最小二乘解求取最小二乘解的方法一般使鼡SVD,即奇异值分解

解空间维数与r(A)的关系的感性认识:

r(A)可以理解为一种约束条件的强弱的表现(约束的强弱不只是表面上的方程个数)。仳如有一个方程组每个方程都是一样的,那么其秩为1,方程的个数对约束毫无贡献

继续看A的秩,也就是约束的个数是怎么影响解空间的維数的

x2或者x3一旦确定,其余的未知量就都随之确定了所以自由度为1,所以解空间维数为1。

如果 r(A)=c那么c个方程一共最多可以消去c-1个未知数(比如满秩方阵,最后只留一个未知数得到唯一解),于是得到的方程由n-(c-1)个未知数组成该方程有 n-c个自由度,也就是说解空间的维数为 n-c

上述过程在高斯消去法中表现:

假设消去过后的A如下:

那么最后一个非全0行的x个数为 num = n-r(A)+1,则可以看到该行的自由度,决定了所有解的自甴度(因为一旦改行确定其他都确定了,自由区其实可以理解为用将多少变量固定,就能够确定整个矩阵)而该行的自由度=num-1=n-r(A)=齐次线性方程组解空间的维数,Bingo!

SVD:奇异值分解是在A不为方阵时的对特征值分解的一种拓展。奇异值和特征值的重要意义相似都是为了提取出矩阵嘚主要特征。

在||X||=1的约束下,其最小二乘解为矩阵A'A最小特征值所对应的特征向量乘积

假设x为A'A的特征向量乘积的情况下,为什么是最小的特征值对应的x能够是目标函数最小证明(多谢hukexin0000指出错误这个约束太强,只能提供一点点感性认识具体的证明请查阅相关教科书):

齐次线性方程组的最小二乘问题可以写成如下:

于是可知,得到了A'A的最小特征值就得到了最优值,而其最小特征值对应的特征向量乘积就是最優解.

而对M进行SVD分解(*表示共轭转置):


可见M*M的特征向量乘积就是V的列向量

求解方法有两种(matlab):

[V D] =eig(A'*A);D为A'*A的特征值对角矩阵,V为对应的特征向量乘積找到最小特征值对应的V中的特征向量乘积即为最小二乘解。

 使用SVD分解矩阵A[U S V] = svd(A); U 由 A*A'的特征向量乘积组成,V 由 A'*A的特征向量乘积组成因此,渏异值矩阵S中最小的奇异值对应的V中的奇异向量即为最小二乘解

超定方程(非齐次线性方程的一种)

当A的行数大于列数时,方程组无解就需要求解最小二乘解。在matlab中使用一个

就可以得到最小二乘意义下的解这个解没有模制的限制,就是实际的解matlab:A\b

两种方法其实是一個意思。

这篇资料还是很不错的讲述了SVD与PCA的关系,其中的推荐资料也很不错


本文是深度学习笔记系列第二篇本次文章将介绍线性代数里比较重要的概念:特征值,特征向量乘积以及SVD奇异值分解

回顾线性代数中,含有n个元素的向量可以表示为:

一般默认向量为列向量也就是n行1列的矩阵,行向量表示为x的转置即

当维度为n*n的方阵A、n维向量x和实数 λ满足下式时:

上式可以看成将矩陣 A 作用在向量 x 上只对该向量的长度进行变换,此时λ 为矩阵 A 的特征值x 为对应的特征向量乘积(从几何角度看左乘一个矩阵可以看成一個空间变换)。

当且仅当矩阵 为奇异矩阵时才存在非零解 x 令其行列式为0,可以得到 λ 的多项式求得特征值,再根据特征值即可求出相應的特征向量乘积.

令矩阵 A 的第 i 个特征值为 λi 对应的特征向量乘积为 xi, 所有特征向量乘积构成的矩阵为 X 若X可逆,则A可对角化表示为:

其Φ Λ 为所以对应特征值组成的对角矩阵.

特别的若A为对称矩阵则A的特征值均为实数,特征向量乘积可化为正交特征向量乘积即X为正交矩陣,用U表示则矩阵A可表示为:

若A为m*n矩阵,则存在m*m的正交矩阵U、n*n的正交矩阵V和m*n的对角矩阵D满足:

其中U为左奇异矩阵列向量为 的特征向量塖积;矩阵D中对角线元素为A的奇异值,为 的特征值的平方根. 因为一个矩阵乘以它的转置为对称矩阵必能正交对角化,因此任意矩阵均能渏异值分解.

SVD一个常见的应用就是降维如对于图像数据矩阵A进行SVD,取前k大的奇异值U和V都取前k个向量,再恢复到原图像大小k取值合理的凊况下可以与原图几乎一样,这样就实现了对图像的压缩.

可以发现和PCA主成分分析很相似在PCA中我们先计算协方差矩阵,再求出前k大特征值對应的特征向量乘积作为主成分对数据进行降维。

当计算协方差矩阵时我们需要计算 (A维数为n*p,n为样本数p为特征个数,且A已进行取均徝化)计算SVD时也有这个,由此可以得到PCA的另一种解法:通过对A进行SVD分解计算右奇异矩阵VV中列向量即为PCA所需的特征向量乘积。这种方法更為方便sklearn中的PCA就是通过SVD来实现的。

知乎的文章都会同步到下面的公众号公众号也会有一些其他关于AI的内容,喜欢的话可以关注一下

在很多线性代数问题中如果我們首先思考若做SVD,情况将会怎样那么问题可能会得到更好的理解[1]。

作者:caicailiu 出处:/liuyc/  欢迎转载或分享但请务必声明文章出处。

我要回帖

更多关于 特征向量乘积 的文章

 

随机推荐