前面写的PCALELDALLE都是以前就比较熟悉的东西,从这篇开始写的都是之前不熟悉的甚至都不知道名字的算法,然而都还很经典。疫情期间在家里看看原文,学习学习,既是算法总结又是读论文笔记。这篇来写LTSA局部切空间排列。本篇符号尽量与原文保持一致,与前面几篇有所不同。

主要思路

LTSA(Local Tangent Space Alignment)的基本思路是用样本点的近邻区域的切空间来表示局部几何结构,然后对局部切空间进行重新排列得到非线性流形的用自然参数刻画的低维表示,是经典的流形学习与降维算法。

假设一个LDA降维库 ltsa降维_样本集维流形嵌于LDA降维库 ltsa降维_映射函数_02维空间中(LDA降维库 ltsa降维_样本集_03),LDA降维库 ltsa降维_映射函数_02维空间是一个包含噪声的高维空间。给定样本集合LDA降维库 ltsa降维_样本集_05分布于这个含噪声的LDA降维库 ltsa降维_映射函数_02维空间中,文章认为:
LDA降维库 ltsa降维_最小化_07

LDA降维库 ltsa降维_最小化_08LDA降维库 ltsa降维_LDA降维库_09的本征表示,LDA降维库 ltsa降维_映射函数_10是一个映射函数,LDA降维库 ltsa降维_LDA降维库_11表示噪声。

线性情况

先来看线性情况。线性时LDA降维库 ltsa降维_映射函数_10是一个投影矩阵:
LDA降维库 ltsa降维_样本集_13

LDA降维库 ltsa降维_LDA降维库_14表示常量参数,是个偏置项,LDA降维库 ltsa降维_LDA降维库_15是全为1的列向量。线性降维与线性流形学习的目标就是最小化重建误差:
LDA降维库 ltsa降维_样本集_16

这是个LDA降维库 ltsa降维_映射函数_17范数的形式,希望噪声能够最小。文章说,基于观察认为:

  • 如果能从LDA降维库 ltsa降维_样本集_18中移除LDA降维库 ltsa降维_样本集_18的行均值,就可以使其范数更小,这要求LDA降维库 ltsa降维_最小化_20。其实就是对LDA降维库 ltsa降维_样本集_21做中心化的意思。
  • 然后希望上式最小化就等价于希望LDA降维库 ltsa降维_映射函数_22是最接近于LDA降维库 ltsa降维_最小化_23的秩为LDA降维库 ltsa降维_样本集_24的矩阵,这可以用LDA降维库 ltsa降维_最小化_23的SVD分解来求解。这个确实如此,这是SVD分解的低秩近似性质。

SVD分解有的低秩近似性质:即给定秩为LDA降维库 ltsa降维_映射函数_26的矩阵LDA降维库 ltsa降维_最小化_27并求出其SVD分解LDA降维库 ltsa降维_最小化_28,欲求一个秩为LDA降维库 ltsa降维_样本集_29的矩阵LDA降维库 ltsa降维_最小化_30,并使得LDA降维库 ltsa降维_最小化_31A$最接近(差的F范数最小):
LDA降维库 ltsa降维_LDA降维库_32LDA降维库 ltsa降维_最小化_30可以通过仅保留LDA降维库 ltsa降维_最小化_27的前LDA降维库 ltsa降维_映射函数_35大奇异值得到。即LDA降维库 ltsa降维_最小化_36

所以的话如果:
LDA降维库 ltsa降维_映射函数_37


LDA降维库 ltsa降维_最小化_38

LDA降维库 ltsa降维_样本集_39的最优解LDA降维库 ltsa降维_最小化_40。因此:
LDA降维库 ltsa降维_映射函数_41

因为LDA降维库 ltsa降维_最小化_42是正交矩阵,其逆矩阵就是其对称矩阵。这其实就是PCA,只是用SVD分解和F范数来解,思路也不一样,而且这告诉我们PCA降完维后的结果就是LDA降维库 ltsa降维_LDA降维库_43.

