本篇与大家分享最近阅读的Transformer求解偏微分方程论文Choose a Transformer: Fourier or Galerkin,该论文已被NeurIPS2021接收。

背景介绍

在我们的世界中,从宇宙星体的运动,到温度风速的气象预报,再到分子原子间的相互作用,很多工程学、自然科学、经济和商业过程都可以通过偏微分方程(PDE)描述。传统的方法,如有限元、有限差分、谱方法等,利用离散结构将无限维算子映射简化为有限维近似问题。近年来物理信息神经网络(PINN)等模型[1],通过在求解空间采样,训练神经网络来近似PDE解。但是对于传统方法或物理信息神经网络等,边界条件或者方程参数轻微的变化,通常需要重新计算和训练。

相比之下,算子学习的目标是学习无限维函数空间之间的映射,这样能够实现在不需要重新训练的情况下求解偏微分方程族,从而大幅度节省计算资源。PDE求解中算子学习(operator learner)是当前蓬勃发展的新研究方向,其中典型代表是傅里叶神经算子(FNO)[2]。

随着NeurIPS2021的放榜,基于Transformer的算子学习文章《Choose a Transformer: Fourier or Galerkin》[4]对于参数化PDE的求解给出了一种新颖的解释,最终在基准中取得了state-of-the-art的结果。

主要工作

在本文中,operator learner采用监督学习训练,训练样本是输入函数和输出函数在同样的离散网格点上采样得到的,如下图所示,可以将方程求解转化seq2seq问题并通过Transformer[3]进行建模。

图1 operator learner示意

基于Transformer的工作,本文的主要贡献如下:

1. 无softmax的注意力机制。提出scale-preserving自注意机制和无softmax的attention,并给出两种方案的数学解释。

2. 参数化PDE的operator learner。将新提出的注意力算子与FNO结合起来,显著提高在参数化PDE求解基准问题中的精度。

3. State-of-the-art实验结果。在三个benchmark中,求解的精度和性能均有大幅度的收益。

Pipeline

图2 二维operator learner网络结构

operator learner的网络结构如上图所示,其中主要包含如下几个模块:

1. 特征提取器(Feature extractor):一维问题使用前馈神经网络、二维问题使用CNN网络等;

2. 基于插值的CNN(Interpolation-based CNN):上采样/下采样层和CNN的堆叠得到;

3. 位置编码(Positional encoding):每个网格点的笛卡尔坐标作为附加特征维连接到输入数据。

4. 解码器(Decoder):编码器学习到的表示特征映射回原始维度。

其中网络训练的loss函数如下:

损失函数的主体为网络输出和label之间的MSEloss,另外loss中额外添加了输出和label之间差分正则项。

其中Fourier和Galerkin类型的Transformer计算方式如下图:

图3 Fourier Attention

图4 Galerkin Attention

实验结果

1. Burger’s equation

方程定义如下:

本文中的任务是从初始时刻(t=0)得到t=1时刻的解u,模型与FNO的对比如下表,在本问题上结果精度均优于所对比的FNO。

2. Darcy flow problem

方程定义如下:

该问题的定义是从二维的随机几何形状系数a,到二维的解u的映射。模型与FNO的对比如下表,在本问题上结果精度均优于所对比的FNO。

在对比模型精度的同时,论文也比较了模型的性能,对比结果如下表,其中Galerkin Attention方式的Transformer在显存占用和性能方面优势十分明显。

思考与总结

Galerkin Transformer从数学的角度解释了Attention机制,并新颖地将其与算子学习相结合引入到参数化PDE的求解问题中,精度和性能均优于算子学习的“老大哥”FNO。后续可以在更高维更复杂场景上,验证模型的有效性。

Reference

[1] Raissi M, Perdikaris P, Karniadakis G E. Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations[J]. Journal of Computational Physics, 2019, 378: 686-707.

[2] Li Z, Kovachki N, Azizzadenesheli K, et al. Fourier neural operator for parametric partial differential equations[J]. arXiv preprint arXiv:2010.08895, 2020.

[3] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in neural information processing systems. 2017: 5998-6008.

[4] Cao S. Choose a Transformer: Fourier or Galerkin[J]. arXiv preprint arXiv:2105.14995, 2021.

MindSpore官方资料

GitHub : https://github.com/mindspore-ai/mindspore

Gitee : https : //gitee.com/mindspore/mindspore

官方QQ群 : 486831414

