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的更多相关文章

  1. [C1W4] Neural Networks and Deep Learning - Deep Neural Networks

    第四周:深层神经网络(Deep Neural Networks) 深层神经网络(Deep L-layer neural network) 目前为止我们学习了只有一个单独隐藏层的神经网络的正向传播和反向 ...

  2. [C1W3] Neural Networks and Deep Learning - Shallow neural networks

    第三周:浅层神经网络(Shallow neural networks) 神经网络概述(Neural Network Overview) 本周你将学习如何实现一个神经网络.在我们深入学习具体技术之前,我 ...

  3. Coursera, Deep Learning 1, Neural Networks and Deep Learning - week3, Neural Networks Basics

    NN representation 这一课主要是讲3层神经网络 下面是常见的 activation 函数.sigmoid, tanh, ReLU, leaky ReLU. Sigmoid 只用在输出0 ...

  4. Coursera, Deep Learning 1, Neural Networks and Deep Learning - week2, Neural Networks Basics

    Logistic regression Cost function for logistic regression Gradient Descent 接下来主要讲 Vectorization Logi ...

  5. 提高神经网络的学习方式Improving the way neural networks learn

    When a golf player is first learning to play golf, they usually spend most of their time developing ...

  6. Convolutional Neural Networks: Step by Step

    Andrew Ng deeplearning courese-4:Convolutional Neural Network Convolutional Neural Networks: Step by ...

  7. Convolutional Neural Networks: Application

    Andrew Ng deeplearning courese-4:Convolutional Neural Network Convolutional Neural Networks: Step by ...

  8. 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 ...

  9. NEURAL NETWORKS, PART 1: BACKGROUND

    NEURAL NETWORKS, PART 1: BACKGROUND Artificial neural networks (NN for short) are practical, elegant ...

  10. 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 ...

随机推荐

  1. Vue2安装less版本过高问题,需要降级

    安装指定less版本解决: -D: 本地安装 -g: 全局安装 npm install less@3.9.0 less-loader@5.0.0 -D

  2. wandb: Network error (ConnectionError), entering retry loop.

    超算使用wandb总是连接超时,设置为offline模式即可 import os import wandb os.environ["WANDB_API_KEY"] = 'KEY' ...

  3. Kubernetes v1.22 编译 kubeadm 修改证书有效期到 100 年

    此方法支持以下 kubeadm版本 v1.22到v1.25 kubeadm 默认证书为一年,一年过期后,会导致 api service 不可用,使用过程中会出现:x509: certificate h ...

  4. react 05 router

    安装 npm i react-router-dom -- save<Router basename="/admin"> <Route path="/&q ...

  5. @Resource 与@Autowired 区别

    @Resource与@Autowired两个的作用是相同的,很多人因为个人习惯选择用的不同,但是他们两个本质上还有有一定的区别的,可以参考区别来选择具体用哪一个: @Autowired与@Resour ...

  6. WPF 实现文件、图标拖放功能(支持UAC的那种)

    WPF实现文件拖放功能,正常情况并没有什么问题,但是如果你的程序使用管理员身份启动,你就会发现文件拖放功能就会失效. 这是因为WPF 在不同UAC等级下,是不允许拖放的. 原理很简单,与桌面相关联的进 ...

  7. UIAutomator API定位元素

    一.根据class name和text属性  包名不可省略 code= new UiSelector().text("我的").classname("android.wi ...

  8. DotNetCore2.1镜像上传DockerHub在Docker运行

    操作步骤: 1.本地安装Docker(此处省略安装过程) 2.登录Docker 3.浏览器打开官方DockerHub地址注册用户(注意:注册操作需要FQ才能成功,后期登录和其他操作使用国内网络都可以) ...

  9. java对象序列化byte[] 和 byte[]反序列化对象

    import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio ...

  10. Centos 7.9 基于二进制文件部署kubernetes v1.25.5集群

    简述 Kubernetes(简称为:k8s)是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器 ...