Lipschitz条件
可以用如下的公式来表示Lipschitz条件:
∣
∣
f
(
x
)
−
f
(
y
)
∣
∣
≤
K
∣
∣
x
−
y
∣
∣
||f(x)-f(y)||\leq K||x-y||
∣∣f(x)−f(y)∣∣≤K∣∣x−y∣∣
这个公式限制了函数的上升的速率不可能太快,在二维笛卡尔坐标上可以表示为函数的斜率不能够超过一个常数
k
k
k。
矩阵的Lipschitz条件
对于一个矩阵A如果想让其满足Lipschitz条件,那么需要满足下面的公式:
∣
∣
A
x
∣
∣
≤
∣
∣
K
x
∣
∣
其
中
K
为
一
个
常
数
,
x
为
向
量
,
A
为
一
个
变
换
矩
阵
||Ax||\leq ||Kx|| \quad 其中K为一个常数,x为向量,A为一个变换矩阵
∣∣Ax∣∣≤∣∣Kx∣∣其中K为一个常数,x为向量,A为一个变换矩阵
下面我们对这个公式进行分析:
∣
∣
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)((ATA−K2)x,x)≤K∣∣x∣∣≤K2(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
xTATAx永远≥0,所以半正定
那么可以得到:
x
T
(
A
T
A
−
K
2
)
≤
0
x^T(A^TA-K^2) \leq 0
xT(ATA−K2)≤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} Am∗m是一个实对称矩阵,那么 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,σ3⎠⎞m∗n
但是如果对一个矩阵
A
m
∗
n
A_{m*n}
Am∗n那么我们想把它分解为
A
=
U
m
∗
m
Σ
m
∗
n
V
n
∗
n
T
A=U_{m*m}\Sigma_{m*n} V^T_{n*n}
A=Um∗mΣm∗nVn∗nT
并且
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=Um∗mΣm∗nVn∗nT,那么我们求
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
ATA同理:AAT=(UΣVT)T(UΣVT)=VΣTUTUΣVT=VΣΣTVT=UΣTΣUT(1)
这首我们把
A
T
A
和
A
A
T
A^TA和AA^T
ATA和AAT分别乘上
u
i
,
v
i
(
这
是
U
和
V
的
分
量
)
u_i,v_i(这是U和V的分量)
ui,vi(这是U和V的分量)那么就可以得到下列的式子:
(
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)的特征向量组成到这里我们就知道了如何把U和V求出来
那么如何求 Σ = ( σ 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,σ3⎠⎞m∗n呢?
我们求
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)m∗n=σiui=uiAvi(3)