讲解稿 · Ch01 第 02 节:向量的性质¶
时长目标:15-20 分钟口播 | 语速:约 250 字/分钟
一、开场钩子(约 1 分钟)¶
好,欢迎回来。上一节我们把"向量空间"这个游乐园的门票搞明白了——十条公理,两条封闭性,剩下八条是加法和数乘的家规。
但是你知道吗,光有门票还不够。你走进游乐园里,看到一堆箭头飞来飞去,你还得学会怎么描述这些箭头:它有多长?指哪儿?跟旁边那个箭头是不是"一伙儿的"?两个箭头一起是不是白给你——也就是有一个纯属摆设?
这一节我们就干这件事。你会拿到一整套"识别向量的工具箱":模长、方向、单位化、平行、正交、线性无关、稀疏。
我可以先剧透一句话:这套工具,就是你之后所有机器学习特征空间的几何语言。你现在多花十五分钟熟悉它,后面看 Word2Vec、看 attention、看 PCA,你就不会再懵了。
好,扶稳了,我们开始。
二、模长:箭头有多长(约 2 分钟)¶
先看第一个性质,模长(magnitude)。
模长翻译成人话就是——这根箭头伸出去有多远。
我给你举个最土的例子:你在游乐园里从大门走到旋转木马,你走了多少米?这就是模长。
对于一个二维向量 \(\mathbf{a} = (3, 4)\),它的模长怎么算?
看到这个 3、4、5 你是不是眼熟?对,这就是勾股定理。
现在把这个思路推到 \(n\) 维:
你别被"\(n\) 维"三个字吓到。它就是勾股定理往上摞——每多一个维度,就在根号里多加一个平方项。你在四维、五维、七百六十八维(对,就是 BERT embedding 的那个维度)里问"这个向量多长",用的还是这一条公式。
注意: 模长量的是从原点到那个坐标点的直线距离。不是折线,不是曼哈顿走法,就是一条直线戳过去。
好,这里插一个暂停思考:
【暂停 5 秒】如果我给你一个向量 \(\mathbf{a} = (1, 1, 1, 1)\),它的模长是多少? ……对,是 \(\sqrt{4} = 2\)。你可以在心里默算一下确认。
三、方向、相等、平行:位置不重要,位移才是本质(约 3 分钟)¶
第二个性质,方向(direction)。
方向就是这根箭头指哪儿。
这里有一个你必须记牢的观念:向量只关心位移,不关心位置。
什么意思?你在原点画一个 \((3, 2)\) 的箭头,往右三格、往上两格。你朋友在 \((100, 100)\) 那个位置也画一个 \((3, 2)\)——同样往右三格、往上两格。
这两个箭头——它们是同一个向量。
一模一样。相等。
为什么?因为向量的定义里从来没有"起点在哪里"这一条。它只在乎"你往哪个方向走了多远"。所以我们通常把起点默认放在原点 \((0, 0, \ldots, 0)\),纯粹是为了画图方便。
两个向量相等的严格判据:
每一个分量都对得上,缺一不可。
接下来是平行(parallel):
翻译一下:一个向量是另一个的非零标量倍,它俩就平行。
- \(k > 0\),同向。\((3, 2)\) 和 \((6, 4)\)——同向,后者是前者拉长两倍。
- \(k < 0\),反向。\((3, 2)\) 和 \((-3, -2)\)——反向,正好掉头。
无论同向反向,它们躺在过原点的同一条直线上。
这里有一个非常重要的直觉:平行向量不带新的方向信息。你已经知道了 \((3, 2)\),我再告诉你 \((6, 4)\) 也在这个数据里,我等于什么新东西都没告诉你——它就是前一个被拉长了一下的复读机。
这个"复读机"的观察,后面就会长成"线性相关"这个大概念,你先把这个直觉记住。
四、正交:机器学习最偏爱的关系(约 3 分钟)¶
好,第三个大性质,也是整章最重要的一个词,正交(orthogonal)。
正交就是垂直。两个向量夹角 \(90°\)。
我先不给你公式,我给你一个画面:你先往北走一公里,然后再往东走一公里。
北和东,就是正交方向。
关键在哪里?关键在——你往北走再多,也不会让你往东挪一分一毫。
也就是说,正交的两个方向,彼此完全独立。沿其中一个走,在另一个身上得到的进展是零。
现在你就明白为什么机器学习那么爱正交了:
在 ML 里,你训练一个模型,你希望你的特征是什么样的?你希望特征之间互不相关,每一个都携带独立的信息。你不希望"身高"和"体重"两个特征几乎能互相推出来——那你等于只有一个特征,另一个是水货。
所以:正交的特征,就是理想的特征。
正交这个词,我保证你在后面每一章都会撞见。PCA 做的是找一组正交的主轴。Transformer 里 multi-head attention,希望每个 head 学到的东西尽可能正交。神经网络的初始化,有一种就叫 orthogonal initialization。
再扩展一下:任意两个向量之间都有一个夹角 \(\theta\),范围是 \(0°\) 到 \(180°\)。
- \(\theta = 0°\):平行同向。
- \(\theta = 180°\):平行反向。
- \(\theta = 90°\):正交。
- 中间那些角度:某种混合。有一点相关,但没完全重叠。
ML 里绝大多数向量关系都掉在这个谱系上的某个中间地带。等我们讲到点积和余弦相似度,你就能精确计算这个夹角是多少。这里先埋个伏笔。
好,第二次暂停思考:
【暂停 5 秒】想一想:向量 \((1, 0)\) 和 \((0, 1)\) 是不是正交?\((1, 1)\) 和 \((1, -1)\) 呢? ……第一对显然是。第二对呢——你把它们对应分量相乘再加起来:\(1 \times 1 + 1 \times (-1) = 0\)。也是正交的。 后面讲点积你就会知道,"乘积和为零"就是正交的代数判据。
五、线性无关:每个向量都得给点新东西(约 3 分钟)¶
接下来这个概念,你要是听懂了,恭喜你,你已经把整个线性代数的灵魂摸到了一半。
线性相关(linearly dependent):一组向量里,至少有一个可以由其他几个通过缩放加相加拼出来。
举个例子,你有三个向量 \(\mathbf{a}, \mathbf{b}, \mathbf{c}\),然后有人告诉你:
那 \(\mathbf{c}\) 就是冗余的。你有了 \(\mathbf{a}\) 和 \(\mathbf{b}\),你随时可以现造一个 \(\mathbf{c}\) 出来。
这个人白给你了一个向量。
反过来,线性无关(linearly independent):其中没有一个可以由别人拼出来。每一个都真真切切贡献了一个新方向。
这里有两个小定理你顺手就能记住:
- 平行向量总是线性相关的(因为一个就是另一个的复读机)。
- 任何包含零向量的集合都是线性相关的(零向量什么方向都不指,纯摆设)。
- 正交向量总是线性无关的(互相垂直,谁也拼不出谁)。
现在最关键的直觉来了:
"你需要多少个线性无关的向量才能到达空间里任意一点"——这个数字就是维度。
- 在二维平面里,两个线性无关的向量就够了。给你 \((1, 0)\) 和 \((0, 1)\),你想去 \((5, 7)\)?\(5 \times (1,0) + 7 \times (0,1)\),齐活。
- 在三维空间里,你需要三个。
- 在 \(n\) 维,你需要 \(n\) 个。
线性无关的数量 = 维度。你把这条记死,后面基和秩你就都稳了。
再给你一个 ML 实战直觉:假设你在收集数据训练模型,你把每个人的特征当成一个向量。如果这些向量之间线性相关——也就是有几个人的数据几乎能被别人的加权和表出来——那你等于在重复采样。模型会被这些重复的点带偏,觉得那类人特别"重要"。
在为 AI 训练构造数据集的时候,向量之间的线性无关性是个非常重要的因素。这也是为什么"去重"和"多样性采样"是数据工程里永远绕不开的话题。
第三次暂停思考:
【暂停 5 秒】问自己:向量 \((1, 2)\)、\((2, 4)\)、\((3, 5)\) 这三个是不是线性无关? ……前两个是平行的(一个是另一个的 2 倍),所以整组一定线性相关。就算第三个跟前两个都不平行,也拯救不了。判断线性无关,任何两个平行的都不能混在里面。
六、单位向量、归一化、稀疏(约 3 分钟)¶
好,最后一组性质,都是实战型工具。
单位向量(unit vector):模长恰好等于 1 的向量。
它的意义是什么?它把"多长"这个信息剥掉,只保留"朝哪个方向"。
任何非零向量都可以变成单位向量,方法叫归一化(normalisation):
翻译成人话:把这个向量的每一个分量,都除以它自己的模长。
举个例子,\(\mathbf{a} = (3, 4)\),模长是 5,归一化之后就是 \(\hat{\mathbf{a}} = (3/5, 4/5) = (0.6, 0.8)\)。你可以自己算一下 \(0.6^2 + 0.8^2 = 0.36 + 0.64 = 1\),模长确实是 1。
归一化在 ML 里应用无处不在:
- 算余弦相似度要先归一化,不然长度会污染方向的比较;
- 神经网络里的 LayerNorm、RMSNorm,本质都是归一化的变种;
- 词嵌入(word embedding)比较相似度之前,通常也要归一化。
还有几个特殊的单位向量,叫标准单位向量,沿着每个坐标轴指出去:
任何一个三维向量都可以拆成它们的组合:
这就是"标准基"的雏形,第 05 节我们会正式展开。
最后一个概念,稀疏(sparse) vs 稠密(dense):
一个向量里绝大部分分量都是 0,就叫稀疏。反过来大部分都非零,就叫稠密。
稀疏为什么重要?存储和计算。
一个稀疏向量,你只需要记住"哪些位置是非零的、值是多少",其他位置全部默认是 0。10 万维的向量,如果只有 5 个非零位,你实际只需要存 5 对(位置、值),不需要存 10 万个数。
自然语言处理里,一段文本的 one-hot 向量、TF-IDF 向量,都是极度稀疏的。推荐系统里用户-物品交互矩阵,也是稀疏的。稀疏结构直接决定了你能不能把模型跑起来。
七、应用场景速览(约 1 分钟)¶
我快速带你过一下这一节的性质在真实场景里的落点:
- 模长:损失函数里的 L2 正则、梯度裁剪、embedding 长度归一化——全在算模长。
- 正交:PCA 主成分、Transformer 多头注意力、正交初始化——处处都是。
- 线性无关:数据集去重、特征选择、判断矩阵可不可逆——本质都在问它。
- 单位向量与归一化:余弦相似度、LayerNorm、L2-normalized embedding——机器学习的日常。
- 稀疏:NLP 词袋、推荐系统交互矩阵、稀疏神经网络——一切"大而空"的数据都靠它省钱。
八、一句话总结¶
如果你只带走一句话:
向量的性质就是给你一整套"识别箭头"的语言——模长告诉你多长,方向告诉你朝哪,正交告诉你是否独立,线性无关告诉你有没有冗余;这套语言,就是所有 ML 特征空间的通用词典。
九、留给你的三个反思问题(衔接下一节)¶
在进入下一节"范数与度量"之前,请你至少想清楚下面三个问题:
-
我们这一节讲的模长 \(\|\mathbf{a}\| = \sqrt{\sum_i a_i^2}\) 其实是一种特定的度量方式。如果我不用平方和开根号,而是直接把所有分量的绝对值加起来,会是什么样的"长度"?它有几何意义吗?(提示:想想出租车在曼哈顿怎么走路)
-
我们说正交向量线性无关。反过来,线性无关的向量一定正交吗?举一个反例试试。
-
归一化 \(\hat{\mathbf{a}} = \mathbf{a} / \|\mathbf{a}\|\) 剥掉长度只留方向。在什么样的 ML 任务里,"长度"是你想扔掉的噪声?又在什么样的任务里,长度本身就是最重要的信号?
带着这三个问题,我们下一节接着聊——范数与度量。
到时候你会发现,"模长"这个概念远比你想的要野。\(\ell_1\)、\(\ell_2\)、\(\ell_\infty\)、\(\ell_p\),每一个都是一把不同的尺子,量出来的"距离"长得完全不一样。
下节见。