矩阵分解学习---详细介绍SVD

原创 2012年03月31日 09:51:48
矩阵分解 (decomposition, factorization)是将矩阵拆解为数个矩阵的乘积,可分为三角分解、满秩分解、QR分解、Jordan分解和SVD(奇异值)分解等,常见的有三种:1)三角分解法 (Triangular Factorization),2)QR 分解法 (QR Factorization),3)奇异值分解法 (Singular Value Decompostion)。
  (1) 三角分解法
  三角分解法是将原正方 (square) 矩阵分解成一个上三角形矩阵 或是排列(permuted) 的上三角形矩阵和一个 下三角形矩阵,这样的分解法又称为LU分解法。它的用途主要在简化一个大矩阵的行列式值的计算过程,求 反矩阵,和求解联立方程组。不过要注意这种分解法所得到的上下三角形矩阵并非唯一,还可找到数个不同 的一对上下三角形矩阵,此两三角形矩阵相乘也会得到原矩阵。
  MATLAB以lu函数来执行lu分解法, 其语法为[L,U]=lu(A)。
  (2) QR分解法
  QR分解法是将矩阵分解成一个正规正交矩阵与上三角形矩阵,所以称为QR分解法,与此正规正交矩阵的通用符号Q有关。
  MATLAB以qr函数来执行QR分解法, 其语法为[Q,R]=qr(A)。
  (3) 奇异值分解法
  奇异值分解 (singular value decomposition,SVD) 是另一种正交矩阵分解法;SVD是最可靠的分解法,但是它比QR 分解法要花上近十倍的计算时间。[U,S,V]=svd(A),其中U和V代表二个相互正交矩阵,而S代表一对角矩阵。 和QR分解法相同者, 原矩阵A不必为正方矩阵。使用SVD分解法的用途是解最小平方误差法和数据压缩。

  MATLAB以svd函数来执行svd分解法, 其语法为[S,V,D]=svd(A)。

Singular value decomposition

From Wikipedia, the free encyclopedia
Visualization of the SVD of a 2-dimensional, real shearing matrix M. First, we see the unit disc in blue together with the two canonical unit vectors. We then see the action of M, which distorts the disk to an ellipse. The SVD decomposes M into three simple transformations: a rotation V*, a scaling Σ along the rotated coordinate axes and a second rotation U. The lengths σ1 and σ2 of the semi-axes of the ellipse are the singular values of M.

In linear algebra, the singular value decomposition (SVD) is a factorization of a real or complex matrix, with many useful applications in signal processing and statistics.

Formally, the singular value decomposition of an m×n real or complex matrix M is a factorization of the form

M = U\Sigma V^*, \,

where U is an m×m real or complex unitary matrix, Σ is an m×n rectangular diagonal matrix with nonnegative real numbers on the diagonal, and V* (the conjugate transpose of V) is an n×n real or complex unitary matrix. The diagonal entries Σi,i of Σ are known as the singular values of M. The m columns of U and the n columns of V are called the left singular vectors and right singular vectors of M, respectively.

The singular value decomposition and the eigendecomposition are closely related. Namely:

  • The left singular vectors of M are eigenvectors of MM^{*}.
  • The right singular vectors of M are eigenvectors of M^{*}M.
  • The non-zero singular values of M (found on the diagonal entries of Σ) are the square roots of the non-zero eigenvalues of both M^{*}M and MM^{*}.

Applications which employ the SVD include computing the pseudoinverse, least squares fitting of data, matrix approximation, and determining the rank, range and null space of a matrix.

[edit] Statement of the theorem

Suppose M is an m×n matrix whose entries come from the field K, which is either the field of real numbers or the field of complex numbers. Then there exists a factorization of the form

M = U\Sigma V^*, \,

where U is an m×m unitary matrix over K, the matrix Σ is an m×n diagonal matrix with nonnegative real numbers on the diagonal, and the n×n unitary matrix V* denotes the conjugate transpose of V. Such a factorization is called the singular value decomposition of M.

The diagonal entries \sigma_i of Σ are known as the singular values of M. A common convention is to list the singular values in descending order. In this case, the diagonal matrix Σ is uniquely determined by M (though the matrices U and V are not).

[edit] Intuitive interpretations

[edit] Rotation, scaling, rotation

In the special but common case in which M is just an m×m square matrix with positive determinant whose entries are plain real numbers, then U, V*, and Σ are m×m matrices of real numbers as well, Σ can be regarded as a scaling matrix, and U and V* can be viewed as rotation matrices.

If the above mentioned conditions are met, the expression U\Sigma V^* \, can thus be intuitively interpreted as a composition (or sequence) of three geometrical transformations: a rotation, a scaling, and another rotation. For instance, the figure above explains how a shear matrix can be described as such a sequence.

[edit] Singular values as semiaxis of an ellipse or ellipsoid

As shown in the figure, the singular values can be interpreted as the semiaxes of an ellipse in 2-D. This concept can be generalized to n-dimensional Euclidean space, with the singular values of any n×n square matrix being viewed as the semiaxes of an n-dimensional ellipsoid. See below for further details.

[edit] U and V are orthonormal bases

Since U and V* are unitary, the columns of each of them form a set of orthonormal vectors, which can be regarded as basis vectors. By the definition of unitary matrix, the same is true for their conjugate transposes U* and V. In short, U, U*, V, and V* are orthonormal bases.

[edit] Example

Consider the 4×5 matrix

