In scenarios with limited available data, training the function-to-function neural PDE solver in an unsupervised manner is essential. However, the efficiency and accuracy of existing methods are constrained by the properties of numerical algorithms, such as finite difference and pseudo-spectral methods, integrated during the training stage. These methods necessitate careful spatiotemporal discretization to achieve reasonable accuracy, leading to significant computational challenges and inaccurate simulations, particularly in cases with substantial spatiotemporal variations. To address these limitations, we propose the Monte Carlo Neural PDE Solver (MCNP Solver) for training unsupervised neural solvers via the PDEs' probabilistic representation, which regards macroscopic phenomena as ensembles of random particles. Compared to other unsupervised methods, MCNP Solver naturally inherits the advantages of the Monte Carlo method, which is robust against spatiotemporal variations and can tolerate coarse step size. In simulating the trajectories of particles, we employ Heun's method for the convection process and calculate the expectation via the probability density function of neighbouring grid points during the diffusion process. These techniques enhance accuracy and circumvent the computational issues associated with Monte Carlo sampling. Our numerical experiments on convection-diffusion, Allen-Cahn, and Navier-Stokes equations demonstrate significant improvements in accuracy and efficiency compared to other unsupervised baselines. The source code will be publicly available at: https://github.com/optray/MCNP.
翻译:在有限数据场景下,以无监督方式训练函数到函数的神经PDE求解器至关重要。然而,现有方法的效率与精度受限于训练阶段集成的数值算法特性(如有限差分法和伪谱法),这些方法需要精细的时空离散化才能达到合理精度,导致显著的计算负担和模拟不准确,尤其在时空变化剧烈的情况下。为突破这些限制,我们提出蒙特卡洛神经PDE求解器(MCNP求解器),通过PDE的概率表示(将宏观现象视为随机粒子系综)来训练无监督神经求解器。与其他无监督方法相比,MCNP求解器自然继承了蒙特卡洛方法的优势——对时空变化具有鲁棒性且能容忍粗糙步长。在模拟粒子轨迹时,我们对对流过程采用赫恩方法,并通过扩散过程中相邻网格点的概率密度函数计算期望值。这些技术提升了精度,同时规避了蒙特卡洛采样的计算瓶颈。我们在对流-扩散方程、Allen-Cahn方程和Navier-Stokes方程上的数值实验表明,与其他无监督基线方法相比,本方法在精度和效率上均有显著提升。源代码将开源在:https://github.com/optray/MCNP。