乐趣区

关于神经网络:基于积分自编码器网络的离散不变学习

前言

最近机器学习顶刊 Journal of Machine Learning Research 发表了很多对于 PDE 深度学习的实践根底,能够看出这个畛域将会焕发出生命力,该畛域与数学联合较严密。PDE 的深度学习办法很难避开的就是离散化。如何去学习离散过程中产生的不变量是一个重要的话题,这篇文章为了解这个问题关上了全新的视角。

Ong, Y. Z., Shen, Z., & Yang, H. (2022). Integral Autoencoder Network for Discretization-Invariant Learning. Journal of Machine Learning Research, 23(286), 1-45.

离散不变学习的外围就是针对任何形式的离散,神经网络都不须要从新训练,一种现有的办法就是 DeepOnet 为代表的网格无关的算子学习办法。然而本文中的办法力求去解决离散办法中的离散不变,也即训练好的神经网络能够针对任意离散格局的数据,这样能够进步图网络等办法的泛化能力。

前面的局部我尽量以较为简单易懂的形式去形容,会疏忽数学证实等理论性较强的过程。

问题形容

让 \(S_x=\left( x_j \right) _{j=1}^{s_x}\subset [0,1]^{d_x}\)和 \(S_y=\left(y_j \right) _{j=1}^{S_y}\subset [0,1]^{d_y} \)别离 \(\Omega _x\)和 \(\Omega _y\)域上的无限采样点,对应的数值观测值为 \(\bar{f}=\left(f\left( x_1 \right) ,…,f\left(x_{s_x} \right) \right)\)和 \(\bar{g}=\left(g\left( y_1 \right) ,…,g\left(y_{s_y} \right) \right)\)。特地的,对于不同组的观测值,采样点的数量 \(s_x\)和 \(s_y\)都能够是不同的。

传统的神经网络或者多层感知机只能解决具备固定输出维度的数据,对于 CV 工作来说,所有输出的图片都必须先做归一化解决。

这篇文章的外围就是基于神经网络的非线性积分变换,能够将具备任意维度的输出转换进入具备固定维度的空间中,也就是

$$
(\bar{T}f)(z)=\int_{\Omega _x}{\bar{K}}(f(x),x,z)f(x)dx,\quad z\in \Omega _z,
\\
(\bar{T}f)\left(z_j \right) =\frac{1}{s}\sum_{i=1}^s{\bar{K}}\left(f\left( x_i \right) ,x_i,z_j \right) f\left(x_i \right) ,\quad z_j\in S_z.
$$

这就是本文的中心思想,学习这么一个非线性积分变动,也就是一个积分自编码器(IAE),进行离散不变学习。

办法与网络架构

这篇文章的次要思维是和 FNO 差不多,都是以下的流程,首先将输出的观测值 \(\bar{f} \)投影到一个高维特色空间 \(a_0\),前面还是一系列的高维空间 \(a_1,…,a_L\)。这些高维空间 \(a_1,…,a_L\)是给定的固定维度,并不禁随着输出和输入个维度而发生变化,当然了这些高维空间的维度是超参数,在训练过程是固定的。因为两头这些高维空间是具备不变的维度,咱们能够利用全连贯神经网络进行解决。这里其实是解决了 FNO 中固定网格的问题,也就是只能针对训练的离散格局进行推理,具体流程如下

$$
\bar{f} \stackrel{F}{\rightarrow} a_0 \stackrel{\mathcal{I A \mathcal { E}}_1}{\longrightarrow} a_1 \stackrel{\mathcal{I A E}_2}{\longrightarrow} \ldots \stackrel{\mathcal{I A \mathcal { E}}_L}{\longrightarrow} a_L \stackrel{G}{\rightarrow} \bar{g}
$$

\(a_0\)和 \(a_L\)别离是预处理的输出数据特色和期待后处理的输入数据特色,这里的难度就是如何将具备不同离散维度的输入输出数据进行解决,而后利用神经网络进行解决。

预处理 :也就是将 \(\bar{f} \) 转换为 \(a_0 \),利用逐点线性变换(实质是一个一层逐点多层感知机)将每一个离散维度都投影到一个全新的特色空间中去。

后处理 :后处理应用了 FNO 中两个间断的神经网络对输入进行变动(对高频信号进行截断),最初利用一个雷同的逐点线性变动将 \(a_L\) 投影到输入 \(\bar{g} \)上。

多通道学习:应用不同特色空间增强不同表征学习的能力,作者将原始数据投影到不同的特色空间下来,如 Fourier 或 Wavelet 等,再将学习到的各个通道的特色应用逐点线性变动进行交融。具体流程如下图所示:

