几何深度学习统一框架:用对称性统领 CNN、Transformer 与 GNN(maths-cs-ai-compendium 第 12 章精读)
2026/9/16 20:55:46 网站建设 项目流程

几何深度学习统一框架:用对称性统领 CNN、Transformer 与 GNN(maths-cs-ai-compendium 第 12 章精读)

【免费下载链接】maths-cs-ai-compendiumBecome a cracked AI/ML researcher/engineer with this unconventional textbook covering maths, computing, and ML with intuition.项目地址: https://gitcode.com/GitHub_Trending/mat/maths-cs-ai-compendium

导读

几何深度学习(Geometric Deep Learning)是近年来深度学习领域最重要的理论统一视角:它揭示出 CNN、Transformer、GNN 这些看似风马牛不相及的架构,本质上是同一个原则的不同实例——让网络尊重数据的对称性。本篇技术指南基于 maths-cs-ai-compendium 仓库chapter 12 - graph neural networks开篇文档,系统讲解群论基础、不变性/等变性的形式化定义、五大几何域分类以及尺度分离与粗化的层次化设计,并附上三组可直接运行的 JAX 实验代码。读完本文,你将掌握"从数据对称性出发设计架构"的分析框架,并能在仓库后续的图论、GNN、图注意力等文件中将其落地为具体实现。

统一视角:所有架构共享的对称性原理

回顾整本教材已经学过的架构:用于图像的 CNN(chapter 08)、用于语言的 Transformer(chapter 07)、用于序列决策的强化学习策略(chapter 06)。它们看起来是完全不同的模型,为完全不同的问题而设计,但背后存在一个更深的模式:

  • CNN利用图像中的平移对称性;
  • Transformer利用序列中的置换对称性(注意力本身不依赖绝对位置);
  • GNN利用图中的节点置换对称性。

一旦看清这一点,原本纷繁的"架构动物园"就收敛为一个自洽的统一框架。对称性告诉模型"什么不重要"——而知道什么不重要,对学习而言是极其强大的先验知识。本篇文档正是这一框架的数学基石,仓库中 02. graph theory.md、03. graph neural networks.md、04. graph attention networks.md、05. 3d graph networks.md 四份文件都是这一原理在图数据上的具体展开。

对称性与群:把"什么不重要"形式化

一个物体的**对称性(symmetry)**是指能使其保持不变的一个变换。正方形有 8 个对称:4 个旋转(0°、90°、180°、270°)和 4 个反射;圆有无限多个对称:绕圆心的任意旋转。在机器学习语境下:如果某个任务具有对称性,那么无论模型看到输入的哪个"版本",都应给出相同的答案——猫检测器无论猫在图像的左上角还是右下角都应当识别出猫,这就是平移对称性。

群的四条公理

对称性需要被严格形式化,其数学载体就是群(group)。一个群 $G$ 是满足以下四条性质的变换集合:

公理含义例子(旋转 90°)
封闭性(Closure)两个变换复合后仍在集合内旋转 90° 再旋转 90° 得 180°,仍属于该集合
结合律(Associativity)$(g_1 \circ g_2) \circ g_3 = g_1 \circ (g_2 \circ g_3)$,复合顺序无关等价于第 2 章矩阵乘法的结合律
单位元(Identity)存在"什么都不做"的变换 $e$,满足 $e \circ g = g \circ e = g$旋转 0°
逆元(Inverse)每个变换都有"撤销"操作:$g \circ g^{-1} = e$旋转 90° 的逆是旋转 270°(-90°)

这些公理与第 1 章向量空间的公理如出一辙,只不过对象从"向量"换成了"变换"。两者之间的联系是深刻的:群作用于向量空间,而这种作用正是神经网络必须尊重的结构约束。

深度学习中的关键群

定义在深度学习中的角色
平移群$(\mathbb{R}^n, +)$平移图像或信号CNN 所利用的对称性
对称群$S_n$$n$ 个元素的全部置换GNN 与 Transformer 所利用的对称性(重排节点/词元不应改变结果)
旋转群$SO(n)$$n$ 维空间中的所有旋转$SO(2)$ 为平面旋转,$SO(3)$ 为三维旋转(对分子与 3D 视觉任务至关重要)
欧氏群$E(n)$所有旋转、反射与平移物理空间的对称性
特殊欧氏群$SE(n)$旋转与平移(不含反射)刚体运动的对称性

