笃行
首页
个人 & 心法
互联网/硬件后台
游戏基础架构
UE 引擎
游戏业务
AI / 大模型
数据结构与算法
机器学习数学
通用基础
GitHub
首页
个人 & 心法
互联网/硬件后台
游戏基础架构
UE 引擎
游戏业务
AI / 大模型
数据结构与算法
机器学习数学
通用基础
GitHub
  • 向量入门

    • 看得见的机器学习数学
    • 向量是什么
    • 向量的加减与数乘
    • 线性组合与张成
  • 矩阵与变换

    • 矩阵是一次变换
    • 矩阵乘法
  • 度量与求解

    • 行列式与面积
    • 解方程组就是倒着走回去
    • 特征向量的直觉
    • 点积与相似度
  • 高维与结构

    • 高维空间的直觉
    • 正交基与投影
    • 秩与低秩
    • 长度与归一化
    • 线性与非线性
  • 概率与信息

    • 概率分布与采样
    • 期望与方差
    • 指数与 softmax
    • 对数与信息量
    • 交叉熵
  • 学习与优化

    • 导数就是坡度
    • 梯度下降
    • 链式法则与反向传播

线性组合与张成:两根积木能拼出多大的地方

你只有两种积木:一种是"向右一格",一种是"向上一格"。每种想用几个都行,还能反着用。你能拼出方格纸上的哪些点?

🧠 一句话结论

只要两根箭头不平行,把它们各拉伸若干倍再首尾接起来,就能拼出整个平面上任何一个点;一旦两根箭头平行,你就永远被困在一条直线上。


场景问题

上一篇你学会了两招:把箭头首尾接起来(加法),把箭头拉长缩短(数乘)。

现在做个游戏。规则是:

  • 你手里只有固定的几根箭头,就那么几种,不能再要别的
  • 每根箭头你可以拉伸任意倍数(包括缩短、包括掉头)
  • 拉伸完了可以首尾接起来
  • 问:你能走到哪些地方?

这个游戏听着无聊,但它是整个线性代数真正的核心问题。因为"能走到哪些地方"这件事,等价于"哪些问题有答案"——后面讲到解方程组时,"方程有没有解"就是在问"目标点在不在你能拼出的范围里"。

先玩最简单的一局:手里只有"向右一格"和"向上一格"这两根。

实现方案

拼出一个点

给你两根箭头 aaa 和 bbb,你想拼到某个目标点。做法是:aaa 拉伸 xxx 倍,bbb 拉伸 yyy 倍,然后接起来。写成式子:

x⋅a+y⋅bx \cdot a + y \cdot b x⋅a+y⋅b

这个东西有个名字,叫 aaa 和 bbb 的线性组合。

名字有点吓人,意思特别朴实:每根积木各拉伸若干倍,再首尾接起来。 就这一句话。"线性"这个词你现在可以先理解成"只许拉伸和相接,不许别的花样"——不能把箭头掰弯,不能让它们相乘,只有拉伸和相加这两招。

看这幅图,同一个目标点是怎么被拼出来的:

ab3 个 a3 个 b3a + 3b目标点

橙色的 aaa 用了 3 个(淡橙线),青色的 bbb 用了 3 个(淡青线),首尾一接,紫箭头就落在目标点上了。换个目标点,就换一对倍数。

关键翻译:坐标其实就是一个线性组合

现在来点最有用的。手里那两根最常用的积木——"向右一格"和"向上一格"——有专门的名字,叫基向量:

i=(10)j=(01)i = \begin{pmatrix} 1 \\ 0 \end{pmatrix} \qquad j = \begin{pmatrix} 0 \\ 1 \end{pmatrix} i=(10​)j=(01​)

("基"就是"基础、地基"的意思,它们是搭一切东西的那两块底砖。)

现在看这个式子:

