从欧氏空间到流形拓扑:高维数据的降维之旅

Hyacehila

降维的动机与背景

这篇文章中的问题也可以和线性回归基础:线性模型、最小二乘估计与回归诊断统计计算:随机数生成、随机变量模拟与蒙特卡洛方法放在一起阅读,以比较相近的概念如何在不同语境中展开。

高维数据的挑战

现代数据科学与机器学习常常要处理成百上千甚至更高维度的数据。维度(即特征数量)一旦接近或超过样本量,便形成常见的 “高维小样本” 场景:传统依赖“样本量远大于维度”的统计方法,其有效性、稳定性与可解释性都会受到考验。

高维并非低维数据的简单推广。它同时带来计算、感知与统计三方面的挑战:遍历特征子集或进行复杂估计的成本迅速上升;人类难以直接把握高维几何结构;而有限样本在更大的空间中愈发稀疏,许多依赖局部邻域或分布估计的经典方法也因此失稳。

维数灾难:从 kNN 到 pnp \gg n

最具代表性的困难是 “维数灾难” (Curse of Dimensionality)。随着维数增长,为维持相同的采样密度,所需样本量会急剧增加;高维中最近邻与最远邻的距离差异又趋于缩小,使距离本身逐渐失去区分度。

以 k 近邻(kNN)为例,它根据距离选取与测试样本最接近的 kk 个训练样本,再通过投票或加权平均进行预测;其有效性依赖足够密集的样本和能区分邻近关系的距离度量。但当空间变得稀疏,核密度估计、kNN 等在低维中稳健的方法,要么需要近乎爆炸式增长的样本量,要么会因方差扩大而变得不可靠。

经验上常以“每个维度至少约 5 个观测值”作为可靠建模的粗略门槛;若特征数为 pp,相应的经验基线约为 5p5p 个观测。但在基因表达、文本挖掘等应用中,普遍存在 pnp \gg n 的情形,这一要求往往无法满足。

高维统计的应对框架

高维统计并没有简单地放弃传统框架,而是通过结构假设与新的理论工具重新组织分析流程。探索性数据分析(EDA)可以先用相关性分析、聚类和异常检测探索潜在模式,为后续假设提供经验依据;正则化则以适度偏差换取更低方差,使有限样本下的预测更稳定。

稀疏性与低秩性等结构假设,进一步让变量选择、协方差估计和高维推断重新具备可识别性与统计保证。在这些条件下,渐近与非渐近理论不再要求“固定维度、样本量趋于无穷”,而允许维度与样本量同步增长,为稀疏回归、图模型学习等方法提供理论基础。

这也说明高维并不只是“诅咒”。它迫使我们关注计算可行性、统计效率与可解释性之间的平衡,同时也可能带来更好的线性可分性,并为核方法等思路提供空间。关键不在于机械地增加或减少维度,而在于识别数据中真正可利用的结构。

降维为何成为关键手法

在这些应对手段中,降维(Dimensionality Reduction) 尤其重要:它将高维数据投向更紧凑的表示,在可控的信息损失下保留有意义的几何、距离或局部邻域结构,从而服务于可视化、探索、计算与后续建模。它既可以寻找有效的低维子空间,也可以揭示潜在的非线性流形。

下文不再重复铺开整个高维统计谱系,而是从保持全局结构的传统方法出发,逐步讨论更常用的降维路线及其数学直觉。对已经在其他笔记中展开过的 PCA、AE 等内容,这里仍以应用层面的回顾和比较为主,不重复理论推导。

保持全局结构的传统方法

早期的降维技术主要关注如何保持数据点之间的全局几何关系(如欧氏距离)。

多维缩放(MDS):距离的忠实还原

MDS(Multiple Dimensional Scaling)是保留距离的经典算法。它的直觉很朴素:如果两个点在高维空间距离很远,在低维空间也应该很远。

假定 mm 个样本在原始空间的距离矩阵为 DD,分量为 distijdist_{ij}。我们的目标是找到低维映射 ZRd×mZ \in \mathbb{R}^{d^* \times m},使得 zizjdistij\|z_{i}-z_{j}\| \approx dist_{ij}

数学上,通过构建内积矩阵 B=ZTZB = Z^{\mathrm{T}} Z,利用余弦定理推导:

