降维技术——在高维空间中寻找本质结构
原创
代码小铺
代码小铺
代码小铺
2026年6月28日 17:55
湖北
在小说阅读器读本章
去阅读
一张照片的维度灾难
一张 100×100 像素的灰度图片,在计算机眼里是一个 10000 维的向量——每个像素是一个维度。
问题来了:你真的需要 10000 个数字来描述这张图吗?
想想你自己是怎么描述一张人脸照片的——\"圆脸、大眼睛、短发、戴眼镜\"。你可能只用了不到 10 个特征,就抓住了关键信息。人脸的本质结构远远低于 10000 维。
降维技术要做的就是这件事:在高维数据中,找到真正重要的少数几个方向。
维数灾难:为什么高维很可怕
在深入降维之前,先理解为什么\"维度高\"是一件坏事。
想象你在一个空旷的房间里找一枚硬币:
- • 1 维(一条线):沿着线找,很简单
- • 2 维(一个平面):需要搜索的面积大了很多
- • 3 维(一个空间):更难了
- • 10000 维:数据点之间的距离变得几乎一样,\"近\"和\"远\"失去意义
这就是维数灾难(Curse of Dimensionality):
-
- 数据变得极度稀疏:高维空间中,点与点之间的距离趋于一致
-
- 模型容易过拟合:特征太多,模型容易\"记住\"噪声而不是学到规律
-
- 计算成本爆炸:维度越高,计算量呈指数增长
-
- 可视化不可能:人类最多理解三维
降维就是为了对抗这个灾难。
PCA 主成分分析:找最重要的方向
PCA(Principal Component Analysis) 是最经典的降维方法,思路优雅而直觉。
直觉比喻
想象你从高处俯瞰一片散落在地上的树叶。有些树叶大致沿着东西方向分布,有些沿南北方向。PCA 做的事情是:
-
- 找到数据\"展开最宽\"的方向 → 第一主成分
-
- 找到和第一个方向垂直、\"展开第二宽\"的方向 → 第二主成分
-
- 依次类推
就像给数据拍一张\"最佳角度\"的照片——你选的角度要能看到数据最多的变化。
数学直觉
PCA 在做什么?
-
- 计算数据的协方差矩阵(描述各维度之间的相关性)
-
- 对协方差矩阵做特征值分解
-
- 取最大的 K 个特征值对应的特征向量——这就是 K 个最重要的方向
-
- 把原始数据投影到这 K 个方向上,完成降维
特征值越大,说明数据在这个方向上的\"展开\"越大,包含的信息越多。
PCA 的优缺点
优点:
- • 计算高效,有解析解
- • 保留了数据的全局结构
- • 去相关——降维后的各维度互不相关
缺点:
- • 只能捕获线性结构
- • 可解释性差——主成分是原始特征的线性组合,可能难以理解
t-SNE:邻居关系不变
t-SNE(t-distributed Stochastic Neighbor Embedding) 是另一种降维方法,特别适合可视化高维数据。
核心思想
t-SNE 的思路非常直觉:
在高维空间中是邻居的点,在低维空间中也应该保持邻居关系。
具体做法:
-
- 在高维空间中,计算每对点之间的\"相似度\"(用高斯分布,距离越近相似度越高)
-
- 在低维空间(通常是 2 维)中,也计算每对点的相似度(用 t 分布)
-
- 调整低维空间中的点的位置,使得两组相似度尽可能接近
为什么 t-SNE 的可视化那么好看
你可能在很多论文里见过 t-SNE 做出的彩色散点图——不同类别的点自动聚成漂亮的小团。这是因为:
- • 关注局部结构:t-SNE 特别在意\"谁是邻居\",所以同一个类别的点会紧紧聚在一起
- • t 分布的\"长尾\":低维空间用 t 分布而不是高斯分布,会让距离较远的团之间自然拉开,避免挤在一起
t-SNE 的局限
- • 计算复杂度高:O(n²),大数据集上很慢
- • 结果不稳定:每次运行结果可能不同(随机初始化)
- • 不能保留全局结构:团与团之间的距离不一定有意义
UMAP:更快、更全局
UMAP(Uniform Manifold Approximation and Projection) 是 t-SNE 的\"升级版\",2018 年提出后迅速流行。
UMAP 基于流形学习和拓扑学的理论,核心思想是:高维数据分布在一个低维流形上,我们要找到这个流形并在低维空间中重建它。
相比 t-SNE 的优势:
| 特性 | t-SNE | UMAP |
|---|---|---|
| 速度 | 慢 | 快很多(10-100 倍) |
| 全局结构 | 差 | 好 |
| 可扩展性 | 万级数据 | 百万级数据 |
| 理论根基 | 概率论 | 拓扑学 |
流形学习:弯曲空间中的捷径
流形(Manifold) 听起来很抽象,但直觉很简单:
想象地球表面——它是三维空间中的一个二维曲面(流形)。从北京到纽约的直线距离穿过地球内部,但飞机走的是沿着球面的大圆航线。虽然地球是三维的,但我们在球面上只需要两个坐标(经度、纬度)就能定位。
流形学习假设高维数据也分布在一个低维流形上:
- • 人脸图片(10000 维)→ 可能在 10-20 维的流形上(控制变量:角度、光照、表情……)
- • 手写数字(784 维)→ 可能在 5-10 维的流形上
PCA、t-SNE、UMAP 都是流形学习的不同实现方式——它们都在试图\"展开\"这个弯曲的低维结构。
如何选择降维方法?
你的目标是什么?
├── 保留全局结构 + 速度快 → PCA
├── 可视化(2D/3D) → t-SNE 或 UMAP
├── 大规模数据 + 可视化 → UMAP
├── 非线性结构 + 特征提取 → 自编码器(深度学习)
└── 预处理(给下游模型降特征数) → PCA
小结与展望
降维技术帮我们在高维数据的\"迷雾\"中找到本质结构。PCA 找全局最重要的方向,t-SNE 保留邻居关系做可视化,UMAP 兼顾速度和全局结构。
这些技术的共同主题是:数据看起来维度很高,但真正有用的信息往往藏在少数几个方向上。
下一站,我们把目光从\"空间\"转向\"时间\"——当数据不再是一组静态的特征,而是随时间变化的序列时,我们该如何分析和预测?
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论