Fork me on GitHub

机器学习系列文章-数据科学中的几何

背景

数据科学赋予了几何才有了灵魂。

在正文前,我们先介绍一个机器学习案例。

案例提供二维数据集,数据有:(116.331398,39.897445)、(121.545451,31.178669)、(120.184051,30.320602)、(117.038113,30.496019)等,然后要求对数据进行聚类。

对于这个案例通常做法就是计算数据之间的距离(欧式距离),使用各类聚类算法寻找质心。这样就默认给数据集赋予了二维欧式距离,即这些点是取自二维欧式空间的。这很有可能已经破坏了数据集中所蕴含的信息。事实上,这些数据是地球上经纬度坐标数据,它有天然的几何结构:球面几何。在几何学中,它属于非欧几何范畴。案例数据属于球面空间的子空间,自然应该使用球面距离(Haversine公式)。

2017-03-09-01

我们在处理数据集的时候不能先入为主的认为是欧式空间的子集。如果直接使用欧式度量,这是一个很强的假设前提(先验)。

很多数据处理算法均是默认欧式距离。例如神经网络模型中,假定数据为欧式空间,学习的函数空间就是欧式空间之间的非线性函数。数据特征工程中将各种无关属性的数据拼接成高维特征均是欧式空间。在数学角度看都是很强的假设前提,甚至已经破坏了数据的内在关系,从信息论角度已经丢失信息或者引进的噪声信息。

但是面对高维数据,低维生命无法肉眼看清复杂的结构关系(或目前还没有有效的刻画技术)。但是可以尝试减少先验,给数据集合赋予一个比欧式空间较弱的几何结构:拓扑流形。特别是对于非线性数据,赋予流形结构提供的视角和高度是欧式距离无法给予的。

第一部分 数据微分流形

对于给定的多维数据集,数学上首先它是一个集合$S$,这时候数据和数据是没有关系的(结构)。接下来我们给数据集定义几何结构:

  • 赋予拓扑结构(数据集是一个拓扑空间):数据集合$S$ 的子集构成的新的集合 $\tau$, 称为数据集$S$上的拓扑 (topology),需要满足以下条件:

    (1) $\emptyset \in \tau$,$S \in \tau$;

    (2) $\tau$ 中有限个集合的交集和任意(有限、可数、不可数)个集合的并集还属于$\tau$。简单来说就是$\tau$ 中的集合对于有限交和任意并运算封闭。

  • 赋予流形结构:数据集$S$上可以赋予很多拓扑结构,并不是唯一的。我们进一步增加约束条件:令$S$是一个Hausdorff空间。若对任一点 $p\in S $ , 都存在 $x$ 在$S$中的一个邻域 $U\subset S$ ,使得 $U$ 同胚于$n$ 维欧氏空间$R^n$ , 则$S$就称为是一个$n$维流形。

  • 赋予微分流形结构:为了能在数据流形上有微分运算(类似欧式空间),我们需要数据流形是可微的:一个$n$维微分流形$S$就是一个赋予了微分结构的$n$维流形,即存在一组坐标卡 $\mathcal{A}=\left{\left(U_{i}, \varphi_{i}\right)\right}$(即流形定义中的局部同胚映射),使得:(i)$\mathcal{A}$ 为$S$ 的一个开覆盖;(ii)任意两个不相交的坐标卡;(iii)$(U, \varphi)$ 和 $(V, \psi)$ 满足$ \psi \circ \varphi^{-1}$$与$ $\varphi \circ \psi^{-1}$皆为 $ C^{\infty}$函数为$\mathcal{A}$ 极大的(该条件可由前两条唯一生成)。

最后数据集集合具有微分流形几何结构,而经典数据科学中常用的欧式空间是微分流形的特例,我们弱化了假设前提。但是微分流形仍具有较好的性质:

  • 微分流形局部同胚与欧式空间(每个点都存在一个邻域同胚于欧氏空间中的开集);
  • 微分流形可以嵌入至欧式空间;

其中第二个性质是微分拓扑中重要定理:Whitney嵌入定理

Whitney嵌入定理:设$M$是$m$维微分(光滑)流形,存在$M$到欧氏空间$R^n$的光滑嵌入映射$f$,其中$n>=2m+1$。并且$f$的像是$R^n$中的闭集。

