PINN 讲义第 3 章:神经网络作为可训练函数

3741 字
19 分钟
PINN 讲义第 3 章:神经网络作为可训练函数

本文属于“PINN 入门讲义”系列:第 3 章。如果你是第一次阅读,建议先从 总目录 开始。

阅读说明#

这份讲义面向希望系统理解 Physics-Informed Neural Networks 的读者,尽量从微分方程、数值近似和神经网络函数表示的基本语言讲起,再逐步进入 PINN 的残差构造与训练过程。 前两章的核心结论可以概括为一句话:科学计算中的未知解通常是一个函数,而微分方程规定了这个函数必须满足的变化规律。传统数值方法通过网格和差分来近似这个函数;PINN 则选择另一种表示方式,用神经网络构造一个带参数的函数 uθu_\theta。因此,在进入 PINN 的损失函数和训练算法之前,我们必须先理解神经网络在这里到底扮演什么角色。

本章不从“神经元像大脑”这样的比喻开始,也不急于讨论深度学习在图像识别中的成功。对 PINN 来说,神经网络首先是一个函数族。给定输入,它产生输出;改变网络参数,输入输出关系也随之改变。训练神经网络,就是在这个函数族中寻找一个比较合适的函数。Goodfellow、Bengio 和 Courville 的《Deep Learning》第 6 章也把前馈神经网络的目标表述为近似某个函数。这个观点对我们尤其重要,因为 PINN 要近似的正是微分方程的未知解。

3.1 从线性函数开始#

理解神经网络之前,先看最简单的带参数函数:

f(x)=wx+b.f(x)=wx+b.

这里 xx 是输入,f(x)f(x) 是输出,wwbb 是参数。若 ww 变大,函数图像的斜率改变;若 bb 变大,函数图像整体上移。也就是说,wwbb 控制了这一族函数的形状。给定一组数据点,我们可以调节 wwbb,让直线尽量贴近这些数据。这已经包含了机器学习中最基本的思想:选定一个函数形式,再通过数据或约束调整参数。

如果输入不是一个数,而是一个向量 x=(x1,,xd)\mathbf{x}=(x_1,\ldots,x_d),线性函数可以写成

f(x)=wTx+b.f(\mathbf{x})=\mathbf{w}^{\mathsf T}\mathbf{x}+b.

其中 w\mathbf{w} 是权重向量,bb 是偏置。这个表达式先计算输入各分量的加权和,再加上偏置。Stanford CS231n 在介绍神经网络时也从这一结构出发:一个神经元通常先做点积、加偏置,再通过非线性激活函数。

线性函数简单、清楚,也容易训练,但它的表达能力有限。无论输入如何变化,f(x)=wx+bf(x)=wx+b 的图像总是一条直线;多维情况下,它对应的是超平面。许多物理问题中的解并不是线性的。热传导中的温度分布、非线性波动、流体速度场,往往具有复杂形状。若只用线性函数近似这些解,很快就会遇到表达能力不足的问题。

一种自然的想法是组合多个线性函数。但如果只把线性函数一层接一层相乘相加,结果仍然是线性的。例如,设

g(x)=a(wx+b)+c.g(x)=a(wx+b)+c.

展开后得到

g(x)=(aw)x+(ab+c),g(x)=(aw)x+(ab+c),

它仍然只是一个线性函数。这个简单计算说明,若想让多层结构真正表达非线性关系,必须在层与层之间加入非线性操作。这就是激活函数的作用。

3.2 神经元与激活函数#

神经网络中的一个基本计算单元可以写成

a=σ(wTx+b).a=\sigma(\mathbf{w}^{\mathsf T}\mathbf{x}+b).

先看括号内部:wTx+b\mathbf{w}^{\mathsf T}\mathbf{x}+b 是线性组合,权重 w\mathbf{w} 决定输入各分量的重要程度,偏置 bb 决定整体平移。外面的 σ\sigma 是激活函数,它对线性组合的结果施加非线性变换。常见激活函数包括 sigmoid、tanh 和 ReLU 等。ReLU 的形式尤其简单:

σ(z)=max{0,z}.\sigma(z)=\max\{0,z\}.

它把负数截断为零,正数保持不变。虽然这个操作很简单,但它使神经网络不再只是线性函数的复合。

