首次!应用神经网络达到误差为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!)
下面我们来简单介绍一下这种方法:
第一步:对原方程做一个双线性变换,得到方程(3)。
将(1)转化为双线性方程(3)
第二步:构造(3)中的函数f为一个神经网络模型
最右边输出即为(3)中的函数f
这里作者选择了简单的双层模型
与双层模型所对应的f 表达式
第三步:将构造的模型f带入(3),得到一个复杂的神经网络方程。
第四步:令神经网络方程中关于自变量的系数均为0,得到一个代数方程组,求解之。
第五步:将得到的解(神经网络的权重和阈值的关系)带回到构造的f中,即可得到f。
第六与:通过双线性变换得到原方程的显示解。
最后我们来看一下得到的结果吧。
怪波
怪波