写在前面
文章参考 夏天/isummer的博客园 ,参考链接:https://www.cnblogs.com/icmzn/p/11082509.html
1.关于流形的理解
流形学习的观点:我们所能观察到的数据实际上是由一个低维流形映射到高维空间上的,即这些数据所在的空间是“嵌入在高维空间的低维流形”。由于数据内部特征的限制,一些高维中的数据会产生维度上的冗余,实际上只需要比较低的维度就能唯一地表示。
直观上来讲,一个流形好比是一个 d 维的空间,在一个 m 维的空间中 (m > d) 被扭曲之后的结果。流形并不是一个“形状”,而是一个“空间”
举一块布的例子:一块二维的布,再三维空间进行扭曲,则说“三维空间扭曲的布是一个二维的流行”,即"二维流形"嵌入了“三维空间”。
2.流形学习的作用
先说第一个方面。高维空间有冗余,低维空间没冗余。也就是说,流形可以作为一种数据降维的方式。传统很多降维算法都是用欧氏距离作为评价两个点之间的距离函数的。但是仔细想想这种欧氏距离直觉上并不靠谱。“我们只是看到了三维数据,就要用三维坐标系内的尺度去对事物进行评价?”总觉得有些怪怪的。
举个例子,从伦敦到北京有多远?你可以找一个地球仪,然后用一把能弯曲的软软的尺子,经过地球仪表面然后测量一下这两个点的距离。但是如果我用一个直直的线,将地球仪从伦敦到北京洞穿,测量出一个更短的距离,你一定会觉得我疯了。显然,我们关注的是把三维地球展开成二维平面,然后测量的地表上的距离,而不是三维空间中球面上两个点的空间直线距离,将这个问题推广一些,假如说决策部门打算把一些离得比较近的城市聚成一堆,然后组建个大城市。这时候“远近”这个概念显然是指地表上的距离,因为说空间直线距离并没有什么意义。
而对于降维算法来说,如果使用传统的欧氏距离来作为距离尺度,显然会抛弃“数据的内部特征”。如果测量球面两点距离采用空间欧氏距离,那就会忽略掉“这是个球面”这个信息。所以我们可以使用流形的方式使用二维的流形表示三维的球面.