@toc
一 描述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的一种形象化理解
假设 是一个矩阵,并且列于列之间是单位正交的,可以将其理解为具有个维向量的矩阵;假设 是一个矩阵,并且列于列之间是单位正交的,可以将其理解为具有个维向量的矩阵,衡量和之间的主角(principal angles),被定义为: 其中,有如下定义: 上述公式中的和分别是和中的列向量。 上面是对主角的定义,要注意的是principal angles定义的不是一个角,而是一系列的角,角的数量是由两个域中含有向量较少的那个域的向量数量确定的。通常是将角按照余弦值的递减序列进行排序的。其中余弦最大的角的定义可以理解为:将两个域中的列向量分别进行余弦值计算,使得值取到最大值的和是最大的主角对应的principal vector。其他的principal angles以此类推。 这一系列的principal angles可以形象地想象成两个域间的列向量在彼此进行一种匹配,距离最小的向量之间达成一个组合。就像找对象一样,最有夫妻相的两个人组成一个家庭。然后按照相似的程度进行排序,形成一个有序的向量。如果两个域中的相匹配的向量之间都能构成极具夫妻相的模范夫妻,那么我们可以称这两个域之间的差异很小,或者角度小,或者距离小。如果这个principal angles向量中的各个角都很大,说明两个域中的列向量之间的距离或者相似度都很低。
三计算两个域之间的principal angles的方法
1 根据定义计算两个域之间的principal angles
对于列向量是单位正交向量的两个域,或者说两个矩阵,就像定义的那样,进行一一匹配,然后分别找到principal angles和与之相对应的principal vector。
2 利用奇异值分解
对于列向量是单位正交向量的两个域和,这两 个矩阵分别是和的,这里的是指向量的维度,和代表的是样本的数量。 我们首先计算出矩阵: 然后对矩阵进行奇异值分解(SVD) 是一个的对角矩阵,每个值代表两个域之间的principal angles的余弦值,与之对应的principal vector分别是和的前个列向量,其中
3 其他的求解principal angles方法
上述提到的两个论文中还有其他求解方法,用到了正交补等概念,想要进一步了解的可以到上面的两个论文中查找对应的方法。