bij=12(distij2disti.2dist.j2+dist..2)b_{ij}=-\frac{1}{2}(dist_{ij}^{2}-dist_{i.}^{2}-dist_{.j}^{2}+dist_{..}^{2})

其中 disti.2dist_{i.}^2 等表示行或列的均值。对矩阵 BB 进行特征值分解:

Z=Λ1/2VTZ = \Lambda_{*}^{1/2} V_{*}^{\mathrm{T}}

取最大的几个特征值对应的特征向量,即可得到坐标。

MDS 的主要局限在于:它试图保留所有点对之间的距离,这种对欧式距离(也可能是其他距离)的严苛要求很容易出错。处理非线性数据(如卷曲的瑞士卷)时,欧氏距离本身就可能是错误度量:两个在卷曲面上空间距离近的点,在流形上实际可能很远。

PCA 与 KPCA:从线性到核技巧

PCA(主成分分析) 已经有过详细介绍,这里只把它放回降维的宏观视角中简要讨论。需要重申的是,PCA 等价于使用欧氏距离的 MDS。它寻找最大方差方向,保留的是数据的全局线性结构

当线性投影失效时,核化线性降维(KPCA)引入了”核技巧”(Kernel Trick)。其直觉是:将低维线性不可分的数据映射到高维(甚至无穷维)空间,使其变得线性可分。

形式上,通过求解 (i=1mziziT)W=λW\left(\sum_{i=1}^m z_i z_i^\mathrm{T}\right) W = \lambda W 并在计算中利用核函数 κ(xi,xj)\kappa(x_i, x_j) 替代直接的内积计算。虽然把数据映射到更高维看似反直觉,但它为 PCA 引入了非线性处理能力,是连接传统统计方法与流形学习的桥梁。

流形学习与概率图模型(现代降维核心)

当数据分布在曲面(流形)上时,就需要流形学习(Manifold Learning)。它关注的是:保留局部邻域结构,弱化遥远的全局距离。 至于流形本身是什么,拓扑学中有更详细的讨论。

t-SNE:从距离到概率分布

t-SNE (t-Distributed Stochastic Neighbor Embedding) 是深度学习时代前夜影响很大的数据可视化技术。它不再执着于“保持距离”的硬性约束,而是转向“保持概率分布”。

技术直觉与数学形式

高维空间的邻居概率(高斯分布):在高维空间,如果不直接用距离,而是问:点 xjx_j 是点 xix_i 的邻居的概率是多少?我们使用高斯分布来定义这个条件概率 pjip_{j|i}

pji=exp(xixj2/2σi2)kiexp(xixk2/2σi2)p_{j|i} = \frac{\exp(-\|x_i - x_j\|^2 / 2\sigma_i^2)}{\sum_{k \neq i} \exp(-\|x_i - x_k\|^2 / 2\sigma_i^2)}

注意这里的 σi\sigma_i 是针对每个点单独计算的,由参数 Perplexity 决定。

低维空间的邻居概率(t-分布):在低维空间,我们要寻找点 yi,yjy_i, y_j。为了解决拥挤问题(Crowding Problem),t-SNE 使用自由度为 1 的 t-分布(柯西分布)

qij=(1+yiyj2)1kl(1+ykyl2)1q_{ij} = \frac{(1 + \|y_i - y_j\|^2)^{-1}}{\sum_{k \neq l} (1 + \|y_k - y_l\|^2)^{-1}}

为什么要用 t-分布? 因为 t-分布是”重尾”的。相比高斯分布,要获得相同的概率值(相似度),t-分布要求点与点之间的距离更远。这迫使原本在高维空间挤在一起的数据簇,在低维空间被”炸开”,形成清晰分离的簇。

损失函数:KL 散度

C=KL(PQ)=ijpijlogpijqijC = KL(P||Q) = \sum_i \sum_j p_{ij} \log \frac{p_{ij}}{q_{ij}}

梯度分析来看:KL 散度是不对称的。如果 pijp_{ij} 很大(高维是邻居)但 qijq_{ij} 很小(低维分开了),惩罚巨大。反之,如果 pijp_{ij} 很小(高维不是邻居)但 qijq_{ij} 很大,惩罚较小。最终结果是:t-SNE 极度擅长保留局部结构(把邻居聚在一起),但几乎不保留全局结构(簇与簇之间的距离通常没有意义)。