群作用:群如何变换数据

**群作用(group action)**描述群如何作用于数据。若 $G$ 是群、$X$ 是数据空间,则作用 $\rho: G \times X \to X$ 将每个群元素 $g$ 与数据点 $x$ 映射为变换后的点 $\rho(g, x)$。对图像而言,平移群通过移动像素坐标起作用;对图而言,对称群通过重新标记节点起作用。群作用是把抽象代数与具体数据连接起来的桥梁,也是后续所有等变架构形式化定义的基础。

不变性与等变性:网络如何尊重对称性

给定一个对称群,函数与它的关系有两种重要模式。

不变性(Invariance)

函数 $f$ 对群 $G$不变,当且仅当输入被变换后输出不变:

$$f(\rho(g, x)) = f(x) \quad \text{for all } g \in G$$

例如:图像整体亮度不因平移而改变;图像分类应当是平移不变的——"猫"这个类别不取决于猫在画面中的位置。

等变性(Equivariance)

函数 $f$ 对群 $G$等变,当且仅当变换输入会以对应方式变换输出:

$$f(\rho_{\text{in}}(g, x)) = \rho_{\text{out}}(g, f(x)) \quad \text{for all } g \in G$$

例如:把图像向右平移 5 像素,CNN 中的特征图也相应向右平移 5 像素。卷积运算是平移等变的:它保持空间关系。目标检测应当是等变的:猫移动时,边界框也要跟着移动。

中间层等变、最终输出不变

这两者的区分至关重要:中间层通常应当保持等变(为下游层保留结构信息),而最终输出应当不变(答案不应依赖于输入的具体变换形式)。CNN 正是通过堆叠等变的卷积层、再在末端施加全局池化(一种不变操作)来同时满足这两个要求的。

为什么要把等变性"内建"进架构

把等变性内建进架构,远比让网络从数据中学习它高效。一个带权值共享的平移等变 CNN,所需参数远少于一个必须独立学习"位于 (10,10) 的猫"和"位于 (200,150) 的猫"的全连接网络。对称性约束把假设空间指数级地缩小了——这正是深度学习"先验即效率"的最直接体现。

五大几何域:一张地图装下所有数据

几何深度学习识别出五种基础数据域(five geometric domains),每种数据域都有自己的对称群。每一种神经网络架构都可以被理解为利用了其中某个域的对称性。

  1. 网格(Grids,欧氏数据):图像、音频频谱图、体素数据。底层结构是规则网格,具有平移对称性,对应群为平移群(可能再加上旋转与反射)。利用该对称性的架构是CNN:卷积正是对平移等变的那一个操作,跨空间位置的权值共享就是平移等变的具象化。

  2. 集合(Sets,无序集合):点云、粒子系统。其对称性是置换不变性:元素的顺序无关紧要。对应架构是DeepSets(以及第 8 章的 PointNet):对每个元素施加共享函数,再用置换不变的操作(sum、mean 或 max)聚合。形式化地写为 $f({x_1, \ldots, x_n}) = \phi\left(\sum_i \psi(x_i)\right)$。

  3. 序列(Sequences,有序数据):文本、时间序列。序列是 1D 网格,但对称性更微妙:绝对位置可能重要也可能不重要。RNN 自回归地处理序列;带位置编码的 Transformer 可以关注任意位置,而其自注意力在加入位置编码之前是置换等变的。这就是 Transformer 泛化能力强的深层原因:它从置换等变出发,只补充了恰好够用的位置结构。

  4. 图(Graphs,关系数据):社交网络、分子、知识图谱。对称性是节点的置换:重新标记节点不应改变图的属性。对应架构是GNN:在相连节点间进行消息传递,使用不依赖节点顺序的共享函数。这是本章剩余文件的核心焦点。

  5. 流形与网格面片(Manifolds and meshes):曲面、3D 形状。对称性包含微分同胚(平滑变形)。对应架构使用内蕴算子(如 Laplace-Beltrami),它们由曲面自身的几何定义,与曲面在空间中的嵌入方式无关。这连接了微分几何,适用于形状分析、球面上的气候建模以及蛋白质表面分析。

统一的力量