继续读文章。LDA降维库 ltsa降维_映射函数_10函数并不是唯一的,因为还可以被重新参数化。如果有LDA降维库 ltsa降维_样本集_45满足LDA降维库 ltsa降维_最小化_46,则LDA降维库 ltsa降维_样本集_39^*应该变成LDA降维库 ltsa降维_样本集_48。什么意思呢,意思就是:
LDA降维库 ltsa降维_样本集_49

另外如果我们限制LDA降维库 ltsa降维_样本集_50是标准正交的,即LDA降维库 ltsa降维_映射函数_51,则应取LDA降维库 ltsa降维_样本集_52,而且LDA降维库 ltsa降维_映射函数_10应变为:
LDA降维库 ltsa降维_最小化_54

这两条说的都是PCA的一些变化了。大致如此。妙的地方就在于,如果这样处理PCA的话,不需要LDA降维库 ltsa降维_映射函数_10函数的参与就能完成降维了,与我们之前写的那篇PCA不同。

非线性情况

非线性的情况更复杂。一般而言,全局的非线性结构来自于局部的线性分析和排列。然后引出LTSA。对于一个给定的样本点,LTSA使用其近邻区域来构建局部切空间来表征局部几何结构,局部切空间提供了非线性流形的局部几何结构的低维线性估计,通过局部切空间来保护近邻区域中的样本点的局部坐标。然后局部切坐标通过不同的局部仿射转换在低维空间重新排列,以获得更好的全局坐标系统。

仍然是假设LDA降维库 ltsa降维_样本集维流形通过未知函数LDA降维库 ltsa降维_映射函数_10嵌于LDA降维库 ltsa降维_映射函数_02维空间中,LDA降维库 ltsa降维_样本集_03。给定LDA降维库 ltsa降维_映射函数_60个从无噪声模型中得来的LDA降维库 ltsa降维_映射函数_02维样本LDA降维库 ltsa降维_样本集_05,有
LDA降维库 ltsa降维_LDA降维库_63

LDA降维库 ltsa降维_LDA降维库_64LDA降维库 ltsa降维_LDA降维库_09降完维后的结果。非线性降维的目标就是从LDA降维库 ltsa降维_最小化_66对应的LDA降维库 ltsa降维_LDA降维库_09来重构LDA降维库 ltsa降维_最小化_66而不显式地构建LDA降维库 ltsa降维_映射函数_10函数。假设LDA降维库 ltsa降维_映射函数_10足够光滑,在一个给定的LDA降维库 ltsa降维_LDA降维库_71处做Taylor展开:
LDA降维库 ltsa降维_样本集_72

这里LDA降维库 ltsa降维_样本集_73LDA降维库 ltsa降维_映射函数_10LDA降维库 ltsa降维_LDA降维库_71处的Jacobi矩阵:
LDA降维库 ltsa降维_LDA降维库_76

LDA降维库 ltsa降维_映射函数_10LDA降维库 ltsa降维_LDA降维库_71处的切空间LDA降维库 ltsa降维_样本集_79是由LDA降维库 ltsa降维_LDA降维库_80LDA降维库 ltsa降维_样本集个列向量做基底的生成空间,维度最高为LDA降维库 ltsa降维_样本集LDA降维库 ltsa降维_最小化_83。向量LDA降维库 ltsa降维_样本集_84LDA降维库 ltsa降维_样本集_85在仿射空间LDA降维库 ltsa降维_最小化_86的坐标(这一句我属实没懂)。因为不知道LDA降维库 ltsa降维_映射函数_10,所以LDA降维库 ltsa降维_LDA降维库_80也没法求。如果LDA降维库 ltsa降维_样本集_89LDA降维库 ltsa降维_样本集_79的一个标准正交基矩阵,如果基于LDA降维库 ltsa降维_样本集_89可以知道LDA降维库 ltsa降维_LDA降维库_80,可以写作:
LDA降维库 ltsa降维_映射函数_93

然后
LDA降维库 ltsa降维_LDA降维库_94

