这篇文章介绍一种用来拟合多精度数据的神经网络。 在科学计算中,低精度的数据往往是廉价的、大量的;高精度数据则不同,他们是昂贵的、少量的,所以如何充分利用不同精度的数据来得到更加 precise 的结果便是一个需要解决的问题。这里我们利用神经网络给出了一个回答。
基本思想
想法很简单。假定 { x i , y i } i = 1 N l \{x_i,y_i\}_{i=1}^{N_l} {xi,yi}i=1Nl 是我们有的低精度数据,其中 x i x_i xi 是输入变量, y i y_i yi 是预测变量; { x i , y i } i = N l + 1 N l + N h \{x_i,y_i\}_{i=N_l+1}^{N_l+N_h} {xi,yi}i=Nl+1Nl+Nh 是高精度数据。 一般情况下, N l > N h N_l>N_h Nl>Nh, 在一些paper 中,它的取值可能是3 倍,5倍或者更多。
利用神经网络与监督学习的想法,主要有以下几个步骤:

  • 给定低精度数据 { x i , y i } i = 1 N l \{x_i,y_i\}_{i=1}^{N_l} {xi,yi}i=1Nl, 我们可以训练一个低精度的神经网络, 记作 N N l f \mathcal{NN}_{lf} NNlf;
  • 同样,给定高精度的数据 { x i , y i } i = N l + 1 N l + N h \{x_i,y_i\}_{i=N_l+1}^{N_l+N_h} {xi,yi}i=Nl+1Nl+Nh, 我们同样得到了一个神经网络,记作 N N h f \mathcal{NN}_{hf} NNhf
  • 问题在于由于我们的高精度数据比较少,所以我们得到的 N N h f \mathcal{NN}_{hf} NNhf 是不准确的。一个简单的想法便是利用低精度的数据。
    给定 { x i } i = N l + 1 N h + N l \{x_i\}_{i=N_l+1}^{N_h+N_l} {xi}i=Nl+1Nh+Nl, 我们令 z i = N N l f ( x i ) z_i=\mathcal{NN}_{lf}(x_i) zi=NNlf(xi), 即 z i z_i zi 是预测得到的低精度数据。 我们将 { x i , z i } i = 1 N l + 1 N l + N h \{x_i,z_i\}_{i=1N_l+1}^{N_l+N_h} {xi,zi}i=1Nl+1Nl+Nh 作为输入变量, { y i } i = N l + 1 N l + N h \{y_i\}_{i=N_l+1}^{N_l+N_h} {yi}i=Nl+1Nl+Nh 作为标签值可以训练一个新的神经网络 N N l f → h f ( x i , N N l f ( x i ) ) \mathcal{NN}_{lf\to hf}(x_i,\mathcal{NN}_{lf}(x_i)) NNlfhf(xi,NNlf(xi)), 用来将低精度的数据转化为高精度数据
    N N l f → h f \mathcal{NN}_{lf\to hf} NNlfhf 应用在 { x i } i = 1 N l + N h \{x_i\}_{i=1}^{N_l+N_h} {xi}i=1Nl+Nh, 我们便得到了所有输入点上的高精度值。

数值实验

我们考虑一个函数逼近的问题:
在这里插入图片描述
上图中 q l f q_{lf} qlf 代表低频数据, q h f q_{hf} qhf 代表高频数据, 其中 A = 0.5 , B = 10 , C = − 5. A=0.5, B=10, C=-5. A=0.5,B=10,C=5.
数值结果如下:
在这里插入图片描述
第二个例子仍是函数逼近,
在这里插入图片描述
其结果为
在这里插入图片描述
第三个例子函数逼近:
在这里插入图片描述
结果为:
在这里插入图片描述
最后我们举一个解ODE的例子:
在这里插入图片描述
精确解为:
在这里插入图片描述
我们已知的数据为:
在这里插入图片描述
最后的结果为:
在这里插入图片描述

数值实验的GitHub代码链接为:
https://github.com/xdfeng7370/Multi-fidelity-neural-network-

参考文献

【1】 Xuhui Meng and George Em Karniadakis. A composite neural network that learns from multi- fidelity data: Application to function approximation and inverse pde problems. Journal of Computational Physics, 2019.
【2】 Mohammad Motamed. A multi-fi delity neural network surrogate sampling method for uncertainty quanti fication. 2019.

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