1. 流形是在局部和欧氏空间同胚的空间,它在局部具有欧氏空间的性质,能用欧氏距离进行距离计算。

      如果低维流形嵌入到高维空间中,则数据样本在高维空间的分布虽然看起来非常复杂,但是在局部上仍然具有欧氏空间的性质。

    2. 当维数被降低至二维或者三维时,能对数据进行可视化展示,因此流形学习也可用于可视化。

    3. 流形学习若想取得很好的效果,则必须对邻域保持样本密采样,但这恰恰是高维情形下面临的重大障碍。因此流形学习方法在实践中的降维性能往往没有预期的好。

    4. 流形学习对于噪音数据非常敏感。噪音数据可能出现在两个区域连接处:

      • 如果没有出现噪音,这两个区域是断路的。
      • 如果出现噪音,这两个区域是短路的。

    4.1.1 多维缩放原理

    1. 多维缩放Multiple Dimensional Scaling:MDS要求原始空间中样本之间的距离在低维空间中得到保持。

    2. 假设 个样本在原始空间中的距离矩阵为 四、流形学习 - 图1:

      其中 四、流形学习 - 图2 为样本 到样本 四、流形学习 - 图3 的距离。

      假设原始样本是在 维空间,目标是获取样本在 四、流形学习 - 图4 维空间且欧氏距离保持不变,其中满足 。

      假设样本集在原空间的表示为 四、流形学习 - 图5 ,样本集在降维后空间的表示为 。

      四、流形学习 - 图6

      所求的正是 矩阵,同时也不知道 四、流形学习 - 图7

      很明显:并不是所有的低维空间都满足线性映射之后,样本点之间的欧氏距离保持不变。

    3. 令 ,即 :

      四、流形学习 - 图8

      其中 为降维后样本的内积。

      则根据降维前后样本的欧氏距离保持不变有:

      四、流形学习 - 图9

      假设降维后的样本集 被中心化,即 四、流形学习 - 图10,则矩阵 的每行之和均为零,每列之和均为零。即:

      四、流形学习 - 图11

      于是有:

      令:

      四、流形学习 - 图12

      代入 ,有:

      四、流形学习 - 图13

      右式根据 给出了 四、流形学习 - 图14,因此可以根据原始空间中的距离矩阵 求出在降维后空间的内积矩阵 四、流形学习 - 图15

      现在的问题是已知内积矩阵 ,如何求得矩阵 四、流形学习 - 图16

    4. 对矩阵 做特征值分解,设 四、流形学习 - 图17,其中

      为特征值构成的对角矩阵, 四、流形学习 - 图18, 为特征向量矩阵。

      此时有 四、流形学习 - 图19, 。

    5. 在现实应用中为了有效降维,往往仅需要降维后的距离与原始空间中的距离尽可能相等,而不必严格相等。

      此时可以取 四、流形学习 - 图20 个最大特征值构成对角矩阵 。令 四、流形学习 - 图21 表示对应的特征向量矩阵,则 。

    4.1.2 多维缩放算法

    1. 多维缩放MDS算法:

      • 输入:

        • 距离矩阵 四、流形学习 - 图22
        • 低维空间维数 。
      • 输出:样本集在低维空间中的矩阵 四、流形学习 - 图23

    4.2.1 算法

    1. 等度量映射 Isometric Mapping:Isomap的基本观点是:低维流形嵌入到高维空间后,直接在高维空间中计算直线距离具有误导性。因为在高维空间中的直线距离在低维嵌入流形上是不可达的。

    2. 低维嵌入流形上,两点之间的距离是“测地线”geodesic距离。

      • 计算测地线距离的方法是:利用流形在局部上与欧氏空间同胚这个性质,对每个点基于欧氏距离找出它在低维流形上的近邻点, 然后就能建立一个近邻连接图。

        • 图中近邻点之间存在链接。
        • 图中非近邻点之间不存在链接。
      • 于是计算两点之间测地线距离的问题转变为计算近邻连接图上两点之间的最短路径问题(可以通过著名的Dijkstra算法或者算法)。

      • 在得到任意两点的距离之后,就可以通过MDS算法来获得样本点在低维空间中的坐标。

    3. Isomap算法:

      • 输入:

        • 样本集
        • 近邻参数 四、流形学习 - 图24
        • 低维空间维数 。
      • 输出:样本集在低维空间中的矩阵 四、流形学习 - 图25

      • 算法步骤:

        • 对每个样本点 ,计算它的 四、流形学习 - 图26 近邻。同时将 与 它的 四、流形学习 - 图27 近邻的距离设置为欧氏距离,与其他点的距离设置为无穷大。
        • 调用最短路径算法计算任意两个样本点之间的距离,获得距离矩阵 。
        • 调用多维缩放MDS算法,获得样本集在低维空间中的矩阵 四、流形学习 - 图28

    4.2.2 性质

    1. Isomap算法有个很大的问题:对于新样本,如何将其映射到低维空间?

      常用的方法是:

      • 将训练样本的高维空间坐标作为输入,低维空间坐标作为输出,训练一个回归学习器。
      • 用这个回归学习器来对新样本的低维空间进行预测。

      这仅仅是一个权宜之计,但是目前并没有更好的办法。如果将新样本添加到样本集中,重新调用Isomap算法,则会得到一个新的低维空间。

      • 一方面计算量太大(每个新样本都要调用一次算法)。
      • 另一方面每次降维后的空间都在变化,不利于降维后的训练过程。
    2. 对于近邻图的构建有两种常用方案:

      • 另一种方法是指定距离阈值 ,距离小于 四、流形学习 - 图29 的点被认为是近邻点。这样得到的近邻图称作 近邻图。

      这两种方案都有不足:

      • 如果近邻范围过大,则距离很远的点也被误认作近邻,这就是“短路”问题。
      • 如果近邻范围过小,则图中有些区域可能与其他区域不存在连接,这就是“断路”问题 。 短路问题和断路问题都会给后续的最短路径计算造成误导。
    1. Isomap试图保持邻域内样本之间的距离不同,局部线性嵌入Locally Linear Embedding:LLE试图保持邻域内样本之间的线性关系。

      这种线性保持在二维空间中就是保持共线性,三维空间中就是保持共面性。

    2. 假定样本点 四、流形学习 - 图30 的坐标能够通过它的邻域样本 进行线性组合而重构出来,即:四、流形学习 - 图31LLE算法希望这种关系在低维空间中得到保持。

    4.3.1 重构系数求解

    1. LLE首先为每个样本 找到其近邻点下标集合 四、流形学习 - 图32, 然后计算基于 中的样本点对 四、流形学习 - 图33 进行线性重构的系数 。

      定义样本集重构误差为( 四、流形学习 - 图34 为 的分量):

      四、流形学习 - 图35

    2. 这样的解有无数个,对权重增加约束,进行归一化处理。即:

      四、流形学习 - 图36

      现在就是求解最优化问题:

      该最优化问题有解析解。令 四、流形学习 - 图37 ,则可以解出:

      其中:

      • 四、流形学习 - 图38 刻画了 到 四、流形学习 - 图39 的差向量,与 到 四、流形学习 - 图40 的差向量的内积。
      • 刻画了这些内积中,与 四、流形学习 - 图41 相关的内积的比例。

    4.3.2 低维空间保持

    1. 求出了线性重构的系数 四、流形学习 - 图42 之后, LLE在低维空间中保持 不变。

      四、流形学习 - 图43 对应的低维坐标 ,已知线性重构的系数 四、流形学习 - 图44 ,定义样本集在低维空间中重构误差为:

      现在的问题是要求出 四、流形学习 - 图45 ,从而使得上式最小。即求解:

    2. 四、流形学习 - 图46,其中 为低维空间的维数( 四、流形学习 - 图47 为原始样本所在的高维空间的维数)。令

      定义 四、流形学习 - 图48 ,于是最优化问题可重写为: 。

      该最优化问题有无数个解。添加约束 四、流形学习 - 图49 ,于是最优化问题为:

      该最优化问题可以通过特征值分解求解:选取 四、流形学习 - 图50 最小的 个特征值对应的特征向量组成的矩阵即为 四、流形学习 - 图51

    3. 中出现了两个重构误差。

      • 第一个重构误差:为了在原始空间中求解线性重构的系数 。目标是:基于 四、流形学习 - 图52 中的样本点对 进行线性重构,使得重构误差最小。
      • 第二个重构误差:为了求解样本集在低维空间中的表示 四、流形学习 - 图53 。目标是:基于线性重构的系数 ,将 四、流形学习 - 图54 中的样本点对 进行线性重构,使得重构误差最小。

    4.3.2 LLE 算法

    1. LLE算法:

      • 输入:

        • 样本集 四、流形学习 - 图55
        • 近邻参数 。
        • 低维空间维数 四、流形学习 - 图56
      • 输出:样本集在低维空间中的矩阵 。

      • 算法步骤:

        • 对于样本集中的每个点 四、流形学习 - 图57,执行下列操作:

          • 确定 的 四、流形学习 - 图58 近邻,获得其近邻下标集合 。

          • 对于 四、流形学习 - 图59, 根据下式计算 :

            四、流形学习 - 图60

          • 对于 , 四、流形学习 - 图61

        • 根据 构建矩阵 四、流形学习 - 图62

        • 计算 。