机器学习中的向量范数介绍

计算向量的长度或大小通常需要直接作为机器学习中的正则化方法,或者作为更广泛的向量或矩阵运算的一部分。

在本教程中,你将了解计算矢量长度或幅值(称为矢量范数)的不同方法。

完成本教程后,你将了解:

  • 作为向量绝对值之和计算的L1范数。
  • 作为向量值平方和的平方根计算的L2范数。
  • 作为最大向量值计算的最大范数。

我们开始吧。

教程概述

本教程分为4个部分,它们是:

  • 向量范数。
  • 向量L1范数。
  • 向量L2范数。
  • 向量最大范数。

向量范数

通常需要直接或作为更广泛的向量或向量矩阵运算的一部分来计算向量的大小或长度。

矢量的长度称为矢量范数或矢量的大小。

向量的长度是描述向量在空间中的范围的非负数,有时被称为向量的大小或范数。

向量的长度始终为正数,但向量的值全为零时除外。它是使用某种度量来计算的,该度量总结了向量到向量空间原点的距离。例如,具有3个元素的向量空间的原点是(0,0,0)。

符号用于在更广泛的计算中表示向量范数,并且向量范数计算的类型几乎总是有其自己的唯一符号。

我们将看看机器学习中使用的几个常见的向量范数计算。

向量L1范数

矢量的长度可以使用L1范数计算,其中1是L的上标,例如L^1。

向量的L1范数的记号是||v||1,其中1是下标。因此,这个长度有时被称为出租车标准或曼哈顿标准。

l1(v) = ||v||1

L1范数计算为绝对向量值之和,其中标量的绝对值使用记号|A1|。实际上,范数是从向量空间的原点到曼哈顿距离的计算。

||v||1 = |a1| + |a2| + |a3|

向量的L1范数可以使用带有指定范数顺序的参数的Norm()函数以NumPy的形式计算,在本例中为1。

# l1 norm of a vector
from numpy import array
from numpy.linalg import norm
a = array([1, 2, 3])
print(a)
l1 = norm(a, 1)
print(l1)

首先定义一个1×3的向量,然后计算该向量的L1范数。

运行该示例首先打印定义的向量,然后打印向量的L1范数。

[1 2 3]

6.0

当拟合机器学习算法时,通常使用L1范数作为正则化方法,例如,保持模型的系数小的方法,进而降低模型的复杂性。

向量L2范数

矢量的长度可以使用L2范数计算,其中2是L的上标,例如L^2。

向量的L2范数的记号是||v||2,其中2是下标。

l2(v) = ||v||2

L2范数计算矢量坐标到矢量空间原点的距离。因此,它也被称为欧几里德范数,因为它被计算为到原点的欧几里得距离。结果为正距离值。

L2范数计算为向量值平方和的平方根。

||v||2 = sqrt(a1^2 + a2^2 + a3^2)

可以使用带有默认参数的Norm()函数以NumPy计算向量的L2范数。

# l2 norm of a vector
from numpy import array
from numpy.linalg import norm
a = array([1, 2, 3])
print(a)
l2 = norm(a)
print(l2)

首先定义一个1×3的向量,然后计算该向量的L2范数。

运行该示例首先打印定义的向量,然后打印向量的L2范数。

[1 2 3]

3.74165738677

与L1范数一样,当拟合机器学习算法时,L2范数通常用作正则化方法,例如保持模型系数小并且进而降低模型复杂性的方法。

到目前为止,在机器学习中,L2范数比其他向量范数更常用。

向量最大范数

矢量的长度可以使用最大范数(也称为最大范数)来计算。

向量的最大范数称为L^inf,其中inf是上标,可以用无穷大符号表示。最大范数的符号是||x||inf,其中inf是一个下标。

maxnorm(v) = ||v||inf

最大范数的计算方法是返回向量的最大值,因此得名。

||v||inf = max(|a1|, |a2|, |a3|)

可以使用order参数设置为inf的norm()函数在NumPy中计算向量的最大范数。

# max norm of a vector
from numpy import inf
from numpy import array
from numpy.linalg import norm
a = array([1, 2, 3])
print(a)
maxnorm = norm(a, inf)
print(maxnorm)

首先定义一个1×3的向量,然后计算该向量的最大范数。

运行该示例首先打印定义的向量,然后打印向量的最大范数。

[1 2 3]

3.0

在机器学习中,最大范数也被用作正则化,例如关于神经网络权重的正则化,称为最大范数正则化。

拓展

本节列出了一些你可能希望了解的扩展教程的想法。

  • 使用你自己的数据,使用每个操作创建5个示例。
  • 手动实现定义为列表列表的矩阵的每个矩阵运算。
  • 搜索机器学习论文,找到正在使用的每个操作的一个示例。

进一步阅读

如果你想深入了解,本节提供了更多关于该主题的资源。

书籍

API接口

文章

摘要

在本教程中,你了解了计算矢量长度或幅值的不同方法,称为矢量范数。

具体地说,你了解到:

  • 作为向量绝对值之和计算的L1范数。
  • 作为向量值平方和的平方根计算的L2范数。
  • 作为最大向量值计算的最大范数。

00

Python

发表评论

电子邮件地址不会被公开。 必填项已用*标注

什么阻碍了你实现迈入机器学习领域的目标?

什么阻碍了你实现迈入机器学习领域的目标?

2020-04-22 机器学习

如果你在为进入机器学习领域而挣扎,感觉到有什么东西阻止了自己的开始,那么你应该看看这篇文章。 在这篇文章中,我们会讨论阻止进入机器学习领域的自我限制的信念,让你明白面临的问题。 几乎总是一种自我限制的信念阻碍了你们的进步。 也许你会在一个或多个这样的信念中看到自己。如果是这样的话, [......]

了解详情

R语言机器学习迷你课程

R语言机器学习迷你课程

2020-08-12 机器学习

在这个迷你课程中,你将发现如何开始,构建精确的模型,并自信地完成在14天内使用R预测建模机器学习项目。 这是一个重要而重要的文章。你可能想把它书签。 了解如何准备数据,拟合机器学习模型,并用我的新书评估他们在r上的预测,包括14步教程、3个项目和完整源代码。 我们开始吧。 [......]

了解详情

关于机器学习的几点思考

关于机器学习的几点思考

2020-04-26 机器学习

机器学习是一个大的、跨学科的研究领域。 你可以通过机器学习获得令人印象深刻的结果,并找到非常具有挑战性的问题的解决方案。但这只是更广泛的机器学习领域的一小部分,通常被称为预测建模或预测分析。 在这篇文章中,你将发现如何改变你对机器学习的思考方式,以便更好地为你提供机器学习实践者的服务。 [......]

了解详情

找到你的机器学习部落

找到你的机器学习部落

2020-04-26 机器学习

机器学习是一个充满算法和数据的迷人而强大的研究领域。 问题是,有这么多不同类型的人对机器学习感兴趣,每个人都有不同的需求。重要的是要了解你想要从机器学习中得到什么,并根据这些需求调整你的自学。 如果你不这样做,你很容易就会陷入困境,迷失方向,失去兴趣,得不到你想要的东西。 找到 [......]

了解详情

应用机器学习过程

应用机器学习过程

2020-04-26 机器学习

随着时间的推移,在处理应用机器学习问题时,你会开发出一种模式或流程,以快速获得良好的正常结果。 一旦开发完成,你就可以在一个又一个项目上反复使用此过程。你的流程越健壮、越发达,你就能越快地获得可靠的结果。 在这篇文章中,我想与你分享我解决机器学习问题的过程框架。 你可以将其用作下一 [......]

了解详情