Whitney嵌入定理是微分拓扑中重要的定理,也许可以认为正是Whitney发现了这个定理,开创了微分拓扑。在这个定理之前,人们对于流形还是把握不定的。但是在这个定理后,由于流形可以嵌入到维数较大的欧氏空间中,所以有了一系列的关于流形的重要结果,形成了微分拓扑这个分支。

第二部分 流行学习

有了Whitney嵌入定理的理论保证,高维数据集可以假设是嵌入在高维欧式空间中低维流形。基于这个假设就有了一个研究分支:流形学习(manifold learning)。

对于地球位置的数据集,在3维欧式空间可以用3维数据坐标$(x,y,z)$ 来表示,实际上又可以用2维经纬度坐标(内蕴坐标)表示,地球位置数据实际是一个二维球面子流形嵌入在3维欧式空间中。当数据集是3维欧式空间表示时,我们可以降维到二维流形。

上面的分析前提是我们开启了上帝视角。实际应用中,对于任意给定的数据集,很难判断或假设合理的内蕴流形结构。

2.1 数据降维

数据科学中对于线性空间中数据,有较多成熟的降维技术:例如主成分分析(PCA)、独立分量分析(ICA)、Fish判别法(FDA)、多尺度分析(MDS)等。那么在降维的时候,寻找恰当的降维映射是算法的目的。降维映射空间同样是庞大的,需要定义相关的性能度量来度量映射的优劣。

然而对于非线性数据流形,空间上是没有距离(欧氏距离)概念的。这时候我们需要利用微分流形另一个重要特性:微分流形局部同胚与欧式空间。

宇宙是一个微分流形,我们人类所处的局部是一个三维欧式空间。

2.1.1 保持局部线性关系

映射需要保持流形上每个很小的局部欧式线性。代表算法有:局部改线嵌入(local Linear EmbeddingLLE)。算法大体分成三个部分:寻找近邻、线性重构、低维嵌入。

  • 寻找近邻

    对于每个数据点,需要定义邻域。邻域有两种方式:(1)最近的K个点;(2)邻域距离阀值限定局部大小。LLE算法使用前者,其中K是一个预先给定值(超参数),使用欧式距离度量。

  • 线性重构

    每个数据点由K个近邻线性表达;

  • 低维嵌入

    每个点在低维空间中的降维映射值在项空间同样有近似的线性表达。

LLE

具体算法过程,参考论文:《Nonlinear Dimensionality Reduction by Locally Linear Embedding》。LEE算法对于闭合流形、稀疏数据集效果有限,另外结果对于K值选取较为敏感。

2.1.2 保持点之间测地线距离

微分流形中整体是没有距离概念的,但是有推广的测地线距离(geodesic)。代表算法有Isomap(Isometric Feature Mapping)算法。算法步骤大体分成三个部分:构造近邻图、计算最短路径、低维嵌入。

  • 构造近邻图

    LLE算法相同,基于欧式距离找出邻近点,建立整体集合的近邻连接图(图论理论中图概念)。

  • 计算最短路径

    近邻连接图中近邻点之间存在连接关系,而非近邻点之间不存在连接关系。这样计算两点之间测地线距离的问题就转变为计算近邻连接图上两点之间的最短路径问题。最短路径上逐点距离和近似代替几何意义上的测地线。最短路径计算,采用图论中Dikstra算法或Floyd算法。

  • 低维嵌入

    在得到任意两点的距离之后,结果就可以直接应用 MDS(Multidimensional Scaling) 算法了。

isomap

上图瑞士卷数据集是常用的验证数据集。A图中蓝色线表示流形上两点之间的实际测地线距离,B图中红色是Dijkstra算法在近邻图上找到的最短距离,C图显示了降维后三维数据集在二维平面中的嵌入效果,结果较为近似。但是当流形的曲率较大、数据稀疏时或者流形上有孔洞的话,算法效果较差。而对于空间中的数据点稠密时,近似效果较好。

2.1.3 保持图的局部邻接关系

Isomap 算法使用点与点之间欧式距离构建了整体数据集合的近邻图。在这个图中,点与点之间关系为欧式距离。而这个关系可以使用高斯核(Gaussian Kernel)来定义。

对于连通的两个点 $i,i′$,令图关系值为:$w_{ii′}=k(i,i’)=exp(−∥i−i′∥2/σ2)$ 。而其它点关系值为: 0。这样所有点之间的关系值可以得到图的邻接矩阵W,第i行的第i'个值对应权重:$w_{ii’}$。