这个框架的力量在于统一:CNN 是定义在网格图上的 GNNTransformer 是定义在全连接图上的 GNNDeepSets 是没有边的 GNN。把这些看成同一原则的不同实例,可以指导新架构的设计流程:识别你数据的对称性,然后构建一个尊重它的网络。这一脉络在仓库后续文件中得到完整兑现——02. graph theory.md 提供图的语言(邻接矩阵、拉普拉斯算子),03. graph neural networks.md 给出消息传递的通用框架(GCN、GraphSAGE、GIN),04. graph attention networks.md 将注意力机制引入图,而 05. 3d graph networks.md 则把等变性的要求推到 $SE(3)$ 等三维群上。

尺度分离与粗化:从局部到全局的层次化抽象

真实世界的数据在多个尺度上同时具有结构。一幅图像有细粒度纹理(像素级)、局部模式(边缘、角点)、物体部件(车轮、窗户)以及全局结构(整个场景);一个分子有原子级特征、官能团以及整体的分子形状。

尺度分离(scale separation)原则指出:这些细节层次可以被分层处理——先捕获局部结构,再逐步聚合成更粗的表示,这个过程就是粗化(coarsening)池化(pooling)

  • 在 CNN 中,池化层(max pooling、average pooling)降低空间分辨率,迫使高层捕获更大尺度的模式。用第 8 章感受野的视角看,越深的层"看到"的图像范围越大——这就是尺度分离在起作用。
  • 在图中,粗化意味着把节点分组聚类成"超级节点",得到一个保留本质结构的更小图,即图池化(graph pooling),具体实现在 03. graph neural networks.md 的 Graph Pooling 一节(DiffPool 可微聚类、TopKPool 硬选择等)。这与图像池化的类比是直接的:降低分辨率的同时保留重要特征。
  • 在序列中,层次化处理(句子 → 段落 → 文档)在不同时间/语义尺度上捕获结构;第 8 章的 Swin Transformer 通过移动窗口层级将这一思想应用到图像上。

数学上,粗化定义了一个越来越抽象的表示层级

$$x \xrightarrow{\text{local features}} h^{(1)} \xrightarrow{\text{coarsen}} h^{(2)} \xrightarrow{\text{coarsen}} \cdots \xrightarrow{\text{global}} y$$

在每一层,表示对该层的对称群保持等变;最终的全局表示则是不变的——它在不受无关变换干扰的前提下抓住了输入的实质。这个层级正是深层网络优于浅层网络的结构化数据上的原因:每一层增加一级抽象,许多等变层的复合,就能从简单的局部特征构建出复杂的不变特征。

动手验证:三组 JAX 实验

文档提供了三组用 JAX 编写的动手实验,分别验证卷积的平移等变性、DeepSets 聚合的置换不变性,以及旋转矩阵的群结构。三组实验都可在 Colab 或 Jupyter notebook 中直接运行,建议结合 javascripts/mathjax.js 渲染的公式环境边看边跑。

实验 1:验证卷积的平移等变性

核心思想:先对信号做卷积再平移,与先平移再卷积,结果应当一致。这直接检验"卷积是平移等变的"这一断言:

import jax import jax.numpy as jnp # 1D signal and a simple filter signal = jnp.array([0, 0, 0, 1, 2, 3, 2, 1, 0, 0, 0], dtype=float) kernel = jnp.array([1, 0, -1], dtype=float) # Convolve then shift conv_result = jnp.convolve(signal, kernel, mode="same") shifted_signal = jnp.roll(signal, 3) conv_shifted = jnp.convolve(shifted_signal, kernel, mode="same") shifted_conv = jnp.roll(conv_result, 3) print(f"Conv then shift: {shifted_conv}") print(f"Shift then conv: {conv_shifted}") print(f"Equivariant: {jnp.allclose(shifted_conv, conv_shifted, atol=1e-5)}")

这里jnp.convolve(..., mode="same")保持输出与输入等长,jnp.roll实现循环平移。若输出Equivariant: True,则验证了平移与卷积两种运算可交换——这正是 CNN 权重共享能够成立、且特征图随输入一起平移的数学根源。

实验 2:验证 DeepSets 聚合的置换不变性

对集合施加共享函数后求和,输出不应随元素顺序变化:

