渗透测试小白入门,整理记录写博客的第二天

前端进阶训练营 (视频认真看源码需实践课件齐)

  返回  

最新的神经网络求解世界上最难的方程比以往更快

2021/7/21 15:09:09 浏览:

两种新的方法使用深度神经网络求解一整类(entire family)偏微分方程,它们使得复杂系统建模更加容易,并且快了几个数量级。

众所周知,偏微分方程PDE,例如控制流体运动行为的方程,很难求解。神经网络也许可以解决。

在高中物理中,我们通过作用在一个具有一定质量的物体上的外力(比如说,重力)这样简单的例子学习牛顿第二运动定律,即作用力等于质量乘以加速度。在时间是唯一自变量的理想情况下,第二定律实际上是一个“常微分方程”, 我们可以求解这个方程来计算物体在任意时刻的位置或速度。

但在更复杂的情况下,随着时间的推移,多个外力作用在一个复杂系统的许多运动部件上。工程师、科学家和数学家们借助可以描述包含多个自变量的复杂现象的“偏微分方程”(Partial Differential Equations,PDEs)来模拟一架划破长空的喷气式客机,一个在地球内部荡漾的地震波,或者一种在人群中传播的疾病,更不用说基本力和粒子之间的相互作用了。

问题是,即便能求解,但在科学和工程中如此重要、无处不在的偏微分方程也是出了名的难求解。近似方法可以被用来求解这些方程,但即使是这样,解决复杂的PDEs也需要数百万个CPU时。从设计更好的火箭发动机到模拟气候变化,随着我们处理的问题变得越来越复杂,我们将需要更好更高效的方法来求解这些方程。

现在,研究人员已经构建了新的人工神经网络,它们近似偏微分方程的解可以比传统的偏微分方程求解器快几个数量级一经训练,新的神经网络不仅可以求解单个偏微分方程,而且无需重新训练就可以求解那一类方程。

为了取得这些结果,科学家们正在将深度神经网络(现代人工智能的主要方法)带入新的领域。通常,神经网络将数据从一个有限维空间(比如,图像的像素值)映射或转换到另一个有限维空间(比如,对图像进行分类的数字,如1表示猫,2表示狗)。但是新的深层网络做的是一些完全不同的事情。瑞士苏黎世联邦理工学院的数学家Siddhartha Mishra说,它们“是在两个无限维空间之间映射”。Mishra并没有设计这些深层网络,但他已经从数学上对它们进行了分析。

毫无疑问,这些技术将加速许多涉及PDEs的模型。加州理工学院的计算机科学家,同时也是开发了这些新方法的其中一个团队的成员的Anima Anandkumar说, “最终,我们的目标是要取代那些非常昂贵、速度非常慢的传统求解器”。

但是新的方法不仅仅是加速这个过程。**对于某些现象,研究人员只有数据,甚至不知道如何提出相关的PDEs来对它们进行建模。**Mishra说,“有很多很多问题,它们的物理机制有点古怪,还没有很好的定义。所以,在那些问题中,你就有点像在闭着眼睛开车”。在这种情况下,几乎可以肯定,这些在数据上训练好的新的神经网络将是解决这些问题的唯一方法。

非常引人注目的方程

PDEs的复杂性使得它们非常有用,又极其难以求解。同时,这也使它们能够模拟各种现象。举例来说,流体在某个物体周围流动的二维透视图,比如在飞机机翼周围移动的空气。建模人员想知道不同时刻流体在空间中任意点处(也被称为流场)的速度和压力。考虑到能量守恒,质量守恒以及动量守恒这些定律,特定的PDEs,即Navier-Stokes方程,可以模拟这种流体流动。求解PDE,你就会得到一个描述该系统某些方面的公式。这里,这个解可能是一个可以让你计算不同时刻流场的公式。

