SVD分解和矩阵的Lipschitz条件等

Lipschitz条件

可以用如下的公式来表示Lipschitz条件:
∣ ∣ f ( x ) − f ( y ) ∣ ∣ ≤ K ∣ ∣ x − y ∣ ∣ ||f(x)-f(y)||\leq K||x-y|| f(x)f(y)Kxy
这个公式限制了函数的上升的速率不可能太快,在二维笛卡尔坐标上可以表示为函数的斜率不能够超过一个常数 k k k

矩阵的Lipschitz条件

对于一个矩阵A如果想让其满足Lipschitz条件,那么需要满足下面的公式:
∣ ∣ A x ∣ ∣ ≤ ∣ ∣ K x ∣ ∣ 其 中 K 为 一 个 常 数 , x 为 向 量 , A 为 一 个 变 换 矩 阵 ||Ax||\leq ||Kx|| \quad 其中K为一个常数,x为向量,A为一个变换矩阵 AxKxK,xA
下面我们对这个公式进行分析:
∣ ∣ A x ∣ ∣ ≤ K ∣ ∣ x ∣ ∣ ( A x , A x ) ≤ K 2 ( x , x ) 可 知 : ( A x , A x ) = x T A T A x = ( A T A x , x ) 也 可 知 : K 2 ( x , x ) = ( K 2 x , x ) 那 么 得 到 : ( A T A x , x ) ≤ ( K 2 x , x ) ( ( A T A − K 2 ) x , x ) ≤ 0 \begin{aligned} ||Ax||&\leq K||x||\\ (Ax,Ax)&\leq K^2(x,x)\\ 可知:(Ax,Ax)&=x^TA^TAx=(A^TAx,x)\\ 也可知:K^2(x,x)&=(K^2x,x)\\ 那么得到: (A^TAx,x)&\leq (K^2x,x)\\ ((A^TA-K^2)x,x) &\leq 0\\ \end{aligned} Ax(Ax,Ax):(Ax,Ax):K2(x,x):(ATAx,x)((ATAK2)x,x)KxK2(x,x)=xTATAx=(ATAx,x)=(K2x,x)(K2x,x)0
可知 A T A A^TA ATA是一个半正定矩阵。
因为 x T A T A x x^TA^TAx xTATAx是一个范数表达式
所以 x T A T A x 永 远 ≥ 0 x^TA^TAx永远\geq 0 xTATAx0,所以半正定
那么可以得到:
x T ( A T A − K 2 ) ≤ 0 x^T(A^TA-K^2) \leq 0 xT(ATAK2)0
即:
λ m a x ( A T A ) < K 2 \lambda _{max(A^TA)}<\sqrt {K^2}\\ λmax(ATA)<K2
也就是:
谱 范 数 ≤ K 2 谱范数\leq \sqrt{K^2} K2

所以如果想要使一个矩阵具有1-Lipschitz 连续性,那么就让 A / = λ m a x A /= \lambda_{max} A/=λmax

SVD分解,奇异值分解

SVD的定义

如果一个矩阵 A m ∗ m A_{m*m} Amm是一个实对称矩阵,那么 A = Q Σ Q T A=Q\Sigma Q^T A=QΣQT,其中 Q Q Q为标准正交阵, Σ \Sigma Σ为对角矩阵。 Σ = ( σ 1 , 0 , 0 0 , σ 2 , 0 0 , 0 , σ 3 ) m ∗ n \Sigma =\begin{pmatrix}\sigma_1,0,0\\0,\sigma_2,0\\0,0,\sigma_3\end{pmatrix}_{m*n} Σ=σ1,0,00,σ2,00,0,σ3mn

但是如果对一个矩阵 A m ∗ n A_{m*n} Amn那么我们想把它分解为 A = U m ∗ m Σ m ∗ n V n ∗ n T A=U_{m*m}\Sigma_{m*n} V^T_{n*n} A=UmmΣmnVnnT
并且 U , V U,V U,V都是标准真正交阵,即: U T U = E , V T V = E U^TU=E,V^TV=E UTU=E,VTV=E,并且 U U U称之为左奇异矩阵, V T V^T VT称之为右奇异矩阵。

SVD的求解

