Belabbas M A, Wolfe P J. Fast Low-Rank Approximation for Covariance Matrices[C]. IEEE International Workshop on Computational Advances in Multi-Sensor Adaptive Processing, 2007: 293-296.
Nystorm method
和在WIKI看到的不是同一个东西?
假设
G
∈
R
n
×
n
G \in \mathbb{R}^{n \times n}
G∈Rn×n为对称正定矩阵。
G
=
[
A
B
T
B
C
]
G = \left [ \begin{array}{ll} A & B^T \\ B & C \end{array} \right ]
G=[ABBTC]
其中
A
∈
R
k
×
k
,
k
<
n
A \in \mathbb{R}^{k \times k}, k<n
A∈Rk×k,k<n。
假设
G
=
U
Λ
U
T
G = U \Lambda U^T
G=UΛUT,
A
=
U
A
Λ
A
U
A
T
A = U_A \Lambda_A U_A^T
A=UAΛAUAT,令
U
~
=
[
U
A
B
U
A
Λ
A
−
1
]
\widetilde{U} = \left [ \begin{array}{c} U_A \\ BU_A \Lambda_A^{-1} \end{array} \right ]
U
=[UABUAΛA−1]
则:
G
~
:
=
U
~
Λ
A
U
~
T
=
[
A
B
T
B
B
A
−
1
B
T
]
\widetilde{G} := \widetilde{U} \Lambda_A \widetilde{U}^T = \left [ \begin{array}{ll} A & B^T \\ B & BA^{-1}B^T \end{array} \right ]
G
:=U
ΛAU
T=[ABBTBA−1BT]
易得:
∥
G
−
G
~
∥
=
∥
C
−
B
A
−
1
B
T
∥
\|G - \widetilde{G}\| = \|C-BA^{-1}B^T\|
∥G−G
∥=∥C−BA−1BT∥
再玩一下,令:
G
=
[
A
1
A
2
T
A
3
T
A
2
M
B
T
A
3
B
C
]
G = \left [ \begin{array}{lll} A_1 & A_2^T & A_3^T \\ A_2 & M & B^T \\ A_3 & B & C \end{array} \right ]
G=⎣⎡A1A2A3A2TMBA3TBTC⎦⎤
且
M
=
U
M
Λ
M
U
M
T
M = U_M \Lambda_M U_M^T
M=UMΛMUMT.
再令
U
~
:
=
[
A
2
T
U
M
Λ
M
−
1
U
M
B
U
M
Λ
M
−
1
]
\widetilde{U} := \left [ \begin{array}{c} A_2^TU_M \Lambda_M^{-1} \\ U_M \\ B U_M \Lambda_M^{-1} \end{array} \right ]
U
:=⎣⎡A2TUMΛM−1UMBUMΛM−1⎦⎤
则:
G
~
:
=
U
~
Λ
M
U
~
T
=
[
A
2
T
M
−
1
A
2
A
2
T
A
2
T
M
−
1
B
T
A
2
M
B
T
B
M
−
1
A
2
B
B
M
−
1
B
T
]
\widetilde{G} := \widetilde{U} \Lambda_M \widetilde{U}^T = \left [ \begin{array}{ccc} A_2^T M^{-1} A_2 & A_2^T & A_2^T M^{-1} B^T \\ A_2 & M & B^T \\ BM^{-1}A_2 & B & BM^{-1} B^T \end{array} \right ]
G
:=U
ΛMU
T=⎣⎡A2TM−1A2A2BM−1A2A2TMBA2TM−1BTBTBM−1BT⎦⎤
这个阵型还蛮酷的。
低秩逼近
先来介绍一个性质:
F
(
F
T
F
)
−
1
/
2
F(F^TF)^{-1/2}
F(FTF)−1/2列正交(当然
F
T
F
F^TF
FTF得可逆)。
(
F
(
F
T
F
)
−
1
/
2
)
T
F
(
F
T
F
)
−
1
/
2
=
(
F
T
F
)
−
1
/
2
F
T
F
(
F
T
F
)
−
1
/
2
=
I
(F(F^TF)^{-1/2})^TF(F^TF)^{-1/2} = (F^TF)^{-1/2}F^TF(F^TF)^{-1/2} = I
(F(FTF)−1/2)TF(FTF)−1/2=(FTF)−1/2FTF(FTF)−1/2=I
实际上,如果
F
T
F
=
V
Λ
V
T
F^TF = V\Lambda V^T
FTF=VΛVT,那么
F
V
k
Λ
k
−
1
/
2
FV_k \Lambda_k^{-1/2}
FVkΛk−1/2列正交。
所以,我们可以让
F
F
F的列为
G
G
G中某些列的组合,再让
P
k
:
=
F
V
k
Λ
k
−
1
/
2
P_k := FV_k \Lambda_k^{-1/2}
Pk:=FVkΛk−1/2,最后:
G
~
k
:
=
P
k
P
k
T
G
P
k
P
k
T
\widetilde{G}_k := P_kP_k^TGP_kP_k^T
G
k:=PkPkTGPkPkT
来作为
G
G
G的一个近似。
矩阵乘法的逼近
如果我们能够令
∥
G
G
T
−
F
F
T
∥
\|GG^T-FF^T\|
∥GGT−FFT∥尽可能小,那么
P
k
P
k
T
G
P_kP_k^TG
PkPkTG就越有可能成为一个好的逼近,这需要利用矩阵乘法的逼近。
对于矩阵
A
∈
R
m
×
n
A \in \mathbb{R}^{m \times n}
A∈Rm×n和
B
∈
R
n
×
p
B \in \mathbb{R}^{n \times p}
B∈Rn×p,得:
A
B
=
∑
i
=
1
n
A
i
B
i
AB = \sum_{i=1}^n A_iB^i
AB=i=1∑nAiBi
其中
A
i
A_i
Ai为
A
A
A的第i列,
B
i
B^i
Bi为
B
B
B的第i行。
论文举了一个例子:
如果
n
=
2
n=2
n=2,且
A
2
=
α
A
1
A_2 = \sqrt{\alpha} A_1
A2=αA1,
B
=
A
T
B=A^T
B=AT,
那么
A
B
=
(
1
+
α
)
A
1
A
1
T
AB = (1+\alpha)A_1A_1^T
AB=(1+α)A1A1T。这意味着,我们只需通过
A
A
A的第一列就能恢复
A
B
AB
AB。
所以接下来的问题是:
- 如何选择行或者列
- 如何调整它们的大小(乘个系数)
作者说,有一个神谕说列和行应该为
S
⊂
{
1
,
…
,
n
}
S \subset \{1, \ldots, n\}
S⊂{1,…,n},不失一般性,假设其为
S
=
{
1
,
…
,
k
}
S = \{1, \ldots, k\}
S={1,…,k}。下面的定理给出了权重的选择:
所以我们要挑选
S
S
S,使得
Z
Z
Z的对角线元素尽可能小,这意味着,我们要挑选这样的
S
S
S,使得
<
A
i
,
A
i
>
<
B
i
,
B
i
>
<A_i, A_i><B^i, B^i>
<Ai,Ai><Bi,Bi>最大。
于是有了下面的俩个算法,分别针对矩阵乘法和矩阵逼近的: