How to Avoid Trivial Solutions in Physics-Informed Neural Networks


未发表(2021)
本文也是关注采样点的一篇工作。主要从PINN的性能与采样点数量的关系方面入手考虑。提出了一个新的惩罚项,并对采样策略提出了一点看法。
本文的工作相对比较直观,简单,效果可能并不是很好。作者也没有做其他的方程,文章也比较短,没有理论保证并且工作量也不足。
首先,作者认为,虽然自动微分帮助了PINN的想法实现,但是自动微分的使用也会带来显著的计算消耗。故而本文的关注点在于如何减少计算量。简单地说,作者希望通过减少配置点的数量来降低训练PINN所需要的时间。但是,直接的减少数量是不行的,因为在训练点减少时,PINN会收敛到不同的解。所以,作者寻找了方法试图使得减少配置点数量的同时,也不会使得PINN的性能大幅度下降(针对PINN的计算量,我也深有感触,虽然模型的框架并不复杂,但是所需要的计算量却很大,主要是训练时间会很长,因为需要在每一个配置点进行自动微分,计算物理损失)。
一个观察如下,当采样点减少时,PINN的解会从初始条件开始,退化为平凡解。平凡解也满足物理损失最小(对于齐次PDE)。

作者通过研究一维滤波器,发现了一个规律,即使对于简单的问题,解也会存在一个突然的变化,退化为平凡解(这也是一个经验性的观察)。为了避免这个情况,作者准备引入一个新的正则化项,用来稳定PINN的训练,同时还会保持预测的准确性。此外,作者还表明,规律采样会优于随机采样,在当配置点数量比较少的情况下。具体如下。
因为作者的目标是通过减少配置点的数量来降低训练时间和计算量,并且还要使得性能有保证。所以作者基于一个观察,即,当PINN预测失败的时候,NN在某些点会找到一个平凡解,并且在当某个区域开始陷入到平凡解的时候,该区域的物理损失通常会急剧增加(由前几天看的一篇论文,传播假设来解释的话,可以说是,当某个点陷入到了平凡解,它会很快的传播给附近的点,导致PINN训练失败,但遗憾的是,这两篇文章都只是经验性的观察,没有理论保障)。最后,为了避免网络学习到平凡解,作者基于上述的观察,提出了一个新的惩罚项,对物理损失的梯度进行惩罚,来避免网络陷入到平凡解。损失梯度惩罚项如下。

第二点,作者表明,目前流行的Latin Hypercube Sampling (LHS)在样本较少的时候,可能会存在覆盖不好的区域,而在那时,规则采样会优于LHS。
实验部分如下:
首先,使用68个配置点训练PINN拟合一个一维滤波方程,PINN可以找到正确的解。

然后,使用32的配置点重新进行训练,可以看到训练失败了,PINN陷入到了一个平凡解。但是,在最先开始陷入平凡解的位置,残差的梯度出现了剧烈的波动。

下图是作者添加了物理损失梯度惩罚项之后,同样是32个配置点,这次PINN训练成功了。

紧接着,作者使用了12个配置点,在配备有物理损失梯度惩罚项的情况下,同样找到了正确的解。

How to Avoid Trivial Solutions in Physics-Informed Neural Networks的更多相关文章
- 论文解读(GraphMAE)《GraphMAE: Self-Supervised Masked Graph Autoencoders》
论文信息 论文标题:GraphMAE: Self-Supervised Masked Graph Autoencoders论文作者:Zhenyu Hou, Xiao Liu, Yukuo Cen, Y ...
- 房屋布局分析《Physics Inspired Optimization on Semantic Transfer Features: An Alternative Method for Room Layout Estimation》
视觉算法在智能审核系统上的演进与实践 刘天悦 贝壳找房 / 资深工程师 https://static001.geekbang.org/con/56/pdf/1088777747/file/%E8%A7 ...
- 信用评分卡Credit Scorecards (1-7)
欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 python风控评分卡建模和风控常识 https://study.163.com/course/introductio ...
- GO语言的开源库
Indexes and search engines These sites provide indexes and search engines for Go packages: godoc.org ...
- {ICIP2014}{收录论文列表}
This article come from HEREARS-L1: Learning Tuesday 10:30–12:30; Oral Session; Room: Leonard de Vinc ...
- 提高神经网络的学习方式Improving the way neural networks learn
When a golf player is first learning to play golf, they usually spend most of their time developing ...
- (转) Deep Reinforcement Learning: Pong from Pixels
Andrej Karpathy blog About Hacker's guide to Neural Networks Deep Reinforcement Learning: Pong from ...
- 大规模视觉识别挑战赛ILSVRC2015各团队结果和方法 Large Scale Visual Recognition Challenge 2015
Large Scale Visual Recognition Challenge 2015 (ILSVRC2015) Legend: Yellow background = winner in thi ...
- Go语言(golang)开源项目大全
转http://www.open-open.com/lib/view/open1396063913278.html内容目录Astronomy构建工具缓存云计算命令行选项解析器命令行工具压缩配置文件解析 ...
- [转]Go语言(golang)开源项目大全
内容目录 Astronomy 构建工具 缓存 云计算 命令行选项解析器 命令行工具 压缩 配置文件解析器 控制台用户界面 加密 数据处理 数据结构 数据库和存储 开发工具 分布式/网格计算 文档 编辑 ...
随机推荐
- window C盘满了/文件夹太长怎么移动
通过以下命令移动文件夹 robocopy C:\Users\test\ E:\test\ /move /e C盘满了怎么办? 文件移动到其他盘,通过软连接访问 mklink /d "C:\U ...
- Linux常用命令 转于WoW_Boom
一.常用命令 1.进入到用户根目录cd ~ 或 cd 2.查看当前所在目录pwd 3.进入到itcast用户根目录cd ~itcast 4.返回到原来目录cd - 5.返回到上一级目录cd .. 6. ...
- 钉钉h5开发流程
1.先在钉钉开发者后台 https://login.dingtalk.com/oauth2/challenge.htm?redirect_uri=https%3A%2F%2Fopen-dev.ding ...
- N63050 第十周运维作业
十九.VPN服务 1.firewalld和最新技术nft实现防火墙功能(65分钟) 2.open-v-p-n介绍和环境准备(48分钟) 3.open-v-p-n实现CA证书(45分钟) 4.open- ...
- Linux软件安装与进程管理
Linux软件安装与进程管理 1.软件包分类 首先呢,在学习rpm与yum命令之前,我想先给大家介绍一下Linux软件包的分类,也就是我们常说的安装包,window的软件包是.exe结尾文件,也就是应 ...
- psgl
/* Navicat Premium Data Transfer Source Server : postgreSQL Source Server Type : PostgreSQL Source S ...
- mathjs 数字处理
// mathjs 四舍五入取整 val:值export function roundingInt(val) { if (val) { return math.round(val, 0) }}// m ...
- wendows 批量修改文件后缀(含递归下级)
for /r %%a in (*.jpg)do ren "%%a" "%%~na.png" //-- or :for /r %a in (*.jpg)do re ...
- unity 扇形范围检测目标
第一种 代码方法 传入目标点测试即可 private float ScopeDistance = 2f;//扇形距离 private float ScopeJiaodu = 120;//扇形的角度 / ...
- npm install报错C:\Users\Guyang\AppData\Roaming\npm-cache\_logs\xxx-14T01_06_33_159Z-debug-0.log
先看报错 可以看到报错提示,给了个日志路径 有的兄弟看到其他博客给了一个命令 npm cache clean --force 或者 npm config set strict-ssl false 说是 ...