当Transformer遇见偏微分方程求解相关推荐

  1. 北大杨超:以偏微分方程求解为例,AI如何助力科学计算?

    2020-05-17 21:09:13 作者 | 未来论坛 编辑 | 蒋宝尚 AI技术,特别是机器学习和强化学习方法,基于实验或者计算产生的数据对所求解的问题进行可计算建模,从而得到复杂问题的有效解决 ...

  2. 何恺明团队新作!Transformer遇见Mask R-CNN哪家强?

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 转载自丨极市平台   作者丨happy 导读 本文是FAIR的何恺明团队关于ViT在COCO检测任务上的迁移 ...

  3. 当Transformer遇见U-Net!

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 作者:Amusi  |  来源:CVer 前言 留给Transformer + U-Net 组合命名的缩写不 ...

  4. matlab中PDE工具箱如何使用,使用PDE工具箱求解偏微分方程

    在科学技术各领域中,有很多问题都可以归结为偏微分方程问题.在物理专业的力学.热学.电学.光学.近代物理课程中都可遇见偏微分方程. 偏微分方程,再加上边界条件.初始条件构成的数学模型,只有在很特殊情况下 ...

  5. 偏微分方程数值解法python_Python数值计算----------求解简单的偏微分方程

    很多物理现象的都可以用方程来描述,比如热传导与物质扩散可以用扩散方程来描述,流体的流动可以用NS方程描述等等.如果能够将这些偏微分方程求解出来,就可以来对很多物理现象进行仿真,现在工程中的仿真软件都是 ...

  6. matlab偏微分方程数值解误差_Python数值计算----------求解简单的偏微分方程

    很多物理现象的都可以用方程来描述,比如热传导与物质扩散可以用扩散方程来描述,流体的流动可以用NS方程描述等等.如果能够将这些偏微分方程求解出来,就可以来对很多物理现象进行仿真,现在工程中的仿真软件都是 ...

  7. 偏微分方程的类型及求解(一)(备份草稿)

    前言 本文是作者对本学期所学<数学物理方程>中涉及偏微分方程求解的知识所进行的一个类型归纳和方法总结,并配合一定数目的例题进行相关练习. 本文将按照偏微分方程的"是否有界&quo ...

  8. matlab 差分解微分,基于MATLAB的偏微分方程差分解法

    <基于MATLAB的偏微分方程差分解法>由会员分享,可在线阅读,更多相关<基于MATLAB的偏微分方程差分解法(12页珍藏版)>请在人人文库网上搜索. 1.基于MATLAB的偏 ...

  9. 非线性方程组求解方法,神经网络的非线性函数

    1.rbf神经网络原理 rbf神经网络原理是用RBF作为隐单元的"基"构成隐含层空间,这样就可以将输入矢量直接映射到隐空间,而不需要通过权连接. 当RBF的中心点确定以后,这种映射 ...

最新文章

  1. boost::hana::intersection用法的测试程序
  2. 读“NoSQL注入的分析和缓解”之摘录
  3. FPGA(8)--频率计检测控制系统
  4. asp.net中获得客户端的IP地址
  5. 【移植Linux 3.4.2内核之四】修改内核代码支持YAFFS文件系统
  6. 【机器学习】 - 关于Keras的深入理解
  7. 算法高级(18)-Redis Cluster选举机制
  8. 股票分红对于短期投资有好处吗?
  9. 试用阿里开源的Arthas小记
  10. java使用水晶报表,java处理水晶报表
  11. excel 对列数据进行去重操作
  12. seo关键词扩展-自动关键词拓展软件免费下载
  13. aName:array[0..31] of WideChar;//编译提示检测到错误类EAccessViolation//没有初始化
  14. 实时可调度性分析算法— 利用率上界 和 加速因子的作用
  15. 怎么把虚拟机的计算机弄到桌面,Win10自带的虚拟机功能,教你这样设置,免费让一台电脑变3台!...
  16. 获取各大电商平台,item_get_app - 获得淘宝app商品详情原数据API返回数据说明
  17. 3个字节转换为另外3个字节的简单加密算法
  18. spacedesk-把ipad变成显示器-真香经验全面分享
  19. (Pytorch) YOLOV4 : 训练自己的数据集【左侧有码】
  20. SAT阅读常见重要词汇

热门文章

  1. CSS3动画效果大全
  2. Android studio期末大作业APP 掌上图书馆
  3. ZWAVE Door Lock Configuration Set
  4. 删除的照片怎么才能恢复
  5. 龙珠人物的译名大全!
  6. 【正点原子Linux连载】第三十八章 根文件系统构建 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
  7. Pycharm 相对路径失效解决
  8. python根据时间提取数据
  9. 我用Java几分钟处理完30亿个数据...
  10. java后台管理系统下载_Java后台管理系统(rongcheng-cms)