IAE 模块 :上面介绍最重要的局部,也就是每一个 IAE 模块外部的构造,这篇文章外面说的含糊不清,我参考了源码才看懂,上面的 \(a\) 和 \(b\)是在每一个模块外部的,也就是说这些每一个 IAE 模块外部蕴含了如下的构造:

具体而言,\(\phi _1 \)和 \(\phi _2 \)别离是非线性积分编码器好非线性积分解码器,\(\phi _0\)是一个多层感知机,这个 IAE 模块外部是有 N 层构造,先是进行 N 次的积分编码,在进行 N 次积分解码。具体而言,就是

$$
v_i(z)=\int_{\Omega_{i-1}} \phi_1^i\left(v_{i-1}(x), x, z ; \theta_{\phi_1^i}\right) v_{i-1}(x) d x\\
u_i(x)=\int_{\Omega_{u_{i-1}}} \phi_2^i\left(u_{i-1}(z), x, z ; \theta_{\phi_2^i}\right) u_{i-1}(z)
$$

这里 \(v_0\)是 \(a\),\(u_N\)是 \(b\),这样也就很分明了,不要和前面的浓密连贯技巧搞混了
这样一个 IAE 模块就解决了,前面的就是将 IAE 模块进行重叠。这个构造是和 FNO 很像,这里是区别就是编码进行了 N 次在进行 N 次的解码,略有不同,须要留神。

浓密链接技巧:浓密连贯可能减少每一个 IAE 的特色多样性,最终实现学习数据的简单表征并缓解梯度隐没的问题

Huang, G., Liu, Z., Van Der Maaten, L., & Weinberger, K. Q. (2017). Densely connected convolutional networks. In IEEE Conference on Computer Vision and Pattern Recognition (pp. 4700-4708).

具体的网络架构如下如所示,具体能够参考作者的代码:

数学表达式为:

$$
a_i=\sigma\left(\mathcal{I} \mathcal{A} \mathcal{E}_i\left(\mathcal{M}_i\left(\left[\mathcal{A}_0\left(a_0 ; \theta_{\mathcal{A}_0}\right), \mathcal{A}_1\left(a_1 ; \theta_{\mathcal{A}_1}\right), \ldots, \mathcal{A}_{i-1}\left(a_{i-1} ; \theta_{\mathcal{A}_{i-1}}\right)\right] ; \theta_{\mathcal{M}_i}\right) ; \theta_{\mathcal{I A} \mathcal{E}_i}\right)\right)
$$

随机数据增广:传统的核办法会面临泛化能力较弱的问题,为了解决问题,这里还引入了一个技巧,为了应答不同的离散格局,这篇文章提出利用插值办法失去不同离散格局下的数据,而后别离对其进行训练,来优化以下的的 loss 函数

$$
\min _{\theta_{\Psi^n}} \mathbb{E}_{(\bar{f}, \bar{g}) \sim p_{\text {data}}} \mathbb{E}_{I_T \sim \mathcal{I}}\left[L\left(\Psi^n\left(\bar{f} ; \theta_{\Psi^n}\right), \bar{g}\right)+\lambda L\left(\Psi^n\left(I_T(\bar{f}) ; \theta_{\Psi^n}\right), I_T(\bar{g})\right)\right]
$$

第一项是对原始数据的损失,第二项是进行了随机数据插值增广之后的损失,这样保障了对于不同的离散格局的学习。

试验后果

这里作者 DeepOnet,FNO,ResNet+Interpolation,Unet
Fourier Transformer (FT), Galerkin Transformer (GT)

Cao, S. (2021). Choose a transformer: Fourier or galerkin. Advances in Neural Information Processing Systems, 34, 24924-24940.

等办法进行了比拟。
试验后果大抵如下图

成果还不错,然而参数量、训练工夫和推理速度还是有点不尽如人意,

存在很多能进步的方面,如何细化这个自编码积分器能够说是将来一个十分重要的方向。

代码链接为 http://github.com/IAE-Net/iae…

论断

这篇文章提出的办法是很具备代表性的,力求对立不同离散格局产生的问题,然而还有很多能够进步的方面,对于 DeepOnet 而言,曾经有人解决了不同传感器地位的问题,将之与本文的思路进行联合也是一个乏味的钻研问题。

Prasthofer, M., De Ryck, T., & Mishra, S. (2022). Variable-Input Deep Operator Networks. arXiv preprint arXiv:2205.11404.

退出移动版