由上面可以知道 A = U m ∗ m Σ m ∗ n V n ∗ n T A=U_{m*m}\Sigma_{m*n} V^T_{n*n} A=UmmΣmnVnnT,那么我们求 A T A A^TA ATA可以得到如下:
A T A = ( U Σ V T ) T ( U Σ V T ) = V Σ T U T U Σ V T = V Σ Σ T V T 同 理 : A A T = U Σ T Σ U T (1) \begin{aligned} A^TA&=(U\Sigma V^T)^T(U\Sigma V^T)\\ &=V\Sigma^TU^TU\Sigma V^T\\ &=V\Sigma \Sigma^TV^T\\ 同理:AA^T&=U\Sigma^T \Sigma U^T \end{aligned} \tag1 ATAAAT=(UΣVT)T(UΣVT)=VΣTUTUΣVT=VΣΣTVT=UΣTΣUT(1)
这首我们把 A T A 和 A A T A^TA和AA^T ATAAAT分别乘上 u i , v i ( 这 是 U 和 V 的 分 量 ) u_i,v_i(这是U和V的分量) ui,vi(UV)那么就可以得到下列的式子:
( A A T ) u i = U Σ Σ T U T u i = σ i 2 u i ( 这 里 用 到 了 单 位 正 交 矩 阵 和 正 交 向 量 的 知 识 ) ( A T A ) v i = σ i 2 v i (2) \begin{aligned} (AA^T)u_i&=U\Sigma \Sigma^T U^Tu_i=\sigma_i^2u_i(这里用到了单位正交矩阵和正交向量的知识)\\ (A^TA)v_i&=\sigma_i^2v_i\\ \end{aligned} \tag2 (AAT)ui(ATA)vi=UΣΣTUTui=σi2ui()=σi2vi(2)
由上面的式子(2)可以知道,
U = ( u 1 , u 2 , u 3 ) 由 ( A A T ) 的 特 征 向 量 组 成 V = ( v 1 , v 2 , v 3 ) 由 ( A T A ) 的 特 征 向 量 组 成 到 这 里 我 们 就 知 道 了 如 何 把 U 和 V 求 出 来 U=(u_1,u_2,u_3)由(AA^T)的特征向量组成\\ V=(v_1,v_2,v_3)由(A^TA)的特征向量组成\\ 到这里我们就知道了如何把U和V求出来 U=(u1,u2,u3)(AAT)V=(v1,v2,v3)(ATA)UV

那么如何求 Σ = ( σ 1 , 0 , 0 0 , σ 2 , 0 0 , 0 , σ 3 ) m ∗ n \Sigma =\begin{pmatrix}\sigma_1,0,0\\0,\sigma_2,0\\0,0,\sigma_3\end{pmatrix}_{m*n} Σ=σ1,0,00,σ2,00,0,σ3mn呢?

我们求 A V AV AV可以表示为如下:
A V = U Σ V T V = U Σ 由 上 可 以 推 出 : A ( v 1 , v 2 , v 3 ) = ( u 1 , u 2 , u 3 ) ( σ 1 , 0 , 0 0 , σ 2 , 0 0 , 0 , σ 3 ) ⇒ ( A v 1 , A v 2 , A v 3 ) = ( σ 1 u 1 , σ 2 u 2 , σ 3 u 3 ) m ∗ n ⇒ A v i = σ i u i ⇒ σ i = A v i u i (3) \begin{aligned} AV=U\Sigma V^TV&=U\Sigma\\ 由上可以推出:A(v_1,v_2,v_3)&=(u_1,u_2,u_3) \begin{pmatrix} \sigma_1,0,0\\ 0,\sigma_2,0\\ 0,0,\sigma_3 \end{pmatrix}\\ \Rightarrow(Av_1,Av_2,Av_3)&=(\sigma_1u_1,\sigma_2u_2,\sigma_3u_3)_{m*n}\\ \Rightarrow Av_i&=\sigma_iu_i\\ \Rightarrow\sigma_i&=\frac {Av_i}{u_i} \end{aligned} \tag3 AV=UΣVTV:A(v1,v2,v3)(Av1,Av2,Av3)Aviσi=UΣ=(u1,u2,u3)σ1,0,00,σ2,00,0,σ3=(σ1u1,σ2u2,σ3u3)mn=σiui=uiAvi(3)

到此我们已经可以求出SVD分解所需要的全部过程了。根据公式(2)求出 A A T 和 A T A AA^T和A^TA AATATA U , V 和 σ i 2 U,V和\sigma_i^2 U,Vσi2根据公式(3)求出 σ i \sigma_i σi
注意 Σ Σ m , m T 和 Σ T Σ n ∗ n \Sigma\Sigma^T_{m,m}和\Sigma^T\Sigma_{n*n} ΣΣm,mTΣTΣnn拥有一样的 σ i \sigma_i σi,只是可能一个不满秩,一个满秩罢了。
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值