LDA降维库 ltsa降维_LDA降维库_71LDA降维库 ltsa降维_LDA降维库_96的映射表示局部仿射变换,这个仿射变换同样是未知的,因为LDA降维库 ltsa降维_映射函数_10未知。然而向量LDA降维库 ltsa降维_LDA降维库_96有一个近似值LDA降维库 ltsa降维_最小化_99,其可以正交地将LDA降维库 ltsa降维_样本集_100投影到LDA降维库 ltsa降维_样本集_79
LDA降维库 ltsa降维_LDA降维库_102

假设LDA降维库 ltsa降维_样本集_103在每一个LDA降维库 ltsa降维_LDA降维库_71处都是已知的,忽略二阶项,则全局坐标LDA降维库 ltsa降维_LDA降维库_71应满足:
LDA降维库 ltsa降维_LDA降维库_106

LDA降维库 ltsa降维_映射函数_107LDA降维库 ltsa降维_LDA降维库_71的近邻区域的定义。因此,一种自然的优化目标就是寻找合适的LDA降维库 ltsa降维_LDA降维库_71LDA降维库 ltsa降维_样本集_110以最小化以下误差函数:
LDA降维库 ltsa降维_样本集_111

这表示的是降维问题的非线性排列方法。

线性排列方法可以有如下思路。如果LDA降维库 ltsa降维_LDA降维库_80是列满秩的,矩阵LDA降维库 ltsa降维_样本集_110就应该是非奇异的并且:
LDA降维库 ltsa降维_最小化_114

这时候应该寻找全局坐标LDA降维库 ltsa降维_LDA降维库_71和局部仿射变换LDA降维库 ltsa降维_样本集_116来最小化下式:
LDA降维库 ltsa降维_LDA降维库_117

如果不是列满秩,那就太复杂了,不讨论。

局部切空间排列LTSA

给定具有潜在非线性流形结构的包含噪声的样本集LDA降维库 ltsa降维_样本集_118
LDA降维库 ltsa降维_最小化_07

LDA降维库 ltsa降维_映射函数_120LDA降维库 ltsa降维_LDA降维库_09用欧氏距离度量下的LDA降维库 ltsa降维_最小化_122近邻(包含LDA降维库 ltsa降维_LDA降维库_09自身)。为LDA降维库 ltsa降维_映射函数_124中的样本计算最佳的LDA降维库 ltsa降维_样本集维近似仿射空间:
LDA降维库 ltsa降维_映射函数_126

这里LDA降维库 ltsa降维_最小化_127LDA降维库 ltsa降维_样本集列的标准正交矩阵,LDA降维库 ltsa降维_映射函数_129。注意,这里我写LDA降维库 ltsa降维_映射函数_17范数平方的地方原文写的是二范数的平方,我觉得不太对劲,所以写成了LDA降维库 ltsa降维_映射函数_17范数。
这个问题在限行情况那部分已经解过了,最优的LDA降维库 ltsa降维_样本集_132值应取LDA降维库 ltsa降维_映射函数_133,最优的LDA降维库 ltsa降维_最小化_127LDA降维库 ltsa降维_LDA降维库_135应该取LDA降维库 ltsa降维_映射函数_136(其实就是对LDA降维库 ltsa降维_映射函数_124做了中心化的结果)前LDA降维库 ltsa降维_样本集大的奇异值对应的左奇异向量。然后LDA降维库 ltsa降维_映射函数_139应该由LDA降维库 ltsa降维_LDA降维库_140组成,且:
LDA降维库 ltsa降维_样本集_141

意思就是在LDA降维库 ltsa降维_LDA降维库_09的包含自身的LDA降维库 ltsa降维_最小化_122个近邻组成的LDA降维库 ltsa降维_映射函数_124范围内做了个PCA,只是不降维,维度仍为LDA降维库 ltsa降维_映射函数_02,做完PCA后的LDA降维库 ltsa降维_映射函数_124LDA降维库 ltsa降维_LDA降维库_140,单个样本为LDA降维库 ltsa降维_样本集_148.

然后有:
LDA降维库 ltsa降维_映射函数_149

