奇异值分解

Posted 一捧蒹葭为秋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了奇异值分解相关的知识,希望对你有一定的参考价值。

奇异值分解(singular value decomposition, SVD)是一种矩阵因子分解方法,是线性代数的概念,但在统计学习中被广泛使用,成为其重要工具。

定义 (奇异值分解)矩阵的奇异值分解是指, 将一个非零的mxn实矩阵A, A∈Rmxn,表示为以下三个实矩阵乘积形式的运算,即进行矩阵的因子分解:

                    A= UΣVT

其中U是m阶正交矩阵(orthogonal matrix),V是n阶正交矩阵,Σ是由降序排列的非负的对角线元素组成的mxn矩形对角矩阵(rectangulardiagonalmatrix),满足

UUT= I

VVT= I

 Σ= diag(σ1, σ2 ,··· , σp)

σ1≥σ2≥···≥σp ≥0   p = min(m,n)

 

UΣVT称为矩阵A的奇异值分解( singular value decomposition, SVD), σi称为矩阵A的奇异值( singular value),U的列向量称为左奇异向量( left singular vector), V的列向量称为右奇异向量( right singular vector )。

 

几何解释
从线性变换的角度理解奇异值分解,mxn矩阵A表示从n维空间Rn到m维空间Rm的一个线性变换,

                       T:x→Ax

x∈Rn,Ax∈Rm, x和Ax分别是各自空间的向量。线性变换可以分解为三个简单的变换,一个坐标系的旋转或反射变换、一个坐标轴的缩放变换、另一个坐标系的旋转或反射变换。奇异值定理保证这种分解一定存在。这就是奇异值分解的几何解释。

对矩阵A进行奇异值分解,得到A=UΣVT, V和∪都是正交矩阵,所以V的列向量v1,v2,…,vn构成Rn空间的一组标准正交基,表示Rn中的正交坐标系的旋转或反射变换; U的列向量u1,u2,...,um构成Rm空间的一组标准正交基,表示Rm中的正交坐标系的旋转或反射变换; Σ的对角元素σ1,σ2,…σn是一组非负实数,表示Rn中的原始正交坐标系坐标轴的σ1, σ2,.. σn倍的缩放变换。

 

奇异值分解的计算

奇异值分解基本定理证明的过程蕴含了奇异值分解的计算方法。矩阵A的奇异值分解可以通过求对称矩阵ATA的特征值和特征向量得到。ATA的特征向量构成正交矩阵V的列,ATA的特征值的平方根为奇异值σi

对其由大到小排列作为对角线元素,构成对角矩阵Σ,求正奇异值对应的左奇异向量,再求扩充的AT的标准正交基,构成正交矩阵U的列。从而得到A的奇异值分解   A= UΣVT

给定mxn矩阵A,可以按照上面的叙述写出矩阵奇异值分解的计算过程。

(1)首先求ATA的特征值和特征向量。

计算对称矩阵W = ATA。

求解特征方程

(W-入I)x= 0

得到特征值入i,并将特征值由大到小排列

 

λ1≥入2≥...≥入n≥0

将特征值入i (i=1,2,... ,n)代入特征方程求得对应的特征向量。

(2)求n阶正交矩阵V

将特征向量单位化,得到单位特征向量v1,v2,... vn,构成n阶正交矩阵V:

 

V=[v1  v2  …  vn ]

 

(3)求mx n对角矩Σ

计算A的奇异值

 

σi=i, i= 1,2,... ,n

构造mxn矩形对角矩阵Σ,主对角线元素是奇异值,其余元素是零,

Σ = diag(σ12,…,σn)

(4)求m阶正交矩阵U

对A的前r个正奇异值,令

 

Uj = Avj  , j= 1,2,... ,r

得到   U1=[u1  u2 …ur]

求AT的零空间的一组标准正交基{ur+1,ur+2,… ,um},令

U2=[ ur+1,ur+2,… ,um]

并令

U=[U1  U2 ]

(5)得到奇异值分解

A= UΣVT

                               

 

小结:奇异值分解在图像压缩与机器学习中主成分的提取中有较多的应用,它将一个比较复杂的矩阵用更简单的几个子矩阵的相乘来表示,这些小矩阵描述的是矩阵的重要的特性,奇异值可以被看作成一个矩阵的代表值,能够代表这个矩阵的信息。当奇异值越大时,它代表的信息越多。奇异值在奇异值矩阵中是按照从大到小排列,可以用最大的k个的奇异值和对应的左右奇异向量来近似描述矩阵。

以上是关于奇异值分解的主要内容,如果未能解决你的问题,请参考以下文章

什么是奇异值?奇异值分解是什么?SVD分解详解及实战

奇异值分解

奇异值分解的方法

奇异值分解

奇异值分解(SVD)

奇异值分解SVD