| 第1行: |
第1行: |
| − | '''神经微分方程'''(Neural Differential Equations)是一类将神经网络与微分方程相结合的模型。其典型形式是用神经网络表示动态系统中的未知函数,例如状态变化率: | + | '''神经[[微分方程]]'''(Neural Differential Equations)是一类将神经网络与微分方程相结合的模型。其典型形式是用神经网络表示动态系统中的未知函数,例如状态变化率: |
| | | | |
| | <math>\frac{dz(t)}{dt}=f_\theta(z(t),t)</math> | | <math>\frac{dz(t)}{dt}=f_\theta(z(t),t)</math> |
| | | | |
| − | 其中,<math>z(t)</math> 表示系统在时间 <math>t</math> 的状态,<math>f_\theta</math> 是由神经网络参数化的函数,<math>\theta</math> 为可学习参数。狭义上,神经微分方程常指 '''神经常微分方程'''(Neural Ordinary Differential Equations, Neural ODEs);广义上也可包括神经随机微分方程、神经控制微分方程和通用微分方程等模型。 | + | 其中,<math>z(t)</math> 表示系统在时间 <math>t</math> 的状态,<math>f_\theta</math> 是由神经网络参数化的函数,<math>\theta</math> 为可学习参数。狭义上,神经微分方程常指 '''[[神经常微分方程]]'''(Neural Ordinary Differential Equations, Neural ODEs);广义上也可包括[[神经随机微分方程]]、[[神经控制微分方程]]和[[通用微分方程]]等模型。 |
| | | | |
| | == '''研究背景''' == | | == '''研究背景''' == |
| | | | |
| − | 神经微分方程的发展与深度神经网络的加深过程密切相关。根据通用逼近定理,足够宽的单隐层神经网络理论上可以逼近连续函数,但在实际深度学习中,增加网络深度通常比单纯增加宽度更有效。更深的网络能够逐层提取抽象特征,在图像识别、自然语言处理等任务中表现出更强的表达能力。
| + | 神经微分方程的发展与深度神经网络的加深过程密切相关。根据[[通用逼近定理]],足够宽的单隐层神经网络理论上可以逼近连续函数,但在实际[[深度学习]]中,增加网络深度通常比单纯增加宽度更有效。更深的网络能够逐层提取抽象特征,在图像识别、[[自然语言处理]]等任务中表现出更强的表达能力。 |
| | | | |
| | 深层网络的发展经历了从 AlexNet、VGG、GoogLeNet 到 ResNet 的演进。AlexNet 在 2012 年 ImageNet 竞赛中使用 8 层网络取得显著性能提升;随后,VGG 和 GoogLeNet 进一步加深网络结构;ResNet 则通过残差连接成功训练了百层以上网络,并在 2015 年 ImageNet 竞赛中取得领先结果。 | | 深层网络的发展经历了从 AlexNet、VGG、GoogLeNet 到 ResNet 的演进。AlexNet 在 2012 年 ImageNet 竞赛中使用 8 层网络取得显著性能提升;随后,VGG 和 GoogLeNet 进一步加深网络结构;ResNet 则通过残差连接成功训练了百层以上网络,并在 2015 年 ImageNet 竞赛中取得领先结果。 |
| | | | |
| − | 然而,简单堆叠网络层并不总能提升性能。随着层数增加,网络可能出现梯度消失、梯度爆炸和退化问题。其中,退化问题指更深网络在训练集上的误差反而升高,说明问题并非单纯由过拟合造成,而是与优化难度有关。
| + | 然而,简单堆叠网络层并不总能提升性能。随着层数增加,网络可能出现[[梯度消失]]、[[梯度爆炸]]和退化问题。其中,退化问题指更深网络在训练集上的误差反而升高,说明问题并非单纯由过拟合造成,而是与优化难度有关。 |
| | [[文件:神经网络随时间发展层数增加错误降低.png|替代=神经网络随时间发展层数增加错误降低|缩略图|'''神经网络随时间发展层数增加错误降低''']] | | [[文件:神经网络随时间发展层数增加错误降低.png|替代=神经网络随时间发展层数增加错误降低|缩略图|'''神经网络随时间发展层数增加错误降低''']] |
| | (时间顺序为从右到左,柱状图为模型在ILSVRC测试上的误差,折线图为网络层数) | | (时间顺序为从右到左,柱状图为模型在ILSVRC测试上的误差,折线图为网络层数) |
| | | | |
| − | === '''残差神经网络''' === | + | === '''[[残差神经网络]]''' === |
| | | | |
| − | '''残差神经网络'''(Residual Neural Network, ResNet)由何恺明、张祥雨、任少卿、孙剑等人提出,是深度网络结构发展中的重要模型。ResNet 的关键设计是残差块(Residual Block)和快捷连接(skip connection)。在残差块中,输入不仅经过若干网络层变换,也会通过快捷连接直接加到输出上: | + | '''残差神经网络'''(Residual Neural Network, ResNet)由[[何恺明]]、[[张祥雨]]、[[任少卿]]、[[孙剑]]等人提出,是深度网络结构发展中的重要模型。ResNet 的关键设计是[[残差块]](Residual Block)和快捷连接(skip connection)。在残差块中,输入不仅经过若干网络层变换,也会通过快捷连接直接加到输出上: |
| | | | |
| | <math>\hat y=F(x)+x</math> | | <math>\hat y=F(x)+x</math> |
| 第62行: |
第62行: |
| | <math>z(T)=z_0+\int_0^T f_\theta(z(t),t)\,dt</math> | | <math>z(T)=z_0+\int_0^T f_\theta(z(t),t)\,dt</math> |
| | | | |
| − | 在监督学习任务中,模型通过调整参数 <math>\theta</math>,使终止状态 <math>z(T)</math> 或其进一步变换后的输出尽可能接近真实标签:
| + | 在[[监督学习]]任务中,模型通过调整参数 <math>\theta</math>,使终止状态 <math>z(T)</math> 或其进一步变换后的输出尽可能接近真实标签: |
| | | | |
| | <math>\min_\theta \mathcal L(z(T),y)</math> | | <math>\min_\theta \mathcal L(z(T),y)</math> |
| 第70行: |
第70行: |
| | == '''求解方法''' == | | == '''求解方法''' == |
| | | | |
| − | Neural ODE 的前向传播需要调用 ODE 求解器。常见数值方法包括欧拉法、中点法和 Runge-Kutta 法。欧拉法形式简单,但精度较低;中点法通过估计中间点斜率提高精度;四阶 Runge-Kutta 法通过多次估计斜率并加权平均,通常具有更好的精度和稳定性。 | + | Neural ODE 的前向传播需要调用 ODE 求解器。常见数值方法包括[[欧拉法]]、[[中点法]]和 Runge-Kutta 法。欧拉法形式简单,但精度较低;中点法通过估计中间点斜率提高精度;四阶 Runge-Kutta 法通过多次估计斜率并加权平均,通常具有更好的精度和稳定性。 |
| | | | |
| − | 在训练阶段,还需要计算损失函数相对于模型参数的梯度。Neural ODE 常使用伴随方法(adjoint method)进行反向传播。该方法通过引入伴随变量,从终止时间反向求解梯度,避免保存所有中间状态,从而降低内存开销。其基本思想是:先正向求解状态轨迹,再反向计算终态损失对各时间点状态和参数的影响。 | + | 在训练阶段,还需要计算损失函数相对于模型参数的梯度。Neural ODE 常使用[[伴随方法]](adjoint method)进行反向传播。该方法通过引入伴随变量,从终止时间反向求解梯度,避免保存所有中间状态,从而降低内存开销。其基本思想是:先正向求解状态轨迹,再反向计算终态损失对各时间点状态和参数的影响。 |
| | | | |
| − | 从优化角度看,Neural ODE 也可与最优控制问题联系起来。状态方程描述系统如何演化,损失函数对应优化目标,模型参数或控制变量则决定系统轨迹。通过拉格朗日乘子、Hamiltonian 或伴随方程,可以将动态约束下的优化问题转化为可求解的梯度问题。 | + | 从优化角度看,Neural ODE 也可与[[最优控制]]问题联系起来。状态方程描述系统如何演化,损失函数对应优化目标,模型参数或控制变量则决定系统轨迹。通过[[拉格朗日乘子]]、Hamiltonian 或伴随方程,可以将动态约束下的优化问题转化为可求解的梯度问题。 |
| | | | |
| | == '''监督学习中的应用''' == | | == '''监督学习中的应用''' == |
| | | | |
| − | 在监督学习中,Neural ODE 将输入样本视为初始状态 <math>z_0</math>,通过连续时间动力系统将其变换为终止状态 <math>z(T)</math>,再用于分类或回归。与传统神经网络固定层数的前馈计算不同,Neural ODE 的变换过程由 ODE 求解器完成,计算步数可以根据求解精度自适应调整。 | + | 在监督学习中,Neural ODE 将输入样本视为初始状态 <math>z_0</math>,通过连续时间[[动力系统]]将其变换为终止状态 <math>z(T)</math>,再用于分类或回归。与传统神经网络固定层数的前馈计算不同,Neural ODE 的变换过程由 ODE 求解器完成,计算步数可以根据求解精度自适应调整。 |
| | | | |
| | 这种建模方式适合将神经网络解释为连续变换过程,也适合需要在精度和计算量之间动态折中的场景。 | | 这种建模方式适合将神经网络解释为连续变换过程,也适合需要在精度和计算量之间动态折中的场景。 |
| 第97行: |
第97行: |
| | (上图为 RNN 编码器、潜变量初始状态、ODE 求解器和解码器组成的预测流程) | | (上图为 RNN 编码器、潜变量初始状态、ODE 求解器和解码器组成的预测流程) |
| | | | |
| − | Latent ODE 的优势在于能够在连续时间上建模隐藏状态演化,并对未来时间点进行外推预测。但在长时间预测中,误差会随积分过程不断累积,尤其对于混沌系统或高维复杂系统,长期预测通常较为困难。<math>f_\theta</math> | + | Latent ODE 的优势在于能够在连续时间上建模隐藏状态演化,并对未来时间点进行外推预测。但在长时间预测中,误差会随积分过程不断累积,尤其对于[[混沌]]系统或高维[[复杂系统]],长期预测通常较为困难。<math>f_\theta</math> |
| | | | |
| | == '''优势''' == | | == '''优势''' == |
| 第111行: |
第111行: |
| | * '''适合潜空间建模''':Latent ODE 将观测序列编码为潜变量初始状态,再由 ODE 求解器生成潜空间轨迹。该形式常用于部分观测、带噪声观测和不规则时间序列。 | | * '''适合潜空间建模''':Latent ODE 将观测序列编码为潜变量初始状态,再由 ODE 求解器生成潜空间轨迹。该形式常用于部分观测、带噪声观测和不规则时间序列。 |
| | | | |
| − | * '''可结合已有方程''':在机理已知但不完整的场景中,神经网络可用于表示微分方程中的未知项。由此形成的混合模型常见于科学机器学习和动力系统辨识。 | + | * '''可结合已有方程''':在机理已知但不完整的场景中,神经网络可用于表示微分方程中的未知项。由此形成的混合模型常见于[[科学机器学习]]和[[动力系统辨识]]。 |
| | | | |
| − | * '''便于轨迹分析''':Neural ODE 的输出是连续轨迹,可从向量场、相空间、稳定性和积分路径等角度进行分析。这一点与传统动力系统的分析语言较为接近。 | + | * '''便于轨迹分析''':Neural ODE 的输出是连续轨迹,可从[[向量场]]、[[相空间]]、稳定性和积分路径等角度进行分析。这一点与传统动力系统的分析语言较为接近。 |
| | | | |
| | == '''局限性''' == | | == '''局限性''' == |
| 第119行: |
第119行: |
| | * '''计算开销''':一次前向传播通常需要多次计算 <math>f_\theta</math>。时间区间较长、状态维度较高或误差容忍度较严格时,函数评估次数会增加。 | | * '''计算开销''':一次前向传播通常需要多次计算 <math>f_\theta</math>。时间区间较长、状态维度较高或误差容忍度较严格时,函数评估次数会增加。 |
| | | | |
| − | * '''求解器依赖''':训练结果与 ODE 求解器、步长策略和误差容忍度有关。对于刚性方程或变化剧烈的向量场,求解过程可能变慢或不稳定。 | + | * '''求解器依赖''':训练结果与 ODE 求解器、步长策略和误差容忍度有关。对于[[刚性方程]]或变化剧烈的向量场,求解过程可能变慢或不稳定。 |
| | | | |
| | * '''梯度计算误差''':伴随方法可降低内存占用,但需要反向求解伴随方程。数值误差、反向积分误差和求解器设置都会影响梯度质量。 | | * '''梯度计算误差''':伴随方法可降低内存占用,但需要反向求解伴随方程。数值误差、反向积分误差和求解器设置都会影响梯度质量。 |
| 第129行: |
第129行: |
| | * '''调参复杂''':模型结构、积分区间、求解器类型、误差容忍度、正则化项和训练损失都会影响结果。调试过程通常同时涉及神经网络训练和数值微分方程求解。 | | * '''调参复杂''':模型结构、积分区间、求解器类型、误差容忍度、正则化项和训练损失都会影响结果。调试过程通常同时涉及神经网络训练和数值微分方程求解。 |
| | | | |
| − | * '''适用范围有限''':在规则采样、静态分类或短序列任务中,ResNet、RNN 或 Transformer 等模型常常更直接。Neural ODE 的使用价值主要体现在连续时间、不规则采样和动力系统相关问题中。 | + | * '''适用范围有限''':在规则采样、静态分类或短序列任务中,ResNet、RNN 或 [[Transformer]] 等模型常常更直接。Neural ODE 的使用价值主要体现在连续时间、不规则采样和动力系统相关问题中。 |
| | | | |
| | == '''总结''' == | | == '''总结''' == |