3⋅i+2⋅j=3(10)+2(01)=(30)+(02)=(32)3 \cdot i + 2 \cdot j = 3\begin{pmatrix} 1 \\ 0 \end{pmatrix} + 2\begin{pmatrix} 0 \\ 1 \end{pmatrix} = \begin{pmatrix} 3 \\ 0 \end{pmatrix} + \begin{pmatrix} 0 \\ 2 \end{pmatrix} = \begin{pmatrix} 3 \\ 2 \end{pmatrix} 3⋅i+2⋅j=3(10​)+2(01​)=(30​)+(02​)=(32​)

停一下,看清楚发生了什么:(32)\begin{pmatrix} 3 \\ 2 \end{pmatrix}(32​) 就是"3 个向右 + 2 个向上"。

这意味着——你一直在用的坐标,本来就是一个线性组合。 第一篇说"上面的数管向右几格、下面的数管向上几格",现在有了更准确的说法:

坐标里的每个数字,是对应基向量要拉伸的倍数。

这个翻译看着平淡,但它是后面理解矩阵的唯一入口。下一篇讲"矩阵是什么"时,全部的秘密就是:如果基向量被搬到了别处,那"3 个向右 + 2 个向上"这句话就会指向一个新的地方。你现在把这句话嚼透,下一篇会顺得不可思议。

张成:能拼出来的所有地方

现在回答开头那个游戏的问题:用 iii 和 jjj,你能拼出哪些点?

整个平面上的任何一点。 想去 (7−4)\begin{pmatrix} 7 \\ -4 \end{pmatrix}(7−4​)?7 个向右加 4 个向下(也就是 −4-4−4 个向上)。想去 (0.51.3)\begin{pmatrix} 0.5 \\ 1.3 \end{pmatrix}(0.51.3​)?倍数允许是小数,照样能到。没有任何一个点是拼不出来的。

"能拼出来的所有点组成的范围"这件事,数学家给了个名字:张成(英文 span)。

  • iii 和 jjj 的张成 = 整个平面
  • 一根箭头(比如只有 aaa)的张成 = 一条直线(你只能沿着它前后滑动,拉伸多少倍都还在那条线上)
  • 零向量的张成 = 一个点(原地不动,怎么拉伸都是零向量)

"张成"这个词你可以直接换成大白话:这些积木的势力范围。

平行的两根箭头:势力范围塌成一条线

现在玩个坏一点的局:给你两根箭头,但它们平行(朝同一个方向,只是长短不同)。比如 a=(21)a = \begin{pmatrix} 2 \\ 1 \end{pmatrix}a=(21​) 和 c=(42)c = \begin{pmatrix} 4 \\ 2 \end{pmatrix}c=(42​)。

你能拼出整个平面吗?

不能。 而且差得很远——你被困在一条直线上了。

盯着下面这幅图,看那根箭头慢慢转到和另一根平行的瞬间,整片势力范围是怎么塌下去的:

ab紫色 = 能拼出来的范围

一开始两根箭头岔开着,紫色铺满整张纸——想去哪儿都行。等青色箭头转到和橙色重合,紫色就只剩一条线了——你只能在这条线上前后滑动,线外的点一个都到不了。

道理是这样的:如果 bbb 本来就是 aaa 的某个倍数,那么"xxx 个 aaa 加 yyy 个 bbb"说到底还是"某个倍数的 aaa"。你以为你有两根积木,其实第二根只是第一根的复制品,一点新东西也没带来。

多余的积木:线性相关

上面那件事有个专门的说法。

  • 如果几根箭头里,有一根是多余的(它能被其他几根拼出来,所以它没扩大势力范围),就叫线性相关
  • 如果每一根都不可替代(每根都带来了新方向),就叫线性无关

这两个词就这么点意思。"相关"= 有人在混日子;"无关"= 人人都有贡献。

而"多余"和"势力范围变小"是同一件事的两种说法:你名义上有 2 根积木,实际有效的只有 1 根,所以只能张成 1 条线,而不是 1 个平面。

(记住"势力范围塌成一条线"这个画面。到了行列式那一篇,你会看到它对应一个具体的数字变成 0;到了解方程组那一篇,你会看到它对应"方程没法解"。这三件事其实是同一件事。)