需要提前说明的是,t-SNE 的效率并不高;在大规模数据上的速度瓶颈,也是后来引入UMAP的原因之一。

Perplexity (困惑度):这是t-SNE的主要参数 , 常取值范围在 5-50 之间,可以理解为”预估的邻居数量”。如果设置得太小,数据会碎裂成无数小团块,以此拟合噪音;如果设置得太大,则会忽略局部细节,结果越来越像 PCA。

UMAP:拓扑数据分析的胜利

UMAP (Uniform Manifold Approximation and Projection) 是目前的 SOTA 降维算法。它在 t-SNE 的基础上,引入了严谨的黎曼几何与代数拓扑理论,解决了 t-SNE 速度慢且丢失全局结构的问题。

技术直觉:流形上的均匀分布

UMAP 基于一个假设:数据均匀分布在某个黎曼流形上。 如果在现实空间中数据看起来分布不均(有的地方密,有的地方疏),那是因为我们用来观测的”标尺”(欧氏距离)是错的。

自适应的度量(黎曼度量):UMAP 为每个点 xix_i 定义了一个局部的黎曼度量。在数据稀疏的区域,UMAP 会”拉长”距离;在密集的区域,会”缩短”距离。这通过 k-近邻距离来实现,并构建出一个加权的 kNN 图。

模糊单纯复形(Fuzzy Simplicial Complex):通过上述度量,UMAP 将数据转化为拓扑结构(单纯复形)。

优化目标:二元交叉熵 (Binary Cross-Entropy):t-SNE 只用了 KL 散度,只关注”把邻居拉近”。UMAP 使用交叉熵:

CE=pijlog(pijqij)+(1pij)log(1pij1qij)CE = \sum p_{ij} \log(\frac{p_{ij}}{q_{ij}}) + \sum (1-p_{ij}) \log(\frac{1-p_{ij}}{1-q_{ij}})

其中第一项类似 t-SNE,产生引力,拉近邻居。第二项涉及 (1pij)(1-p_{ij}),这是在惩罚”非邻居被拉近”的情况,产生了一种全局斥力。最终结果是:UMAP 让簇内保持紧凑,同时迫使簇与簇之间保持正确的相对位置,从而保留更多全局结构。

UMAP的参数比t-SNE多一些。除了控制局部规模,还需要控制嵌入的紧凑程度;因为它试图保留一部分全局结构,也能展示一定程度的空间拓扑结构。

n_neighbors:控制局部图的规模。小值(例如 5)可以捕捉高频细节;大值(例如 200)则捕捉全局概貌(类似 PCA)。

min_dist:控制低维嵌入的紧凑度。小值(0.1)允许点重叠,适合聚类分析;大值(0.8)强迫点分开,适合展示拓扑结构。

神经网络与现代扩展

Autoencoder (AE):非线性压缩

AE 及其衍生模型已经在自编码器章节中详细讨论。放到降维视角下,AE 是参数化的降维。它的主要区别在于:流形方法是非参数的(Non-parametric),它们只给出坐标,无法直接处理新数据;而 AE 学习的是一个函数 f(x)f(x),可以随时处理新样本。

普通 AE 的降维效果通常不如专门的可视化方法。对于t-SNE和UMAP这种经常将空间压缩到2-3维的场景,AE更适合先降到几十或几百维,作为特征预处理。提取后的特征再交给下游任务;例如 VAE (Variational AE) 及其变体,在生成模型(Stable Disfusion)和特征解耦中仍是常用技术。

现代科研中的其他重要模型(值得关注)

在生物信息学(特别是单细胞测序)和计算机视觉研究中,除了 UMAP,还有两个模型值得关注:

PHATE (Potential of Heat-diffusion for Affinity-based Transition Embedding):其直觉是使用”热扩散”过程来模拟数据点之间的转移概率。主要优势在于:它擅长保留数据的**轨迹结构(Trajectory)**和分支结构(如干细胞分化过程),比 UMAP 更适合展示数据的连续演化过程。

