趋近智
就像我们可以对单个数字(标量)进行算术运算一样,我们也可以对向量进行算术运算。这些运算是机器学习中许多算法的根本,从计算误差到调整模型参数。我们将从两个最直接的运算开始:加法和减法。
两个向量相加是一个逐元素操作。这表示你只需将每个向量的对应分量相加,就能得到新向量的分量。为了完成此操作,这些向量必须具有相同的维度,也就是说它们必须包含相同数量的分量。
假设我们有两个二维向量,v 和 w:
v=[v1v2],w=[w1w2]它们的和,v+w,计算如下:
v+w=[v1+w1v2+w2]举个具体例子,如果 v=[21] 且 w=[13],它们的和是:
v+w=[2+11+3]=[34]尽管代数运算简单,但其几何解释能提供更清晰的认识。为了直观地表示向量加法,我们使用首尾相接法。你从原点开始画第一个向量。然后,从第一个向量的末端(或头部)开始画第二个向量。这两个向量的和是那个从原点开始,到第二个向量末端结束的新向量。
向量加法的首尾相接法。得到的向量 v+w 代表了两个向量的组合位移。
另一种理解方式是平行四边形法则。如果你从原点开始画向量 v 和 w,它们会构成一个平行四边形的两条相邻边。它们的和 v+w 是该平行四边形中同样从原点开始的对角线。注意,这得到相同的结果,因为 v+w=w+v。这被称为向量加法的交换律。
向量减法也像加法一样,是逐元素操作。要从向量 v 中减去向量 w,你需要将 w 的分量从 v 的对应分量中减去。同样,这些向量必须具有相同的维度。
v−w=[v1−w1v2−w2]使用我们之前的向量,v=[34] 和 w=[13],减法运算如下:
v−w=[3−14−3]=[21]从几何角度看,理解减法最简单的方法是将其视为加上相反向量。向量 −w 的长度与 w 相同,但指向完全相反的方向。因此,运算 v−w 等同于 v+(−w)。我们可以应用相同的首尾相接法则:画出向量 v,然后从其末端画出向量 −w。
向量减法可视为加上一个相反向量。向量 v−w 是沿着 v 移动后再沿着 −w 移动的结果。
这个运算有助于找到从一个点指向另一个点的向量。从 w 定义的点到 v 定义的点的向量正好是 v−w。
手动执行这些操作有助于理解,但在实际中,我们使用 NumPy 这样的库来完成工作。NumPy 的数组非常适合表示向量,并且标准算术运算符(+ 和 -)会自动执行逐元素加法和减法。
首先,让我们导入 NumPy 并创建两个向量。
import numpy as np
v = np.array([2, 1])
w = np.array([1, 3])
print(f"Vector v: {v}")
print(f"Vector w: {w}")
现在,我们可以使用简单的 + 运算将它们相加。
# 向量加法
sum_vw = v + w
print(f"v + w = {sum_vw}")
输出:
向量 v: [2 1]
向量 w: [1 3]
v + w = [3 4]
使用 - 运算符,减法同样简单。
# 向量减法
diff_vw = sum_vw - w
print(f"[3, 4] - w = {diff_vw}")
输出:
[3, 4] - w = [2 1]
如你所见,NumPy 为你处理了逐分量算术运算。这不仅方便,而且在性能方面进行了高度优化,特别是在处理具有数千甚至数百万维度的向量时,这在机器学习中很常见。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造