零向量的特殊情形

如果给你的两根箭头里有一根是零向量呢?

那它百分之百是多余的——零向量拉伸任何倍数还是零向量,它对拼图毫无贡献。所以"aaa 和 0⃗\vec{0}0"的张成就等于"aaa 一根"的张成,还是一条线。

所以只要积木堆里混进了零向量,这堆积木一定是线性相关的。

为什么这么做

为什么只许"拉伸"和"相接"这两招?多几招不好吗?

因为这两招恰好是能保持"网格还是网格"的操作。如果允许把箭头掰弯、允许两个向量相乘出奇怪的东西,那平面就会被扭曲成不可预测的样子,什么规律都谈不上了。

限制招数,换来的是可预测性。 这也是"线性"这个词真正的含金量所在——下一篇讲变换时你会看到,正因为只有这两招,整张坐标纸的变化才能被几个数字完全描述。

为什么偏偏挑"向右一格"和"向上一格"当基向量?

因为它们最省事:互相垂直,长度都是 1,坐标里的数字直接就是倍数,不用换算。

但请注意——这只是一个方便的选择,不是唯一的选择。 任何两根不平行的箭头都能当基向量,用它们也能张成整个平面,只是同一个点的"坐标"会变成另外一对数字(因为倍数变了)。

这件事听着像小事,其实是个大事:同一个点,换一套基向量就有另一套坐标。 点没动,描述它的数字变了。这就是为什么后面能用矩阵"换一套眼光看同一个平面"。

为什么给"能拼出的范围"专门起名叫"张成"?

因为这个范围是后面所有问题的答案所在。"方程组有没有解"= "目标点在张成范围里吗";"矩阵能不能逆回去" = "变换后的张成范围还是整个平面吗"。给它起个名字,才好反复引用。

为什么别的选择不行

死胡同一:以为"箭头越多,能拼的地方越大"

这个直觉太自然了:工具越多,能干的事越多,对吧?

试试这个:手里已经有"向右一格"和"向上一格",现在再送你一根 (53)\begin{pmatrix} 5 \\ 3 \end{pmatrix}(53​)。你的势力范围变大了吗?

一点没变,还是整个平面。 因为你本来就能拼出整个平面了——包括这根新箭头本身(555 个向右 +3+ 3+3 个向上,正好就是它)。新来的这根根本没带来任何新东西,它是多余的。

这里的教训是:势力范围看的不是箭头的数量,而是"有几个真正不同的方向"。 在平面上,最多也就能有 2 个真正不同的方向;第 3 根箭头开始,必然是多余的。

反过来更要小心:箭头多,也可能范围很小。 给你 100 根箭头,全都朝右(只是长短不同),你的势力范围还是一条线。100 根积木,99 根在混日子。

死胡同二:以为"有两根箭头"就等于"能拼出平面"

上一条的反面,同样常见。

"我有两根箭头,所以我能张成二维平面"——错。必须两根不平行才行。

  • (20)\begin{pmatrix} 2 \\ 0 \end{pmatrix}(20​) 和 (50)\begin{pmatrix} 5 \\ 0 \end{pmatrix}(50​):两根都平躺着朝右,只是长短不同。你怎么组合都离不开那条横线,永远上不去。
  • (21)\begin{pmatrix} 2 \\ 1 \end{pmatrix}(21​) 和 (42)\begin{pmatrix} 4 \\ 2 \end{pmatrix}(42​):这个更隐蔽,两根都是斜的,看着不太一样。但 (42)\begin{pmatrix} 4 \\ 2 \end{pmatrix}(42​) 恰好是 (21)\begin{pmatrix} 2 \\ 1 \end{pmatrix}(21​) 的 2 倍——同一个方向,还是困在一条线上。

判断办法:看其中一根是不是另一根的倍数。 是,就平行,就废了一根;不是,就好,两根都有用。

