讲解稿 · 第01章 第05节 · 基与对偶¶
口播时长:约 15–20 分钟|建议语速:中速偏慢,遇到公式停顿两拍
开场钩子¶
嘿,先问你一个问题。
你打开手机地图,输入"星巴克",屏幕上跳出一个点。你朋友也打开她的地图,输入同一家店,屏幕上也跳出一个点。你们俩看到的,是同一家咖啡馆。
可如果你俩打电话商量怎么走过去——你说"往东三个街区,往北两个街区",你朋友却说"沿我东北方向走两步半,再沿西北方向倒着走半步"——听起来完全是两回事对不对?但你们要去的,明明就是同一个地方。
这,就是这一节要讲的东西:同一个向量,可以有无穷多种坐标。而在这些坐标背后,藏着一整套"翻译字典"——它的名字叫基,它的影子叫对偶。听着抽象?别急。等你听完这十几分钟,你会明白,为什么 PCA 要"换基",为什么神经网络里的注意力机制本质是一次"查询",还有——为什么很多人第一次学线性代数会栽在 \(P\) 和 \(P^{-1}\) 这两个符号上。
扶稳了,我们开始。
第一段 · 什么是基¶
我们先把最朴素的问题说清楚:什么是基?
一句话:基是搭起一个向量空间的最小骨架。你可以把它想成乐高的基础颗粒——通过缩放它、把它们加起来,你就能拼出这个空间里的任何一个向量。而且——注意"而且"两个字——没有一块是多余的。
一组向量要成为基,必须同时满足两件事:
- 第一,线性无关。翻译成人话就是,这些向量里没有哪一个能被其他人"凑"出来。每一个都贡献一个真正新的方向。
- 第二,能张成整个空间。也就是说,空间里任何一个向量,都能被它们的线性组合表达出来。一个不漏。
一组基里向量的个数,就是这个空间的维度。\(\mathbb{R}^2\) 里两个基向量就够,\(\mathbb{R}^3\) 里要三个,依此类推。
最省事、最熟悉的一组基,叫标准基——沿着坐标轴的那些单位向量。在 \(\mathbb{R}^2\) 里就是 \(\hat{\mathbf{i}} = (1, 0)\) 和 \(\hat{\mathbf{j}} = (0, 1)\)。你写向量 \((3, 2)\),其实就是在偷偷地说 \(3\hat{\mathbf{i}} + 2\hat{\mathbf{j}}\)。那个 3 和 2,就是它在这组基下的坐标。
但标准基不是唯一的基。在 \(\mathbb{R}^2\) 里,\((1, 1)\) 和 \((-1, 1)\) 一样能撑起整个平面。它俩线性无关,也能张成,所以合法。只不过——同一个向量在这组新基下的坐标,会不一样。
暂停思考一下:如果我告诉你 \((1, 1)\) 和 \((2, 2)\) 也是一组基,你信吗?想清楚再往下听。
——不信对吧?因为 \((2, 2)\) 就是 \(2 \cdot (1, 1)\),两者根本在同一条线上,线性相关,第二个是冗余的。你两个向量都被困在一条直线上,怎么可能张成整个平面?
第二段 · 换基与咖啡馆¶
好,现在真正的戏来了:基变换。
回到咖啡馆的故事。你和朋友,同一家店,两种走法。
你的语言是标准基下的 \((3, 2)\)。她的两个"方向"是 \(\mathbf{b}_1 = (1, 1)\)(东北)和 \(\mathbf{b}_2 = (-1, 1)\)(西北)。她告诉你:"咖啡馆在 \((2.5, -0.5)\)",意思是"沿东北走 2.5 步,再沿西北倒着走半步"。
那怎么把她的话翻译回你的街道语言?照着她的配方走一遍就行:
一模一样的咖啡馆。照配方走一遍这个动作,其实就是矩阵乘法。你把她的基向量按列堆起来:
这个 \(P\),就叫基变换矩阵。它的列,是新基向量用旧坐标写出来的样子。这句话你记住——考试爱考,实战容易翻车。
那反过来呢?你手里拿着 \((3, 2)\),想翻成朋友的语言,怎么办?把配方倒回去——也就是乘 \(P^{-1}\):
什么都没动。向量本身、那家咖啡馆本身,没有移动过半步。移动的只是"描述它的语言"。\(P\) 和 \(P^{-1}\),就是两种语言之间的翻译字典。
暂停思考一下:如果你搞反了,用 \(P\) 而不是 \(P^{-1}\),会发生什么?很多 PCA 的 bug 就藏在这里。
第三段 · 对偶的登场¶
好,前面这半节其实相对好懂。接下来这段——对偶——会突然抽象起来。第一次听可能会有点扶不住,我们慢慢来。
我先埋一个问题:当你写 \(\mathbf{v} = (3, 2)\),那个"3"是从哪冒出来的?
它其实是一次测量的结果。第一个坐标在问:"这个向量 \(\mathbf{v}\) 里,有多少份 \(\hat{\mathbf{i}}\)?"第二个坐标在问:"有多少份 \(\hat{\mathbf{j}}\)?"
在咖啡馆的故事里也是一样。朋友那两个坐标,就是两个问题:"你沿我的东北对角线走了多远?""沿我的西北对角线走了多远?"
每一组基,都自带一组问题——每个方向一个。
而这些"问题"——每一个都是一个函数:吃进去一个向量,吐出来一个数。数学上给它一个名字,叫线性泛函 (linear functional)。"线性"两个字是说,这个函数尊重加法和数乘:
翻译成人话就是——线性泛函是一把诚实的尺子。你把两根棒子并起来量,读数是两个读数相加;你把棒子拉长两倍,读数也翻倍。它不会撒谎,不会打折。
而所有可能的尺子的集合,就构成了一个新空间,叫对偶空间,记作 \(V^\ast\)。
对每一组基,都有一套配套的尺子——对偶基。对偶基里的 \(\mathbf{e}_i^\ast\) 只干一件事:回答"有多少份 \(\mathbf{e}_i\)"。一把校准良好的尺子,在它对应的那个基向量上读 1,在其他所有基向量上读 0。这条规则用克罗内克 δ 写起来最省字:
就这一条小小的校准规则,就够了。剩下的事,线性会替它做完。你看 \(\mathbf{e}_1^\ast\) 读 \(\mathbf{v} = 3\mathbf{e}_1 + 2\mathbf{e}_2\):
它无视除自己之外的所有方向,只报告一个坐标。坐标本身,就是对偶基的读数。
暂停思考一下:如果这一段有点晕,很正常。你可以先记住一句话——基是被测量的对象,对偶基是测量的尺子。然后我们继续。
第四段 · 尺子藏在哪里¶
那么问题来了:这些"尺子"具体长什么样?
在 \(\mathbb{R}^n\) 里其实很朴素——每一个线性泛函,都不过是"一行数字,跟向量做点积"。而对于朋友那组基,我们不知不觉已经把她的尺子造出来了:把 \((3, 2)\) 翻成她的语言,我们乘的是 \(P^{-1}\)。而 \(P^{-1}\) 的每一行,就产出一个坐标。
也就是说——\(P^{-1}\) 的行,就是对偶基。
具体到咖啡馆:
验算一下:\(\mathbf{b}_1^\ast \cdot (3, 2) = 0.5\cdot 3 + 0.5 \cdot 2 = 2.5\)。正好是朋友的第一个坐标。
而那个校准规则 \(P^{-1}P = I\),其实一直大大方方地摆在那儿——单位矩阵,就是克罗内克 δ 的表格版。尺子 \(i\) 遇到基向量 \(i\) 读 1,遇到别的读 0。
第五段 · 一个容易踩的坑¶
这里我必须给你打个预防针。
很多人会本能地猜:\(\mathbf{b}_1\) 对应的尺子,不就是 \(\mathbf{b}_1\) 自己吗?直接拿 \((1, 1)\) 和 \((3, 2)\) 做点积不就完了?
试试看:\((1, 1) \cdot (3, 2) = 5\)。可真正的坐标是 2.5——足足差了两倍。
用基向量自己做点积当尺子,只有在基是"单位正交"的时候才成立——也就是彼此垂直、长度为 1。标准基满足这个条件,所以 \(\mathbf{e}_1^\ast\) 恰好和 \(\mathbf{e}_1\) 长得一模一样,你怎么用都不出错。但对任何其他基,尺子都躲在 \(P^{-1}\) 的行里,不在基向量自己身上。
这个坑,是 PCA 代码里最常见的 bug 来源之一。你以为你在读坐标,实际上你在做一次错误的点积。
第六段 · 这些抽象东西到底有什么用¶
好,讲到这你可能想问:这么抽象的对偶空间,到底在 ML 里干什么?
三个例子:
第一,PCA。它就是在找一组新基——主成分——让数据在这些方向上方差最大。你把原始数据乘一个 \(P^{-1}\),就得到新坐标。对偶基在这里就是"提问的方向":这个数据在第一主成分上得几分?在第二主成分上得几分?
第二,注意力机制。神经网络里的 attention,本质就是让一组向量去"查询"另一组。Query 和 Key 做点积——这就是一次对偶配对。一个向量当尺子,去测量另一个向量。
第三,点积的双重身份。仔细想想:每一个向量 \(\mathbf{u}\),都悄悄定义了一把尺子(用 \(\mathbf{u}\cdot\mathbf{v}\) 去测量 \(\mathbf{v}\));反过来,每一把尺子,也不过是和某个向量做点积。在有限维里,对偶空间就是原空间的镜像。这就是为什么你在书里到处看到点积——它同时扮演了两个角色。
一句话总结¶
基是搭坐标系的最小骨架,对偶基是配套的一把把尺子。\(P\) 换积木,\(P^{-1}\) 换尺子——这两位一起,撑起了 PCA、注意力,以及几乎所有你会在 ML 里遇到的线性变换。
结尾 · 三个反思问题,留给下一节¶
在你关掉这段音频之前,带走三个问题,自己想想:
-
如果一组基不是单位正交的,你直接拿基向量做点积当尺子,得到的读数会偏大还是偏小?跟什么量有关? 提示:想想 \((1,1)\) 的长度。
-
PCA 里,主成分构成的那组基,是单位正交的吗?如果是,为什么你还需要区分 \(P\) 和 \(P^{-1}\)? 提示:正交矩阵的逆等于它的转置。
-
注意力机制里的 Query 和 Key,如果你把它们看成"向量"和"尺子",那 Value 在这个类比里扮演什么角色? 提示:尺子测完之后,测出来的数字是拿来干嘛的?
想好了,我们下一节——第 02 章——见。