M = 
\begin{bmatrix}
1 & 0 & 0 & 0 & 2\\
0 & 0 & 3 & 0 & 0\\
0 & 0 & 0 & 0 & 0\\
0 & 4 & 0 & 0 & 0\end{bmatrix}

A singular value decomposition of this matrix is given by U \Sigma V^*


U = \begin{bmatrix}
0 & 0 & 1 & 0\\
0 & 1 & 0 & 0\\
0 & 0 & 0 & 1\\
1 & 0 & 0 & 0\end{bmatrix} ,\;

\Sigma = \begin{bmatrix}
4 & 0 & 0 & 0 & 0\\
0 & 3 & 0 & 0 & 0\\
0 & 0 & \sqrt{5} & 0 & 0\\
0 & 0 & 0 & 0 & 0\end{bmatrix} ,\;

V^* = \begin{bmatrix}
0 & 1 & 0 & 0 & 0\\
0 & 0 & 1 & 0 & 0\\
\sqrt{0.2} & 0 & 0 & 0 & \sqrt{0.8}\\
0 & 0 & 0 & 1 & 0\\
\sqrt{0.8} & 0 & 0 & 0 & -\sqrt{0.2}\end{bmatrix}

Notice \Sigma contains zeros outside of the diagonal. One diagonal element is zero. Furthermore, because the matrices U and V^* are unitary, multiplying by their respective conjugate transposes yields identity matrices, as shown below. In this case, because U and V^* are real valued, they each are an orthogonal matrix.

 U  U^* = 
\begin{bmatrix}
0 & 0 & 1 & 0\\
0 & 1 & 0 & 0\\
0 & 0 & 0 & 1\\
1 & 0 & 0 & 0\end{bmatrix}

\cdot

\begin{bmatrix}
0 & 0 & 0 & 1\\
0 & 1 & 0 & 0\\
1 & 0 & 0 & 0\\
0 & 0 & 1 & 0\end{bmatrix}

=

\begin{bmatrix}
1 & 0 & 0 & 0\\
0 & 1 & 0 & 0\\
0 & 0 & 1 & 0\\
0 & 0 & 0 & 1\end{bmatrix}

\equiv I_4

and

 V  V^* = 
\begin{bmatrix}
0 & 0 & \sqrt{0.2} & 0 & \sqrt{0.8}\\
1 & 0 & 0 & 0 & 0\\
0 & 1 & 0 & 0 & 0\\
0 & 0 & 0 & 1 & 0\\
0 & 0 & \sqrt{0.8} & 0 & -\sqrt{0.2}
\end{bmatrix}
\cdot
\begin{bmatrix}
0 & 1 & 0 & 0 & 0\\
0 & 0 & 1 & 0 & 0\\
\sqrt{0.2} & 0 & 0 & 0 & \sqrt{0.8}\\
0 & 0 & 0 & 1 & 0\\
\sqrt{0.8} & 0 & 0 & 0 & -\sqrt{0.2}\end{bmatrix}
=
\begin{bmatrix}
1 & 0 & 0 & 0 & 0\\
0 & 1 & 0 & 0 & 0\\
0 & 0 & 1 & 0 & 0\\
0 & 0 & 0 & 1 & 0\\
0 & 0 & 0 & 0 & 1\end{bmatrix}

\equiv I_5

It should also be noted that this particular singular value decomposition is not unique. Choosing V such that


V^* = \begin{bmatrix}
0 & 1 & 0 & 0 & 0\\
0 & 0 & 1 & 0 & 0\\
\sqrt{0.2} & 0 & 0 & 0 & \sqrt{0.8}\\
\sqrt{0.4} & 0 & 0 & \sqrt{0.5} & -\sqrt{0.1}\\
-\sqrt{0.4} & 0 & 0 & \sqrt{0.5} & \sqrt{0.1} \end{bmatrix}

is also a valid singular value decomposition.

[edit] Singular values, singular vectors, and their relation to the SVD

A non-negative real number σ is a singular value for M if and only if there exist unit-length vectors u in Km and v in Kn such that

Mv = \sigma u \,\text{ and } M^{*}u= \sigma v. \,\!

The vectors u and v are called left-singular and right-singular vectors for σ, respectively.

In any singular value decomposition

M = U\Sigma V^{*} \,\!

the diagonal entries of Σ are equal to the singular values of M. The columns of U and V are, respectively, left- and right-singular vectors for the corresponding singular values. Consequently, the above theorem implies that:

  • An m × n matrix M has at least one and at most p = min(m,n) distinct singular values.
  • It is always possible to find an orthogonal basis U for Km consisting of left-singular vectors of M.
  • It is always possible to find an orthogonal basis V for Kn consisting of right-singular vectors of M.

A singular value for which we can find two left (or right) singular vectors that are linearly dependent is called degenerate.

Non-degenerate singular values always have unique left and right singular vectors, up to multiplication by a unit phase factor eiφ (for the real case up to sign). Consequently, if all singular values of M are non-degenerate and non-zero, then its singular value decomposition is unique, up to multiplication of a column of U by a unit phase factor and simultaneous multiplication of the corresponding column of V by the same unit phase factor.

Degenerate singular values, by definition, have non-unique singular vectors. Furthermore, if u1 and u2 are two left-singular vectors which both correspond to the singular value σ, then any normalized linear combination of the two vectors is also a left singular vector corresponding to the singular value σ. The similar statement is true for right singular vectors. Consequently, if M has degenerate singular values, then its singular value decomposition is not unique.

[edit] Applications of the SVD

[edit] Pseudoinverse

