NeurIPS 2021

表征PINN中可能的失败模式。本文的思路也比较简单,通过对PINN的优化域进行观察,发现导致PINN训练的原因并不是因为神经网络的表达力不足,而是由于PINN中引入了基于PDE微分算子的软正则化约束(也就是残差项),这导致了许多微妙的问题,使得问题病态。简单的事,是由于PINN的设置,导致了一个极度凹凸不平不平滑的优化域,使得虽然神经网络的表示力是充足的,但仍然学习不到一个好的解决方案。

针对上述的问题,作者提出了两种解决方法,一是课程学习:PINN的损失想先从简单的PDE正则化开始(小系数),随着训练的进行,逐渐变得更复杂。第二种是串行到串行的学习,相比较与目前的PINN设置,在全时空域上一次性的学习解,该方法将时空域进行分割,按照顺序进行学习。因为如果同时在全时空上学习,就很有可能会违反PDE固有的因果关系。

我们可以看到,在参数较大时,PINN失败于找到一个正确的解。那么也就是,即使面对简单的问题,PINN也容易失败。是什么导致了这种问题呢?作者认为,是损失函数中物理项的存在,导致了PINN的训练失败。首先作者观察了PINN的优化域,我们可以发现,随着PDE参数的变大,损失函数的优化域迅速变得夸张起来,肉眼可见的不光滑,还有z轴增长速度也很快。

那么,作者为什么就认为是残差项带来的问题呢?而不是神经网络结构的问题,即神经网络的表达力不足,失败于去近似精确解。通过第一种解决方法,即课程学习,作者给出了解释。

我们可以看到,使用课程学习的思想训练PINN,最终可以得到一个满意的解决方案。而普通的PINN失败了。而这拥有相同的神经网络结构,所以,普通PINN的失败并不是由于网络的表达力不足(课程学习是从小参数的PDE开始训练PINN,随着训练的进行逐渐的增加PDE的参数,这体现在PINN的损失项中)。

紧接着,作者提供了第二种解决方案,串行到串行。这类的解决方案最近已经看到了很多了。通过时空域分割,按照顺序学习。学习方法和实验结果如下。

Characterizing possible failure modes in physics-informed neural network的更多相关文章

  1. 《Neural Network and Deep Learning》_chapter4

    <Neural Network and Deep Learning>_chapter4: A visual proof that neural nets can compute any f ...

  2. Convolutional Neural Network in TensorFlow

    翻译自Build a Convolutional Neural Network using Estimators TensorFlow的layer模块提供了一个轻松构建神经网络的高端API,它提供了创 ...

  3. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  4. Neural Network Toolbox使用笔记1:数据拟合

    http://blog.csdn.net/ljp1919/article/details/42556261 Neural Network Toolbox为各种复杂的非线性系统的建模提供多种函数和应用程 ...

  5. How to implement a neural network

    神经网络的实践笔记 link: http://peterroelants.github.io/posts/neural_network_implementation_part01/ 1. 生成训练数据 ...

  6. CS224d assignment 1【Neural Network Basics】

    refer to: 机器学习公开课笔记(5):神经网络(Neural Network) CS224d笔记3--神经网络 深度学习与自然语言处理(4)_斯坦福cs224d 大作业测验1与解答 CS224 ...

  7. XiangBai——【AAAI2017】TextBoxes_A Fast Text Detector with a Single Deep Neural Network

    XiangBai--[AAAI2017]TextBoxes:A Fast Text Detector with a Single Deep Neural Network 目录 作者和相关链接 方法概括 ...

  8. 论文阅读(Weilin Huang——【TIP2016】Text-Attentional Convolutional Neural Network for Scene Text Detection)

    Weilin Huang--[TIP2015]Text-Attentional Convolutional Neural Network for Scene Text Detection) 目录 作者 ...

  9. 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)

    白翔的CRNN论文阅读 1.  论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...

  10. (转)The Neural Network Zoo

    转自:http://www.asimovinstitute.org/neural-network-zoo/ THE NEURAL NETWORK ZOO POSTED ON SEPTEMBER 14, ...

随机推荐

  1. vue学习笔记:环境搭建

    一.安装node.js node.js的官方地址为:https://nodejs.org/en/download/ 下载好安装包点击安装,基本就是下一步.下一步.... 安装完成后可以通过以下两种方式 ...

  2. Execution failed for task ':app:checkDebugDuplicateClasses'解决办法

    A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable & ...

  3. 还在拿flex进行布局吗?快来试试grid网格布局吧

    例: 遇到这种布局要求我们应该怎么办? 方法1:使用flex布局 <style> * { padding: 0; margin: 0; } .gird_Box { width: 100vw ...

  4. Hadoop2.7.3源码编译

    一.编译源码步骤演示详解 需求:官网下载的hadoop包,执行hadoop命令时,会有警告信息,为去除此警告,需要重新编译hadoop相应版本的源码,替换hadoop安装包lib目录下的native( ...

  5. 《CSOL大灾变》Mobile移植记录——购买区域

    在CSOL大灾变模式中,购买武器只能出现在特定区域,如下:    这里可以通过添加一些不渲染的BOX(如图中的蓝色BOX)作为触发器,然后检测玩家与之触发后才能弹出购买菜单. 在JmonkeyEngi ...

  6. pycharm 连接服务器进行操作比 Xshell 更简单!

    一.SSH 连接 pycharm 中通过 SSH 连接服务器非常的简单,只需要简单的几步操作就能完成,如下图 1.第一步:点击开启 SSH 会话 2.第二步:填入对应的连接信息,点击 OK 3.这个时 ...

  7. 【C++】fstream文件操作

    C语言使用FILE对文件进行操作,常用到的函数有fopen().freopen().fread().fwrite().fclose()等,分别用来打开文件.读写文件.关闭文件. C++可以使用fstr ...

  8. react native 第三方富文本编辑器 wxik/react-native-rich-editor(在移动端使用)

    //更新2021年8月23日 (1)wxik/react-native-rich-editor  个人认为功能比较全,推荐使用 关于使用的案例,官网上有,我直接粘贴我遇到的几个问题 1. 软键盘弹出时 ...

  9. vuecli创建项目-vue项目目录介绍-es6导入导出语法-小练习登录功能-scoped

    目录 vuecli创建项目-vue项目目录介绍-es6导入导出语法-小练习登录功能-scoped 今日内容概要 今日内容详细 1 vue-ci创建项目 2 vue项目目录介绍 3 es6导入导出语法 ...

  10. 2022NCTF

    是真的菜 开始复现把 calc 访问之后获得源码 @app.route("/calc",methods=['GET']) def calc(): ip = request.remo ...