PacMAP (Pairwise Controlled Manifold Approximation):其直觉是通过设计特殊的”中距离”点对,显式平衡局部引力和全局斥力。目前的地位是:它被视为 t-SNE 和 UMAP 的有力竞争者,通常在保留全局结构上比 UMAP 更稳健,且参数敏感性更低。

度量学习(Metric Learning)

最后,回到降维的初衷。我们之所以降维,往往是因为欧氏距离在高维空间失效。度量学习提出了一个逆向思维:与其将数据映射到低维空间去适应欧氏距离,不如直接学习一个新的距离度量函数 d(xi,xj)d(x_i, x_j)

马氏距离学习方面:学习一个矩阵 MM,使得距离 d(x,y)=(xy)TM(xy)d(x, y) = \sqrt{(x-y)^T M (x-y)} 能最好地反映数据的相似性。

孪生神经网络 (Siamese Networks) 方面:这是现代深度度量学习的主流。通过神经网络将两个输入映射到特征空间,直接优化特征向量之间的距离(如 Triplet Loss),使得同一类样本距离近,不同类样本距离远。

其他常见降维方法一览

前面的主线之外,还有一批在工程中常见的降维方法,其中不少已不太常用。这里只做简要概括,重点说明它们与前面主线方法的关系。

线性方法:LDA(线性判别分析)是 PCA 的监督版本——类别标签可用时,寻找使”类间散度最大、类内散度最小”的投影方向,常用于分类前的降维;因子分析(FA)则假设观测变量由少数公共因子加特殊因子生成,更强调对结构的解释而非压缩。

保留局部结构的非线性方法:局部线性嵌入(LLE)假设每个点可由邻域内的点线性重构并保持重构权重不变,拉普拉斯特征映射(LE)则通过图的拉普拉斯算子让近邻点尽量靠近;二者与前面讲的 t-SNE、UMAP 同属”保留局部结构”一族,只是更早也更不常用。SNE 是 t-SNE 的前身,同样把相似度转为条件概率,t-SNE 只是改用重尾的 t 分布缓解了拥挤问题。

矩阵分解视角:LSA、NMF 与低秩近似都把降维看成矩阵分解。潜在语义分析(LSA)是对词-文档矩阵做 SVD 的低秩近似,常用于文本主题空间;非负矩阵分解(NMF)要求两个因子均为非负,因此输出常被解释为”部分加和”(如主题、部件的组合);低秩近似本身是寻找与原矩阵最接近的低秩矩阵,PCA/SVD 是它的特例。ICA(独立成分分析)的目标则不同——不是去除相关性,而是寻找统计上相互独立的成分,常用于信号分离等盲源分离任务。

核化与迁移学习:核化线性降维(KPCA、KLDA)把核技巧引入线性方法,KPCA 已在前面介绍,KLDA 是对应的监督版本;迁移学习降维(TCA)面向跨域场景,把源域与目标域映射到同一个公共子空间,使领域分布差异最小化。

一个提醒:降维在带来计算与可视化便利的同时,往往损害误差分析与模型可解释性:投影后的特征不再是原始特征,业务含义与后续解释都会打折扣,且这种损失在绝大多数情况下难以挽回。选型之前值得先确认这两点能否接受。

总结:如何选择?

方法 核心数学思想 对全局结构的保留 对局部簇的保留 推荐场景
PCA 协方差特征分解 [极高] (极好) [低] (差) 数据预处理、基线测试、线性数据
MDS 距离矩阵重构 [极高] [低] 需要严格保持距离矩阵时
t-SNE 概率分布 (KL散度) [低] (几乎无) [极高] (极好) 探索性数据分析、强调聚类分离度
UMAP 拓扑单纯复形 + 交叉熵 [高] (良好) [极高] (极好) 目前首选,兼顾全局与局部,大数据集
PHATE 热扩散信息距离 [极高] [高] 具有连续演化轨迹的数据(如时间序列、生物发育)
AE 神经网络重构误差 [高] [低] 需要特征提取器用于下游任务时
  • 标题: 从欧氏空间到流形拓扑:高维数据的降维之旅
  • 作者: Hyacehila
  • 创建于 : 2026-01-16 02:00:00
  • 链接: https://hyacehila.github.io//blog/2026/01/16/dimensionality-reduction-high-dimensional-data/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论