2. 演化的蓝图——动力系统,洞悉AI模型的长期行为与稳定

导言:从单条轨迹到全局图景

在上一篇章中,我们重新认识了常微分方程(ODE)。我们学会了将ODE看作一个定义了“瞬时变化规则”的向量场,而它的解,则是一条从特定初始点出发,完全顺应这个场而流动的积分曲线。我们掌握了如何从一个点 y0\mathbf{y}_0y0 出发,预测它在未来的路径 y(t)\mathbf{y}(t)y(t)

这很棒,但这只是故事的一半。

想象一下,你站在一条大河的岸边,只专注于观察一片从你面前漂过的树叶。你精确地描绘了它的轨迹,但这并不能让你完全理解这条河。这条河的真正秘密隐藏在哪里?它隐藏在所有可能的树叶——无论它们从上游的哪个位置被扔下——它们的最终归宿之中。有些可能会被冲到岸边,有些可能会卷入漩涡,还有些可能会汇入大海。

动力系统(Dynamical Systems) 理论,正是这样一门研究“全局图景”的科学。它将我们的视线从求解单条轨迹,拉升到分析整个系统的全局、长期行为。它不再满足于回答“这个点接下来会去哪?”,而是要回答更深刻的问题:

  • 系统最终会趋向于什么样的状态?是否存在一些“终点”或“归宿”?
  • 这些归宿是稳定的吗?如果系统受到轻微的扰动,它会回到原来的归宿,还是会奔向一个完全不同的未来?
  • 当系统本身的规则(即ODE中的参数)发生微小改变时,整个系统的行为蓝图是否会发生天翻地覆的质变?

这些问题,对于理解和设计复杂的AI模型来说,绝非空谈。一个神经网络的训练过程,本身就是一个高维的动力系统。模型的参数在损失函数的“引力场”中不断演化,我们希望它最终能收敛到一个稳定的“最优”状态。一个生成模型,如GAN或Flow Matching模型,其核心是构建一个动力系统,我们希望它能将随机的噪声“塑造”成符合特定数据分布的、有意义的输出。这个过程的成败,完全取决于我们所构建的动力系统的全局结构。

因此,本章将是你认知上的又一次飞跃。我们将学习动力系统的核心语言:相空间、不动点、稳定性、吸引子和分岔。这些概念将为你提供一个强大的理论框架,去分析、诊断、甚至设计AI模型的长期行为与稳定性,让你真正洞悉AI模型演化的内在蓝图。

第一部分:动力系统的核心数学理论

让我们深入动力系统的世界,掌握它的基本词汇和语法。这些概念将构成我们分析一切动态行为的基石。

相空间、流与不变集

在第一章,我们已经接触了相空间(Phase Space),即系统所有可能状态 y\mathbf{y}y 组成的集合 Rn\mathbb{R}^nRn。现在,我们要在这个“舞台”上,引入更宏大的概念。

流(Flow)

我们知道,对于一个初始值问题 y(t0)=y0\mathbf{y}(t_0) = \mathbf{y}_0y(t0)=y0,ODE dydt=f(y)\frac{d\mathbf{y}}{dt} = f(\mathbf{y})dtdy=f(y)(为简化,我们先考虑不显式依赖于 ttt 的自治系统)的解是一条曲线 y(t)\mathbf{y}(t)y(t)

现在,我们定义一个映射(函数),记作 ϕt(y0)\phi_t(\mathbf{y}_0)ϕt(y0)。这个映射的作用是,输入一个初始点 y0\mathbf{y}_0y0,它会返回这个点在演化了 ttt 时间之后到达的位置,也就是 y(t)\mathbf{y}(t)y(t)。这个映射 ϕt\phi_tϕt 就被称为动力系统的流(Flow)

“流”这个词非常形象。想象整个相空间是一片流体,向量场 f(y)f(\mathbf{y})f(y) 就是这片流体的速度场。那么,流 ϕt\phi_tϕt 就描述了在这片流体中,每一个粒子经过时间 ttt 后的“漂流”结果。它不是描述单个点的运动,而是描述了整个相空间所有点同时发生的、同步的演化

