[*]Quadratic Residual Networks: A New Class of Neural Networks for Solving Forward and Inverse Problems in Physics Involving PDEs


Accepted by SIAM International Conference on Data Mining (SDM21)
本文提出了二次残差网络,通过在应用激活函数之前,添加二次残差项到输入的加权和中,从而获得了比普通DNN具有更好表达容量的模型(相同宽度下)。这样在拟合复杂的PDE时,得益于更少的参数,可以在更少的训练步骤时同样获得很好的精度。最后作者使用了代数几何的工具,从理论上证明了QRes在网络宽度和深度方面表现出更好的参数效应,由于每个神经元中更高的非线性。一般来说,提高神经网络的容量将会有助于学习更复杂的样本,但为了学习更一般的模型,我们也需要通过正则化来平衡网络能力与数据所含的信息,尤其是在训练次数小的时候。
来自物理的额外监督确保PINN使用高容量的神经网络而不会过拟合。如下图所示,物理信息的添加使得神经网络避免了过拟合。

作者关心的是:能否开发一种在每一层都具有更高容量的神经网络架构,该架构可以用比普通DNN更少的参数近似复杂函数。虽然我们知道神经网络的表示能力不会是PINN失败的关键,但是如果可以使用更少的参数近似的话,也可以减少PINN训练的时间。也就是本文的作用大概就是加速PINN的训练。
所提出的网络结构图与普通网络的比较如下。

哈达玛积如下:

在普通的DNN层只有权重和偏置对输入的影响是线性的,只有激活函数对输入施加线性影响。因此就需要大量合适宽度的DNN层去捕获目标的非线性。称为残差是因为删除了它只会产生一个普通的DNN。W2为0时就是普通网络但当我们需要更好的非线性表达时,QRes就可以获得更高的非线性。网络的数学表示为:

虽然作者提出的模型使用线性激活函数,但是为了避免出现无界的情况,作者仍然使用非线性激活函数。借助代数几何分析,所提出的模型具有更高的表示量,但是只有当网络的宽度适合大时才会收敛。
通过下图我们可以看到,QRes可以带来较大的改进。但是需要的神经元较多。

所提出的网络会带来更快的收敛。但是PINN失败的模型,这个也会失败。

但是性能几乎没有提升,只是单纯收敛的快了。

[*]Quadratic Residual Networks: A New Class of Neural Networks for Solving Forward and Inverse Problems in Physics Involving PDEs的更多相关文章
- [C1W4] Neural Networks and Deep Learning - Deep Neural Networks
第四周:深层神经网络(Deep Neural Networks) 深层神经网络(Deep L-layer neural network) 目前为止我们学习了只有一个单独隐藏层的神经网络的正向传播和反向 ...
- [C1W3] Neural Networks and Deep Learning - Shallow neural networks
第三周:浅层神经网络(Shallow neural networks) 神经网络概述(Neural Network Overview) 本周你将学习如何实现一个神经网络.在我们深入学习具体技术之前,我 ...
- Coursera, Deep Learning 1, Neural Networks and Deep Learning - week3, Neural Networks Basics
NN representation 这一课主要是讲3层神经网络 下面是常见的 activation 函数.sigmoid, tanh, ReLU, leaky ReLU. Sigmoid 只用在输出0 ...
- Coursera, Deep Learning 1, Neural Networks and Deep Learning - week2, Neural Networks Basics
Logistic regression Cost function for logistic regression Gradient Descent 接下来主要讲 Vectorization Logi ...
- 提高神经网络的学习方式Improving the way neural networks learn
When a golf player is first learning to play golf, they usually spend most of their time developing ...
- Convolutional Neural Networks: Step by Step
Andrew Ng deeplearning courese-4:Convolutional Neural Network Convolutional Neural Networks: Step by ...
- Convolutional Neural Networks: Application
Andrew Ng deeplearning courese-4:Convolutional Neural Network Convolutional Neural Networks: Step by ...
- ON THE EVOLUTION OF MACHINE LEARNING: FROM LINEAR MODELS TO NEURAL NETWORKS
ON THE EVOLUTION OF MACHINE LEARNING: FROM LINEAR MODELS TO NEURAL NETWORKS We recently interviewed ...
- NEURAL NETWORKS, PART 1: BACKGROUND
NEURAL NETWORKS, PART 1: BACKGROUND Artificial neural networks (NN for short) are practical, elegant ...
- Must Know Tips/Tricks in Deep Neural Networks
Must Know Tips/Tricks in Deep Neural Networks (by Xiu-Shen Wei) Deep Neural Networks, especially C ...
随机推荐
- git 日常基本使用
// 将远程仓库下的所有分支拉取到本地 git fetch origin // 将dev分支合并到当前所在的分支 git merge dev // 基于当前分支克隆出新的本地分支 git checko ...
- 阿里云服务器ECS(Centos8)下安装和配置python3.8
1.安装依赖包: yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-dev ...
- 0624.python入门
课堂笔记 一 编程语言 什么是编程语言? 上面提及的能够被计算机所识别的表达方式即编程语言,语言是沟通的介质,而编程语言是程序员与计算机沟通的介质.在编程的世界里,计算机更像是人的奴隶,人类编程的目的 ...
- CentOS 镜像官网下载链接
CentOS 镜像官网下载链接: https://www.centos.org/download/mirrors/ http://mirrors.aliyun.com/centos/ https:// ...
- IIS 安装AspNetCoreModule托管模块
IIS安装AspNetCoreModule托管模块 进入下载地址,选在对应的版本搜索 ASP.NET Core Module 下载x32或x64即可 下载地址: https://dotnet.micr ...
- 【Linux】docker学习
docker 使用加速器可以提升获取Docker官方镜像的速度 方法: 安装/升级Docker客户端 推荐安装1.10.0以上版本的Docker客户端,参考文档 docker-ce 配置镜像加速器 针 ...
- 初学银河麒麟linux笔记 第四章 windows中开发的QT程序适配linux的修改——error: ‘QT_WARNING_DISABLE_DEPRECATED’ does not name a type
QT程序本身在windows中进行开发的,移植到linux系统上进行编译后发现了不少问题,需要一一进行修改 1.系统时间修改 首先是系统时间问题 SYSTEMTIME current_date_tim ...
- Blog-3
前言 这几周的作业所涉及的知识点有数据的封装和.继承与多态.正则表达式,还有抽象类和接口,另外还有javafx的一些基本知识.题量适中,但是难度对于我来说是比较大的.总的来说就是跟以前的题目差不多,只 ...
- [Swift]Xcode格式化代码快捷键
写代码最常用的快捷键莫过于格式化代码了,最近玩Swift,百度上没有找到简单明了的内容,特意记录一下. Control + I 自动调整缩进 可以选中相应的代码 或 Command + A全选 ...
- shell语法6-exit命令、文件重定向、引入外部脚本
一.exit命令 exit命令用来退出当前shell进程,并返回一个退出状态:使用$?可以接收这个退出状态.exit命令可以接受一个整数值作为参数,代表退出状态.如果不指定,默认状态值是 0.exit ...