import jax import jax.numpy as jnp # A "set" of 4 vectors (order should not matter) x = jnp.array([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0], [7.0, 8.0]]) # Simple shared function: element-wise square psi = lambda v: v ** 2 # Aggregate by sum def deepsets(points): return jnp.sum(jax.vmap(psi)(points), axis=0) # Original order result1 = deepsets(x) # Permuted order perm = jnp.array([2, 0, 3, 1]) result2 = deepsets(x[perm]) print(f"Original order: {result1}") print(f"Permuted order: {result2}") print(f"Invariant: {jnp.allclose(result1, result2)}")

jax.vmap将共享函数 $\psi$ 逐行映射到每个元素上,jnp.sum(..., axis=0)完成置换不变的聚合。这直接对应文档中的形式化公式 $f({x_1, \ldots, x_n}) = \phi\left(\sum_i \psi(x_i)\right)$,也解释了为何求和(而非拼接)是构造置换不变网络的关键操作——这个思想随后在图池化的 readout 中再次出现(见 03. graph neural networks.md)。

实验 3:验证 2D 旋转矩阵构成群

逐一检查群的四条公理——封闭性、结合律、单位元、逆元:

import jax.numpy as jnp def rot2d(theta): return jnp.array([[jnp.cos(theta), -jnp.sin(theta)], [jnp.sin(theta), jnp.cos(theta)]]) R1 = rot2d(jnp.pi / 6) R2 = rot2d(jnp.pi / 4) R3 = rot2d(jnp.pi / 3) # Closure: product of two rotations is a rotation R12 = R1 @ R2 print(f"Closure (det=1, orthogonal): det={jnp.linalg.det(R12):.4f}, " f"R^T R = I: {jnp.allclose(R12.T @ R12, jnp.eye(2), atol=1e-5)}") # Associativity print(f"Associative: {jnp.allclose((R1 @ R2) @ R3, R1 @ (R2 @ R3), atol=1e-5)}") # Identity I = rot2d(0.0) print(f"Identity: {jnp.allclose(R1 @ I, R1, atol=1e-5)}") # Inverse R1_inv = rot2d(-jnp.pi / 6) print(f"Inverse: {jnp.allclose(R1 @ R1_inv, jnp.eye(2), atol=1e-5)}")

封闭性通过"两个旋转之积仍是正交阵且行列式为 1"来检验(对应 $SO(2)$ 的定义);结合律、单位元、逆元则逐一用jnp.allclose数值验证。理解旋转矩阵何以成群,是后续理解 $SO(3)$ 等变网络(05. 3d graph networks.md)的前提——那些网络正是把"网络在旋转下行为可预测"这一要求,从矩阵层面直接内建到消息传递的每一层中。

在仓库中如何查阅与复现本章

  • 阅读路径:本文对应的原文档位于 chapter 12 - graph neural networks/01. geometric deep learning.md,是仓库目录结构(见 mkdocs.yml 中第 12 章的导航配置)的第一个文件,与后续四份文件构成完整的学习序列。
  • 运行环境:仓库通过 mkdocs.yml 配置了 MathJax(pymdownx.arithmatex)与 javascripts/pyodide-runner.js 代码运行器,可直接在浏览器端渲染公式并执行 Python 代码;本文三组实验代码基于 JAX,在本地或 Colab 安装jaxjax.numpy后即可运行。
  • Agent 化检索:仓库附带 MCP Server(入口 mcp/src/index.ts),它解析llms.txt并建立章节结构索引,让 Claude Code、Cursor、VS Code 等 AI 助手可以将整个教材作为知识库按需查询——即你可以让 Agent 依据本文内容定位到仓库中任意一个公式或代码的出处,再自行深入阅读对应文件。

小结

几何深度学习给出的行动纲领非常清晰:识别数据的对称群 → 让中间层等变、最终输出不变 → 用尺度分离逐层粗化。这个框架把 CNN、DeepSets、Transformer、GNN 统一在同一条原理之下,也为设计新架构提供了可复用的方法论。带着这套视角继续阅读 02. graph theory.md 时,你会看到邻接矩阵、度矩阵、图拉普拉斯正是"置换群作用"的矩阵语言;进入 03. graph neural networks.md 后,GCN、GraphSAGE、GIN 等架构的每一步设计,都可以回溯到本文件确立的等变性与聚合不变性要求上。

【免费下载链接】maths-cs-ai-compendiumBecome a cracked AI/ML researcher/engineer with this unconventional textbook covering maths, computing, and ML with intuition.项目地址: https://gitcode.com/GitHub_Trending/mat/maths-cs-ai-compendium

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询