为什么非线性如此重要?如果没有激活函数,多层网络等价于一个线性变换。假设第一层输出为

h=W1x+b1,\mathbf{h}=W_1\mathbf{x}+\mathbf{b}_1,

第二层输出为

y=W2h+b2.\mathbf{y}=W_2\mathbf{h}+\mathbf{b}_2.

把第一层代入第二层,可得

y=W2W1x+W2b1+b2.\mathbf{y}=W_2W_1\mathbf{x}+W_2\mathbf{b}_1+\mathbf{b}_2.

这仍然是关于 x\mathbf{x} 的线性函数。层数增加并没有带来本质变化。只有加入激活函数,例如

h=σ(W1x+b1),\mathbf{h}=\sigma(W_1\mathbf{x}+\mathbf{b}_1),

网络才可能表达弯曲、分段、局部变化等更复杂的函数形状。

例 3.1
考虑一维输入 xx 和两个 ReLU 神经元:

h1(x)=max{0,x},h2(x)=max{0,x1}.h_1(x)=\max\{0,x\},\qquad h_2(x)=\max\{0,x-1\}.

令输出为

f(x)=h1(x)h2(x).f(x)=h_1(x)-h_2(x).

x<0x<0 时,两个 ReLU 都为零,所以 f(x)=0f(x)=0;当 0x<10\le x<1 时,h1(x)=xh_1(x)=xh2(x)=0h_2(x)=0,所以 f(x)=xf(x)=x;当 x1x\ge 1 时,h1(x)=xh_1(x)=xh2(x)=x1h_2(x)=x-1,所以 f(x)=1f(x)=1。这个小网络产生了一个分段线性函数。增加更多这样的神经元,就可以拼接出更复杂的折线形状。

这个例子说明,神经网络并不是通过神秘机制产生复杂函数,而是通过许多简单非线性单元的组合来构造复杂映射。对 PINN 来说,这种组合能力使 uθ(x,t)u_\theta(x,t) 有可能近似热方程、波动方程或其他 PDE 的解。

3.3 多层网络是函数的复合#

一个前馈神经网络由若干层组成。以两层隐藏层为例,可以写成

h1=σ(W1x+b1),\mathbf{h}_1=\sigma(W_1\mathbf{x}+\mathbf{b}_1),h2=σ(W2h1+b2),\mathbf{h}_2=\sigma(W_2\mathbf{h}_1+\mathbf{b}_2),y=W3h2+b3.\mathbf{y}=W_3\mathbf{h}_2+\mathbf{b}_3.

这里 x\mathbf{x} 是输入,y\mathbf{y} 是输出,h1\mathbf{h}_1h2\mathbf{h}_2 是隐藏层表示。矩阵 W1,W2,W3W_1,W_2,W_3 和向量 b1,b2,b3\mathbf{b}_1,\mathbf{b}_2,\mathbf{b}_3 都是参数。把这些参数合在一起,记作 θ\theta。于是整个网络可以简写为

y=fθ(x).\mathbf{y}=f_\theta(\mathbf{x}).

这个简写非常重要。它把一个由许多矩阵乘法和激活函数组成的计算过程,看成了一个普通函数。输入 x\mathbf{x},输出 y\mathbf{y};参数 θ\theta 固定后,函数关系也固定。训练网络时,改变的是 θ\theta,也就是改变这一个函数族中的具体成员。

在 PINN 中,输入通常不是图像像素,而是空间、时间或物理参数。例如一维时间问题可以写成

uθ(t),u_\theta(t),

一维空间-时间问题可以写成

uθ(x,t),u_\theta(x,t),

含有方程参数 μ\mu 的问题也可以写成

uθ(x,t,μ).u_\theta(x,t,\mu).

输出则是对未知物理量的近似值,例如温度、位移、浓度或速度分量。若输出是一个标量,网络最后一层输出一个数;若要同时输出多个物理量,例如二维速度场中的两个速度分量和压力,则网络可以输出向量。

从函数复合的角度看,网络深度表示复合层数,宽度表示每层中间变量的数量。更宽或更深的网络通常具有更强的表达能力,但也更难训练,并且可能需要更多采样点和计算资源。后续讨论 PINN 时会看到,网络结构的选择会影响残差计算、优化难度和最终精度。

3.4 为什么说神经网络可以近似函数#