流具有一个非常优美的性质,即群性质
ϕt+s(y0)=ϕt(ϕs(y0)) \phi_{t+s}(\mathbf{y}_0) = \phi_t(\phi_s(\mathbf{y}_0)) ϕt+s(y0)=ϕt(ϕs(y0))
这非常符合直觉:一个点先流动 sss 秒,再流动 ttt 秒,其最终位置和它一次性流 t+st+st+s 秒是完全一样的。流 ϕt\phi_tϕt 构成了相空间上的一个变换群,它完美地、确定性地描述了整个系统的演化。

不变集(Invariant Set)

在流的冲刷下,相空间中的点都在不停地运动。但有没有一些特殊的区域,一旦进去了,就再也出不来了?

这就是不变集(Invariant Set) 的概念。

一个相空间的子集 SSS,如果对于其中任意一点 y0∈S\mathbf{y}_0 \in Sy0S,它在流 ϕt\phi_tϕt 的作用下,对于所有时间 ttt(包括正时间和负时间),其位置 ϕt(y0)\phi_t(\mathbf{y}_0)ϕt(y0) 仍然在 SSS 里面,那么我们就称 SSS 是一个不变集。

不变集是动力系统的“骨架”,是轨迹被“囚禁”的地方。理解了不变集,就理解了系统行为的核心结构。

最简单的不变集有哪些?

  • 整条积分曲线:一条从无穷过去到无穷未来的完整轨迹,其本身就是一个不变集。
  • 不动点(Fixed Point):一个速度为零的点,它自己就是一个最简单的不变集。
  • 周期轨道(Periodic Orbit)/ 极限环(Limit Cycle):一条封闭的轨迹,系统会周而复始地在上面运动,它也是一个不变集。

寻找并分析这些不变集,是动力系统分析的首要任务。

核心要素:不动点与稳定性

在所有的不变集中,最基本、最核心的就是不动点(Fixed Points),也称为平衡点(Equilibria)

什么是不动点?

不动点是相空间中速度为零的点。根据我们的ODE dydt=f(y)\frac{d\mathbf{y}}{dt} = f(\mathbf{y})dtdy=f(y),这意味着不动点 y∗\mathbf{y}^*y 是所有满足代数方程 f(y∗)=0f(\mathbf{y}^*) = \mathbf{0}f(y)=0 的解。

在不动点上,系统的所有变化都停止了。它是一个“静止”的状态。如果系统恰好被放置在一个不动点上,它将永远停留在那里。

寻找不动点通常是分析一个动力系统的第一步。但这还不够,我们更关心的是:如果系统不恰好在不动点上,而是在它附近,会发生什么? 系统是会向不动点靠拢,还是会离它远去?这就是稳定性(Stability) 分析。

线性化分析:在不动点附近“看清”动力学

一个非线性函数 f(y)f(\mathbf{y})f(y) 通常非常复杂,难以分析。但是,在任何一点 y∗\mathbf{y}^*y 的一个足够小的邻域内,任何“表现良好”的函数都可以用它的线性部分来近似。这正是泰勒展开的核心思想。

让我们在不动点 y∗\mathbf{y}^*y 附近对 f(y)f(\mathbf{y})f(y) 进行泰勒展开:
f(y)≈f(y∗)+Jf(y∗)(y−y∗)+高阶项 f(\mathbf{y}) \approx f(\mathbf{y}^*) + J_f(\mathbf{y}^*)(\mathbf{y} - \mathbf{y}^*) + \text{高阶项} f(y)f(y)+Jf(y)(yy)+高阶项
由于 y∗\mathbf{y}^*y 是不动点,我们有 f(y∗)=0f(\mathbf{y}^*) = \mathbf{0}f(y)=0。如果我们只看 y\mathbf{y}y 非常靠近 y∗\mathbf{y}^*y 的情况,那么 (y−y∗)(\mathbf{y} - \mathbf{y}^*)(yy) 是一个很小的向量,高阶项(二次方、三次方…)会更小,可以暂时忽略。于是,我们得到一个线性近似:
f(y)≈Jf(y∗)(y−y∗) f(\mathbf{y}) \approx J_f(\mathbf{y}^*)(\mathbf{y} - \mathbf{y}^*) f(y)Jf(y)(yy)
这里的 Jf(y∗)J_f(\mathbf{y}^*)Jf(y) 是函数 fff 在不动点 y∗\mathbf{y}^*y 处计算的雅可比矩阵(Jacobian Matrix)。对于一个状态为 y=(y1,…,yn)\mathbf{y} = (y_1, \dots, y_n)y=(y1,,yn),函数为 f=(f1,…,fn)f = (f_1, \dots, f_n)f=(f1,,fn) 的系统,雅可比矩阵是一个 n×nn \times nn×n 的矩阵,其元素为:
(Jf)ij=∂fi∂yj (J_f)_{ij} = \frac{\partial f_i}{\partial y_j} (Jf)ij=yjfi
它本质上是多元函数的一阶导数。

