目录
前言
博主最近在学习深度学习的过程中,遇到了Wasserstein距离的相关内容,发现自己对机器学习的距离概念还是不够深刻或者熟悉,所以以笔记的形式再总结一遍,同样分享给有相同需求的同志。
本文只是简略版本,肯定也会有一些错误,欢迎指出~也欢迎交流~
首先我们需要知道什么是距离?要指出一个距离,首先需要至少两个事物,它们可以是向量、函数、概率分布或者其他东西,但是有一个大前提是,它们可以具有或多或少的相似性,但不能形式上完全没有相似性。比如,函数f(x)和太阳系的距离,这个我们根本无法表示,也不需要表示。换句话说,距离是一种衡量相似性的度量。
对于距离的定义虽然有三种,但是基本上满足三点:对于
- 非负性:
- 对称性:
- 三角不等式:
欧氏距离
欧式距离是最常用,也是最直接的距离,它衡量的是两个向量在向量空间中的相似性。直观上来说 ,就是这两点之间的直线距离,假设两点,
,两者之间的欧式距离表示为:
很明显我们可以发现,欧氏距离只能用在欧几里得空间中,即向量空间中。所以,欧氏距离基本上都用在对于向量的处理上,比如聚类任务中,迭代过程中,每个点选择最优簇中心的时候,使用的就是欧氏距离。而且这里需要注意的是,欧氏距离并没有排除量纲的影响。
闵式距离
闵式距离也是一个应用非常广泛,也非常重要的距离,拓展性也很强。同样的,闵式距离也是在向量空间中,衡量两个向量之间的相似性。假设两点,
,两者之间的闵式距离表示为:
其中,p为参数,在正整数上取值。很显然,当p=2时,这个距离就是前文介绍的欧氏距离。另外,p=1时,称为曼哈顿距离,这个距离主要应用在城市网络中,对于规则的节点网格而言,两点之间的距离就是其路径的长度,也即坐标差绝对值和;时,称为切比雪夫距离,其实际上衡量的是两点之间坐标差的绝对值的最大值。
很显然的是,闵式距离也没有排除量纲的影响。
马氏距离
我们知道,在统计学中,两个变量之间可能会存在相关性,那么这种衡量这种相关性,在高维空间中,我们使用了协方差矩阵这个概念。那么,从这个角度,我们可以给出两个样本集之间的一种相似性的衡量,并且和量纲无关,就是马氏距离。假设存在n个变量
,我们用x统一表示,即
,而每个变量的期望值是
,所以同样的有
,而协方差矩阵可以表示为:
而马氏距离表示为:
换个角度想,如果n=2,马氏距离可以理解为服从同一分布的两个变量X,Y之间的差异程度。
KL距离和Wasserstein距离
KL距离也叫Kullback-Leibler散度,相对熵等。其描述的是两个概率分布之间的差异程度,这里需要特别注意:KL距离是不对称的!对于两个概率分布P、Q的概率密度函数p(x)、q(x)而言,其KL距离表示为:
这里我们额外共同约定:0log(0/q)=0,p log(p/0) =
另外,关于两个分布之间的差异性,我们也可以这样理解。一个分布需要转化成另一个分布,从分布图上看,就像是一个一个柱子推成另一堆柱子,而这么做所需要花费的最小成本就是推土机距离,也就是Wasserstein距离。对于分布P、Q,两者之间的Wasserstein距离表示为:
其中p为参数,取正整数;d(x,y)为两者距离,通常为欧氏距离,为P,Q所有联合分布的集合。相比于KL距离,Wasserstein距离在高维空间中有更好的表现。
总结
总的来说,距离的使用往往基于不同的学习任务,所以,在今后的模型构建中,慎重考虑使用哪种距离是非常重要的。
希望你今天开心~