【TSVD】(一)range、null space 和 rank

在做非线性问题的优化时,难免会遇到一些自由度不可观的问题,如果这个自由度在理论上就是不可观的(比如,不管怎么运动都无法令这个自由度从不可观变成可观),那么在优化的时候就要单独地把这个自由度设置成fixed.
如果这个自由度理论上是可观的,而这并不表示该自由度在现实中一定是可观的(比如,需要满足一定的运动条件才能令这个自由度可观),也就是,对该自由度约束越多,可观性越强,反之亦然.
那么在优化中如何自动判定当前自由度是否可观呢?可观时,更新该自由度,不可观时,fixed该自由度. 下面介绍的TSVD就是为了解决这个问题.


1. 线性空间
1.1 span

假设存在一向量空间 V \mathcal{V} V,span也是一个向量空间,它由一组来自 V \mathcal{V} V的向量 { v 1 , … , v n } \left\{\mathbf{v}_{1}, \ldots, \mathbf{v}_{n}\right\} {v1,,vn}的全部可能的任意组合构成
span ⁡ [ { v 1 , … , v n } ] = { ∑ i = 1 n c i v i ∣ c i ∈ F } \operatorname{span}\left[\left\{\mathbf{v}_{1}, \ldots, \mathbf{v}_{n}\right\}\right]=\left\{\sum_{i=1}^{n} c_{i} \mathbf{v}_{i} \mid c_{i} \in \mathcal{F}\right\} span[{v1,,vn}]={i=1nciviciF}

线性无关的定义
如果只有当 c i c_{i} ci都为零时,才能组合得到零向量的话,那么这组向量就是线性无关的,也就是说,这组向量中任何一个都不能通过其它向量组合得到

1.2 range定义

也叫,列空间/值域
线性映射(linear map) f f f 可以将 V \mathcal{V} V mapping到另一个向量空间 W \mathcal{W} W,linear map f f f的range or image定义如下:
r a n g e [ f ] = { w ∈ W ∣ w = f ( v ) , v ∈ V } range [f]=\{\mathbf{w} \in \mathcal{W} \mid \mathbf{w}=f(\mathbf{v}), \mathbf{v} \in \mathcal{V}\} range[f]={wWw=f(v),vV}

range是 W \mathcal{W} W的一个子集

1.3 kernel/nullspace定义

 kernel  [ f ] = { v ∈ V ∣ f ( v ) = 0 , 0 ∈ W } \text { kernel }[f]=\{\mathbf{v} \in \mathcal{V} \mid f(\mathbf{v})=\mathbf{0}, \mathbf{0} \in \mathcal{W}\}  kernel [f]={vVf(v)=0,0W}

kernel是 V \mathcal{V} V的一个子集

1.4 rank-nullity theorem

dim ⁡ [  kernel  [ f ] ] + dim ⁡ [  range  [ f ] ] = dim ⁡ [ V ] \operatorname{dim}[\text { kernel }[f]]+\operatorname{dim}[\text { range }[f]]=\operatorname{dim}[\mathcal{V}] dim[ kernel [f]]+dim[ range [f]]=dim[V]


2. 线性映射矩阵

定义一个线性映射 A m × n A_{m \times n} Am×n,表示可以将任意向量 v n × 1 ∈ V \mathbf{v_{n \times 1}} \in \mathcal{V} vn×1V映射到 w m × 1 ∈ W \mathbf{w_{m \times 1}} \in \mathcal{W} wm×1W

2.1 矩阵的range定义

 range  [ A ] = { w ∈ W ∣ w = A v , v ∈ V } \text { range }[\mathbf{A}]=\{\mathbf{w} \in \mathcal{W} \mid \mathbf{w}=\mathbf{A} \mathbf{v}, \mathbf{v} \in \mathcal{V}\}  range [A]={wWw=Av,vV}

矩阵 A A A的列向量集合为 { a 1 , … , a n } \left\{\mathbf{a}_{1}, \ldots, \mathbf{a}_{n}\right\} {a1,,an},那么range也可以定义成:

range ⁡ [ A ] = span ⁡ [ { a 1 , … , a n } ] \operatorname{range}[\mathbf{A}]=\operatorname{span}\left[\left\{\mathbf{a}_{1}, \ldots, \mathbf{a}_{n}\right\}\right] range[A]=span[{a1,,an}]

进一步,矩阵的range的秩与矩阵的秩相等
rank ⁡ [ A ] = dim ⁡ [  range  [ A ] ] \operatorname{rank}[\mathbf{A}]=\operatorname{dim}[\text { range }[\mathbf{A}]] rank[A]=dim[ range [A]]

2.2 矩阵的kernel定义

 null  [ A ] = { v ∈ V ∣ A v = 0 , 0 ∈ W } \text { null }[\mathbf{A}]=\{\mathbf{v} \in \mathcal{V} \mid \mathbf{A} \mathbf{v}=\mathbf{0}, \mathbf{0} \in \mathcal{W}\}  null [A]={vVAv=0,0W}