这里的LDA降维库 ltsa降维_样本集_150就是重构误差。LDA降维库 ltsa降维_样本集_148可以表征局部结构,现在基于LDA降维库 ltsa降维_样本集_148来得到LDA降维库 ltsa降维_LDA降维库_153. LTSA希望LDA降维库 ltsa降维_LDA降维库_154满足如下形式:
LDA降维库 ltsa降维_样本集_155

其中LDA降维库 ltsa降维_最小化_156LDA降维库 ltsa降维_最小化_122LDA降维库 ltsa降维_LDA降维库_154的均值,LDA降维库 ltsa降维_样本集_159是未知的仿射变换,起到一个排列的作用。上式的矩阵形式表示为:
LDA降维库 ltsa降维_映射函数_160

LDA降维库 ltsa降维_最小化_161。重构残差LDA降维库 ltsa降维_LDA降维库_162为:
LDA降维库 ltsa降维_样本集_163

为了在低维空间中保护尽可能多的局部几何结构,LTSA希望降维后得到的样本表示LDA降维库 ltsa降维_最小化_66以及局部仿射变换LDA降维库 ltsa降维_样本集_159,可以最小化重构残差LDA降维库 ltsa降维_映射函数_166
LDA降维库 ltsa降维_映射函数_167

显然,能够最小化误差LDA降维库 ltsa降维_最小化_168的排列矩阵LDA降维库 ltsa降维_样本集_159的最优解应为:
LDA降维库 ltsa降维_样本集_170

这里的LDA降维库 ltsa降维_最小化_171LDA降维库 ltsa降维_LDA降维库_140的Moor-Penrose广义逆矩阵。LDA降维库 ltsa降维_最小化_173,令LDA降维库 ltsa降维_LDA降维库_174为满足LDA降维库 ltsa降维_LDA降维库_175的0-1选择矩阵(比方说要筛选第1,3个样本,LDA降维库 ltsa降维_LDA降维库_174的第1行的第1个数就为1,第2列的第3个数就为1,其余位置全为0),注意前面定义了LDA降维库 ltsa降维_LDA降维库_177. 现在需要寻找LDA降维库 ltsa降维_样本集_50使得总体所有样本的重构误差最小化:
LDA降维库 ltsa降维_LDA降维库_179

其中LDA降维库 ltsa降维_LDA降维库_180LDA降维库 ltsa降维_最小化_181且:
LDA降维库 ltsa降维_最小化_182

为了使得LDA降维库 ltsa降维_样本集_50有唯一解,LTSA限制LDA降维库 ltsa降维_样本集_184LDA降维库 ltsa降维_最小化_185LDA降维库 ltsa降维_样本集维的单位矩阵。

求解

现在基本搞明白了,给定LDA降维库 ltsa降维_LDA降维库_187,LTSA先给每个样本找欧氏距离度量下的LDA降维库 ltsa降维_最小化_122个近邻(包含自身),为每个样本LDA降维库 ltsa降维_LDA降维库_09构成一个包含自身的近邻区域LDA降维库 ltsa降维_映射函数_124,然后在LDA降维库 ltsa降维_映射函数_124这个区域内做PCA但却不降维,然后LDA降维库 ltsa降维_映射函数_124通过PCA变成了LDA降维库 ltsa降维_LDA降维库_140,其中的LDA降维库 ltsa降维_最小化_194变成了LDA降维库 ltsa降维_样本集_148。然后又认为降维的结果LDA降维库 ltsa降维_最小化_196LDA降维库 ltsa降维_映射函数_124之间有线性关系,希望二者之间的误差最小,仿射关系LDA降维库 ltsa降维_样本集_159LDA降维库 ltsa降维_最小化_196表示了,残差LDA降维库 ltsa降维_LDA降维库_162也用LDA降维库 ltsa降维_最小化_196表示了,所以变成了一个非线性的方法。局部PCA就是所谓的局部切空间,后面这个非线性降维就是所谓的排列,最终变成如下形式的问题:

LDA降维库 ltsa降维_样本集_202