这个坑之所以要专门讲,是因为它在后面会以一副完全不同的面孔出现:"为什么这个方程组解不出来?"——答案往往就是你的两个方程其实在说同一件事,就像两根平行的箭头,看着有两个,实际只有一个。

沉淀结论

这一篇把前两篇的两个操作合起来用,得到了整个专栏的核心问题:

  1. 线性组合 = 每根积木各拉伸若干倍,再首尾接起来(xa+ybx a + y bxa+yb)
  2. 坐标就是线性组合——(32)\begin{pmatrix} 3 \\ 2 \end{pmatrix}(32​) 的意思是"3 个向右 + 2 个向上"(这句话是下一篇的入口,务必嚼透)
  3. 张成 = 能拼出来的所有点,也就是积木的势力范围
  4. 两根不平行 → 整个平面;两根平行 → 只剩一条线
  5. 多余的积木叫线性相关,人人有用叫线性无关;数量不代表范围

下一篇是这个专栏的枢纽。我们要问:如果把基向量搬到别的地方去,会发生什么? 你会发现,回答这个问题的东西叫"矩阵"——而它一点也不神秘。

记忆口诀

线性组合:各拉几倍,首尾一接。
坐标 (3,2) = 3 个向右 + 2 个向上。
张成就是势力范围:不平行铺满平面,一平行塌成直线。
多余的叫相关,都有用叫无关。
数量不算数,方向才算数——100 根都朝右还是一条线。

长大以后它会变成什么

"一堆数据其实只有几个真正不同的方向"这件事,长大以后叫降维:几千个特征里可能只有十几个方向真正有用,其余都在混日子。推荐系统和 AI 模型天天在干这个。想看它在大模型里的样子,可以以后翻 LLM 基础。


自测:合上资料能说清楚吗?

  1. 用大白话解释什么是"线性组合",不许用"线性"这个词。
参考答案

每根积木各拉伸若干倍(可以缩短、可以掉头),然后首尾接起来。 写成式子是 xa+ybxa + ybxa+yb。只许"拉伸"和"相接"这两招,不许把箭头掰弯或让它们相乘。

  1. (45)\begin{pmatrix} 4 \\ 5 \end{pmatrix}(45​) 这个坐标,用"向右一格"和"向上一格"这两块底砖来读,该怎么念出来?
参考答案

念作"4 个向右 + 5 个向上"。也就是 4i+5j4i + 5j4i+5j。坐标里的每个数字,就是对应基向量要拉伸的倍数——坐标本来就是一个线性组合。

  1. 给你 100 根箭头,全都朝正右方(长短不一)。你的"势力范围"是多大?为什么不是整个平面?
参考答案

只是一条横线。因为 100 根箭头都是同一个方向,互相都是彼此的倍数,99 根都是多余的(线性相关)。势力范围看的不是数量,而是有几个真正不同的方向——这里只有 1 个。

  1. 对比 (21)\begin{pmatrix} 2 \\ 1 \end{pmatrix}(21​) 配 (13)\begin{pmatrix} 1 \\ 3 \end{pmatrix}(13​) 和 (21)\begin{pmatrix} 2 \\ 1 \end{pmatrix}(21​) 配 (42)\begin{pmatrix} 4 \\ 2 \end{pmatrix}(42​):哪一对能拼出整个平面?怎么一眼看出来?
参考答案

第一对能。第二对不行——(42)\begin{pmatrix} 4 \\ 2 \end{pmatrix}(42​) 正好是 (21)\begin{pmatrix} 2 \\ 1 \end{pmatrix}(21​) 的 2 倍,两根平行,被困在一条直线上。判断办法:看其中一根是不是另一根的倍数。

  1. 如果给你的积木堆里混进了一个零向量,这堆积木一定是"线性相关"的吗?为什么?
参考答案

一定是。 零向量拉伸任何倍数还是零向量,对拼图毫无贡献,所以它必然是多余的那一根。带上它和不带它,势力范围一模一样。

最近更新: 2026/9/10 11:38
Prev
向量的加减与数乘