几何代数从入门到精通教程(GATr专项)
1. 引言:几何代数统一框架与GATr核心价值
1.1 传统向量代数的局限性
#### 1.1.1 点积与叉积的维度依赖问题
传统向量代数作为工程与科学教育的基础工具,存在着深刻的结构性缺陷。点积(dot product) 虽然能够计算向量长度与夹角,但其输出仅为标量,完全丢失了方向信息;更为严重的是 叉积(cross product) 的维度依赖性——这一运算仅在三维空间中定义,且其结果向量的方向遵循人为规定的"右手定则",这种非几何性的约定不仅增加了记忆负担,更导致算法在不同维度间无法直接迁移。当研究者需要在二维平面处理旋转时,必须引入复数或 2×2 矩阵;在四维时空(如相对论)中,叉积完全失效,需要全新的数学工具。这种碎片化的知识结构造成了显著的学习成本,并在实际应用中表现为代码的重复开发与维护困难。
从计算效率角度分析,传统方法的高维扩展性极差。叉积在 n 维空间中需要 (n-2) 维的"垂直补空间"概念,而这一构造仅在 n=3 时恰好产生向量。在机器学习领域,这种维度依赖性迫使神经网络为不同输入维度重新学习特征表示,无法共享跨维度的几何先验。更为隐蔽的问题是,叉积的"伪向量"(axial vector)本质——在反射变换下与真向量(polar vector)具有不同的变换规律——常常导致物理方程的错误表述,例如电磁学中磁场 B 的正确几何身份应为双向量而非向量。
#### 1.1.2 旋转、平移需分别处理的不便
在刚体运动学中,旋转与平移的传统处理方式呈现出根本性的不对称。旋转 通常采用 3×3 旋转矩阵(9 个参数,6 个正交约束)或四元数(4 个参数,1 个归一化约束)表示,而 平移 则需要额外的三维向量。这种分离表示在复合变换时尤为繁琐:机器人运动学中的齐次坐标变换矩阵虽然将两者合并为 4×4 矩阵,却引入了冗余的 16 个参数(实际仅 6 个自由度),且矩阵乘法的高计算复杂度(O(n³))在大规模场景下成为性能瓶颈。
更为关键的是,这种分离表示破坏了变换的代数结构——旋转构成群(SO(3)),平移构成向量空间,两者的数学性质截然不同,导致统一分析极为困难。在神经网络应用中,这种分离表示迫使模型分别学习旋转与平移的等变性,数据效率低下且泛化能力受限。对于需要 E(3) 等变性(即对旋转、平移、反射保持输出一致性)的任务,传统方法需要复杂的数据增强或专门的网络架构设计,难以实现理论上的严格保证。旋转矩阵的插值需要重新正交化,四元数的插值需处理双重覆盖问题,而平移与旋转的参数化方式不一致则增加了非线性优化的难度——这些技术债务在实时系统(如机器人控制、虚拟现实渲染)中直接转化为可靠性风险。
1.2 几何代数的核心优势
#### 1.2.1 单一运算统一几何操作:几何积
几何代数(Geometric Algebra, GA)的革命性贡献在于用 几何积(geometric product) 这一单一运算实现了几何概念的统一框架。对于任意两个向量 a 和 b,几何积定义为:
$$ \mathbf{a}\mathbf{b} = \mathbf{a} \cdot \mathbf{b} + \mathbf{a} \wedge \mathbf{b} $$
这一公式将 内积(标量部分,表示投影与长度) 与 外积(双向量部分,表示有向面积) 融合为不可分割的整体。几何积的代数性质极为丰富:它满足结合律,对加法满足分配律,且非零向量存在逆元(a⁻¹ = a/|a|²),使得"向量可以像数字一样相除"成为现实。与复数乘法类比,几何积的不可交换性恰恰编码了几何的方向信息,而其可逆性则为求解几何方程提供了代数工具。
作为 Clifford 代数 的一种具体实现,几何代数将 Grassmann 的外代数与 Hamilton 的四元数统一于同一框架,被誉为"19 世纪数学被遗忘的宝藏"。几何积的核心洞见在于:向量的乘法结果不仅能够产生标量,还能够生成更高维的几何对象——双向量(bivector,有向面积元)、三向量(trivector,有向体积元) 等,形成完整的多向量层次结构。这种"乘法即构造"的特性使得复杂几何对象可以通过代数运算自然生成,无需外部定义。
#### 1.2.2 多向量空间的完备性(标量→向量→双向量→三向量)
几何代数构建了一个 分级(graded)的多向量空间,其完备性体现在对任意维度几何对象的统一表示能力。在 n 维空间中,多向量空间的总维度为 2ⁿ,包含从 0 级到 n 级的所有可能组合:
| 等级(Grade) | 数学对象 | 维度 | 几何意义 | 物理示例 |
|---|---|---|---|---|
| 0 | 标量(Scalar) | 1 | 有向长度/数值 | 质量、电荷、温度 |
| 1 | 向量(Vector) | n | 有向线段 | 力、速度、电场 |
| 2 | 双向量(Bivector) | C(n,2) | 有向面积元素 | 角动量、磁场、涡旋 |
| 3 | 三向量(Trivector) | C(n,3) | 有向体积元素 | 质量密度、磁单极子 |
| ... | ... | ... | ... | ... |
| n | n-向量/Pseudoscalar | 1 | 有向超体积 | 定向、手性 |
#### 1.2.3 旋转、反射、平移的乘法统一表示
几何代数最优雅的成就之一,是将所有等距变换统一表示为 乘法运算。转子(rotor) 是实现旋转的核心对象,其一般形式为标量与双向量的组合,通过 三明治乘法(sandwich product) 作用于向量或其他多向量:
$$ \mathbf{v}' = R\mathbf{v}R^{-1} $$
对于反射,奇数级多向量(如向量) 直接通过几何积实现;对于平移,在 投影几何代数(PGA) 框架下,平移被重新诠释为"无穷远处的旋转",同样纳入转子形式。这种统一表示的深层优势在于:变换的复合简化为代数乘法,逆变换简化为代数逆,插值简化为指数映射上的线性插值。与矩阵表示相比,乘法表示的参数量更少(3D 旋转仅需 4 个标量而非 9 个),数值稳定性更高(避免了矩阵正交化),且天然保持几何约束。
1.3 GATr采用PGA的动机
#### 1.3.1 E(3)等变性的数据效率优势
GATr(Geometric Algebra Transformer) 是 Qualcomm AI Research 于 NeurIPS 2023 发表的前沿工作,其核心创新在于将 投影几何代数(PGA) 与 Transformer 架构深度融合。传统神经网络在处理 3D 几何数据时面临根本性挑战:E(3) 等变性(equivariance) 的缺失——即模型输出应随输入的旋转、平移、反射而相应变换。传统方法通过数据增强(随机旋转训练样本)隐式学习对称性,需要大量标注数据,且无法保证严格等变性。
GATr 通过 PGA 的内建结构,将 E(3) 群(三维欧氏空间的刚体运动群)的对称性直接编码进网络架构。具体而言,PGA 的多向量表示使得每一层运算自动保持等变性:几何积的乘法结构保证变换的协变性,注意力机制中的内积选择不变量,最终输出随输入的刚体变换而协变。这种 "内建等变性" 带来了 数量级的数据效率提升——在 n-body 模拟、分子性质预测等任务中,GATr 仅需传统方法 1% 到 10% 的训练数据即可达到同等或更优性能。
| 任务 | 方法 | 相对误差 | 训练数据 | 数据效率提升 |
|---|---|---|---|---|
| n-body 模拟 | 标准 Transformer | 0.0050 | 100% 基准 | 1× |
| SE(3)-Transformer | 0.0025 | 100% 基准 | 1× | |
| GATr | 0.0005 | 1% | 100× | |
| 血管壁应力预测 | 标准 Transformer | 0.105 | 100% 基准 | 1× |
| GATr | 0.089 | 100% | 精度提升 15% |
PGA G(3,0,1) 的代数维度为 2⁴ = 16,这一 16 维多向量空间与 GATr 的 token 表示完美匹配。与原始 3D 坐标相比,16 维实现了几何信息的 完备编码:
| PGA 元素 | 等级 | 维度 | 几何意义 | GATr 用途 |
|---|---|---|---|---|
| 标量 | 0 | 1 | 有向量值 | 特征强度、质量 |
| 向量 | 1 | 4 | 平面(含无穷远平面 e₀) | 局部坐标平面、方向 |
| 双向量 | 2 | 6 | 线(方向+矩) | 旋转生成元、边/轴 |
| 三向量 | 3 | 4 | 点(三平面交点) | 位置坐标 |
| 四向量(伪标量) | 4 | 1 | 有向超体积 | 对偶运算、体积 |
#### 1.3.3 Transformer层内建对称性尊重
GATr 的架构创新在于将 PGA 运算嵌入 Transformer 的每一层:
| 组件 | 传统 Transformer | GATr 设计 | 等变性机制 |
|---|---|---|---|
| 输入嵌入 | 位置编码 + 线性投影 | embed_point() 等 PGA 嵌入 | 构造等变表示 |
| 注意力机制 | 点积 QKᵀ/√d | GA 内积 ⟨Q, K⟩₀(标量部分) | 内积 E(3) 不变 |
| MLP 层 | 矩阵乘法 + ReLU | 几何积 + 逐分量非线性 | 几何积协变 |
| 输出提取 | 线性投影 | extract_scalar() 等 PGA 提取 | 保持变换性质 |
---
2. 二维几何代数基础:复数类比与几何积
2.1 几何积的分解结构
#### 2.1.1 内积(标量部分):长度与夹角
几何积的 内积部分 a·b = |a||b|cosθ 与传统点积完全一致,但其意义在 GA 框架下更为丰富。内积测量两个向量的 "共线程度":当两向量平行时取最大值 |a||b|,正交时为零,反平行时为负最大值。这一符号信息在物理应用中至关重要——功的计算 W = F·d 中,负功表示力阻碍运动。
在 GA 中,内积被重新理解为 "grade-lowering" 操作:两个 1 级向量(向量)的内积产生 0 级对象(标量)。这种分级视角揭示了内积的深层结构:它提取两个几何对象中 "最低公共维度" 的信息,是几何交集的代数对应。内积的梯度指向使两向量更平行的方向,这一性质在优化与机器学习中具有直接应用。
#### 2.1.2 外积(双向量部分):有向面积
外积 a∧b 是几何代数区别于传统向量分析的关键创新。其 magnitude |a||b|sinθ 等于两向量张成的平行四边形面积,而其"方向"由该平行四边形所在的平面及其定向(orientation)确定。外积的 反对称性 a∧b = −b∧a 直接编码了交换因子顺序翻转面积方向的几何事实,这一性质无需额外约定(如右手定则)而自然涌现。
在 2D GA 中,双向量是最高级元素,扮演 "虚数单位" 的角色;在 3D 中,双向量则对应三个正交平面,为旋转提供生成元。外积的 "grade-raising" 特性——两个 1 级对象产生 2 级对象——使其成为构造高维几何对象的基本工具。与叉积不同,外积的结果 双向量是真正的几何对象,而非依赖于三维嵌入的"伪向量",这一区别在反射变换下尤为明显:双向量按照真实几何对象变换,而伪向量获得额外符号因子。
2.2 双向量的虚数特性
#### 2.2.1 单位双向量I的定义与I² = -1
在二维几何代数中,定义标准正交基 e₁(水平向右)和 e₂(垂直向上),则 单位双向量 为:
$$ I = e_1 \wedge e_2 = e_1 e_2 $$
这一双向量的平方具有惊人性质:
$$ I^2 = (e_1 e_2)(e_1 e_2) = e_1 (e_2 e_1) e_2 = -e_1 (e_1 e_2) e_2 = -(e_1 e_1)(e_2 e_2) = -1 $$
推导中关键步骤利用了基向量的 反交换性 e₂e₁ = −e₁e₂ 与 归一性 e₁² = e₂² = 1。I² = −1 与复数虚数单位 i 的代数性质完全一致,揭示了复数乘法的几何本质:乘以 i 等价于在平面内旋转 90°。这一发现并非巧合,而是表明 复数可嵌入 2D GA 作为子代数——复数的实部对应 GA 的标量,虚部对应双向量的标量倍数。
然而,GA 框架提供了远超复数的几何解释:I 不是抽象的"虚数",而是真正的几何对象——整个二维平面的有向面积元。这一洞见使得"虚数"成为可直观理解的几何概念,并为向任意维度的推广奠定基础。
#### 2.2.2 双向量作为旋转生成元
双向量 I 不仅是代数上的"虚数",更是 旋转的生成元(generator)。无穷小旋转可表示为 1 + εI(ε 为小量),有限旋转则通过 指数映射 获得:
$$ e^{\theta I} = \cos\theta + I\sin\theta $$
这正是 欧拉公式的 GA 形式。与复数表示相比,GA 的优势在于 直接推广到任意维度:3D 旋转需要三个双向量生成元(对应三个正交平面),4D 旋转则需要六个。双向量生成元的几何直观性——旋转发生在哪个平面——是矩阵表示无法提供的。
在机器人关节控制中,直接指定旋转平面比分解为欧拉角更为自然,避免了万向节锁(gimbal lock)问题。这一性质的李群理论基础在于:双向量构成旋转群 SO(n) 的李代数 so(n),指数映射给出群元素。
2.3 转子与三明治乘法
#### 2.3.1 转子公式:R = cos(θ/2) + I sin(θ/2)
转子(rotor) 是实现旋转的核心对象,其一般形式为:
$$ R = \cos\frac{\theta}{2} + I\sin\frac{\theta}{2} = e^{\theta I/2} $$
半角的出现 源于三明治乘法的结构:RvR⁻¹ 中 R 与 R⁻¹ 各贡献一半旋转。转子的 范数 |R|² = cos²(θ/2) + sin²(θ/2) = 1,确保其为 单位转子,对应纯旋转而非缩放。转子的逆 R⁻¹ = cos(θ/2) − I sin(θ/2) = R̃ 即其 反向(reverse),这一运算将多向量的基向量顺序反转,对双向量而言等价于符号取反。
转子的 乘法群结构 使得旋转的复合极为自然:R(θ₂)R(θ₁) = R(θ₁+θ₂),这一群同态性质与复数乘法一致,但 GA 框架将其推广到任意维度。
#### 2.3.2 旋转操作:v' = RvR⁻¹
三明治乘法 v' = RvR⁻¹ 是 GA 中最优雅的构造之一。其工作机制可通过展开理解:设 v = v₁e₁ + v₂e₂,R = cos(θ/2) + I sin(θ/2),则
$$ RvR^{-1} = \left(\cos\frac{\theta}{2} + I\sin\frac{\theta}{2}\right)(v_1 e_1 + v_2 e_2)\left(\cos\frac{\theta}{2} - I\sin\frac{\theta}{2}\right) $$
经过代数运算(利用 Ie₁ = e₂,Ie₂ = −e₁),最终得到:
$$ \mathbf{v}' = (v_1\cos\theta - v_2\sin\theta)\mathbf{e}_1 + (v_1\sin\theta + v_2\cos\theta)\mathbf{e}_2 $$
这正是 二维旋转矩阵的标准形式。三明治结构的优势在于:它自动保持被变换对象的类型(向量旋转后仍为向量),且对 任意等级的多向量适用——标量不变,双向量同样旋转,实现了变换的统一处理。
#### 2.3.3 坐标无关性的优势
GA 表示的旋转完全 坐标无关:转子 R 描述的是几何平面内的旋转角度,与坐标系选择无关。相比之下,旋转矩阵的 9 个元素随坐标系变化,且需满足 6 个正交约束(RᵀR = I,det R = 1)。坐标无关性带来的实际好处包括:
| 特性 | 旋转矩阵 | GA 转子 |
|---|---|---|
| 参数数量 | 9(6 个约束) | 4(1 个约束) |
| 数值稳定性 | 需重新正交化 | 自动保持归一化 |
| 插值 | 非自然(需投影) | 测地线插值(slerp) |
| 微分 | 复杂(矩阵李群) | 简洁(指数映射) |
| 维度推广 | 需重新推导 | 直接推广 |
---
3. 三维几何代数进阶:四元数统一与维度扩展
3.1 三维基向量的几何积
#### 3.1.1 三个正交双向量(e₁₂, e₁₃, e₂₃)
三维几何代数的基结构显著丰富于二维。除三个向量基 e₁, e₂, e₃ 外,几何积产生 三个独立双向量:
| 双向量 | 定义 | 几何意义 | 右手定则对应 |
|---|---|---|---|
| e₁₂ = e₁∧e₂ | e₁e₂ | xy 平面的有向面积元 | 绕 z 轴旋转 |
| e₁₃ = e₁∧e₃ | e₁e₃ | xz 平面的有向面积元 | 绕 y 轴旋转 |
| e₂₃ = e₂∧e₃ | e₂e₃ | yz 平面的有向面积元 | 绕 x 轴旋转 |
$$ [e_{12}, e_{13}] = e_{12}e_{13} - e_{13}e_{12} = 2e_{23} \quad \text{(循环置换)} $$
这与 角动量算符的对易关系 [Lᵢ, Lⱼ] = iℏεᵢⱼₖLₖ 结构相同,揭示了 GA 与量子力学的深层联系。双向量的几何积产生三向量(伪标量):e₁₂e₂₃ = e₁₃,这一"约化"现象是 3D 特有的——在更高维度,双向量的几何积可产生更高等级的多向量。
#### 3.1.2 三向量(伪标量)的体积意义
三维 GA 的最高级元素为 三向量(trivector) 或 伪标量(pseudoscalar):
$$ I_3 = e_1 \wedge e_2 \wedge e_3 = e_1 e_2 e_3 $$
其平方 I₃² = −1(在 3D 欧氏度量下),与 2D 情况类似但几何意义不同。三向量表示 有向体积元:任意三个向量 a, b, c 的外积 a∧b∧c 产生标量三倍的平行六面体体积。三向量的 "伪"性 体现在:它在 反射变换下变号(真标量不变),因此区分左右手坐标系。在物理中,磁单极子、手性费米子 等概念都与伪标量密切相关。
三向量还实现 对偶(duality)映射:向量与双向量通过对偶相互转换,**v* = vI₃⁻¹,这一运算在 3D 中将直线(双向量)与法向量(向量)统一。对偶关系是 叉积的 GA 对应,但更为清晰和通用——叉积 a×b = (a∧b)I₃⁻¹ 只是双向量对偶的特例。
3.2 三维转子与四元数等价
#### 3.2.1 标量+双向量的四维结构
三维转子的一般形式为:
$$ R = \cos\frac{\theta}{2} + \mathbf{B}\sin\frac{\theta}{2} $$
其中 B = b₁₂e₁₂ + b₁₃e₁₃ + b₂₃e₂₃ 为 单位双向量(|B| = 1),表示旋转平面的法向量。转子包含 4 个独立分量(1 个标量 + 3 个双向量系数),与 四元数 q = w + xi + yj + zk 的维度一致。
实际上,映射 i ↔ −e₂₃,j ↔ −e₁₃,k ↔ −e₁₂ 建立了 GA 转子与 Hamilton 四元数的 代数同构。然而 GA 表示更为直观:四元数的"虚数单位" i, j, k 是抽象符号,而 GA 的双向量有 明确几何意义——旋转平面。
| 特性 | 四元数 | GA 转子 |
|---|---|---|
| 虚数单位 | i, j, k(抽象) | e₂₃, e₁₃, e₁₂(几何平面) |
| 乘法规则 | 人为定义 | 几何积自然导出 |
| 旋转表示 | 绕轴旋转 | 在平面内旋转 |
| 维度推广 | 困难 | 直接 |
| 反射处理 | 需额外构造 | 统一于 versor |
GA 转子的核心优势在于 旋转平面的直接可视化。给定旋转轴 n = (nₓ, nᵧ, nᵤ),对应的双向量为:
$$ \mathbf{B} = n_x e_{23} + n_y e_{31} + n_z e_{12} $$
这一对应即 Hodge 对偶:旋转轴(向量)与旋转平面(双向量)在 3D 中互为对偶。直观理解:绕 z 轴旋转等价于在 xy 平面内旋转,轴的方向由右手定则确定。GA 将这一隐式对偶显式化,使得旋转的合成更为清晰——两个转子的几何积直接给出复合旋转的平面与角度,无需转换为矩阵或欧拉角。
#### 3.2.3 复合旋转的连续性优势
转子乘法 R₂R₁ 直接给出复合旋转,其结果 自动归一化(单位转子的乘积仍为单位转子),避免了四元数乘法后的显式归一化步骤。更为重要的是,转子空间是 双覆盖(double cover) 的:R 与 −R 表示同一旋转,这一拓扑性质与 SU(2) → SO(3) 的群同态对应。
在插值应用中,转子空间的 测地线(大圆弧)对应恒速旋转,而欧拉角插值可能产生非物理的加速。GA 的指数映射 R = e^(Bθ/2) 还为旋转的微分方程(如刚体动力学中的欧拉方程)提供了自然框架。
3.3 反射与奇数转子的统一处理
GA 将 反射 统一于相同的代数结构:向量 a 实现关于垂直于 a 的平面的反射,通过三明治乘法:
$$ \mathbf{v}' = -\mathbf{a}\mathbf{v}\mathbf{a}^{-1} $$
负号确保方向正确(反射改变定向)。两个反射的复合产生旋转——这是 Cartan-Dieudonné 定理 的 GA 体现:任意等距变换可分解为反射的乘积。奇数个反射给出 反向等距(反射、滑移反射),偶数个给出 正常等距(旋转、平移)。
这一统一视角在 晶体学(对称群分类) 与 计算机图形学(变换分解) 中有直接应用。Versor(向量或向量的几何积)作为反射的生成元,与转子(偶 versor)共同构成 Clifford 群,实现了所有等距变换的代数统一。
---
4. 多向量结构与等级分解
4.1 多向量的完整组成
#### 4.1.1 标量(0级)、向量(1级)
多向量是几何代数的通用元素,其 分级结构 反映几何对象的维度。标量(0 级) 为普通实数,在物理中表示质量、电荷等无方向量;向量(1 级) 表示有向线段,对应力、速度等物理量。在 GA 中,标量与向量通过几何积相互作用:标量缩放向量(sv),向量平方产生标量(v² = |v|²)。这种交互的封闭性确保了代数的一致性。
#### 4.1.2 双向量(2级)、三向量(3级)
双向量(2 级) 表示有向面积元,在电磁学中对应电场-磁场平面(Faraday 张量的分量);三向量(3 级) 表示有向体积元,在流体力学中对应涡量密度。更高维度的 GA 还包含四向量、五向量等,但在 3D 物理中三向量为最高级。
各级元素的几何意义并非抽象定义,而是源于 几何积的构造性:外积提升等级,内积降低等级,几何积同时包含两种操作。这种"升降"机制使得多向量空间具有丰富的代数结构。
4.2 三维空间的8维基底(2³ = 8)
#### 4.2.1 一般形式:M = s + v + B + It
三维 GA 的多向量空间维度为 2³ = 8,基元素为:
$$ \{1, \; e_1, e_2, e_3, \; e_{12}, e_{13}, e_{23}, \; e_{123}\} $$
一般多向量可写为:
$$ M = \underbrace{s}_{\text{标量}} + \underbrace{v_1 e_1 + v_2 e_2 + v_3 e_3}_{\text{向量 } \mathbf{v}} + \underbrace{B_{12}e_{12} + B_{13}e_{13} + B_{23}e_{23}}_{\text{双向量 } \mathbf{B}} + \underbrace{t \, e_{123}}_{\text{三向量 } It} $$
这一 分解是唯一的,即任意多向量可唯一表示为各等级分量之和。分量提取算子 ⟨M⟩ₖ 给出 k 级部分,满足 ∑ₖ₌₀³ ⟨M⟩ₖ = M。
4.3 等级提取操作
#### 4.3.1 按grade筛选分量
等级投影算子具有代数性质:⟨AB⟩ₖ 依赖于 A 和 B 的各等级分量的耦合。特别地,标量部分 ⟨AB⟩₀ 定义了 标量积,在无穷维推广中为 Hilbert 空间内积的基础。等级筛选在物理应用中至关重要:电磁场多向量 F = E + IB 中,电场为向量部分,磁场为双向量部分(通过对偶),Maxwell 方程可写为单一多向量方程。
#### 4.3.2 几何意义的分层理解
多向量的分级结构提供了 几何问题的分层处理策略:
| 等级 | 几何对象 | 变换性质 | 物理/应用 |
|---|---|---|---|
| 0(标量) | 度量不变量 | 旋转/反射不变 | 能量、质量、距离平方 |
| 1(向量) | 位置、方向 | 旋转协变,反射变号 | 力、速度、电场 |
| 2(双向量) | 旋转生成元、力矩 | 旋转协变,反射变号 | 角动量、磁场、应力 |
| 3(三向量) | 体积、对偶 | 旋转不变,反射变号 | 质量密度、手性、拓扑 |
---
5. 投影几何代数PGA:GATr核心数学
5.1 从GA到PGA的扩展动机
#### 5.1.1 普通GA的原点限制
标准三维 GA
G(3,0) 存在一个根本性限制:其向量表示的是 "过原点的"有向直线,平面表示的是 "过原点的"平面。这意味着无法直接表示 任意位置的点、任意偏移的平面——所有几何对象必须相对于固定原点定义。在实际应用中(如机器人运动学、计算机辅助设计),原点选择是任意的,而几何关系应与原点无关。齐次坐标提供了部分解决方案,但缺乏代数结构;PGA 则通过引入
退化度量,将齐次坐标嵌入完整的 GA 框架,实现了 "无穷远"的代数化。#### 5.1.2 无穷远方向向量e₀的引入(e₀² = 0)
PGA
G(3,0,1) 通过添加第四个基向量 e₀ 扩展标准 GA,其 度量 signature 为 (3,0,1)——三个正平方(e₁² = e₂² = e₃² = 1),一个 零平方(e₀² = 0)。e₀ 的零范数特性 使其表示 "无穷远方向":有限点与无穷远点的区别仅在于 e₀ 分量的存在与否。这一构造的深刻性在于:
平移——在欧氏空间中与旋转截然不同的操作——在 PGA 中表现为"绕无穷远直线的旋转",从而统一于相同的转子形式。具体而言,平移转子 T = 1 + (1/2)e₀t 的指数形式与旋转转子 R = cos(θ/2) + B sin(θ/2) 结构相似,只是双向量 e₀t 满足 (e₀t)² = 0(幂零),导致指数级数截断为线性项。5.2 PGA的代数结构G(3,0,1)
#### 5.2.1 16维空间(2⁴ = 16)与GATr token维度对应
PGA 的完整多向量空间维度为
2⁴ = 16,这一维度与 GATr 的架构设计 精确对应:| 等级 | 基元素 | 数量 | 几何意义 | GATr 语义 |
|---|---|---|---|---|
| 0 | 1 | 1 | 标量 | 全局特征强度 |
| 1 | e₀, e₁, e₂, e₃ | 4 | 平面(e₀ 为无穷远平面) | 局部坐标平面 |
| 2 | e₀₁, e₀₂, e₀₃, e₁₂, e₁₃, e₂₃ | 6 | 线(理想线 + 有限线) | 边/轴/旋转生成元 |
| 3 | e₀₁₂, e₀₁₃, e₀₂₃, e₁₂₃ | 4 | 点(齐次坐标) | 位置坐标 |
| 4 | e₀₁₂₃ = I | 1 | 伪标量(体积) | 对偶运算辅助 |
5.3 平面基表示的关键约定
#### 5.3.1 平面:向量部分(e₁, e₂, e₃ + e₀)
在平面基约定中,
一般平面 表示为:$$ \pi = n_1 e_1 + n_2 e_2 + n_3 e_3 + d \, e_0 $$
其中
(n₁, n₂, n₃) 为法向量,d 为到原点的有向距离。无穷远平面 为 e₀ 本身。平面的 范数 |π|² = n₁² + n₂² + n₃²(e₀ 的零度量使其不贡献),归一化后法向量为单位向量。两平面
π₁, π₂ 的 几何积 π₁π₂ = π₁·π₂ + π₁∧π₂ 包含丰富信息:标量部分 给出平面夹角的余弦,双向量部分 给出交线(若相交)或平行关系(若 π₁∧π₂ = 0)。这种 "乘法即几何操作" 的特性是 PGA 计算效率的核心来源。#### 5.3.2 点:三向量(三平面交点)
点 作为三平面的交点,在 PGA 中表示为 三向量:$$ P = p_{012}e_{012} + p_{013}e_{013} + p_{023}e_{023} + p_{123}e_{123} $$
归一化条件 为 P ∨ e₀ = −1(使用反变归一化),此时前三个分量给出欧氏坐标 (x, y, z),最后一个分量为 1(齐次坐标的 GA 实现)。原点 对应 e₁₂₃,无穷远点(方向) 的 e₁₂₃ 分量为零。点的 PGA 表示与齐次坐标
(x, y, z, w) 的关系:P = w·e₁₂₃ − x·e₀₂₃ − y·e₀₁₃ − z·e₀₁₂(符号约定因实现而异)。GATr 的embed_point() 函数正是实现这一编码。#### 5.3.3 线:双向量
线 作为两平面的交线,表示为 双向量:$$ L = l_{01}e_{01} + l_{02}e_{02} + l_{03}e_{03} + l_{12}e_{12} + l_{13}e_{13} + l_{23}e_{23} $$
| 分量 | 几何意义 |
|---|---|
| (l₀₁, l₀₂, l₀₃) | 方向向量(理想部分,含 e₀) |
| (l₂₃, −l₁₃, l₁₂) | 矩向量(有限部分,Plücker 坐标) |
5.4 刚体变换的统一表示
#### 5.4.1 旋转:传统转子
PGA 中的
旋转转子 与标准 GA 形式相同:$$ R = \cos\frac{\theta}{2} + \mathbf{B}\sin\frac{\theta}{2} $$
但双向量
B 现在可包含 e₀ 分量,表示 "绕任意直线的旋转"(而非仅过原点直线)。旋转轴直线 L 与转子通过 指数映射 关联:R = e^(Lθ/2),其中 L 需归一化。由于
R 与 e₀ 对易(Re₀ = e₀R),旋转 保持无穷远平面不变——这正是旋转作为"有限点转动"的特征。#### 5.4.2 平移:无穷远旋转形式 1 + (1/2)e₀t
平移 作为"无穷远旋转",其转子为:$$ T = 1 + \frac{1}{2}e_0 \mathbf{t} = e^{e_0 \mathbf{t}/2} $$
其中
t = t₁e₁ + t₂e₂ + t₃e₃ 为平移向量。(e₀t)² = 0 的幂零性使得指数级数截断为线性项。验证平移效果:对于点 P = (1 + e₀r)I₃,$$ TPT^{-1} = \left(1 + \frac{e_0\mathbf{t}}{2}\right)(1 + e_0\mathbf{r})I_3\left(1 - \frac{e_0\mathbf{t}}{2}\right) = (1 + e_0(\mathbf{r}+\mathbf{t}))I_3 $$
即
位置向量增加 t,实现平移。旋转与平移的复合 形成 马达(motor):$$ M = TR = e^{e_0\mathbf{t}/2} e^{\mathbf{B}\theta/2} $$
马达的乘积直接给出
复合刚体运动,其李群结构为 SE(3) 的覆盖群。这一统一表示是 GATr 等变性的代数基础。5.5 几何操作的多向量实现
#### 5.5.1 交点、并集
PGA 中,
相遇(meet)∧ 和 联结(join)∨** 运算通过外积和对偶实现:| 操作 | 公式 | 几何意义 |
|---|---|---|
| 两平面交线 | L = π₁ ∧ π₂ | 双向量 |
| 三平面交点 | P = π₁ ∧ π₂ ∧ π₃ | 三向量 |
| 两点连线 | L = P₁ ∨ P₂ = *(P₁* ∧ P₂*) | 对偶外积再对偶 |
| 点线确定平面 | π = P ∨ L | 对偶运算 |
#### 5.5.2 对偶运算
对偶算子 * 将 k 级多向量映射为 (4−k) 级多向量:
$$ A^* = A I^{-1}, \quad I = e_{0123} $$
| 原对象 | 对偶对象 | 几何关系 |
|---|---|---|
| 点(3级) | 平面(1级) | 点的极平面 |
| 线(2级) | 线(2级) | 自对偶(正交线) |
| 平面(1级) | 点(3级) | 平面的极点 |
---
6. GATr实践应用与开发入门
6.1 Python工具链配置
#### 6.1.1 clifford库安装与基础使用
clifford 是 Python 中最成熟的几何代数库,支持包括 PGA 在内的多种预定义代数:
pip install clifford
库中预定义了 pga 模块,直接对应 G(3,0,1):
from clifford import pga
# 访问基向量
e0, e1, e2, e3 = pga.e0, pga.e1, pga.e2, pga.e3
# 创建多向量:平面 2x + 3y - z + 5 = 0
plane = 2*e1 + 3*e2 - e3 + 5*e0
# 几何运算
line = e1 ^ e2 # 两平面交线(外积)
point = plane ^ line # 平面与线交点
clifford 的 16 个分量顺序 与 GATr 兼容:[scalar, e0, e1, e2, e3, e01, e02, e03, e12, e13, e23, e012, e013, e023, e123, e0123]。库提供完整代数运算:几何积(*)、外积(^)、内积(|)、反向(~)、对偶等。
#### 6.1.2 ganja.js浏览器可视化
ganja.js 是由 Steven De Keninck 开发的 JavaScript 几何代数库,以其 交互式可视化能力 著称。通过 pyganja 可在 Jupyter notebook 中嵌入 3D 图形:
from pyganja import GanjaScene, draw
from clifford.pga import *
# 创建场景
sc = GanjaScene()
sc.add_object(e123, color=0xFF0000, label='origin') # 原点(红色)
sc.add_object(e1, color=0x00FF00, label='x-plane') # x=0 平面(绿色)
sc.add_object(e1^e2, color=0x0000FF, label='z-axis') # z 轴(蓝色)
# 渲染
draw(sc, scale=0.5)
bivector.net/coffeeshop 提供大量可交互示例,涵盖 2D/3D PGA、CGA 等,是直观理解 GA 几何意义的极佳资源。
6.2 GATr代码接口解析
#### 6.2.1 gatr/interface.py核心功能
gatr/interface.py 模块提供 物理对象与多向量表示的转换函数:
| 函数 | 功能 | 输入 | 输出形状 |
|---|---|---|---|
embed_point(positions) | 3D 点 → 三向量 | (…, 3) 张量 | (…, 1, 16) |
embed_vector(vectors) | 方向向量 → 向量 | (…, 3) 张量 | (…, 1, 16) |
embed_scalar(scalars) | 标量 → 标量 | (…, 1) 张量 | (…, 1, 16) |
embed_translation(t) | 平移向量 → 平移转子 | (…, 3) 张量 | (…, 1, 16) |
extract_scalar(mv) | 提取标量分量 | (…, 16) | (…, 1) |
extract_point(mv) | 三向量 → 3D 点 | (…, 16) | (…, 3) |
extract_translation(mv) | 提取平移向量 | (…, 16) | (…, 3) |
#### 6.2.2 embed_point():3D点→16维多向量
embed_point() 的具体实现(简化示意):
from gatr.interface import embed_point
import torch
points = torch.tensor([[1., 0., 0.], # 点 A
[0., 1., 0.]]) # 点 B
mv = embed_point(points) # shape: (2, 1, 16)
# mv[0, 0, :] 的非零分量(GATr 内部约定):
# - index 11 (e_021): -1.0 (x 系数,注意符号)
# - index 12 (e_013): 0.0 (y 系数)
# - index 13 (e_023): 0.0 (z 系数)
# - index 14 (e_123): 1.0 (齐次坐标 w)
即 P = −x·e₀₂₁ − y·e₀₁₃ − z·e₀₂₃ + e₁₂₃,与标准 PGA 约定相差符号,是 GATr 内部实现的选择,不影响等变性。
6.3 GATr架构内部机制
#### 6.3.1 几何积非线性变换层
GATr 的核心创新是将标准 Transformer 的 MLP 层替换为 几何积非线性层:
Y = σ(W₁ X W₂ + b)
其中 W₁, W₂ 为可学习的多向量权重,b 为多向量偏置,σ 为逐分量非线性(如 GELU)。几何积的 双线性特性 使得这一层能够 混合不同等级的分量,同时保持整体的 Pin(3,0,1) 等变性。
与标准 MLP 对比:
| 特性 | 标准 MLP | GATr 几何积 MLP |
|---|---|---|
| 运算 | 矩阵乘法 Y = WX + b | 双线性 Y = W₁XW₂ + b |
| 非线性 | ReLU/GELU 逐元素 | 相同,但保留多向量结构 |
| 等变性 | 需额外约束 | 内建于代数结构 |
| 参数效率 | O(d²) | O(d²),但 d=16 固定 |
| 可解释性 | 低 | 高(等级分量有几何意义) |
标准 Transformer 的注意力:softmax(QKᵀ/√d)V
GATr 的 GA 内积注意力:
$$ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{\langle Q, \tilde{K} \rangle_0}{\sqrt{d}}\right) V $$
其中 ⟨·,·⟩₀ 提取几何积的 标量部分,K̃ 为 K 的反向。这一内积的 E(3) 不变性 保证注意力权重仅依赖于几何对象的 相对关系,而非绝对位置或方向。
关键设计选择:
| 注意力变体 | 内积选择 | 性质 |
|---|---|---|
| 标量内积 ⟨QK̃⟩₀ | 仅 grade-0 | E(3) 不变,GATr 采用 |
| 全内积 Q·K̃ | 所有 grade | 非不变,需额外约束 |
| 等级选择性 ⟨Q⟩ₖ·⟨K⟩ₖ | 特定 grade | 可学习关注特定几何 |
GATr 的 完整等变性 源于各组件的等变性组合:
| 组件 | 等变性机制 |
|---|---|
嵌入层 (embed_point 等) | 按 PGA 规则构造等变表示 |
| 注意力层 | 标量内积保持不变性 |
| MLP 层 | 几何积保持协变性 |
| 归一化层 | 等级选择性,保持结构 |
提取层 (extract_scalar 等) | 将等变输出转换为所需形式 |
6.4 典型应用场景
#### 6.4.1 n体物理模拟
| 模型 | 相对误差 | 训练数据 | 关键优势 |
|---|---|---|---|
| 标准 Transformer | 0.0050 | 100% 基准 | 基线 |
| SE(3)-Transformer | 0.0025 | 100% 基准 | 显式等变 |
| GATr | 0.0005 | 1% | 100× 数据效率 |
#### 6.4.2 血管壁应力预测
- 输入:CT 血管造影,大规模动脉网格(数十万顶点)
- 输出:壁面剪切应力(WSS),心血管疾病关键指标
- 挑战:患者姿态变化、扫描方向不一致
- GATr 优势:等变性确保对姿态变化的鲁棒性,无需重新对齐数据
- 性能:相比标准 Transformer,误差降低 15%(0.089 vs 0.105)
- 任务:抓取规划中的可行运动分布学习
- GATr 应用:马达(motor)插值 产生平滑轨迹,避免奇异点
- 优势:SE(3) 等变性直接处理末端执行器位姿,无需欧拉角/四元数转换
- 效果:规划成功率提升,计算时间减少
7. 进阶学习资源体系
7.1 视频教程
#### 7.1.1 "From Zero to Geo"系列(sudgylacmoe)
YouTube 频道 sudgylacmoe 的 "From Zero to Geo" 系列被公认为 最通俗的几何代数入门视频。该系列从高中代数水平出发,通过可视化动画逐步构建 2D/3D GA、PGA、CGA 的完整图景:
| 视频 | 内容 | 时长 |
|---|---|---|
| "What is Geometric Algebra?" | 动机与 2D GA 基础 | ~20 min |
| "Complex Numbers are Rotors" | 复数与 GA 的对应 | ~15 min |
| "Quaternions are Rotors Too" | 四元数的 GA 解释 | ~20 min |
| "Projective Geometric Algebra" | PGA 的完整引入 | ~30 min |
| "Why Translations are Rotations" | 平移的无穷远旋转解释 | ~15 min |
#### 7.1.2 其他GA视频资源
| 资源 | 作者/机构 | 特点 |
|---|---|---|
| "Geometric Algebra for Computer Science" | Leo Dorst (TU Delft) | 学术严谨,PGA 重点 |
| SIGGRAPH GA courses | Charles Gunn 等 | 图形学应用导向 |
| "Algebraic Geometry" playlist | Mathoma | 数学背景补充 |
7.2 互动学习平台
#### 7.2.1 geometricalgebratutorial.com
该网站提供 交互式 PGA 可视化,核心特色:
- "探索模式":逐步执行几何构造(如"求两平面交线")
- 实时参数调节:拖动滑块观察多向量分量变化
- 对比视图:GA 方法 vs. 传统坐标计算
#### 7.2.2 ObservableHQ可视化项目
| Notebook | 作者 | 内容 |
|---|---|---|
| "Ganja.js Introduction" | Steven De Keninck | 库的基础用法 |
| "PGA4CS Visualized" | Charles Gunn | PGA 的图形学应用 |
| "Robot Kinematics with PGA" | 社区贡献 | 运动学实时模拟 |
| "n-body with GATr" | Qualcomm AI Research | GATr 的可视化解释 |
7.3 经典文献
#### 7.3.1 《Geometric Algebra for Physicists》(Doran & Lasenby)
| 属性 | 内容 |
|---|---|
| 出版社 | Cambridge University Press |
| 页数 | ~600 |
| 难度 | 研究生水平 |
| 核心章节 | 3-5 章(3D GA 与经典力学)、6 章(几何微积分) |
| 获取 | 免费 PDF 广泛流传 |
#### 7.3.2 Leo Dorst的PGA4CS指南
| 属性 | 内容 |
|---|---|
| 标题 | "A Guided Tour to the Plane-Based Geometric Algebra PGA" |
| 版本 | 2.0 (2022) |
| 页数 | ~100 |
| 重点 | 平面基约定、实现细节、与传统方法比较 |
| 配套 | C++/Python 代码 |
- 线模型与 Plücker 坐标
- 马达对数与插值算法
- 与齐次坐标、对偶四元数的比较
| 属性 | 内容 |
|---|---|
| 时长 | 2 天课程 |
| 材料 | 视频、幻灯片、代码(全部公开) |
| 覆盖 | PGA 的渲染管线集成、碰撞检测、动画插值 |
| 特色 | 图形学实际应用导向 |
7.4 前沿研究
#### 7.4.1 GATr原论文(arXiv:2305.18415)
| 属性 | 内容 |
|---|---|
| 标题 | "Geometric Algebra Transformer" |
| 作者 | Johann Brehmer 等 (Qualcomm AI Research) |
| 会议 | NeurIPS 2023 |
| 核心贡献 | PGA + Transformer 的首次大规模结合 |
| 附录 | 完整 PGA 约定说明与实现细节 |
#### 7.4.2 欧氏/投影/共形GA的比较研究
| GA 类型 | 符号 | 维度 | 核心能力 | 典型应用 |
|---|---|---|---|---|
| 欧氏 GA | G(3,0,0) | 8 = 2³ | 过原点几何、旋转 | 经典力学 |
| 投影 GA | G(3,0,1) | 16 = 2⁴ | 任意点/线/面、刚体运动 | GATr、图形学、机器人 |
| 共形 GA | G(4,1,0) | 32 = 2⁵ | 圆/球/角度、共形变换 | 计算机视觉、几何建模 |
#### 7.4.3 共形几何代数CGA的扩展方向
CGA G(4,1) 通过添加两个额外维度(e₊, e₋,满足 e₊² = 1, e₋² = −1),实现了:
- 圆、球面、点对 的统一表示
- 共形变换(包括反演)的线性化
- 角度 的直接余弦公式
| 特性 | PGA | CGA |
|---|---|---|
| 维度 | 16 | 32 |
| 计算开销 | 低 | 高 |
| 圆球表示 | 需扩展 | 原生支持 |
| 角度计算 | 间接 | 直接 |
| 当前应用 | GATr | 研究探索 |
---
结语:几何代数的"瑞士军刀"哲学
几何代数的核心价值在于其 统一性——不是通过抽象化来消除差异,而是通过 揭示深层结构 来整合表面不同的概念。旋转与平移、点与平面、向量与双向量,在 PGA 的框架下都成为同一数学对象的不同表现,如同瑞士军刀的多种工具共享同一刀柄。
GATr 的成功验证了这种统一性在 现代深度学习 中的实用价值:将几何先验内建于架构,而非迫使网络从零学习。这一设计理念超越了具体应用,为 物理启发的机器学习 提供了范式参考。
掌握几何代数后,你将发现:
- 旋转不再是矩阵,而是平面内的自然转动
- 几何不再是坐标,而是代数结构的直接表达
- 对称性不再是约束,而是设计的起点