前面写的PCA,LE,LDA,LLE都是以前就比较熟悉的东西,从这篇开始写的都是之前不熟悉的甚至都不知道名字的算法,然而都还很经典。疫情期间在家里看看原文,学习学习,既是算法总结又是读论文笔记。这篇来写LTSA局部切空间排列。本篇符号尽量与原文保持一致,与前面几篇有所不同。
主要思路
LTSA(Local Tangent Space Alignment)的基本思路是用样本点的近邻区域的切空间来表示局部几何结构,然后对局部切空间进行重新排列得到非线性流形的用自然参数刻画的低维表示,是经典的流形学习与降维算法。
假设一个维流形嵌于维空间中(),维空间是一个包含噪声的高维空间。给定样本集合分布于这个含噪声的维空间中,文章认为:
是的本征表示,是一个映射函数,表示噪声。
线性情况
先来看线性情况。线性时是一个投影矩阵:
表示常量参数,是个偏置项,是全为1的列向量。线性降维与线性流形学习的目标就是最小化重建误差:
这是个范数的形式,希望噪声能够最小。文章说,基于观察认为:
- 如果能从中移除的行均值,就可以使其范数更小,这要求。其实就是对做中心化的意思。
- 然后希望上式最小化就等价于希望是最接近于的秩为的矩阵,这可以用的SVD分解来求解。这个确实如此,这是SVD分解的低秩近似性质。
SVD分解有的低秩近似性质:即给定秩为的矩阵并求出其SVD分解,欲求一个秩为的矩阵,并使得A$最接近(差的F范数最小):
则可以通过仅保留的前大奇异值得到。即。
所以的话如果:
则
的最优解。因此:
因为是正交矩阵,其逆矩阵就是其对称矩阵。这其实就是PCA,只是用SVD分解和F范数来解,思路也不一样,而且这告诉我们PCA降完维后的结果就是.
继续读文章。函数并不是唯一的,因为还可以被重新参数化。如果有满足,则^*应该变成。什么意思呢,意思就是:
另外如果我们限制是标准正交的,即,则应取,而且应变为:
这两条说的都是PCA的一些变化了。大致如此。妙的地方就在于,如果这样处理PCA的话,不需要函数的参与就能完成降维了,与我们之前写的那篇PCA不同。
非线性情况
非线性的情况更复杂。一般而言,全局的非线性结构来自于局部的线性分析和排列。然后引出LTSA。对于一个给定的样本点,LTSA使用其近邻区域来构建局部切空间来表征局部几何结构,局部切空间提供了非线性流形的局部几何结构的低维线性估计,通过局部切空间来保护近邻区域中的样本点的局部坐标。然后局部切坐标通过不同的局部仿射转换在低维空间重新排列,以获得更好的全局坐标系统。
仍然是假设维流形通过未知函数嵌于维空间中,。给定个从无噪声模型中得来的维样本,有
是降完维后的结果。非线性降维的目标就是从对应的来重构而不显式地构建函数。假设足够光滑,在一个给定的处做Taylor展开:
这里是在处的Jacobi矩阵:
在处的切空间是由的个列向量做基底的生成空间,维度最高为,。向量是在仿射空间的坐标(这一句我属实没懂)。因为不知道,所以也没法求。如果是的一个标准正交基矩阵,如果基于可以知道,可以写作:
然后
从到的映射表示局部仿射变换,这个仿射变换同样是未知的,因为未知。然而向量有一个近似值,其可以正交地将投影到:
假设在每一个处都是已知的,忽略二阶项,则全局坐标应满足:
是的近邻区域的定义。因此,一种自然的优化目标就是寻找合适的和以最小化以下误差函数:
这表示的是降维问题的非线性排列方法。
线性排列方法可以有如下思路。如果是列满秩的,矩阵就应该是非奇异的并且:
这时候应该寻找全局坐标和局部仿射变换来最小化下式:
如果不是列满秩,那就太复杂了,不讨论。
局部切空间排列LTSA
给定具有潜在非线性流形结构的包含噪声的样本集:
令是用欧氏距离度量下的近邻(包含自身)。为中的样本计算最佳的维近似仿射空间:
这里是列的标准正交矩阵,。注意,这里我写范数平方的地方原文写的是二范数的平方,我觉得不太对劲,所以写成了范数。
这个问题在限行情况那部分已经解过了,最优的值应取,最优的值应该取(其实就是对做了中心化的结果)前大的奇异值对应的左奇异向量。然后应该由组成,且:
意思就是在的包含自身的个近邻组成的范围内做了个PCA,只是不降维,维度仍为,做完PCA后的为,单个样本为.
然后有:
这里的就是重构误差。可以表征局部结构,现在基于来得到. LTSA希望满足如下形式:
其中是个的均值,是未知的仿射变换,起到一个排列的作用。上式的矩阵形式表示为:
。重构残差为:
为了在低维空间中保护尽可能多的局部几何结构,LTSA希望降维后得到的样本表示以及局部仿射变换,可以最小化重构残差:
显然,能够最小化误差的排列矩阵的最优解应为:
这里的是的Moor-Penrose广义逆矩阵。,令为满足的0-1选择矩阵(比方说要筛选第1,3个样本,的第1行的第1个数就为1,第2列的第3个数就为1,其余位置全为0),注意前面定义了. 现在需要寻找使得总体所有样本的重构误差最小化:
其中,且:
为了使得有唯一解,LTSA限制,是维的单位矩阵。
求解
现在基本搞明白了,给定,LTSA先给每个样本找欧氏距离度量下的个近邻(包含自身),为每个样本构成一个包含自身的近邻区域,然后在这个区域内做PCA但却不降维,然后通过PCA变成了,其中的变成了。然后又认为降维的结果与之间有线性关系,希望二者之间的误差最小,仿射关系被表示了,残差也用表示了,所以变成了一个非线性的方法。局部PCA就是所谓的局部切空间,后面这个非线性降维就是所谓的排列,最终变成如下形式的问题:
求解思路也很清晰,F范数的平方化为向量二范数的平方之和即可。这里重新定义为的第行,与上一部分有所不同,则:
然后用经典的Lagrangian乘子法:
如同之前几篇博客,这里的为对角矩阵。然后求导并令导数为0:
然后就是告诉我们,的每一列,即的每一行都是的特征向量,对应的特征值分布在的对角线的对应位置上。因为是个必要条件,再代回去:
这告诉我们,原始最小化就等价于最小化,因此要选最小的前个特征值对应的特征向量来构成.
这里还有一个问题,就是全1列向量也是的特征向量。首先的每一列只有一个数字是1,其余都为0,因此.
然后根据前面定义的::
因此
即无论对什么样的,都有一个特征值为0,对应的特征向量为,这显然不是我们想要的,因此要选前小的非0特征值对应的特征向量构成。
到这里其实LTSA的定义和求解就结束了,但是论文还没有结束,还讨论了很多误差分析之类的东西,我目前并不感兴趣,也就不看了写了。
关于其他
根据前面讨论非线性情况时候得到的结论:
可知,如果去掉二阶项,则有:
0-1选择矩阵的定义和前面一样,我们希望寻找合适的使得二者更接近:
其中. 这个问题可以用交替最小二乘法来解:固定,通过调节使得最小;然后固定,通过调节使最小。的初值可以取LTSA解出来的。这是另一篇文章的内容。
另一方面,公式约束是为了让该问题“well-posed”,“适定”。因为如果取都为0也有更小的解,但是这不是我们想要的。而且这个约束是众多可以避免这个问题的约束之一。