现在,我们定义一个新的坐标 z=y−y∗\mathbf{z} = \mathbf{y} - \mathbf{y}^*z=yy,它表示状态相对于不动点的偏移量。那么 dzdt=dydt\frac{d\mathbf{z}}{dt} = \frac{d\mathbf{y}}{dt}dtdz=dtdy。于是,在不动点附近,我们原来的非线性ODE dydt=f(y)\frac{d\mathbf{y}}{dt} = f(\mathbf{y})dtdy=f(y) 就被近似成了一个线性ODE
dzdt=Az其中 A=Jf(y∗) \frac{d\mathbf{z}}{dt} = A\mathbf{z} \quad \text{其中 } A = J_f(\mathbf{y}^*) dtdz=Az其中 A=Jf(y)
这个过程被称为线性化(Linearization)。它的威力在于,线性ODE的行为是我们可以完全理解和分类的,而它的行为,在绝大多数情况下,就决定了原非线性系统在不动点附近的局部行为。

稳定性判据:雅可比矩阵的特征值

一个线性系统 dzdt=Az\frac{d\mathbf{z}}{dt} = A\mathbf{z}dtdz=Az 的行为,完全由常数矩阵 AAA特征值(Eigenvalues)特征向量(Eigenvectors) 决定。

回忆一下线性代数,矩阵 AAA 的特征向量 v\mathbf{v}v 是那些被 AAA 作用后方向不变的向量(Av=λvA\mathbf{v} = \lambda\mathbf{v}Av=λv),而特征值 λ\lambdaλ 则是这个向量被拉伸或压缩的比例。

线性ODE的通解是形如 z(t)=∑icieλitvi\mathbf{z}(t) = \sum_i c_i e^{\lambda_i t} \mathbf{v}_iz(t)=icieλitvi 的线性组合。从这个解的形式我们可以看到,特征值 λi\lambda_iλi 的性质直接决定了系统是收敛还是发散:

  • 如果 λi\lambda_iλi实部 Re(λi)<0\text{Re}(\lambda_i) < 0Re(λi)<0,那么 eλite^{\lambda_i t}eλit 这一项会随着时间 t→∞t \to \inftyt 指数衰减到0。
  • 如果 λi\lambda_iλi实部 Re(λi)>0\text{Re}(\lambda_i) > 0Re(λi)>0,那么 eλite^{\lambda_i t}eλit 这一项会随着时间 t→∞t \to \inftyt 指数爆炸。
  • 如果 λi\lambda_iλi虚部 Im(λi)≠0\text{Im}(\lambda_i) \neq 0Im(λi)=0,那么 eλite^{\lambda_i t}eλit 会带来振荡行为(因为 eiωt=cos⁡(ωt)+isin⁡(ωt)e^{i\omega t} = \cos(\omega t) + i\sin(\omega t)et=cos(ωt)+isin(ωt))。