神经网络能够用于 PINN,一个重要原因是它可以作为函数近似器。通用逼近定理给出了这种说法的理论基础。Cybenko 在 1989 年证明了带有 sigmoid 激活的神经网络可以在一定意义下逼近连续函数;Hornik、Stinchcombe 和 White 的工作进一步说明多层前馈网络具有通用逼近能力。后续研究对激活函数、网络深度和宽度等条件做了大量扩展。

这里不需要展开定理证明,但需要准确理解它的含义。通用逼近定理大致说明:在适当条件下,给定一个紧区域上的连续函数,只要网络足够大,就存在某个神经网络可以把它逼近到任意给定精度。换句话说,神经网络函数族足够丰富,原则上可以表示非常复杂的函数。

但是,这个结论有三个重要限制。第一,它通常是存在性定理,只说明“存在某个网络”,并不告诉我们如何通过训练找到它。第二,它不保证所需网络规模很小;为了达到某个精度,网络可能需要很多神经元或很深的结构。第三,它不保证外推能力;在训练区域之外,网络可能表现很差。

这些限制对 PINN 尤其重要。用 uθu_\theta 近似 PDE 的解,并不意味着任何网络、任何训练方式都会成功。若解具有尖峰、高频振荡、多尺度结构或边界层,网络可能很难表示或很难优化。若采样点分布不合理,残差在采样点上小,也不一定代表整个区域都准确。因此,我们应把“神经网络可以近似函数”理解为方法的可能性,而不是成功的保证。

尽管如此,把神经网络看成函数近似器仍然非常有用。与传统网格方法相比,神经网络给出的是一个连续函数表达:一旦训练完成,可以在任意输入点 (x,t)(x,t) 上计算 uθ(x,t)u_\theta(x,t),也可以通过自动微分计算其导数。这一点正是 PINN 能够把神经网络和微分方程联系起来的基础。

3.5 参数、训练与函数选择#

前面一直把神经网络写成 fθf_\thetauθu_\theta。这个下标 θ\theta 很关键。它不是输入变量,而是网络内部所有权重和偏置的集合。若网络有多层,θ\theta 可以表示为

θ={W1,b1,W2,b2,,WL,bL}.\theta=\{W_1,\mathbf{b}_1,W_2,\mathbf{b}_2,\ldots,W_L,\mathbf{b}_L\}.

给定 θ\theta,网络就是一个确定函数;改变 θ\theta,网络函数也随之改变。训练过程可以理解为在许多可能的函数中选择一个较好的函数。

普通监督学习中,选择标准通常来自数据。给定样本 (xi,yi)(\mathbf{x}_i,y_i),希望 fθ(xi)f_\theta(\mathbf{x}_i) 接近 yiy_i。一个常见损失函数是

L(θ)=1Ni=1Nfθ(xi)yi2.\mathcal{L}(\theta) = \frac{1}{N}\sum_{i=1}^N \left|f_\theta(\mathbf{x}_i)-y_i\right|^2.

这个损失越小,说明网络在训练样本上的预测越接近标签。优化算法的任务就是调整 θ\theta,让损失下降。下一章会专门讨论损失函数和优化,这里只需要记住:训练不是改变输入,而是改变参数;改变参数,就是改变网络代表的函数。

PINN 与普通监督学习的区别在于,它选择函数的标准不只来自数据,还来自方程。对于 PDE 问题,网络函数不仅要在观测点上接近数据,还要在配置点上满足微分方程,在边界点上满足边界条件,在初始点上满足初值条件。因此,PINN 中的 uθu_\theta 不是随便拟合一条曲线,而是在多个约束共同作用下被选出来的函数。

这也解释了为什么本章要把神经网络讲成“可训练函数”,而不是先讲复杂的神经网络术语。对 PINN 来说,最核心的结构是

(x,t)uθ(x,t).(x,t)\longmapsto u_\theta(x,t).

输入是空间和时间,输出是未知解的近似值,参数 θ\theta 决定这个映射的具体形状。后续所有损失函数、自动微分和残差计算,都是围绕这个映射展开的。

3.6 PINN 中常用的网络选择#

最基础的 PINN 通常使用全连接前馈网络,也称多层感知机。它的每一层都把上一层的所有输出作为输入,经过线性变换和激活函数得到下一层。全连接网络实现简单,容易与自动微分结合,因此成为早期 PINN 文献中的常见选择。

