3 minute read

这次我们从结论出发反推。

SVD 即任意 matrix A 都可以分解为:

Am×n=Um×mDm×nVn×nT

其中:

  • Um×m is orthogonal
    • UUT=Im×m
  • Dm×n is diagonal
    • 因为 D 不一定是 square,所以不一定有 D=DT
  • Vn×n is orthogonal
    • VVT=In×n

m=n 时,你可以把 eigen-decomposition 看成是 SVD 的特殊情况。

注意到可以有如下两式:

AAT=UDVTVDTUT=UDDTUTATA=VDTUTUDVT=VDTDVV

这个很像是 eigen-decomposition 啊……对的,它其实就是 eigen-decomposition!

所以我们先 eigen-decompose AAT 得到 U,然后 eigen-decompose ATA 得到 V。但是如何从 DDTDTD 中确定 D?下面详细说。

1. Gram matrixPermalink

A Gram matrix of vectors a1,,an is a matrix G whose Gij=aiTaj.

If matrix Am×n=[a1an], then Gn×n=ATA

A Gram matrix is positive definite and symmetric.

2. Rank–nullity theoremPermalink

我们在 Kernel in Linear Algebra / Inner Product Space / Hyperplane / SVM / Kernel Function / Normed vector space / Metric Space 里其实讲到了这个 Rank–nullity theorem,但是我当时还不知道它可以和 eigen-decomposition 联系起来。

假设有一个线性变换 L:VW,那么 rank-nullity theorem 说:

dim(ker(L))+dim(im(L))=dim(V)

我们把 matrix Am×n 看成一个线性变换 A:RnRm,那么 rank-nullity theorem 可以表示为:

nullity(A)+rank(A)=n

然后关键来了:

  • The nullity is the dimension of the kernel of the matrix.
  • 然后 kernel 可以看成什么?kernel 其实就是 eigenvalue λ=0 的 eigenspace 呀
  • 所以 rank(A)=ndim(Eλ=0;A)

3. Rank of AAT and ATAPermalink

首先一点:rank(A)=rank(AT)。证明就不细说了,思路是:

  1. rank(A)=ColumnRank(A)=RowRank(A)
  2. 然后 ColumnRank(A)=RowRank(AT)

所以必定有 rank(AAT)=rank(ATA)

我们可以进一步证明 rank(AAT)=rank(ATA)=rank(A),参考 Prove rank AAT = rank A for any Am×n

根据 rank-nullity theorem:

nullity(ATA)+rank(ATA)=nnullity(AAT)+rank(AAT)=m

假设 m>n,那么 mn=nullity(AAT)nullity(ATA),这个值说明什么?说明针对同一个 eigenvalue λ=0AATATA 多了 mn 个 eigenvectors。

问题来了:

  • 如果不考虑 uniqueness 的话,能否说明 AATATAmn 个值为 0 的 eigenvalues?
    • 答案是可以,但是你不能用 “针对同一个 eigenvalue λ=0AATATA 多了 mn 个 eigenvectors” 这个理由,因为 eigenvector 的数量是 geometric multiplicity
    • 而 eigenvalue 的数量是 algebraic multiplicity
  • 那么其他 0 的 eigenvalues 的情况如何?

看下一节

4. Sylvester’s determinant identityPermalink

If A and B are matrices of size m×n and n×m respectively, then

det(Im+AB)=det(In+BA)

我们借此研究一下 characteristic polynomial of AAT:

det(λImAAT)=λmdet(Im+AλAT)=λmdet(In+ATAλ)=λmλndet(λIn+λATAλ)=λmndet(λInATA)

Amazing!我们可以推论 (记得我们仍然在 m>n 的大前提下):

  • 如果 λ0ATA (n×n) 的 eigenvalue 那它也一定是 AAT (m×m) 的 eigenvalue
    • 且 algebraic multiplicity 相同
  • ATA (n×n) 不一定有 λ=0 的 eigenvalue
  • 假设 ATA (n×n) 中 eigenvalue λ=0 的 algebraic multiplicity 为 m0 (m0=0 表示 no such eigenvalue) AAT (m×m) 中 eigenvalue λ=0 的 algebraic multiplicity 为 m0+mn
  • 换言之,ATA and AAT share the same non-zero eigenvalues!

5. SVDPermalink

我们回头看 DDTDTD。它俩都是 diagonal 因为 D 本身是 diagonal。考虑到

  • DDT 对角线上是 AAT 的 eigenvalues (且按惯例是降序排列,下同)
  • DTD 对角线上是 ATA 的 eigenvalues

所以 DDTDTD 虽然维度不同,但也只是 “对角线上有 0 / 无 0” 和 “对角线上 0 多 / 0 少” 的区别。

考虑到 Dm×n 是 diagonal,所以它应该只需要 ATAn 个 eigenvalue 就可以确定了。那么它的对角线上的值到底是多少呢?

  • 考虑 general 的情况,sigular value 的个数应该是 min(m,n)

考虑到 ATA 是 positive definite,所以它的 non-zero eigenvalues 必定为 positive。所以我们定义 singular value σi=λi with Dii=σi and DTD=diag(λ1,,λn) being ATA’s eigenvalue matrix

然后有:

  • AAT 的 eigenvectors (即 U 的 columns) 称为 Aleft singular vectors
  • ATA 的 eigenvectors (即 V 的 columns) 称为 Aright singular vectors

一个题外话:Theorem: If q is an eigenvector of AAT, then ATq is an eigenvector of ATA.

Proof:

AATq=λqATAATq=ATλqATA(ATq)=λ(ATq)

Categories:

Updated:

Comments