基于此,我们可以对不动点进行精细的分类(以二维系统为例,其雅可比矩阵有2个特征值 λ1,λ2\lambda_1, \lambda_2λ1,λ2):

  1. 稳定不动点(汇点, Sink):如果所有特征值的实部都为负 (Re(λi)<0\text{Re}(\lambda_i) < 0Re(λi)<0)。

    • 稳定节点 (Stable Node)λ1,λ2\lambda_1, \lambda_2λ1,λ2 都是负实数。所有附近的轨迹都会径直地冲向不动点。
    • 稳定焦点 (Stable Focus/Spiral)λ1,λ2\lambda_1, \lambda_2λ1,λ2 是一对实部为负的共轭复数。所有附近的轨迹都会螺旋式地盘旋着收敛到不动点。
  2. 不稳定不动点(源点, Source 或 鞍点, Saddle):如果至少一个特征值的实部为正 (Re(λi)>0\text{Re}(\lambda_i) > 0Re(λi)>0)。

    • 不稳定节点 (Unstable Node)λ1,λ2\lambda_1, \lambda_2λ1,λ2 都是正实数。所有附近的轨迹都会径直地远离不动点。
    • 不稳定焦点 (Unstable Focus/Spiral)λ1,λ2\lambda_1, \lambda_2λ1,λ2 是一对实部为正的共轭复数。所有附近的轨迹都会螺旋式地盘旋着远离不动点。
    • 鞍点 (Saddle Point)λ1,λ2\lambda_1, \lambda_2λ1,λ2 都是实数,但一正一负。这是最有趣的情况之一。在特征向量对应的方向上,一个方向是稳定收敛的(称为稳定流形),另一个方向是不稳定发散的(称为不稳定流形)。轨迹在大部分方向上都会远离不动点,只有极少数精准地落在稳定流形上的轨迹才会收敛。它的形状就像一个马鞍。
  3. 临界情况(Center, etc.):如果特征值的最大实部为零。

    • 中心点 (Center)λ1,λ2\lambda_1, \lambda_2λ1,λ2 是一对纯虚数。线性化系统中的轨迹会形成一系列闭合的椭圆轨道,不靠近也不远离。在线性化失效的情况下,非线性项可能会导致它变成一个弱的螺旋或保持中心点。

让我们用代码来直观地感受这些不同类型的不动点附近的相图(Phase Portrait)。

在这里插入图片描述

通过上图,你可以清晰地看到不同特征值组合所对应的、截然不同的局部动力学行为。这种通过分析雅可比矩阵特征值来判断不动点稳定性的方法,是动力系统分析中最强大、最常用的工具。

长期行为的归宿:吸引子与极限环

不动点是系统最简单的归宿。但系统的长期行为是否只有静止这一种可能?当然不是。

吸引子(Attractor)

吸引子是一个更广义的概念,它描述了系统长期行为的最终归宿。一个吸引子 SSS 是相空间中的一个不变集,它具有一个关键特性:它有一个“吸引盆地”(Basin of Attraction),记作 B(S)B(S)B(S)。任何从吸引盆地 B(S)B(S)B(S) 内出发的轨迹,随着时间 t→∞t \to \inftyt,都会无限地趋近于吸引子 SSS

可以把吸引子想象成相空间中的“黑洞”,它会把它势力范围(吸引盆地)内的一切都“吸”过去。

  • 一个稳定不动点(汇点)就是最简单的吸引子,我们称之为零维吸引子。它的吸引盆地就是它周围那片能让轨迹收敛于它的区域。
  • 但吸引子不一定是一个点。

极限环(Limit Cycle)

在非线性系统中,会出现一种非常迷人的现象:极限环

极限环是一个孤立的周期性轨道。 “周期性”意味着轨迹是一条封闭的曲线,“孤立”意味着在它的紧邻周围,没有其他的周期轨道。

极限环也可以是吸引子。一个稳定极限环,就像一个环形的“引力槽”。它附近的轨迹,无论是在环内还是环外,都不会静止,也不会无限远离,而是会像行星被捕获进轨道一样,螺旋式地盘旋着无限趋近于这条极限环。系统的长期行为表现为一种持续的、稳定的振荡

在这里插入图片描述

这张图是著名的范德波尔振荡器(Van der Pol oscillator)的相图。你可以清晰地看到,无论轨迹从哪里开始(除了原点这个不稳定的不动点),最终都会被吸引到中间那个椭圆形的极限环上。这个极限环就是一个一维吸引子

除了稳定极限环,还有不稳定极限环(像一个排斥性的环形山脊)和半稳定极限环。

吸引子的维度还可以更高。著名的洛伦兹吸引子(我们在上一章的习题中见过),就是一个具有分形结构的奇异吸引子(Strange Attractor)。它的维度介于2和3之间,轨迹在上面永不重复地混沌运动,展现了确定性系统内在的随机性,也就是“蝴蝶效应”。

分岔(Bifurcation)

至此,我们分析的都是一个固定的动力系统。但现实中,系统的规则往往依赖于某些外部参数。例如,在洛伦兹系统中,σ,ρ,β\sigma, \rho, \betaσ,ρ,β 就是参数。当这些参数发生变化时,系统的动力学行为会如何改变?

大多数时候,微调一个参数,系统的相图只会发生微小的、量的变化(比如不动点的位置移动一点点,极限环的大小变化一点点)。

分岔现象的发生,则意味着质的改变