如果记在降维映射后的值为$j,j’$ ,那么就是在假设空间中寻找函数使得下面的性能度量最小:
$$
\sum_{jj’}(j-j’)^2 w_{jj’}=\sum_{jj’}\left(j^{2}+j’^{2}-2j j’\right) W_{j j’}=2 \mathbf{y}^{T} L \mathbf{y}
$$
其中$$D_{jj’}=\sum_{j’} W_{j j’}, L=D-W$$ ,LLaplacian矩阵。

这个目标函数形式是不是和PCA十分的相似。目标函数的求解是一个广义特征值分解问题:
$$
L \mathbf{y}=\lambda D \mathbf{y}
$$
计算L的特征值,将特征值从小到大排序,取前k个特征值,并计算前k个特征值$\lambda_{0}, \lambda_{2}, \ldots, \lambda_{k-1}$。这样就得到了键数据映射到特征空间中。

这个算法过程和谱聚类(Spectral Clustering)算法技术是相同的。

这就是Laplacian Eigenmaps算法,具体算法过程,参考论文:《Laplacian Eigenmaps for Dimensionality Reduction and Data Representation》。LEE算法对于闭合流形、稀疏数据集效果有限,另外结果对于K值选取较为敏感。

LE算法是非线性的,另外还有推广的线性版本:保持保持投影LPP(Locality Preserving Projections)算法,参考论文:《Locality Preserving Projections》。

2.1.4 保持概率分布

对于数据流形中,Isomap 算法使用近似测地线来度量近邻点之间的距离(相似性)。2002年Hinton提出一个奇妙的思路,使用概率密度来度量这个相似性。这就是SNE(Stochastic Neighbor Embedding)算法。

对于数据流形$X$中两个数据点$x_i$和$x_j$,考虑$x_i$为中心的高斯分布($\sigma_i$为分布的方差),定义一个条件概率$p_{ij}$(数据点$x_i$选择$x_j$为近邻点的概率):
$$
p_{i j}=\frac{\exp \left(-d_{i j}^{2}\right)}{\sum_{k \neq i} \exp \left(-d_{i k}^{2}\right)},其中d_{i j}^{2}=\frac{\left|\mathbf{x}{i}-\mathbf{x}{j}\right|^{2}}{2 \sigma_{i}^{2}},(局部欧式使用欧式度量)
$$
当映射将流形数据映射到低维空间$Y$后,需要保持数据点的相似性。记在低维空间中数据点$x_i$和$x_j$的值分别为$y_i$和$y_j$,同样赋予条件概率度量,特别的将高斯分布的方差固定为$1/\sqrt{2}$。
$$
q_{i j}=\frac{\exp \left(-\left|\mathbf{y}{i}-\mathbf{y}{j}\right|^{2}\right)}{\sum_{k \neq i} \exp \left(-\left|\mathbf{y}{i}-\mathbf{y}{k}\right|^{2}\right)}
$$
我们定义了数据流形中点$x_i$和值空间中点$y_i$条件概率。如果遍历所有点,就定义了一个关于$x_i$和$y_i$的概率分布:
$$
P_i={p_{ij}(x_j)}_{j\in X},Q_i={q_{ij}(y_j)}{j\in Y}
$$
映射保持概率分布,这时候概率分布的度量KLKullback-Leibler Divergence)散度就用上了,最后得到假设空间的性能度量指标:
$$
C=\sum
{i} K L\left(P_{i} | Q_{i}\right)=\sum_{i} \sum_{i} p_{j \mid i} \log \frac{p_{j \mid i}}{q_{j \mid i}}
$$
最后算法根据这个目标函数寻找最优解。

我们知道KL散度是非对称的,SNE算法更关注于局部,容易忽视全局结构。后续Hinton将低维空间的分布由高斯分布换成t分布(利用t分布的长尾性特征),就是降维可视化中最常用的算法t-SNE算法。

下图为mnistt-SNE算法下降维至2维空间的可视化效果。

tsne-mnist (1).png)

对于t-SNE算法,实际工程实现时需要计算大量的概率值,计算量较大。实际上,对于相距较远的点成为邻域点的概率会很小,所以只需要考虑一定范围邻域的点集即可,提前构建近邻图。

2.2 可视化

数据降维的一个衍生功能就是可视化化。将数据映射到二维或者三维欧式空间中(映射保持指定的信息结构),便于三维生物体更容易感知到数据之间的结构关系。

