norm-normalization — 闪卡
箭头的长度用"平方和开根"算出来(就是方格纸上的直角三角形)。把一根箭头缩到长度 1,叫归一化——扔掉长短,只留方向。归一化之后,两根箭头的点积直接就是余弦,不用再除长度。
记忆口诀
- 长度 = 平方加起来再开根,量的是斜边不是绕路
- 归一化 = 除以自己的长度,缩到 1,方向不变
- 归一化之后点积直接就是余弦,不用再除
- 扔掉的是长短,留下的是方向
- 比方向该归一化,比强弱别归一化
Card 1
Q: 一根"向右 3 格、向上 4 格"的箭头有多长?
A: 5 格。箭头是直角三角形的斜边:3 平方加 4 平方等于 25,开根得 5。
Card 2
Q: 为什么长度不是 3 + 4 = 7?
A: 7 是沿格子线绕路的距离。箭头是直着从起点戳到终点,走的是斜边。长度量的是"直着过去多远"。
Card 3
Q: 箭头长度的正式名字叫什么?
A: 范数——就是"长度的正式说法"。叫它长度完全不影响理解。
Card 4
Q: 归一化做了什么?
A: 把箭头除以它自己的长度,缩到长度 1。扔掉"多长",只留"朝哪",方向一点不变。
Card 5
Q: 为什么归一化用除法而不是减法?
A: 因为长度的影响是成倍的(箭头拉长 2 倍,点积跟着变 2 倍),不是平移的。减法治不了乘法。
Card 6
Q: 两根都归一化过的箭头做点积,得到什么?
A: 直接就是余弦。余弦公式的分母是两根箭头长度相乘,都是 1 时分母为 1,除了等于没除。
Card 7
Q: 为什么向量库要存归一化过的向量?
A: 把除法一次性提前做完,之后几百万次比较就只剩一个点积。省下的除法乘以百万次是一大笔账。
Card 8
Q: 归一化是不是总是好事?
A: 不是,看长度对你的问题算干扰还是信息。比"像不像"该做(长文章的箭头天然更长,会占便宜);比"有多强"不该做。
Card 9
Q: 为什么统一成长度 1,而不是别的数?
A: 因为 1 是乘除法里不添乱的数。长度都是 1 时点积直接等于余弦;统一成 2 还得多带一个系数,白费事。
Card 10
Q: 归一化之后再除一次长度会怎样?
A: 纯属白除,长度是 1,除了等于没除。但这多余动作在几百万次比较上是实打实的浪费——等于把省下的又还回去。