分岔是指,当系统参数 μ\muμ 缓慢地穿过某个临界值 μc\mu_cμc 时,系统的相空间结构(如不动点的数量、稳定性或吸引子的类型)发生突然的、定性的变化。

这是系统从一种行为模式剧烈转变为另一种行为模式的临界点,是复杂性产生的根源。

最简单的分岔是鞍结分岔(Saddle-Node Bifurcation)。考虑一维系统:
x′=μ−x2 x' = \mu - x^2 x=μx2
这里的 μ\muμ 是一个可调参数。不动点满足 x′=0x' = 0x=0,即 x2=μx^2 = \mux2=μ

  • μ<0\mu < 0μ<0 时,方程 x2=μx^2 = \mux2=μ 无实数解。系统没有不动点。所有轨迹都会向 x→−∞x \to -\inftyx 运动。
  • μ=0\mu = 0μ=0 时,方程 x2=0x^2 = 0x2=0 有一个解 x∗=0x^*=0x=0。系统在原点有一个半稳定不动点
  • μ>0\mu > 0μ>0 时,方程 x2=μx^2 = \mux2=μ 有两个解 x∗=±μx^* = \pm\sqrt{\mu}x=±μ。系统凭空出现了一对不动点!通过分析导数 f′(x)=−2xf'(x) = -2xf(x)=2x,我们可以判断:x∗=+μx^*=+\sqrt{\mu}x=+μ 是稳定不动点(汇点),x∗=−μx^*=-\sqrt{\mu}x=μ 是不稳定不动点(源点)。

在这里插入图片描述

上面的分岔图清晰地展示了这一过程。当参数 μ\muμ 从左到右穿过0时,系统的相图发生了根本性的改变:从没有任何不动点,到突然“诞生”出一个稳定的和一个不稳定的不动点。这就是分岔的魔力。其他更复杂的分岔类型还有跨临界分岔、Hopf分岔(不动点失稳,诞生出一个极限环)等,它们共同构成了系统产生丰富、复杂行为的剧本。

第二部分:思想的桥梁——动力系统与AI的深度融合

掌握了动力系统的核心理论,我们现在拥有了一副全新的“眼镜”。戴上它,我们再来看待AI模型,会发现许多之前模糊不清的概念,都变得豁然开朗。

Flow Matching:直接学习“流”

生成模型是当前AI领域最炙手可热的方向之一。其核心任务是:学习一个给定的复杂数据分布 pdata(x)p_{data}(\mathbf{x})pdata(x)(比如,所有真实人脸图片的分布),并能从中采样生成新的、逼真的样本。

许多方法,如GANs和VAEs,通过学习一个从简单隐空间到数据空间的复杂映射来实现。而更新的扩散模型(我们将在第四篇详述)则通过模拟一个随机过程,先将数据变成噪声,再学习其逆过程。

Flow Matching(流匹配)则提供了一种更直接、更优雅的视角,它与我们本章学习的动力系统概念完美契合。

它的核心思想是:我们能否直接学习一个定义在数据空间上的向量场 fθ(x,t)f_\theta(\mathbf{x}, t)fθ(x,t),使得由这个向量场驱动的ODE(或其对应的 ϕt\phi_tϕt),能够将一个极其简单的先验分布 p0p_0p0(如标准高斯分布,即一团随机噪声)“推动”和“形变”成我们想要的目标数据分布 p1p_1p1

也就是说,我们寻找一个ODE:
dxtdt=fθ(xt,t) \frac{d\mathbf{x}_t}{dt} = f_\theta(\mathbf{x}_t, t) dtdxt=fθ(xt,t)
使得如果我们从 x0∼p0\mathbf{x}_0 \sim p_0x0p0 开始积分,得到的 x1=ϕ1(x0)\mathbf{x}_1 = \phi_1(\mathbf{x}_0)x1=ϕ1(x0) 将会服从目标分布 p1p_1p1

在这里插入图片描述

这张图形象地展示了Flow Matching或类似思想(连续归一化流)的过程。左边是简单的高斯噪声分布,右边是复杂的目标数据分布(如两个月亮)。中间的箭头代表了我们学习到的向量场 fθf_\thetafθ。这个向量场定义了一个“流”,平滑地将左边的点云变换成了右边的形状。

Flow Matching的精妙之处在于它设计了一种非常聪明的训练目标,可以直接回归(匹配)这个目标向量场,而无需像扩散模型那样模拟一个带噪声的随机过程,也避免了GANs训练不稳定的问题。