如果你有足够的初始和边界条件信息,比如 t = 0 t=0 t=0时刻以及正在研究的区域边界处的流场值,一些PDEs可以使用数学工具解析求解。但是PDEs往往非常复杂以至于不可能有普适的解析解(universal analytic solutions,译者注:通解一般对应的表达是general solutions)。对于最一般形式的Navier-Stokes方程来说尤其如此:数学家们甚至还没有证明解的唯一存在性,更不用说从解析的角度去寻找它们了。

在这些情况下,建模人员转而采用数值方法。这涉及到将PDE转换成一组易于处理的代数方程,假定这些方程能够保持时间和空间的微小增量。对于我们二维流体流动的例子来说,计算从某些初边值条件开始,逐步沿着x-轴和y-轴徐徐前行,同时计算在这些点处的流体速度和压力。结果是一个(比如说,逐秒进行的)二维的流场图而非一个公式。

在超级计算机上数值求解复杂的PDEs可能需要数月的时间。并且如果你改变了初始或边界条件,或者被研究系统的几何机构(比如机翼设计),你将必须重新开始。而且,你使用的增量越小,或者像研究人员所说的网格越细,那么模型的分辨率就越高,并且数值求解所耗费的时间就越长。

Caltech的地震学家Zachary Ross说,尽管代价高昂,“但对每个科学领域来说,趋势都是通向更高分辨率…以及无止境地追逐在更大的时空域内进行计算。做下一件大事总是一场竞赛。”

神经网络加入了竞争

最近,深度神经网络已经改变了那场竞赛的本质,它提供了无需使用解析或数值方法来求解PDEs的方式。深层网络的基本元素是一个人工神经元,它接受一组输入,将每个输入乘以一个权重,然后将这些结果相加。然后,神经元根据这个总数来确定输出,比方说,如果总和低于某个阈值,输出为0,否则,输出就为总和本身。现代神经网络有一个输入层,一个输出层,以及至少一个“隐藏层”夹在中间。只有一个隐藏层的网络通常被称为“浅层”网络,否则,它们就被称为深度神经网络。

从数学上讲,这样的神经网络的输入是一个向量,即一组数字,输出是另一个向量。如果存在一个将一组输入向量映射到一组输出向量的函数,那么我们就可以训练网络来学习该映射。Mishra说,“神经网络在该空间下是普遍存在的。两个有限维空间之间的任意函数都可以用一个神经网络来逼近。”

2016年,研究人员研究了如何将通常用于图像识别的深度神经网络用来求解PDEs。首先,研究人员生成数据来训练深层网络:一个数值求解器计算了流体在分散于 [公式]-平面的简单物体上流动的速度场,这些物体具有不同大小、不同朝向的各种基本形状(三角形、四边形等等)。这意味着训练数据集由大量的图像组成:编码有关物体几何结构和流体初始条件信息的二维图像作为输入,相应速度场的二维快照作为输出。

布朗大学的George Karniadakis帮助设计了另一种被称为DeepONet的神经网络,它也可以同时快速求解多个PDEs。

有了数据,研究人员就可以训练神经网络来学习那些输入输出之间的关联。训练包括将输入喂给网络,并让它产生某个输出,然后将该输出与期望输出进行比较。接着,算法调整神经元的权重以使产生的输出与期望输出之间的差异最小。不断重复此过程,直到网络能够在某个可接受的误差范围内完全正确地获得输出。网络训练好后,给定一个新的输入,十有八九将产生正确的输出。

例如,当给网络展示新的之前未见过的二维形状,如吉普车,面包车,跑车等,深层网络预测这些汽车周围的速度场。预测结果与那些通过数值求解器独立计算的结果仅有略微不同(约10%),但是网络的计算速度快了几个数量级。

教神经网络如何求解PDEs非常振奋人心,但过去的工作并不太灵活。Anandkumar说,一旦在某个网格大小上进行训练,神经网络就“非常限定于该分辨率”。深层网络已经学会逼近一个将数据从一个有限维空间映射到另一个有限维空间的函数。但通常你需要在一个不同的分辨率下求解PDE,因为你想更精细地观察流场,或者有一组不同的初始和边界条件,而且如果是这样的话,你必须从头开始,重新训练。在每种情况下,深层网络都需要学习近似一个新的函数。

