ICML 立场文用范畴论把等变约束和 RNN 写成同一套代数

Position: Categorical Deep Learning is an Algebraic Theory of All Architectures

Bruno Gavranović, Paul Lessard, Andrew Dudzik, Tamara von Glehn, João G. M. Araújo, Petar Veličković

ICML 2024

cs.LG, cs.AI, math.CT, math.RA, stat.ML

2024-02-23

Symbolica 与 DeepMind 的 ICML 立场文主张:取值在参数映射 2-范畴里的 monad 代数,同时覆盖几何深度学习的等变约束和 RNN 这类实现。

这篇在解决什么

深度学习缺一张能同时说清「模型必须满足什么约束」和「前向/反向具体怎么算」的图纸。自上而下这一路,几何深度学习(GDL)用群和表示论写等变层,卷积是平移等变的解,消息传递和自注意力是图上的置换等变。它管不好不可逆操作:最短路收缩这类算法对齐,目标本身就会把数据折掉,群作用不够用。自下而上这一路是 PyTorch、JAX 这类自动微分:把网络当纯函数,形状检查和反向传播很强,从实现反推它到底满足哪条语义约束仍然难。

ICML 2024 这篇立场文来自 Symbolica AI 和 Google DeepMind(Petar Veličković 等)。主张是:要一张统摄架构的图纸,必须把这两路桥起来,而且桥的材料该来自计算机科学。群论加函数式编程的共同推广是范畴论。更具体:取值在参数映射 2-范畴里的 monad 的泛代数。

方法

先把 GDL 收进 monad 代数。群 G 给出集合范畴上的群作用 monad G×−。它的代数就是群作用,代数同态就是等变映射 f(g ▹ x)=g ▹ f(x)。平移、旋转、置换都落在这个模板里,卷积、GNN、球面 CNN、G-CNN 作为特例被重新导出。等变是 monad 代数同态在群作用这个特例上的名字。

再丢掉群公理,改看任意自函子的(余)代数。列表是 1+A×− 的代数,二叉树是 A+(−)² 的代数,Mealy 机是 (I→O×−) 的余代数。代数同态必然是 fold,余代数同态必然是 unfold。列表上的两条方程 fr(Nil)=r₀、fr(Cons(h,t))=r₁(h, fr(t)) 就是「广义等变」,只是拼接不是可逆群作用。这套东西对上折叠 RNN、递归网络和完整 RNN。

要把权重和非线性放进同一套语言,需要 2-范畴 Para:对象仍是集合,1-态射是带参数的映射 (P, f: P×A→B),顺序复合把参数空间并排放。2-态射是重参数化,拷贝映射 ΔP: P→P×P 就是权重共享。作者的核心句子:RNN、递归网这类结构,是由参数自函子生成的自由参数 monad 上的 lax 代数。lax 单元在这条构造里是 comonoid,向量可复制、可删除,权重绑定是这件代数事实的工程面孔。

结果

没有准确率表,证据是推导。GDL 的等变约束被写成群作用 monad 的代数同态;列表 / 树 / 自动机被写成自函子(余)代数;折叠 RNN、展开 RNN、递归网、完整 RNN 和 Moore 机 RNN 被画成 Para 里的参数(余)代数(文中 Figure 1)。权重共享不再是实现细节,而是 2-态射。异步网络用过的 1-cocycle 也被说成 lax 代数同态能表达的对象。

对照基线是概念覆盖面,不是 GLUE 分数。GDL 管对称,管不了不可逆算法对齐;张量程序管实现,管不了从语法推语义。这篇把两头写成同一套(2-)代数。

为什么重要

给「权重共享算不算对」这类问题一个可检验的判据,而不是靠读代码看两个 Linear 是不是同一个 nn.Parameter。GDL 卡在单层线性等变,非线性通常外包给逐点激活;Para 里的态射本来就是参数映射,分析对象可以跨多层。对做等变模型和结构化网络的人,这是一张把约束和实现写在同一页上的词典。

它是立场加重构,不是新架构发论文。读完不会多一个开箱可用的层。作者把可验证逻辑、只学良类型函数、用范畴逻辑做公平性,都放在「新地平线」里,这些是研究方向,不是结果。

局限与存疑

2-范畴、lax 代数、代数自由 monad,对目标读者里的大多数从业者过重,而文中用来「证明立场」的例子(CNN、GNN、RNN)GDL 和函数式编程本来就会。Para 本身来自 Cruttwell 等人 2022 年对梯度学习的范畴图,这篇是把它推到架构约束,不是从零发明 2-范畴。没有实验表明按这套图纸设计的新网络在任何基准上更好。公平性和「可验证论证」两段是愿望清单,没有构造。选择哪个范畴,等价于 GDL 里选择哪个群,选错了约束就写空。线性等变层仍要落到 Vect 里才能得到权重共享的矩阵约束,非线性部分的「理论」在正文里仍是纲领。

术语

原文与代码

社区讨论

相关论文

全部论文解读