从动力系统的角度看,Flow Matching的训练过程,就是在学习一个动力系统的“演化蓝图”。我们学习的神经网络 fθf_\thetafθ,就是这个蓝图本身。一旦学成,我们就拥有了一个确定性的ODE,它的“流” ϕt\phi_tϕt 就是一个强大的生成器。这与我们第一部分对“流”的定义和理解,实现了完美的理论闭环。

生成模型的吸引子视角

让我们换一个更宏观的视角来看待生成模型。

想象一个极其高维的相空间,空间中的每一个点都对应一张图片。在这个空间中,所有“看起来像真实人脸”的图片,并不会随机散落,而是聚集在一个非常复杂的、低维的子空间上,我们称之为数据流形(Data Manifold)

现在,我们可以提出一个大胆的假设:一个训练完美的生成模型,其动力学在相空间中创造了一个吸引子,而这个吸引子的几何形状,恰好就是那个真实的数据流形。

  • 当你使用这个模型进行生成时,你从一个随机噪声点(位于吸引盆地中的某处)出发,开始沿着模型定义的动力学(无论是ODE还是SDE)进行演化。
  • 这个演化过程,就是一条轨迹被数据流形这个巨大的吸引子“捕获”并拉近的过程。
  • 随着时间的推移,轨迹无限趋近于这个吸引子,最终落到流形上,形成一个我们肉眼看来非常逼真的样本(一张新的人脸)。

这个“吸引子视角”为我们理解生成模型的常见问题提供了深刻的洞察。例如,模式坍塌(Mode Collapse) 是GANs中一个臭名昭著的问题,即生成器反复生成少数几个或一类非常相似的样本,缺乏多样性。

从吸引子视角看,模式坍塌意味着:我们学习到的吸引子结构过于简单,没能成功复刻出整个复杂的数据流形。

  • 也许,它只学成了一个稳定的不动点,所以无论从哪里开始,最终都生成同一张图片。
  • 也许,它学成了一个简单的极限环,所以生成的图片在几张相似的面孔之间循环。
  • 它没能学会数据流形上所有的“山川湖海”,只学会了其中一个“深潭”。

因此,改进生成模型的一个重要方向,就是如何设计更好的模型结构和训练方法,以确保它能学习到形态更复杂、更能覆盖整个数据多样性的吸引子。

模型收敛性与稳定性分析

动力系统的稳定性理论,与深度学习的优化过程也息息相关。

一个神经网络的训练过程,本质上也是一个动力系统。只不过,这次演化的状态不再是数据,而是网络的参数 θ\thetaθ。梯度下降算法可以被看作是这个动力系统的一个离散时间近似:
θk+1=θk−η∇L(θk) \theta_{k+1} = \theta_k - \eta \nabla L(\theta_k) θk+1=θkηL(θk)
其中 η\etaη 是学习率。

如果我们将学习率看作一个微小的时间步长,这个过程可以被看作是梯度流(Gradient Flow) 这个ODE的欧拉离散化:
dθdt=−∇L(θ) \frac{d\theta}{dt} = -\nabla L(\theta) dtdθ=L(θ)
在这个“参数相空间”中:

  • 不动点在哪里?在所有梯度为零 ∇L(θ∗)=0\nabla L(\theta^*) = 0L(θ)=0 的地方。这正是损失函数的临界点,包括局部最小值、局部最大值和鞍点。
  • 我们的目标是找到一个稳定的不动点,并且希望它是一个全局最小值
  • 如何判断一个临界点 θ∗\theta^*θ 的稳定性?我们可以分析这个动力学系统在 θ∗\theta^*θ 处的雅可比矩阵,即 J=−∇2L(θ∗)=−HJ = -\nabla^2 L(\theta^*) = -HJ=2L(θ)=H,其中 HHH 是损失函数的海森矩阵(Hessian Matrix)
    • 如果海森矩阵 HHHθ∗\theta^*θ 处是正定的(所有特征值为正),那么雅可比矩阵 −H-HH 的所有特征值都为负。这意味着 θ∗\theta^*θ 是一个稳定的不动点,对应于一个局部最小值。梯度下降的轨迹会收敛到这里。
    • 如果海森矩阵 HHHθ∗\theta^*θ 处是负定的(所有特征值为负),那么 θ∗\theta^*θ 是一个不稳定的不动点,对应于一个局部最大值
    • 如果海森矩阵 HHHθ∗\theta^*θ 处的特征值有正有负,那么 θ∗\theta^*θ 是一个鞍点

