Geometric Deep Learning (GDL)
几何深度学习(GDL)将网格、图、网格曲面和点云的对称性融入神经网络,统一 CNN、GNN 和 Transformer。
几何深度学习(GDL)是深度学习的一个分支,旨在围绕数据的结构和对称性设计神经网络,无论数据存在于像素网格、图、点集、球面还是曲面上。它的核心思想是:当输入发生不改变其含义的变化时,模型的响应应当是可预测的,例如移动图像、重新标记分子中的原子,或旋转 3D 扫描结果。Michael Bronstein、Joan Bruna、Yann LeCun、Arthur Szlam 和 Pierre Vandergheynst 在 2017 年的综述《几何深度学习:超越欧几里得数据》中推广了这一名称;2021 年,Bronstein、Bruna、Taco Cohen 和 Petar Veličković 编写的原型书将该领域归纳为五个方向:网格、群、图、测地线和规范。
不变性、等变性与 GDL 蓝图#
两个性质发挥了主要作用。如果函数经过某种变换后输出保持不变,那么它对该变换是不变的;例如,猫移动时,图像分类的标签仍应是“猫”。如果输出随输入一起变换,那么它就是等变的;例如,语义分割掩码应随对象移动。GDL 蓝图会堆叠在邻居之间混合信息的等变层、用于缩小定义域的池化步骤,以及在任务需要单一答案时使用的最终不变读出层。选择定义域的对称群,就能得到熟悉的架构:
卷积会在所有像素位置共享同一个卷积核,因此,卷积神经网络(CNN)就是网格上的平移等变情形。图神经网络(GNN)会沿每条边应用同一个函数,因此重新标记节点只会改变输出的排列。Transformer将其词元视为一个全连接图;由于自注意力具有置换等变性,因此需要位置编码来获知词元顺序。GNN 是最知名的 GDL 模型,而 GDL 是能够解释这三种模型的更广泛框架。Taco Cohen 和 Max Welling 于 2016 年提出的群等变 CNN 将权重共享扩展到旋转和反射;网格网络和流形网络则在曲面的局部坐标系中定义卷积。
Ultralytics YOLO26属于网格情形:其卷积会在像素位置之间共享权重,而架构本身未内置的对称性则通过数据增强来学习。默认情况下,训练时每张图像以 fliplr=0.5 的概率水平翻转,而垂直翻转(flipud)和随机旋转(degrees)默认关闭。
图上的消息传递#
GDL 中的图模型基于消息传递构建。每个节点收集邻居发送的消息,使用求和、求均值或求最大值等与顺序无关的函数合并这些消息,然后更新自身的嵌入向量。Google 的 Justin Gilmer 及其同事于 2017 年指出,许多图架构都符合这一消息传递范式,并用它预测了分子的量子化学性质。对一个小图的节点重新标记,可以直接检验这两种对称性:
import torch
torch.manual_seed(0)
nodes = torch.randn(5, 3) # 5 个原子或用户,每个有 3 个特征
adjacency = torch.zeros(5, 5)
edges = torch.tensor([[0, 1], [1, 2], [0, 2], [2, 3], [3, 4]])
adjacency[edges[:, 0], edges[:, 1]] = adjacency[edges[:, 1], edges[:, 0]] = 1
w_self, w_neighbors, w_dense = torch.randn(3, 4), torch.randn(3, 4), torch.randn(15, 4)
# 按随机顺序重新标记节点:图本身不变,只是列出顺序不同
order = torch.randperm(5)
nodes_p, adjacency_p = nodes[order], adjacency[order][:, order]
# 消息传递:每个节点将自身特征与邻居特征之和合并
out = torch.relu(nodes @ w_self + adjacency @ nodes @ w_neighbors)
out_p = torch.relu(nodes_p @ w_self + adjacency_p @ nodes_p @ w_neighbors)
print(torch.allclose(out_p, out[order])) # 等变:输出会随节点重新排列
print(torch.allclose(out_p.sum(dim=0), out.sum(dim=0))) # 不变:图级读出结果保持不变
# 对展平后的节点列表使用全连接层,会把重新标记后的图当成新数据
print(torch.allclose(nodes_p.flatten() @ w_dense, nodes.flatten() @ w_dense))它会打印 True、True 和 False。消息传递层的输出会随节点完全同步重排,图级求和读出结果保持不变,而普通全连接层在节点顺序不同的情况下会对同一个图给出不同答案。PyTorch Geometric将数十种此类层与不同大小图的批处理功能打包在一起。
应用场景#
分子由原子和化学键构成图,因此消息传递网络可以预测溶解度和结合能力等与药物发现相关的性质。蛋白质还包含 3D 几何结构:AlphaFold 2 使用不变点注意力来优化预测结构;无论整个蛋白质在空间中旋转还是平移,结果都保持一致。
LiDAR 扫描和深度传感器会生成点云,也就是无序的 3D 点集合。斯坦福大学的 Charles Qi 及其同事于 2017 年提出 PointNet,对每个点应用同一个共享网络,再通过最大池化合并结果,因此输出不受点的顺序影响。这一设计构成了许多面向自动驾驶汽车和机器人的3D 目标检测系统的基础。用户和商品构成的社交与商业图推动了基于 GNN 的推荐系统,例如 Pinterest 的 PinSage;知识图谱则将相同的消息传递机制应用于实体及其关系。
天气模型运行在球面上。Google DeepMind 于 2023 年在《科学》杂志发表了 GraphCast。它通过一张围绕地球不断细分二十面体而构建的多尺度网格传递消息,能以 0.25° 的分辨率预测未来 10 天的数百个变量,耗时不到一分钟;在 1,380 个验证目标中的 90% 上,其表现超过了领先的业务确定性预报系统 ECMWF 的 HRES。










