流形学习(Manifold Learning)是机器学习中的一个重要概念,它的核心思想是寻找隐藏在高维数据中的低维结构。
什么是流形?在数学中,一个“流形”(Manifold)是指一个在局部上看起来像平坦的欧几里得空间的几何对象。简单来说,流形就是一种形状,这种形状虽然整体上看可能很复杂,但是在小范围内是平直的。比如地球表面可以看作是一个二维流形,虽然地球是个球体,但在小范围内(如我们日常生活的区域),地面看起来是平的。
高维数据中的低维结构在机器学习中,我们常常处理的是高维数据。例如,一张数字图像可能由数千甚至数万个像素组成,每个像素可以视为一个维度。虽然数据是高维的,但往往数据点并不是随机分布在整个高维空间中的,而是集中在某个低维的子空间内。这个低维子空间就是我们所说的“流形”。
为什么要找低维结构?找到这个低维结构有几个好处:
1. 简化问题:高维数据通常很难处理,因为它会导致所谓的“维数灾难”,使得计算变得复杂且容易出现过拟合。如果我们能找到一个低维的表示,那么处理起来就容易得多。
2. 降噪:真实世界的数据常常包含噪声。通过找到数据的低维结构,我们可以去除一些无关紧要的维度,从而减少噪声的影响。
3. 可视化:高维数据难以直接可视化,但如果能将其转换为二维或三维的数据,就能更容易地看到数据的分布特点。
如何进行流形学习?流形学习的技术主要包括以下几个方面:
1. 主成分分析 (PCA):虽然PCA通常被认为是一种降维技术,但它也可以用来揭示数据中的低维结构。
2. 局部线性嵌入 (LLE):LLE 尝试在低维空间中重建数据点之间的局部邻近关系。
3. t-分布邻域嵌入 (t-SNE):t-SNE 主要用于数据可视化,它通过保持数据点之间的相对距离来映射高维数据到低维空间。
4. Isomap:Isomap 结合了主成分分析和多维尺度变换(MDS),它尝试保持数据点之间的全局几何结构。
实际应用示例假设你有一组手写数字的图像数据。虽然每张图像是高维的,但实际上,手写的“0”和“1”之间存在某种内在的结构。流形学习可以帮助我们找到这种结构,并且把高维的图像数据降维到二维或三维,这样我们就可以通过可视化来更好地理解这些数字是如何分布的。
总结流形学习就是从高维数据中找到一个低维的表示,这个表示可以更好地反映数据的真实结构。通过这样做,我们可以简化问题,降噪,并且更容易地理解和可视化数据。这对于机器学习任务,如分类、聚类等都非常有用。
— END —
如需AI必读书籍,请关注收藏,并后台留言。
《统计学习方法》
《机器学习基础》
《深度学习导论》
《人工智能导论》
《TensorFlow2深度学习》
《Pytorch》