本文提出了一种将迁移学习应用到PINN的方法。可以极大的缩短训练PINN所用的时间,目前,PINN所需要的训练次数往往都在成千上万次,

作者通过批量训练PINN,来学习丰富的潜在空间用来执行迁移学习。主要是冻结网络的隐藏层,只微调最后一个线性层。这样可以将神经网络的推理速度快好几个数量级。对于线性问题,本文涉及的几个实验都仅仅只需要几秒钟就可以完成训练,此外,非线性问题依旧可以使用梯度下降进行优化,这就类似于一般的迁移学习了。

首先,关于本文模型结构,可以给一个大概的描述,如下图:

不同于一般的PINN结构,本文的输出层的大小是可以根据参与训练的方程的个数进行调整的。但这些方程都是同一类的,具有不同的非齐次项,初始条件,边界条件等。比如,薛定谔方程,因为同时训练三个不同的参数,取n=3,输出层就有6的神经元。(因为薛定谔方程的解是复值解,本身就需要两个神经元)。因为没有找到代码,所以我猜测训练时,网络同时给输出三个解,分别带入各自的损失函数(也就是残差+边界),从而对网络进行优化。最后的微调阶段,对于一个新的方程,只调节最后一个线性层的大小,就可以快速精确的获得近似解。

现在我们看一下论文。本文发表在ICML2022。

摘要:作者首先说到,将迁移学习应用到求解PDE还未被充分探索,诚然,我还没有读到过类似的文章。对于线性的常微分和偏微分方程,作者提出一种一次性推断的迁移学习方法。这就意味着在求解新的方程时,无需重新训练整个网络。

介绍:目前关注PINN计算花费的论文还不是很多,PINN的训练是很慢的,自己的感觉是训练时对cpu要求比较高,收敛速度比较慢。因此作者使用迁移学习来解决这个问题,在一个任务上训练,并将模型转移到其他的任务上。具体的说,在一系列PDE上预训练的PINN,可以有效地用于求解新的微分方程。通过冻结预训练的PINN的隐藏层,求解同一系列的新的微分方程就简化于微调线性层。并且对于线性系统,甚至可以通过人工计算消除微调的必要,从而降低训练开销,大大减少训练时间。这也是本文将重点介绍的。

背景:ODE给定IC,传统下可以使用积分求解器求解。目前也可以使用PINN求解,损失函数如3式。使用神经网络,相比较于传统方法,可以消除维度灾难、避免累积误差等。但是,目前关于迁移学习的应用还比较少。

相关工作是机器学习关于求解PDE的发展历史。

方法:首先以ODE为例。定义一个神经网络去近似方程的解。换句话说,被参数化的神经网络,将输入t投影到一个高维的非线性隐层空间H,H是隐层空间和非线性激活函数的组合。然后,在潜在空间的线性组合,来获得最后的解。

为了训练网络,定义最后的权重层是多输出的。这样就可以同时训练多个方程(比如不同的微分算子,初始条件等)。捆绑训练允许我们 1 将训练集成到单个网络中,2 鼓励隐层状态H对于多个方程适用。

在推断时(对于一个新的任务),我们冻结隐藏层的参数,仅仅微调最后一个线性层。解可以被写成 H*W 的形式。那么,在面对新的问题是,损失就变成了4式。

对于线性系统,W是可以直接计算的。

还有一个更直观的理解,我们把h看作一组非正交基,Wout是一组系数,即通过线性组合确定输出的近似函数。并且7式还可以进一步简化,因为前一项逆矩阵可以提前计算。总之,这样就可以免于计算梯度,因为没有涉及到进一步的训练。并且如果H足够好,就可以获得高精度的解。事实上,这个方法很依赖于矩阵的逆,如果有很大条件数时,会导致问题病态。实验中可以通过正则化和分解来解决。 对于非线性系统,最后的线性层只能使用微调得到了。

然后到了PDE,一样的过程,可以计算得到W。我们再来说一下H,作者认为,只有当H这组基能够很好的表示解空间时,才能获得准确的解(希望由H张成的子空间尽可能大)。因此,为了鼓励学到有代表性的隐空间,作者使用了一个网络来训练多个方程。

结果:

使用了四个不同的泊松方程训练,用两种方式测试。已知分析解。图1结果还不错。

然后又考虑了薛定谔,使用三个方程训练,测试结果如下。