现代深度学习的研究表明,在高维空间中,局部最小值问题并不像我们想象的那么严重,真正的挑战来自于大量的鞍点。训练过程就像在一个遍布马鞍的高原上行走,很容易在某个鞍点的平坦区域停滞不前。

动量(Momentum)、Adam等更高级的优化算法,可以被看作是为这个简单的梯度流动力系统增加了更复杂的“物理”效应(如惯性),帮助参数轨迹“冲”过这些鞍点,更快地找到稳定的山谷。

通过动力系统的视角,我们不再把优化看作一个简单的“下山”过程,而是看作一个在高维、复杂地形中寻找稳定吸引子的过程。这为我们理解和设计优化算法提供了更根本的物理和数学直觉。

第三部分:练习与巩固

理论的深度需要通过实践来检验。这些练习题将帮助你巩固对动力系统核心概念的理解,并将它们与你已知的数学和AI知识联系起来。

理论题

  1. 概念辨析:请用自己的话,并结合简单的示意图,解释不动点(Fixed Point)极限环(Limit Cycle)吸引子(Attractor) 这三个概念之间的区别与联系。一个稳定的不动点是吸引子吗?一个极限环是吸引子吗?请说明理由。

  2. 雅可比矩阵的威力:一个二维线性动力系统 dydt=Ay\frac{d\mathbf{y}}{dt} = A\mathbf{y}dtdy=Ay 的行为由矩阵 AAA 的特征值决定。请画出当特征值为以下情况时,原点(不动点)附近的相图草图,并为每种情况命名(如稳定节点、鞍点等)。

    • (a) λ1=−1,λ2=−3\lambda_1 = -1, \lambda_2 = -3λ1=1,λ2=3
    • (b) λ1=−2+3i,λ2=−2−3i\lambda_1 = -2 + 3i, \lambda_2 = -2 - 3iλ1=2+3i,λ2=23i
    • (c) λ1=2,λ2=−1\lambda_1 = 2, \lambda_2 = -1λ1=2,λ2=1
    • (d) λ1=0.5,λ2=2\lambda_1 = 0.5, \lambda_2 = 2λ1=0.5,λ2=2
  3. 分岔的本质:我们以 x′=μ−x2x' = \mu - x^2x=μx2 为例介绍了鞍结分岔。现在考虑另一个著名的分岔:超临界叉式分岔(Supercritical Pitchfork Bifurcation),其范式为 x′=μx−x3x' = \mu x - x^3x=μxx3

    • (a) 找出该系统的不动点是如何随参数 μ\muμ 变化的。
    • (b) 分析这些不动点的稳定性。
    • (c) 描述当参数 μ\muμ 从负值穿过0变到正值时,系统的相图发生了怎样的定性变化。
  4. AI与动力系统:请用动力系统中吸引子吸引盆地的概念,来解释为什么在图像分类任务中,一个训练良好的神经网络对于输入图像的微小扰动(例如,移动几个像素或轻微的噪声)具有一定的鲁棒性(Robustness)

