这篇论文还是用神经网络求解微分方程,是很老(2005年)的一篇论文,和前面两篇论文不同的是这里的神经网络很宽,不再是深度的神经网络。
这篇论文的方法和上一篇的FEA-Net(根据刚度矩阵构造卷积核)有些类似,都是基于有限元的求解过程构造网络,不同的是本篇论文只是很根据有限元公式很直观地转换成一个神经网络,把神经网络中的参数(层间的权值,还有激活函数)都换成FEA公式中的某个量或累加函数本文中神经网络结构的亮点在于把未知量作为层间权重,把可以确定的已知量作为输出,通过基于梯度下降的方法优化权重得到最终解,具体网络架构看第二部分

一.FEM有限元方法

上一篇论文中有直接用到一个FEM中的最终公式
这篇论文第一部分首先具体推导了这个公式

1.首先给出一个微分方程
LLL是微分算子,fff是施加的源或力函数,ϕ\phiϕ是未知量

2.FEA中通过最小化下面这个关于测试函数ϕ\phiϕ~(代表ϕ\phiϕ上一个波浪线,不知道咋打)的公式确定未知量

3.最小化过程从把Ω\OmegaΩ划分成MMM个子域(称为单元)开始
通过在单元上定义的基函数表示每个元素上的ϕ\phiϕ~
ϕe\phi^eϕe~表示单元eee上的未知解,NjeN^e_jNje​表示在单元e上与节点j相关的基函数,ϕje\phi^e_jϕje​表示在节点j上的未知量的值,n是单元e上的节点总个数
基函数(也称为插值函数或形状函数)可以是线性、二次或更高次的函数,通常,FEM中的基函数可以是线性函数也可以是分段样条多项式

4. 2.中的函数在单元内可以写作下式

把3.中公式代入上式得到
(...)T(...)^T(...)T表示矩阵的转置,φe\varphi^eφe由单元e相关的节点上的未知量的值组成,KeK^eKe是单元e内n x n的矩阵,该矩阵内的元素为
beb^ebe是单元e内1 x n的向量,其元素为

5. 把每个单元e的值((4)中第二个公式的值)组合起来得到
KKK是一个N x N(N是节点总数)的由不同单元的单元矩阵推导得到的全局矩阵,称为刚度矩阵,是一个稀疏的带状矩阵。FFF是函数的离散形式,对节点参数φ\varphiφ求偏导并使其等于0便可以使FFF最小化
整理可得Kφ=bK\varphi=bKφ=b,令φ=x,b=f\varphi=x,b=fφ=x,b=f,即可得(1)中式子Kx=fKx=fKx=f

6.添加边界条件
有两种边界条件:自然边界条件和本质边界条件

(1)本质边界条件又称为狄利克雷边界条件:在一些节点上对未知量ϕ\phiϕ的值施加限制
如何把狄利克雷边界条件应用于函数最小化公式Kϕ=bK\phi=bKϕ=b中:删除刚度矩阵KKK中与狄利克雷边界上节点对应的行和列,并修改b

(2)自然边界条件:对跨边界的变化施加约束,诺伊曼边界条件是自然边界条件的一个特例
如何把自然边界条件应用于FEM中:在方程中增加一个附加项
假设一个自然边界条件的形式如下ΓN\Gamma_NΓN​表示诺伊曼边界,nnn^表示边界上的外法向量,α\alphaα是一个常量,γ\gammaγ、ppp和qqq是与边界相关的已知量
假设边界由MsM_sMs​段组成,可以定义每段上的KsK^sKs和bsb^sbs的元素为
NjsN^s_jNjs​是定义在段s上的基函数,lsl^sls是段s的长度,ϕ1s\phi^s_1ϕ1s​和ϕ2s\phi^s_2ϕ2s​表示未知量在段s左右端点的值
5.中公式就修改为
这一过程确保了在有限元求解过程中自然边界条件得到隐式和自动的满足

二.FENN (finite-element neural networks)

这一部分介绍如何把有限元模型转换成并行网络形式:所用的有限元模型如下:
以下第一部分为推导过程

1.推导有限元公式

(1) 转换刚度矩阵K的形式 :把微分算子中表示材料属性的参数提取出来
局部刚度矩阵KeK^eKe的一个元素可以表示成如下形式αe\alpha^eαe是表示单元e的材料属性的参数,LLL拔表示在单元层不包含材料属性的微分算子
整体刚度矩阵KKK中的元素为
遍历M个单元并累加得到K中一个元素;i,ji,ji,j是节点编号,当第i个节点和第j个节点属于同一个单元时,关于ijijij的ωe=Se\omega^e=S^eωe=Se,否则为0

(2) 把上式代入第一部分推导出的式子
中,得到离散表示

(3) 最小化F,方法同第一部分,求F对ϕ\phiϕ的偏导并令其为0
就可以得到本部分的第一个公式
ϕj\phi_jϕj​表示jjj节点上未知量的值,而单元内部的未知量值可以看成通过基函数插值得到

2.利用FEM公式构造有限元神经网络FENN


对于一个有两个单元四个节点的域利用上述公式构造得到的神经网络如下:
首先假设在有限元网格中有M个单元和N个节点

(1)输入层: 有M个输入,输入为每个单元上的材料属性,α1,……,αM\alpha^1,……,\alpha^Mα1,……,αM
对于上图例子,有两个单元,所以有两个输入,分别为α1,α2\alpha^1,\alpha^2α1,α2

(2)隐藏层: 有N*N个神经元,对应刚度矩阵KKK的元素;每N个神经元为一组,表示刚度矩阵中的一个行向量;每个神经元起到累加求和的作用,根据下面公式求和
对于上图例子,隐藏层有4 x 4=16个神经元,第一组对应4 x 4的刚度矩阵的第一行:K11,K12,K13,K14
对于K11,其求和公式为K11=α1∗w111+α2∗w211K11=\alpha^1*w^111+\alpha^2*w^211K11=α1∗w111+α2∗w211

(3)输入层和隐藏层之间的权值:
根据(2)中公式,可得单元e对于刚度矩阵第iii行的权值贡献wie=[wei1,……,weiN]w^e_i=[w^ei1,……,w^eiN]wie​=[wei1,……,weiN]
对于上图例子,对于刚度矩阵的第一行:w11=[S111,S112,S113,0]w^1_1=[S^111,S^112,S^113,0]w11​=[S111,S112,S113,0],w12=[0,0,0,0]w^2_1=[0,0,0,0]w12​=[0,0,0,0]
对于K11,K11=α1∗S111+α2∗0K11=\alpha^1*S^111+\alpha^2*0K11=α1∗S111+α2∗0

(4)输出层: 有N个输出,每个输出对应bbb中的一个元素;每个神经元也是起到累加求和的作用
ϕj\phi_jϕj​表示在节点jjj上未知量的值
对于上图例子,b1=K11∗ϕ1+K12∗ϕ2+K13∗ϕ3+K14∗ϕ4b1=K11*\phi_1+K12*\phi_2+K13*\phi_3+K14*\phi_4b1=K11∗ϕ1​+K12∗ϕ2​+K13∗ϕ3​+K14∗ϕ4​

(5)隐藏层和输出层之间的权值:
根据(4)中公式,可知一组隐藏层和一个输出神经元之间的权值为φ=[ϕ1,……,ϕN]\varphi=[\phi_1,……,\phi_N]φ=[ϕ1​,……,ϕN​],且每一组的权值相同
对于上图例子,φ=[ϕ1,ϕ2,ϕ3,ϕ4]\varphi=[\phi_1,\phi_2,\phi_3,\phi_4]φ=[ϕ1​,ϕ2​,ϕ3​,ϕ4​]

(6)添加边界条件 (没有细讲)
a.对于自然边界条件:
Ks,bsK^s,b^sKs,bs与材料属性α\alphaα无关,所以自然边界条件可以作为偏置输入应用于作为边界一部分的隐层神经元,以及相应的输出神经元
b.对于狄利克雷边界条件: 通过限制(clamping?)在隐藏层和输出层神经元之间的相应权值,应用狄利克雷边界条件

(7)训练FENN:
该网络的损失函数:
a.微分方程的正问题: 给定材料参数α\alphaα和应用源(the applied source)bbb确定权值φ\varphiφ即未知量在节点上的值
求损失函数对隐藏层和输出层之间的权值(即未知量在节点上的值)的偏导:

b.微分方程的逆问题: 给定φ\varphiφ和bbb确定α\alphaα
求损失函数对输入的偏导:
然后选取基于梯度下降法的优化方法多次迭代即可

总结

很明显,这个网络的最大缺点就是可能会很宽,隐藏层神经元个数和刚度矩阵元素个数相同,为N*N个
优点就是也赋予了网络一定的意义,让网络不再是黑匣子;文章中也一直表明因为神经网络的应用,可以平行计算刚度矩阵各行,所以速度有加快很多
这是一个设计FENN的流程图,可以看到,前期处理和手工操作有很多,没有完全发挥神经网络的作用(例如,对于图像处理,我们现在根本不用人工进行特征提取,直接给网络一张图片即可,也就是说是端到端的网络)
猜想: 根据神经网络的反向传播,既然可以优化隐藏层到输出层的权重φ\varphiφ,那是不是也可以优化输入层到隐藏层的权重,也就是说我们不需要计算出weijw^eijweij,这样会不会少了许多计算?但是也不清楚两层之间权重的优化会不会有影响?

《Finite-Element Neural Networks for Solving Differential Equations》梳理相关推荐

  1. 《A Discussion on Solving Partial Differential Equations using Neural Networks》梳理

    (读本论文,需要有深度学习的基础,并了解偏微分方程的求解) 摘要 提出问题:神经网络可以学习求解偏微分方程(PDE)吗? 研究问题:本文,用泊松方程和稳定的Navier-Stokes方程来研究这个问题 ...

  2. DGM: A deep learning algorithm for solving partial differential equations

    论文信息 题目: DGM: A deep learning algorithm for solving partial differential equations 作者及单位: Justin Sir ...

  3. Solving Inverse Problems With Deep Neural Networks

    Solving Inverse Problems With Deep Neural Networks - Robustness Included 作者:Martin Genzel, Jan Macdo ...

  4. Transfer learning for deep neural network-based partial differential equations solving论文笔记

    Introduction 基于DNN的替代模型的迁移学习效果尚未得到充分研究 Related works 首先介绍了PINN:控制方程以及初始和边界条件作为惩罚项嵌入损失函数中,以指导梯度下降方向:下 ...

  5. cauchy problem of 1st order PDE from Partial Differential Equations

    pure math 加一个一个Episodes pde进可攻退可守 pure math f:R→R,y=f(x),dy=f′(x)dxf:\mathbb{R}\rightarrow\mathbb{R} ...

  6. Fourier Neural Operator for Parametric Partial Differential Equations

    https://arxiv.org/abs/2010.08895 这篇文章提出了一个包含Fourier变换的网络结构,并使用这种网络学习PDE的解算子(从初值/参数直接映射到PDE的解).

  7. 论文阅读 Solving Mixed Integer Programs Using Neural Networks

    论文:用神经网络求解混合整数规划 1.摘要 (1)文章目的: 混合整数规划(MIP)求解器一般使用一系列启发式算法来求解.而机器学习算法能 够通过利用数据实例之间的共享结构,构造更好的启发式算法. ( ...

  8. 《DeepXDE:a deep learning library for solving differential equations》梳理

    本论文向我们介绍了一个求解微分方程的神经网络PINNs,和PINNs的Python库DeepXDE 摘要 1.PINNs(Physics-informed neural networks物理信息神经网 ...

  9. 偏微分方程(Partial Differential Equation I)

    本站已停止更新,查看最新内容请移至本人博客 Wilen's Blog 数学物理方法 偏微分方程的定解问题 定解问题及适定性 线性叠加原理 一阶(拟)线性偏微分方程 二阶线性偏微分方程的分类和标准式 波 ...

  10. Partial differential equation

    In mathematics, a partial differential equation (PDE) is an equation which imposes relations between ...

最新文章

  1. fatal error LNK1169: 找到一个或多个多重定义的符号
  2. DeepMind的AI能指导人类的直觉吗?
  3. ASP.NET MVC项目的创建
  4. Linux课程实践二:编译模块实现内核数据操控
  5. 深入浅出JMS(三)--ActiveMQ简单的HelloWorld实例
  6. 程序员面试被问到“三次握手,四次挥手”怎么办?
  7. 数据分析和数据挖掘相关模块
  8. the road to TCPIP(1)--TCPIP详解--数据链路层
  9. docker 网络模式之 macvlan模式
  10. Node.js meitulu图片批量下载爬虫 1.05版(Final最终版)
  11. qq空间显示手机型号android,qq空间如何设置显示手机型号
  12. 计算机图形学最新发展的技术,浅析计算机图形学应用及技术发展趋势.doc
  13. 大数据下的用户画像标签去重
  14. 罗技推出可蓝牙连接的5.1环绕立体声扬声器
  15. ISME | 浙大黄健华/陈学新等揭示寄生蜂调控寄主营养代谢的新机制
  16. Django实现QQ登录
  17. 7.6椭圆曲线密码算法
  18. Job 和 Event
  19. maven项目中,添加依赖后,出现Dependency 'xxxx‘ not found解决过程
  20. 取之盈:html网页音乐代码大全

热门文章

  1. 鲜花海报,文字与花儿碰上的时候,美妙
  2. UI设计实用素材|订阅按钮(CTA按钮 )
  3. 计算机考研854都有哪些学校,哈尔滨工业大学计算机考研854计算机基础参考书汇总...
  4. java rpc 框架 常用_常用的RPC架构系列---gRPC
  5. python输入正整数n、求n以内能被17整除的最大正整数_求100之内自然数中最大的能被17整除的数资料...
  6. bytebuf池_PooledByteBuf内存池-------这个我现在不太懂
  7. 详解数据中心灾备切换技术
  8. php两个时间月数,PHP获得两个日期之间的月数
  9. Java关键字volatile
  10. java guava_多线程(java和guava两种方式):