Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Dimensionality Reduction

降维将包含大量特征的数据映射到维度少得多的空间,同时保留其结构,常用方法包括 PCA、t-SNE、UMAP 和自编码器。

降维会将由许多特征描述的数据转换为特征数量少得多的表示,同时保留关键信息,例如数据方差、点之间的距离或邻近关系。一张 640x640 彩色图像包含超过 120 万个像素值,一个基因表达谱可能包含 20,000 个测量值,而图像嵌入通常有数百个维度。降维可以加速机器学习模型、降低过拟合风险、减少存储需求,并使人们能够将数据绘制在二维或三维图表中进行数据可视化。

为什么较少的维度更有帮助#

Richard Bellman 在研究动态规划时创造了“维数灾难”这一说法,用来描述随着维度增加,问题会变得更加困难。空间体积会随着每个新特征呈指数增长,因此固定数量的训练数据覆盖的空间会越来越稀疏;而在极高维度下,随机点之间的距离会变得几乎相同,从而削弱依赖距离的方法,例如近邻算法和 k-means 聚类。

真实数据很少会填满整个空间。手写数字图像的变化主要来自笔画粗细、倾斜程度和少数其他因素,因此它们在像素空间中靠近一个低得多维的曲面,也就是流形。降维可以找出这个曲面上的坐标;由于无需标签,大多数降维方法都属于无监督学习的一种形式。

线性与非线性方法#

主成分分析(PCA)由 Karl Pearson 于 1901 年提出,它将数据旋转到一组正交方向上,并按照各方向所能解释的方差从高到低排序,然后保留前几个方向。解释方差比可以显示数据集需要多少个主成分。Ronald Fisher 于 1936 年提出的线性判别分析会利用类别标签,寻找最能区分类别的方向。随机投影会将数据乘以一个随机矩阵;Johnson-Lindenstrauss 引理保证,只需使用随 n 的对数增长的维数,就能将 n 个点之间的距离保留在指定容差范围内。

非线性方法遵循弯曲的流形。Isomap 和局部线性嵌入均于 2000 年发表于 Science,它们会保留流形上的距离和局部线性邻域。t-SNE 和 UMAP 会在二维图中将相似的点放在一起,因此成为查看嵌入簇的标准工具,但这些图上相距较远的簇之间的距离意义不大。自编码器会学习一个编码器,将每个输入映射为较小的潜在空间编码,再由解码器重建输入。2006 年,Geoffrey Hinton 和 Ruslan Salakhutdinov 证明,对于图像和文档,深度自编码器生成的编码优于 PCA。

这个示例将 8x8 的数字图像从 64 个像素特征压缩到能保留 90% 方差的最少主成分,然后分别在压缩前后使用 k 近邻对数字进行分类:

from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.model_selection import cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline

X, y = load_digits(return_X_y=True)  # 1,797 images of 8x8 pixels = 64 features

# Keep the fewest principal components that explain 90% of the variance
pca = PCA(n_components=0.90).fit(X)
print(f"Features: {X.shape[1]} -> {pca.n_components_}")

# Classify with k-nearest neighbors on the raw pixels and on the reduced features
raw = cross_val_score(KNeighborsClassifier(), X, y).mean()
reduced = cross_val_score(make_pipeline(PCA(n_components=0.90), KNeighborsClassifier()), X, y).mean()
print(f"Accuracy: {raw:.3f} with 64 features, {reduced:.3f} with {pca.n_components_}")

21 个主成分保留了 90% 的方差,而交叉验证准确率只从 0.963 降到 0.959,特征数量则减少到原来的三分之一。在流水线内部拟合 PCA,可确保投影仅从各个训练折中学习,因此不会从测试折泄漏信息。

特征选择与特征提取#

特征选择会保留原始列的一个子集,例如删除冗余的传感器通道,因此保留下来的特征仍保有原本的含义。狭义的降维指的是特征提取:它将旧特征组合成新特征,通常能实现更好的压缩,但也更难解释。两者都是数据预处理和特征工程的步骤。深度网络会在训练过程中执行特征提取,将像素压缩成嵌入;套娃式表示学习则会训练出只用前几维也能发挥作用的嵌入,因此向量数据库可以存储更短的向量。

在计算机视觉中的用途#

计算机视觉会在多个阶段使用降维后的表示。将图像嵌入投影到二维空间,并使用 t-SNE 或 UMAP 可视化,可以观察类别是否分离以及离群点的位置;PCA 或向量量化可以压缩向量搜索背后的嵌入,让数百万张图像都能放进内存。YOLO26实例分割模型将这一思路融入输出:检测头会针对每张图像,以输入分辨率的四分之一计算 32 个原型掩码,并为每个目标仅预测 32 个系数;每个目标的掩码都是这些原型的加权和。因此,对于 640 像素的输入,160x160 的掩码包含 25,600 个值,但可用 32 个数字编码。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来