在选择网络时,激活函数尤其需要注意。若 PDE 残差中包含二阶导数,网络输出需要能够稳定地求二阶导。ReLU 虽然在许多深度学习任务中非常常用,但它是分段线性的,二阶导数在大多数位置为零,在折点处不可导。因此,在需要高阶导数的 PINN 中,tanh 等较光滑的激活函数经常被使用。当然,这不是绝对规则;不同问题、不同网络结构和不同训练策略会导致不同选择。

网络输入也需要根据问题设计。对于 ODE,输入可能只有时间 tt;对于一维热方程,输入是 (x,t)(x,t);对于二维空间问题,输入可能是 (x,y)(x,y)(x,y,t)(x,y,t);对于带参数方程,输入还可以包含物理参数。输出则取决于未知量的个数。若求一个标量场,输出一个数;若求多个耦合物理量,输出可以是向量。

最后要强调,网络结构本身不是 PINN 的全部。一个更大的网络并不必然带来更好的结果。PINN 的表现还取决于采样点、损失权重、优化算法、变量尺度和方程性质。网络只是提供了可训练函数族,真正的求解过程还要靠后续章节中的损失设计和优化训练来完成。

本章小结#

本章把神经网络解释为一种可训练函数。最简单的线性函数 f(x)=wx+bf(x)=wx+b 已经展示了参数如何控制输入输出关系;神经网络在此基础上加入多层结构和非线性激活函数,从而形成更丰富的函数族。多层前馈网络可以写成 fθ(x)f_\theta(\mathbf{x}),其中 θ\theta 包含所有权重和偏置。

神经网络具有函数近似能力,但通用逼近定理只是说明在适当条件下存在能够逼近目标函数的网络,并不保证训练一定成功,也不保证网络规模小或外推准确。对 PINN 来说,神经网络的意义在于提供一个连续的、可求导的候选函数 uθu_\theta。后续训练会通过数据、方程残差、边界条件和初值条件共同选择这个函数。

习题#

  1. f(x)=wx+bf(x)=wx+b。分别说明 wwbb 改变时,函数图像会发生什么变化。
  2. 证明两个线性函数的复合仍然是线性函数。这个结论为什么说明激活函数是必要的?
  3. σ(z)=max{0,z}\sigma(z)=\max\{0,z\}。画出 h1(x)=σ(x)h_1(x)=\sigma(x)h2(x)=σ(x1)h_2(x)=\sigma(x-1)f(x)=h1(x)h2(x)f(x)=h_1(x)-h_2(x) 的图像。
  4. 对一个热方程 PINN,若输入为 (x,t)(x,t),输出为 uθ(x,t)u_\theta(x,t),请说明网络参数 θ\theta、输入变量 x,tx,t 和输出值 uθ(x,t)u_\theta(x,t) 分别代表什么。
  5. 为什么通用逼近定理不能保证 PINN 训练一定成功?

延伸阅读#

  1. I. Goodfellow, Y. Bengio, and A. Courville, Deep Learning, Chapter 6 “Deep Feedforward Networks”: Deep Learning Book
  2. Stanford CS231n, “Neural Networks Part 1”: CS231n Neural Networks
  3. MIT 6.390, “Neural Networks” course notes: MIT Intro to Machine Learning Notes
  4. G. Cybenko, “Approximation by superpositions of a sigmoidal function,” Mathematics of Control, Signals and Systems, 1989.
  5. K. Hornik, M. Stinchcombe, and H. White, “Multilayer feedforward networks are universal approximators,” Neural Networks, 1989.

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

PINN 讲义第 3 章:神经网络作为可训练函数
https://sciml.com.cn/posts/pinn-lecture-03/
作者
星飞帆
发布于
2026-06-24
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
星飞帆
西北工业大学24级研究生 | SciML · PINNs · 神经算子 · PDE 约束学习
欢迎
欢迎来到星飞帆的 SciML 研究笔记:这里记录论文阅读、数学推导、代码复现、实验踩坑,也分享研究生阶段可能用得上的资料。
分类
标签
站点统计
文章
21
分类
4
标签
69
总字数
70,675
运行时长
0
最后活动
0 天前

文章目录