向量点积:我打车花了200块,到底走了多远?
向量点积是什么?我打车花了 200 块,到底走了多远?
如果你在大学里学过向量点积(Dot Product),你可能只记得一堆公式和计算。但如果我告诉你,点积就是“你打车花了 200 块,到底走了多远”这件事呢?
从吃货的角度理解向量
向量有两个特点:方向和大小。就像你去火锅店——“往南走 500 米”,“往南”是方向,“500 米”是大小。
如果你说“我去火锅店吃了 500 块钱的肉”——这是数量,不是向量,因为没有方向。数学上叫做“标量”。
点积到底是什么意思?
点积的公式是这样的:
向量 A · 向量 B = |A| × |B| × cos(θ)看起来很复杂?其实就是说:两个向量在同一个方向上有多“投影”。
想象一下:
- 你打车往东走了 10 公里(向量 A)
- 你的目标地在东北方向 5 公里(向量 B)
- 点积就是计算:你实际往目标地方向走了多少?
如果你完全顺路(方向一样),点积最大。如果你走反了(方向相反),点积是负的。如果你走的方向和目标完全垂直,点积为零——你白走了!
代码实现
import math
# 向量 A:往东 10公里
A = [10, 0]
# 向量 B:东北方向 5公里 (45°)
B = [5 * math.cos(math.radians(45)),
5 * math.sin(math.radians(45))]
# 点积
dot = A[0]*B[0] + A[1]*B[1]
print(f"你实际往目标方向走了 {dot:.2f} 公里")
# 输出:你实际往目标方向走了 3.54 公里点积在真实世界的应用
- 推荐系统:比较你和另一个用户的偏好向量,点积越大越相似
- ChatGPT 的注意力机制:计算词之间的关联度
- 图像识别:比较两张图片的相似度
- 机器学习:几乎所有模型都用到向量运算
总结
点积就是测量“两个向量有多同向”的工具。它没有那么可怕,只是一种“投影”的数学表达。下次打车的时候可以想一想,你的 200 块钱到底有多少是“有效行程”?