机器学习----降维与度量学习(等度量映射和度量学习)

本文介绍了流行学习,特别是等度量映射的概念,强调了高维空间中直线距离的不足,并通过Dijkstra和Floyd算法来计算低维空间中的测地线距离。接着,文章探讨了度量学习的重要性,提出通过学习合适的距离度量来提升学习性能,并简要讨论了度量学习的优化方法。
摘要由CSDN通过智能技术生成

流行学习

流行学习(manifold learning)是一类借鉴了拓扑流行概念的降维方法。“流行”是在局部与欧式空间同胚的空间。换言之,它在局部具有欧式空间的性质,能用欧式距离来进行距离计算。
这就很有灵性了!若低维空间能嵌入到高维空间中去,则可以很容易的进行降维。

等度量映射

等度量映射认为高维空间的直线距离,并不能很好的表现样本之间的距离。如下图所示:
这里写图片描述

高维空间中的AB直线距离并不准确,反而绿色的线的长度作为长度看起来更靠谱。这个低维嵌入流行上两点的距离是“测地线”(geodesic)距离。
怎么计算测地线距离呢?我们可以对于每一个点基于欧式距离找出其临近点,然后就能建立一个近邻连接图,图中近邻点之间存在连接,非近邻点不存在连接。于是计算测地线距离的问题,就变换为计算近邻图上两点之间的最短路径问题(这是一个很好的近似~)。
这里有著名算法Dijkstra或Floyd算法。

Dijkstra

找了个动图 自行感受把~
这里写图片描述

Floyd

Floyd-Warshall算法(Floyd-Warshall algorithm)是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题,同时也被用于计算有向图的传递闭包。Floyd-Warshall算法的时间复杂度为O(N3),空间复杂度为O(N2)。

算法思想原理:

Floyd算法是一个经典的动态规划算法。用通俗的语言来描述的话,首先我们的目标是寻找从点i到点j的最短路径。从动态规划的角度看问题,我们需要为这个目标重新做一个诠释(这个诠释正是动态规划最富创造力的精华所在)

  从任意节点i到任意节点j的最短路径不外乎2种可能,1是直接从i到j,2是从i经过若干个节点k到j。所以,我们假设Dis(i,j)为节点u到节点v的最短路径的距离,对于每一个节点k,我们检查Dis(i,k) + Dis(k,j) < Dis(i,j)是否成立,如果成立,证明从i到k再到j的路径比i直接到j的路径短,我们便设置Dis(i,j) = Dis(i,k) + Dis(k,j),这样一来,当我们遍历完所有节点k,Dis(i,j)中记录的便是i到j的最短路径的距离。

算法描述:

a.从任意一条单边路径开始。所有两点之间的距离是边的权,如果两点之间没有边相连,则权为无穷大。   

b.对于每一对顶点 u 和 v,看看是否存在一个顶点 w 使得从 u 到 w 再到 v 比己知的路径更短。如果是更新它。
之后就变成普通的低维嵌入了。

度量学习

之前的种种降维,我们都可以看出其实就是希望找到一个合适的低维空间,在此空间中进行学习能比原始空间性能更好。事实上,每个空间对应了在样本属性上定义的一个距离度量,而寻找合适的空间,实质上就是在寻找一个合适的距离度量。那么,为何不直接尝试“学习”出一个合适的距离度量呢?这就是度量学习的基本动机。
观察欧式距离:

dist2ed=||xixj||22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值