概述
这篇文章介绍一种用来拟合多精度数据的神经网络。 在科学计算中,低精度的数据往往是廉价的、大量的;高精度数据则不同,他们是昂贵的、少量的,所以如何充分利用不同精度的数据来得到更加 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}_{lfto hf}(x_i,mathcal{NN}_{lf}(x_i)) NNlf→hf(xi,NNlf(xi)), 用来将低精度的数据转化为高精度数据
将 N N l f → h f mathcal{NN}_{lfto hf} NNlf→hf 应用在 { 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.
最后
以上就是开心乌龟为你收集整理的Multi-fidelity DNNs : 多精度深度神经网络的全部内容,希望文章能够帮你解决Multi-fidelity DNNs : 多精度深度神经网络所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复