求解思路也很清晰,F范数的平方化为向量二范数的平方之和即可。这里重新定义LDA降维库 ltsa降维_最小化_196LDA降维库 ltsa降维_样本集_50LDA降维库 ltsa降维_样本集_205,与上一部分有所不同,则:
LDA降维库 ltsa降维_映射函数_206

然后用经典的Lagrangian乘子法:
LDA降维库 ltsa降维_LDA降维库_207

如同之前几篇博客,这里的LDA降维库 ltsa降维_映射函数_208为对角矩阵。然后求导并令导数为0:
LDA降维库 ltsa降维_样本集_209

然后LDA降维库 ltsa降维_样本集_210就是告诉我们,LDA降维库 ltsa降维_LDA降维库_211的每一列,即LDA降维库 ltsa降维_样本集_50的每一行LDA降维库 ltsa降维_最小化_196都是LDA降维库 ltsa降维_LDA降维库_214的特征向量,对应的特征值分布在LDA降维库 ltsa降维_映射函数_208的对角线的对应位置上。因为是个必要条件,再代回去:
LDA降维库 ltsa降维_最小化_216

这告诉我们,原始最小化就等价于LDA降维库 ltsa降维_最小化_217最小化,因此要选LDA降维库 ltsa降维_LDA降维库_214最小的前LDA降维库 ltsa降维_样本集个特征值对应的特征向量来构成LDA降维库 ltsa降维_样本集_50.

这里还有一个问题,就是全1列向量LDA降维库 ltsa降维_LDA降维库_15也是LDA降维库 ltsa降维_LDA降维库_214的特征向量。首先LDA降维库 ltsa降维_最小化_223的每一列只有一个数字是1,其余都为0,因此LDA降维库 ltsa降维_映射函数_224.
LDA降维库 ltsa降维_最小化_225

然后根据前面定义的:LDA降维库 ltsa降维_样本集_226
LDA降维库 ltsa降维_LDA降维库_227

因此
LDA降维库 ltsa降维_样本集_228

即无论对什么样的LDA降维库 ltsa降维_LDA降维库_187LDA降维库 ltsa降维_LDA降维库_214都有一个特征值为0,对应的特征向量为LDA降维库 ltsa降维_LDA降维库_15,这显然不是我们想要的,因此要选LDA降维库 ltsa降维_LDA降维库_214LDA降维库 ltsa降维_样本集小的非0特征值对应的特征向量构成LDA降维库 ltsa降维_样本集_50

到这里其实LTSA的定义和求解就结束了,但是论文还没有结束,还讨论了很多误差分析之类的东西,我目前并不感兴趣,也就不看了写了。

关于其他

根据前面讨论非线性情况时候得到的结论:
LDA降维库 ltsa降维_LDA降维库_235

可知,如果去掉二阶项,则有:
LDA降维库 ltsa降维_映射函数_236

0-1选择矩阵LDA降维库 ltsa降维_样本集_237的定义和前面一样,我们希望寻找合适的LDA降维库 ltsa降维_映射函数_238使得二者更接近:
LDA降维库 ltsa降维_LDA降维库_239

其中LDA降维库 ltsa降维_最小化_240. 这个问题可以用交替最小二乘法来解:固定LDA降维库 ltsa降维_LDA降维库_241,通过调节LDA降维库 ltsa降维_样本集_50使得LDA降维库 ltsa降维_最小化_243最小;然后固定LDA降维库 ltsa降维_样本集_50,通过调节LDA降维库 ltsa降维_LDA降维库_241使LDA降维库 ltsa降维_最小化_243最小。LDA降维库 ltsa降维_样本集_50的初值可以取LTSA解出来的LDA降维库 ltsa降维_样本集_50。这是另一篇文章的内容。

另一方面,公式LDA降维库 ltsa降维_最小化_249约束LDA降维库 ltsa降维_LDA降维库_250是为了让该问题“well-posed”,“适定”。因为如果取LDA降维库 ltsa降维_LDA降维库_251都为0也有更小的解,但是这不是我们想要的。而且LDA降维库 ltsa降维_LDA降维库_250这个约束是众多可以避免这个问题的约束之一。