趋近智
在通过加法和减法组合向量之后,下一个基本运算是缩放它们。标量乘法使我们能够在不改变向量方向的情况下拉伸或收缩向量,这在许多机器学习算法中非常常用。可以将其视为调整数据点特征的强度或大小。
本质上,标量乘法很简单。您取一个数字,称为标量,并将其与一个向量相乘。该运算是按元素进行的,这意味着您将标量乘以向量中的每个元素。
标量乘法是线性代数中的一项基本运算。它能够拉伸或收缩向量而不改变其方向。在机器学习的许多算法中,这一过程常用于调整数据点特征的强度或大小。
标量乘法真正的直观感觉来自对其的视觉呈现。将向量乘以标量会改变其长度,即大小。标量的符号决定了向量的方向是保持不变还是反转。
下图显示了将向量 v 乘以不同标量的效果。
向量 v 被不同的因子缩放。乘以2会拉伸它,乘以0.5会收缩它,乘以-1.5则会反转其方向并拉伸它。
在Python中,NumPy使标量乘法用起来很自然。您可以在数字和NumPy数组之间使用标准的乘法运算符 (*),NumPy会自动处理按元素进行的运算。
import numpy as np
# 定义一个NumPy数组形式的向量
v = np.array([3, 1])
print(f"原始向量 v: {v}")
# 乘以标量 c = 2
c = 2
scaled_v = c * v
print(f"向量 v 被 {c} 缩放后: {scaled_v}")
# 乘以标量 c = -1.5
c = -1.5
flipped_v = c * v
print(f"向量 v 被 {c} 缩放后: {flipped_v}")
执行此代码将产生以下输出:
Original vector v: [3 1]
Vector v scaled by 2: [6 2]
Vector v scaled by -1.5: [-4.5 -1.5]
如您所见,代码简洁明了,直接反映了数学运算。无需自己遍历向量元素;NumPy的优化运算能高效地处理它。
标量乘法不仅仅是一个抽象运算;它是机器学习中的一个重要工具。其中一个最常见的应用是在梯度下降等优化算法中。
训练模型时,梯度下降会计算一个 梯度 向量,该向量指向误差增加最陡峭的方向。为了最小化误差,我们需要朝相反的方向移动。但我们应该移动多远?这就是学习率发挥作用的地方。
学习率是一个小的标量(例如 0.01),它对负梯度向量进行缩放。模型权重的更新规则通常如下所示:
新权重=旧权重−学习率×梯度这里,学习率 × 梯度 就是一次标量乘法。它会收缩梯度向量,以确保我们朝着正确的方向迈出一小步,小心前进。过大的学习率可能会导致我们跳过最优解,而过小的学习率会使训练过程太慢。标量乘法是赋予我们这种精细控制的运算。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造