对于那些每天都要与PDEs打交道的研究人员来说,这还不够。

从无限到无限

这就是该项新工作是一个飞跃的原因,现在我们有了不仅可以学习如何近似函数,还可以近似“算子”(operators,将函数映射到函数)的深度神经网络。并且它们似乎没有遭遇到“维数灾难”(curse of dimensionality,它会困扰神经网络以及其它从数据中学习的计算机算法)。例如,如果你想让神经网络的错误率从10%下降到1%,那么所需的训练数据量或网络的大小可能会呈指数级增长,从而使任务变得无法完成。

但在担心这个灾难之前,研究人员必须先弄清楚如何让神经网络学习求解PDEs的算子。布朗大学,且帮助开发了其中一种新方法的George Karniadakis说,“在算子[学习]中,你可以从一个无限维空间进入到另一个无限维空间”。从数学上讲,算子作用于一个函数,并将其变换为另一个函数。例如,考虑一个将函数变换为其导数(如,将 s i n ( x ) sin(x) sin(x)变成 c o s ( x ) cos(x) cos(x)或将 x 3 x^3 x3变成 3 x 2 3x^2 3x2等等)的算子。因为,比如 x可以是任意值,所以输入端和输出端都是无限维的,函数可以是作用于 x的任意变换。

学习近似算子的深层网络可以用来一次求解整个PDEs族,这类PDEs在不同的初始和边界条件以及不同的物理参数条件下模拟相同的现象。这样的PDEs族可以作为输入端的一组函数,相应PDEs(公式)的解可以用输出端的函数来表示。

在这里插入图片描述

2019年10月,Karniadakis及其同事提出了他们称之为DeepONet的网络:一个可以学习这种算子的深度神经网络架构。它基于1995年的工作,当时研究人员证明了一个浅层网络可以近似一个算子。由于涉及神经网络,这种算子被称为神经算子,它是对实际算子的近似。

Karniadakis表示,“我们把该定理推广到了深度神经网络。”

DeepONet与众不同的一点就是它的分叉架构,它在分支(“branch”)和主干(“trunk”)这两个并行网络中处理数据。前者学习近似输入端的多个函数,后者学习近似输出端的多个函数。接着,DeepONet结合这两个网络的输出来学习PDE所需的算子。训练DeepONet需要不停地提供一类PDE的输入-输出数据(使用数值求解器生成),并在每次迭代中调整分支网络和主干网络的权重,直到整个网络尽可能地少犯错误。

因此,DeepONet训练好后就可以学习近似一个算子。它可以在输入端获取表示一个PDE的数据(网络在同一族PDEs上训练),在输出端将其转变成表示该PDE解的数据。比方说,如果你给它100个表示初边值条件和物理参数的新样本(不在训练数据中),以及你想要的流场位置,DeepONet可以在极短时间(fractions of a second)内给出该流场。

因此,DeepONet训练好后就可以学习近似一个算子。它可以在输入端获取表示一个PDE的数据(网络在同一族PDEs上训练),在输出端将其转变成表示该PDE解的数据。比方说,如果你给它100个表示初边值条件和物理参数的新样本(不在训练数据中),以及你想要的流场位置,DeepONet可以在极短时间(fractions of a second)内给出该流场。

但是,尽管DeepONet比数值求解器快得多,但在训练期间它仍然需要进行密集计算。当深层网络需要大量数据进行训练从而使神经算子越来越精确时,这就成问题了。神经算子还能再快点吗?

视角转换

