【具身智能入门笔记 01】线性代数的几何本质:从向量到矩阵的直觉建立
线性代数的几何本质:从向量到矩阵的直觉建立
线性代数的核心对象是向量——空间中具有方向与长度的有向线段。选取一组线性无关的向量作为基向量,即可张成整个空间,空间中的任意向量均可由基向量线性表示。矩阵本质上是一次线性变换的完整描述,其每一列记录了对应基向量变换后的新位置;矩阵乘法则对应变换的复合,即多次线性变换的依次作用。点积是度量两向量方向一致程度的工具,其几何本质为投影。
一、向量
(1)几何本质
向量是空间中具有方向与长度的有向线段。向量关注的是方向与长度,与起点位置无关——平移后仍是同一向量。
二维向量 [21]\begin{bmatrix}2\\1\end{bmatrix}[21] 表示:沿 xxx 轴正方向位移 2,沿 yyy 轴正方向位移 1。
(2)向量加法
a+b=c\mathbf{a} + \mathbf{b} = \mathbf{c}a+b=c
几何含义:运动的叠加。 将 b\mathbf{b}b 的起点平移至 a\mathbf{a}a 的终点,从 a\mathbf{a}a 的起点指向 b\mathbf{b}b 的终点即为 c\mathbf{c}c。
(3)向量数乘
kak\mathbf{a}ka
几何含义:箭头的缩放。 k>1k>1k>1 拉长,0<k<10<k<10<k<1 缩短,k<0k<0k<0 反向,k=0k=0k=0 退化为零向量。
(4)写法约定
向量习惯写作列向量,以配合矩阵乘法的行×列规则:
x=[xy],xT=[xy](行向量,即列向量的转置)\mathbf{x} = \begin{bmatrix}x\\y\end{bmatrix}, \qquad \mathbf{x}^T = \begin{bmatrix}x & y\end{bmatrix} \text{(行向量,即列向量的转置)}x=[xy],xT=[xy](行向量,即列向量的转置)
二、基向量与线性相关
(1)基向量
基向量是张成整个空间的一组参照向量。二维标准基向量为:
i^=[10],j^=[01]\hat{i} = \begin{bmatrix}1\\0\end{bmatrix}, \qquad \hat{j} = \begin{bmatrix}0\\1\end{bmatrix}i^=[10],j^=[01]
空间中任意向量均可表示为基向量的线性组合:
[32]=3i^+2j^\begin{bmatrix}3\\2\end{bmatrix} = 3\hat{i} + 2\hat{j}[32]=3i^+2j^
(2)线性相关
定义: 存在不全为零的系数 α1,α2,…,αn\alpha_1, \alpha_2, \ldots, \alpha_nα1,α2,…,αn,使得:
α1v1+α2v2+⋯+αnvn=0\alpha_1\mathbf{v}_1 + \alpha_2\mathbf{v}_2 + \cdots + \alpha_n\mathbf{v}_n = \mathbf{0}α1v1+α2v2+⋯+αnvn=0
几何含义: 向量组中至少有一个向量可被其余向量线性表示,整组向量退化至更低维的子空间——有向量未带来新的方向。
(3)线性无关
定义: 上述等式成立当且仅当所有系数均为零:
α1=α2=⋯=αn=0\alpha_1 = \alpha_2 = \cdots = \alpha_n = 0α1=α2=⋯=αn=0
几何含义: 每个向量均贡献了一个新方向,整组向量可张成完整的空间。
(4)关键定理
n 维空间中,线性无关的向量个数≤nn \text{ 维空间中,线性无关的向量个数} \leq nn 维空间中,线性无关的向量个数≤n
一旦向量个数超过空间维数,必然存在线性相关——空间无法容纳更多独立方向。
三、矩阵与线性变换
(1)线性变换的约束条件
线性变换须满足以下两个条件:
- 原点不动:T(0)=0T(\mathbf{0}) = \mathbf{0}T(0)=0
- 直线变换后仍为直线(空间不可弯曲或折叠)
两条合并为一个数学条件:
T(αa+βb)=αT(a)+βT(b)T(\alpha \mathbf{a} + \beta \mathbf{b}) = \alpha T(\mathbf{a}) + \beta T(\mathbf{b})T(αa+βb)=αT(a)+βT(b)
旋转、拉伸、压缩、翻转、错切均为合法的线性变换;平移(原点移动)与弯曲(直线变为曲线)则不是。
(2)矩阵是线性变换的完整描述
矩阵的每一列记录了对应基向量变换后的新位置:
A=[abcd]A = \begin{bmatrix}a & b\\c & d\end{bmatrix}A=[acbd]
- 第一列 [ac]\begin{bmatrix}a\\c\end{bmatrix}[ac]:i^=(1,0)\hat{i}=(1,0)i^=(1,0) 变换后的位置
- 第二列 [bd]\begin{bmatrix}b\\d\end{bmatrix}[bd]:j^=(0,1)\hat{j}=(0,1)j^=(0,1) 变换后的位置
知道基向量的去向,整个空间的变换即完全确定。
(3)矩阵形状:维度转换说明书
Am×n:n 维⟶m 维A_{m \times n}: \quad n \text{ 维} \longrightarrow m \text{ 维}Am×n:n 维⟶m 维
- 列数 = 输入维度
- 行数 = 输出维度
| 形状 | 含义 |
|---|---|
| 2×22 \times 22×2 | 二维 → 二维 |
| 3×23 \times 23×2 | 二维 → 三维(升维) |
| 2×32 \times 32×3 | 三维 → 二维(降维) |
四、矩阵乘法
(1)几何本质
矩阵乘法表示多次线性变换的复合,执行顺序从右至左:
C=AB⟺先施加变换 B,再施加变换 AC = AB \quad \Longleftrightarrow \quad \text{先施加变换}\ B\text{,再施加变换}\ AC=AB⟺先施加变换 B,再施加变换 A
(2)形状规则
[m, n] @ [n, k] = [m, k][m,\ n]\ @\ [n,\ k]\ =\ [m,\ k][m, n] @ [n, k] = [m, k]
几何解读——两段变换串联为一段:
xk维→ B yn维→ A zm维\mathbf{x}_{k\text{维}} \xrightarrow{\ B\ } \mathbf{y}_{n\text{维}} \xrightarrow{\ A\ } \mathbf{z}_{m\text{维}}xk维 B yn维 A zm维
中间维度 nnn 必须匹配:BBB 的输出维度须等于 AAA 的输入维度,两段变换方可衔接。结果矩阵保留起点维度 kkk 与终点维度 mmm,中间维度 nnn 被合并消去。
(3)注意
矩阵乘法不满足交换律:
AB≠BAAB \neq BAAB=BA
变换的施加顺序不同,结果通常不同。
五、点积
(1)定义
a⋅b=∑iaibi=∣a∣∣b∣cosθ\mathbf{a} \cdot \mathbf{b} = \sum_{i} a_i b_i = |\mathbf{a}||\mathbf{b}|\cos\thetaa⋅b=i∑aibi=∣a∣∣b∣cosθ
(2)几何含义
点积的几何本质是投影。 将 b\mathbf{b}b 投影至 a\mathbf{a}a 的方向,所得投影长度与 ∣a∣|\mathbf{a}|∣a∣ 之积即为点积。其值反映两向量方向的一致程度:
| 点积结果 | 几何含义 |
|---|---|
| >0> 0>0 | 两向量方向夹角小于 90°90°90° |
| =0= 0=0 | 两向量正交(垂直) |
| <0< 0<0 | 两向量方向夹角大于 90°90°90° |
(3)常见应用
- 判断正交:a⋅b=0⇒a⊥b\mathbf{a} \cdot \mathbf{b} = 0 \Rightarrow \mathbf{a} \perp \mathbf{b}a⋅b=0⇒a⊥b
- 计算夹角:cosθ=a⋅b∣a∣∣b∣\cos\theta = \dfrac{\mathbf{a} \cdot \mathbf{b}}{|\mathbf{a}||\mathbf{b}|}cosθ=∣a∣∣b∣a⋅b
- 求投影长度:proj=a⋅b∣a∣\text{proj} = \dfrac{\mathbf{a} \cdot \mathbf{b}}{|\mathbf{a}|}proj=∣a∣a⋅b
六、应用:Transformer 注意力机制
以上所有概念——向量、线性变换、矩阵乘法、点积——在 Transformer 的注意力机制中均有直接对应。
(1)背景:注意力机制在做什么
注意力机制的目标是:对于输入序列中的每个元素,计算它与其他所有元素的相关程度,再根据相关程度对信息进行加权聚合。
以句子"猫坐在垫子上"为例,处理"坐"这个词时,模型需要知道它和"猫"的相关程度高,和"上"的相关程度低——让每个词决定自己该关注哪些词、关注多少。
(2)Q、K、V 的生成:线性变换
输入的每个词首先被表示为一个向量(词嵌入)。注意力机制对每个词的向量做三次线性变换,生成三个新向量:
Q=XWQ,K=XWK,V=XWVQ = XW_Q, \quad K = XW_K, \quad V = XW_VQ=XWQ,K=XWK,V=XWV
理解 Q、K、V,可以用图书馆借书来类比:
你手里拿着一张需求单(Q,Query),书架上每本书有一个标签(K,Key),书的内容是(V,Value)。你拿着需求单和每本书的标签比对,越匹配的书,你就借阅它越多的内容。
对应到"猫坐在垫子上",每个词同时拥有 Q、K、V 三个角色:
- QQQ(Query,需求单):"坐"在说,我需要从其他词那里获取什么类型的信息
- KKK(Key,标签):"猫"在说,我能提供什么类型的信息
- VVV(Value,内容):“猫"实际贡献出去的语义向量——注意这不是"猫"的字面意思,而是词嵌入经 WVW_VWV 变换后编码的语义特征(如"生物”、"主语候选"等)
Q 和 K 做点积,判断信息需求与信息供给是否匹配;匹配程度决定从对应 V 中借取多少内容。
(3)注意力分数:点积衡量相关程度
用"坐"的 QQQ 和所有词的 KKK 分别做点积,得到一组相关程度分数:
score(坐, 每个词)=Q坐⋅K每个词T\text{score}(\text{坐},\ \text{每个词}) = Q_{\text{坐}} \cdot K_{\text{每个词}}^Tscore(坐, 每个词)=Q坐⋅K每个词T
点积越大,方向越一致,相关程度越高——正是今天学的点积几何含义的直接应用。例如:
- Q坐⋅K猫TQ_{\text{坐}} \cdot K_{\text{猫}}^TQ坐⋅K猫T 结果大 → "坐"与"猫"高度相关
- Q坐⋅K上TQ_{\text{坐}} \cdot K_{\text{上}}^TQ坐⋅K上T 结果小 → "坐"与"上"相关程度低
计算完所有分数后,除以 dk\sqrt{d_k}dk(防止数值过大),再经 Softmax 归一化,得到一组和为 1 的注意力权重:
α=Softmax(Q坐KTdk)=[0.6, 0.05, 0.25, 0.05, 0.05]\alpha = \text{Softmax}\left(\frac{Q_{\text{坐}} K^T}{\sqrt{d_k}}\right) = [0.6,\ 0.05,\ 0.25,\ 0.05,\ 0.05]α=Softmax(dkQ坐KT)=[0.6, 0.05, 0.25, 0.05, 0.05]
对应"猫、坐、在、垫子、上"五个词,表示"坐"对每个词的关注程度。
(4)加权聚合:矩阵乘法融合信息
有了注意力权重 α\alphaα,再用它对所有词的 VVV 做加权求和:
输出坐=α猫⋅V猫+α坐⋅V坐+α在⋅V在+⋯\text{输出}_{\text{坐}} = \alpha_{\text{猫}} \cdot V_{\text{猫}} + \alpha_{\text{坐}} \cdot V_{\text{坐}} + \alpha_{\text{在}} \cdot V_{\text{在}} + \cdots输出坐=α猫⋅V猫+α坐⋅V坐+α在⋅V在+⋯
权重高的词(“猫”,0.6)贡献的语义多,权重低的词(“上”,0.05)贡献的语义少。“坐"的输出向量因此融合了"猫"的大量语义——模型得知了"是猫在坐”。
写成矩阵乘法:
Output=αV\text{Output} = \alpha VOutput=αV
α\alphaα 是注意力权重矩阵,VVV 是所有词的 Value 向量堆叠成的矩阵,两者相乘完成加权聚合。完整公式为:
Attention(Q,K,V)=Softmax(QKTdk)V\text{Attention}(Q,K,V) = \text{Softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)VAttention(Q,K,V)=Softmax(dkQKT)V
(5)对应关系总结
| 今天学的概念 | 在注意力机制中的对应 |
|---|---|
| 向量 | 词嵌入、Q / K / V |
| 线性变换(矩阵) | 权重矩阵 WQ、WK、WVW_Q、W_K、W_VWQ、WK、WV 生成 Q、K、V |
| 点积衡量方向一致程度 | QKTQK^TQKT 计算词与词的相关程度 |
| 矩阵乘法 | 注意力权重 α\alphaα 与 VVV 相乘,完成信息聚合 |
总览
向量(空间中的有向线段)
├─ 加法:运动的叠加
├─ 数乘:方向不变的缩放
└─ 点积:两向量方向一致程度的度量(投影)
基向量
├─ 线性无关 → 张成完整空间
└─ 线性相关 → 退化至低维子空间
矩阵(线性变换的说明书)
├─ 每列:基向量变换后的新位置
├─ 列数:输入维度 / 行数:输出维度
└─ 矩阵乘法:变换的复合,从右至左执行
[m, n] @ [n, k] = [m, k]
k维 → n维(中转)→ m维
注意力机制(线性代数的综合应用)
├─ Q、K、V 生成:三次线性变换
├─ 注意力分数:点积衡量相关程度
└─ 加权聚合:注意力权重矩阵 × V 矩阵
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)