分类描述
一 描述principal angles的两篇好文献
1 Principal Angles Between Subspaces andTheir Tangents
2 PRINCIPAL ANGLES BETWEEN SUBSPACES IN AN A-BASED SCALAR PRODUCT: ALGORITHMS AND PERTURBATION ESTIMATES
二 对于principal angles的一种形象化理解
假设
X
X
X是一个
n
∗
p
n*p
n∗p矩阵,并且列于列之间是单位正交的,可以将其理解为具有
p
p
p个
n
n
n维向量的矩阵;假设
Y
Y
Y是一个
n
∗
q
n*q
n∗q矩阵,并且列于列之间是单位正交的,可以将其理解为具有
q
q
q个
n
n
n维向量的矩阵,衡量
X
X
X和
Y
Y
Y之间的主角(principal angles),被定义为:
Θ
(
X
,
Y
)
=
[
θ
1
,
.
.
.
,
θ
m
]
\Theta(X,Y)=[\theta_{1},...,\theta_{m}]
Θ(X,Y)=[θ1,...,θm]
其中
m
=
m
i
n
(
p
,
q
)
m=min(p,q)
m=min(p,q),
[
θ
1
,
.
.
.
,
θ
m
]
[\theta_{1},...,\theta_{m}]
[θ1,...,θm]有如下定义:
s
k
=
c
o
s
(
θ
k
)
=
max
x
∈
X
max
y
∈
Y
∣
x
H
y
∣
=
∣
x
k
H
y
k
∣
s_{k}=cos(\theta_{k})=\max_{x\in X}\max_{y\in Y}\left|x^Hy\right|=\left|x_{k}^Hy_{k}\right|
sk=cos(θk)=x∈Xmaxy∈Ymax∣∣xHy∣∣=∣∣xkHyk∣∣
上述公式中的
x
k
x_{k}
xk和
y
k
y_{k}
yk分别是
X
X
X和
Y
Y
Y中的列向量。
上面是对主角的定义,要注意的是principal angles定义的不是一个角,而是一系列的角,角的数量是由两个域中含有向量较少的那个域的向量数量确定的。通常是将角按照余弦值的递减序列进行排序的。其中余弦最大的角的定义可以理解为:将两个域中的列向量分别进行余弦值计算,使得值取到最大值的
x
k
x_{k}
xk和
y
k
y_{k}
yk是最大的主角对应的principal vector。其他的principal angles以此类推。
这一系列的principal angles可以形象地想象成两个域间的列向量在彼此进行一种匹配,距离最小的向量之间达成一个组合。就像找对象一样,最有夫妻相的两个人组成一个家庭。然后按照相似的程度进行排序,形成一个有序的向量。如果两个域中的相匹配的向量之间都能构成极具夫妻相的模范夫妻,那么我们可以称这两个域之间的差异很小,或者角度小,或者距离小。如果这个principal angles向量中的各个角都很大,说明两个域中的列向量之间的距离或者相似度都很低。
三计算两个域之间的principal angles的方法
1 根据定义计算两个域之间的principal angles
对于列向量是单位正交向量的两个域,或者说两个矩阵,就像定义的那样,进行一一匹配,然后分别找到principal angles和与之相对应的principal vector。
2 利用奇异值分解
对于列向量是单位正交向量的两个域
X
X
X和
Y
Y
Y,这两 个矩阵分别是
n
∗
p
n*p
n∗p和
n
∗
q
n*q
n∗q的,这里的
n
n
n是指向量的维度,
p
p
p和
q
q
q代表的是样本的数量。
我们首先计算出矩阵
T
T
T:
T
=
X
H
Y
T=X^HY
T=XHY
然后对矩阵
T
T
T进行奇异值分解(SVD)
T
=
U
Σ
V
H
T=U\Sigma V^H
T=UΣVH
Σ
\Sigma
Σ是一个
p
∗
q
p*q
p∗q的对角矩阵,每个值代表两个域之间的principal angles的余弦值,与之对应的principal vector分别是
X
U
XU
XU和
Y
V
YV
YV的前
m
m
m个列向量,其中
m
=
min
(
p
,
q
)
m=\min(p,q)
m=min(p,q)
3 其他的求解principal angles方法
上述提到的两个论文中还有其他求解方法,用到了正交补等概念,想要进一步了解的可以到上面的两个论文中查找对应的方法。