The singular value decomposition can be used for computing the pseudoinverse of a matrix. Indeed, the pseudoinverse of the matrix M with singular value decomposition  M = U\Sigma V^* is

 M^+ = V \Sigma^+ U^*, \,

where Σ+ is the pseudoinverse of Σ, which is formed by replacing every nonzero diagonal entry by its reciprocal and transposing the resulting matrix. The pseudoinverse is one way to solve linear least squares problems.

[edit] Solving homogeneous linear equations

A set of homogeneous linear equations can be written as  \mathbf{A} \, \mathbf{x} = \mathbf{0} for a matrix  \mathbf{A} and vector  \mathbf{x} . A typical situation is that  \mathbf{A} is known and a non-zero  \mathbf{x} is to be determined which satisfies the equation. Such an  \mathbf{x} belongs to  \mathbf{A} 's null space and is sometimes called a (right) null vector of  \mathbf{A} .  \mathbf{x} can be characterized as a right singular vector corresponding to a singular value of  \mathbf{A} that is zero. This observation means that if  \mathbf{A} is a square matrix and has no vanishing singular value, the equation has no non-zero  \mathbf{x} as a solution. It also means that if there are several vanishing singular values, any linear combination of the corresponding right singular vectors is a valid solution. Analogously to the definition of a (right) null vector, a non-zero  \mathbf{x} satisfying  \mathbf{x}^* \, \mathbf{A} = \mathbf{0} , with  \mathbf{x}^* denoting the conjugate transpose of  \mathbf{x} , is called a left null vector of  \mathbf{A} .

[edit] Total least squares minimization

A total least squares problem refers to determining the vector  \mathbf{x} which minimizes the 2-norm of a vector  \mathbf{A} \, \mathbf{x} under the constraint  \| \mathbf{x} \| = 1 . The solution turns out to be the right singular vector of  \mathbf{A} corresponding to the smallest singular value.

[edit] Range, null space and rank

Another application of the SVD is that it provides an explicit representation of the range and null space of a matrix M. The right singular vectors corresponding to vanishing singular values of M span the null space of M. E.g., the null space is spanned by the last two columns of V in the above example. The left singular vectors corresponding to the non-zero singular values of M span the range of M. As a consequence, the rank of M equals the number of non-zero singular values which is the same as the number of non-zero diagonal elements in \Sigma.

In numerical linear algebra the singular values can be used to determine the effective rank of a matrix, as rounding error may lead to small but non-zero singular values in a rank deficient matrix.

[edit] Low-rank matrix approximation

Some practical applications need to solve the problem of approximating a matrix M with another matrix \tilde{M} which has a specific rank r. In the case that the approximation is based on minimizing the Frobenius norm of the difference between M and \tilde{M} under the constraint that \operatorname{rank}(\tilde{M}) = r it turns out that the solution is given by the SVD of M, namely


\tilde{M} = U \tilde{\Sigma} V^*

where \tilde{\Sigma} is the same matrix as \Sigma except that it contains only the r largest singular values (the other singular values are replaced by zero). This is known as the Eckart–Young theorem, as it was proved by those two authors in 1936 (although it was later found to have been known to earlier authors; see Stewart 1993).

[edit] Separable models

The SVD can be thought of as decomposing a matrix into a weighted, ordered sum of separable matrices. By separable, we mean that a matrix \mathbf{A} can be written as an outer product of two vectors \mathbf{A}= \mathbf{u} \otimes \mathbf{v}, or, in coordinates, \mathbf{A(i,j)}= \mathbf{u}(i) \mathbf{v}(j). Specifically, the matrix M can be decomposed as:

\mathbf{M} = \sum_i \mathbf{A}_i = \sum_i \sigma_i U_i \otimes V_i ^ \dagger.

Here U_i and V_i are the ith columns of the corresponding SVD matrices, \sigma_i are the ordered singular values, and each \mathbf{A}_i is separable. The SVD can be used to find the decomposition of an image processing filter into separable horizontal and vertical filters. Note that the number of non-zero \sigma_i is exactly the rank of the matrix.

Separable models often arise in biological systems, and the SVD decomposition is useful to analyze such systems. For example, some visual area V1 simple cells receptive fields can be well described[1] by a Gabor filter in the space domain multiplied by a modulation function in the time domain. Thus, given a linear filter evaluated through, for example, reverse correlation, one can rearrange the two spatial dimensions into one dimension, thus yielding a two dimensional filter (space, time) which can be decomposed through SVD. The first column of U in the SVD decomposition is then a Gabor while the first column of V represents the time modulation (or vice-versa). One may then define an index of separability, \alpha = \sigma_1^2 / \sum_i \sigma_i^2, which is the fraction of the power in the matrix M which is accounted for by the first separable matrix in the decomposition.[2]

[edit] Nearest orthogonal matrix

It is possible to use the SVD of A to determine the orthogonal matrix R closest to A. The closeness of fit is measured by the Frobenius norm of R - A. The solution is the product U V^*.[3] This intuitively makes sense because an orthogonal matrix would have the decomposition U I V^* where I is the identity matrix, so that if A = U \Sigma V^* then the product A = U V^* amounts to replacing the singular values with ones.

A similar problem, with interesting applications in shape analysis, is the orthogonal Procrustes problem, which consists of finding an orthogonal matrix R which most closely maps A to B. Specifically,

R = \arg\min_\Omega \|A\Omega-B\|_F \quad\mathrm{subject\ to}\quad \Omega^T
\Omega=I,

where \| ... \|_F denotes the Frobenius norm.

This problem is equivalent to finding the nearest orthogonal matrix to a given matrix M=A^{T}B.

