前言
这是"线性代数基础"专栏的第一篇。这个专栏的目的很明确:补齐看懂本站进阶数学文章所需的基础。读完本文(以及后续两篇),你应该能顺畅读懂《矩阵微积分如何服务反向传播》和《Softmax 与缩放点积的数学》。
我们从一个最朴素的问题开始:什么是向量? 它为什么值得花一整篇来讨论?
向量:从几何到坐标
向量有两种看待方式,二者等价,互为补充:
- 几何视角:向量是空间中带方向和长度的箭头。它表示"从一点移动到另一点"。
- 代数视角:向量是 $\mathbb{R}^n$ 中的一个有序数组,如 $v = (v_1, v_2, \dots, v_n)$。其中 $n$ 是维度。
在深度学习中,我们几乎总是用数组(张量)表示向量:一个词嵌入是几百维的向量,一张图片展开后是几万维的向量。几何直觉在低维(2D/3D)依然成立,只是"看不见",但公式可以推广到任意维度。
向量的基本运算
对向量 $u, v$ 和标量 $c$:
- 加法:$(u + v)_i = u_i + v_i$。几何上就是"首尾相接"(平行四边形法则)。
- 数乘:$(cv)_i = c v_i$。几何上是把箭头拉伸($|c| > 1$)或压缩($|c| < 1$),$c < 0$ 时反向。
这两个运算非常重要,因为"对加法和数乘封闭"正是下一篇文章里"向量空间"定义的核心。
点积与范数
点积(内积)
两个 $n$ 维向量 $a$、$b$ 的点积定义为对应分量乘积之和:
$$ a \cdot b = \sum_{i=1}^{n} a_i b_i $$它的几何形式揭示了本质:
$$ a \cdot b = \|a\| \|b\| \cos\theta $$其中 $\theta$ 是两个向量之间的夹角,$\|a\|$ 是 $a$ 的模长(范数)。也就是说,点积同时度量了两个向量的长度和方向一致性:夹角越小,点积越大。
范数(模长)
向量的 L2 范数定义为它自身的点积再开方:
$$ \|a\| = \sqrt{a \cdot a} = \sqrt{\sum_{i=1}^{n} a_i^2} $$单位向量是范数为 1 的向量。把任意非零向量 $a$ 除以它的范数就得到同方向的单位向量,这个过程叫归一化:
$$ \hat{a} = \frac{a}{\|a\|} $$正交
当 $a \cdot b = 0$ 时,两个向量正交(垂直)。由几何公式,$\cos\theta = 0$ 意味着 $\theta = 90^\circ$。
一个重要的不等式是柯西-施瓦茨不等式:
$$ |a \cdot b| \le \|a\| \|b\| $$它保证 $a \cdot b / (\|a\|\|b\|)$ 落在 $[-1, 1]$ 之间——这正是"余弦相似度"的定义,也是为什么它是合法的相似度度量。
衔接:在《Softmax 与缩放点积的数学》里,Attention 用点积 $q \cdot k$ 衡量两个 token 的相似度。点积的尺度会随维度增长(方差正比于维数),所以除以 $\sqrt{d_k}$ 来"压回"尺度——背后的数学就是把点积的方差控制住,让 softmax 不进入饱和区。点积与范数的关系贯穿其中。
线性组合与线性无关
线性组合
给定一组向量 $v_1, v_2, \dots, v_k$ 和标量 $c_1, c_2, \dots, c_k$,它们的线性组合是:
$$ c_1 v_1 + c_2 v_2 + \dots + c_k v_k $$你可以把线性组合理解为"用已有的向量拼出新的向量"。比如在平面里,$2 \cdot (1, 0) + 3 \cdot (0, 1) = (2, 3)$。
线性无关与相关
一组向量线性相关,如果存在不全为零的标量 $c_i$ 使线性组合为零向量:
$$ c_1 v_1 + \dots + c_k v_k = 0 $$如果只有全为零时才成立,则这组向量线性无关。
直观理解:线性相关意味着某个向量可以被其余向量拼出来(有冗余);线性无关意味着谁都无法被取代。
例:在 $\mathbb{R}^2$ 中,$v_1 = (1, 0)$、$v_2 = (0, 1)$ 线性无关(没有非零组合能得到 $(0,0)$);而 $v_1 = (1, 0)$、$v_3 = (2, 0)$ 线性相关($2v_1 - v_3 = 0$)。
张成(Span)
一组向量的张成(span)是所有可能的线性组合构成的集合。几何上:
- 两个不平行的 2D 向量张成整个平面;
- 一个非零向量只张成一条过原点的直线;
- 三个共面的 3D 向量只张成一个平面。
张成刻画了"这组向量能到达的空间范围"。
基、维度与向量空间
基(Basis)
如果一组向量既线性无关,又张成整个空间,它们就是空间的一组基。
$\mathbb{R}^n$ 的标准基是:
$$ e_1 = (1, 0, \dots, 0), \quad e_2 = (0, 1, \dots, 0), \quad \dots, \quad e_n = (0, 0, \dots, 1) $$基的意义:空间里的每一个向量都能用基向量唯一地线性表示。这组"坐标系"让抽象空间变得可计算。
维度(Dimension)
空间中任何一组基都包含相同数量的向量,这个数量就是空间的维度。$\dim(\mathbb{R}^n) = n$。
向量空间与子空间
向量空间(线性空间)是这样一个集合:对加法和数乘封闭,且满足若干公理(零向量存在、加法可逆等)。$\mathbb{R}^n$ 是最典型的例子。
子空间是向量空间中仍保持"对加法和数乘封闭"的非空子集。例:过原点的一条直线是 $\mathbb{R}^2$ 的子空间;不过原点的直线则不是(数乘后可能跑出这条线)。这个概念在后续理解矩阵的列空间、解空间时会反复出现。
总结与进阶衔接
这一篇我们建立了三条线:
- 向量是空间中的元素,有几何直觉与代数表示两种视角;
- 点积与范数度量向量之间的关系(方向、长度、相似度);
- 线性无关、基与维度描述空间的"骨架"与大小。
这些概念如何在进阶文章里出现:
- 《矩阵微积分如何服务反向传播》:Jacobian 是一个把向量映射到向量的函数($\mathbb{R}^n \to \mathbb{R}^m$)的"导数"。理解"向量是空间元素、线性组合构成张成",才能读懂 Jacobian 矩阵的每一行/列在说什么,以及"局部线性近似"为何成立。
- 《Softmax 与缩放点积的数学》:点积衡量相似度、范数做归一化、柯西-施瓦茨保证余弦值有界——这三个点直接对应 softmax 与缩放点积的数学细节。
如果你对矩阵还不太熟,接下来读《线性代数基础(二):矩阵与线性变换》,那里会把向量和矩阵联系起来。