但是原始数据蕴含的流形并不一定是恰好的三维或二维,强行降维会破坏数据的真实结构信息。

2.3 半监督学习

在实际数据处理中,标签数据是珍贵而稀缺的。更多的应用场景是:有少量已经标记的标签数据和大量的无标签数据。在流形学习假设前提下,相似数据应该在流形的同一个局部邻域中(或者说局部领域中数据标签相似)。基于这个假设,大量的非标签数据就可以通过少量标签获取到标签。

2.4 工程实现

对于工程实现,Pythonscikit-learn包提供相关流形学习的算法实现包。主要有:

封装类名 对应算法
manifold.Isomap() Isomap Embedding
manifold.LocallyLinearEmbedding() Locally Linear Embedding
manifold.SpectralEmbedding() Spectral embedding for non-linear dimensionality reduction.
manifold.TSNE) t-distributed Stochastic Neighbor Embedding.

第三部分 总结

3.1 谱图理论

Isomap算法和LE算法在构建数据近邻图的过程使用的思想其实是谱图理论(spectral graph theory)。其本质是利用数据相似度的关系矩阵,然后计算矩阵的特征值和特征向量,最后选择合适的特征向量投影得到的数据的低维嵌入。图谱理论的技术要求数据流形的数据采样是稠密的、流形曲率不能太大,否则对噪声是敏感的。

图谱理论的技术使得数据流形学习由理论落地为实践。近几年在图神经网络方向仍然是重要技术。

3.2 流形学习中问题

3.2.1 基本问题1

对于给定的多维数据集,研究和刻画数据微分流形的几何和拓扑性质。寻找一些基本判别定理确定数据内蕴微分流形结构。

3.2.2 基本问题2

在对数据流形处理过程中,如何刻画数据微分流形中信息量,如何建立数据中信息量和几何结构的关系。数据微分流形在哪一类函数变换下能保持信息量的不变。

3.3 解释性

对于一些常用的数据集,很多研究结果表明具有流形结构,例如:

1、MNIST数据是一个6维流形;

2、从不同角度拍摄得到的一系列图片数据集实际上是分布在一个低维流形中;

通常机器学习中,在数据上构建模型的时候,人们更多的是关注于模型的泛化性能,强调模型是端到端的,就是我们经常在英文文献中看到的概念:end-to-end learning 。将大量时间花费在缺乏理论指导的实验性调参上(自嘲为”炼丹师”)。例如深度学习应用中,更多是优化网络层结构和参数,忽略背后数据特征的变化原理。当然也引起了人们的怀疑态度,即模型的可解释性危机。

数据科学中很多问题本质是几何问题,解释性危机极大可能由几何理论来最终解答。例如国内顾险峰团队使用最优传输理论(Optimal Mass Transportation ),凸几何(Convex Geometry),蒙日-安培方程(Monge-Ampere Equation)的交汇给出了生成模型GAN(Generative Adversarial Networks)的几何观点。

3.4 交叉学科

除了流形学习,近些年数据科学和几何学出现很多交叉方向,例如信息几何学、计算共性几何。

  • 信息几何学

    概率是信息学和数据科学中重要概念。信息几何学将概率密度函数集合看成微分流形,把Fisher信息作为黎曼度量,使用测度距离作为概率密度函数之间的距离,获得丰富结果。

  • 计算共形几何

    计算共形几何将现代几何拓扑理论与计算机科学相融合,将经典微分几何、Riemann面理论、代数拓扑、几何偏微分方程的概念、定理和方法推广至离散情形,转换成计算机算法,广泛应用于计算机图形学、计算机视觉、计算机辅助几何设计、数字几何处理、计算机网络、计算力学、机械设计以及医学影像等领域中。

由于笔者水平有限,不能保证全部内容均正确无误,若读者有不同意见,非常欢迎留言指教一起探讨。

参考文献

1、《微分拓扑新讲》,张筑生,北京大学出版社;

2、《黎曼几何引论》,陈维恒 李兴校,北京大学出版社;

3、Nonlinear Dimensionality Reduction by Locally Linear Embedding,Sam T. Roweis和Lawrence K. Saul,《Science》2000

4、Laplacian Eigenmaps for Dimensionality Reduction and Data Representation,M.Belkin,NIPS2002论文

5、Locality Preserving Projections,何晓飞,NIPS (2003)

6、深度学习的几何学解释,链接:http://www.engineering.org.cn/ch/10.1016/j.eng.2019.09.010

0%