2.3 矩阵的rank-nullity theorem

dim ⁡ [  null  [ A ] ] + rank ⁡ [ A ] = n \operatorname{dim}[\text { null }[\mathbf{A}]]+\operatorname{rank}[\mathbf{A}]=n dim[ null [A]]+rank[A]=n


3. SVD分解中的range、nullspace和rank

A = U D V T → A V = U D A=UDV^T \rightarrow A V = U D A=UDVTAV=UD

比较column(矩阵块乘法)可得:
A v i = σ i u i A v_{i}=\sigma_{i} u_{i} Avi=σiui

假设 r a n k ( A ) = r rank(A)=r rank(A)=r
当奇异值大于零时( A v i σ i = u i \frac{A v_{i}}{\sigma_{i}}= u_{i} σiAvi=ui),参照2.1中矩阵range的定义可知,
range ⁡ [ A ] = span ⁡ [ { u 1 , … , u r } ] \operatorname{range}[\mathbf{A}]=\operatorname{span}\left[\left\{\mathbf{u}_{1}, \ldots, \mathbf{u}_{r}\right\}\right] range[A]=span[{u1,,ur}]

当奇异值等于0时,可得,
 null  [ A ] = span ⁡ [ { v r + 1 , … , v n } ] \text { null }[\mathbf{A}]=\operatorname{span}\left[\left\{\mathbf{v}_{r+1}, \ldots, \mathbf{v}_{n}\right\}\right]  null [A]=span[{vr+1,,vn}]


4. 近似矩阵

假设矩阵 A A A的rank是 r r r,其可以写成:
A = ∑ i = 1 r σ i u i v i T \mathbf{A} =\sum_{i=1}^{r} \sigma_{i} \mathbf{u}_{i} \mathbf{v}_{i}^{T} A=i=1rσiuiviT

对其进行low-rank approximation,得到近似矩阵 A k A_k Ak
A k = ∑ i = 1 k σ i u i v i T , k < r \mathbf{A}_{k}=\sum_{i=1}^{k} \sigma_{i} \mathbf{u}_{i} \mathbf{v}_{i}^{T}, \quad k<r Ak=i=1kσiuiviT,k<r

上面的近似过程中仅使用了前 k k k个奇异值和奇异向量, A − A k \mathbf{A}-\mathbf{A_k} AAk由剩下的 r − k r-k rk个奇异值和奇异向量构成,那么可得:
∥ A − A k ∥ 2 = σ k + 1 \| \mathbf{A}-\mathbf{A_k} \|_2 = \sigma_{k+1} AAk2=σk+1


5. 代数秩(algebraic rank)与数值秩(numerical rank)
5.1 代数秩

代数秩(algebraic rank)是指通过行列式变换得到的秩,
A = ( 1 2 3 4 5 6 7 8 9 ) \mathbf{A}=\left(\begin{array}{lll} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{array}\right) A= 147258369

A A A加上随机噪声得到 A ∗ A^* A:
A ∗ = ( 1.0003 1.9983 3.0003 3.9992 4.9999 6.0003 7.0014 7.9998 8.9991 ) \mathbf{A}^{*}=\left(\begin{array}{lll} 1.0003 & 1.9983 & 3.0003 \\ 3.9992 & 4.9999 & 6.0003 \\ 7.0014 & 7.9998 & 8.9991 \end{array}\right) A= 1.00033.99927.00141.99834.99997.99983.00036.00038.9991

A ∗ A^* A在代数上满秩(通过行列式变换得到),实际上却是欠定的,这种现象在真实世界中很常见

5.2 数值秩

根据 p = 2 p=2 p=2诱导矩阵范数定义numerical rank 为 r ϵ r_{\epsilon} rϵ ϵ \epsilon ϵ为近似阈值
rank ⁡ [ A , ϵ ] = min ⁡ ∥ A − B ∥ 2 ≤ ϵ rank ⁡ [ B ] \operatorname{rank}[\mathbf{A}, \epsilon]=\min _{\|\mathbf{A}-\mathbf{B}\|_{2} \leq \epsilon} \operatorname{rank}[\mathbf{B}] rank[A,ϵ]=AB2ϵminrank[B]

其中 ϵ \epsilon ϵ应满足
σ r ϵ > ϵ ≥ σ r ϵ + 1 \sigma_{r_{\epsilon}}>\epsilon \geq \sigma_{r_{\epsilon}+1} σrϵ>ϵσrϵ+1

σ r ϵ \sigma_{r_{\epsilon}} σrϵ σ r ϵ + 1 \sigma_{r_{\epsilon}}+1 σrϵ+1之间的gap应该足够大,以保证能够应对噪声对 ϵ \epsilon ϵ的影响,如果奇异值从大到小缓慢变化到零,那么numerical rank 将是 ill-defined 的


@leatherwang
二零二零年十一月八日

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值