做在线自适应动态规划(ADP)的人,多少都吃过持续激励(Persistence of Excitation, PE)条件的亏。我印象最深的一次是在离线仿真里,Critic 网络权值曲线收敛得又平又稳,误差也压到了 10 的负四次方,结果把同一套参数搬到在线运行场景,跑了十几分钟权值突然开始漂,最后系统直接发散。事后复盘,问题不在算法本身,而在仿真时我手动给的探索信号足够大、时间足够长,到了在线运行,系统长时间在工作点附近稳定运行,回归向量被压在一个低维空间里,持续激励条件事实上失效了。
这篇文章不是重新复述教材里的 PE 定义,而是从原理到工程实践把 PE 这件事讲透。你会看到 PE 条件是怎么卡住在线 ADP 的、失去 PE 后系统会出现哪几种典型的“伪收敛”症状、不同 ADP 算法框架对 PE 的实际处理策略有什么区别,以及我在真实项目中如何设计激励信号、在线监测 PE、避免部署翻车。适合正在做 ADP 控制器设计、强化学习在线调参、或者被参数收敛问题折磨过的人参考。
1. 一个让在线ADP“崩掉”的真实场景:激励不足
1.1 看似收敛实则“伪收敛”的典型案例
先说前面提到的那个场景。系统是一个二阶非线性对象,我用的在线 ADP 结构是 Actor-Critic,Critic 负责逼近值函数,Actor 负责生成控制律,权值更新采用基于梯度下降的自适应律。离线仿真阶段,我给控制输入额外叠加了一个多正弦激励信号,幅值大概是额定输入的 3%。因为激励始终存在,系统的状态轨迹一直在不同方向上有持续的运动,Critic 的基函数向量在轨迹上被充分激活,信息矩阵最小特征值一直保持在某个正数之上,权值收敛得很干净。
到了在线部署阶段,我天真地把激励信号去掉了,认为网络已经收敛,系统应该进入“纯控制”模式。结果系统确实在初始几个周期表现得很好,误差很小。但过了五分钟、十分钟,权值开始缓慢偏离,刚开始还看不出什么,因为输出误差并没有立刻变大,等到权值偏到某个程度,控制量突然出现明显抖振,接着状态发散,整个闭环崩溃。
复盘时我用保存的数据算了一下信息矩阵的最小特征值,发现在系统稳定运行到工作点附近之后,这个值在以指数速度往下掉,幅度衰减了几个数量级。这意味着回归向量长期落在同一个低维子空间里,系统已经不再给参数辨识提供新的方向信息。所谓的“参数收敛”,只是在激励充足时间段内的收敛,并不代表网络真的学到了全局正确的值函数——这就是典型的伪收敛。
1.2 在线学习与离线训练在激励需求上的本质差异
很多人会把深度强化学习里那种“经验回放 + 大批量离线更新”的思路直接搬到在线 ADP 里,觉得只要数据存得够多、训练步数够长,网络总能学到东西。但在线 ADP 和普通的离线强化学习有一个本质区别:在线 ADP 的数据是在当前控制器驱动下实时采集的,采集到的状态分布会被当前策略影响。
离线强化学习拿的是历史数据集,数据覆盖可以由一个行为策略事先保证;而在线 ADP 里,控制器本身的目标是让系统稳定运行、跟踪参考输入,如果系统已经到达稳定工作点,那么后续采样的状态基本都聚在平衡点附近的小邻域里。此时回归向量不断重复地指向几乎相同的方向,信息矩阵的“方向覆盖能力”就到头了。
这就像一个摄影师拍一个三维物体,如果只在一个固定角度拍照,拍一万张也没用,因为每张照片携带的几何信息高度相关。持续激励条件要求的并不是“数据多”,而是“数据在不同方向上有信息量”。在线 ADP 中,控制器为了做好控制往往会主动抑制状态波动,这恰好与“需要状态波动去激励学习”的需求形成直接冲突——这就是探索与利用的悖论在连续控制问题上的具体体现。
1.3 误差评价指标在ADP中的“欺骗性”
在做博文分享和写论文汇报时,我最常被问到的就是:“我 Critic 网络输出误差已经很小的,为什么还说参数没收敛?”这里有一个非常容易被忽视的陷阱:误差小 ≠ 学到了真值。
在 ADP 的框架里,Critic 通过学习最小化贝尔曼残差,也就是让当前价值估计尽量满足哈密顿-雅可比-贝尔曼方程。但如果系统状态一直在一个低维子空间里运动,那么只需要在这个子空间上让贝尔曼残差接近零,网络参数就能让误差看起来很小。出了这个子空间,网络给出的值函数估计可能错得很离谱。
我把这个用线性情况做个简化说明。假设值函数用两个参数近似,J ≈ θ₁x₁ + θ₂x₂,而系统工作过程中状态始终满足 x₁ + x₂ = 0 的约束,那么模型实际只能辨识出 θ₁ - θ₂ 这个组合方向,θ₁ 和 θ₂ 各自是多少完全无法区分。表面上看误差非常小,仿佛训练成功了,可一旦工况变化使系统真正偏离这个约束平面,原来的“最优”权值就会立刻失效。
因此在线 ADP 的部署调试中,监控训练误差远远不够,还要监控回归信息和激励水平。我在后面第 5 章会专门讲在线 PE 监测的具体做法。
2. 持续激励条件的数学本质与几何直觉
2.1 从线性回归的参数辨识说起
要把 PE 条件讲明白,最好从最基础的线性回归开始。考虑一个简单的参数辨识问题:
y(t) = φᵀ(t)θ
其中 φ(t) 是回归向量,θ 是未知常数参数向量。我们可以用梯度法或最小二乘法去估计 θ̂。比如最小二乘的递推形式里,信息矩阵 R(t) 会不断累加回归向量的外积:
R(t) = ∫₀ᵗ φ(τ)φᵀ(τ)dτ
这个信息矩阵的用途是描述“我们已经从数据里获得了多少关于 θ 的信息”。如果 R(t) 是奇异的,或者最小特征值趋于零,说明某些参数方向上没有任何数据支撑,这种情况下无论时间多久,估计值 θ̂ 都无法保证收敛到真值 θ。
持续激励条件正是在这里登场。严格地说,如果回归向量 φ 满足 PE 条件,就存在正数 α 和 T,使得对任意时刻 t₀ 都有:
∫ₜ₀ᵗ₀⁺ᵀ φ(τ)φᵀ(τ)dτ ≥ αI
这个不等式等价于说:在任意长度为 T 的时间窗口内,信息矩阵不仅要是正定的,还要有大于 α 的最小特征值。注意“任意”和“持续”两个关键词,它要求激励不只是初始阶段有,而是全程所有时间窗口都要保持这个信息充足性。这也是为什么叫“持续激励”,而不是“初始激励”或者“间歇激励”。
2.2 PE条件为什么要求“一致正定”
有些朋友可能会想,既然系统运行时间长,只要在某个时间段内激发了所有方向,信息矩阵肯定正定了,为什么还要要求任意时间窗口内都正定?这背后是时变系统和遗忘机制在起作用。
在在线 ADP 中,为了跟踪时变环境,递推算法通常带有遗忘因子,让旧数据的影响慢慢衰减。如果激励存在一段很长的“空白期”,旧的信息被遗忘,新的信息又没有补充,信息矩阵就会退化。另一个更隐蔽的问题是,模型本身也可能是时变的,系统参数或动力学特性会随着工况变化,旧数据甚至会成为误导信息。
因此,PE 条件中的“任意时间窗口”本质上是在保证:无论系统运行到哪个阶段,始终有新鲜且足够方向丰富的激励注入进来。这样才能防止参数估计值在运行中途失去约束而漂移。
2.3 几何直觉:测量方向必须铺满整个空间
如果觉得上面的定义太抽象,可以这样理解:参数空间如果是 n 维的,那么每次测量等价于沿着 φ(t) 方向给参数空间做一次投影。只有投影方向铺满整个 n 维空间,才能从这些投影值反推出完整的 θ。
以二维参数空间为例。如果 φ(t) 永远只能取 [1,0]ᵀ,那么你测量到的永远只是 θ 的第一个分量,第二个分量完全不可观测。PE 条件要求 φ(t) 的方向要持续变化,比如一会儿指向 0 度,一会儿指向 60 度,一会儿指向 160 度,这样在一个时间窗口内,这些方向的外积之和才能形成平面上的一个“满秩覆盖”。
在 ADP 里,回归向量通常由 Critic 基函数和系统状态的某种函数构成。如果系统轨迹长期停留在平衡点附近,基函数向量几乎不变,方向覆盖自然无法满足。直观地说,系统必须在学习过程中充分“运动”,把各个状态方向的动态信息都暴露出来。只有这种方向多样性达到一定程度,Critic 网络才可能精确重构值函数,Actor 网络才能获得可靠的前向梯度。
2.4 PE与“泛化能力”的关系
把 PE 条件和机器学习里常说泛化能力放在一起看会更有感觉。一个模型如果在训练集上误差很小但测试集上误差很大,我们说是过拟合。在线 ADP 中的“测试集”其实就是系统运行中可能出现的各种未来状态分布。如果训练数据只来自平衡点附近,那么网络在那些路过的状态上表现良好,但在未来可能出现的、偏离当前运行域的状态上完全不靠谱。
PE 条件实际是在数学上保证了模型的训练分布和潜在的未来状态分布之间有足够的交叠。满足 PE 意味着系统在运行中已经充分访问过人未来可能访问的区域,相关的信息已经进入回归矩阵。这正是“持续激励”背后的一种可识别性和泛化性的统一视角。
3. 失去PE后ADP会发生什么:三种典型失效模式
3.1 伪收敛:参数组合不唯一但预测误差很小
伪收敛是 PE 不满足时最常见的失效模式,也是在线 ADP 调试中最难发现的问题之一。它表现为权值在某个区域内慢慢稳定下来,误差也在下降,一切看起来很顺利,但网络其实没有学到真实最优值函数。
回到第 1 章的线性例子。如果状态始终满足一个线性约束,那么可以被辨识的参数方向少了至少一个。一旦参数在不可辨识方向上有任意偏移,只要它在可辨识方向上的投影不变,输出的误差就不会变大。这个“任意偏移”就是网络参数自由漂移的空间。
在非线性系统的 ADP 中,伪收敛更隐蔽。Critic 网络的基函数可能是高斯基函数或多项式,系统轨迹长期经过的区域内贝尔曼残差确实接近零,但区域外面网络胡乱预测。等到工况调整,系统状态被推到之前没访问过的区域,控制性能瞬间崩塌。我在项目调试中判断是否伪收敛的一个技巧是:把训练好的网络放到一组全新的、不同幅值和频率的参考轨迹上测试,如果只跑原工况时表现好、换工况就完全不行,那大概率就是训练时激励不足。
3.2 参数漂移与后期“突发激变”
比伪收敛更危险的是参数漂移之后的激变,英文文献里常叫 parameter bursting,这是自适应控制领域里一个经典难题。
当系统长时间运行在激励不足的状态下,自适应更新律中的梯度项会变得很小,权值更新主要由数值噪声、未建模动态和遗忘因子引起。这些扰动会缓慢推动参数在一个“几乎不可观测”的方向上漂移——就像停在平路上的车,一点点风力就能推动它,因为方向上没有任何约束。
在某一次扰动来临,比如负载突变、外部噪声变大或者参考指令变化时,系统状态突然偏离原工作点,回归向量开始真正激活之前不可观测的方向。此时漂移后的错误参数在误差项里被放大,更新律产生一个很大的修正信号,这个修正会瞬间把网络推向一个完全不同的区域,控制量剧烈抖振。我实际见过的最夸张的一次,Critic 权值在 0.2 秒内从 1.3 跳变到 -8.7,执行器直接饱和。
这种激变是“假稳定”积累出来的必然结果。避免的手段只有一个:不要让系统长时间处于激励不足状态,哪怕保留非常小的激励基底,也要维持信息矩阵的持续正定性。
3.3 误差链式放大:Critic问题如何传染给Actor
在线 ADP 是 Actor-Critic 耦合结构,Critic 网络的误差不会只停留在评价网络内部,它会直接传染给 Actor。
Actor 的更新需要用到值函数对状态的梯度,也就是 ∂J/∂x。如果 Critic 在系统当前状态处的估计已经偏了,那么 ∂J/∂x 的梯度方向也会偏。按照错误的梯度去更新控制增益,会让控制指令出现偏置。系统状态在这种错误控制下偏离原本的健康轨迹,新的数据更加扭曲,反过来继续恶化 Critic 的估计。这是一个正反馈恶化回路,而且在线学习机制没法像离线训练那样中断重来。
我在调试中最直观的感受是:先看到 Critic 误差在某个方向上有缓慢的偏移,随后 Actor 的输出出现低频抖振,最后整个闭环系统发散。整个过程可能持续几分钟,中间任何阶段都有机会通过监测 PE 指标发现异常并刹车,但如果你只盯着控制误差看,很容易把问题归咎于外部干扰而错过挽救时机。
4. 不同ADP算法框架下PE条件的差异化处理策略
4.1 on-policy策略迭代:必须靠外部探测信号维持PE
经典的在线策略迭代(Policy Iteration, PI)型 ADP 中,数据是从当前控制策略产生的闭环轨迹上在线采集的。每一步迭代都要用到当前策略下的状态和输入数据来更新 Critic 和 Actor。
这种框架对 PE 条件的要求最苛刻。因为在固定策略下,系统状态轨迹会逐渐收敛到某个集合上,回归向量的方向多样性会随收敛过程快速下降。为了保证迭代收敛到正确解,通常在控制输入上额外叠加一个探测信号,这个探测信号必须够强、够丰富,确保回归向量在任意时间窗口内保持持续激励。
但这里有一个两难:探测信号太弱,PE 不满足,参数无法收敛;探测信号太强,控制品质下降,甚至激发未建模动态或执行器饱和。我在项目里常用的做法是在迭代初期使用较大的激励幅值,因为此时参数误差大,值得用一定的控制品质换取信息;随着迭代进行,权值变化率降低,再逐步减小激励幅值。
不过要提醒一点,on-policy PI 框架下“降低激励”不能无限制,如果你想严格保证收敛,激励信号始终不能完全关闭。这也是 on-policy 在线 ADP 在实际工程中常被诟病的一点——它用持续的“打扰”换学习能力。
4.2 off-policy数据驱动:把时间持续换成数据覆盖
Off-policy 型 ADP 采用了和行为策略不同的目标策略。具体做法是:采集数据时由一个带激励的行为策略驱动系统,行为策略可以故意注入丰富的激励;但更新目标策略时,并不要求目标策略下的在线数据也持续激励。
这样就把 PE 的约束从“时间持续”部分转移到了“历史数据覆盖”。如果采集阶段的数据充分覆盖了状态空间和输入空间,那么即使之后的在线更新阶段不再注入激励,目标策略依然能正确学习,因为所有计算都基于这些固定的历史数据。
实际用下来,off-policy 框架确实比 on-policy 抗激励退化能力强很多。但它并不是完全免除了激励要求——行为策略采集数据的阶段依然需要 PE,只是不需要它在整个控制生命周期里持续存在。更准确地说,它是把“全程都要满足 PE”的强约束,放宽为“在数据采集阶段需要满足 PE + 数据存储质量要够好”的中等约束。
4.3 并发学习与经验回放:“免激励”方案到底在放松什么
有一类被称为“PE-free”或“免持续激励”的 ADP 方法,比如并发学习(Concurrent Learning, CL)和经验回放(Experience Replay, ER)的在线实现。它们的共同点是:除了当前在线数据外,还在更新中使用一组历史保存的数据点或历史误差。
并发学习的基本思想是,在参数更新目标中加入一个基于历史数据点的预测误差项。就算现在的实时回归向量方向单一,只要存储的历史数据点之间方向足够丰富,历史误差项就能继续推动参数向正确值收敛。这种方法在理论上可以放宽在线 PE 条件,不再要求任意时刻都持续激励。
但这里要泼一盆冷水:“PE-free”并不免费。并发学习的代价是,存储的历史数据本身必须足够丰富,覆盖参数空间的各个方向,否则历史误差项同样无法辨识所有方向。它只是把“在线持续激励”换成了“历史数据空间覆盖质量”的要求。用我的话说,时间维度的 PE 变成了空间维度的 PE。工程上布置并发学习的时候,必须在前期数据采集策略上花同样多的心思,比如保证运行轨迹经过不同工况,数据快照要覆盖不同的状态区间。
4.4 实际项目中的框架选型对比
我在选择框架时,会按下面的思路来权衡 PE 处理成本:
| 框架类型 | PE要求的强度 | 激励注入方式 | 主要风险 | 适用场景 |
|---|---|---|---|---|
| on-policy PI | 强,全程需要 | 控制器输入端叠加探测信号 | 能量损耗、控制品质下降 | 模型精度要求高、激励成本低的场合 |
| off-policy | 中等,数据采集阶段需要 | 行为策略注入,目标策略不用 | 行为策略设计难度高 | 系统不允许持续扰动、可用历史数据 |
| 并发学习 | 较弱,要求历史数据覆盖 | 历史数据点主动存储 | 存储数据质量难控制 | 在线激励受限但历史轨迹丰富的场景 |
| 值迭代类 | 视具体算法而定 | 通常也需要状态空间探索 | 探索不力容易收敛到错误解 | 从任意初始条件出发在线学习 |
这个表格不是绝对的,但可以作为一个决策起点。如果你的项目允许系统在线持续受到小幅激励,on-policy PI 最直接;如果控制品质要求很高、不允许系统在学习期间一直被激励,那就优先考虑 off-policy 或并发学习。
5. 工程实战:在线ADP中如何科学地注入持续激励
5.1 多正弦叠加信号的设计方法
最常用的在线激励信号是多正弦叠加,也因为它的性质和设计规则很好掌握。设计时主要关注三个因素:频率个数、频率取值和幅值。
频率个数方面,一个经验法则是正弦分量的数量不小于待辨识参数或网络参数的维度。比如 Critic 网络有 6 个基函数权重,那至少选择 6 个不同的频率分量。不过这只是必要条件,不是充分条件,还与系统的可观测性有关。
频率取值方面,最忌讳的是所有频率都取成整数倍关系,比如 1Hz、2Hz、3Hz。这样叠加出来的信号周期很短,采样窗口内可能出现方向重叠,降低激励效率。工程上我更喜欢取互质或非谐波相关的频率组合,比如 0.13Hz、0.27Hz、0.41Hz、0.68Hz、0.91Hz、1.23Hz 这样的小数频率组合。频率范围要覆盖系统关心的动态频带,低于系统穿越频率到几倍穿越频率之间效果比较理想。
幅值方面,核心约束是不要严重影响控制品质,也不要触发执行器饱和或系统非线性。我的经验是从额定输入幅值的 1% 到 5% 开始试,逐次加大,观察系统输出响应和权值收敛速度的变化。如果输出振荡过大,降低幅值;如果权值收敛太慢,适当提高幅值。下面给一个简化的 Python 示例,展示多正弦激励信号的生成方式:
import math import numpy as np def multi_sine_excitation(t, freqs, amps, phases=None): """ 生成多正弦叠加的持续激励信号。 freqs: 频率列表,单位 Hz amps: 幅值列表,与 freqs 一一对应 phases: 初始相位列表,若为 None 则随机生成 """ if phases is None: rng = np.random.default_rng(42) phases = rng.uniform(0, 2 * math.pi, len(freqs)) u = 0.0 for f, a, phi in zip(freqs, amps, phases): u += a * math.sin(2 * math.pi * f * t + phi) return u有一个小技巧值得分享:给每个正弦分量设置不同的初始相位,这样可以避免初始瞬间所有分量的幅值叠加在同一个方向,造成激励信号瞬时过大。
5.2 随机探索噪声的幅值选择与频带控制
除了多正弦,随机噪声也常作为探索信号。理想的高斯白噪声在理论上对线性回归参数辨识可以满足 PE 条件,因为它的功率谱在关心频带内平坦且有无限带宽。但实际执行器都有带宽限制,完全的白噪声经过执行器之后,高频分量已经衰减光了,能起作用的主要是中低频部分。
因此实际使用中我更推荐带限的有色噪声,或者用伪随机二进制序列(PRBS)。PRBS 信号在辨识领域很常用,它在频带内近似白噪声,但幅值恒定,对执行器更友好,也容易控制贡献的能量。
随机噪声的幅值设置与系统噪音水平密切相关。如果系统本身有传感器噪声,激励信号的幅值至少要远大于传感器噪声,比如 10 倍以上,否则信噪比太低,激励能量会被噪声淹没。我的经验是从系统控制输入的 2% 幅值起步,逐步加大直到参数估计趋势稳定下来。
还有一个需要注意的点:采样周期和激励信号频率的匹配。离散系统中的回归向量采样如果存在混叠,高频激励分量会折回到低频段,造成虚假的频率信息。一般要求激励信号的最高频率不超过奈奎斯特频率的 1/3,采样率至少是激励最高频率的 4 到 6 倍。
5.3 退火策略与基础激励保持机制
在线学习过程常会使用退火策略:前期激励大、后期激励小。这是合理的,但不能盲目“退到零”。
我在项目中具体的做法是分三段式。第一阶段,激励幅值设为额定值的 3% 到 5%,让参数快速收敛;第二阶段,监测权值变化率,当变化率低于某个阈值时,把激励幅值降到 1% 左右;第三阶段,维持一个很低的但也远大于零的基础激励,同时持续监测信息矩阵特征值。
之所以保留基础激励,是为了应对系统运行工况的缓慢变化。即使参数已经收敛,一旦环境或对象特性发生变化,过低的基础激励会导致新的变化无法被快速辨识出来。基础激励的幅值可以非常低,理论上只要保证信息矩阵的最小特征值不低于某个阈值即可。
如果系统确实处于不允许持续激励的工况,比如精密对位或稳定输出阶段,那就在该阶段暂停学习、只做前馈控制,等待工况允许时再重新打开激励和学习通道。这种“分段学习 + 切换经验”的工程做法,比全程死磕 PE 要务实得多。
5.4 在线监测信息矩阵,用数据决定要不要加激励
我强烈建议在所有在线 ADP 部署中加一个 PE 在线监测模块,无论你的算法在论文里是否假设了 PE 条件。核心思路是实时维护一个信息矩阵的滑动估计,计算它的最小特征值,当特征值低于阈值时自动触发激励增强或学习暂停。
下面是一个简化版的信息矩阵在线监测伪代码:
import numpy as np def update_info_matrix(R, phi, alpha=0.999): """ 用指数遗忘滑动窗近似信息矩阵。 alpha 越接近 1,等效窗口越长。 """ R_new = alpha * R + (1 - alpha) * np.outer(phi, phi) return R_new def check_pe(R, threshold=1e-5): """返回最小特征值是否低于阈值。""" eigvals = np.linalg.eigvalsh(R) # 对称矩阵特征值 lambda_min = max(0.0, eigvals[0]) # 最小特征值 return lambda_min < threshold, lambda_min实际部署时,我通常会把最小特征值的对数值画成实时曲线。正常学习阶段,特征值应该稳定在某个数值以上;如果特征值开始持续下降,说明激励发生退化,需要主动干预。这个方法简单有效,我已经在多个项目里把它作为在线学习健康度的“仪表盘”。
有一点要特别提醒:遗忘因子 alpha 的数值对监测结果影响很大。alpha 太接近 1,历史数据累积的时间太长,PE 条件表现为极度宽松,很难发现退化;alpha 太小,特征值波动太大,容易误报。一般取 0.999 到 0.9999 之间,对应约 1000 到 10000 个采样点的等效窗口。
5.5 几种我踩过坑的激励设计方式
第一个坑是“所有输入通道加同一个激励信号”。对于多输入多输出系统,如果多个控制通道共享同一个激励信号,那么回归向量之间会引入共线性,信息矩阵依然可能奇异。正确做法是每个输入通道用不同频率组合的激励信号,或者至少让激励信号相互独立。
第二个坑是“激励频率与系统模态接近”。如果激励信号激发了系统的谐振模态,哪怕幅值不大,也会导致输出振荡异常明显甚至损坏设备。设计频率前先对系统进行简单的频率响应测试,避开谐振峰,激励能量尽量落在增益平稳的频段。
第三个坑是“只在仿真里验证激励设计”。仿真的动力学模型与实际执行器有差异,尤其执行器的响应延迟、带宽限制和饱和特性很难在仿真中完全体现。我一般会先在硬件在环平台或现场小幅度试注,确认执行器实际响应符合预期后再全量投入。
6. 从持续激励到充分激励:PE条件的边界与前沿
6.1 确定性激励与持续激励的辨析
做系统辨识和在线控制的人经常会混淆两个术语——持续激励(PE)和确定性激励(sufficiently rich input)。按照经典结论,一个输入信号如果包含足够多不同的频率分量,并且频率个数不少于待辨识参数个数,就能让线性系统的回归向量满足 PE 条件。也就是说,对线性系统而言,确定性激励可以“推出”持续激励,但二者在概念上并不等价。
确定性激励侧重于信号本身的性质,关注“输入信号的频率含量是否丰富”;持续激励侧重于闭环系统的回归向量性质,关注“信息矩阵是否持续正定”。非线性系统中两者差异会更明显,即使输入信号频率很丰富,如果系统本身动力学把某些高频分量完全衰减掉,那么回归向量也可能只在低频方向上有信息,PE 条件依然不满足。
6.2 非线性系统下PE条件的争论与数据覆盖视角
对于非线性系统的 ADP,PE 条件在理论上并不总是能像线性系统那样直接验证。原因在于回归向量由系统状态的非线性基函数构成,而基函数的活跃程度取决于状态轨迹是否真正穿过对应区域。一个高斯基函数若中心远离实际轨迹区域,它对误差的贡献几乎为零,该方向的信息完全无法激起。
因此当前许多工作开始把“持续激励”重构为“数据覆盖”或者“经验覆盖”条件。也就是说,不再要求任意时间窗口内都满足信息矩阵不等式,而是要求历史数据在状态-输入空间中覆盖足够广泛的区域。这种做法我认为在工程上更有意义,因为它更接近实际运行场景——系统不可能永远剧烈运动,但只要曾经在不同区域获取过足够多的快照信息,就能支撑值函数网络的可靠逼近。
6.3 几个值得关注的方向:激励成本化、MPC集成和随机化探索
最近看到的一些在线 ADP 新工作里,有几个方向和我实际关心的问题很贴近。一个是把激励显式地放进优化目标里,学习过程自动权衡“控制性能损失”和“参数信息收益”,并根据当前参数置信度动态调节激励强度。这类方法天然适合和 MPC 结合,把未来 K 步的激励幅度作为优化变量,一步兼顾控制和学习的需要。
另一个方向是随机化探索与概率建模。不是简单加白噪声,而是对系统不确定性进行在线概率估计,用估计出的协方差来决定探索的方向和幅度。这种思路在直觉上与 PE 条件本质上一致,但形式更灵活,也更容易处理复杂的非线性系统。
还有一个方向是把触发机制引入激励设计,比如当信息矩阵最小特征值低于阈值时,自动产生一次较短的、带退化的富激励信号;等特征值恢复后再切换回低激励模式。这种“按需激励”策略在实践中非常讨巧,既不会长期打扰系统,又能在关键时期有效补足信息量。
这些方向都还在快速迭代中,但核心逻辑始终没变:在线 ADP 的学习过程必须解决“如何在不牺牲控制品质的前提下获得充分信息”这个问题。理解了 PE 条件,你就理解了这条主线的数学源头。无论未来算法形式怎么变,这个底层约束始终是绕不过去的关键。