Press "Enter" to skip to content

如何构造天然满足某些约束的神经网络

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

[email protected]华中师范大学

 

之前看到一篇文章,觉得非常重要,一直没看到中文 AI 媒体报道,这里用最简短的文字介绍一下。文章题目为 “Linearly Constrained Neural Networks ”【参考文献1】。

 

AI for Science 领域的人意识到既然神经网络有“万能表示”能力,就可以用它表示任意的参数化的函数 , 这个函数可以是偏微分方程、常微分方程的解,也可以是薛定谔方程、量子多体问题的变分波函数。求解微分方程,求解多体量子系统基态能量和波函数的任务全部转化为深度神经网络的优化问题。

 

但是,物理系统的变分函数很多时候需要满足特定约束。比如,多费米子系统的波函数,要满足交换反对称,即 。 DeepWF 以及谷歌的 FermiNet 等通过特定的神经网络架构构造方法,实现了这个目标。用最通俗的话讲,可以定义

 

 

其中 是子神经网络 的所有可训练参数的集合。 是子神经网络的输入。通过类似 Slater Determinant 的构造方法,使得“裸”神经网络的输出经过变换满足交换反对称。

 

有人问,如何让子神经网络 依赖输入特征的顺序? 其实,一般的神经网络,其输出天生依赖于输入数据的顺序,改变 的顺序,就像把身高的特征换成体重,体重的特征换成身高。只有某些特殊的神经网络,比如点云神经网络,才会加入重排不变性,使得输出不依赖输入特征的顺序。

 

之前还介绍过“拉格朗日神经网络”,将力学系统里的拉格朗日公式直接嵌入到神经网络中。但这些网络的构造方法都针对于特定任务,今天介绍的这篇 “线性约束的神经网络”,相当于对这些嵌入物理约束的方法做了一个总结,提出了针对线性约束的一套通用的方法。

 

这篇文章使用的例子是计算电磁学问题,如何用神经网络表示无源 或者无旋的场 ? 比如对于磁场 , 天然无源,散度为 0 (divergence-free), , 如何构造神经网络 ,其输入为 (x, y, z), 输出为 ( ), 且输出对输入的自动微分满足散度为 0 条件?

 

一个没有任何约束的神经网络,其输出 自然不满足散度为 0 。

 

但我们知道,一个标量势(scalar potential)的梯度是无旋的,而一个矢量势(vector potential) 的旋度是无源的。

 

如果想构造无旋场, 可以用神经网络近似一个标量势。即输入是 3 维坐标,输出只有一个实数 的神经网络。使用自动微分,计算出

 

 

无旋。

 

如果想构造无源场, 可以用神经网络生成一个矢量势。即输入是 3 维坐标,输出是三个实数 的神经网络。做一个线性变换,

 

其中,

 

无源。

 

对于一般的线性约束,只要找到特定的线性映射矩阵 , 将它作用在“裸”的神经网络输出上,使其输出满足约束即可。

 

线性约束可以写为微分算子行向量 作用在 上的形式,即只要

 

 

因为 , 那幺必然有 , 即可解出 G 映射矩阵。

 

文章中将 G 写为 的形式,其中 是个实值矩阵, 是算符列向量。

 

举例: 如果约束方程是 , 则约束向量 , 算符列向量 , 投影矩阵 G 满足,

 

 

要求上面式子等于 0,可以设

 

从而得到投影矩阵

总结:

 

计算机视觉和自然语言处理领域需要的神经网络很多时候没有任何的先验约束,只要大量的喂数据,根据贝叶斯公式,最终的后验概率会慢慢收敛到一个与先验无关的结果。但是在 AI for science 领域,神经网络表示的函数或场可能需要天然满足某些约束,使用大量数据,神经网络也能慢慢学到这些约束,但更经济的做法是直接将这些约束内嵌到神经网络的架构中,使其天然满足这些约束。这样,神经网络需要的训练数据会大量减少,而且内嵌的先验知识为强约束,无论神经网络参数如何变化,这些约束天然满足。这个应该是 AI for science 领域发展的重要方向。

 

参考文献:

 

Linearly Constrained Neural Networks

 

mfinzi/constrained-hamiltonian-neural-networks

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注