编程与计算题

  1. 洛伦兹系统的不动点分析
    对于洛伦兹系统(参数 σ=10,ρ=28,β=8/3\sigma=10, \rho=28, \beta=8/3σ=10,ρ=28,β=8/3):
    {dxdt=σ(y−x)dydt=x(ρ−z)−ydzdt=xy−βz \begin{cases} \frac{dx}{dt} = \sigma(y-x) \\ \frac{dy}{dt} = x(\rho-z)-y \\ \frac{dz}{dt} = xy-\beta z \end{cases} dtdx=σ(yx)dtdy=x(ρz)ydtdz=xyβz

    • (a) 求解该系统的所有不动点。(提示:除了原点外,还有两个对称的不动点)。
    • (b) 选择其中一个非原点的不动点,计算系统在该点的雅可比矩阵。
    • (c) 使用Numpy计算该雅可比矩阵的特征值。根据特征值的性质,判断这个不动点是稳定还是不稳定的?它属于哪种类型(节点、焦点、鞍点)?
  2. 绘制捕食者-被捕食者模型的相图
    经典的洛特卡-沃尔泰拉(Lotka-Volterra)方程描述了捕食者(狐狸 yyy)和被捕食者(兔子 xxx)数量的动态关系:
    {dxdt=αx−βxydydt=δxy−γy \begin{cases} \frac{dx}{dt} = \alpha x - \beta xy \\ \frac{dy}{dt} = \delta xy - \gamma y \end{cases} {dtdx=αxβxydtdy=δxyγy
    使用参数 α=1.5,β=0.8,δ=0.5,γ=2.0\alpha=1.5, \beta=0.8, \delta=0.5, \gamma=2.0α=1.5,β=0.8,δ=0.5,γ=2.0

    • (a) 找出系统唯一的非零不动点 (x∗,y∗)(x^*, y^*)(x,y)
    • (b) 使用 matplotlib.pyplot.quiver 绘制该系统在第一象限的相图(向量场)。
    • (c) 使用 scipy.integrate.solve_ivp 从不同的初始值(例如,(3,3), (5,1), (1,5))出发,绘制几条轨迹。观察这些轨迹是否形成了闭合的环路(极限环的前身,对于这个简单模型是中心点)。
  3. Flow Matching概念验证
    假设我们的目标是将一个一维标准正态分布 p0=N(x∣0,1)p_0 = N(x|0, 1)p0=N(x∣0,1),通过一个时间从0到1的流,变换为一个均值为5、标准差仍为1的正态分布 p1=N(x∣5,1)p_1 = N(x|5, 1)p1=N(x∣5,1)

    • (a) 构造一个最简单的确定性路径(流)xtx_txt ,使得 x0∼p0x_0 \sim p_0x0p0 时, x1∼p1x_1 \sim p_1x1p1。(提示:考虑线性插值 xt=a(t)x0+b(t)x_t = a(t)x_0 + b(t)xt=a(t)x0+b(t),并确定 a(t)a(t)a(t)b(t)b(t)b(t))。
    • (b) 根据你构造的流 xtx_txt,计算出其对应的速度向量场 v(xt,t)=dxtdtv(x_t, t) = \frac{dx_t}{dt}v(xt,t)=dtdxt。这个向量场就是Flow Matching想要学习的目标。
  4. 优化算法的动力学
    考虑一个简单的一维损失函数 L(θ)=12θ2L(\theta) = \frac{1}{2}\theta^2L(θ)=21θ2

    • (a) 写出标准梯度下降 θk+1=θk−η∇L(θk)\theta_{k+1} = \theta_k - \eta \nabla L(\theta_k)θk+1=θkηL(θk) 的更新规则。将其视为一个离散动力系统 θk+1=g(θk)\theta_{k+1} = g(\theta_k)θk+1=g(θk)。这个系统的不动点在哪里?当学习率 η\etaη 在什么范围内时,这个不动点是稳定的?

    • (b) 写出带momentum的梯度下降更新规则:
      vk+1=βvk−η∇L(θk)θk+1=θk+vk+1 \begin{aligned} v_{k+1} &= \beta v_k - \eta \nabla L(\theta_k) \\ \theta_{k+1} &= \theta_k + v_{k+1} \end{aligned} vk+1θk+1=βvkηL(θk)=θk+vk+1
      这是一个二维的离散动力系统,状态为 (θ,v)(\theta, v)(θ,v)。设 β=0.9,η=0.1\beta=0.9, \eta=0.1β=0.9,η=0.1,写出这个二维线性系统的更新矩阵,并判断其不动点 (θ∗,v∗)=(0,0)(\theta^*, v^*) = (0,0)(θ,v)=(0,0) 的稳定性。

思考与拓展题

  1. 吸引子的边界:吸引盆地的边界(称为盆地边界,Basin Boundary)通常是极其复杂的。在鞍点的情况下,稳定流形本身就是盆地边界。请思考,为什么从盆地边界上出发的轨迹,既不会被吸引子吸引,也不会完全逃逸?这对实际物理系统或AI模型的行为意味着什么?

  2. Hopf分岔与振荡:Hopf分岔描述了一个稳定不动点如何通过失稳而“生”出一个稳定的极限环。这在生物学和化学中有许多应用(如心跳、化学振荡)。请设想一个AI应用场景,其中我们不希望模型收敛到一个静止状态,而是希望它产生一种稳定、持续的周期性行为。你能举一个例子吗?(例如,在机器人控制、内容生成等方面)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值