One-Shot Transfer Learning of Physics-Informed Neural Networks的更多相关文章

  1. 1506.01186-Cyclical Learning Rates for Training Neural Networks

    1506.01186-Cyclical Learning Rates for Training Neural Networks 论文中提出了一种循环调整学习率来训练模型的方式. 如下图: 通过循环的线 ...

  2. Learning How To Code Neural Networks

    原文:https://medium.com/learning-new-stuff/how-to-learn-neural-networks-758b78f2736e#.ly5wpz44d This i ...

  3. Coursera Deep Learning 2 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week2, Assignment(Optimization Methods)

    声明:所有内容来自coursera,作为个人学习笔记记录在这里. 请不要ctrl+c/ctrl+v作业. Optimization Methods Until now, you've always u ...

  4. Coursera Deep Learning 2 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week1, Assignment(Initialization)

    声明:所有内容来自coursera,作为个人学习笔记记录在这里. Initialization Welcome to the first assignment of "Improving D ...

  5. 吴恩达《深度学习》-课后测验-第一门课 (Neural Networks and Deep Learning)-Week 3 - Shallow Neural Networks(第三周测验 - 浅层神 经网络)

    Week 3 Quiz - Shallow Neural Networks(第三周测验 - 浅层神经网络) \1. Which of the following are true? (Check al ...

  6. Coursera Deep Learning 2 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week1, Assignment(Regularization)

    声明:所有内容来自coursera,作为个人学习笔记记录在这里. Regularization Welcome to the second assignment of this week. Deep ...

  7. Coursera Deep Learning 2 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week1, Assignment(Gradient Checking)

    声明:所有内容来自coursera,作为个人学习笔记记录在这里. Gradient Checking Welcome to the final assignment for this week! In ...

  8. Coursera Deep Learning 2 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week3, Hyperparameter tuning, Batch Normalization and Programming Frameworks

    Tuning process 下图中的需要tune的parameter的先后顺序, 红色>黄色>紫色,其他基本不会tune. 先讲到怎么选hyperparameter, 需要随机选取(sa ...

  9. Coursera Deep Learning 2 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week2, Optimization algorithms

    Gradient descent Batch Gradient Decent, Mini-batch gradient descent, Stochastic gradient descent 还有很 ...

  10. Coursera, Deep Learning 2, Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week1, Course

    Train/Dev/Test set Bias/Variance Regularization  有下面一些regularization的方法. L2 regularation drop out da ...

随机推荐

  1. CF1137F Matches Are Not a Child's Play 题解

    以最后被删去的点为根,这样子不会存在从父亲然后删掉某个点,儿子的删除顺序一定比父亲前. 记每个点子树中的最大值为 \(f_x\),那么一个点的排名,首先就需要加上 \(<f_x\) 的所有值,记 ...

  2. 时间戳转换为yyyy-MM-dd格式

    原文链接https://blog.csdn.net/hu104160112/article/details/111167033

  3. ModuleNotFoundError:No module named 'past' 问题及解决方法

    训练YOLOX时报错 ModuleNotFoundError:No module named 'past' 解决方法 使用pip安装对应的package:future pip install futu ...

  4. ionic4 可能忽略的一些细节

    1.iOS中,页面被状态栏遮挡的问题 有的说 具体是解决是  在config.xml   配置如下代码 <preference name="StatusBarStyle"   ...

  5. DRF过滤Filtering

    过滤Filtering 对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-filter扩展来增强支持. pip install django-filter 在配置文件中增加过滤后端的 ...

  6. 如何利用fooview实现钉钉自动打卡

    我们平常遇到需要钉钉打卡的那种公司,经常要抢时间不敢晚起,有的公司还要扣钱,这样就很难受.本文教你一种行之有效的办法实现钉钉自动打卡. 有些人可能会用什么虚拟定位之类的工具,但是这种是很容易被钉钉发现 ...

  7. nohup原理

    Nohup的原理也很简单,终端关闭后会给此终端下的每一个进程发送SIGHUP信号,而使用nohup运行的进程则会忽略这个信号,因此终端关闭后进程也不会退出. Linux的信号 SIGHUP:当用户退出 ...

  8. Cisco——ASA和winserver2016配置l2tp over ipsec连接

    Cisco--ASA和winserver2016配置l2tp over ipsec连接 L2tp over ipsec vpn配置 网络拓扑图: 配置vpn时要确保Winserver15能够ping通 ...

  9. 苹果App 上架 app store 提示 “一张或多张屏幕快照的尺寸存在错误“

    获取预览图的方式有两种:第一种是用真机运行然后截图获取:另一种是用模拟器运行然后截图获取. 先说说第一种获取方式:app运行在5.5英寸(6+)的手机上,截取屏幕快照.在上传时会报错:"一张 ...

  10. CentOS Linux release 7.6 zabbix5.0 安装

    # zabbix 安装关方文档 https://www.zabbix.com/cn/download?zabbix=5.0&os_distribution=centos&os_vers ...