计算机中的数学Machine Learning & Recommendation & NLP & DL非线性科学 PDEs

首次!应用神经网络达到误差为0的精确解析解!

2019-12-11  本文已影响0人  Neural_PDE

我们生活中的很多现象都可以归纳为一些公式来准确地描述并预测:比如跑步速度与时间和路程的关系v=s/t;又比如经典的受力与质量和加速度的关系F=ma等等。更多复杂的现象都可以被归纳抽象为一个方程,方便我们去描述预测未来:比如麦克斯韦方程组,又比如薛定谔方程等等。

很明显,对于一些复杂现象推导出的微分方程(比如小球按照某个速度行驶一段时间,我们想得到最终的路程,此时可以列出微分方程ds/dt=C,我们无法直接得到所需的结果s,需要运算得到s的显示解s=ct。)通常有两种方式来求解这些复杂的微分方程,进而得到两种结果:1数值近似解(比如t=2,c=2时,通过一些微分方程数值解法可以得到s≈4.001);2显式的精确解析解(s=ct)。

神经网络模型由于其强大的非线性性质和拟合效果,早已被引入到求解片微分方程(一下简称:PDE)中,但由于神经网络模型一直被用以大数据处理,人们倾向于将PDE离散化之后,应用神经网络模型去拟合这些离散后的点,最终得到一个近似的显示方程,从而得到所需的近似解。

进来,Run-Fa Zhang等人发明了双线性神经网络方法可以直接获取原方程的精确解析解。(这意味着误差为0!)

https://doi.org/10.1007/s11071-018-04739-z

下面我们来简单介绍一下这种方法:

第一步:对原方程做一个双线性变换,得到方程(3)。


将(1)转化为双线性方程(3)

第二步:构造(3)中的函数f为一个神经网络模型


最右边输出即为(3)中的函数f
这里作者选择了简单的双层模型
与双层模型所对应的f 表达式

第三步:将构造的模型f带入(3),得到一个复杂的神经网络方程。

第四步:令神经网络方程中关于自变量的系数均为0,得到一个代数方程组,求解之。

第五步:将得到的解(神经网络的权重和阈值的关系)带回到构造的f中,即可得到f。

第六与:通过双线性变换得到原方程的显示解。

最后我们来看一下得到的结果吧。


怪波
怪波

最后附上论文地址:
https://www.researchgate.net/publication/330038582_Bilinear_neural_network_method_to_obtain_the_exact_analytical_solutions_of_nonlinear_partial_differential_equations_and_its_application_to_p-gBKP_equation?_sg=oESL8nM0vj3VclC2RPjgsM-AzRMF7dFFvyiF6WeE36BrXQjPpqjHDLeF6CgyxtorMUDGs0BAomvF-9zgdcgqwCAt66VF80QQQ2Z6SKDb.xoz775ry_RbPpX2ycHYiwWwEtOo6N2FTcB-xlPu-pa3gC0M3FnMDkhjM1nIPdtOgBpAJUWFfWLHG3LBMEWatUQ

上一篇下一篇

猜你喜欢

热点阅读