[edit] The Kabsch Algorithm

The Kabsch algorithm (called Wahba's problem in other fields) uses SVD to compute the optimal rotation (with respect to least-squares minimization) that will align a set of points with a corresponding set of points. It is used, among other applications, to compare the structures of molecules.

[edit] Other examples

The SVD is also applied extensively to the study of linear inverse problems, and is useful in the analysis of regularization methods such as that of Tikhonov. It is widely used in statistics where it is related to principal component analysis and to Correspondence analysis, and in signal processing and pattern recognition. It is also used in output-only modal analysis, where the non-scaled mode shapes can be determined from the singular vectors. Yet another usage is latent semantic indexing in natural language text processing.

The SVD also plays a crucial role in the field of Quantum information, in a form often referred to as the Schmidt decomposition. Through it, states of two quantum systems are naturally decomposed, providing a necessary and sufficient condition for them to be entangled : if the rank of the \Sigma matrix is larger than one.

One application of SVD to rather large matrices is in numerical weather prediction, where Lanczos methods are used to estimate the most linearly quickly growing few perturbations to the central numerical weather prediction over a given initial forward time period — i.e. the singular vectors corresponding to the largest singular values of the linearized propagator for the global weather over that time interval. The output singular vectors in this case are entire weather systems. These perturbations are then run through the full nonlinear model to generate an ensemble forecast, giving a handle on some of the uncertainty that should be allowed for around the current central prediction.

Another application of SVD for daily life is that point in perspective view can be unprojected in a photo using the calculated SVD matrix, this application leads to measuring length (a.k.a. the distance of two unprojected points in perspective photo) by marking out the 4 corner points of known-size object in a single photo. PRuler is a demo to implement this application by taking a photo of a regular credit card

[edit] Relation to eigenvalue decomposition

The singular value decomposition is very general in the sense that it can be applied to any m × n matrix whereas eigenvalue decomposition can only be applied to certain classes of square matrices. Nevertheless, the two decompositions are related.

Given an SVD of M, as described above, the following two relations hold:


M^{*} M = V \Sigma^{*} U^{*}\, U \Sigma V^{*} =
V (\Sigma^{*} \Sigma) V^{*}\,

M M^{*} = U \Sigma V^{*} \, V \Sigma^{*} U^{*} =
U (\Sigma \Sigma^{*}) U^{*}.\,

The right hand sides of these relations describe the eigenvalue decompositions of the left hand sides. Consequently:

  • The columns of V (right singular vectors) are eigenvectors of M^{*}M.
  • The columns of U (left singular vectors) are eigenvectors of MM^{*}.
  • The non-zero elements of Σ (non-zero singular values) are the square roots of the non-zero eigenvalues of M^{*}M or MM^{*}.

In the special case that M is a normal matrix, which by definition must be square, the spectral theorem says that it can be unitarily diagonalized using a basis of eigenvectors, so that it can be written M = U D U^* for a unitary matrix U and a diagonal matrix D. When M is also positive semi-definite, the decomposition M=UDU^* is also a singular value decomposition.

However, the eigenvalue decomposition and the singular value decomposition differ for all other matrices M: the eigenvalue decomposition is M=UDU^{-1} where U is not necessarily unitary and D is not necessarily positive semi-definite, while the SVD is M=U\Sigma V^* where Σ is a diagonal positive semi-definite, and U and V are unitary matrices that are not necessarily related except through the matrix M.

[edit] Existence

An eigenvalue λ of a matrix is characterized by the algebraic relation M u = λ u. When M is Hermitian, a variational characterization is also available. Let M be a real n × n symmetric matrix. Define f :RnR by f(x) = xT M x. By the extreme value theorem, this continuous function attains a maximum at some u when restricted to the closed unit sphere {||x|| ≤ 1}. By the Lagrange multipliers theorem, u necessarily satisfies

\nabla f = \nabla \; x^T M x = \lambda \cdot \nabla \; x^T x,

where the nabla symbol, \nabla, is the del operator.

A short calculation shows the above leads to M u = λ u (symmetry of M is needed here). Therefore λ is the largest eigenvalue of M. The same calculation performed on the orthogonal complement of u gives the next largest eigenvalue and so on. The complex Hermitian case is similar; there f(x) = x* M x is a real-valued function of 2n real variables.

Singular values are similar in that they can be described algebraically or from variational principles. Although, unlike the eigenvalue case, Hermiticity, or symmetry, of M is no longer required.

This section gives these two arguments for existence of singular value decomposition.

[edit] Based on the spectral theorem

Let M be an m-by-n matrix with complex entries. M*M is positive semidefinite and Hermitian. By the spectral theorem, there exists a unitary n-by-n matrix V such that

V^* M^* M V = \begin{bmatrix} D & 0 \\ 0 & 0\end{bmatrix}

where D is diagonal and positive definite. Partition V appropriately so we can write

\begin{bmatrix} V_1 ^* \\ V_2 ^*\end{bmatrix} M^* M \begin{bmatrix} V_1 & V_2 \end{bmatrix}
= \begin{bmatrix} V_1 ^* M^* M V_1 & V_1 ^* M^* M V_2 \\ V_2 ^* M^* M V_1 & V_2 ^* M^* M V_2  \end{bmatrix}
= \begin{bmatrix} D & 0 \\ 0 & 0\end{bmatrix}.

Therefore V1*M*MV1 = D and V2*M*MV2 = 0. The latter means MV2 = 0.

Also, since V is unitary, V1*V1 = I, V2*V2 = I and V1V1* + V2V2* = I.

Define

U_1 = M V_1 D^{-1/2}.\!

Then

U_1 D^{1/2} V_1^* = M V_1 D^{-1/2} D^{1/2} V_1^* = M . \,

We see that this is almost the desired result, except that U1 and V1 are not unitary in general, but merely isometries. To finish the argument, one simply has to "fill out" these matrices to obtain unitaries. For example, one can choose U2 such that

U = \begin{bmatrix} U_1 & U_2 \end{bmatrix}

is unitary.

Define


\Sigma =  \begin{bmatrix} \begin{bmatrix} D^{1/2} & 0 \\ 0 & 0\end{bmatrix} 
\\ 0
\end{bmatrix}

where extra zero rows are added or removed to make the number of zero rows equal the number of columns of U2. Then

 \begin{bmatrix} U_1 & U_2 \end{bmatrix} \begin{bmatrix} \begin{bmatrix} D^{1/2} & 0 \\ 0 & 0\end{bmatrix} 
\\ 0
\end{bmatrix} \begin{bmatrix} V_1 & V_2 \end{bmatrix}^* 
=
 \begin{bmatrix} U_1 & U_2 \end{bmatrix} \begin{bmatrix} D^{1/2} V_1^*  \\ 0 \end{bmatrix}
=
 U_1 D^{1/2} V_1^*  
 
= M ,

which is the desired result:

 M = U \Sigma V^* .\!

Notice the argument could begin with diagonalizing MM* rather than M*M (This shows directly that MM* and M*M have the same non-zero eigenvalues).

[edit] Based on variational characterization

The singular values can also be characterized as the maxima of uTMv, considered as a function of u and v, over particular subspaces. The singular vectors are the values of u and v where these maxima are attained.

Let M denote an m × n matrix with real entries. Let S^{m-1} and S^{n-1} denote the sets of unit 2-norm vectors in Rm and Rn respectively. Define the function


\sigma(u,v) = u^{T} M v \,

for vectors uS^{m-1} and vS^{n-1}. Consider the function σ restricted to S^{m-1} × S^{n-1}. Since both S^{m-1} and S^{n-1} are compact sets, their product is also compact. Furthermore, since σ is continuous, it attains a largest value for at least one pair of vectors uS^{m-1} and vS^{n-1}. This largest value is denoted σ1 and the corresponding vectors are denoted u1 and v1. Since \sigma_{1} is the largest value of \sigma(u,v) it must be non-negative. If it were negative, changing the sign of either u1 or v1 would make it positive and therefore larger.

Statement: u1, v1 are left and right singular vectors of M with corresponding singular value σ1.

Proof: Similar to the eigenvalues case, by assumption the two vectors satisfy the Lagrange multiplier equation:

\nabla \sigma = \nabla \; u^T M v = \lambda_1 \cdot \nabla \; u^T u + \lambda_2 \cdot \nabla \; v^T v.

After some algebra, this becomes

 M v_{1} = 2 \lambda_{1} u_{1} + 0, \,

and

 M^{T} u_{1} = 0 + 2 \lambda_{2} v_{1}. \,

Multiplying the first equation from left by u_{1}^{T} and the second equation from left by v_{1}^{T} and taking ||u|| = ||v|| = 1 into account gives

 u_{1}^{T} M v_{1} = \sigma_{1} = 2 \lambda_{1},
 v_{1}^{T} M^{T} u_{1} = \sigma_{1} = 2 \lambda_{2}.

So σ1 = 2 λ1 = 2 λ2. By properties of the functional φ defined by

\phi(w) = u_1 ^T w, \,

we have

 M v_{1} = \sigma_{1} u_{1}. \,

Similarly,

 M^{T} u_{1} = \sigma_{1} v_{1}. \,

This proves the statement.

More singular vectors and singular values can be found by maximizing σ(u, v) over normalized u, v which are orthogonal to u1 and v1, respectively.

The passage from real to complex is similar to the eigenvalue case.

[edit] Geometric meaning

Because U and V are unitary, we know that the columns u1,...,um of U yield an orthonormal basis of Km and the columns v1,...,vn of V yield an orthonormal basis of Kn (with respect to the standard scalar products on these spaces).

The linear transformation T :KnKm that takes a vector x to Mx has a particularly simple description with respect to these orthonormal bases: we have T(vi) = σi ui, for i = 1,...,min(m,n), where σi is the i-th diagonal entry of Σ, and T(vi) = 0 for i > min(m,n).

The geometric content of the SVD theorem can thus be summarized as follows: for every linear map T :KnKm one can find orthonormal bases of Kn and Km such that T maps the i-th basis vector of Kn to a non-negative multiple of the i-th basis vector of Km, and sends the left-over basis vectors to zero. With respect to these bases, the map T is therefore represented by a diagonal matrix with non-negative real diagonal entries.

To get a more visual flavour of singular values and SVD decomposition —at least when working on real vector spaces— consider the sphere S of radius one in Rn. The linear map T maps this sphere onto an ellipsoid in Rm. Non-zero singular values are simply the lengths of the semi-axes of this ellipsoid. Especially when n=m, and all the singular values are distinct and non-zero, the SVD of the linear map T can be easily analysed as a succession of three consecutive moves : consider the ellipsoid T(S) and specifically its axes ; then consider the directions in Rn sent by T onto these axes. These directions happen to be mutually orthogonal. Apply first an isometry v* sending these directions to the coordinate axes of Rn. On a second move, apply an endomorphism d diagonalized along the coordinate axes and stretching or shrinking in each direction, using the semi-axes lengths of T(S) as stretching coefficients. The composition d o v* then sends the unit-sphere onto an ellipsoid isometric to T(S). To define the third and last move u, apply an isometry to this ellipsoid so as to carry it over T(S). As can be easily checked, the composition u o d o v* coincides with T.

[edit] Calculating the SVD

[edit] Numerical Approach

The SVD of a matrix M is typically computed by a two-step procedure. In the first step, the matrix is reduced to a bidiagonal matrix. This takes O(mn2) floating-point operations, assuming that mn (this formulation uses the big O notation). The second step is to compute the SVD of the bidiagonal matrix. This step can only be done with an iterative method (as with eigenvalue algorithms). However, in practice it suffices to compute the SVD up to a certain precision, like the machine epsilon. If this precision is considered constant, then the second step takes O(n) iterations, each costing O(n) flops. Thus, the first step is more expensive, and the overall cost is O(mn2) flops (Trefethen & Bau III 1997, Lecture 31).

The first step can be done using Householder reflections for a cost of 4mn2 − 4n3/3 flops, assuming that only the singular values are needed and not the singular vectors. If m is much larger than n then it is advantageous to first reduce the matrix M to a triangular matrix with the QR decomposition and then use Householder reflections to further reduce the matrix to bidiagonal form; the combined cost is 2mn2 + 2n3 flops (Trefethen & Bau III 1997, Lecture 31).

The second step can be done by a variant of the QR algorithm for the computation of eigenvalues, which was first described by Golub & Kahan (1965). The LAPACK subroutine DBDSQR[4] implements this iterative method, with some modifications to cover the case where the singular values are very small (Demmel & Kahan 1990). Together with a first step using Householder reflections and, if appropriate, QR decomposition, this forms the DGESVD[5] routine for the computation of the singular value decomposition.

The same algorithm is implemented in the GNU Scientific Library (GSL). The GSL also offers an alternative method, which uses a one-sided Jacobi orthogonalization in step 2 (GSL Team 2007). This method computes the SVD of the bidiagonal matrix by solving a sequence of 2-by-2 SVD problems, similar to how the Jacobi eigenvalue algorithm solves a sequence of 2-by-2 eigenvalue methods (Golub & Van Loan 1996, §8.6.3). Yet another method for step 2 uses the idea of divide-and-conquer eigenvalue algorithms (Trefethen & Bau III 1997, Lecture 31).

[edit] Analytic Result of 2-by-2 SVD

The singular values of a 2-by-2 matrix can be found analytically. Let the matrix be M=z_0I+z_1\sigma_1+z_2\sigma_2+z_3\sigma_3, where z_i\in\mathbb{C} are complex numbers that parameterize the matrix, I is the identity matrix, and \sigma_i denote the Pauli matrices. Then its two singular values are given by

\begin{align}\sigma_{\pm}&=\sqrt{|z_0|^2+|z_1|^2+|z_2|^2+|z_3|^2\pm\sqrt{(|z_0|^2+|z_1|^2+|z_2|^2+|z_3|^2)^2 - |z_0^2-z_1^2-z_2^2-z_3^2|^2}}\\
&=\sqrt{|z_0|^2+|z_1|^2+|z_2|^2+|z_3|^2\pm2\sqrt{
(\mathrm{Re}z_0z_1^*)^2+(\mathrm{Re}z_0z_2^*)^2+(\mathrm{Re}z_0z_3^*)^2
 + (\mathrm{Im}z_1z_2^*)^2+(\mathrm{Im}z_2z_3^*)^2+(\mathrm{Im}z_3z_1^*)^2}}.\end{align}

[edit] Reduced SVDs

In applications it is quite unusual for the full SVD, including a full unitary decomposition of the null-space of the matrix, to be required. Instead, it is often sufficient (as well as faster, and more economical for storage) to compute a reduced version of the SVD. The following can be distinguished for an m×n matrix M of rank r:

[edit] Thin SVD

M = U_n \Sigma_n V^{*}. \,

Only the n column vectors of U corresponding to the row vectors of V* are calculated. The remaining column vectors of U are not calculated. This is significantly quicker and more economical than the full SVD if n<<m. The matrix Un is thus m×n, Σn is n×n diagonal, and V is n×n.

The first stage in the calculation of a thin SVD will usually be a QR decomposition of M, which can make for a significantly quicker calculation if n<<m.

[edit] Compact SVD

M = U_r \Sigma_r V_r^*.

Only the r column vectors of U and r row vectors of V* corresponding to the non-zero singular values Σr are calculated. The remaining vectors of U and V* are not calculated. This is quicker and more economical than the thin SVD if r<<n. The matrix Ur is thus m×r, Σr is r×r diagonal, and Vr* is r×n.

[edit] Truncated SVD

\tilde{M} = U_t \Sigma_t V_t^*.

Only the t column vectors of U and t row vectors of V* corresponding to the t largest singular values Σt are calculated. The rest of the matrix is discarded. This can be much quicker and more economical than the compact SVD if t<<r. The matrix Ut is thus m×t, Σt is t×t diagonal, and Vt* is t×n'.

Of course the truncated SVD is no longer an exact decomposition of the original matrix M, but as discussed below, the approximate matrix \tilde{M} is in a very useful sense the closest approximation to M that can be achieved by a matrix of rank t.

[edit] Norms

[edit] Ky Fan norms

The sum of the k largest singular values of M is a matrix norm, the Ky Fan k-norm of M.

The first of the Ky Fan norms, the Ky Fan 1-norm is the same as the operator norm of M as a linear operator with respect to the Euclidean norms of Km and Kn. In other words, the Ky Fan 1-norm is the operator norm induced by the standard l2 Euclidean inner product. For this reason, it is also called the operator 2-norm. One can easily verify the relationship between the Ky Fan 1-norm and singular values. It is true in general, for a bounded operator M on (possibly infinite dimensional) Hilbert spaces

\| M \| = \| M^* M \|^{\frac{1}{2}}.

But, in the matrix case, M*M½ is a normal matrix, so ||M* M||½ is the largest eigenvalue of M* M½, i.e. the largest singular value of M.

The last of the Ky Fan norms, the sum of all singular values, is the trace norm (also known as the 'nuclear norm'), defined by ||M|| = Tr[(M*M)½] (the eigenvalues of M* M are the squares of the singular values).

[edit] Hilbert–Schmidt norm

The singular values are related to another norm on the space of operators. Consider the Hilbert–Schmidt inner product on the n × n matrices, defined by \langle M,N\rangle=\operatorname{trace}(N^*M). So the induced norm is \|M\|=\langle M,M\rangle^{1/2} = \operatorname{trace}(M^*M)^{1/2}. Since trace is invariant under unitary equivalence, this shows

\| M \| = \left(\sum \sigma_i ^2\right)^{\frac{1}{2}}

where \sigma_i are the singular values of M. This is called the Frobenius norm, Schatten 2-norm, or Hilbert–Schmidt norm of M. Direct calculation shows that if

\, M = (m_{ij}),

the Frobenius norm of M coincides with

\left( \sum_{ij} | m_{ij} | ^2 \right)^{\frac{1}{2}}.

[edit] Tensor SVD

Unfortunately, the problem of finding a low rank approximation to a tensor is ill-posed. In other words, there doesn't exist a best possible solution, but instead a sequence of better and better approximations that converge to infinitely large matrices. But in spite of this, there are several ways of attempting this decomposition. There exist two types of tensor decompositions which generalise SVD to multi-way arrays. One decomposition decomposes a tensor into a sum of rank-1 tensors, see Candecomp-PARAFAC (CP) algorithm. The CP algorithm should not be confused with a rank-R decomposition but, for a given N, it decomposes a tensor into a sum of N rank-1 tensors that optimally fit the original tensor. The second type of decomposition computes the orthonormal subspaces associated with the different axes or modes of a tensor (orthonormal row space, column space, fiber space, etc.). This decomposition is referred to in the literature as the Tucker3/TuckerM, M-mode SVD, multilinear SVD and sometimes referred to as a higher-order SVD (HOSVD). In addition, multilinear principal component analysis in multilinear subspace learning involves the same mathematical operations as Tucker decomposition, being used in a different context of dimensionality reduction.

[edit] Bounded operators on Hilbert spaces

The factorization M = U\Sigma V^* can be extended to a bounded operator M on a separable Hilbert space H. Namely, for any bounded operator M, there exist a partial isometry U, a unitary V, a measure space (X, μ), and a non-negative measurable f such that

\; M = U T_f V^*,

where T_f is the multiplication by f on L2(X, μ).

This can be shown by mimicking the linear algebraic argument for the matricial case above. VTf V* is the unique positive square root of M*M, as given by the Borel functional calculus for self adjoint operators. The reason why U need not be unitary is because, unlike the finite dimensional case, given an isometry U1 with non trivial kernel, a suitable U2 may not be found such that

\begin{bmatrix} U_1 \\ U_2 \end{bmatrix}

is a unitary operator.

As for matrices, the singular value factorization is equivalent to the polar decomposition for operators: we can simply write

M = U V^* \cdot V T_f V^*

and notice that U V* is still a partial isometry while VTf V* is positive.

[edit] Singular values and compact operators

To extend notion of singular values and left/right-singular vectors to the operator case, one needs to restrict to compact operators. It is a general fact that compact operators on Banach spaces have only discrete spectrum. This is also true for compact operators on Hilbert spaces, since Hilbert spaces are a special case of Banach spaces. If T is compact, every nonzero λ in its spectrum is an eigenvalue. Furthermore, a compact self adjoint operator can be diagonalized by its eigenvectors. If M is compact, so is M*M. Applying the diagonalization result, the unitary image of its positive square root Tf has a set of orthonormal eigenvectors {ei} corresponding to strictly positive eigenvalues {σi}. For any ψH,


\; M \psi = U T_f V^* \psi = \sum_i  \langle U T_f V^* \psi, U e_i \rangle U e_i 
= \sum_i \sigma_i \langle \psi, V e_i \rangle U e_i,

where the series converges in the norm topology on H. Notice how this resembles the expression from the finite dimensional case. The σi 's are called the singular values of M. {U ei} and {V ei} can be considered the left- and right-singular vectors of M respectively.

Compact operators on a Hilbert space are the closure of finite-rank operators in the uniform operator topology. The above series expression gives an explicit such representation. An immediate consequence of this is:

Theorem M is compact if and only if M*M is compact.

[edit] History

The singular value decomposition was originally developed by differential geometers, who wished to determine whether a real bilinear form could be made equal to another by independent orthogonal transformations of the two spaces it acts on. Eugenio Beltrami and Camille Jordan discovered independently, in 1873 and 1874 respectively, that the singular values of the bilinear forms, represented as a matrix, form a complete set of invariants for bilinear forms under orthogonal substitutions. James Joseph Sylvester also arrived at the singular value decomposition for real square matrices in 1889, apparently independent of both Beltrami and Jordan. Sylvester called the singular values the canonical multipliers of the matrix A. The fourth mathematician to discover the singular value decomposition independently is Autonne in 1915, who arrived at it via the polar decomposition. The first proof of the singular value decomposition for rectangular and complex matrices seems to be by Carl Eckart and Gale Young in 1936;[6] they saw it as a generalization of the principal axis transformation for Hermitian matrices.

In 1907, Erhard Schmidt defined an analog of singular values for integral operators (which are compact, under some weak technical assumptions); it seems he was unaware of the parallel work on singular values of finite matrices. This theory was further developed by Émile Picard in 1910, who is the first to call the numbers \sigma_k singular values (or rather, valeurs singulières).

Practical methods for computing the SVD date back to Kogbetliantz in 1954, 1955 and Hestenes in 1958.[7] resembling closely the Jacobi eigenvalue algorithm, which uses plane rotations or Givens rotations. However, these were replaced by the method of Gene Golub and William Kahan published in 1965,[8] which uses Householder transformations or reflections. In 1970, Golub and Christian Reinsch[9] published a variant of the Golub/Kahan algorithm that is still the one most-used today.

[edit] See also

[edit] Notes

  1. ^ DeAngelis GC, Ohzawa I, Freeman RD (October 1995). "Receptive-field dynamics in the central visual pathways". Trends Neurosci. 18 (10): 451–8. doi:10.1016/0166-2236(95)94496-R. PMID 8545912. http://linkinghub.elsevier.com/retrieve/pii/0166-2236(95)94496-R.
  2. ^ Depireux DA, Simon JZ, Klein DJ, Shamma SA (March 2001). "Spectro-temporal response field characterization with dynamic ripples in ferret primary auditory cortex". J. Neurophysiol. 85 (3): 1220–34. PMID 11247991. http://jn.physiology.org/cgi/pmidlookup?view=long&pmid=11247991.
  3. ^ The Singular Value Decomposition in Symmetric (Lowdin) Orthogonalization and Data Compression
  4. ^ Netlib.org
  5. ^ Netlib.org
  6. ^ Eckart, C.; Young, G. (1936). "The approximation of one matrix by another of lower rank". Psychometrika 1 (3): 211–8. doi:10.1007/BF02288367.
  7. ^ Hestenes, M. R. (1958). "Inversion of Matrices by Biorthogonalization and Related Results". Journal of the Society for Industrial and Applied Mathematics 6 (1): 51–90. doi:10.1137/0106005. JSTOR 2098862. MR0092215.
  8. ^ Golub, G. H.; Kahan, W. (1965). "Calculating the singular values and pseudo-inverse of a matrix". Journal of the Society for Industrial and Applied Mathematics: Series B, Numerical Analysis 2 (2): 205–224. doi:10.1137/0702016. JSTOR 2949777. MR0183105.
  9. ^ Golub, G. H.; Reinsch, C. (1970). "Singular value decomposition and least squares solutions". Numerische Mathematik 14 (5): 403–420. doi:10.1007/BF02163027. MR1553974.

[edit] References

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

SVD分解在文本分类中的应用

SVD分解在文本处理中的应用 在自然语言处理中,最常见的两个问题分别是,将文本按主题归类和将词汇按意思归类。这两个问题都可以通过矩阵运算来圆满地,一次次能够解决。首先来看一看余弦定理和新闻分类这个问题...

LSA和SVD两种矩阵分解

谈谈SVD和LSA 首先SVD和LSA是什么呢,SVD全称是singular value decomposition,就是俗称的奇异值分解,SVD的用处有很多,比如可以做PCA(主成分分析)...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

利用SVD矩阵分解进行k次交叉实验和Top—N推荐

如果上一节没看的,请先看上一节Surprise项目的使用。本文利用开源GitHub项目Surprise。   上一节说到具体的安装和一些方法的属性,本节将以SVD为例具体的代码demo的实现。   先...

转载 感谢原作者 矩阵分解在推荐系统中的应用:NMF和经典SVD实战

矩阵分解在推荐系统中的应用:NMF和经典SVD实战 May 25th 2015  | Tags: 机器学习 2015-05-25 本文以NMF和经典SVD为例,讲一讲矩阵分解在推...

矩阵分解----奇异值分解(SVD)原理和应用

1矩阵分解背景 在很多情况下,数据中的一小段携带了数据集中的大部分信息,其他信息要么是噪声,要么是毫不相关的信息。 矩阵分析可以将原始矩阵表示成新的易于处理的形式,这种新形式是两个或多个矩阵的乘积。...

矩阵分解 (特征值/奇异值分解+SVD+解齐次/非齐次线性方程组)

,#1. 用途#1.1 应用领域 最优化问题:最小二乘问题 (求取最小二乘解的方法一般使用SVD) 统计分析:信号与图像处理 求解线性方程组:Ax=0或Ax=bAx = 0 或 Ax =b 奇异值...

【机器学习】主题模型(一):条件概率、矩阵分解

两篇文档是否相关往往不只决定于字面上的词语重复,还取决于文字背后的语义关联。对语义关联的挖掘,可以让搜索更加智能化。主题模型是对文字隐含主题进行建模的方法,其克服传统信息检索中文档相似度计算方法的缺点...

sklearn矩阵分解类库学习

sklearn.decomposition模块提供矩阵分解算法,主要是降维技术,如PCA、NMF 或ICA

推荐算法学习-MXNET 矩阵分解应用实例

案例:Matrix-factorization 平台:MXNET 数据源下载: https://grouplens.org/datasets/movielens/ Step1. 自定义 DataI...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)