1.3 度量距离
如果你有想买汽车的特征向量,你可以通过在特征向量上定义一个距离函数来找出哪两辆车最为相似。比较对象之间的相似性是机器学习的一个重要组成部分。我们通过特征向量得以表示对象,并以多种方式比较它们。一种标准的方法是使用欧几里得距离,这是在考虑空间中的点时最直观的几何解释。
假设我们有两个特征向量,x=(x1, x2, …, xn)和y=(y1, y2,…,yn)。欧几里得距离||x-y||用下列公式计算,学者们称之为L2范数:
(0,1)和(1,0)之间的欧几里得距离为
这个公式是众多测量距离的公式之一,除此之外还有L0范数、L1范数以及L无穷范数。所有这些范数都是测量距离的方法。这里有一些细节:
- L0范数计算一个向量的非零元素总数。例如,原点(0,0)和向量(0,5)之间的距离是1,因为只有一个非零元素。(1,1)和(2,2)之间的L0距离是2,因为两个维度都不匹配。假设第一个维度和第二个维度分别表示用户名和密码。如果登录尝试和认证证书之间的L0距离为0,则登录成功。如果距离为1,则用户名或密码不正确,但不能两者都不正确。最后,如果距离为2,则在数据库中既没有找到用户名也没有找到密码。
- L1范数定义为∑xn,如图1.8所示。L1范数下的两个向量之间的距离也被称为曼哈顿距离。想象一下生活在像曼哈顿这样的市中心,街道组成一个网格。从一个十字路口到另一个十字路口的最短距离是沿着街区的。同样,两个向量之间的L1距离是沿着正交方向的。L1范数下(0,1)和(1,0)之间的距离为2。计算两个向量之间的L1距离是每个维度上的绝对差的和,这是一种有用的相似性度量。
- L2范数,如图1.9所示,描述向量的欧几里得长度。这是几何平面上从一点到另一点最直接的路径。在数学上,这个范数实现了高斯-马尔可夫定理中所预测的最小二乘估计。对于其余的人来说,这是空间中两点之间最短的距离。
- L-N范数是一个泛化的形式。事实上,我们很少使用到L2以上的范数,但为了完整性这里将其列出来。
- L无穷范数是,更自然地,它是最大的元素的量值。如果向量为(-1,-2,-3),那么L无穷范数为3。如果一个特征向量表示各种物品的成本,那么最小化该向量的L无穷范数就是试图降低最昂贵物品的成本。
图1.8 L1距离被称为曼哈顿距离(也称为出租车度量),因为它类似于网格状社区(如曼哈顿)中的汽车路线。如果一辆汽车从点(0,1)行驶到点(1,0),最短的路线需要2个单位的长度
图1.9 两点(0,1)和(1,0)的L2范数是两点之间的一条直线段的长度
现实生活中,我们什么时候使用L2范数以外的度量
假设你在一家搜索引擎初创公司工作,试图与谷歌竞争。你的老板分配给你的任务是使用机器学习为每个用户定制搜索结果。
我们设定一个较好的目标:用户在每个月内不能看到5条以上的错误搜索结果。一年的用户数据是一个12维的向量(一年中的每个月都是一个维),表示每个月显示的错误结果的数量。你要试图达成的条件就是这个向量的L无穷范数必须小于5。
相反,假设你的老板改变了要求:一年内错误的搜索结果不超过5个。在这种情况下,你会尝试实现L1范数小于5,因为整个空间中所有错误的总和应该小于5。
现在你的老板又改变了要求:出现错误搜索结果的月份数应该少于5个月。在这种情况下,你试图使L0范数小于5,因为出现非零错误的月数应该小于5。