去年,Anandkumar及其在Caltech和普渡大学的同事们构建了一个被称为Fourier神经算子(Fourier neural operator,FNO)的深度神经网络,他们声称这个不同的网络架构更快。他们的网络也是将无限维空间上的函数映射到另一个无限维空间上的函数,并在PDEs上进行了测试。普渡大学的Kamyar Azizzadenesheli表示,“我们选择PDEs是因为PDEs是从函数到函数的直接例子。”

他们的解决方案最核心的就是所谓的Fourier层。总的来说,在将训练数据通过某个神经网络层之前,他们先对其进行Fourier变换;接着,当该层通过一个线性运算处理完数据后,他们再对其进行一个逆Fourier变换,将其转换回原来的形式。(该变换是众所周知的一种数学运算,它将一个连续函数分解成多个正弦函数。)整个神经网络就由几个这样的Fourier层组成。

该过程在计算上比DeepONet简单得多,而且犹如通过在PDE和其它函数之间进行卷积这样复杂的数学运算来求解PDE。但在Fourier域中,卷积涉及一个简单的乘法,相当于将经Fourier变换后的数据通过一层人工神经元(拥有经过训练后学到的精确权重),然后再进行逆Fourier变换。同样,最终的结果也是FNO学习整个PDEs族的算子,将函数映射到函数。

在这里插入图片描述

Mishra说,“这是一个非常简洁的架构。”

它还以相当快的速度给出解。在一个相对简单的需要30000次仿真(涉及到臭名昭著的Navier-Stokes方程的解)的例子中,FNO每次仿真耗时极短(fractions of a second)(假使DeepONet在该问题上进行测试,速度相当),总共耗费了2.5秒;而传统求解器在该情况下将耗费18个小时。

数学意义

两个团队的方法都被证明很成功,但大体上和神经网络一样,目前还太不清楚它们为什么能表现得这么好,以及它们是否能在所有情况下都能表现得这么好。Mishra及其同事现在正致力于对这两种方法进行全面的数学理解。

经过一年的努力,今年2月,在Karniadakis的加入下,Mishra团队对DeepONet架构进行了长达112页的数学分析(译者注:第二版更新为113页,没细看多出的一页在哪里!)。他们证明了这种方法确实是通用的,因为无需对Karniadakis关于深层网络的定理及其在1995年的前身做某些假设,它就可以将输入端的任何一组函数映射到输出端的任何一组函数,不仅仅是PDEs。但是该团队还没有完成他们对FNO进行分析的论文,Mishra表示,尽管该方法很可能普遍适用于PDEs(乍一看,它求解其中某些PDEs可能比DeepONet要高效得多),但它可能并不能很好地学习某些其它类型的算子。

不过,显而易见,这两种方法都将超越过去的传统求解器。而且,对于那些没有确定PDEs的现象来讲,学习神经算子或许是建模此类系统的唯一方式。考虑交通流问题:写出一个精确捕捉交通动力学的PDE几乎是不可能的。但有大量的数据可供学习。Azizzadenesheli说,“不用写出PDEs,在给定数据的情况下,你可以用这个神经算子来学习这个映射。”

当然,这些只是迈向PDEs求解新方法的第一步。 纽约市NASA Goddard太空研究所主任,从事大规模气候模型的Gavin Schmidt说,“这是一项非常有趣且令人印象深刻的工作。”但他担心的是,它如何在像气候模型这样更为混沌的系统中轻松地使用。例如,他提到FNO只是在“不错的”方程上得到了证明,而并没有在像在气候建模中使用的那样困难、复杂的方程上得到证明。

然而,从计算的角度来看,还有更多好消息。Mishra团队已经证明了这些新技术不会遭受维数灾难。他说,当他们在很多例子中分析DeepONet时,“我们实际上证明了这些将打破维数灾难,这非常棒。”初步研究表明,Fourier神经算子也不会遭遇灾难。“该理论很快就要问世了。”

Karniadakis表示,如果神经算子要取代传统的PDE求解器,那么打破这一诅咒至关重要。“(这是)科学机器学习(scientific machine learning)的未来。

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号