更改

跳到导航 跳到搜索
添加124字节 、 2026年8月18日 (星期二)
无编辑摘要
第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 的使用价值主要体现在连续时间、不规则采样和动力系统相关问题中。
    
== '''总结''' ==
 
== '''总结''' ==

导航菜单