神经网络是一种灵活且强大的函数近似方法。而许多应用都需要学习一个相对于某种对称性不变或等变的函数。图像识别便是一个典型示例 —— 当图像发生平移时,情况不会发生变化。等变神经网络(equivariant neural network)可为学习这些不变或等变函数提供一个灵活的框架。
而要研究等变神经网络,可使用表示论(representation theory)这种数学工具。(请注意,「表示」这一数学概念不同于机器学习领域中的「表征」的典型含义。本论文仅使用该术语的数学意义。)
近日,Joel Gibson、Daniel Tubbenhauer 和 Geordie Williamson 三位研究者对等变神经网络进行了探索,并研究了分段线性表示论在其中的作用。
在表示论中,简单表示(simple representation)是指该理论的不可约简的原子。在解决问题时,表示论的一个主要策略是将该问题分解成简单表示,然后分别基于这些基本片段研究该问题。但对等变神经网络而言,这一策略并不奏效:它们的非线性性质允许简单表示之间发生互动,而线性世界无法做到这一点。
但是,该团队又论证表明:将等变神经网络的层分解成简单表示依然能带来好处。然后很自然地,他们又进一步研究了简单表示之间的分段线性映射和分段线性表示论。具体来说,这种分解成简单表示的过程能为神经网络的层构建一个新的基础,这是对傅立叶变换的泛化。
该团队表示:「我们希望这种新基础能为理解和解读等变神经网络提供一个有用的工具。」
该论文证明了什么?
在介绍该论文的主要结果之前,我们先来看一个简单却非平凡的示例。
以一个小型的简单神经网络为例:
其中每个节点都是 ℝ 的一个副本,每个箭头都标记了一个权重 w,并且层之间的每个线性映射的结果都由一个非线性激活函数 ???? 组成,然后再进入下一层。
为了构建等变神经网络,可将 ℝ 和 w 替换成具有更多对称性的更复杂对象。比如可以这样替换:
其可被描述为:
不过,要想在计算机上真正实现这个结构,却根本不可能,但这里先忽略这一点。
现在暂时假设函数是周期性的,周期为 2π。当用傅里叶级数展开神经网络时,我们很自然就会问发生了什么。在傅里叶理论中,卷积算子会在傅里叶基中变成对角。因此,为了理解信号流过上述神经网络的方式,还需要理解激活函数在基频上的工作方式。
一个基本却关键的观察是:????(sin (x)) 的傅里叶级数仅涉及较高共振频率的项:
(这里展示了当 ???? 是 ReLU 时,????(sin (x)) 的前几个傅里叶级数项。)这与我们拨动吉他琴弦时发生的情况非常相似:一个音符具有与所弹奏音符相对应的基频,以及更高的频率(泛音,类似于上面底部的三张图片),它们结合在一起形成了吉他独特的音色。
该团队的研究表明:一般情况下,在等变神经网络中,信息会从更低共振频率流向更高共振频率,但反之则不然:
这对等变神经网络有两个具体影响:
举个例子,如果使用典型的流式示意图(称为交互图 /interaction graph)表示,一个基于(8 阶循环群)构建的等变神经网络是这样的:
其中的节点是 C_8 的简单表示,节点中的值表示生成器的动作。在此图中,「低频」简单表示位于顶部,信息从低频流向高频。这意味着在大型网络中,高频将占据主导地位。
主要贡献
该团队做出了一些重要的理论贡献,主要包括:
等变神经网络和分段线性表示
该团队在论文中首先简要介绍了表示论和神经网络的基础知识,这里受限于篇幅,我们略过不表,详见原论文。我们仅重点介绍有关等变神经网络和分段线性表示的研究成果。
等变神经网络:一个示例
这篇论文的出发点是:学习关于某种对称性的等变映射是有用的。举些例子:
为了解释构建等变神经网络的方式,该团队使用了一个基于卷积神经网络的简单示例,其要处理一张带周期性的图像。
这里,这张周期性图像可表示成一个 n × n 的网格,其中每个点都是一个实数。如果设定 n=10,再将这些实数表示成灰度值,则可得到如下所示的图像:
我们可以在这张图上下左右进行重复,使之具有周期性,也就相当于这张图在一个环面上。令 C_n = ℤ/nℤ 为 n 阶循环群,C^2_n = C_n × C_n。用数学术语来说,一张周期性图像是从群 C^2_n 到 ℝ 的映射的 ℝ 向量空间的一个元素:。在这个周期性图像的模型中,V 是一个「C^2_n 表示」。事实上,给定 (a, b) ∈ C^2_n 和 ???? ∈ V,可通过移动坐标得到一张新的周期性图像:
也就是说,平移周期性图像会得到新的周期性图像,例如:
得到等变神经网络的一个关键观察是:从 V 到 V 的所有线性映射的 ℝ 向量空间的维度为 n^4,而所有 C^2_n 表示线性映射的 ℝ 向量空间的维度为 n^2。
下面来看一个 C^2_n 等变映射。对于,可通过一个卷积型公式得到 C^2_n 等变映射 V → V:
举个例子,如果令 c = 1/4 ((1, 0) + (0, 1) + (−1, 0) + (0, −1))。则 c・???? 是周期性图像且其像素 (a, b) 处的值是其相邻像素 (a+1, b)、(a, b+1)、(a−1, b) 和 (a, b−1) 的值的平均值。用图像表示即为:
更一般地,不同 c 的卷积可对应图像处理中广泛使用的各种映射。
现在,就可以定义这种情况下的 C^2_n 等变神经网络了。其结构如下:
其中每个箭头都是一个卷积。此外,W 通常是 ℝ 或 V。上图是一张卷积神经网络的(经过简化的)图像,而该网络在机器学习领域具有重要地位。对于该网络的构建方式,值得注意的主要概念是:
该团队还指出上图隐式地包含了激活图,而他们最喜欢的选择是 ReLU。这意味着神经网络的组成成分实际上是分段线性映射。因此,为了将上述的第二个主要观察(通过将问题分解成简单表示来简化问题)用于等变神经网络,很自然就需要研究分段线性表示论。
等变神经网络
下面将给出等变神经网络的定义。该定义基于前述示例。
令 G 为一个有限群。Fun (X, ℝ) 是有限群 G 的置换表示(permutation representation)。
定义:等变神经网络是一种神经网络,其每一层都是置换表示的直接和,且所有线性映射都是 G 等变映射。如图所示:
(这里,绿色、蓝色和红色点分别表示输入、隐藏层和输出层,perm 表示一个置换表示,它们并不一定相等。和普通的原始神经网络一样,这里也假设始终会有一个固定的激活函数,其会在每个隐藏层中被逐个应用到分量上。)
最后举个例子,这是一个基于点云的等变神经网络,而点云是指 ℝ^d 中 n 个不可区分的点构成的集合。这里 n 和 d 为自然数。在这种情况下,有限群 G 便为 S_n,即在 n 个字母上的对称群,并且其输入层由 (ℝ^d)^n = (ℝ^n)^d 给定,而我们可以将其看作是 d 个置换模块 Fun ({1, ..., n}, ℝ) 的副本。如果将 Fun ({1, ..., n}, ℝ) 写成 n,则可将典型的等变神经网络表示成:
(这里 d=3 且有 2 层隐藏层。)这里的线性映射应当是 S_n 等变映射,而我们可以基于下述引理很快确定出可能的映射。
引理:对于有限 G 集合 X 和 Y,有其中 Fun_G (X × Y, ℝ) 表示 G 不变函数 X×Y →ℝ。
根据该引理,,并且 G = S_n 有两条由对角及其补集(complement)给出的轨道。因此,存在一个二维的等变映射空间 n→n,并且这与 n 无关。(在机器学习领域,这种形式的 S_n 的等变神经网络也被称为深度网络。)
为了更详细地理解等变神经网络以及相关的分段线性表示论的定义、证明和分析,请参阅原论文。
文章来源于“机器之心”,作者“机器之心”
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI