隐式神经流:无网格的时空耦合数据降维

阿凡达
• 阅读 1228

前言

隐式流(INR)表示在3D视觉中是一个新型的领域,也是一个非常热门的领域,可以看作是PDE的范式

Pan, Shaowu, Steven L. Brunton, and J. Nathan Kutz. "Neural Implicit Flow: A mesh-agnostic dimensionality reduction paradigm of spatio-temporal data." arXiv preprint arXiv:2204.03216 (2022).

隐式神经流可以看作是DeepOnet的拓展,他的网络架构其实是和DeepOnet是高度相似的,也是算子学习的一种,是一种网格无关的方法,这与FNO等具有明显差别。这篇文章算是对DeepOnet进行了一个魔改,利用了神经网络最后一层的特点,算是一篇不错的文章。

问题描述

考虑到具有不同时间或参数的三维时空数据

$$ \partial \mathbf{u}/\partial t=\mathcal{G} \left( \boldsymbol{\mu },\mathbf{u},\nabla \mathbf{u},\nabla ^2\mathbf{u},... \right) , $$

其中,\( (\mathbf{x},t,\boldsymbol{\mu })\in \Omega =\mathcal{X} \times \mathcal{T} \times \mathcal{D} ,\mathcal{X} \subset \mathbb{R} ^3,\mathcal{T} \subset \mathbb{R} ^+,\mathcal{D} \subset \mathbb{R} ^d \),\( \mathcal{G} \)是一类非线性算子。

在给定初始条件和边界条件的情况下,我们针对不同的参数或时间,乃至只有稀疏观测值的情况进行PDE求解。

方法与网络架构

这篇文章的思想是和HyperNetworks是一样的

Ha, D., Dai, A., & Le, Q. V. (2016). Hypernetworks. arXiv preprint arXiv:1609.09106.

就是利用ParameterNet来决定ShapeNet的参数。具体而言,就如下图所示
隐式神经流:无网格的时空耦合数据降维

这里我们只优化ParameterNet网络的参数 \( \boldsymbol{\Theta} \),来决定ShapeNet网络的参数

$$ \left[\begin{array}{llllll} \operatorname{vec}^{\top}\left(\begin{array}{l} \mathbf{W}_1 \end{array}\right. & \ldots & \operatorname{vec}^{\top}\left(\begin{array}{llll} \left.\mathbf{W}_L\right) & \mathbf{b}_1^{\top} & \ldots & \mathbf{b}_L^{\top} \end{array}\right]=f_{\mathrm{MLP}}(t, \boldsymbol{\mu} ; \boldsymbol{\Theta}) \end{array}\right. $$

图上的最优表示\( \zeta_1 \cdots \zeta_r \)是通过POD-QDEIM方法学习到的r个最优数据的表示。

Drmac, Z., & Gugercin, S. (2016). A new selection operator for the discrete empirical interpolation method---improved a priori error bound and extensions. SIAM Journal on Scientific Computing, 38(2), A631-A648.

loss函数的形式为

$$ \min _{\boldsymbol{\Theta}} \frac{1}{M} \sum_{i=1}^M\left(\mathbf{u}_{\mathrm{MLP}}\left(\mathbf{x}_i ; \mathscr{W}\left(t_i, \boldsymbol{\mu}_i ; \boldsymbol{\Theta}\right), \mathscr{B}\left(t_i, \boldsymbol{\mu}_i ; \boldsymbol{\Theta}\right)\right)-\mathbf{u}\left(\mathbf{x}_i, t_i, \boldsymbol{\mu}_i\right)\right)^2 $$

此外,为了学习到多尺度特征信息,ShapeNet的网络架构采用了SIREN方法来学习高频信息,这样也会放大噪声信号但是也能保留更多的特征信息。

Sitzmann, V., Martel, J., Bergman, A., Lindell, D., & Wetzstein, G. (2020). Implicit neural representations with periodic activation functions. Advances in Neural Information Processing Systems, 33, 7462-7473.
隐式神经流:无网格的时空耦合数据降维

具体的网络架构如下所示:
隐式神经流:无网格的时空耦合数据降维
对于一般的情况,ParameterNe的输入是\( t,\boldsymbol{\mu } \)
对于算例受限的情况,也即输入数据的量是受限的情况,我们应该选择最好的若干个传感器位置,文章介绍使用POD-QDEIM学习到\( p \)个最优的传感器位置,然后将对应的传感器数据

$$ \begin{gathered} u\left(x_{\gamma_1}, y_{\gamma_1}, z_{\gamma_1}\right) \\ \bullet \\ \bullet \\ u\left(x_{\gamma_p}, y_{\gamma_p}, z_{\gamma_p}\right) \end{gathered} $$

作为ParameterNe的输入。

实验

实验部分可以去参考原论文,作者已经作了详细的阐述,有任何问题都可以深入研究,这里就不再赘述。

结论

本文将INR引入到PDE求解中,将空间复杂度和其他因素进行了分离,遵循了PDE的流形学习思想,实现了网格无关且提高了性能。这个方向和CV里的INR是一脉相承,最近几年一定会大火的,如果有兴趣一定要深入研究兴趣,相信各位都能发表不错的文章。

如果有兴趣,读者也可以参考以下的论文:

Boussif, Oussama, et al. "MAgNet: Mesh Agnostic Neural PDE Solver." arXiv preprint arXiv:2210.05495 (2022).
Yin, Yuan, et al. "Continuous PDE Dynamics Forecasting with Implicit Neural Representations." arXiv preprint arXiv:2209.14855 (2022).
点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
4年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Stella981 Stella981
4年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
阿凡达
阿凡达
Lv1
不忍登高临远,望故乡渺邈,归思难收。
文章
5
粉丝
0
获赞
0